/* TikTok Shop data pages: brand profiles, studies, hubs, method (scripts/shop_pages.py).
   Built on landing-system.css and places-pages.css (pg-* classes). Mobile first. The chart rules between the markers below are
   also copied into every downloadable SVG by shop_kit.chart_css(), so they use var(--x, #fallback) and carry no animation. */
main.sp{--sp-navy:#2f4f80;--sp-sky:#87aaeb;--sp-wash:#eef2fb;--sp-clay:#c75d3a;--sp-peach:#e08a66;--sp-sage:#7f9a6c;--sp-lav:#d8caed;--sp-lavd:#5b4a86;--sp-ink:#1f1e1c;--sp-text:#2a2825;--sp-muted:#6b675f;--sp-line:#dcd6cb;--sp-paper:#fffdf9;--sp-yellow:#f8df84}

/* chart:start */
.sp-svg{display:block;width:100%;height:auto;overflow:visible}
.sp-svg .sp-t{font-family:'TikTok Sans',Inter,system-ui,-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;font-size:13px;font-weight:500;fill:var(--sp-text,#2a2825)}
.sp-svg .sp-axis{font-size:12px;fill:var(--sp-muted,#6b675f)}
.sp-svg .sp-small{font-size:13px;fill:var(--sp-muted,#6b675f)}
.sp-svg .sp-small.b{fill:var(--sp-navy,#2f4f80);font-weight:700}
.sp-svg .sp-lab{font-size:14px;font-weight:600;fill:var(--sp-ink,#1f1e1c)}
.sp-svg .sp-val{font-size:14px;font-weight:700;fill:var(--sp-ink,#1f1e1c)}
.sp-svg .sp-lab2{font-size:13px;font-weight:600;fill:var(--sp-ink,#1f1e1c)}
.sp-svg .sp-big{font-size:30px;font-weight:800;fill:var(--sp-ink,#1f1e1c)}
.sp-svg .sp-onbar{font-size:12px;font-weight:700;fill:#fff}
.sp-svg .sp-onbar.show,.sp-svg .sp-onbar.k2,.sp-svg .sp-onbar.k3,.sp-svg .sp-onbar.mall,.sp-svg .sp-onbar.k4{fill:var(--sp-ink,#1f1e1c)}
.sp-svg .sp-grid{stroke:var(--sp-line,#dcd6cb);stroke-width:1}
.sp-svg .sp-line{fill:none;stroke:var(--sp-navy,#2f4f80);stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round}
.sp-svg .sp-fill{fill:var(--sp-navy,#2f4f80);opacity:.12}
.sp-svg .sp-band{opacity:.55}
.sp-svg .sp-band.a{fill:#fbe7de}
.sp-svg .sp-band.b{fill:#dde7f7}
.sp-svg .sp-dot{fill:var(--sp-navy,#2f4f80);stroke:#fffdf9;stroke-width:2}
.sp-svg .sp-gapband{fill:var(--sp-line,#dcd6cb);opacity:.55}
.sp-svg .sp-gapline{fill:none;stroke:var(--sp-muted,#6b675f);stroke-width:2;stroke-dasharray:4 4}
.sp-svg .sp-gaplab{font-size:11px}
.sp-svg .sp-event{fill:var(--sp-clay,#c75d3a)}
.sp-svg .sp-dot.b{fill:#fffdf9;stroke:var(--sp-navy,#2f4f80)}
.sp-svg .sp-track{fill:none;stroke:#ece7de}
.sp-svg .sp-track-r{fill:#ece7de}
.sp-svg .sp-seg{fill:none;stroke:var(--sp-navy,#2f4f80)}
.sp-svg .sp-seg.aff,.sp-svg .sp-seg.video{stroke:var(--sp-navy,#2f4f80)}
.sp-svg .sp-seg.own,.sp-svg .sp-seg.live{stroke:var(--sp-clay,#c75d3a)}
.sp-svg .sp-seg.mall{stroke:var(--sp-sage,#7f9a6c)}
.sp-svg .sp-seg.show{stroke:var(--sp-sky,#87aaeb)}
.sp-svg .sp-sw.aff,.sp-svg .sp-seg2.aff,.sp-svg .sp-sw.video,.sp-svg .sp-seg2.video{fill:var(--sp-navy,#2f4f80)}
.sp-svg .sp-sw.own,.sp-svg .sp-seg2.own,.sp-svg .sp-sw.live,.sp-svg .sp-seg2.live{fill:var(--sp-clay,#c75d3a)}
.sp-svg .sp-sw.mall,.sp-svg .sp-seg2.mall{fill:var(--sp-sage,#7f9a6c)}
.sp-svg .sp-sw.show,.sp-svg .sp-seg2.show{fill:var(--sp-sky,#87aaeb)}
.sp-svg .sp-seg2.k1,.sp-svg .sp-sw.k1{fill:var(--sp-navy,#2f4f80)}
.sp-svg .sp-seg2.k2,.sp-svg .sp-sw.k2{fill:var(--sp-sky,#87aaeb)}
.sp-svg .sp-seg2.k3,.sp-svg .sp-sw.k3{fill:var(--sp-lav,#d8caed)}
.sp-svg .sp-seg2.k4,.sp-svg .sp-sw.k4{fill:#e4dfd5}
.sp-svg .sp-bar{fill:var(--sp-sky,#87aaeb)}
.sp-svg .sp-bar.first,.sp-svg .sp-bar.k1{fill:var(--sp-navy,#2f4f80)}
.sp-svg .sp-bar.k2{fill:var(--sp-peach,#e08a66)}
.sp-svg .sp-bar.k3{fill:#b9b3a7}
.sp-svg .sp-bar.muted{fill:#b9b3a7}
.sp-svg .sp-dotc{fill:var(--sp-sky,#87aaeb);stroke:var(--sp-navy,#2f4f80);stroke-width:1.5;fill-opacity:.8}
.sp-svg .sp-dotc.best{fill:var(--sp-peach,#e08a66);stroke:var(--sp-clay,#c75d3a);fill-opacity:.95}
.sp-svg .sp-sline{fill:none;stroke:var(--sp-navy,#2f4f80);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sp-svg .sp-sdot{fill:var(--sp-navy,#2f4f80)}
.sp-svg .sp-dotm{fill:#e4dfd5}
.sp-svg .sp-dotm.on{fill:var(--sp-navy,#2f4f80)}
.sp-svg .sp-tile{fill:#eef2fb}
.sp-svg .sp-tile.big{fill:var(--sp-navy,#2f4f80)}
.sp-svg .sp-tile.b{fill:#fbe7de}
.sp-svg .sp-tile.c{fill:#e9f3ed}
.sp-svg .sp-tile.badge{fill:#fdf4d3}
.sp-svg .sp-tl{font-size:12px;font-weight:600;fill:var(--sp-muted,#6b675f)}
.sp-svg .sp-tl.big{fill:#dfe7f7;font-size:14px}
.sp-svg .sp-num{font-size:25px;font-weight:800;fill:var(--sp-navy,#2f4f80)}
.sp-svg .sp-num.big{font-size:44px;fill:#fffdf9}
.sp-svg .sp-num.badge{fill:var(--sp-ink,#1f1e1c)}
.sp-svg .sp-sc-line{fill:none;stroke:#fffdf9;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.sp-svg .sp-sc-fill{fill:#fffdf9;opacity:.14}
.sp-svg .sp-bar.pa,.sp-svg .sp-sw.pa{fill:var(--sp-navy,#2f4f80)}
.sp-svg .sp-bar.pb,.sp-svg .sp-sw.pb{fill:var(--sp-peach,#e08a66)}
.sp-svg .sp-even{stroke:#b9b3a7}
/* chart:end */

/* ------------------------------------------------------------ animation: progressive enhancement only (JS adds .sp-js; reduced motion skips all of it) */
@media (prefers-reduced-motion:no-preference){
 .sp-js .sp-svg .draw{stroke-dasharray:1;stroke-dashoffset:1}
 .sp-js .sp-in .sp-svg .draw{animation:sp-draw 1.5s cubic-bezier(.3,.7,.2,1) forwards}
 .sp-js .sp-svg .sp-fill,.sp-js .sp-svg .sp-sc-fill{opacity:0}
 .sp-js .sp-in .sp-svg .sp-fill{animation:sp-fade .9s .6s forwards}
 .sp-js .sp-in .sp-svg .sp-sc-fill{animation:sp-fade2 .9s .6s forwards}
 .sp-js .sp-svg .sp-bar{transform-box:fill-box;transform-origin:left center;transform:scaleX(0)}
 .sp-js .sp-svg .sp-bar.v{transform-origin:center bottom;transform:scaleY(0)}
 .sp-js .sp-in .sp-svg .sp-bar{animation:sp-grow .9s calc(var(--i,0)*.08s) cubic-bezier(.2,.8,.2,1) forwards}
 .sp-js .sp-in .sp-svg .sp-bar.v{animation-name:sp-growy}
 .sp-js .sp-svg .sp-seg2{transform-box:fill-box;transform-origin:left center;transform:scaleX(0)}
 .sp-js .sp-in .sp-svg .sp-seg2{animation:sp-grow .9s calc(var(--i,0)*.08s) cubic-bezier(.2,.8,.2,1) forwards}
 .sp-js .sp-in .sp-svg .sp-seg{animation:sp-sweep 1.2s cubic-bezier(.3,.7,.2,1) both}
 .sp-js .sp-svg .sp-dotc,.sp-js .sp-svg .sp-dot{opacity:0}
 .sp-js .sp-in .sp-svg .sp-dotc{animation:sp-pop .5s calc(.3s + var(--i,0)*.06s) ease-out forwards}
 .sp-js .sp-in .sp-svg .sp-dot{animation:sp-pop .4s 1.3s ease-out forwards}
 .sp-js .sp-find{opacity:0;transform:translateY(10px)}
 .sp-js .sp-find.sp-in{animation:sp-rise .6s ease-out forwards}
 .sp-js .sp-in .sp-svg .sp-sline{animation:sp-draw 1.3s ease-out both}
 .sp-js .sp-svg .sp-sline{stroke-dasharray:1}
}
@keyframes sp-draw{to{stroke-dashoffset:0}}
@keyframes sp-fade{to{opacity:.12}}
@keyframes sp-fade2{to{opacity:.14}}
@keyframes sp-grow{to{transform:scale(1)}}
@keyframes sp-growy{to{transform:scale(1)}}
@keyframes sp-sweep{from{stroke-dasharray:0 100}}
@keyframes sp-pop{from{opacity:0;transform:scale(.4)}to{opacity:1}}
@keyframes sp-rise{to{opacity:1;transform:none}}

/* tables on a phone: caption full width, the rank prefix only where a rank is given */
@media (max-width:640px){main.sp table.pg-table caption{display:block;width:100%}main.sp table.pg-table td.pk:not([data-rank])::before{content:none}}

/* phone: the 480-unit charts are scaled to about 0.7, so their text is set larger here (kept out of the shared chart rules) */
@media (max-width:640px){
 main.sp .sp-svg .sp-axis{font-size:14px}main.sp .sp-svg .sp-small{font-size:14px}main.sp .sp-svg .sp-lab{font-size:16.5px}main.sp .sp-svg .sp-lab2{font-size:14.5px}main.sp .sp-svg .sp-val{font-size:16.5px}main.sp .sp-svg .sp-onbar{font-size:14px}main.sp .sp-svg .sp-big{font-size:34px}
 main.sp .sp-svg.sp-mini .sp-small{font-size:15px}main.sp .sp-svg .sp-tl{font-size:13px}
}

/* ------------------------------------------------------------ hero */
main.sp .sp-hero{display:grid;gap:26px;padding:26px 0 6px;align-items:center}
main.sp .sp-hero-1{display:block}
main.sp .sp-hero h1{font-size:clamp(30px,4.3vw,52px);line-height:1.06;max-width:20ch;margin:14px 0 14px}
main.sp .sp-hero-1 h1{max-width:24ch}
main.sp .sp-hero .pg-stamp{margin-bottom:16px}
main.sp .sp-hero .pg-stamp a{color:var(--ls-blue-deep)}
main.sp .sp-answer{font-size:clamp(18px,1.55vw,20px);line-height:1.55;max-width:62ch;color:var(--ls-ink)}
main.sp .sp-score-fig{margin:0;background:var(--ls-paper);border:1.5px solid var(--ls-line);border-radius:var(--ls-radius);padding:14px 14px 6px;min-width:0}
main.sp .sp-score-fig .sp-svg{border-radius:16px}
@media (min-width:920px){main.sp .sp-hero:not(.sp-hero-1){grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:40px}}

/* stat cards on hubs */
main.sp .sp-stats{margin-top:20px}
main.sp .pg-stat.is-up strong{color:#2f7a3d}

/* key facts */
main.sp dl.sp-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:0 34px;margin:12px 0 4px;padding:6px 22px;background:var(--ls-paper);border:1.5px solid var(--ls-line);border-radius:var(--ls-radius-sm)}
main.sp dl.sp-facts>div{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--ls-line);font-size:16px;line-height:1.4}
main.sp dl.sp-facts dt{color:var(--ls-muted);flex:0 0 auto}
main.sp dl.sp-facts dd{margin:0;text-align:right;font-weight:600;color:var(--ls-ink);overflow-wrap:anywhere}

/* key statistics box inherits the site style; tint it for this family */
main.sp .key-stats-box{background:var(--ls-blue-tint);border:0;border-radius:var(--ls-radius);margin:26px 0 10px}
main.sp .key-stats-box>h2{font-size:24px;margin:0 0 6px}
main.sp ol.key-stats>li p{font-size:17.5px}
main.sp ol.key-stats>li .stat-meta{display:flex;align-items:center;gap:10px;margin-top:6px;font-size:13px;color:var(--ls-muted)}
main.sp ol.key-stats>li .stat-link{color:var(--ls-blue-deep);text-decoration:none;font-weight:700}
main.sp ol.key-stats>li .cite-btn{font:600 13px var(--ls-font);border:1.5px solid var(--ls-ink);background:var(--ls-paper);color:var(--ls-ink);border-radius:999px;padding:5px 14px;min-height:34px;cursor:pointer}
main.sp ol.key-stats>li .cite-btn.done{background:var(--ls-ink);color:#fff}

/* findings */
main.sp .sp-finds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0 8px}
main.sp .sp-find{display:flex;flex-direction:column;gap:14px;background:var(--ls-paper);border:1.5px solid var(--ls-line);border-radius:var(--ls-radius);padding:22px 22px 18px}
main.sp .sp-find-vis{min-height:46px}
main.sp .sp-find-vis .sp-mini{display:block;width:100%;max-width:220px;height:auto}
main.sp .sp-find h3{font-size:clamp(19px,1.7vw,22px);margin:0 0 6px;line-height:1.2}
main.sp .sp-find p{font-size:16.5px;line-height:1.55;margin:0 0 8px}
main.sp .sp-when{display:inline-block;font-size:12.5px;color:var(--ls-muted);background:var(--ls-cream);border-radius:999px;padding:3px 11px;font-weight:600}
main.sp .sp-find:nth-child(3n+1){background:var(--ls-paper)}
@media (max-width:760px){main.sp .sp-finds{grid-template-columns:minmax(0,1fr)}}

/* micro prompts */
main.sp p.sp-micro{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline;margin:16px 0 4px;padding:12px 16px;background:var(--ls-yellow-tint);border-radius:14px;font-size:15.5px;line-height:1.45}
main.sp p.sp-micro>span{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ls-peach-deep)}
main.sp p.sp-micro a{color:var(--ls-ink);font-weight:600;text-decoration-thickness:1.5px}

/* charts */
main.sp .sp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0 6px}
main.sp .sp-grid.one{grid-template-columns:minmax(0,1fr)}
main.sp .sp-fig{margin:0;background:var(--ls-paper);border:1.5px solid var(--ls-line);border-radius:var(--ls-radius);padding:18px 18px 12px;min-width:0;display:flex;flex-direction:column}
main.sp .sp-fig.wide{grid-column:1/-1}
main.sp .sp-fig.tall{grid-row:span 2}
main.sp .sp-study .sp-fig.wide .sp-svg{max-width:660px}
main.sp .sp-fig .sp-cap{font-size:15px;line-height:1.5;color:var(--ls-text);margin:0 0 12px;font-weight:500}
main.sp .sp-fig .sp-svg{margin:auto 0}
main.sp .sp-fig.wide .sp-svg{max-width:820px;margin-left:auto;margin-right:auto}
main.sp .sp-find-vis .sp-svg{margin:0}
main.sp table.pg-table caption{padding-bottom:10px}
main.sp .sp-adds .pg-eyebrow{margin-bottom:6px}
main.sp .sp-fig .sp-src{font-size:12.5px;color:var(--ls-muted);margin:10px 0 6px}
main.sp .sp-fig details{margin:6px 0 0;border-top:1px solid var(--ls-line);padding-top:6px}
main.sp .sp-fig details summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--ls-blue-deep);min-height:40px;display:flex;align-items:center;list-style:none}
main.sp .sp-fig details summary::-webkit-details-marker{display:none}
main.sp .sp-fig details summary::before{content:'+';display:inline-block;width:18px;font-weight:800}
main.sp .sp-fig details[open]>summary::before{content:'−'}
main.sp .sp-fig details .pg-tablewrap{margin:6px 0 10px;max-height:340px;overflow:auto}
main.sp .sp-fig details table.pg-table{font-size:14px}
main.sp .sp-fig details table.pg-table td{padding:7px 12px}
main.sp .sp-fig .embed-box p{font-size:14px;color:var(--ls-muted);margin:0 0 8px}
main.sp .sp-fig .embed-box textarea,main.sp .sp-score-fig .embed-box textarea{width:100%;font:12.5px/1.45 var(--ls-mono);border:1.5px solid var(--ls-line);border-radius:12px;padding:10px;background:var(--ls-cream);color:var(--ls-text);resize:vertical}
main.sp .embed-actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 10px}
main.sp .embed-actions .copy-embed,main.sp .embed-actions .ig-download{display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border-radius:12px;border:2px solid var(--ls-ink);background:var(--ls-paper);color:var(--ls-ink);font:700 14px var(--ls-font);text-decoration:none;cursor:pointer}
main.sp .embed-actions .copy-embed{background:var(--ls-ink);color:#fff}
main.sp .sp-score-fig details{margin:8px 0 4px;border-top:1px solid var(--ls-line);padding-top:4px}
main.sp .sp-score-fig details summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--ls-blue-deep);min-height:40px;display:flex;align-items:center}
@media (max-width:760px){main.sp .sp-grid{grid-template-columns:minmax(0,1fr)}main.sp .sp-fig.tall{grid-row:auto}main.sp .sp-fig{padding:14px 14px 10px}}

/* tables */
main.sp td.num.up{color:#2f7a3d;font-weight:700}
main.sp td.num.down{color:#a13232;font-weight:700}
main.sp .sp-spkcell svg{display:block;margin-left:auto;width:110px;height:30px}
main.sp .sp-table td.pk a{color:var(--ls-ink);text-decoration:none}
main.sp .sp-table td.pk a:hover{text-decoration:underline}
main.sp .sp-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 14px}
main.sp .sp-chip{font:600 14.5px var(--ls-font);border:1.5px solid var(--ls-line);background:var(--ls-paper);color:var(--ls-text);border-radius:999px;padding:0 15px;min-height:42px;cursor:pointer}
main.sp .sp-chip.on{background:var(--ls-ink);color:#fff;border-color:var(--ls-ink)}
main.sp .sp-chips{display:none}
main.sp.sp-js .sp-chips{display:flex}
main.sp .sp-table tr[hidden]{display:none}

/* TokConnect panel */
main.sp section.sp-adds{padding:30px 28px 24px;background:var(--ls-ink);color:#efece6;border-radius:var(--ls-radius);padding:30px 28px 24px;margin:34px 0 6px}
main.sp .sp-adds h2{color:#fff;margin:10px 0 8px}
main.sp .sp-adds .pg-eyebrow{background:var(--ls-yellow);border-color:var(--ls-yellow)}
main.sp .sp-adds .pg-sub{color:#d9d4c8;max-width:64ch}
main.sp .sp-adds-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;padding:0;margin:18px 0 14px}
main.sp .sp-adds-grid li{margin:0}
main.sp .sp-adds-grid a{display:flex;flex-direction:column;gap:6px;height:100%;background:#2b2a27;border:1.5px solid #46443f;border-radius:var(--ls-radius-sm);padding:16px 18px;text-decoration:none;color:#efece6;transition:border-color .15s,transform .15s}
main.sp .sp-adds-grid a:hover{border-color:var(--ls-yellow);transform:translateY(-2px)}
main.sp .sp-adds-grid strong{color:#fff;font-size:18px}
main.sp .sp-adds-grid span{font-size:14.5px;line-height:1.45;color:#cfcabd}
main.sp .sp-adds-grid em{font-style:normal;font-weight:700;color:var(--ls-yellow);font-size:14.5px;margin-top:auto}
main.sp .sp-adds-foot{font-size:14.5px;color:#cfcabd;margin:6px 0 0;max-width:80ch}
main.sp .sp-adds-foot a,main.sp .sp-adds-foot .sp-link{color:var(--ls-yellow)}
main.sp .sp-link{all:unset;cursor:pointer;color:var(--ls-yellow);text-decoration:underline;text-underline-offset:3px}
main.sp .sp-link:focus-visible{outline:2px solid var(--ls-yellow);outline-offset:2px;border-radius:3px}
@media (max-width:760px){main.sp section.sp-adds{padding:22px 18px 18px}main.sp .sp-adds-grid{grid-template-columns:minmax(0,1fr)}}

/* analyst note */
main.sp section.sp-note{padding:22px 26px 16px;background:var(--ls-paper);border:1.5px solid var(--ls-line);border-left:6px solid var(--ls-blue-deep);border-radius:var(--ls-radius-sm);padding:22px 26px 16px;margin:30px 0 6px}
main.sp .sp-note h2{font-size:clamp(22px,2.3vw,28px);margin:0 0 10px}
main.sp .sp-note-body p{font-size:17.5px;line-height:1.65;margin:0 0 12px;max-width:72ch}
main.sp .sp-note-by{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:14px;color:var(--ls-muted);margin:6px 0 4px}
main.sp .sp-avatar{display:inline-flex;width:30px;height:30px;border-radius:50%;background:var(--ls-blue-deep);color:#fff;font-weight:800;align-items:center;justify-content:center}
@media (max-width:640px){main.sp section.sp-note{padding:18px 16px 12px}}

/* method, downloads, links */
main.sp .sp-source-line{font-size:16px;line-height:1.6;max-width:80ch}
main.sp .sp-downloads{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 4px}
main.sp .sp-downloads .pg-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:14px;border:2px solid var(--ls-ink);background:var(--ls-paper);color:var(--ls-ink);font:700 15px var(--ls-font);text-decoration:none}
main.sp .sp-prose p{font-size:17px;line-height:1.65;max-width:76ch}
main.sp .sp-sim a{display:flex;flex-direction:column;gap:2px}
main.sp .sp-sim .sp-spk svg{display:block;width:110px;height:30px;margin-bottom:6px}
main.sp .sp-sim em{font-style:normal;font-size:13px;color:var(--ls-muted);margin-top:4px}
main.sp ul.sp-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;list-style:none;padding:0;margin:14px 0}
main.sp ul.sp-cards a{display:flex;flex-direction:column;gap:8px;height:100%;background:var(--ls-paper);border:1.5px solid var(--ls-line);border-radius:var(--ls-radius);padding:22px;text-decoration:none;color:var(--ls-text)}
main.sp ul.sp-cards a:hover{border-color:var(--ls-ink)}
main.sp ul.sp-cards strong{font-size:22px;line-height:1.2;color:var(--ls-ink)}
main.sp ul.sp-cards .sp-k{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ls-peach-deep)}
main.sp ul.sp-cards em{font-style:normal;font-weight:700;color:var(--ls-blue-deep);margin-top:auto}

/* bottom CTA band */
main.sp .sp-cta{display:flex;flex-wrap:wrap;gap:22px 34px;align-items:center;justify-content:space-between;background:var(--ls-ink);color:#efece6;border-radius:var(--ls-radius);padding:30px 32px;margin:34px 0 14px}
main.sp .sp-cta h2{color:#fff;font-size:clamp(24px,2.6vw,32px);margin:10px 0 6px}
main.sp .sp-cta p{margin:0;color:#d9d4c8;font-size:16.5px;max-width:48ch}
main.sp .sp-cta .pg-eyebrow{background:var(--ls-yellow);border-color:var(--ls-yellow)}
main.sp .sp-cta-act{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
main.sp .sp-cta .ls-btn{background:var(--ls-yellow);border-color:var(--ls-yellow);color:var(--ls-ink)}
main.sp .sp-apps{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
main.sp .sp-apps>span{font-size:13px;font-weight:600;color:#cfcabd;margin-right:2px}
main.sp .sp-app{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px 0 12px;border-radius:999px;border:1.5px solid #5a5850;background:#2b2a27;color:#fff;font:700 14px var(--ls-font);cursor:pointer}
main.sp .sp-app:hover{border-color:var(--ls-yellow)}
main.sp .sp-app img{width:18px;height:18px;display:block;filter:invert(1)}
@media (max-width:640px){main.sp .sp-cta{padding:22px 18px}main.sp .sp-cta-act{width:100%}main.sp .sp-cta .ls-btn{width:100%}}

/* page rhythm */
main.sp .pg-section{padding:34px 0 6px}
main.sp .pg-hero .pg-actions .ls-btn--ghost{background:transparent}
main.sp .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (prefers-reduced-motion:reduce){main.sp *,main.sp *::before,main.sp *::after{animation:none!important;transition:none!important}}

/* studies: what this means, hub groups */
main.sp .sp-mean-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0 4px}
main.sp .sp-mean-card{background:var(--ls-paper);border:1.5px solid var(--ls-line);border-top:5px solid var(--ls-blue-deep);border-radius:var(--ls-radius);padding:20px 22px 14px}
main.sp .sp-mean-card:nth-child(2){border-top-color:var(--ls-peach-deep)}
main.sp .sp-mean-card:nth-child(3){border-top-color:var(--sp-sage)}
main.sp .sp-mean-card h3{font-size:20px;margin:0 0 8px}
main.sp .sp-mean-card p{font-size:16.5px;line-height:1.6;margin:0 0 8px}
@media (max-width:900px){main.sp .sp-mean-grid{grid-template-columns:minmax(0,1fr)}}
main.sp .sp-jump{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}
main.sp .sp-chip-link{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 15px;border-radius:999px;border:1.5px solid var(--ls-line);background:var(--ls-paper);color:var(--ls-text);font:600 14.5px var(--ls-font);text-decoration:none}
main.sp .sp-chip-link span{font-size:12.5px;font-weight:700;color:var(--ls-blue-deep);background:var(--ls-blue-tint);border-radius:999px;padding:1px 8px}
main.sp .sp-chip-link:hover{border-color:var(--ls-ink)}
main.sp ul.sp-cards .sp-headline{display:block;font-size:15px;line-height:1.35;color:var(--ls-text)}
main.sp ul.sp-cards .sp-headline b{display:block;font-size:30px;line-height:1.1;color:var(--ls-blue-deep);letter-spacing:-.01em}
main.sp ul.sp-cards .sp-card-txt{font-size:15px;line-height:1.5;color:var(--ls-muted)}
main.sp.sp-insights ul.sp-cards strong{font-size:20px}

/* brand profile fixes: hub search and sort, gap note */
main.sp .sp-tools{display:none;margin:10px 0 4px}
main.sp.sp-js .sp-tools{display:block}
main.sp .sp-search input{font:500 16px var(--ls-font);border:1.5px solid var(--ls-line);border-radius:12px;padding:10px 14px;min-height:44px;width:100%;max-width:360px;background:var(--ls-paper);color:var(--ls-text)}
main.sp th[data-sort]{text-decoration:underline dotted;text-underline-offset:3px}
main.sp .sp-gapnote{font-size:15px;color:var(--ls-muted);margin:-4px 0 14px}
main.sp .sp-catcell{white-space:normal}
main.sp table.sp-collapsed tr[data-more]{display:none}
main.sp .sp-showall{margin:14px 0 0}
