/* Framework 3.6.10 library parity. Loaded after category CSS. No legacy baseline gate in Studio.
   sb-* aliases live on the actual faithful composition root, preserving direct-child selectors.
   Theme tokens are translated to Studio roles; source files and checks are documented in framework-parity.md. */
.pb-theme{--bl-site-text:var(--pb-text);--bl-site-muted:var(--pb-muted);--bl-site-border:var(--pb-border);--bl-site-surface:var(--pb-surface);--bl-site-bg:var(--pb-bg);--bl-site-primary:var(--pb-primary);--bl-site-secondary:var(--pb-secondary);--bl-site-ink:var(--pb-text);--bl-site-link:var(--pb-primary)}
body .sb-blk.sb-blk{--pb-ink:var(--bl-site-ink);--pb-tint:var(--bl-site-surface);--pb-muted-on-dark:color-mix(in srgb,var(--pb-on-dark) 72%,transparent);--pb-rule-on-dark:color-mix(in srgb,var(--pb-on-dark) 20%,transparent);--bl-look-headings:currentColor}
body .sb-blk.sb-blk.sb-dark{--pb-text:var(--pb-on-dark);--pb-muted:var(--pb-muted-on-dark);--pb-border:var(--pb-rule-on-dark);color:var(--pb-on-dark)}
/* Studio row-level text overrides must yield to the look's own panels. Filled buttons keep their own readable ink (.pt-btn read dark on Index's orange, 2026-11-05). */
.pb-theme .pb-block .sb-blk.sb-blk :is(h1,h2,h3,h4,h5,h6,a:not(.btn):not(.ef-btn):not(.g-btn):not(.dv-btn):not(.pt-btn)){color:inherit}
body .sb-blk:not(.sb-edge){--st-space:0px}
body .sb-blk:not(.sb-edge)>:is(.sec,.section,.blk){background:transparent!important;padding-block:0!important;margin-block:0!important}
body .sb-blk:not(.sb-edge)>:is(.sec,.section,.blk)>.wrap,body .sb-blk:not(.sb-edge)>.wrap{max-width:none!important;padding-inline:0!important}
/* 3.6.10: headings follow Branding > Font Titles Caps like the framework layouts (owner, 2026-10-30: an all-caps site
   showed Studio Block headings in sentence case). Sites built before 3.6.10 keep their look (inc/look-baseline.php). */
body .sb-blk :is(h1, h2, h3) { text-transform: var(--title-transform, none); }

/* 3.6.10: grid and flex children may shrink below their content (min-width: auto made a price line, a long word or a
   wide card push whole blocks 150-300px past a phone screen: block proof 2026-10-31, memberships 07-17, testimonials 11/12,
   team 16/20, sponsorships 09/12). Text wraps instead; long unbroken words break. Phones only: on wider screens it let auto-sized label columns shrink
   below their words (VOL-02 titles split every few letters). Older looks keep the old sizing. */
@media (max-width: 767px) {
	body .sb-blk :is(.wrap, [class*="grid"], [class*="list"], [class*="row"], [class*="stack"], [class*="cols"], [class*="card"], .strip, .stub, .meter) > * { min-width: 0; }
	body .sb-blk :is(p, h1, h2, h3, h4, li, dd, dt, span, a) { overflow-wrap: break-word; }
}

/* 3.6.10: on a dark band, cards and panels drawn on the surface color turn into a faint light tint over the band, so
   the white text the band gives them stays readable (GRP-10, ICN-15 printed white text on light cards). */
body .sb-blk.sb-blk.sb-dark { --pb-surface: color-mix(in srgb, var(--pb-on-dark) 8%, transparent); }
/* 3.6.10: looks that paint their own dark panel in the text color (.dark, .ink, wizards 12/19 ...) turned white on a
   dark band, where the text color flips to white (WIZ-12, WIZ-19, TML-12: white panels with white text). On a dark
   band they paint Branding Dark instead. */
body .sb-blk.sb-blk.sb-dark :is(.dark, .ink, .tn-dark, .w12, .w19, .h11, .h16, .h22, .b07, .b19, .p17,
	.t9 .panels, .s12 .panel, .s13 .top, .t18 li, .sbi6, .p02 .card.feat, .i16-s, .m04, .m10, .ov-giant, .pm-giant, .m-panel, .util),
body .sb-blk.sb-blk.sb-dark:is(.sb-wizards.sb-wizards, .sb-timelines.sb-timelines) > :is(.dark, .w12, .w19) { background: var(--pb-ink); }
/* 3.6.10: form labels and legends on a dark band use the light text color, not Branding's (dark) form label color
   (WIZ-12, WIZ-19, FRM-13: black labels on a black band). */
body .sb-blk.sb-blk.sb-dark { --form-label-color: var(--pb-on-dark); }
/* Same inside a look's own dark panel on any band, where cards also take the faint light tint (GRP-10's match card and
   the wizard tiles printed white text on light cards). */
body .sb-blk.sb-blk :is(.dark, .ink, .is-dark, .tn-dark, .w12, .w19) { --form-label-color: var(--pb-on-dark); }
/* A light panel or card inside such a section (FRM-03, FRM-07 forms) keeps dark labels. */
body .sb-blk.sb-blk :is(.dark, .ink, .tn-dark) :is(.panel, [class*="card"]) { --form-label-color: var(--pb-text); }
/* .is-dark pads and the wizards 12/19 draw their cards and tiles as a faint light tint over the dark. */
body .sb-blk.sb-blk :is(.is-dark, .w12, .w19) { --pb-surface: color-mix(in srgb, var(--pb-on-dark) 8%, transparent); --pb-muted: var(--pb-muted-on-dark); }
/* .is-dark pads color their text with the text color, so it turns light inside them. (.dark and .ink keep it: the library
   uses it there as dark ink on light accents, such as LST-19's inverted button.) */
body .sb-blk.sb-blk .is-dark { --pb-text: var(--pb-on-dark); --pb-border: var(--pb-rule-on-dark); }

/* 3.6.10: a dark framework row adds .white, whose ".white h1-h6 { color: white !important }" outranked the looks' own
   heading color. Looks that keep a light panel on a dark row (ICN-06/19, IMG-12, SRM-06/09/12/15/18/20, VID-03, VOL-04,
   WIZ-01/03/18) printed white headings on it. Inside a look, headings follow the look's color, as on a light row. */
body .sb-blk.sb-blk :is(h1, h2, h3, h4, h5, h6) { color: var(--bl-look-headings) !important; }

/* 3.6.10: text links follow the library's own dark containers and photo captions too (block proof 2026-10-31: CTA-01..16,
   EVT-03/07/10/19, GAL-17, IMG-13/20, MEM-16, SLD-17/20, TEM-19, VOL-13/15 printed Branding's dark link color on a dark
   band or photo). Main-color fills use the text color chosen for Main. Older looks keep the Branding link color. */
body .sb-blk.sb-blk.sb-blk :is(.ink, .photo, .is-dark, .ov, .sb-ctas.sb-ctas .c5-door, .sb-galleries.sb-galleries .g17-cap,
	.sb-imagery.sb-imagery .i20-bar, .sb-sliders-carousels.sb-sliders-carousels .s17-c, .sb-team.sb-team .t19 .txt, .sb-events.sb-events .v7-photo,
	.sb-events.sb-events .v19, .sb-events.sb-events .v3-txt, .sb-careers.sb-careers .c16, .sb-blog.sb-blog .b18-i.hl) .tlink { color: var(--pb-on-dark); }
body .sb-blk.sb-blk.sb-blk :is(.pri, .on-primary, .sb-sliders-carousels.sb-sliders-carousels .s20-card:nth-child(even)) .tlink { color: var(--pbd-fallback-on-brand); }


/* Source: articles.fixes.css */
/* The theme forces p and li to inherit size and line-height (!important), which beats the library's font shorthand on these p elements; restore the design's sizes. */
body .sb-articles.sb-articles .acn{font-size:var(--st-type-h3) !important;line-height:var(--st-lh-h3) !important}
body .sb-articles.sb-articles .a12-n{line-height:var(--st-lh-head) !important}
body .sb-articles.sb-articles .a17-q p{line-height:1.08 !important;letter-spacing:-.02em}
body .sb-articles.sb-articles .a11-big>p:last-child{line-height:1.2 !important}
body .sb-articles.sb-articles .a10-box h2{line-height:1.6 !important}
/* Wide and full-bleed figures (and the hanging/outdented pull quotes) reach past the framed column: the block must not clip them; the page clips the 100vw overflow instead. */
body .sb-blk.sb-articles.sb-articles{overflow-x:visible}
html:has(.sb-articles.sb-articles),body:has(.sb-articles.sb-articles){overflow-x:clip}
/* The frame strips a look's own .wrap max-width; these looks keep a narrower measure than the page (design: max-width incl. 56px side padding). */
body .sb-blk.sb-articles.sb-articles .sec > .wrap.a10-w,body .sb-blk.sb-articles.sb-articles .sec > .wrap.a11-w,body .sb-blk.sb-articles.sb-articles .sec > .wrap.a13-w,body .sb-blk.sb-articles.sb-articles .sec > .wrap.a20-w{margin-inline:auto}
body .sb-blk.sb-articles.sb-articles .sec > .wrap.a10-w{max-width:calc(960px - 2 * clamp(20px,4vw,56px)) !important}
body .sb-blk.sb-articles.sb-articles .sec > .wrap.a11-w{max-width:calc(860px - 2 * clamp(20px,4vw,56px)) !important}
body .sb-blk.sb-articles.sb-articles .sec > .wrap.a13-w{max-width:calc(1100px - 2 * clamp(20px,4vw,56px)) !important}
body .sb-blk.sb-articles.sb-articles .sec > .wrap.a20-w{max-width:calc(1000px - 2 * clamp(20px,4vw,56px)) !important}
/* The theme removes link underlines; the design keeps the browser underline on the share links. */
body .sb-articles.sb-articles .share a{text-decoration:underline}
body .sb-articles.sb-articles .a07-n .share a{text-decoration:none}

body .sb-articles.sb-articles .poster.cc-poster-static { cursor: default; }
body .sb-articles.sb-articles .poster.cc-poster-static:hover img { transform: none; }


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-articles.sb-articles .btn { font-size: var(--st-type-body) !important; }
body .sb-articles.sb-articles .b10-ctl button { font-size: var(--st-type-body) !important; }
body .sb-articles.sb-articles .sel select,body .sb-articles.sb-articles .fin { font-size: var(--st-type-body) !important; }
body .sb-articles.sb-articles .lb .close { font-size: var(--st-type-body) !important; }
body .sb-articles.sb-articles .at.disp,body .sb-articles.sb-articles .at.big { font-size:var(--st-type-h2) !important; }
body .sb-articles.sb-articles .at.big { font-size:var(--st-type-h2) !important; }
body .sb-articles.sb-articles .ab { font-size: var(--st-type-body) !important; }
body .sb-articles.sb-articles .ab .lead { font-size: var(--st-type-lead) !important; }
body .sb-articles.sb-articles .ab h2 { font-size:var(--st-type-h3); }
body .sb-articles.sb-articles .pq { font-size: var(--st-type-quote); }
body .sb-articles.sb-articles .pq.out { font-size: var(--st-type-quote) !important; }
body .sb-articles.sb-articles .ab .dc::first-letter { font-size:var(--st-type-display); }
body .sb-articles.sb-articles .rel .tt { font-size:var(--st-type-h3); }
body .sb-articles.sb-articles .a08-r a { font-size: var(--st-type-h3); }
body .sb-articles.sb-articles .a11-w { font-size: var(--st-type-body) !important; }
body .sb-articles.sb-articles .a11-big>p:last-child { font-size: var(--st-type-quote) !important; }
body .sb-articles.sb-articles .a11-pts>li::before { font-size:var(--st-type-display) !important; }
body .sb-articles.sb-articles .a12-h { font-size: var(--st-type-body) !important; }
body .sb-articles.sb-articles .a12-n { font-size:var(--st-type-h3) !important; }
body .sb-articles.sb-articles .a13-w { font-size: var(--st-type-body) !important; }
body .sb-articles.sb-articles .a13-r h2 { font-size:var(--st-type-h3); }
body .sb-articles.sb-articles .a17-q p { font-size: var(--st-type-quote) !important; }
body .sb-articles.sb-articles .a17-h { font-size: var(--st-type-body) !important; }
body .sb-articles.sb-articles .a17-f { font-size: var(--st-type-body) !important; }
body .sb-articles.sb-articles .a19-q { font-size:var(--st-type-h3) !important; }
body .sb-articles.sb-articles .a20-w { font-size: var(--st-type-body) !important; }
body .sb-articles.sb-articles .a20-l li::before { font-size:var(--st-type-display); }

/* Source: bentos.fixes.css */
/* The theme pads every <article>; photo tiles must be edge to edge so the caption sits where the design has it. */
body .sb-blk.sb-bentos.sb-bentos .tile.k-photo{padding:0 !important}
/* The design's "tint" band is the Branding Fifth (tint) color, which base.css clears from the section; paint it here (same as cards). --st-space is 0 in the frame, so pad with a clamp. */
body .sb-blk.sb-bentos.sb-bentos .sec.on-tint{background:var(--pb-tint) !important}
/* Row backgrounds: ink band = the design's text color; surface = the design's plain white. */

/* Explicit opt-in: adaptive tiles never use the fixed per-look slots. */
body .sb-bentos.sb-bentos .bento.cc-bento-adaptive { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); grid-auto-rows: auto; }
body .sb-bentos.sb-bentos .cc-bento-adaptive > .tile { grid-area: auto; min-height: 0; }


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-bentos.sb-bentos .top code { font-size: var(--st-type-small) !important; }
body .sb-bentos.sb-bentos .tt { font-size:var(--st-type-h3) !important; }
body .sb-bentos.sb-bentos .big .tt { font-size:var(--st-type-h3) !important; }
body .sb-bentos.sb-bentos .b3 .k-quote blockquote { font-size: var(--st-type-quote) !important; }
body .sb-bentos.sb-bentos .big blockquote { font-size: var(--st-type-quote) !important; }
body .sb-bentos.sb-bentos .k-photo.chip .cap .h3 { font-size:var(--st-type-h3) !important; }
body .sb-bentos.sb-bentos .k-photo.pano .h3 { font-size:var(--st-type-h3) !important; }
body .sb-bentos.sb-bentos .num { font-size:var(--st-type-display) !important; }
body .sb-bentos.sb-bentos .giant .num { font-size:var(--st-type-display) !important; }
body .sb-bentos.sb-bentos .giant .h3 { font-size:var(--st-type-h3) !important; }
body .sb-bentos.sb-bentos .k-quote blockquote { font-size: var(--st-type-quote) !important; }
body .sb-bentos.sb-bentos .huge blockquote { font-size: var(--st-type-quote) !important; }
body .sb-bentos.sb-bentos .k-button.big .tt { font-size:var(--st-type-h3) !important; }

/* 3.6.10: the Branding Sizes overrides above dropped the tile-width caps, so stats, quotes and titles ran past narrow
   tiles (BEN-01/04/07/08/11/16/17/19). Every tile is an inline-size container: keep the Branding size, never wider than the tile. */
body .sb-bentos.sb-bentos .tile .num { font-size: min(clamp(calc(var(--st-type-display) * .55), 9.375vw, var(--st-type-display)), 24cqi) !important; }
body .sb-bentos.sb-bentos .tile blockquote { font-size: min(var(--st-type-quote), 10.5cqi) !important; }
body .sb-bentos.sb-bentos .tile :is(.tt, .h3) { font-size: min(clamp(calc(var(--st-type-h3) * .75), 2.1875vw, var(--st-type-h3)), 15cqi) !important; }

/* 3.6.10: looks that paint their own band (BEN-04/10/14/19: the category's page color, a tint or a dark bar of their own)
   keep their light-row colors on a dark row, so they render the same on every row. The dark row only turned their
   text white (white on their own light band) and faded their surface color to an 8% tint. */
body .sb-blk.sb-blk.sb-bentos.sb-bentos.sb-edge.sb-dark:is(.sb-look-04, .sb-look-10, .sb-look-14, .sb-look-19) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-bentos.sb-bentos.sb-edge.sb-dark:is(.sb-look-04, .sb-look-10, .sb-look-14, .sb-look-19) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-bentos.sb-bentos.sb-edge.sb-dark:is(.sb-look-04, .sb-look-10, .sb-look-14, .sb-look-19) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-bentos.sb-bentos.sb-edge.sb-dark:is(.sb-look-04, .sb-look-10, .sb-look-14, .sb-look-19) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }
/* 3.6.10: base.css paints .b07 and .b19 Dark on a dark row (staff bios 07 and 19 panels); the bento grids 07 and 19 share
   those class names and showed black lines between their tiles. Bento grids stay unpainted. */
body .sb-blk.sb-blk.sb-bentos.sb-bentos.sb-dark :is(.b07, .b19) { background: transparent; }

/* Source: blog.fixes.css */
/* Studio Blocks: blog. Without JS the topic filter and rail arrows are inert, so hide them. */
body .sb-blog.sb-blog:not(.sb-js) .b05-f,body .sb-blog.sb-blog:not(.sb-js) .b10-ctl{display:none}
/* Dark rows turn --pb-text light, so the cream button on a dark band lost its (ink) text and play icon. */
body .sb-blog.sb-blog.dark .btn,body .sb-blog.sb-blog.dark a.btn:hover{color:var(--pb-ink) !important}
body .sb-blog.sb-blog.sb-blk.sb-blk:not(.sb-dark){--pb-surface:var(--pb-tint)}


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-blog.sb-blog .btn { font-size: var(--st-type-body) !important; }
body .sb-blog.sb-blog .b10-ctl button { font-size: var(--st-type-body) !important; }
body .sb-blog.sb-blog .sel select,body .sb-blog.sb-blog .fin { font-size: var(--st-type-body) !important; }
body .sb-blog.sb-blog .lb .close { font-size: var(--st-type-body) !important; }
body .sb-blog.sb-blog .b02-r h3 { font-size: var(--st-type-h3); }
body .sb-blog.sb-blog .b02-r .ar { font-size: var(--st-type-body) !important; }
body .sb-blog.sb-blog .b03-t { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog .b03-r .tt { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog .b04-h { font-size:var(--st-type-h2); }
body .sb-blog.sb-blog .b04-t { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog.b04 .tt { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog.b05 .tt { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog.b06 .tt { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog.b07 .tt { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog .b09-t { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog.b09 .tt { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog.b10 .tt { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog.b11 .tt { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog .b11-r time { font-size:var(--st-type-h3) !important; }
body .sb-blog.sb-blog .b12-tile b { font-size:var(--st-type-h3) !important; }
body .sb-blog.sb-blog.b12 .tt { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog.b13 .tt { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog.b14 .tt { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog .b15-c blockquote { font-size: var(--st-type-quote); }
body .sb-blog.sb-blog.b15 .tt { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog.b16 .tt { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog .b17-r h3 { font-size: var(--st-type-h3); }
body .sb-blog.sb-blog.b18 .tt { font-size:var(--st-type-h3); }
body .sb-blog.sb-blog.b19 .tt { font-size:var(--st-type-h3) !important; }

/* 3.6.10: looks drawn as a dark band (.dark) sit on the row's Background, which paints the band. On a light row their
   words, rules, buttons and links follow the row (dark text), not white (BLG-07, BLG-17 and BLG-19 printed white on white). On a
   Secondary row they follow that color's lightness; Main, Black and photo rows keep the white design. */
body .sb-blk.sb-blk.sb-blog.sb-blog:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *).dark { --pb-on-dark: var(--pb-text); --pb-muted-on-dark: var(--bl-site-muted); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-rule-on-dark: var(--bl-site-border); color: var(--pb-text); }
body .bg-sec .sb-blk.sb-blk.sb-blog.sb-blog:not(.sb-edge):not(.sb-dark).dark { --pb-on-dark: oklch(from var(--bl-site-secondary) clamp(0, (0.62 - l) * 1000, 1) 0 0); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-blog.sb-blog:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *).dark .btn:not(.ghost) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-blog.sb-blog:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *).dark .btn:not(.ghost):hover { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-blog.sb-blog:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *).dark .btn.ghost { background: transparent; color: var(--bl-site-primary) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blog.sb-blog:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *).dark .tlink { color: var(--bl-site-link); }

/* 3.6.10: looks that paint their own band (BLG-08: the category's page color, a tint or a dark bar of their own)
   keep their light-row colors on a dark row, so they render the same on every row. The dark row only turned their
   text white (white on their own light band) and faded their surface color to an 8% tint. */
body .sb-blk.sb-blk.sb-blog.sb-blog.sb-edge.sb-dark:is(.sb-look-08) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-blog.sb-blog.sb-edge.sb-dark:is(.sb-look-08) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-blog.sb-blog.sb-edge.sb-dark:is(.sb-look-08) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-blog.sb-blog.sb-edge.sb-dark:is(.sb-look-08) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }

/* Source: booking.fixes.css */
/* The theme's global h3 (serif, tight line height) reaches the plain h3 headings inside looks. */
body .sb-booking.sb-booking .b03 .day h3, body .sb-booking.sb-booking .b12 .col h3 { font-family: var(--pb-body-font) !important; line-height: 1.55 !important; }
/* BKG-09: the design's ol keeps the browser's list padding and top margin (the theme resets them). */
body .sb-booking.sb-booking .b09 .steps { padding-left: 40px; margin-top: 17px; }
/* BKG-18: the design sets this link's border and padding inline; the ".opts a" card rule is more specific than the generated .sbi13. */
body .sb-booking.sb-booking .b18 .opts a.sbi13 { border: 0; padding: 8px 0; }

/* Result line of a posted form (shared Forms submit): inherits the look text color. */
body .sb-booking.sb-booking .sbstatus { margin: 12px 0 0; font-weight: var(--pb-ui-weight); }

/* Text links with an arrow: the library link is one text run, sb_a adds a span, so no flex gap between them. */
body .sb-booking.sb-booking .tlink { gap: 0; }

/* The theme has a global ".light { font-weight: 300 !important }" that hits the library's light button. */
body .sb-booking.sb-booking .btn.light { font-weight: var(--pb-ui-weight) !important; }

/* The theme paints placeholders #bbb; the library keeps the browser default. */
body .sb-booking.sb-booking input::placeholder, body .sb-booking.sb-booking textarea::placeholder { color: var(--pb-placeholder); opacity: 1; }


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-booking.sb-booking .cur { font-size: var(--st-type-small) !important; }
body .sb-booking.sb-booking .btn { font-size: var(--st-type-body); }
body .sb-booking.sb-booking .cal button,body .sb-booking.sb-booking .cal span.d { font-size: var(--st-type-body); }
body .sb-booking.sb-booking .field input,body .sb-booking.sb-booking .field textarea,body .sb-booking.sb-booking .field select { font-size: var(--st-type-body); }
body .sb-booking.sb-booking .b01 .price { font-size:var(--st-type-display) !important; }
body .sb-booking.sb-booking .b03 .day h3 b { font-size: var(--st-type-h3) !important; }
body .sb-booking.sb-booking .b05 .cap b { font-size:var(--st-type-h3) !important; }
body .sb-booking.sb-booking .b07 .big .cal button,body .sb-booking.sb-booking .b07 .big .cal span.d { font-size: var(--st-type-body) !important; }
body .sb-booking.sb-booking .b07 .big .cal button::after { font-size: var(--st-type-body) !important; }
body .sb-booking.sb-booking .b08 .days .slot b { font-size: var(--st-type-h3) !important; }
body .sb-booking.sb-booking .b11 .row b { font-size:var(--st-type-display) !important; }
body .sb-booking.sb-booking .b16 td.n { font-size: var(--st-type-body) !important; }
body .sb-booking.sb-booking .b17 .date b { font-size:var(--st-type-h3) !important; }
body .sb-booking.sb-booking .b18 .opts b { font-size:var(--st-type-h3) !important; }
body .sb-booking.sb-booking .b19 .date b { font-size:var(--st-type-h3) !important; }
body .sb-booking.sb-booking h2.h3 { font-size:var(--st-type-h2) !important; }

/* 3.6.10: 06's provider note (3.6.9) sat flush on the card's left edge; it takes the card's 40px padding (BKG-06). */
body .sb-booking.sb-booking .b06 .card > p.small { margin: 0; padding: 0 40px; }
@media (max-width: 640px) { body .sb-booking.sb-booking .b06 .card > p.small { padding-inline: 24px; } }
/* 3.6.10: 05's three capacity cells may shrink and wrap a long figure instead of running under the next cell (BKG-05). */
body .sb-booking.sb-booking .b05 .cap div { min-width: 0; }
body .sb-booking.sb-booking .b05 .cap b { overflow-wrap: break-word; line-height: 1.15; }

/* Source: cards.fixes.css */
/* The design's "tint" band is the Branding Fifth (tint) color, which base.css clears from the section; paint it here (the looks are edge to edge, so the band keeps the design's full width and padding). */
body .sb-blk.sb-cards.sb-cards .sec.on-tint{background:var(--pb-tint) !important}
/* Row backgrounds: ink band = the design's text color; surface = the design's plain white. */


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-cards.sb-cards .top code { font-size: var(--st-type-small) !important; }
body .sb-cards.sb-cards .c10-t { font-size:var(--st-type-h3) !important; }
body .sb-cards.sb-cards .c12-i .h2 { font-size:var(--st-type-h2) !important; }
body .sb-cards.sb-cards .c14-t { font-size:var(--st-type-h3) !important; }
body .sb-cards.sb-cards .c16-n b { font-size:var(--st-type-display) !important; }
body .sb-cards.sb-cards .c17-b .h2 { font-size:var(--st-type-h3) !important; }
body .sb-cards.sb-cards h3.h2 { font-size:var(--st-type-h3) !important; }
/* 3.6.10: without an icon, 09's rows give the text the full width (it fell into the 36px icon column). */
body .sb-cards.sb-cards .c9-row:not(:has(> .ic)) { grid-template-columns: 1fr; }

/* 3.6.10: no icon picked, no empty tinted box (CRD-08). */
body .sb-cards.sb-cards .c8-i:not(:has(img, svg)) { display: none; }

/* 3.6.10: looks that paint their own band (CRD-04/15/19: the category's page color, a tint or a dark bar of their own)
   keep their light-row colors on a dark row, so they render the same on every row. The dark row only turned their
   text white (white on their own light band) and faded their surface color to an 8% tint. */
body .sb-blk.sb-blk.sb-cards.sb-cards.sb-edge.sb-dark:is(.sb-look-04, .sb-look-15, .sb-look-19) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-cards.sb-cards.sb-edge.sb-dark:is(.sb-look-04, .sb-look-15, .sb-look-19) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-cards.sb-cards.sb-edge.sb-dark:is(.sb-look-04, .sb-look-15, .sb-look-19) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-cards.sb-cards.sb-edge.sb-dark:is(.sb-look-04, .sb-look-15, .sb-look-19) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }
/* 3.6.10: on a dark row the tint panels inside a look (CRD-14/17 cards, FRM-19's intro) fade like its surface color, so the
   row's white text stays readable on them. */
body .sb-blk.sb-blk.sb-cards.sb-cards.sb-dark:not(.sb-edge) { --pb-tint: color-mix(in srgb, var(--pb-on-dark) 12%, transparent); }

/* Source: careers.fixes.css */
/* Careers: framework-only fixes. */
/* Content looks sit on the row's Background (surface or dark), so the look's own tint/dark band must not paint a second box. */
body .sb-blk.sb-careers.sb-careers:not(.sb-edge) .tint,
body .sb-blk.sb-careers.sb-careers:not(.sb-edge) .dark{background:transparent}
/* Author display rules (grid, flex) beat the [hidden] attribute the filters use. */
body .sb-careers.sb-careers [hidden]{display:none !important}
/* The theme caps .section at 1240px; edge bands must touch both screen edges. */
body .sb-careers.sb-careers.sb-edge .section{max-width:none;width:100%}
/* Phone table cards: the theme does not set border-box, so padding pushed the card past its column. */
body .sb-careers.sb-careers .c09-t tr{box-sizing:border-box}
/* The theme's "p inherits size" rule (!important) shrinks display numerals and pay lines that are <p>s. */
body .sb-careers.sb-careers .c18-t,body .sb-careers.sb-careers .c04-pay{font-size:var(--st-type-h3) !important}
body .sb-careers.sb-careers .c18-n{line-height:.8 !important;margin:0}
body .sb-careers.sb-careers .c18-t{line-height:1.25 !important}
/* The theme's h3 weight/spacing beat the design's .t3/.tt (500). */
body .sb-careers.sb-careers .t3,body .sb-careers.sb-careers .tt{font-weight:500}
body .sb-careers.sb-careers .c19-n{line-height:1 !important;margin:0}
/* The design's page sets border-box on everything; the theme does not, so padded cards and rows overflowed their columns. */
body .sb-careers.sb-careers *,body .sb-careers.sb-careers *::before,body .sb-careers.sb-careers *::after{box-sizing:border-box}
/* Dark bands: mix borders and muted text with Black; --pb-text is already light there. */
body .sb-careers.sb-careers .dark{--pb-muted:color-mix(in srgb, var(--pb-on-dark) 74%, var(--pb-ink));--pb-border:color-mix(in srgb, var(--pb-on-dark) 20%, var(--pb-ink))}
/* Sweep: the theme's p size/line-height (!important) and h3 rules reach into these elements. */
body .sb-careers.sb-careers p.eyebrow{font-size:var(--st-type-label) !important;line-height:1.2 !important}
body .sb-careers.sb-careers .c04-pay{line-height:1.2 !important}
body .sb-careers.sb-careers .c13-p{line-height:1.1 !important}
body .sb-careers.sb-careers .c04-o{font-weight:700;line-height:1.6 !important}
/* Design: 960px border-box column with 56px padding = 848px of content, centered. */
body .sb-careers.sb-careers.sb-blk:not(.sb-edge) > .c12 > .c12-w.wrap{max-width:848px !important;margin-inline:auto}
body .sb-careers.sb-careers.sb-blk.sb-blk:not(.sb-dark){--pb-surface:var(--pb-tint)}
body .sb-careers.sb-careers .c20 .btn{background:var(--pb-on-dark) !important;color:var(--pb-ink) !important}
body .sb-careers.sb-careers .c20 .tlink{color:var(--pb-on-dark) !important}


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-careers.sb-careers .btn { font-size: var(--st-type-body) !important; }
body .sb-careers.sb-careers .b10-ctl button { font-size: var(--st-type-body) !important; }
body .sb-careers.sb-careers .sel select,body .sb-careers.sb-careers .fin { font-size: var(--st-type-body) !important; }
body .sb-careers.sb-careers .lb .close { font-size: var(--st-type-body) !important; }
body .sb-careers.sb-careers .c02-r h3 { font-size: var(--st-type-h3); }
body .sb-careers.sb-careers .c03 .tt { font-size:var(--st-type-h3); }
body .sb-careers.sb-careers .c04-o { font-size:var(--st-type-h3) !important; }
body .sb-careers.sb-careers .c04-l a { font-size: var(--st-type-h3); }
body .sb-careers.sb-careers .c06-h { font-size:var(--st-type-h2) !important; }
body .sb-careers.sb-careers .c06 .tt { font-size:var(--st-type-h3); }
body .sb-careers.sb-careers .c09-t tbody th { font-size: var(--st-type-h3); }
body .sb-careers.sb-careers .c10-l b { font-size:var(--st-type-h3); }
body .sb-careers.sb-careers .c12-d summary b { font-size:var(--st-type-h3); }
body .sb-careers.sb-careers .c13 .tt { font-size:var(--st-type-h3); }
body .sb-careers.sb-careers .c13-p { font-size:var(--st-type-display) !important; }
body .sb-careers.sb-careers .c14-l { font-size:var(--st-type-h2); }
body .sb-careers.sb-careers .c14 .tt { font-size:var(--st-type-h3); }
body .sb-careers.sb-careers .c15-o li::before { font-size:var(--st-type-h3); }
body .sb-careers.sb-careers .c16-n b { font-size:var(--st-type-display); }
body .sb-careers.sb-careers .c17-q blockquote { font-size: var(--st-type-quote); }
body .sb-careers.sb-careers .c17-h { font-size:var(--st-type-h2) !important; }
body .sb-careers.sb-careers .c17 .tt { font-size:var(--st-type-h3); }
body .sb-careers.sb-careers .c18-n { font-size:var(--st-type-display) !important; }
body .sb-careers.sb-careers .c18-l a { font-size: var(--st-type-h3) !important; }
body .sb-careers.sb-careers .c19-n { font-size:var(--st-type-display) !important; }
body .sb-careers.sb-careers .c20-h { font-size:var(--st-type-h2); }

/* 3.6.10: in 04's "Other openings" list the place and type squeezed into a sliver ("Full-/time", CAR-04). The facts keep
   one line and the role title takes the wrap; phones already stack them. */
@media (min-width: 768px) {
	body .sb-careers.sb-careers .c04-l li > span { flex: 0 0 auto; white-space: nowrap; }
	body .sb-careers.sb-careers .c04-l li > a { min-width: 0; }
}

/* 3.6.10: looks drawn as a dark band (.dark) sit on the row's Background, which paints the band. On a light row their
   words, rules, buttons and links follow the row (dark text), not white (CAR-09 and CAR-18 printed white on white). On a
   Secondary row they follow that color's lightness; Main, Black and photo rows keep the white design. */
body .sb-blk.sb-blk.sb-careers.sb-careers:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark { --pb-on-dark: var(--pb-text); --pb-muted-on-dark: var(--bl-site-muted); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-rule-on-dark: var(--bl-site-border); color: var(--pb-text); }
body .bg-sec .sb-blk.sb-blk.sb-careers.sb-careers:not(.sb-edge):not(.sb-dark) > .dark { --pb-on-dark: oklch(from var(--bl-site-secondary) clamp(0, (0.62 - l) * 1000, 1) 0 0); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-careers.sb-careers:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn:not(.ghost) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-careers.sb-careers:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn:not(.ghost):hover { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-careers.sb-careers:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn.ghost { background: transparent; color: var(--bl-site-primary) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-careers.sb-careers:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .tlink { color: var(--bl-site-link); }

/* Source: content.fixes.css */
/* CON-10: the theme's blockquote p size beats the library rule on desktop; restore the h2-scale pull quote. */
@media (min-width:768px){body .sb-content.sb-content .c10-q blockquote p{line-height:1.14 !important}}
/* CON-07: the theme resets borders on .copy; restore the vertical hairline beside the note. */
@media (min-width:768px){body .sb-content.sb-content .c07-b{border-left:var(--st-line-w) solid var(--pb-border) !important}}
/* The theme resets paragraph size and line height (!important); these paragraphs carry the library's display sizes. */
@media (max-width:767px){body .sb-content.sb-content .c10-q blockquote p{line-height:1.14 !important}}
body .sb-content.sb-content .c19-l .c19-sig{font-size:var(--st-type-h3) !important;line-height:1.35 !important}
@media (max-width:767px){body .sb-content.sb-content .c08-q p{line-height:1.3 !important}}
/* CON-08: links in the text stay underlined (the theme removes it). */
body .sb-content.sb-content .c08-body a{text-decoration:underline !important}


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-content.sb-content .d { font-size:var(--st-type-h2); }
body .sb-content.sb-content .btn { font-size: var(--st-type-body); }
body .sb-content.sb-content .c04-stats dt { font-size:var(--st-type-display); }
body .sb-content.sb-content .c08-first::first-letter { font-size:var(--st-type-display); }
body .sb-content.sb-content .c08-q p { font-size: var(--st-type-quote) !important; }
body .sb-content.sb-content .c10-q blockquote p { font-size: var(--st-type-quote) !important; }
body .sb-content.sb-content .c19-q { font-size: var(--st-type-quote); }

/* 3.6.10: the brand-band statement (06) is designed for Background = Main Color; on a light row its white words vanished.
   There the look paints its own brand panel. */
body .sb-content.sb-content:not(.sb-dark):not(.sb-edge) > .sec.on-primary { background: var(--pb-primary) !important; color: var(--pbd-fallback-on-brand); border-radius: var(--st-photo-r); padding: clamp(40px, 6vw, 88px) clamp(24px, 5vw, 72px) !important; }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-content.sb-content .on-primary .btn:not(.ghost) { background: var(--pbd-fallback-on-brand); color: var(--bl-site-primary); border-color: var(--pbd-fallback-on-brand); }

/* Source: countdowns.fixes.css */
/* The theme's paragraph reset overrides font shorthands in the library. Restore display text. */
body .sb-countdowns.sb-countdowns .k03-d { font-size: var(--st-type-h3) !important; line-height: 1 !important; }
body .sb-countdowns.sb-countdowns .k07-s { font-size: var(--st-type-label) !important; line-height: 1.2 !important; }
body .sb-countdowns.sb-countdowns .k07-d { font-size: var(--st-type-h2) !important; line-height: var(--st-lh-head) !important; }
body .sb-countdowns.sb-countdowns .k07-c[data-state="ended"] .k07-d { font-size: var(--st-type-h3) !important; }
body .sb-countdowns.sb-countdowns .k13-s { font-size: var(--st-type-h1) !important; line-height: var(--st-lh-head) !important; }
body .sb-countdowns.sb-countdowns .k14-cd { line-height: var(--st-lh-display) !important; }
body .sb-countdowns.sb-countdowns .k15-in, body .sb-countdowns.sb-countdowns .k17-mo { font-size: var(--st-type-h3) !important; line-height: var(--st-lh-h3) !important; }
body .sb-countdowns.sb-countdowns p.h { font-size: var(--st-type-h2) !important; line-height: var(--st-lh-head) !important; }
/* Keep calendar actions inside the photo band at narrow phone widths. */
@media (max-width: 767px) {
	body .sb-countdowns.sb-countdowns .k13-s { font-size: var(--st-type-h2) !important; }
	body .sb-countdowns.sb-countdowns .k02 .acts {gap:var(--st-grid-gap,12px 16px); }
}
/* The library scopes body overflow to each block; allow the native calendar popup to extend. */
body .sb-countdowns.sb-countdowns { overflow: visible; }
@media (min-width: 768px) {
	body .sb-countdowns.sb-countdowns .cal ul { left: auto; right: 0; }
}
/* The month view's calendar action sits in the left column at tablet widths. */
@media (min-width: 768px) {
	body .sb-countdowns.sb-countdowns.sb-look-17 .cal ul { left: 0; right: auto; }
}
/* The theme resets link underlines; the design underlines the live/ended text links. */
body .sb-countdowns.sb-countdowns p.h > a { text-decoration: underline; }
/* sb_a() prints the arrow in its own span; the design has it as part of the link text (one underline, no flex gap). */
body .sb-countdowns.sb-countdowns a:is(.tlink, .btn) > span[aria-hidden="true"] { display: contents; }


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-countdowns.sb-countdowns .d { font-size:var(--st-type-h2); }
body .sb-countdowns.sb-countdowns .btn { font-size: var(--st-type-body); }
body .sb-countdowns.sb-countdowns .k01-grid .cd-n { font-size:var(--st-type-display) !important; }
body .sb-countdowns.sb-countdowns .k02-row .cd-n { font-size:var(--st-type-display) !important; }
body .sb-countdowns.sb-countdowns .k04-row .cd-n { font-size:var(--st-type-display) !important; }
body .sb-countdowns.sb-countdowns .k04-day { font-size:var(--st-type-display) !important; }
body .sb-countdowns.sb-countdowns .k05-r .cd-n { font-size:var(--st-type-display) !important; }
body .sb-countdowns.sb-countdowns .k06-tile { font-size:var(--st-type-h3); }
body .sb-countdowns.sb-countdowns .k08-cd .cd-n { font-size:var(--st-type-display) !important; }
body .sb-countdowns.sb-countdowns .k09-n .cd-n { font-size:var(--st-type-display) !important; }
body .sb-countdowns.sb-countdowns .k10-n { font-size:var(--st-type-display); }
body .sb-countdowns.sb-countdowns .k11-cd .cd-n { font-size:var(--st-type-display) !important; }
body .sb-countdowns.sb-countdowns .k12-rail .cd-n { font-size:var(--st-type-display) !important; }
body .sb-countdowns.sb-countdowns .k14-cd { font-size:var(--st-type-display) !important; }
body .sb-countdowns.sb-countdowns .k15-dt b { font-size:var(--st-type-h3); }
body .sb-countdowns.sb-countdowns .k16-cd .cd-n { font-size:var(--st-type-display) !important; }
body .sb-countdowns.sb-countdowns .k18 .cd-n { font-size:var(--st-type-display) !important; }
body .sb-countdowns.sb-countdowns .k20-cd .cd-n { font-size:var(--st-type-display) !important; }
body .sb-countdowns.sb-countdowns h2.h3 { font-size:var(--st-type-h2) !important; }

/* 3.6.10: the Branding Numbers size is wider than the ticket stub (11) and the event card (20): the minutes ran past the
   card edge (CDN-11/20). Inside those boxes the countdown never grows wider than the box. */
body .sb-countdowns.sb-countdowns :is(.k11-stub, .k20-b) { container-type: inline-size; }
body .sb-countdowns.sb-countdowns .k11-cd .cd-n { font-size: min(clamp(calc(var(--st-type-display) * .55), 9.375vw, var(--st-type-display)), 18cqi) !important; }
body .sb-countdowns.sb-countdowns .k20-cd .cd-n { font-size: min(clamp(calc(var(--st-type-display) * .55), 9.375vw, var(--st-type-display)), 20cqi) !important; }

/* 3.6.10: brand-band countdowns (03, 13, 18) are designed for Background = Main Color; the row paints that color, so on a
   light row their white numbers vanished (CDN-03/13/18). On a light row the look paints its own brand panel. */
body .sb-countdowns.sb-countdowns:not(.sb-dark):not(.sb-edge) > .sec.on-primary { background: var(--pb-primary) !important; color: var(--pbd-fallback-on-brand); border-radius: var(--st-photo-r); padding: clamp(40px, 6vw, 88px) clamp(24px, 5vw, 72px) !important; }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-countdowns.sb-countdowns .on-primary .btn:not(.ghost) { background: var(--pbd-fallback-on-brand); color: var(--bl-site-primary); border-color: var(--pbd-fallback-on-brand); }
/* 3.6.10: the inline strip (03) gets a little more air so it reads as a band, not a hairline bar (CDN-03). */
body .sb-countdowns.sb-countdowns .k03 { padding-block: 24px; }

/* Source: ctas.fixes.css */
/* Content looks have their .ink/.pri/.sur background removed (the row paints it), and a dark row turns --pb-text light,
   so the library's "light button on ink" would be light on light. Keep the button light with dark text. */
body .sb-ctas.sb-ctas.sb-dark .ink .btn { background: var(--pb-on-dark); color: var(--pb-ink); }

/* The arrow follows the text like the design's "Text →": the helper prints a no-break space and a span, and .tlink's flex gap made it wide.
   The arrow glyph is not in the Branding font's latin subset; the library page falls back to the system UI font. */
body .sb-ctas.sb-ctas :is(.tlink, .big){gap:0}
body .sb-ctas.sb-ctas :is(.tlink, .big) span[aria-hidden]{font-family:var(--pb-body-font,system-ui, sans-serif)}
/* 14: the theme resets paragraph size; the quote is the h3 size. */

/* 03: the text half lines up with the framework's sections at every width (base.css --sb-side). */
body .sb-ctas.sb-ctas .c3-text{padding-left:var(--sb-side)}
@media (max-width:900px){body .sb-ctas.sb-ctas .c3-text{padding-inline:var(--sb-side)}}


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-ctas.sb-ctas .btn { font-size: var(--st-type-body); }
body .sb-ctas.sb-ctas .inp { font-size: var(--st-type-body) !important; }
body .sb-ctas.sb-ctas .c5-door h3 { font-size:var(--st-type-h3); }
body .sb-ctas.sb-ctas .c6 h2.hd { font-size:var(--st-type-h3) !important; }
body .sb-ctas.sb-ctas .c13-stats b { font-size:var(--st-type-display); }
body .sb-ctas.sb-ctas .c14 blockquote p { font-size: var(--st-type-quote) !important; }
body .sb-ctas.sb-ctas .c16-track span { font-size:var(--st-type-h2); }
body .sb-ctas.sb-ctas .c19-steps .n { font-size:var(--st-type-display); }
body .sb-ctas.sb-ctas .c20 .note { font-size: var(--st-type-quote) !important; }
body .sb-ctas.sb-ctas .c20 .sig b { font-size:var(--st-type-h3) !important; }

/* 3.6.10: brand-color looks (.pri) are designed for Background = Main Color; the row paints that color, so on a light
   row their white text vanished (CTA-02/14). On a light row the look paints its own brand panel. */
body .sb-ctas.sb-ctas:not(.sb-dark):not(.sb-edge) > .blk.pri { background: var(--pb-primary) !important; color: var(--pbd-fallback-on-brand); border-radius: var(--st-photo-r); padding: clamp(40px, 6vw, 88px) clamp(24px, 5vw, 72px) !important; }
/* A fill button on its own brand panel is the panel's color; the library puts a light button there (CTA-03). */
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-ctas.sb-ctas .pri .btn:not(.ghost) { background: var(--pbd-fallback-on-brand); color: var(--bl-site-primary); border-color: var(--pbd-fallback-on-brand); }
/* 04: the card is Branding Secondary; its words follow it (dark on a light card, light on a dark one). */
body .sb-ctas.sb-ctas .c4-card { --c4-on: oklch(from var(--pb-secondary) clamp(0, (0.62 - l) * 1000, 1) 0 0); color: var(--c4-on); }
body .sb-blk.sb-blk.sb-blk.sb-ctas.sb-ctas .c4-card :is(.hd, .lead, .tlink) { color: var(--c4-on); }
/* 3.6.10: 14's quote fills half the band; at the full Quotes size it ran seven lines of three words. */
body .sb-ctas.sb-ctas .c14 blockquote p { font-size: min(var(--st-type-quote), max(26px, 2.5vw)) !important; }

/* 3.6.10: CTA-20's note is a personal note in the design (lead size, about 20-26px), not a pull quote; the Branding Sizes
   pass printed it at the full Quotes size (a nine-line wall on desktop, three words a line on a phone) and the signature
   name at Medium. Both go back to the design's proportions: note at Lead (scaled up a little on wide screens), name at Copy. */
body .sb-ctas.sb-ctas .c20 .note { font-size:var(--st-type-lead) !important; }
body .sb-ctas.sb-ctas .c20 .sig b { font-size: var(--st-type-body) !important; }

/* 3.6.10: a Secondary row is not one of the dark rows the bridge marks (.sb-dark), so on a dark Secondary color the
   look's sentence, checklist and links kept the dark body and link colors (CTA-08 on the Luma test: 2.2:1). Looks that sit
   on the row follow that color's lightness; panels painted in the text color (.ink), brand panels (.pri) and photo
   panels keep their own colors. Edge looks paint their own band (CTA-10, CTA-12) and keep their light-row colors. */
body .bg-sec .sb-blk.sb-blk.sb-ctas.sb-ctas:not(.sb-dark):not(.sb-edge) { --sb-on-sec: oklch(from var(--bl-site-secondary) clamp(0, (0.62 - l) * 1000, 1) 0 0); --pb-text: var(--sb-on-sec); --pb-muted: color-mix(in srgb, var(--sb-on-sec) 88%, var(--bl-site-secondary)); --pb-border: color-mix(in srgb, var(--sb-on-sec) 22%, transparent); color: var(--pb-text); }
body .bg-sec .sb-blk.sb-blk.sb-ctas.sb-ctas:not(.sb-dark):not(.sb-edge) :is(.ink, .pri, .photo) { --pb-text: var(--bl-site-text, var(--pb-ink)); }
body .bg-sec .sb-blk.sb-blk.sb-blk.sb-ctas.sb-ctas:not(.sb-dark):not(.sb-edge) .tlink:not(:is(.ink, .pri, .photo, .ov) *) { color: var(--sb-on-sec); }
/* On a Secondary row the brand panel's button label (Main) printed in the button's own color (CTA-02/14); it takes the
   panel's brand color, which the panel itself paints. */
body .bg-sec .sb-blk.sb-blk.sb-blk.sb-blk.sb-ctas.sb-ctas .pri .btn:not(.ghost) { color: var(--pb-primary); }

/* 3.6.10: a dark Secondary row now counts as dark (.sb-dark). CTA-10 and CTA-12 paint their own light band there, so
   they keep their light-row colors, as they did before (white words on their light band otherwise). CTA-12's top line
   stays light: it sits on the look's own brand strip (the measure reads the block's white behind it as 1.0:1). */
body .bg-sec .sb-blk.sb-blk.sb-blk.sb-ctas.sb-ctas.sb-edge.sb-dark:is(.sb-look-10, .sb-look-12) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .bg-sec .sb-blk.sb-blk.sb-blk.sb-blk.sb-ctas.sb-ctas.sb-edge.sb-dark:is(.sb-look-10, .sb-look-12) .btn:not(.ghost) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .bg-sec .sb-blk.sb-blk.sb-blk.sb-blk.sb-ctas.sb-ctas.sb-edge.sb-dark:is(.sb-look-10, .sb-look-12) .btn.ghost { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .bg-sec .sb-blk.sb-blk.sb-blk.sb-blk.sb-ctas.sb-ctas.sb-edge.sb-dark:is(.sb-look-10, .sb-look-12) .tlink { color: var(--bl-site-link); }

/* Source: data.fixes.css */
body .sb-blk.sb-data.sb-data .dark{background:var(--pb-ink);color:var(--pb-on-dark)}
/* DAT-20: the design's photo carries height="960" and the generated CSS can't cancel it, so it renders 960px tall; match it. */
body .sb-data.sb-data .folio-top figure img{height:960px}

/* Only configured recommendations override the historical second-column treatment. */
body .sb-data.sb-data .cc-recommended th, body .sb-data.sb-data .cc-recommended td { background: transparent; border-left: 0; border-right: 0; }
body .sb-data.sb-data .focus-matrix .cc-recommended thead th:not(:first-child) { font-size: var(--st-type-h3) !important; }
body .sb-data.sb-data .cc-recommended .is-recommended { background: var(--pb-surface); border-inline: var(--st-line-w) solid var(--pb-primary); }
body .sb-data.sb-data .cc-recommended thead th.is-recommended { border-top: 3px solid var(--pb-primary); font-size: var(--st-type-h2) !important; }


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-data.sb-data .stat h3 { font-size:var(--st-type-h3); }
body .sb-data.sb-data .quartet .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .lead-number .primary .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .lead-number .secondary .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .photo-count .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .inverted .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .ledger .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .columns-chart .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .rings .stat .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .progress-list .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .billboard .primary .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .billboard .grid3 .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .segments .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .panorama-facts .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .constellation .stat .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .rail-layout .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .word-led .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .word-led .stat h3 { font-size:var(--st-type-h3); }
body .sb-data.sb-data .photo-field .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .spine-layout .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .receipt .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .ribbons .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .lead-cells dd { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .value { font-size:var(--st-type-display) !important; }
body .sb-data.sb-data .rings .value { font-size:var(--st-type-display) !important; }
/* 3.6.10: 10 with one group of rows shows one full-width table (half the band stayed empty). */
body .sb-data.sb-data .paired-tables:has(> table:only-child) { grid-template-columns: 1fr; }
/* 3.6.10: DAT-20's folio photo is a landscape picture beside the intro; a global image height stretched it into a tall
   strip that left the intro column mostly empty. */
body .sb-data.sb-data .folio-top figure { align-self: start; }
body .sb-data.sb-data .folio-top figure img { height: auto !important; aspect-ratio: 3 / 2; object-fit: cover; }

/* 3.6.10: looks drawn as a dark band (.dark) sit on the row's Background, which paints the band. On a light row their
   words, rules, buttons and links follow the row (dark text), not white (DAT-11 printed white on white). On a
   Secondary row they follow that color's lightness; Main, Black and photo rows keep the white design. */
body .sb-blk.sb-blk.sb-data.sb-data:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark { --pb-on-dark: var(--pb-text); --pb-muted-on-dark: var(--bl-site-muted); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-rule-on-dark: var(--bl-site-border); color: var(--pb-text); }
body .bg-sec .sb-blk.sb-blk.sb-data.sb-data:not(.sb-edge):not(.sb-dark) > .dark { --pb-on-dark: oklch(from var(--bl-site-secondary) clamp(0, (0.62 - l) * 1000, 1) 0 0); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-data.sb-data:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn:not(.ghost) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-data.sb-data:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn:not(.ghost):hover { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-data.sb-data:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn.ghost { background: transparent; color: var(--bl-site-primary) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-data.sb-data:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .tlink { color: var(--bl-site-link); }

/* Source: dividers-utility.fixes.css */
/* Dividers and utility: framework-only fixes (the category file is hand written; this file holds later fixes). */

/* 3.6.10: looks that paint their own pale paper band (01, 04, 06, 08, 13, 14, 17) keep dark type on a dark row
   background; on a dark band their white title sat on the pale paper (DIV-04, DIV-06). */
body .sb-dividers-utility.sb-dividers-utility.sb-dark:is(.sb-look-01, .sb-look-04, .sb-look-06, .sb-look-08, .sb-look-13, .sb-look-14, .sb-look-17) {
  --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted, #6b6b73); --pb-border: var(--bl-site-border);
  --pb-surface: var(--bl-site-surface, var(--bl-site-bg));
  --dv-ink: var(--pb-text); --dv-surface: var(--pb-surface); color: var(--dv-ink);
}
/* 3.6.10: DIV-12's title took the Titles size inside a 30px line, so the sentence under it ran into it. An announcement
   bar title stays bar-sized. */
body .sb-dividers-utility.sb-dividers-utility.sb-blk .d12-h { font-size:var(--st-type-h3) !important; line-height: 1.15 !important; }
body .sb-dividers-utility.sb-dividers-utility .d12-t { margin-top: 8px; }
/* 3.6.10: DIV-06 at the Branding Huge size (the design's word was 200px) filled a 70px strip edge to edge, so the
   faint word read as a cut-off smudge. The word gets room above and below and a little more ink. */
body .sb-dividers-utility.sb-dividers-utility .d06 { padding-block: clamp(20px, 3vw, 44px); }
body .sb-dividers-utility.sb-dividers-utility .d06-w { line-height: 1 !important; color: color-mix(in srgb, var(--dv-ink) 22%, transparent); }

/* 3.6.10: looks that paint their own dark bar (09, 10, 12, 15, 19) keep their light-row colors on a dark row: the row
   turned their ink white (DIV-10's bar went white) and their light words into an 8% tint (DIV-12, DIV-19). */
body .sb-dividers-utility.sb-dividers-utility.sb-dark:is(.sb-look-09, .sb-look-10, .sb-look-12, .sb-look-15, .sb-look-19) {
  --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-surface: var(--bl-site-surface, var(--bl-site-bg));
  --dv-ink: var(--pb-text); --dv-surface: var(--pb-surface);
}

/* Source: email-rows.fixes.css */
/* Email rows: framework-only fixes. */

/* 3.6.10: the consent row (3.6.9) was styled only in look 16; elsewhere it printed tiny, with the link in the page's
   dark link color, unreadable on the dark panels (EML-05). Every look gets the readable row, in its own text colors. */
body .sb-email-rows.sb-email-rows .e:not(.e16) .ef-consent { display: flex; align-items: center;gap:var(--st-grid-gap,10px); min-height: 44px; margin-top: 10px; font-size: var(--st-type-small); line-height: 1.4; color: var(--e-mut); cursor: pointer; }
body .sb-email-rows.sb-email-rows .e:not(.e16) .ef-consent span { font-size: var(--st-type-small) !important; }
body .sb-email-rows.sb-email-rows .e:not(.e16) .ef-consent input { flex: none; width: 18px; height: 18px; margin: 0; accent-color: currentColor; }
body .sb-email-rows.sb-email-rows .e:not(.e16) .ef-consent a { color: inherit; font-weight: var(--pb-ui-weight); text-decoration: underline; text-underline-offset: 3px; min-height: 0; }
body .sb-email-rows.sb-email-rows .e:is(.e04, .e05, .e06, .e09, .e10, .e11, .e18) .ef-consent { color: color-mix(in srgb, var(--e-bg) 82%, transparent); }

/* 3.6.10: looks that paint their own band (EML-02/04/05/06/07/14/17: the category's page color, a tint or a dark bar of their own)
   keep their light-row colors on a dark row, so they render the same on every row. The dark row only turned their
   text white (white on their own light band) and faded their surface color to an 8% tint. */
body .sb-blk.sb-blk.sb-email-rows.sb-email-rows.sb-edge.sb-dark:is(.sb-look-02, .sb-look-04, .sb-look-05, .sb-look-06, .sb-look-07, .sb-look-14, .sb-look-17) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-email-rows.sb-email-rows.sb-edge.sb-dark:is(.sb-look-02, .sb-look-04, .sb-look-05, .sb-look-06, .sb-look-07, .sb-look-14, .sb-look-17) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-email-rows.sb-email-rows.sb-edge.sb-dark:is(.sb-look-02, .sb-look-04, .sb-look-05, .sb-look-06, .sb-look-07, .sb-look-14, .sb-look-17) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-email-rows.sb-email-rows.sb-edge.sb-dark:is(.sb-look-02, .sb-look-04, .sb-look-05, .sb-look-06, .sb-look-07, .sb-look-14, .sb-look-17) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }

/* Source: events.fixes.css */
/* Events: framework-only fixes. */
/* Content looks sit on the row's Background (surface or dark), so the look's own band must not paint a second box. */
body .sb-blk.sb-events.sb-events:not(.sb-edge) .is-surface,
body .sb-blk.sb-events.sb-events:not(.sb-edge) .is-dark{background:transparent}
/* The theme caps .section at 1240px; the edge bands must touch both screen edges. */
body .sb-events.sb-events.sb-edge .section{max-width:none;width:100%}
/* sb_a() prints a non-breaking space before the arrow and the link already has a gap: close the double space. */
body .sb-events.sb-events .tlink>span[aria-hidden]{margin-left:-.4em}
/* The theme's "p inherits size" rule (!important) shrinks the month name, a <p class="h1">. */
body .sb-events.sb-events .v11-m .h1{font-size:var(--st-type-h1) !important}
/* Time numerals are <p>s: the theme's "p inherits size" rule (!important) shrinks them. */
body .sb-events.sb-events .v12-day .tm,body .sb-events.sb-events .v18-tm{font-size:var(--st-type-h3) !important}
/* The design's palette: red accent and white cards. Branding's main (green) and fourth (cream) would recolor buttons, date cards and panels. */

body .sb-events.sb-events .v13-nav .cc-month-nav { display: inline-flex; align-items: center; justify-content: center; color: inherit; text-decoration: none; padding: 8px; }
body .sb-events.sb-events .v13-nav .cc-month-nav:focus-visible { outline: 0; background: var(--pb-surface); }


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-events.sb-events .btn { font-size: var(--st-type-body); }
body .sb-events.sb-events .v2-h { font-size:var(--st-type-h2); }
body .sb-events.sb-events .v3-d { font-size:var(--st-type-display) !important; }
body .sb-events.sb-events .v4-date .d { font-size:var(--st-type-h3); }
body .sb-events.sb-events .v5-stub .d { font-size:var(--st-type-h3); }
body .sb-events.sb-events .v6-md .d { font-size:var(--st-type-h3); }
body .sb-events.sb-events .v7-card .d { font-size:var(--st-type-h3); }
body .sb-events.sb-events .v8-tile .d { font-size:var(--st-type-h3); }
body .sb-events.sb-events .v9-tile .d { font-size:var(--st-type-h3) !important; }
body .sb-events.sb-events .v10-n { font-size:var(--st-type-display); }
body .sb-events.sb-events .v11-g .dt b { font-size:var(--st-type-h3); }
body .sb-events.sb-events .v12-strip button .d { font-size:var(--st-type-h3); }
body .sb-events.sb-events .v13-nav button { font-size: var(--st-type-body); }
body .sb-events.sb-events .v13-cal .n { font-size: var(--st-type-body); }
body .sb-events.sb-events .v13-agenda .d { font-size:var(--st-type-h3); }
body .sb-events.sb-events .v14-hd .d { font-size:var(--st-type-h3); }
body .sb-events.sb-events .v15-tm { font-size:var(--st-type-h3) !important; }
body .sb-events.sb-events .v16-tb .tm { font-size:var(--st-type-h3) !important; }
body .sb-events.sb-events .v17-n { font-size:var(--st-type-display); }
body .sb-events.sb-events .v19-cd dd { font-size:var(--st-type-display); }
body .sb-events.sb-events .v20-list .ti { font-size: var(--st-type-h3); }
body .sb-events.sb-events .v20-list .ar { font-size: var(--st-type-body) !important; }
body .sb-events.sb-events h3.h2 { font-size:var(--st-type-h3) !important; }

/* Missing durations use a readable agenda instead of invented one-hour blocks. */
body .sb-events.sb-events .v14-agenda-only .v14-ag{display:block}
body .sb-events.sb-events .v14-agenda-only .v14-ag section{padding:14px 0 28px;border-top:2px solid var(--pb-text)}
body .sb-events.sb-events .v14-agenda-only .v14-ag h3{display:flex;justify-content:space-between;gap:var(--st-grid-gap,16px)}
body .sb-events.sb-events .v14-agenda-only .v14-ag li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:var(--st-grid-gap,16px);padding:12px 0}

/* 3.6.10 fit pass: EVT-05's ticket was 6/13 of the row with a 210px stub, so the title broke over three lines
   ("Proof / EVT- / 05"); the ticket now takes the wider share and its title sits at the Medium size. */
@media (min-width:861px){
  body .sb-events.sb-events .v5-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
  body .sb-events.sb-events .v5-ticket{grid-template-columns:minmax(0,1fr) 180px}
  body .sb-events.sb-events .v5-main .h2{font-size:var(--st-type-h3) !important}
}
/* EVT-16: the room column took what the big class names left and broke "Main Hall" one word per line. */
@media (min-width:861px){
  body .sb-events.sb-events .v16-tb td:last-child{white-space:nowrap}
}
/* EVT-18: "5:30 PM" broke under the number in the 130px time column while "8:15 PM" fit; times stay on one line. */
@media (min-width:861px){
  body .sb-events.sb-events .v18-tm{white-space:nowrap;font-size:var(--st-type-h3) !important}
}

/* 3.6.10: looks that paint their own band (EVT-14: the category's page color, a tint or a dark bar of their own)
   keep their light-row colors on a dark row, so they render the same on every row. The dark row only turned their
   text white (white on their own light band) and faded their surface color to an 8% tint. */
body .sb-blk.sb-blk.sb-events.sb-events.sb-edge.sb-dark:is(.sb-look-14) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-events.sb-events.sb-edge.sb-dark:is(.sb-look-14) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-events.sb-events.sb-edge.sb-dark:is(.sb-look-14) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-events.sb-events.sb-edge.sb-dark:is(.sb-look-14) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }

/* Source: faqs.fixes.css */
/* faqs: the generated CSS has no base .intro rule (the design page's was dropped); restore the stacked intro. */
body .sb-faqs.sb-faqs .intro { display: grid; gap: var(--st-stack-gap, 24px); align-content: start; }
body .sb-faqs.sb-faqs .topline .intro { display: contents; }
/* theme h3 styling beats the small sans category label */
body .sb-faqs.sb-faqs h3.category, body .sb-faqs.sb-faqs span.category { font-family: var(--pb-body-font) !important; font-weight: 600 !important; color: var(--pb-primary) !important; text-transform: none; }
/* theme removes link underlines; the design underlines the contact link and topic jump links */
body .sb-faqs.sb-faqs .contact, body .sb-faqs.sb-faqs .topic-nav a { text-decoration: underline; }
/* edge look: the theme's .section caps width at 1240px and centers it; the band must reach both edges */
body .sb-faqs.sb-faqs.sb-look-17 > .f17 { max-width: none; width: 100%; margin-inline: 0; }
/* Row backgrounds: the design's ink band is its text color, and its surface is a slight tint of the page color; the stock Black/Surface rows are pure black and near white. */
/* FAQ-07 phone: the heading block stacks as one grid like the design (the desktop display: contents spreads it into the topline grid). */
@media (max-width: 767px) { body .sb-faqs.sb-faqs .topline .intro { display: grid; } }


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-faqs.sb-faqs summary { font-size: var(--st-type-h3) !important; }
body .sb-faqs.sb-faqs .f09 .lead-question h3 { font-size:var(--st-type-h3) !important; }
body .sb-faqs.sb-faqs .f16 .hero-answer h3 { font-size:var(--st-type-h3) !important; }
body .sb-faqs.sb-faqs .f20 summary { font-size: var(--st-type-h3) !important; }

/* 3.6.10: looks drawn as a dark band (.ink) sit on the row's Background, which paints the band. On a light row their
   words, rules, buttons and links follow the row (dark text), not white (FAQ-11 printed white on white). On a
   Secondary row they follow that color's lightness; Main, Black and photo rows keep the white design. */
body .sb-blk.sb-blk.sb-faqs.sb-faqs:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .ink { --pb-on-dark: var(--pb-text); --pb-muted-on-dark: var(--bl-site-muted); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-rule-on-dark: var(--bl-site-border); color: var(--pb-text); }
body .bg-sec .sb-blk.sb-blk.sb-faqs.sb-faqs:not(.sb-edge):not(.sb-dark) > .ink { --pb-on-dark: oklch(from var(--bl-site-secondary) clamp(0, (0.62 - l) * 1000, 1) 0 0); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-faqs.sb-faqs:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .ink .btn:not(.ghost) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-faqs.sb-faqs:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .ink .btn:not(.ghost):hover { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-faqs.sb-faqs:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .ink .btn.ghost { background: transparent; color: var(--bl-site-primary) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-faqs.sb-faqs:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .ink .tlink { color: var(--bl-site-link); }

/* Source: forms.fixes.css */
/* forms: selects use the owner's chevron rule (appearance:none, inline SVG on the right, padding-right >= 40px); replaces the design's CSS-border arrow. */
body .sb-forms.sb-forms label:has(>select)::after { content: none; }
body .sb-forms.sb-forms select { -webkit-appearance: none; appearance: none; padding-right: 48px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none' stroke='%23444' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 18px center; background-size: 14px 9px; }
/* required marker, help text and radio/checkbox groups (not in the design) */
body .sb-forms.sb-forms .req { color: var(--pb-primary); }
body .sb-forms.sb-forms .help { font-weight: 400; color: var(--pb-muted); font-size: var(--st-type-small); }
body .sb-forms.sb-forms fieldset.opts { border: 0; margin: 0; padding: 0; display: grid;gap:var(--st-grid-gap,4px); min-width: 0; }
body .sb-forms.sb-forms fieldset.opts legend { font-size: var(--st-type-label); font-weight: 500; padding: 0 0 8px; }
/* theme: submit button is a <button>, keep the design's look and never let the theme restyle it; arrow span is inline */
body .sb-forms.sb-forms .primary { cursor: pointer;gap:var(--st-grid-gap,8px); }
body .sb-forms.sb-forms .step-actions .primary[hidden], body .sb-forms.sb-forms .step-actions .quiet[hidden] { display: none !important; }
/* the dark band's text and the quote/credit stay readable */
body .sb-forms.sb-forms .quote { color: inherit; }
/* content looks sit inside the framework's own frame (base.css zeroes --st-space), so the design's own side padding goes; edge looks keep it. */
body .sb-forms.sb-forms:not(.sb-edge) > section { padding-inline: 0; }
/* theme removes link underlines; the design underlines the contact links */
body .sb-forms.sb-forms .contact a { text-decoration: underline; text-underline-offset: 5px; }
/* the status line (form result) keeps the design's line of space while empty */
body .sb-forms.sb-forms .status:empty { min-height: 1.55em; }


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-forms.sb-forms .display { font-size:var(--st-type-h2) !important; }
body .sb-forms.sb-forms .quote { font-size: var(--st-type-quote) !important; }
body .sb-forms.sb-forms .f18 .intro h2 { font-size:var(--st-type-h2) !important; }
body .sb-forms.sb-forms .primary, body .sb-forms.sb-forms .quiet { font-size: var(--st-type-body) !important; }

/* 3.6.10 fit pass. FRM-17: the help lines kept the page's muted gray inside the primary-color band and could not be
   read; inside the band they use the light muted tone. */
body .sb-forms.sb-forms .f17 .band { --pb-muted: var(--pb-muted-on-dark); }
body .sb-forms.sb-forms .f17 .band .help { color: var(--pb-muted-on-dark); }
/* FRM-18: the 200px intro rail broke the Titles-size heading ("FRM- / 18") and the paragraph two words a line. */
@media (min-width: 768px) {
  body .sb-forms.sb-forms .f18 .split { grid-template-columns: minmax(240px, 30%) minmax(0, 1fr); }
  body .sb-forms.sb-forms .f18 .intro h2 { font-size:var(--st-type-h3) !important; }
}
/* FRM-17: field labels kept the page's dark label color on the primary band. */
body .sb-forms.sb-forms .f17 .band { --form-label-color: var(--pb-on-dark); }
body .sb-forms.sb-forms .f17 .band label { color: var(--pb-on-dark); }

/* 3.6.10: looks that paint their own band (FRM-10: the category's page color, a tint or a dark bar of their own)
   keep their light-row colors on a dark row, so they render the same on every row. The dark row only turned their
   text white (white on their own light band) and faded their surface color to an 8% tint. */
body .sb-blk.sb-blk.sb-forms.sb-forms.sb-edge.sb-dark:is(.sb-look-10) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-forms.sb-forms.sb-edge.sb-dark:is(.sb-look-10) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-forms.sb-forms.sb-edge.sb-dark:is(.sb-look-10) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-forms.sb-forms.sb-edge.sb-dark:is(.sb-look-10) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }
/* 3.6.10: on a dark row the tint panels inside a look (CRD-14/17 cards, FRM-19's intro) fade like its surface color, so the
   row's white text stays readable on them. */
body .sb-blk.sb-blk.sb-forms.sb-forms.sb-dark:not(.sb-edge) { --pb-tint: color-mix(in srgb, var(--pb-on-dark) 12%, transparent); }

/* Source: galleries.fixes.css */
/* The framework already supplies the section gutters. Avoid a second inset. */
body .sb-galleries.sb-galleries:not(.sb-edge) > .sec > .wrap { width: 100%; }

/* Dark row tokens make pb-text light; let the row paint the filmstrip band. */
body .sb-galleries.sb-galleries.sb-look-05,
body .sb-galleries.sb-galleries.sb-look-05 .dark { background: transparent; }

/* Keep the three fixed-height prints together inside the framework's narrower frame. */
@media (min-width: 1025px) {
	body .sb-galleries.sb-galleries.sb-look-18 .g18-frame .ph { height: clamp(180px, 18vw, 260px); }
}

body .sb-galleries.sb-galleries p.eyebrow{font-size:var(--st-type-label) !important;line-height:1.3 !important}
body .sb-galleries.sb-galleries .tlink>span[aria-hidden]{font-family:var(--pb-body-font,system-ui,sans-serif)}
/* Link arrow: one text run, like the design, so the underline is unbroken. */
body .sb-galleries.sb-galleries .tlink{display:inline-block;min-height:0;padding-block:calc((44px - 1lh) / 2)}
body .sb-galleries.sb-galleries.sb-blk.sb-blk:not(.sb-dark){--pb-surface:var(--pb-tint)}


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-galleries.sb-galleries .doc-top h1 { font-size:var(--st-type-h2); }
body .sb-galleries.sb-galleries .cap-t { font-size: var(--st-type-h3); }
body .sb-galleries.sb-galleries .g7-grid .zoom { font-size: var(--st-type-body) !important; }
body .sb-galleries.sb-galleries .g8-hd .h3 { font-size:var(--st-type-h3) !important; }
body .sb-galleries.sb-galleries .g12-sheet .cap-t { font-size: var(--st-type-h3) !important; }
body .sb-galleries.sb-galleries .g14-t .h3 { font-size:var(--st-type-h3) !important; }
body .sb-galleries.sb-galleries .g15-row .t { font-size:var(--st-type-h3); }
body .sb-galleries.sb-galleries .g16-h { font-size:var(--st-type-h2); }
body .sb-galleries.sb-galleries .g17-cap .h3 { font-size:var(--st-type-h3) !important; }
body .sb-galleries.sb-galleries .g19-c .h3 { font-size:var(--st-type-h3) !important; }
body .sb-galleries.sb-galleries .lbx button { font-size: var(--st-type-body) !important; }
body .sb-galleries.sb-galleries .g8-handle { margin-top: 16px; }

/* 3.6.10: looks drawn as a dark band (.dark) sit on the row's Background, which paints the band. On a light row their
   words, rules, buttons and links follow the row (dark text), not white (GAL-05 printed white on white). On a
   Secondary row they follow that color's lightness; Main, Black and photo rows keep the white design. */
body .sb-blk.sb-blk.sb-galleries.sb-galleries:is(:not(.sb-edge), .sb-look-05):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark { --pb-on-dark: var(--pb-text); --pb-muted-on-dark: var(--bl-site-muted); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-rule-on-dark: var(--bl-site-border); color: var(--pb-text); }
body .bg-sec .sb-blk.sb-blk.sb-galleries.sb-galleries:is(:not(.sb-edge), .sb-look-05):not(.sb-dark) > .dark { --pb-on-dark: oklch(from var(--bl-site-secondary) clamp(0, (0.62 - l) * 1000, 1) 0 0); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-galleries.sb-galleries:is(:not(.sb-edge), .sb-look-05):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn:not(.ghost) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-galleries.sb-galleries:is(:not(.sb-edge), .sb-look-05):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn:not(.ghost):hover { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-galleries.sb-galleries:is(:not(.sb-edge), .sb-look-05):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn.ghost { background: transparent; color: var(--bl-site-primary) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-galleries.sb-galleries:is(:not(.sb-edge), .sb-look-05):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .tlink { color: var(--bl-site-link); }

/* 3.6.10: looks that paint their own band (GAL-13: the category's page color, a tint or a dark bar of their own)
   keep their light-row colors on a dark row, so they render the same on every row. The dark row only turned their
   text white (white on their own light band) and faded their surface color to an 8% tint. */
body .sb-blk.sb-blk.sb-galleries.sb-galleries.sb-edge.sb-dark:is(.sb-look-13) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-galleries.sb-galleries.sb-edge.sb-dark:is(.sb-look-13) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-galleries.sb-galleries.sb-edge.sb-dark:is(.sb-look-13) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-galleries.sb-galleries.sb-edge.sb-dark:is(.sb-look-13) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }

/* Source: giving.fixes.css */
/* The library's own tokens (white surface, solid rules, its cream-white on ink): Branding's near-matches read fainter or creamier than the approved design. */
/* Light buttons sit on dark panels, where --pb-text turns light: keep their label dark. */
body .sb-giving.sb-giving .btn.light,body .sb-giving.sb-giving .btn.light:hover{color:var(--pb-ink) !important;font-weight:var(--pb-ui-weight) !important}
body .sb-giving.sb-giving .amts .other{font-size:var(--st-type-small) !important;line-height:1 !important}

/* Fund allocations can have more than three funds; keep the first three existing colors. */
body .sb-giving.sb-giving .g15 .bar span:nth-child(3n+1) { background: var(--pb-primary); }
body .sb-giving.sb-giving .g15 .bar span:nth-child(3n+2) { background: var(--pb-secondary); }
body .sb-giving.sb-giving .g15 .bar span:nth-child(3n) { background: var(--pb-text); }


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-giving.sb-giving .cur { font-size: var(--st-type-small) !important; }
body .sb-giving.sb-giving .btn { font-size: var(--st-type-body); }
body .sb-giving.sb-giving .amts button { font-size:var(--st-type-h3) !important; }
body .sb-giving.sb-giving .g03 .rows .num { font-size:var(--st-type-display) !important; }
body .sb-giving.sb-giving .g04 .gift .num { font-size:var(--st-type-display) !important; }
body .sb-giving.sb-giving .g05 .big { font-size:var(--st-type-display) !important; }
body .sb-giving.sb-giving .g05 .facts .num { font-size:var(--st-type-display) !important; }
body .sb-giving.sb-giving .g06 .ladder .num { font-size:var(--st-type-display) !important; }
body .sb-giving.sb-giving .g07 .num { font-size:var(--st-type-display) !important; }
body .sb-giving.sb-giving .g07 .monthly .num { font-size:var(--st-type-display) !important; }
body .sb-giving.sb-giving .g08 .ways .h3 { font-size:var(--st-type-h3) !important; }
body .sb-giving.sb-giving .g09 .say { font-size:var(--st-type-h2) !important; }
body .sb-giving.sb-giving .g10 .w .h3 { font-size:var(--st-type-h3) !important; }
body .sb-giving.sb-giving .g11 .lines .num { font-size:var(--st-type-display) !important; }
body .sb-giving.sb-giving .g11 .lines p { font-size:var(--st-type-h3) !important; }
body .sb-giving.sb-giving .g12 .card .num { font-size:var(--st-type-display) !important; }
body .sb-giving.sb-giving .g13 .num { font-size:var(--st-type-display) !important; }
body .sb-giving.sb-giving .g15 .legend .num { font-size:var(--st-type-display) !important; }
body .sb-giving.sb-giving .g16 .amts button { font-size:var(--st-type-h3) !important; }
body .sb-giving.sb-giving .g17 .x2 { font-size:var(--st-type-display) !important; }
body .sb-giving.sb-giving .g18 .num { font-size:var(--st-type-display) !important; }
body .sb-giving.sb-giving .g19 blockquote { font-size: var(--st-type-quote) !important; }
body .sb-giving.sb-giving .g20 .pct .num { font-size:var(--st-type-display) !important; }
body .sb-giving.sb-giving h2.h3 { font-size:var(--st-type-h2) !important; }
body .sb-giving.sb-giving .g17 .x2 small { font-size: var(--st-type-small) !important; }
/* 3.6.10: 16's amount chips wrap to as many columns as fit on a phone (four fixed columns pushed "Other" 65px past a
   390px screen). */
@media (max-width: 600px) { body .sb-giving.sb-giving .g16 .amts { grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); } }
/* 3.6.10 fit pass. GIV-03: amounts sat in a fixed 120px column, so "$600" and "$4,800" ran over their lines; the
   rows share one amount column as wide as the widest amount. */
body .sb-giving.sb-giving .g03 .rows { display: grid; grid-template-columns: max-content minmax(0, 1fr) auto; }
body .sb-giving.sb-giving .g03 .rows li { grid-column: 1 / -1; grid-template-columns: subgrid; }
@media (max-width: 860px) { body .sb-giving.sb-giving .g03 .rows { grid-template-columns: max-content minmax(0, 1fr); } }
body .sb-giving.sb-giving .g03 .rows .num { white-space: nowrap; font-size: min(clamp(calc(var(--st-type-display) * .55), 9.375vw, var(--st-type-display)), max(4vw, 40px)) !important; }
/* GIV-13: the amount at the Huge size pushed "/ month" under it in two of four cards and the buttons out of line;
   the amount keeps the design's size, the unit stays whole, and every card's action sits on the bottom line. */
body .sb-giving.sb-giving .g13 .num { font-size: min(clamp(calc(var(--st-type-display) * .55), 9.375vw, var(--st-type-display)), max(3.4vw, 40px)) !important; }
body .sb-giving.sb-giving .g13 .unit { white-space: nowrap; }
body .sb-giving.sb-giving .g13 .lv > :last-child { margin-top: auto; }
/* GIV-12: three figures at the Huge size crowded the card and the date ("Dec 24") broke over two lines; figures stay
   on one line at a size the four-column card holds. */
body .sb-giving.sb-giving .g12 .card .num { white-space: nowrap; font-size: min(clamp(calc(var(--st-type-display) * .55), 9.375vw, var(--st-type-display)), max(3.3vw, 36px)) !important; }
/* GIV-01 (and every amount grid) on phones: Medium-size amounts ("$100") set each button's minimum width, so the giving
   panel ran 7px past a 390px screen. Columns may shrink and phone amounts use the Lead size. */
@media (max-width: 600px) {
  body .sb-giving.sb-giving .amts:not(.g16 .amts) { --fit-max: 3; grid-template-columns: repeat(var(--fit-c,3),minmax(0,1fr)); }
  body .sb-giving.sb-giving .amts button:not(.other) { font-size: max(var(--st-type-lead), 20px) !important; }
}

/* 3.6.10: looks that paint their own band (GIV-12: the category's page color, a tint or a dark bar of their own)
   keep their light-row colors on a dark row, so they render the same on every row. The dark row only turned their
   text white (white on their own light band) and faded their surface color to an 8% tint. */
body .sb-blk.sb-blk.sb-giving.sb-giving.sb-edge.sb-dark:is(.sb-look-12) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-giving.sb-giving.sb-edge.sb-dark:is(.sb-look-12) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-giving.sb-giving.sb-edge.sb-dark:is(.sb-look-12) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-giving.sb-giving.sb-edge.sb-dark:is(.sb-look-12) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }

/* Source: grids.fixes.css */
/* 3.6.10: without an icon, 14's rows give the text the full width (it fell into the 56px icon column). */
body .sb-grids.sb-grids .g14-c:not(:has(> .g-ic)) { grid-template-columns: 1fr; }
/* 3.6.10: GRD-19's light button on its brand band lost its label to the Branding button text color (a blank white box). */
body .sb-blk.sb-grids.sb-grids .g19-head .g-btn { background: var(--pb-on-dark, #fff) !important; color: var(--pb-ink, #111) !important; border-color: var(--pb-on-dark, #fff) !important; }

/* Source: groups.fixes.css */
/* Groups: framework-only fixes. */
/* Content looks sit on the row's Background (surface or dark), so the look's own band must not paint a second box. */
body .sb-blk.sb-groups.sb-groups:not(.sb-edge) .is-surface,
body .sb-blk.sb-groups.sb-groups:not(.sb-edge) .is-dark{background:transparent}
/* The theme caps .section at 1240px; edge bands must touch both screen edges. */
body .sb-groups.sb-groups.sb-edge .section{max-width:none;width:100%}
/* Author display rules (flex, grid) beat the [hidden] attribute the filters and tabs use. */
body .sb-groups.sb-groups [hidden]{display:none !important}
/* The finder's no-matches notice spans the card grid. */
body .sb-groups.sb-groups .g1-none{grid-column:1/-1}
/* The framework map (css/cc-map.css) fills the design's .map box; no frame of its own. */
body .sb-groups.sb-groups .map>.cc-map{position:absolute;inset:0;height:100%;min-height:0;border:0;border-radius:0}
body .sb-groups.sb-groups .cc-map__fallback a{color:var(--pb-ink);min-height:0;display:inline}
/* Lit pin (hover, focus or click on its row): bigger, in the text color. */
body .sb-groups.sb-groups .cc-map .cc-map__pin svg{transition:transform var(--st-dur) var(--st-ease)}
body .sb-groups.sb-groups .cc-map .cc-map__pin.on{z-index:3;color:var(--pb-text)}
body .sb-groups.sb-groups .cc-map .cc-map__pin.on svg{transform:scale(1.3);transform-origin:50% 100%}
/* The theme forces heading colors (!important): the lit row's name keeps the accent. */
body .sb-groups.sb-groups .g2-row.on .h3,body .sb-groups.sb-groups .g2-row:hover .h3,body .sb-groups.sb-groups .g12-list a:hover .h3,body .sb-groups.sb-groups .g14-card li a.on .h3{color:var(--pb-primary) !important}
/* The theme's paragraph rules shrink and recolor these numerals. */
body .sb-groups.sb-groups .g9-left{line-height:1 !important;color:var(--pb-primary) !important}
body .sb-groups.sb-groups .g9-left small{font-size:var(--st-type-small) !important}
body .sb-groups.sb-groups .g20-mi{line-height:1 !important}
body .sb-groups.sb-groups .g20-mi small{font-size:var(--st-type-small) !important}
/* The approved design's own accent (terracotta) and deep green; Branding's green/orange would change every accent, pin and button. */
body .sb-groups.sb-groups{--cc-map-marker-color:var(--bl-site-primary)}
/* sb_a() prints "&nbsp;<span>→</span>": the design's arrow sits in the link text (one underline, one space). */
body .sb-groups.sb-groups .tlink{gap:0}
body .sb-groups.sb-groups .tlink>span[aria-hidden]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em}
body .sb-groups.sb-groups .tlink:hover>span[aria-hidden]{text-decoration-thickness:2px}
/* 13: the design's quote keeps the browser's blockquote margin (indent and space above and below); the theme resets it. */
body .sb-groups.sb-groups .g13-q{margin:1em 40px}


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-groups.sb-groups .btn { font-size: var(--st-type-body); }
body .sb-groups.sb-groups .inp,body .sb-groups.sb-groups .sel { font-size: var(--st-type-body); }
body .sb-groups.sb-groups .btn-ghost { font-size: var(--st-type-body); }
body .sb-groups.sb-groups .map .maplibregl-ctrl-attrib { font-size: var(--st-type-small) !important; }
body .sb-groups.sb-groups .g2-n { font-size: var(--st-type-body); }
body .sb-groups.sb-groups .g3-dl dd { font-size:var(--st-type-h3); }
body .sb-groups.sb-groups .g3-spots b { font-size:var(--st-type-display); }
body .sb-groups.sb-groups .g5-k .tm { font-size:var(--st-type-h3); }
body .sb-groups.sb-groups .g7-tabs button { font-size: var(--st-type-body); }
body .sb-groups.sb-groups .g8-tb .nm { font-size: var(--st-type-h3); }
body .sb-groups.sb-groups .g9-left { font-size:var(--st-type-display) !important; }
body .sb-groups.sb-groups .g10-res .m { font-size:var(--st-type-h3); }
body .sb-groups.sb-groups .g13-q { font-size: var(--st-type-quote); }
body .sb-groups.sb-groups .g14-card .k { font-size:var(--st-type-h3); }
body .sb-groups.sb-groups .g18-h { font-size:var(--st-type-h2); }
body .sb-groups.sb-groups .g18-stats b { font-size:var(--st-type-display); }
body .sb-groups.sb-groups .g19-t:first-child .h3 { font-size:var(--st-type-h3) !important; }
body .sb-groups.sb-groups .g20-mi { font-size:var(--st-type-display) !important; }
body .sb-groups.sb-groups .cc-map__fallback p { font-size: var(--st-type-small) !important; }
body .sb-groups.sb-groups h3.h2 { font-size:var(--st-type-h3) !important; }
body .sb-groups.sb-groups h2.h3 { font-size:var(--st-type-h2) !important; }

/* 3.6.10 fit pass. GRP-14: the Medium-size list numbers overflowed their 28px column into the group titles. */
body .sb-groups.sb-groups .g14-card li a { grid-template-columns: auto minmax(0, 1fr);gap:var(--st-grid-gap,16px); }
/* GRP-08: the join link wrapped one word per line in the last column. */
body .sb-groups.sb-groups .g8-tb td:last-child { white-space: nowrap; }
/* GRP-15: rows without a leader photo print no avatar (it was an empty gray circle); the text takes its column. */
body .sb-groups.sb-groups .g15 li a:not(:has(> .av)) { grid-template-columns: minmax(0, 1fr) auto; }

/* Source: heroes.fixes.css */
/* Heroes: framework-only fixes (heroes.css is generated, never edit it). */

/* Heights (owner, 2026-10-21): no fixed heights unless Full. Normal = content plus the section padding (--st-space, below);
   only data-height="full" gets min-height 100svh. The generated looks size from --hero-h, so it is 0 unless Full. */
body .sb-heroes.sb-heroes.sb-hero .hero{--hero-h:0px}
body .sb-heroes.sb-heroes.sb-hero .hero[data-height="full"]{--hero-h:var(--ct-hero-h, 100svh);min-height:var(--hero-h)}

/* Section padding (Site Options), same breakpoints as page titles and edge sections. The header's room (0 for a normal
   header, the header height when it floats over the hero) is added to the TOP of the content box only; the band's own
   background still runs up behind the header. The library's demo header height --hdr becomes that room. */
body .sb-heroes.sb-heroes.sb-hero{--st-space:var(--section-padding, 120px);--hdr:var(--sb-hdr-room, 0px);--hp-top:calc(var(--sb-hdr-room, 0px) + var(--sb-hero-pad))}
@media only screen and (max-width:1200px){body .sb-heroes.sb-heroes.sb-hero{--st-space:80px}}
@media only screen and (max-width:501px) and (orientation:portrait){body .sb-heroes.sb-heroes.sb-hero{--st-space:40px}}

/* Content boxes: top = header room + section padding, bottom = section padding. */
body .sb-heroes.sb-heroes:is(.h01,.h02,.h06,.h07,.h09,.h15,.h17,.h18,.h19,.h21,.h22) .body{padding-top:var(--hp-top);padding-bottom:var(--sb-hero-pad)}
body .sb-heroes.sb-heroes.h06 .foot{padding-bottom:var(--sb-hero-pad)}
body .sb-heroes.sb-heroes :is(.h03 .top,.h12 .top,.h04 .body,.h10 .grid,.h20 .g,.h14 .g){padding-top:var(--hp-top)}
body .sb-heroes.sb-heroes :is(.h20 .g,.h14 .g){padding-bottom:var(--sb-hero-pad)}
body .sb-heroes.sb-heroes :is(.h11 .copy,.h08 .copy,.h16 .copy,.h16 h1){padding-top:var(--hp-top);padding-bottom:var(--sb-hero-pad)}
@media (max-width:767px){
	body .sb-heroes.sb-heroes.h08 .copy{padding-top:var(--sb-hero-pad)} /* the photo comes first on the phone */
	body .sb-heroes.sb-heroes.h16 h1{padding-bottom:20px}
}
body .sb-heroes.sb-heroes.h05 .stage{inset:0;padding-top:clamp(16px,2vw,40px)}

/* Full: the inner boxes that carried calc(--hero-h - header) fill the screen (the room is padding inside them). */
body .sb-heroes.sb-heroes :is(.h08 .split,.h14 .g,.h16 .g){min-height:var(--hero-h)}
body .sb-heroes.sb-heroes.h09{min-height:var(--hero-h)}
body .sb-heroes.sb-heroes.h15:is([data-height="large"],[data-height="full"]){min-height:var(--hero-h)}

/* Photo boxes that were fixed px/vh heights keep the design's proportion (measured at 1440 and 390). */
body .sb-heroes.sb-heroes.h03 .steps .photo{height:auto}
body .sb-heroes.sb-heroes.h03 .steps .photo:nth-child(1){aspect-ratio:.96}
body .sb-heroes.sb-heroes.h03 .steps .photo:nth-child(2){aspect-ratio:1.06}
body .sb-heroes.sb-heroes.h03 .steps .photo:nth-child(3){aspect-ratio:1.22}
body .sb-heroes.sb-heroes.h05:not([data-height="full"]){aspect-ratio:1.95}
body .sb-heroes.sb-heroes.h08:not([data-height="full"]) .media{aspect-ratio:1.03}
body .sb-heroes.sb-heroes.h10 .poster{min-height:0;aspect-ratio:.81}
body .sb-heroes.sb-heroes.h11 .f1 .photo{height:auto;min-height:0;aspect-ratio:1.11}
body .sb-heroes.sb-heroes.h11 .f2 .photo{height:auto;aspect-ratio:2.18}
body .sb-heroes.sb-heroes.h11 .f3 .photo{height:auto;aspect-ratio:1.71}
body .sb-heroes.sb-heroes.h13:not([data-height="full"]) .pic{height:auto;aspect-ratio:3.14}
body .sb-heroes.sb-heroes.h16:not([data-height="full"]) .media{aspect-ratio:.95}
body .sb-heroes.sb-heroes.h20 .mosaic{height:auto;aspect-ratio:1.03}
@media (max-width:900px){body .sb-heroes.sb-heroes.h10 .poster{aspect-ratio:.92}}
@media (max-width:767px){
	body .sb-heroes.sb-heroes.h03 .steps .photo:nth-child(1){aspect-ratio:1.35}
	body .sb-heroes.sb-heroes.h03 .steps .photo:nth-child(n+2){aspect-ratio:.94}
	body .sb-heroes.sb-heroes.h05:not([data-height="full"]){aspect-ratio:auto}
	body .sb-heroes.sb-heroes.h05 .stage{inset:auto}
	body .sb-heroes.sb-heroes.h05:not([data-height="full"]) .stage{height:auto;aspect-ratio:1.03}
	body .sb-heroes.sb-heroes.h08:not([data-height="full"]) .media,body .sb-heroes.sb-heroes.h16:not([data-height="full"]) .media{aspect-ratio:var(--pb-ar-landscape)}
	body .sb-heroes.sb-heroes.h11 .f1 .photo{aspect-ratio:1.3}
	body .sb-heroes.sb-heroes.h11 .f2 .photo{aspect-ratio:1.82}
	body .sb-heroes.sb-heroes.h11 .f3 .photo{aspect-ratio:.85}
	body .sb-heroes.sb-heroes.h13:not([data-height="full"]) .pic{aspect-ratio:1.15}
	body .sb-heroes.sb-heroes.h20 .mosaic{aspect-ratio:.83}
}

/* 01, 15: the generated CSS lost the "large/full only" condition on min-height; Auto height means content plus padding. */
body .sb-heroes.sb-heroes.h01[data-height="auto"]{min-height:0}
body .sb-heroes.sb-heroes.h15[data-height="auto"] .body{min-height:0}

body .sb-heroes.sb-heroes.h05 h1{color:var(--pb-primary) !important}
/* The arrow glyph is not in the Branding font's latin subset; the library page falls back to the system UI font (the QA stack falls back to Arial), so match it. */
body .sb-heroes.sb-heroes .tlink::after{font-family:var(--pb-body-font,system-ui, sans-serif)}

/* Width rule (owner): every look has ONE content box, a .wrap whose width and sides come from base.css only (no width,
   max-width or padding-inline on it here). Backgrounds stay outside it. Split halves pad with --sb-side / --sb-split-pad. */
/* 06, 07, 17, 19: the box wraps what used to be sibling rows (title, rule, foot / caption / facts bar / tabs). */
body .sb-heroes.sb-heroes:is(.h06,.h07,.h17,.h19) .in{position:relative;z-index:2;flex:1;display:flex;flex-direction:column}
body .sb-heroes.sb-heroes.h17 .bar{margin-inline:0}
body .sb-heroes.sb-heroes.h19 .tabs button:first-child{padding-left:clamp(18px,2.4vw,36px)}
body .sb-heroes.sb-heroes.h19 .tabs button:first-child[aria-selected="true"]::before{left:clamp(18px,2.4vw,36px)}
/* 05: the box covers the stage under the header; the corners pin to its two ends. */
body .sb-heroes.sb-heroes.h05 .in{position:absolute;inset:var(--sb-hdr-room, 0px) 0 0}
body .sb-heroes.sb-heroes.h05 h1{padding-inline:0}
body .sb-heroes.sb-heroes.h05 .l{left:0}
body .sb-heroes.sb-heroes.h05 .r{right:0}
@media (max-width:767px){
	body .sb-heroes.sb-heroes.h05 .in{position:static}
	body .sb-heroes.sb-heroes.h05[data-height="full"] .in{margin-block:auto}
	body .sb-heroes.sb-heroes.h05 .corner{padding-inline:0}
}
/* 08, 16 (split): the text half is the box. 08 pads its screen side with --sb-side and the photo side with --sb-split-pad. */
body .sb-heroes.sb-heroes.h08 .copy{padding-left:var(--sb-side);padding-right:var(--sb-split-pad)}
@media (max-width:767px){body .sb-heroes.sb-heroes.h08 .copy{padding-inline:var(--sb-side)}}
/* 09: text and strip sit in the box inside the panel; the panel and photo run wider. */
/* the photo panel is a background (inset like the design); the box is a sibling over it. */
body .sb-heroes.sb-heroes.h09{padding:0;display:flex;flex-direction:column}
body .sb-heroes.sb-heroes.h09 .panel{position:absolute;inset:0 clamp(12px,1.6vw,24px) clamp(12px,1.6vw,24px);min-height:0}
body .sb-heroes.sb-heroes.h09 .in{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;padding-bottom:clamp(12px,1.6vw,24px)}
body .sb-heroes.sb-heroes.h09 .in :is(.body,.meta){padding-inline:0}
/* 11: the ruled grid is the box; its first cell starts at the box edge (no outer left rule). */
body .sb-heroes.sb-heroes.h11 .g{border-left:0}
body .sb-heroes.sb-heroes.h11 .copy{padding-left:0}
/* 13: the caption card is the box's content, starting at its left edge. */
body .sb-heroes.sb-heroes.h13 .card{margin-left:0;width:min(720px,100%)}
@media (max-width:767px){body .sb-heroes.sb-heroes.h13 .card{margin-inline:0;width:auto}}
/* 16: rail, photo and words all sit inside the box. */
body .sb-heroes.sb-heroes.h16 .g{grid-template-columns:auto minmax(0,1.35fr) minmax(0,1fr)}
body .sb-heroes.sb-heroes.h16:not([data-height="full"]) .media{aspect-ratio:auto} /* the photo fills the row the rail title sets (a ratio only worked while the column was oversized) */
body .sb-heroes.sb-heroes.h16 h1{padding-right:0}
body .sb-heroes.sb-heroes.h16 .copy{padding-right:0}
@media (max-width:767px){body .sb-heroes.sb-heroes.h16 .g{grid-template-columns:minmax(0,1fr)}body .sb-heroes.sb-heroes.h16:not([data-height="full"]) .media{aspect-ratio:var(--pb-ar-landscape)}body .sb-heroes.sb-heroes.h16 h1{padding-inline:0}body .sb-heroes.sb-heroes.h16 .copy{padding-inline:0}}


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-heroes.sb-heroes.h01 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h03 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h04 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h05 h1 { font-size:var(--st-type-display) !important; }
body .sb-heroes.sb-heroes.h06 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h07 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h08 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h09 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h10 .date { font-size:var(--st-type-display) !important; }
body .sb-heroes.sb-heroes.h10 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h11 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h11 .cell b { font-size:var(--st-type-display) !important; }
body .sb-heroes.sb-heroes.h12 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h13 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h14 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h15 h1 { font-size: var(--st-type-quote) !important; }
body .sb-heroes.sb-heroes.h16 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h16 .copy .lead { font-size: var(--st-type-lead) !important; }
body .sb-heroes.sb-heroes.h17 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h18 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h18 .track span { font-size:var(--st-type-h2) !important; }
body .sb-heroes.sb-heroes.h19 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h22 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h20 h1 { font-size:var(--st-type-h1) !important; }
body .sb-heroes.sb-heroes.h15 .eyebrow { font-size: var(--st-type-h3) !important; }
body .sb-heroes.sb-heroes.h15 .who b { font-size:var(--st-type-h3); }
body .sb-heroes.sb-heroes.h02 h1 { font-size:var(--st-type-display) !important; }
body .sb-heroes.sb-heroes.h21 h1 { font-size:var(--st-type-display) !important; }

/* The library look is the only height box. The framework wrapper must not flex
   it inside another padded screen. Above-header looks have no inner header room. */
body header.ct2-hero:has(> .sb-heroes.sb-heroes) { height: auto; display: block; }
body header.ct2-hero.is-below-header > .sb-heroes.sb-heroes { --sb-hdr-room: 0px; }
body .sb-heroes.sb-heroes.sb-hh-full > .hero { min-height: var(--ct-hero-h, 100svh); }
/* Split copy distributes spare height instead of requiring two fixed padding
   floors as well as its title, buttons, and facts. Normal spacing is unchanged. */
body .sb-heroes.sb-heroes.sb-hh-full .h08 .copy {
 padding-top: var(--sb-hdr-room, 0px); padding-bottom: 0;
}
/* The narrow tablet corners need 12px less button padding to keep their labels
   on one line. The pinned CTA also honors the desktop bottom clearance. */
body .sb-heroes.sb-heroes:is(.h05,.h16) .btn { white-space: nowrap; }
body .sb-heroes.sb-heroes.h05 .corner { bottom: max(60px, clamp(32px, 4vw, 64px)); }
@media (min-width: 768px) and (max-width: 1000px) {
 body .sb-heroes.sb-heroes:is(.h05,.h16) .btn { padding-inline: 24px; }
}

/* 3.6.10 hero proof (HER-10/11/16). Gated: older looks keep their render. */
/* Dark panels (11, 16, 22): the accent word and text links were Secondary on the dark panel and vanished. */
body .sb-heroes.sb-heroes:is(.h11, .h16, .h22) .acc { color: inherit; font-style: italic; }
body .sb-heroes.sb-heroes:is(.h11, .h16) .tlink { color: var(--pb-on-dark); }
/* 10: built for a cut-out portrait; a normal photo showed as a strip under an empty brand box. The photo fills the poster. */
body .sb-heroes.sb-heroes.h10 .poster { overflow: hidden; }
body .sb-heroes.sb-heroes.h10 .poster img { inset: 0; left: 0; transform: none; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; }
/* 16: the side rail title carried the header room and section padding, so the hero ran past the first screen. */
@media (min-width: 768px) {
	body .sb-heroes.sb-heroes.h16 h1 { padding-top: calc(var(--sb-hdr-room, 0px) + 24px); padding-bottom: 24px; font-size: min(clamp(calc(var(--st-type-h1) * .55), 7.875vw, var(--st-type-h1)), 7.5vh) !important; text-align: start; }
}
/* 05 on phones: the title sat under the header logo; the stage starts below the header room. */
@media (max-width: 767px) {
	body .sb-heroes.sb-heroes.h05 .stage { padding-top: calc(var(--sb-hdr-room, 0px) + 16px); }
	body .sb-heroes.sb-heroes.h05 h1 { position: relative; z-index: 3; }
}

/* Source: icons.fixes.css */
/* Icons: framework-only fixes. */
/* The design's "tint" band is the Branding Fifth (tint) color, which base.css clears from the section; paint it here (the looks are edge to edge, so the band keeps the design's full width and padding). */
body .sb-blk.sb-icons.sb-icons .sec.on-tint{background:var(--pb-tint) !important}
/* The framed section is narrower than the design page, so the big stat wraps; keep it on one line. */
body .sb-icons.sb-icons .i13-n b{white-space:nowrap}
/* Row backgrounds: ink band = the design's text color; surface = the design's plain white. */


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-icons.sb-icons .top code { font-size: var(--st-type-small) !important; }
body .sb-icons.sb-icons .i7-n { font-size:var(--st-type-display) !important; }
body .sb-icons.sb-icons .i13-n b { font-size:var(--st-type-display) !important; }
body .sb-icons.sb-icons .i17-t { font-size:var(--st-type-h3) !important; }
body .sb-icons.sb-icons .i20-s b { font-size:var(--st-type-display) !important; }
/* 3.6.10: without an icon, 05's list items give the text the full width (it fell into the 32px icon column). */
body .sb-icons.sb-icons .i5-l > li:not(:has(> .ic)) { grid-template-columns: 1fr; }
/* 3.6.10: without an icon, 10's rows give the text the full width (it fell into the 24px icon column). */
body .sb-icons.sb-icons .i10-it:not(:has(> .ic)) { grid-template-columns: 1fr; }
/* 3.6.10 fit pass. ICN-03 / ICN-15 without icons: no empty ring or tile (the text takes the row), as for the icon rows above. */
body .sb-icons.sb-icons .i3-it:has(> .i3-r:empty) { grid-template-columns: 1fr; }
body .sb-icons.sb-icons :is(.i3-r, .i15-i):empty { display: none; }
/* ICN-20: the figure at the Huge size broke "2 min" and "5 days" over two lines in its column. */
body .sb-icons.sb-icons .i20-s b { white-space: nowrap; font-size: min(clamp(calc(var(--st-type-display) * .55), 9.375vw, var(--st-type-display)), max(2.6vw, 30px)) !important; }
/* ICN-20 without icons: the empty icon column left every row (and the column labels) indented. */
@media (min-width: 1025px) {
  body .sb-icons.sb-icons .i20:not(:has(.i20-i > *)) .i20-r { grid-template-columns: minmax(0,3fr) minmax(0,4fr) minmax(0,2fr) 190px; }
  body .sb-icons.sb-icons .i20:not(:has(.i20-i > *)) .i20-r > :first-child { display: none; }
}
/* 3.6.10: looks drawn as a dark band (.on-dark) sit on the row's Background, which paints the band. On a light row their
   words, rules, buttons and links follow the row (dark text), not white (ICN-08 printed white on white). On a Secondary row they follow
   that color's lightness; Main, Black and photo rows keep the white design. */
body .sb-blk.sb-blk.sb-icons.sb-icons:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .on-dark { --pb-on-dark: var(--pb-text); --pb-muted-on-dark: var(--bl-site-muted); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-rule-on-dark: var(--bl-site-border); color: var(--pb-text); }
body .bg-sec .sb-blk.sb-blk.sb-icons.sb-icons:not(.sb-edge):not(.sb-dark) > .on-dark { --pb-on-dark: oklch(from var(--bl-site-secondary) clamp(0, (0.62 - l) * 1000, 1) 0 0); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-icons.sb-icons:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .on-dark .btn:not(.ghost) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-icons.sb-icons:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .on-dark .btn:not(.ghost):hover { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-icons.sb-icons:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .on-dark .btn.ghost { background: transparent; color: var(--bl-site-primary) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-icons.sb-icons:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .on-dark :is(.tlink, .tlink--on-dark) { color: var(--bl-site-link); }
/* 3.6.10: on a dark band the soft tint (Branding Fifth) that panels, bands and cards paint turns into the same faint light
   tint as the surface, so the white text the band gives them stays readable (ICN-06/19 printed white on a light tint). */
body .sb-blk.sb-blk.sb-icons.sb-icons:not(.sb-edge).sb-dark { --pb-tint: color-mix(in srgb, var(--pb-on-dark) 8%, transparent); }
/* 3.6.10: looks that paint their own light band (ICN-06/19: the category's page color or a tint) keep their light-row colors
   on a dark row, so they render the same on every row. The dark row only turned their text white (white on their own
   light band). */
body .sb-blk.sb-blk.sb-icons.sb-icons.sb-edge.sb-dark:is(.sb-look-06, .sb-look-19) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-icons.sb-icons.sb-edge.sb-dark:is(.sb-look-06, .sb-look-19) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-icons.sb-icons.sb-edge.sb-dark:is(.sb-look-06, .sb-look-19) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-icons.sb-icons.sb-edge.sb-dark:is(.sb-look-06, .sb-look-19) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }

/* Source: imagery.fixes.css */

body .sb-imagery.sb-imagery p.eyebrow{font-size:var(--st-type-label) !important;line-height:1.3 !important}
body .sb-imagery.sb-imagery .tlink>span[aria-hidden]{font-family:var(--pb-body-font,system-ui,sans-serif)}
/* Link arrow: one text run, like the design, so the underline is unbroken. */
body .sb-imagery.sb-imagery .tlink{display:inline-block;min-height:0;padding-block:calc((44px - 1lh) / 2)}
body .sb-imagery.sb-imagery.sb-blk.sb-blk:not(.sb-dark){--pb-surface:var(--pb-tint)}


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-imagery.sb-imagery .doc-top h1 { font-size:var(--st-type-h2); }
body .sb-imagery.sb-imagery .cap-t { font-size: var(--st-type-h3); }
body .sb-imagery.sb-imagery .i9-q blockquote { font-size: var(--st-type-quote); }
body .sb-imagery.sb-imagery .i9-q blockquote::before { font-size:var(--st-type-display) !important; }
body .sb-imagery.sb-imagery .i10-word { font-size:var(--st-type-display); }
body .sb-imagery.sb-imagery .i13-num { font-size:var(--st-type-display); }
body .sb-imagery.sb-imagery h2.h3 { font-size:var(--st-type-h2) !important; }
/* 3.6.10 fit pass. IMG-10: the photo's pull-up was sized for the old 272px word, so at the Branding Huge size the photo
   hid the word. The overlap now follows the word's own size, and a longer heading wraps instead of running off screen. */
body .sb-imagery.sb-imagery .i10-word { line-height: 1 !important; padding-top: .04em; margin-bottom: -.16em; white-space: normal; text-wrap: balance; }
body .sb-imagery.sb-imagery .i10 .ph { margin-top: 0; }
/* 3.6.10: on a dark band the soft tint (Branding Fifth) that panels, bands and cards paint turns into the same faint light
   tint as the surface, so the white text the band gives them stays readable (IMG-12 printed white on a light tint). */
body .sb-blk.sb-blk.sb-imagery.sb-imagery:not(.sb-edge).sb-dark { --pb-tint: color-mix(in srgb, var(--pb-on-dark) 8%, transparent); }
/* 3.6.10: looks that paint their own light band (IMG-12: the category's page color or a tint) keep their light-row colors
   on a dark row, so they render the same on every row. The dark row only turned their text white (white on their own
   light band). */
body .sb-blk.sb-blk.sb-imagery.sb-imagery.sb-edge.sb-dark:is(.sb-look-12) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-imagery.sb-imagery.sb-edge.sb-dark:is(.sb-look-12) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-imagery.sb-imagery.sb-edge.sb-dark:is(.sb-look-12) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-imagery.sb-imagery.sb-edge.sb-dark:is(.sb-look-12) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }

/* Source: links.fixes.css */
/* The framework removes wrap limits; the two profile looks must remain narrow. */
body .sb-links.sb-links.sb-look-01 > .sec > .wrap.l01,
body .sb-links.sb-links.sb-look-15 > .sec > .wrap.l15 { max-width: 464px !important; }

/* Uploaded icons use a mask so they keep the reference size and inherit Branding colors. */
body .sb-links.sb-links .sb-link-icon.ic {
	width: 22px;
	height: 22px;
	background: currentColor;
	mask: var(--sb-link-icon) center / contain no-repeat;
}
body .sb-links.sb-links :is(.l09, .l18-g) .sb-link-icon.ic { width: 28px; height: 28px; }

/* The theme's paragraph and heading rules override these reference type treatments. */
body .sb-links.sb-links .l10-w { font-size: var(--st-type-h1) !important; line-height: 1.15 !important; }
body .sb-links.sb-links :is(.l04-k, .l05-h) { font-family: var(--pb-body-font) !important; font-weight: var(--pb-ui-weight) !important; }
body .sb-links.sb-links .l16-l { color: var(--pb-secondary) !important; }
body .sb-links.sb-links h2.h { font-weight: var(--pb-heading-weight) !important; }
body .sb-links.sb-links :is(h2.h3, h3.l07-n, h3.l12-t) { font-weight: var(--pb-card-weight) !important; }

/* At very narrow phone widths, long names and domains must not widen the card grids. */
@media (max-width: 359px) {
	body .sb-links.sb-links .l09 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body .sb-links.sb-links .l09-n { overflow-wrap: anywhere; }
	body .sb-links.sb-links .l12 { grid-template-columns: minmax(0, 1fr); }
	body .sb-links.sb-links .l12 a { grid-template-columns: 88px minmax(0, 1fr); }
	body .sb-links.sb-links .l12-u { overflow-wrap: anywhere; }
}
/* sb_a() prints the arrow in its own span; the design has it as part of the link text (one underline, no flex gap). */
body .sb-links.sb-links a:is(.tlink, .btn) > span[aria-hidden="true"] { display: contents; }
/* The theme resets link underlines; the design underlines the social icon links and the disclosure list links. */
body .sb-links.sb-links ul.soc a, body .sb-links.sb-links.sb-look-17 details ul a { text-decoration: underline; }
/* Small caption headings keep the muted color (the theme forces heading ink). */
body .sb-links.sb-links :is(.l04-k, .l05-h) { color: var(--pb-muted) !important; }
body .sb-links.sb-links .l20-v { line-height: 1.3 !important; }


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-links.sb-links .d { font-size:var(--st-type-h2); }
body .sb-links.sb-links .btn { font-size: var(--st-type-body); }
body .sb-links.sb-links .l04-t { font-size:var(--st-type-h3) !important; }
body .sb-links.sb-links .l05-h { font-size:var(--st-type-h3); }
body .sb-links.sb-links .l07-n { font-size: var(--st-type-h3); }
body .sb-links.sb-links .l11-w { font-size:var(--st-type-h2); }
body .sb-links.sb-links .l12-t { font-size: var(--st-type-h3); }
body .sb-links.sb-links .l13-r a { font-size: var(--st-type-h3); }
body .sb-links.sb-links .l16-l { font-size:var(--st-type-h3); }
body .sb-links.sb-links .l20-v { font-size: var(--st-type-body) !important; }
body .sb-links.sb-links h2.h3 { font-size:var(--st-type-h2) !important; }

/* 3.6.10: shortcut tiles without an icon show the title's first letter (LNK-18). */
body .sb-links.sb-links .l18-m { font: var(--pb-heading-weight) 30px/1 var(--pb-heading-font); }
/* 3.6.10: looks 03, 15 (and other on-primary links looks) are designed on a primary band; the framework strips a look's
   own background, so on a light row their white text vanished (LNK-03, LNK-15). On a light row they paint a primary panel. */
body .sb-links.sb-links:not(.sb-dark):not(.sb-edge) > .sec.on-primary { background: var(--pb-primary) !important; color: var(--pbd-fallback-on-brand); border-radius: var(--st-photo-r); padding: clamp(40px, 6vw, 88px) clamp(24px, 5vw, 72px) !important; }
/* 3.6.10: contact rows without an icon put the text in the icon's auto column, so the link sat right after the value
   instead of at the row's end (LNK-20). */
@media (min-width: 768px) { body .sb-links.sb-links .l20-l li:not(:has(> .ic)) { grid-template-columns: 1fr auto; } }
/* 3.6.10: on phones the two social cards per row could not fit names at the card title size ("Instagram"), so the
   second column ran off the screen (LNK-09). */
@media (max-width: 600px) {
	body .sb-links.sb-links .l09 > * { min-width: 0; }
	body .sb-links.sb-links .l09-n { font-size:var(--st-type-h3) !important; }
	body .sb-links.sb-links .l09 a { padding: 20px 16px; }
}

/* Source: lists.fixes.css */
/* LST-05: the item icon is an image; draw it as a mask so it takes the theme color like the design's inline icons. */
body .sb-lists.sb-lists .mark.has-icon{display:block;width:28px;height:32px;padding:0;margin-top:4px;background:currentColor;-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
/* The theme caps .section at 1240px; the edge bands (08, 09, 19) must touch both screen edges. */
body .sb-lists.sb-lists.sb-edge .section{max-width:none;width:100%}
/* Ink bands sit on a light row, so the row's --pb-border is a dark hairline; use the light one the design draws on ink. */
body .sb-lists.sb-lists .ink{--pb-border:color-mix(in srgb,var(--pb-on-dark) 22%,transparent)}
/* The theme's h3 color rule beats the category label's primary color; restore it (on ink bands the label stays light). */
body .sb-lists.sb-lists h3.category { color: var(--pb-primary) !important; }
body .sb-lists.sb-lists .ink h3.category { color: var(--pb-on-dark) !important; }
/* Row backgrounds: the design's ink band is its text color, and its surface is a slight tint of the page color; the stock Black/Surface rows are pure black and near white. */


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-lists.sb-lists summary { font-size: var(--st-type-h3) !important; }
body .sb-lists.sb-lists .l17 .lead h3 { font-size:var(--st-type-h3) !important; }

/* 3.6.10: the two-column list sits beside the intro, so each column is narrow; at the Medium title size item titles
   wrapped one word per line (LST-16). */
body .sb-lists.sb-lists .l16 .grid2 .entry h3 { font-size:var(--st-type-h3) !important; }

/* Source: logo-grids.fixes.css */
/* Logo grids: framework-only fixes. The library colors "cut" parts of a logo with --lg-cut; the SVG assets use masks instead, so nothing here. */
body .sb-logo-grids.sb-logo-grids .l19 figure img{width:clamp(120px,12vw,160px);height:auto}

/* Fidelity: the design's own tokens (Branding has no slot for them). Light rows only; dark rows keep base.css values. */
/* LOG-16: the design's own primary tint band (9% primary over paper); the framework strips a look's own background. */
body.cc-look-pre-3-6-10 .ct-wrapper.layout-sb-logo-grids:has(.sb-look-16){background:var(--pb-tint) !important}
body .sb-logo-grids.sb-logo-grids .tlink>span[aria-hidden]{font-family:var(--pb-body-font,system-ui,sans-serif)}
/* Link arrow: one text run, like the design, so the underline is unbroken. */
body .sb-logo-grids.sb-logo-grids .tlink{display:inline-block;min-height:0;padding-block:calc((44px - 1lh) / 2)}


/* Branding Sizes: role overrides kept outside the generated category CSS. */
body .sb-logo-grids.sb-logo-grids .cur { font-size: var(--st-type-small) !important; }
body .sb-logo-grids.sb-logo-grids .btn { font-size: var(--st-type-body); }
body .sb-logo-grids.sb-logo-grids .l03 blockquote { font-size: var(--st-type-quote) !important; }
body .sb-logo-grids.sb-logo-grids .l09 .press blockquote { font-size: var(--st-type-quote) !important; }
body .sb-logo-grids.sb-logo-grids .l11 .big { font-size:var(--st-type-display) !important; }
body .sb-logo-grids.sb-logo-grids .l15 blockquote { font-size: var(--st-type-quote) !important; }

/* 3.6.10: press pull quotes sit four to a row; at the Quotes size they wrapped one word per line (LOG-09). The design
   sets them at the lead size; a little larger keeps them reading as quotes. */
body .sb-logo-grids.sb-logo-grids .l09 .press blockquote { font-size: calc(var(--st-type-lead) * 1.2) !important; }
/* 3.6.10: seals of different shapes sat at different heights, so the captions did not line up (LOG-19). Every seal
   gets the same square box and keeps its whole shape inside it. */
body .sb-logo-grids.sb-logo-grids .l19 figure { align-content: start; }
body .sb-logo-grids.sb-logo-grids .l19 figure img { aspect-ratio: 1; object-fit: contain; }
/* 3.6.10: labels drawn in Secondary (LOG-04 tier names, LOG-13 label) vanished on a dark band when Secondary is dark: there they keep its hue at a
   lightness that reads. */
body .sb-blk.sb-blk.sb-logo-grids.sb-logo-grids.sb-dark { --pb-secondary: oklch(from var(--bl-site-secondary) max(l, 0.82) c h); }
/* 3.6.10: uploaded logos (PNG/JPG, not inline SVG) stay their own dark ink, invisible on a dark band or 12's photo: there they
   print white, as logo walls do. Logos in a light well (05's boxes) keep their colors. 12's backing is Branding Dark. */
body .sb-blk.sb-blk.sb-logo-grids.sb-logo-grids.sb-dark img.lg:not(.lgbox img),
body .sb-blk.sb-blk.sb-logo-grids.sb-logo-grids :is(.l12, .dark) img.lg { filter: brightness(0) invert(1); }
body .sb-blk.sb-blk.sb-logo-grids.sb-logo-grids .l12 { background-color: var(--pb-ink); }
/* 3.6.10: 05's light logo wells keep dark ink for inline SVG logos on a dark band. */
body .sb-blk.sb-blk.sb-logo-grids.sb-logo-grids.sb-dark .l05 .card .lgbox { color: var(--pb-ink); }
/* 3.6.10: 16's tint band read --pb-tint on the row wrapper, where it is not defined, so the band was always clear (white on
   light rows, the page color over a dark row's black, under white words). It paints Branding Fifth on light rows and leaves
   dark rows (Main, Black, photo, Secondary) their own Background. */
body .ct-wrapper.layout-sb-logo-grids:not(.bg-main, .bg-black, .bg-image, .bg-video, .bg-sec):has(.sb-look-16) { background: var(--bl-site-surface) !important; }

/* Source: maps.fixes.css */
/* The framework map (css/cc-map.css) sits inside the design's .map box: fill it, no frame of its own. */
body .sb-maps.sb-maps .map > .cc-map{height:100%;min-height:0;border:0;border-radius:0}
body .sb-maps.sb-maps .map-wrap > .map img{position:absolute;inset:0}
/* Theme link/heading rules reach the map fallback and the pin. */
body .sb-maps.sb-maps .cc-map__fallback a{color:var(--pb-ink);min-height:0;display:inline}
body .sb-maps.sb-maps .cc-map__fallback p{font-size:var(--st-type-body) !important}
/* Theme link rules drop the underline and size on the location links. */
body .sb-maps.sb-maps .location .address a,body .sb-maps.sb-maps .location .links a:not(.primary){text-decoration:underline;text-underline-offset:5px;color:inherit}
body .sb-maps.sb-maps .location .links a.primary{text-decoration:none;color:var(--pb-on-dark)}
/* Zero-difference rule: the approved design's own palette (library tokens), not the site Branding's near matches. Dark rows (.sb-dark) still win. */
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-maps.sb-maps { font-size: var(--st-type-body) !important }
body .sb-maps.sb-maps h1 { font-size:var(--st-type-h2) !important}
body .sb-maps.sb-maps h2 { font-size:var(--st-type-h2) !important}
body .sb-maps.sb-maps h3 { font-size:var(--st-type-h3) !important}
body .sb-maps.sb-maps .label { font-size: var(--st-type-small) !important }
body .sb-maps.sb-maps .intro p { font-size: var(--st-type-lead) !important }
body .sb-maps.sb-maps .lead { font-size: var(--st-type-lead) !important }
body .sb-maps.sb-maps .small { font-size: var(--st-type-small) !important }
body .sb-maps.sb-maps .display { font-size:var(--st-type-h2) !important}
body .sb-maps.sb-maps .map-notice p { font-size: var(--st-type-small) !important }
body .sb-maps.sb-maps .maplibregl-ctrl-attrib { font-size: var(--st-type-small) !important }
body .sb-maps.sb-maps .maplibregl-ctrl-attrib a { font-size: var(--st-type-small) !important }
body .sb-maps.sb-maps .location-name { font-size:var(--st-type-h3) !important}
body .sb-maps.sb-maps .map-heading p { font-size: var(--st-type-lead) !important }
body .sb-maps.sb-maps .primary { font-size: var(--st-type-body) !important }
body .sb-maps.sb-maps .quiet { font-size: var(--st-type-body) !important }
/* 3.6.10: on a dark band the soft tint (Branding Fifth) that panels, bands and cards paint turns into the same faint light
   tint as the surface, so the white text the band gives them stays readable (MAP-10/17 printed white on a light tint). */
body .sb-blk.sb-blk.sb-maps.sb-maps:not(.sb-edge).sb-dark { --pb-tint: color-mix(in srgb, var(--pb-on-dark) 8%, transparent); }

/* Source: marquees.fixes.css */
/* Studio Blocks: marquees. Hand-written framework fixes (marquees.css is generated). */

/* 3.6.10: the outlined words were a thin 70% stroke on the primary band and read as pale smudges (MRQ-07). Full-strength
   stroke, a little heavier. */
body .sb-marquees.sb-marquees .m07 .mq-set li:nth-child(even) { -webkit-text-stroke: 2px var(--pb-bg); }

/* 3.6.10: with reduced motion a marquee stands still, centered and wider than the window, so its first and last words
   were cut at both edges (MRQ-02, MRQ-05 ...). Still word strips wrap and show every phrase; still photo strips start at
   the left and scroll sideways. */
@media (prefers-reduced-motion: reduce) {
	body .sb-marquees.sb-marquees .mq-win:not(:has(img)) .mq-track { width: auto; flex: 1 1 auto; min-width: 0; }
	body .sb-marquees.sb-marquees .mq-win:not(:has(img)) .mq-set { flex-wrap: wrap; justify-content: center; flex: 1 1 auto; min-width: 0;row-gap:var(--st-stack-gap,10px); }
	body .sb-marquees.sb-marquees .mq-win:has(img) { justify-content: flex-start; overflow-x: auto; scrollbar-width: thin; }
}
/* The slim ticker's line is 50px tall; at the Titles size its words were clipped top and bottom (MRQ-05). */
body .sb-marquees.sb-marquees .m05 .mq-set li { font-size:var(--st-type-h3) !important; }
/* 3.6.10: 02's dark strip turned white with white words on a dark band: it paints Branding Dark there. */
body .sb-blk.sb-blk.sb-marquees.sb-marquees.sb-dark .m02 .bar { background: var(--pb-ink); }

/* Source: memberships.fixes.css */
/* Studio Blocks: memberships. Framework-only fixes. */
/* The library toggles Monthly/Yearly under a .variant wrapper; the framework wraps looks in .blk instead. */
body .sb-memberships.sb-memberships .blk:has(input[value="year"]:checked) .yr{display:inline}
body .sb-memberships.sb-memberships .blk:has(input[value="year"]:checked) .mo{display:none}
/* 13: who-is-joining radios use value w0, w1, w2 (any number of options). */
body .sb-memberships.sb-memberships .m13 .who{display:none}
body .sb-memberships.sb-memberships .m13:has(input[value="w0"]:checked) .who.w0,body .sb-memberships.sb-memberships .m13:has(input[value="w1"]:checked) .who.w1,body .sb-memberships.sb-memberships .m13:has(input[value="w2"]:checked) .who.w2,body .sb-memberships.sb-memberships .m13:has(input[value="w3"]:checked) .who.w3{display:block}
/* 04: the table has as many plan columns as items. */
body .sb-memberships.sb-memberships .m4-r{grid-template-columns:minmax(0,2.2fr) repeat(var(--n,3),minmax(0,1fr))}
@media (max-width:767px){body .sb-memberships.sb-memberships .m4-r{grid-template-columns:minmax(0,1.6fr) repeat(var(--n,3),minmax(0,1fr))}}
/* Dark buttons/bands: --pb-text turns light on dark rows. */
body .sb-memberships.sb-memberships.sb-dark .ink{background:var(--bl-look-headings,var(--pb-ink))}
/* The theme's global h3/link colors and .section cap. */
body .sb-memberships.sb-memberships .blk h3{color:inherit}
/* :where keeps this default below a look's own h3 size (09, 14, 17 set their own). */
body .sb-memberships.sb-memberships :where(.blk) h3{font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m5-opts .step button{cursor:pointer}
/* 00: the empty state keeps its 720px column (the frame removes .wrap's max-width, so cap the card). */
body .sb-memberships.sb-memberships .sbi17 .empty{max-width:720px;margin-inline:auto}
/* 15: the library's global p size rule must not shrink the big price. */
body .sb-memberships.sb-memberships .m15 .big{font-size:var(--st-type-display) !important}
/* Units stay on the price line (the frame is narrower than the library page). */
body .sb-memberships.sb-memberships .price .per{white-space:nowrap}
/* 11: ticket stub buttons wrap inside the card on phones. */
body .sb-memberships.sb-memberships .m11-pass .stub{flex-wrap:wrap}
@media (max-width:900px){body .sb-memberships.sb-memberships .m11-pass .stub .btn{white-space:normal;text-align:center;padding-block:12px}}

/* Result line of a posted form (shared Forms submit): inherits the look text color. */
body .sb-memberships.sb-memberships .sbstatus { margin: 12px 0 0; font-weight: var(--pb-ui-weight); }

/* 12, 20: the library's ol keeps the browser indent and margin (the theme resets them). */
body .sb-memberships.sb-memberships .m12-path{padding-left:40px;margin-bottom:17px}
body .sb-memberships.sb-memberships .m20-steps{padding-left:40px;margin-top:17px}
/* 15: the theme's p line-height must not loosen the big price. */
body .sb-memberships.sb-memberships .m15 .big{line-height:1 !important}
/* 13: the design's own 860px column (the frame removes .wrap's max-width). */
body .sb-memberships.sb-memberships .blk.m13 .wrap{max-width:860px !important}
/* Text links with an arrow: the library's link is one text run, sb_a adds a span, so no flex gap between them. */
body .sb-memberships.sb-memberships .tlink{gap:0}
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-memberships.sb-memberships { font-size: var(--st-type-body) }
body .sb-memberships.sb-memberships .fh { font-size: var(--st-type-small) }
body .sb-memberships.sb-memberships .fl { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .small { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .btn { font-size: var(--st-type-body) }
body .sb-memberships.sb-memberships .fbot { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .inp { font-size: var(--st-type-body) !important }
body .sb-memberships.sb-memberships .intro h1 { font-size:var(--st-type-h1)}
body .sb-memberships.sb-memberships .intro p { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .toggles button { font-size: var(--st-type-small) }
body .sb-memberships.sb-memberships .blk h2.hd { font-size:var(--st-type-h2) !important}
body .sb-memberships.sb-memberships .lead { font-size: var(--st-type-lead) !important }
body .sb-memberships.sb-memberships .price { font-size:var(--st-type-display) !important}
body .sb-memberships.sb-memberships .per { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .note { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .tag { font-size: var(--st-type-small) }
body .sb-memberships.sb-memberships .seg label { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .seg small { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .fld > span { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .rowline { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .rowline.total { font-size: var(--st-type-body) !important }
body .sb-memberships.sb-memberships .step button { font-size: var(--st-type-lead) }
body .sb-memberships.sb-memberships .empty h3 { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m1-card h3 { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m1-card p.d { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m1-card .checks { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m2-row h3 { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m2-row p { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m2-row ul { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m2-buy .price { font-size:var(--st-type-display) !important}
body .sb-memberships.sb-memberships .m4-r.hdr b { font-size:var(--st-type-h3) !important}
body .sb-memberships.sb-memberships .m4-r.hdr span { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m4-r .lbl2 { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m4-r.cta .btn { font-size: var(--st-type-body) !important }
body .sb-memberships.sb-memberships .m5-opts b { font-size:var(--st-type-h3) !important}
body .sb-memberships.sb-memberships .m5-opts span { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m5 .panel h3 { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m6 .panel h3 { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m6 .panel .checks { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m7-card .org { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m7-card .who { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m7-card .meta { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m8-status dl { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m8-dot { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m8-opt h3 { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m8-opt .price { font-size:var(--st-type-display) !important}
body .sb-memberships.sb-memberships .m8-opt .diff { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m9-perks h3 { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m9-perks p { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m10-card h3 { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m10-card .bd p { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m10-card .bd p.price { font-size:var(--st-type-display) !important}
body .sb-memberships.sb-memberships .m11-pass h3 { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m11-pass .main p { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m11-pass .stub .price { font-size:var(--st-type-display) !important}
body .sb-memberships.sb-memberships .m12-path li::before { font-size: var(--st-type-h3) }
body .sb-memberships.sb-memberships .m12-path span { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m13-out .price { font-size:var(--st-type-display) !important}
body .sb-memberships.sb-memberships .m14-tier h3 { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m14-tier .checks { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m15-meter p { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m15 .big { font-size:var(--st-type-display)}
body .sb-memberships.sb-memberships .m16-choices span { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m17-grid h3 { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m17-grid p { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m17-bar .price { font-size:var(--st-type-display) !important}
body .sb-memberships.sb-memberships .m18-card h3 { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m18-card > p { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m18-opts b { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m18-opts em { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m19-list b { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m19-list span { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m19-list em { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m20-steps li { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .m20-plans b { font-size:var(--st-type-h3)}
body .sb-memberships.sb-memberships .m20-plans .price { font-size:var(--st-type-display) !important}
body .sb-memberships.sb-memberships .m20-plans span { font-size: var(--st-type-small) !important }
body .sb-memberships.sb-memberships .sbi12 { font-size:var(--st-type-h3) !important}
body .sb-memberships.sb-memberships .sbi14 { font-size: var(--st-type-body) !important }
body .sb-memberships.sb-memberships .m12-path b { font-size: var(--st-type-h3) !important }

/* 3.6.10: the card footer holds the price and a button side by side; at the Huge size the price pushed the button
   past the card edge (MEM-10). The design's card price is about 36px; the button drops below when it still can't fit. */
body .sb-memberships.sb-memberships .m10-card .bd p.price { font-size:var(--st-type-h2) !important; }
body .sb-memberships.sb-memberships .m10-card .bd .foot { flex-wrap: wrap; }
/* 3.6.10: partner names share a narrow two-column list with their offer tag; the design sets them at about 22px, and at
   the Medium title size they wrapped one word per line (MEM-19). */
body .sb-memberships.sb-memberships .m19-list b { font-size:var(--st-type-h3); }
body .sb-memberships.sb-memberships .m6-note { margin: 10px 0 24px; }
/* 3.6.10: on a featured (primary) plan card the site's button colors won, leaving white text with no button shape on the
   primary fill (MEM-01). The featured button is the light one, as designed. */
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-memberships.sb-memberships .m1-card.feat .btn:not(.ghost) { background: var(--pbd-fallback-on-brand); color: var(--bl-site-primary); border-color: var(--pbd-fallback-on-brand); }
/* The check marks on the featured card use the Secondary color, which can be as dark as the text on a primary fill. */
body .sb-memberships.sb-memberships .m1-card.feat .checks svg { color: var(--pbd-fallback-on-brand); }
body .sb-memberships.sb-memberships .m-note { margin-top: 12px; }
/* Same on the primary panels (.pri, MEM-15): the light button keeps its shape. */
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-memberships.sb-memberships .pri .btn:not(.ghost) { background: var(--pbd-fallback-on-brand); color: var(--bl-site-primary); border-color: var(--pbd-fallback-on-brand); }
/* 3.6.10: 17's dark price bar (Copy color with page-color words) turned white with white words on a dark band, where the
   copy color flips to white: on a dark band it paints Branding Dark like the other own dark panels; its button stays light. */
body .sb-blk.sb-blk.sb-memberships.sb-memberships.sb-dark .m17-bar { background: var(--pb-ink); }
body .sb-blk.sb-blk.sb-memberships.sb-memberships.sb-dark .m17-bar .btn { color: var(--pb-ink); }

/* Source: modals.fixes.css */
/* Modal fixes for the framework (the generated modals.css is never edited). */
/* The library's page-scroll lock rule is nested under .sb-modals.sb-modals, so it never matches: lock the page while a modal is open. */
html:has(.sb-modals.sb-modals dialog[open]) { overflow: hidden; }
/* The trigger outside QA mode: no review strip. */
body .sb-modals.sb-modals .mtrig { display: block; }
/* Theme link/heading/button rules reaching into the dialogs. */
body .sb-modals.sb-modals .md a:not(.btn):not(.tlink):not(.x) { text-decoration: none; }
body .sb-modals.sb-modals .m01 dd a { color: var(--pb-primary); text-decoration: underline; }
body .sb-modals.sb-modals .md .btn, body .sb-modals.sb-modals .md .btn:hover { text-decoration: none; }
body .sb-modals.sb-modals .md a.btn { color: var(--pb-on-dark); }
body .sb-modals.sb-modals .md a.btn--light { color: var(--pb-text); background: var(--pb-on-dark); }
body .sb-modals.sb-modals .md a.btn--ghost { color: var(--pb-text); }
body .sb-modals.sb-modals .md .h1, body .sb-modals.sb-modals .md .h2, body .sb-modals.sb-modals .md .h3 { color: inherit; }
body .sb-modals.sb-modals .m19 .ov .h1 { color: var(--pb-on-dark); }
body .sb-modals.sb-modals .m10 nav a { color: var(--pb-on-dark); }
body .sb-modals.sb-modals .m10 .side a:not(.btn) { color: var(--pb-on-dark); text-decoration: underline; }
/* Share rows can be links as well as buttons. */
body .sb-modals.sb-modals .m12 .ac a { width: 100%; min-height: 64px; display: grid; grid-template-columns: 1fr auto;gap:var(--st-grid-gap,2px 12px); text-align: left; border-top: var(--st-line-w) solid var(--pb-border); padding: 12px 0; color: inherit; text-decoration: none; }
body .sb-modals.sb-modals .m12 .ac a span:first-of-type, body .sb-modals.sb-modals .m12 .ac button span:first-of-type { grid-row: 2; color: var(--pb-muted); font-size: var(--st-type-small) !important; }
body .sb-modals.sb-modals .m12 .ac a span:last-child { grid-row: 1/3; grid-column: 2; align-self: center; }
/* Video: the playing embed fills the 16:9 box without the dimming overlay. */
body .sb-modals.sb-modals .m05 .vp.is-playing::after { display: none; }
body .sb-modals.sb-modals .m05 .vp iframe, body .sb-modals.sb-modals .m05 .vp video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: var(--pb-ink); }
/* MapLibre map fills the split's left half. */
body .sb-modals.sb-modals .m09 .map > .cc-map { position: absolute; inset: 0; height: 100%; min-height: 0; border: 0; border-radius: 0; }
body .sb-modals.sb-modals .m09 .map .cc-map__fallback a { color: var(--pb-ink); display: inline; min-height: 0; }
/* The theme's phone paragraph size reaches the eyebrow (a <p>); keep the design's label size. */
body .sb-modals.sb-modals .eyebrow { font-size: var(--st-type-small) !important; line-height: 1.3 !important; }

/* Result line of a posted form (shared Forms submit): inherits the look text color. */
body .sb-modals.sb-modals .sbstatus { margin: 12px 0 0; font-weight: var(--pb-ui-weight); }


/* The extractor dropped ".lbl" from the library's ".fld label, .lbl" rule. */
body .sb-modals.sb-modals .lbl { font-weight: var(--pb-ui-weight); font-size: var(--st-type-small) !important; }
/* Links in the staff bio facts keep the library underline. */
body .sb-modals.sb-modals .md dd a, body .sb-modals.sb-modals .m10 .side p a { text-decoration: underline !important; }
/* 14: section headings keep the page's 1.6 line height (the theme sets h3 tighter). */
body .sb-modals.sb-modals .m14 .bd .lbl { line-height: 1.6; }
/* 16: "Up next" label sits 28px under the controls. */
body .sb-modals.sb-modals .sbi14b { margin-top: 28px; }

/* 02: on phones the dialog is narrower than the library page, so keep the title clear of the close button. */
@media (max-width: 767px) { body .sb-modals.sb-modals .m02 .h2 { padding-right: 44px; } }

/* 09: the design's ".map svg" (the static drawing) must not size the MapLibre pin. */
body .sb-modals.sb-modals .m09 .map .cc-map__pin svg { position: static; width: 27.2px; height: 34px; inset: auto; }

/* The theme paints placeholders #bbb; the library keeps the browser default. */
body .sb-modals.sb-modals input::placeholder, body .sb-modals.sb-modals textarea::placeholder { color: var(--pb-placeholder); opacity: 1; }
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-modals.sb-modals { font-size: var(--st-type-body); }
body .sb-modals.sb-modals .h-display { font-size:var(--st-type-h2); }
body .sb-modals.sb-modals .h1 { font-size:var(--st-type-h2); }
body .sb-modals.sb-modals .h2 { font-size:var(--st-type-h2); }
body .sb-modals.sb-modals .h3 { font-size:var(--st-type-h3); }
body .sb-modals.sb-modals .lead { font-size: var(--st-type-lead) !important; }
body .sb-modals.sb-modals .small { font-size: var(--st-type-small) !important; }
body .sb-modals.sb-modals .eyebrow { font-size: var(--st-type-small); }
body .sb-modals.sb-modals .role { font-size: var(--st-type-small) !important; }
body .sb-modals.sb-modals .btn { font-size: var(--st-type-body); }
body .sb-modals.sb-modals .pagehead h1 { font-size:var(--st-type-h1); }
body .sb-modals.sb-modals .rtoggle button { font-size: var(--st-type-small); }
body .sb-modals.sb-modals .fake .logo { font-size:var(--st-type-h3); }
body .sb-modals.sb-modals .md .h2 { font-size:var(--st-type-h2) !important; }
body .sb-modals.sb-modals .fld label { font-size: var(--st-type-small) !important; }
body .sb-modals.sb-modals .m01 dt { font-size: var(--st-type-small) !important; }
body .sb-modals.sb-modals .m03 figcaption { font-size: var(--st-type-small) !important; }
body .sb-modals.sb-modals .m04 .ar { font-size: var(--st-type-body) !important; }
body .sb-modals.sb-modals .m06 .date span { font-size: var(--st-type-small) !important; }
body .sb-modals.sb-modals .m06 .date strong { font-size: var(--st-type-h3); }
body .sb-modals.sb-modals .m06 dt { font-size: var(--st-type-small) !important; }
body .sb-modals.sb-modals .m08 .amts>label { font-size: var(--st-type-lead); }
body .sb-modals.sb-modals .m09 address { font-size: var(--st-type-lead) !important; }
body .sb-modals.sb-modals .m10 nav a { font-size:var(--st-type-h2) !important; }
body .sb-modals.sb-modals .m12 .ac button span:first-of-type { font-size: var(--st-type-small) !important; }
body .sb-modals.sb-modals .m15 .prog { font-size: var(--st-type-small) !important; }
body .sb-modals.sb-modals .m15 .opts label span { font-size: var(--st-type-small) !important; }
body .sb-modals.sb-modals .m16 .t { font-size: var(--st-type-small) !important; }
body .sb-modals.sb-modals .m16 .ctl button { font-size: var(--st-type-body); }
body .sb-modals.sb-modals .m18 .kv span { font-size: var(--st-type-small) !important; }
body .sb-modals.sb-modals .m20 .sb input { font-size: var(--st-type-body); }
body .sb-modals.sb-modals .sbi2 { font-size: var(--st-type-lead) !important; }
body .sb-modals.sb-modals .sbi4 { font-size: var(--st-type-lead) !important; }
body .sb-modals.sb-modals .sbi36 { font-size: var(--st-type-lead) !important; }
body .sb-modals.sb-modals .sbi38 { font-size: var(--st-type-lead) !important; }
body .sb-modals.sb-modals .m01 .h2 { font-size:var(--st-type-h3) !important; }
body .sb-modals.sb-modals .m12 h2.h3 { font-size:var(--st-type-h2) !important; }
body .sb-modals.sb-modals .m14 h3.lbl { font-size:var(--st-type-h3) !important; }

/* 3.6.10: the Branding button (base.css) beat the light button, so the full-screen menu's button was blue on its blue
   panel with no visible shape (MOD-10). A pop-up button never shrinks beside a long text link ("Learn / more", MOD-02). */
body .sb-blk.sb-blk.sb-blk.sb-blk .md .btn--light { background: var(--pb-on-dark); color: var(--pb-text); border-color: var(--pb-on-dark); }
body .sb-blk.sb-blk.sb-blk.sb-blk .md .btn--light:hover { background: color-mix(in srgb, var(--pb-on-dark) 88%, var(--pb-text)); color: var(--pb-text); border-color: transparent; }
body .sb-modals.sb-modals .md .btn { flex-shrink: 0; }

/* Source: numbers.fixes.css */
/* sb_a() prints "label <span>→</span>"; inside the design's inline-flex link the space collapses, so restore the gap. */
body .sb-blk.sb-numbers.sb-numbers .tlink > span[aria-hidden]{margin-left:0}

/* Fidelity: the design's own tokens (Branding has no slot for them). Light rows only; dark rows keep base.css values. */
body .sb-numbers.sb-numbers .tlink>span[aria-hidden]{font-family:var(--pb-body-font,system-ui,sans-serif)}
/* Link arrow: one text run, like the design, so the underline is unbroken. */
body .sb-numbers.sb-numbers .tlink{display:inline-block;min-height:0;padding-block:calc((44px - 1lh) / 2)}
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-numbers.sb-numbers { font-size: var(--st-type-body) !important }
body .sb-numbers.sb-numbers .h2 { font-size:var(--st-type-h2) !important}
body .sb-numbers.sb-numbers .h3 { font-size:var(--st-type-h3) !important}
body .sb-numbers.sb-numbers .lead { font-size: var(--st-type-lead) !important }
body .sb-numbers.sb-numbers .small { font-size: var(--st-type-small) !important }
body .sb-numbers.sb-numbers .eyebrow { font-size: var(--st-type-small) !important }
body .sb-numbers.sb-numbers .cur { font-size: var(--st-type-small) !important }
body .sb-numbers.sb-numbers .unit { font-size: var(--st-type-small) !important }
body .sb-numbers.sb-numbers .btn { font-size: var(--st-type-body) }
body .sb-numbers.sb-numbers .toolbar { font-size: var(--st-type-small) !important }
body .sb-numbers.sb-numbers .pagehead h1 { font-size:var(--st-type-h1) !important}
body .sb-numbers.sb-numbers .bill button { font-size: var(--st-type-small) }
body .sb-numbers.sb-numbers.n01 .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n01 .grid p.lead { font-size: var(--st-type-lead) !important }
body .sb-numbers.sb-numbers.n02 .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n02 .h3 { font-size:var(--st-type-h3) !important}
body .sb-numbers.sb-numbers.n03 .story { font-size: var(--st-type-lead) !important }
body .sb-numbers.sb-numbers.n03 .side .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n04 .now .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n04 .marks span { font-size: var(--st-type-small) !important }
body .sb-numbers.sb-numbers.n05 .colh { font-size: var(--st-type-small) !important }
body .sb-numbers.sb-numbers.n05 .r .h3 { font-size:var(--st-type-h3) !important}
body .sb-numbers.sb-numbers.n05 .was { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n05 .now { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n05 .arr { font-size: var(--st-type-small) !important }
body .sb-numbers.sb-numbers.n06 .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n07 .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n08 thead th { font-size: var(--st-type-small) !important }
body .sb-numbers.sb-numbers.n08 td { font-size: var(--st-type-body) !important }
body .sb-numbers.sb-numbers.n08 td:first-child { font-size: var(--st-type-body) !important }
body .sb-numbers.sb-numbers.n09 .t .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n09 .big .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n10 .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n11 .yr { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n11 .it .m { font-size: var(--st-type-small) !important }
body .sb-numbers.sb-numbers.n11 .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n12 .bar { font-size: var(--st-type-small) !important }
body .sb-numbers.sb-numbers.n12 .bar b { font-size:var(--st-type-h3) !important; white-space:nowrap}
body .sb-numbers.sb-numbers.n12 .bar { grid-template-columns:minmax(5.5rem,auto) 1fr max-content !important }
body .sb-numbers.sb-numbers.n13 .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n14 .ring .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n15 .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n16 .say { font-size:var(--st-type-h2) !important}
body .sb-numbers.sb-numbers.n16 .say .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n17 .stats .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n18 .bar b { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n18 .years { font-size: var(--st-type-small) !important }
body .sb-numbers.sb-numbers.n19 .st .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n19 blockquote { font-size: var(--st-type-quote) !important }
body .sb-numbers.sb-numbers.n20 .bar .lbl { font-size: var(--st-type-small) !important }
body .sb-numbers.sb-numbers.n20 .bar .num { font-size:var(--st-type-display) !important}
body .sb-numbers.sb-numbers.n19 .who strong { font-size:var(--st-type-h3) !important}
/* 3.6.10: without an icon, 07's stats start in the first column instead of a 64px icon column. */
body .sb-numbers.sb-numbers.n07 .it:not(:has(> .ic)) { grid-template-columns: 1fr; }
body .sb-numbers.sb-numbers.n07 .it:not(:has(> .ic)) > * { grid-column: 1; }

/* 3.6.10: with reduced motion the ticker stops and wrapped both copies of its loop, so every stat showed twice and the
   rows ended two thirds across (NUM-06). Still: one copy, the stats spread across the full band. */
@media (prefers-reduced-motion: reduce) {
	body .sb-numbers.sb-numbers.n06 .it[aria-hidden="true"] { display: none; }
	body .sb-numbers.sb-numbers.n06 .belt { display: grid; --fit-max: 3; grid-template-columns: repeat(var(--fit-c,3),minmax(0,1fr)); }
	body .sb-numbers.sb-numbers.n06 .it { white-space: normal; flex-wrap: wrap;column-gap:var(--st-grid-gap,12px);row-gap:var(--st-stack-gap,4px); border-bottom: var(--st-line-w) solid var(--pb-rule-on-dark); }
	body .sb-numbers.sb-numbers.n06 .it .num { white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) and (max-width: 767px) {
	body .sb-numbers.sb-numbers.n06 .belt { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* 3.6.10: at the Huge size the percent ran over the ring's stroke (NUM-14). The figure fits inside the ring. */
body .sb-numbers.sb-numbers.n14 .ring { container-type: inline-size; }
body .sb-numbers.sb-numbers.n14 .ring .num { font-size: min(clamp(calc(var(--st-type-display) * 0.55), 6.25vw, var(--st-type-display)), 22cqi) !important; }
/* 3.6.10: the big figure's descenders ("yrs") touched its caption (NUM-17). */
body .sb-numbers.sb-numbers.n17 .stats .num { line-height: 1.05 !important; margin-bottom: 6px; }
@media (prefers-reduced-motion: reduce) and (max-width: 767px) {
	body .sb-numbers.sb-numbers.n06 .it { padding: 20px 16px; }
	body .sb-numbers.sb-numbers.n06 .num { font-size: min(clamp(calc(var(--st-type-display) * 0.55), 6.25vw, var(--st-type-display)), 9vw) !important; }
}
/* 3.6.10: labels drawn in Secondary (NUM-11 months) vanished on a dark band when Secondary is dark: there they keep its hue at a
   lightness that reads. */
body .sb-blk.sb-blk.sb-numbers.sb-numbers.sb-dark { --pb-secondary: oklch(from var(--bl-site-secondary) max(l, 0.82) c h); }

/* Source: offset.fixes.css */
/* OFF-18 phone: the spine dots hang 5px left of the list; the base overflow clip cut them. Let them show (frame gutter is wider). */
body .sb-offset.sb-offset.sb-look-18{overflow-x:visible}
body .sb-offset.sb-offset p.eyebrow{font-size:var(--st-type-small) !important;line-height:1.3 !important}

body .sb-offset.sb-offset .tlink>span[aria-hidden]{font-family:var(--pb-body-font,system-ui,sans-serif)}
/* Link arrow: one text run, like the design, so the underline is unbroken. */
body .sb-offset.sb-offset .tlink{display:inline-block;min-height:0;padding-block:calc((44px - 1lh) / 2)}
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-offset.sb-offset { font-size: var(--st-type-body) }
body .sb-offset.sb-offset .demo-top h1 { font-size:var(--st-type-h3)}
body .sb-offset.sb-offset .demo-top p { font-size: var(--st-type-small) !important }
body .sb-offset.sb-offset .demo-ctl { font-size: var(--st-type-small) !important }
body .sb-offset.sb-offset .demo-ctl button { font-size: var(--st-type-small) }
body .sb-offset.sb-offset .eyebrow { font-size: var(--st-type-small) }
body .sb-offset.sb-offset .h { font-size:var(--st-type-h2)}
body .sb-offset.sb-offset .d { font-size:var(--st-type-h2)}
body .sb-offset.sb-offset .h3 { font-size:var(--st-type-h3)}
body .sb-offset.sb-offset .lead { font-size: var(--st-type-lead) !important }
body .sb-offset.sb-offset .cap { font-size: var(--st-type-small) !important }
body .sb-offset.sb-offset .btn { font-size: var(--st-type-body) }
body .sb-offset.sb-offset .o08-p figcaption { font-size: var(--st-type-small) }
body .sb-offset.sb-offset h2.h3 { font-size:var(--st-type-h2) !important}

/* 3.6.10: the text card hangs 64px below the photo, and the room for it was section padding the framework removes, so
   the band clipped the card's link (OFF-01). The grid itself makes the room. */
@media (min-width: 768px) { body .sb-offset.sb-offset .o01-g { padding-bottom: 64px; } }
/* 3.6.10: the second print overlaps the right half of the first print's bottom edge, so a longer caption ran under it
   (OFF-08). The first caption keeps to the uncovered left half and wraps. */
body .sb-offset.sb-offset .o08-a figcaption { max-width: 46%; }

/* 3.6.10: 17's words sit on the brand panel drawn by the photo column's ::before; the text column paints the same color, so
   its contrast holds wherever the column ends up (and checkers that read element backgrounds see it). No visible change. */
body .sb-offset.sb-offset .o17-t { background: var(--pb-primary); }

/* Source: page-titles.fixes.css */
/* The hero wrapper is not .sb-edge, so base.css zeroes --st-space (the section padding the designs need) and --pb-text
   falls to currentColor. Give page titles the edge looks' spacing, and an explicit ink for the dark poster. */
body .sb-page-titles.sb-page-titles.sb-hero { --st-space: var(--section-padding, 120px); }
@media only screen and (max-width: 1200px) { body .sb-page-titles.sb-page-titles.sb-hero { --st-space: 80px; } }
@media only screen and (max-width: 501px) and (orientation: portrait) { body .sb-page-titles.sb-page-titles.sb-hero { --st-space: 40px; } }
body .sb-page-titles.sb-page-titles.p17 { background: var(--bl-site-text); }
/* On a dark header --pb-text is currentColor (light), so the light button needs explicit dark text. */
body .sb-page-titles.sb-page-titles .dark .btn { color: var(--bl-site-text); }
/* --pb-text is defined from --bl-look-headings at :root, where the site does not set it, so borders using it vanished. */
body .sb-page-titles.sb-page-titles.sb-hero:not(.sb-dark) { --pb-text: var(--bl-site-text); }
/* 15: the theme forces h2 to the heading font, color and line height; the label is small muted body-font caps. */
body .sb-page-titles.sb-page-titles.p15 .card h2{font-family:var(--pb-body-font) !important;color:var(--pb-muted) !important;line-height:1.6 !important;margin:0}
/* The arrow glyph is not in the Branding font's latin subset; the library page falls back to the system UI font. */
body .sb-page-titles.sb-page-titles .tlink span[aria-hidden]{font-family:var(--pb-body-font,system-ui, sans-serif)}
/* 04 (owner rule): no set height unless Full. Top padding = header room (sticky/fixed/over header) + section padding,
   bottom = section padding; the photo runs up behind an over header; the breadcrumb flows inside the padding. */
body .sb-page-titles.sb-page-titles.p04{flex-direction:column;align-items:stretch;justify-content:flex-end;padding-top:calc(var(--sb-hdr-room, 0px) + var(--sb-hero-pad));padding-bottom:var(--sb-hero-pad)}
body .sb-page-titles.sb-page-titles.p04:not([data-full]){min-height:0}
body .sb-page-titles.sb-page-titles.p04[data-full]{min-height:var(--ct-hero-h, 100svh)}
body .sb-page-titles.sb-page-titles.p04 .crumbs{position:static;grid-column:1/-1;margin:0}
body .sb-page-titles.sb-page-titles.p04 .wrap{padding-block:0}

/* Heights (owner, 2026-10-21): no fixed heights unless Full. Normal = content plus the section padding (--st-space above);
   the header's room (0 for a normal header, its height when it floats over the band) is added to the TOP of the content
   box only, so photo and color backgrounds still run up behind the header. Full = min-height 100svh. */
body .sb-page-titles.sb-page-titles.sb-hero{--hp-top:calc(var(--sb-hdr-room, 0px) + var(--sb-hero-pad))}
body .sb-page-titles.sb-page-titles:is(.p04,.p05,.p06,.p12,.p17,.p19)[data-full]{min-height:var(--ct-hero-h, 100svh)}
/* The giant-word title is type only: on a phone the word shrinks, so it follows its chosen height unless that is Full screen (Index left half a screen blank, 2026-11-05). */
@media (max-width:767px){body .sb-page-titles.sb-page-titles.p12[data-full]:not([data-bl-height="full"]){min-height:var(--st-hero-media,28rem)}}
/* On a wide screen too: a short or standard giant-word title is its type plus padding, not a full screen with an empty half (Zine, 2026-11-05). */
@media (min-width:768px){body .sb-page-titles.sb-page-titles.p12[data-full]:not([data-bl-height="full"]){min-height:0}}
body .sb-page-titles.sb-page-titles:is(.p04,.p05)[data-full]{justify-content:center}
/* top spacing of every content box = room + section padding */
body .sb-page-titles.sb-page-titles:is(.p01,.p08,.p10,.p12,.p13){padding-top:var(--hp-top)}
body .sb-page-titles.sb-page-titles:is(.p02,.p03,.p07,.p09,.p11,.p14,.p15,.p16){padding-top:var(--hp-top)}
body .sb-page-titles.sb-page-titles.p20{padding-top:calc(var(--sb-hdr-room, 0px) + clamp(40px,1.5rem + 3vw,72px))}
body .sb-page-titles.sb-page-titles :is(.p06 .txt,.p17 .txt,.p19 .txt){padding-top:var(--hp-top)}
/* Studio never wraps a page title in the framework's edge hero (no .sb-edge, no .sb-hero), so --st-space is 0 here and
   --sb-hero-pad / --hp-top were never defined: every title using them sat on the header and the next section sat on its
   bottom edge (owner, 2026-11-05: "heros need padding, its basically touching the header"). Give them the framework's
   Smaller Spacing (short) and Normal Spacing (taller heights) as real values. */
body .sb-page-titles.sb-page-titles:not(.sb-edge){--pt-space:clamp(48px,1rem + 4vw,96px);--sb-hero-pad:var(--pt-space);--hp-top:calc(var(--sb-hdr-room, 0px) + var(--sb-hero-pad))}
body .sb-page-titles.sb-page-titles:not(.sb-edge):is([data-bl-height=standard],[data-bl-height=large],[data-bl-height=tall]){--pt-space:clamp(80px,1.5rem + 9vw,160px)}
@media (max-width:767px){body .sb-page-titles.sb-page-titles:not(.sb-edge){--pt-space:40px}}
/* The band (01) only pads its top; the section below joins it when they share a color, so its lead sat on the next heading. */
body .sb-page-titles.sb-page-titles.p01:not(.sb-edge){padding-bottom:var(--pt-space)}
/* 04, 05: no min-height; breadcrumb flows inside the padding instead of sitting 24px under the header */
body .sb-page-titles.sb-page-titles.p05{min-height:0}
body .sb-page-titles.sb-page-titles.p05 .wrap{padding-top:var(--hp-top);padding-bottom:0}
body .sb-page-titles.sb-page-titles.p05 .head{padding-bottom:var(--sb-hero-pad)}
/* photo boxes keep the design's proportion (measured at 1440 and 390) instead of a px height */
body .sb-page-titles.sb-page-titles.p06 .ph{min-height:0;aspect-ratio:1.13}
body .sb-page-titles.sb-page-titles.p07 .ph{min-height:0;aspect-ratio:1.36}
body .sb-page-titles.sb-page-titles.p19 .ph{min-height:0;aspect-ratio:1.03}
body .sb-page-titles.sb-page-titles.p18 .photo{height:auto;aspect-ratio:2.77}
@media(max-width:820px){
	body .sb-page-titles.sb-page-titles.p06 .ph{aspect-ratio:var(--pb-ar-landscape)}
	body .sb-page-titles.sb-page-titles.p07 .ph{aspect-ratio:var(--pb-ar-landscape)}
	body .sb-page-titles.sb-page-titles.p19 .ph{aspect-ratio:var(--pb-ar-landscape)}
	body .sb-page-titles.sb-page-titles.p17 .rail{height:auto}
	body .sb-page-titles.sb-page-titles.p17 .rail .ph:first-child{aspect-ratio:1.27}
}
@media(max-width:600px){body .sb-page-titles.sb-page-titles.p18 .photo{aspect-ratio:1.3}}

/* Width rule (owner): one .wrap per look, its width from base.css only. Split halves pad with --sb-side / --sb-split-pad. */
/* 05: the sibling bar sits in the box; its tint and rule still run edge to edge behind it. */
body .sb-page-titles.sb-page-titles.p05{overflow-x:clip}
body .sb-page-titles.sb-page-titles.p05 .bar{position:relative;background:none;border-top:0}
body .sb-page-titles.sb-page-titles.p05 .bar::before{content:"";position:absolute;z-index:-1;inset:0 -100vmax;background:var(--st-scrim);border-top:var(--st-line-w) solid var(--pb-rule-on-dark)}
body .sb-page-titles.sb-page-titles.p05 .sibs{padding-inline:0}
/* 06, 17: the text half is the box. */
body .sb-page-titles.sb-page-titles:is(.p06,.p17) .txt{padding-left:var(--sb-side);padding-right:var(--sb-split-pad)}
@media(max-width:820px){
	body .sb-page-titles.sb-page-titles:is(.p06,.p17) .txt{padding-inline:var(--sb-side)}
	body .sb-page-titles.sb-page-titles.p17 .rail{padding-inline:var(--sb-side)}
}
/* 08: the wide photo is inside the box, as wide as it. */
body .sb-page-titles.sb-page-titles.p08 .ph{width:100%;margin-inline:0}
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-page-titles.sb-page-titles { font-size: var(--st-type-body); }
body .sb-page-titles.sb-page-titles .intro h1 { font-size:var(--st-type-h1); }
body .sb-page-titles.sb-page-titles .ctl { font-size: var(--st-type-small) !important; }
body .sb-page-titles.sb-page-titles .ctl button { font-size: var(--st-type-small); }
body .sb-page-titles.sb-page-titles .t { font-size:var(--st-type-h1) !important; }
body .sb-page-titles.sb-page-titles .lead { font-size: var(--st-type-lead) !important; }
body .sb-page-titles.sb-page-titles .crumbs ol { font-size: var(--st-type-small) !important; }
body .sb-page-titles.sb-page-titles .eyebrow { font-size: var(--st-type-small) !important; }
body .sb-page-titles.sb-page-titles .btn { font-size: var(--st-type-body) !important; }
body .sb-page-titles.sb-page-titles .sibs { font-size: var(--st-type-small) !important; }
body .sb-page-titles.sb-page-titles.p02 .t { font-size:var(--st-type-h1) !important; }
body .sb-page-titles.sb-page-titles.p03 dl { font-size: var(--st-type-small) !important; }
body .sb-page-titles.sb-page-titles.p04 .t { font-size:var(--st-type-h1) !important; }
body .sb-page-titles.sb-page-titles.p05 .t { font-size:var(--st-type-h1) !important; }
body .sb-page-titles.sb-page-titles.p07 .date b { font-size: var(--st-type-h3); }
body .sb-page-titles.sb-page-titles.p07 .date span small { font-size: var(--st-type-small) !important; }
body .sb-page-titles.sb-page-titles.p07 .t { font-size:var(--st-type-h1) !important; }
body .sb-page-titles.sb-page-titles.p07 dl { font-size: var(--st-type-small) !important; }
body .sb-page-titles.sb-page-titles.p08 .t { font-size:var(--st-type-h1) !important; }
body .sb-page-titles.sb-page-titles.p10 .t { font-size:var(--st-type-h1) !important; }
body .sb-page-titles.sb-page-titles.p10 .count { font-size:var(--st-type-h3) !important; }
body .sb-page-titles.sb-page-titles.p11 .sig small { font-size: var(--st-type-small) !important; }
body .sb-page-titles.sb-page-titles.p11 figcaption { font-size: var(--st-type-small) !important; }
body .sb-page-titles.sb-page-titles.p12 .t { font-size:var(--st-type-display) !important; }
body .sb-page-titles.sb-page-titles.p14 ul b { font-size:var(--st-type-h3); }
body .sb-page-titles.sb-page-titles.p14 ul small { font-size: var(--st-type-small) !important; }
body .sb-page-titles.sb-page-titles.p14 ul i { font-size: var(--st-type-lead) !important; }
body .sb-page-titles.sb-page-titles.p15 .card h2 { font-size:var(--st-type-h3) !important; }
body .sb-page-titles.sb-page-titles.p15 .card li::marker { font-size: var(--st-type-small) !important; }
body .sb-page-titles.sb-page-titles.p16 .t { font-size:var(--st-type-h1) !important; }
body .sb-page-titles.sb-page-titles.p16 dt { font-size: var(--st-type-small) !important; }
body .sb-page-titles.sb-page-titles.p16 dd { font-size: var(--st-type-body) !important; }
body .sb-page-titles.sb-page-titles.p17 .t { font-size:var(--st-type-h1) !important; }
body .sb-page-titles.sb-page-titles.p20 .t { font-size:var(--st-type-h1) !important; }
body .sb-page-titles.sb-page-titles.p20 .meta { font-size: var(--st-type-small) !important; }

/* Full applies to every page-title look, including the content-height library
   variants. The shared header budget supplies the remaining screen height. */
body header.ct2-hero:has(> .sb-page-titles.sb-page-titles) { height: auto; display: block; }
body header.ct2-hero.is-below-header > .sb-page-titles.sb-page-titles { --sb-hdr-room: 0px; }
body .sb-page-titles.sb-page-titles.sb-hh-full > :first-child { min-height: var(--ct-hero-h, 100svh); }
/* Single content bands can center their existing wrapper without changing its
   internal grid. Photo splits and layered cards retain their designed tracks. */
body .sb-page-titles.sb-page-titles.sb-hh-full > :is(.p01,.p02,.p03,.p10,.p12,.p13,.p14,.p15,.p16,.p20) {
 display: flex; flex-direction: column; justify-content: center;
 padding-top: var(--hp-top); padding-bottom: var(--sb-hero-pad);
}

/* 3.6.10: 19 sits on a brand panel; its fill button was the panel's color and read as loose text (SEC-19). */
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-page-titles.sb-page-titles.p19 .btn:not(.ghost) { background: var(--pbd-fallback-on-brand); color: var(--bl-site-primary); border-color: var(--pbd-fallback-on-brand); }

/* Source: payments.fixes.css */
/* Card or Bank account toggle: the library scoped it to a .variant wrapper the markup does not have; scope it to the look instead. */
body .sb-payments.sb-payments .blk:has(input[value="bank"]:checked) .cardpane{display:none}
body .sb-payments.sb-payments .blk:has(input[value="bank"]:checked) .bankpane{display:grid}
/* Card fields are a picture (no inputs): same box as the design's inputs, placeholder-gray text. */
body .sb-payments.sb-payments .cardfake{display:contents}
body .sb-payments.sb-payments div.inp{display:flex;align-items:center;color:color-mix(in srgb,currentColor 45%,transparent)}
@media (max-width:560px){body .sb-payments.sb-payments .cardfake > .fld:nth-child(4){grid-column:1/-1}}
/* 07: the cover-the-fee switch keys on the checkbox in the panel (the design's fixed id would repeat on a page with two). */
body .sb-payments.sb-payments .pay-p7:has(.chk input:checked) .with,body .sb-payments.sb-payments .pay-p7:not(:has(.chk input)) .without{display:inline}
body .sb-payments.sb-payments .pay-p7:has(.chk input:checked) .without{display:none}
body .sb-payments.sb-payments .pay-p7:has(.chk input:checked) .feeline{display:flex}
/* Order lines and photos without a thumbnail / event photo. */
body .sb-payments.sb-payments .items li.nph{grid-template-columns:1fr auto}
body .sb-payments.sb-payments .pay-p13-ev.noimg{grid-template-columns:1fr}
/* 08: icons are SVG files, not inline svg. */
body .sb-payments.sb-payments .pay-p8 .cell > img{width:24px;height:24px;flex:none;margin-top:2px}
/* The theme floats a bare .left (02's "12 left" tag): keep it inline. */
body .sb-payments.sb-payments .pay-p2-tier .left{float:none;display:inline}
/* The theme sets p{font-size:inherit!important}: restore the design's big numerals that are <p>. */
body .sb-payments.sb-payments .pay-p7 .tot{font-size:var(--st-type-display) !important;line-height:1 !important}
body .sb-payments.sb-payments .pay-p3 aside .big{font-size:var(--st-type-display) !important;line-height:1 !important}
body .sb-payments.sb-payments .pay-p14-m .amt{font-size:var(--st-type-display) !important;line-height:1 !important}
body .sb-payments.sb-payments .pay-p18 .due{font-size:var(--st-type-display) !important;line-height:1 !important}
body .sb-payments.sb-payments .pay-p9-tiers .radio-card .amtbig{font-size:var(--st-type-display) !important;line-height:1 !important}
/* The frame lifts every .wrap max-width; these looks are deliberately narrow columns. */
body .sb-blk.sb-payments.sb-payments > .blk.p2 > .wrap,body .sb-blk.sb-payments.sb-payments > .blk.p20 > .wrap{max-width:1000px !important}
body .sb-blk.sb-payments.sb-payments > .blk.p9 > .wrap,body .sb-blk.sb-payments.sb-payments > .blk.p14 > .wrap{max-width:1040px !important}
body .sb-blk.sb-payments.sb-payments > .blk.p6 > .wrap{max-width:640px !important}
body .sb-blk.sb-payments.sb-payments > .blk.p11 > .wrap{max-width:880px !important}
body .sb-blk.sb-payments.sb-payments > .blk.p17 > .wrap,body .sb-blk.sb-payments.sb-payments > .blk.p18 > .wrap{max-width:var(--st-narrow) !important}
body .sb-blk.sb-payments.sb-payments > .blk.p19 > .wrap{max-width:720px !important}
body .sb-blk.sb-payments.sb-payments > .blk > .wrap.sbi26{max-width:720px !important}
/* Design page's browser-default <ol> spacing (the theme resets it). */
body .sb-payments.sb-payments .pay-p11-steps{padding-left:40px;margin-top:15px}
body .sb-payments.sb-payments .pay-p5-sched{margin-bottom:1em}
/* The theme restyles bare checkboxes (squeezed box when unchecked): keep the native 22px / 20px box. */
body .sb-payments.sb-payments .pay-p20-list input[type=checkbox],body .sb-payments.sb-payments .chk input[type=checkbox]{-webkit-appearance:checkbox;appearance:auto;flex:none;min-width:0}
/* Sweep: the theme's p/span/h3 rules beat the generated sizes. 03 org name (a <p>), 20 amounts (the span rule wins), 11 step headings' line height. */
body .sb-payments.sb-payments .pay-p3-top .org{font-size:var(--st-type-h3) !important;line-height:1.1 !important}
body .sb-payments.sb-payments .pay-p20-list span.amt{font-size:var(--st-type-display) !important;line-height:1 !important}
body .sb-payments.sb-payments .pay-p11-sec h3{line-height:1.6}

/* Quick-pay introduction collects an amount only; the provider collects personal details. */
body .sb-payments.sb-payments .pay-p10-handoff { display:grid; grid-template-columns:minmax(0,1fr) auto;gap:var(--st-grid-gap,16px); align-items:end; margin-top:28px; }
body .sb-payments.sb-payments .pay-p10-handoff > .note { grid-column:1/-1; }
@media (max-width:600px) { body .sb-payments.sb-payments .pay-p10-handoff { grid-template-columns:1fr; } }
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-payments.sb-payments { font-size: var(--st-type-body) }
body .sb-payments.sb-payments .fh { font-size: var(--st-type-small) }
body .sb-payments.sb-payments .fl { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .small { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .btn { font-size: var(--st-type-body) }
body .sb-payments.sb-payments .fbot { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .inp { font-size: var(--st-type-body) !important }
body .sb-payments.sb-payments .intro h1 { font-size:var(--st-type-h1)}
body .sb-payments.sb-payments .intro p { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .toggles button { font-size: var(--st-type-small) }
body .sb-payments.sb-payments .blk h2.hd { font-size:var(--st-type-h2) !important}
body .sb-payments.sb-payments .lead { font-size: var(--st-type-lead) !important }
body .sb-payments.sb-payments .price { font-size:var(--st-type-display) !important}
body .sb-payments.sb-payments .per { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .note { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .tag { font-size: var(--st-type-small) }
body .sb-payments.sb-payments .seg label { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .seg small { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .fld > span { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .rowline { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .rowline.total { font-size: var(--st-type-body) !important }
body .sb-payments.sb-payments .step button { font-size: var(--st-type-lead) }
body .sb-payments.sb-payments .empty h3 { font-size:var(--st-type-h3)}
body .sb-payments.sb-payments .secure { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .items span { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .radio-card span { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .status { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p1 aside h3 { font-size:var(--st-type-h3)}
body .sb-payments.sb-payments .pay-p13 aside h3 { font-size:var(--st-type-h3)}
body .sb-payments.sb-payments .pay-p2-tier h3 { font-size:var(--st-type-h3)}
body .sb-payments.sb-payments .pay-p2-tier p { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p2-tier .amt { font-size:var(--st-type-display)}
body .sb-payments.sb-payments .pay-p2-bar b { font-size:var(--st-type-display)}
body .sb-payments.sb-payments .pay-p3-top .org { font-size:var(--st-type-h3)}
body .sb-payments.sb-payments .pay-p3-top dl { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p3-bill { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p3-tab { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p3 aside .big { font-size:var(--st-type-display)}
body .sb-payments.sb-payments .pay-p4-amt span { font-size:var(--st-type-display)}
body .sb-payments.sb-payments .pay-p4-amt input { font-size:var(--st-type-display)}
body .sb-payments.sb-payments .pay-p4-say { font-size: var(--st-type-body) !important }
body .sb-payments.sb-payments .pay-p5-sched li { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p6 dt { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p6 dd { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p7 .tot { font-size:var(--st-type-display)}
body .sb-payments.sb-payments .pay-p8 span { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p9-tiers .amtbig { font-size:var(--st-type-display)}
body .sb-payments.sb-payments .pay-p11-steps { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p11-sec { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p11-sec h3 { font-size:var(--st-type-h3) !important}
body .sb-payments.sb-payments .pay-p11-end b { font-size:var(--st-type-display)}
body .sb-payments.sb-payments .pay-p12 .rec { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p13-ev h2.hd { font-size:var(--st-type-h3) !important}
body .sb-payments.sb-payments .pay-p13-ev p { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p13-att > b { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p14-m .amt { font-size:var(--st-type-display)}
body .sb-payments.sb-payments .pay-p14-m p { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p15-next b { font-size:var(--st-type-display)}
body .sb-payments.sb-payments .pay-p15-tab { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p17-alert h2.hd { font-size:var(--st-type-h2) !important}
body .sb-payments.sb-payments .pay-p18 .due { font-size:var(--st-type-display)}
body .sb-payments.sb-payments .pay-p18 .meta { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p19-applied { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p20-list span { font-size: var(--st-type-small) !important }
body .sb-payments.sb-payments .pay-p20-list .amt { font-size:var(--st-type-display)}
body .sb-payments.sb-payments .pay-p20-bar b { font-size:var(--st-type-display)}
body .sb-payments.sb-payments .sbi18 { font-size:var(--st-type-display) !important}

/* 3.6.10: the Branding Sizes pass set list prices and totals to Huge and the review labels to Medium. PAY-02 ticket
   prices dwarfed their tiers; PAY-11 labels ("Registration") ran into the detail column. Sizes in proportion again. */
body .sb-payments.sb-payments .pay-p2-tier .amt { font-size:var(--st-type-h3) !important; }
body .sb-payments.sb-payments .pay-p2-bar b { font-size:var(--st-type-h3) !important; }
body .sb-payments.sb-payments .pay-p11-sec h3 { font-size: var(--st-type-lead) !important; line-height: 1.3 !important; }
body .sb-payments.sb-payments .pay-p11-end b { font-size:var(--st-type-h3) !important; }
/* 15 for visitors (3.6.10: no method or status columns): on phones the description takes the first row, date left and amount right under it. */
@media (max-width:640px){body .sb-payments.sb-payments .pay-p15-tab tr:not(:has(td.m)) td:nth-child(2){grid-column:1/-1;order:-1;font-weight:var(--pb-ui-weight)}}
/* 3.6.10: 02's dark total bar turned white with white words on a dark band: it paints Branding Dark there; its button stays light. */
body .sb-blk.sb-blk.sb-payments.sb-payments.sb-dark .pay-p2-bar { background: var(--pb-ink); }
body .sb-blk.sb-blk.sb-payments.sb-payments.sb-dark .pay-p2-bar .btn { color: var(--pb-ink); }

/* Source: pricing.fixes.css */
/* PRC-07: the library fixes the table at 3 plans; the template sets --n to the real plan count. */
body .sb-pricing.sb-pricing .p07 .row{grid-template-columns:2fr repeat(var(--n,3),1fr)}
@media (max-width:640px){body .sb-pricing.sb-pricing .p07 .row{grid-template-columns:repeat(var(--n,3),1fr)}}

/* PRC-08: the "Popular" tag text comes from the plan's Label instead of the library's fixed word. */
body .sb-pricing.sb-pricing .p08 .item.feat .h3::after{content:attr(data-tag)}

/* PRC-18: tabs are CSS radios with generated ids (several sections can share a page), so select panes by position. */
body .sb-pricing.sb-pricing .p18 input:nth-of-type(1):checked ~ .tabs label:nth-child(1),
body .sb-pricing.sb-pricing .p18 input:nth-of-type(2):checked ~ .tabs label:nth-child(2),
body .sb-pricing.sb-pricing .p18 input:nth-of-type(3):checked ~ .tabs label:nth-child(3),
body .sb-pricing.sb-pricing .p18 input:nth-of-type(4):checked ~ .tabs label:nth-child(4),
body .sb-pricing.sb-pricing .p18 input:nth-of-type(5):checked ~ .tabs label:nth-child(5),
body .sb-pricing.sb-pricing .p18 input:nth-of-type(6):checked ~ .tabs label:nth-child(6){color:var(--pb-text);border-color:var(--pb-primary)}
body .sb-pricing.sb-pricing .p18 input:nth-of-type(1):checked ~ .panes .pane:nth-child(1),
body .sb-pricing.sb-pricing .p18 input:nth-of-type(2):checked ~ .panes .pane:nth-child(2),
body .sb-pricing.sb-pricing .p18 input:nth-of-type(3):checked ~ .panes .pane:nth-child(3),
body .sb-pricing.sb-pricing .p18 input:nth-of-type(4):checked ~ .panes .pane:nth-child(4),
body .sb-pricing.sb-pricing .p18 input:nth-of-type(5):checked ~ .panes .pane:nth-child(5),
body .sb-pricing.sb-pricing .p18 input:nth-of-type(6):checked ~ .panes .pane:nth-child(6){display:grid}

/* the theme sets font-weight:300 on .light; the design's light button is 600 */
body .sb-pricing.sb-pricing .btn.light{font-weight:var(--pb-ui-weight) !important}
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-pricing.sb-pricing { font-size: var(--st-type-body) !important }
body .sb-pricing.sb-pricing .h2 { font-size:var(--st-type-h2) !important}
body .sb-pricing.sb-pricing .h3 { font-size:var(--st-type-h3) !important}
body .sb-pricing.sb-pricing .lead { font-size: var(--st-type-lead) !important }
body .sb-pricing.sb-pricing .small { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .eyebrow { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .cur { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .unit { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .btn { font-size: var(--st-type-body) }
body .sb-pricing.sb-pricing .toolbar { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .pagehead h1 { font-size:var(--st-type-h1) !important}
body .sb-pricing.sb-pricing .bill button { font-size: var(--st-type-small) }
body .sb-pricing.sb-pricing .p01 .cap { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p01 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p02 .tag { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p02 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p03 .col.feat .name::after { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p03 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p04 .save { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p04 .flag { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p04 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p05 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p06 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p06 .per { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p07 .thead .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p07 .grp { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p08 .line .h3 { font-size:var(--st-type-h3) !important}
body .sb-pricing.sb-pricing .p08 .line .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p08 .item.feat .h3::after { font-size:var(--st-type-h3)}
body .sb-pricing.sb-pricing .p09 .rows .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p09 .rows strong { font-size: var(--st-type-body) !important }
body .sb-pricing.sb-pricing .p10 .lvl { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p10 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p11 .feats { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p11 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p12 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p13 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p14 .big .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p14 .sm .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p15 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p16 .tagline { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p16 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p16 .incl { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p17 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p18 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p19 .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p19 .meta { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p20 .it .nm { font-size:var(--st-type-h3) !important}
body .sb-pricing.sb-pricing .p20 .it .num { font-size:var(--st-type-display) !important}
body .sb-pricing.sb-pricing .p20 .it .sub { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p07 .thead .h3 { font-size:var(--st-type-h3) !important}
body .sb-pricing.sb-pricing .p07 .ft .tlink { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p18 .tabs label { font-size: var(--st-type-small) !important }
body .sb-pricing.sb-pricing .p14 h3.h2 { font-size:var(--st-type-h3) !important}

/* 3.6.10: list prices back in proportion (the Branding Sizes pass set them to Huge). PRC-03 four-column prices filled
   their columns ($12,000); PRC-08 menu prices and item names dwarfed the dotted leaders and wrapped every name. */
body .sb-pricing.sb-pricing .p03 .num { font-size:var(--st-type-h3) !important; }
body .sb-pricing.sb-pricing .p08 .line .h3 { font-size: var(--st-type-lead) !important; }
body .sb-pricing.sb-pricing .p08 .line .num { font-size:var(--st-type-h3) !important; }
body .sb-pricing.sb-pricing .p08 .item.feat .h3::after { font-size: var(--st-type-small) !important; }
/* 3.6.10: 17's striped rows mixed the surface with the page color, a light stripe under white words on a dark band: there
   the even rows take a fainter light tint. */
body .sb-blk.sb-blk.sb-pricing.sb-pricing.sb-dark .p17 dl div:nth-child(even) { background: color-mix(in srgb, var(--pb-on-dark) 4%, transparent); }
/* 3.6.10: labels drawn in Secondary (PRC-02 label) vanished on a dark band when Secondary is dark: there they keep its hue at a
   lightness that reads. */
body .sb-blk.sb-blk.sb-pricing.sb-pricing.sb-dark { --pb-secondary: oklch(from var(--bl-site-secondary) max(l, 0.82) c h); }

/* Source: search.fixes.css */
/* Preserve reference highlights through the shared light-markup sanitizer. */
body .sb-search.sb-search .sb-search-hit { background: color-mix(in srgb,var(--pb-secondary) 20%,transparent); color:inherit; padding:0 .08em; }
/* Topic icons are editable SVG attachments rather than inline drawings. */
body .sb-search.sb-search .s04-g img.ic { width:24px; height:24px; object-fit:contain; }
/* Local filtering must win over the reference's grid and flex display rules. */
body .sb-search.sb-search [hidden] { display:none !important; }
body .sb-search.sb-search :is(a,button,input):focus-visible { outline:none; }
/* On the primary band the search field retains its light surface and dark ink. */
body .sb-search.sb-search.sb-look-16 .s16-bar { --pb-text:var(--pb-ink); --pb-muted:color-mix(in srgb,var(--pb-ink) 72%,#fff); --pb-border:rgb(0 0 0 / .18); }
@media (prefers-reduced-motion:reduce) { body .sb-search.sb-search .s19-sk span { animation:none; } }
/* The edge frame's general .wrap width overrides the photo band's narrow search column. */
body .sb-search.sb-search.sb-look-18 .s18-in { max-width:var(--st-narrow); }
/* Theme heading weights and fonts must not replace the reference's small UI labels. */
body .sb-search.sb-search .s09-h { font:var(--pb-ui-weight) var(--st-type-small)/1.2 var(--pb-body-font); }
/* Keep the finder grid and long topic names inside the frame on 320px phones. */
body .sb-search.sb-search .s12-f, body .sb-search.sb-search .s12-f > * { min-width:0; max-width:100%; }
body .sb-search.sb-search .s04-n { overflow-wrap:anywhere; }
/* Generated paragraph resets otherwise override the reference's small type and suggestion title. */
body .sb-search.sb-search .s05-tt { font-size:var(--st-type-h3) !important; line-height:var(--st-lh-h3) !important; }
body .sb-search.sb-search :is(.r-type,.r-path) { font-size:var(--st-type-small) !important; line-height:1.3 !important; }
body .sb-search.sb-search :is(.s05-g,.s19-lab) { font-size:var(--st-type-small) !important; line-height:1 !important; }
body .sb-search.sb-search .s09-h { font-family:var(--pb-body-font) !important; font-size:var(--st-type-small) !important; }
/* The theme resets link underlines; the design underlines these links. */
body .sb-search.sb-search :is(.s01-t,.s09-l,.s18-q,.s19-dym) a, body .sb-search.sb-search .s09-m .lead a, body .sb-search.sb-search a.s20-p { text-decoration: underline; }
/* The generated body rule clips x overflow; that cut off the suggestion panel's drop shadow (SRC-05). */
body .sb-search.sb-search { overflow: visible; }
body .sb-search.sb-search .s09-h { color:var(--pb-muted) !important; }
/* sb_a() prints the arrow in its own span; the design has it as part of the link text (one underline, no flex gap). */
body .sb-search.sb-search a:is(.tlink, .btn) > span[aria-hidden="true"] { display: contents; }
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-search.sb-search { font-size: var(--st-type-body); }
body .sb-search.sb-search .demo-top h1 { font-size:var(--st-type-h3); }
body .sb-search.sb-search .demo-top p { font-size: var(--st-type-small) !important; }
body .sb-search.sb-search .demo-ctl { font-size: var(--st-type-small) !important; }
body .sb-search.sb-search .demo-ctl button { font-size: var(--st-type-small); }
body .sb-search.sb-search .eyebrow { font-size: var(--st-type-small); }
body .sb-search.sb-search .h { font-size:var(--st-type-h2); }
body .sb-search.sb-search .d { font-size:var(--st-type-h2); }
body .sb-search.sb-search .h3 { font-size:var(--st-type-h3); }
body .sb-search.sb-search .lead { font-size: var(--st-type-lead) !important; }
body .sb-search.sb-search .cap { font-size: var(--st-type-small) !important; }
body .sb-search.sb-search .btn { font-size: var(--st-type-body); }
body .sb-search.sb-search .sf input { font-size: var(--st-type-body); }
body .sb-search.sb-search .sel select { font-size: var(--st-type-body); }
body .sb-search.sb-search .r-type { font-size: var(--st-type-small); }
body .sb-search.sb-search .r-path { font-size: var(--st-type-small); }
body .sb-search.sb-search .r-t { font-size:var(--st-type-h3); }
body .sb-search.sb-search .qline h2 { font-size:var(--st-type-h3); }
body .sb-search.sb-search .s01-f input { font-size: var(--st-type-body) !important; }
body .sb-search.sb-search .s04-n { font-size:var(--st-type-h3); }
body .sb-search.sb-search .s05-tt { font-size:var(--st-type-h3); }
body .sb-search.sb-search .s05-g { font-size: var(--st-type-small); }
body .sb-search.sb-search .s07-f legend { font-size: var(--st-type-small); }
body .sb-search.sb-search .s08-t button { font-size: var(--st-type-body); }
body .sb-search.sb-search .s09-h { font-size: var(--st-type-small); }
body .sb-search.sb-search .s10-dt { font-size: var(--st-type-small); }
body .sb-search.sb-search .s10-dt b { font-size: var(--st-type-body); }
body .sb-search.sb-search .s14-r time { font-size: var(--st-type-small); }
body .sb-search.sb-search .s14-r time b { font-size: var(--st-type-body); }
body .sb-search.sb-search .s15-a summary { font-size:var(--st-type-h3); }
body .sb-search.sb-search .s17 .r-t { font-size: var(--st-type-lead) !important; }
body .sb-search.sb-search .s19-lab { font-size: var(--st-type-small); }
body .sb-search.sb-search .s02 h2.h3 { font-size:var(--st-type-h2) !important; }
body .sb-search.sb-search .s06 h2 { font-size:var(--st-type-h2) !important; }

/* 3.6.10: SRC-04 phones: two tiles per row with names at 36px ran past the screen; the names scale with the screen. */
@media (max-width: 767px) {
	body .sb-search.sb-search .s04-g { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	body .sb-search.sb-search .s04-n { font-size:var(--st-type-h3) !important; }
	body .sb-search.sb-search .s04-g a { padding: 20px 16px; }
}

/* 3.6.10: looks drawn as a brand band (.on-primary) sit on the row's Background, which paints the band. On a light row their
   words and buttons follow the row (dark text), not white (SRC-16 printed its heading and note white on white). On a Secondary row they follow that color's
   lightness; Main, Black and photo rows keep the white design. */
body .sb-blk.sb-blk.sb-search.sb-search:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .on-primary { --pb-on-dark: var(--pb-text); --pb-muted-on-dark: var(--bl-site-muted); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-rule-on-dark: var(--bl-site-border); color: var(--pb-text); }
body .bg-sec .sb-blk.sb-blk.sb-search.sb-search:not(.sb-edge):not(.sb-dark) > .on-primary { --pb-on-dark: oklch(from var(--bl-site-secondary) clamp(0, (0.62 - l) * 1000, 1) 0 0); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-search.sb-search:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .on-primary .btn:not(.ghost) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-search.sb-search:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .on-primary .btn:not(.ghost):hover { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }

/* Source: sermons-livestream.fixes.css */
/* Sermons and livestream: framework-only fixes. */
/* The design's surface is a fixed beige token; the site's surface color differs on QA, so set it for the whole category (tint bands, filter bar, cards). */
/* The theme's global p size/line-height beat the look's own (design values: eyebrow 15px, stream times 25.6px, strip title h3 scale). */
body .sb-sermons-livestream.sb-sermons-livestream p.eyebrow{font-size:var(--st-type-small) !important;line-height:1.2 !important;letter-spacing:var(--st-track-label) !important}
body .sb-sermons-livestream.sb-sermons-livestream .s04-d,body .sb-sermons-livestream.sb-sermons-livestream .s04-d b{font-size:var(--st-type-h3) !important;line-height:1.1 !important}
body .sb-sermons-livestream.sb-sermons-livestream .s20-t{font-size:var(--st-type-h3) !important;line-height:var(--st-lh-h3) !important}
body .sb-sermons-livestream.sb-sermons-livestream .s05-o{line-height:24px !important}
/* The design's lede sits 16px under the eyebrow-less heading block in these looks. */
body .sb-sermons-livestream.sb-sermons-livestream.sb-look-01 .lede,body .sb-sermons-livestream.sb-sermons-livestream.sb-look-15 .lede,body .sb-sermons-livestream.sb-sermons-livestream.sb-look-18 .lede{margin-top:16px}
body .sb-sermons-livestream.sb-sermons-livestream .s05-o{font-family:var(--pb-body-font) !important}
body .sb-sermons-livestream.sb-sermons-livestream.s04 .tt{font-family:var(--pb-body-font) !important}
body .sb-sermons-livestream.sb-sermons-livestream.sb-blk.sb-blk:not(.sb-dark){--pb-surface:var(--pb-tint)}
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-sermons-livestream.sb-sermons-livestream { font-size: var(--st-type-body) }
body .sb-sermons-livestream.sb-sermons-livestream .hd { font-size:var(--st-type-h2)}
body .sb-sermons-livestream.sb-sermons-livestream .eyebrow { font-size: var(--st-type-small) }
body .sb-sermons-livestream.sb-sermons-livestream .lede { font-size: var(--st-type-lead) !important }
body .sb-sermons-livestream.sb-sermons-livestream .t3 { font-size:var(--st-type-h3)}
body .sb-sermons-livestream.sb-sermons-livestream .meta { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream .btn { font-size: var(--st-type-body) !important }
body .sb-sermons-livestream.sb-sermons-livestream .dur { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream .b10-ctl button { font-size: var(--st-type-body) !important }
body .sb-sermons-livestream.sb-sermons-livestream .sel select { font-size: var(--st-type-body) !important }
body .sb-sermons-livestream.sb-sermons-livestream .fin { font-size: var(--st-type-body) !important }
body .sb-sermons-livestream.sb-sermons-livestream .sel label { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream .fl { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream .chip { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream .intro h1 { font-size:var(--st-type-h1)}
body .sb-sermons-livestream.sb-sermons-livestream .lb .close { font-size: var(--st-type-body) !important }
body .sb-sermons-livestream.sb-sermons-livestream .s01-h { font-size:var(--st-type-h2) !important}
body .sb-sermons-livestream.sb-sermons-livestream .s02-l { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream .s02-h { font-size:var(--st-type-h2)}
body .sb-sermons-livestream.sb-sermons-livestream .cd b { font-size:var(--st-type-display)}
body .sb-sermons-livestream.sb-sermons-livestream .cd span { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream .cd.big b { font-size:var(--st-type-display) !important}
body .sb-sermons-livestream.sb-sermons-livestream .s04-d { font-size: var(--st-type-h3) }
body .sb-sermons-livestream.sb-sermons-livestream.s04 .tt { font-size:var(--st-type-h3)}
body .sb-sermons-livestream.sb-sermons-livestream .s05-live { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream .s05-h { font-size:var(--st-type-h2)}
body .sb-sermons-livestream.sb-sermons-livestream .s05-o { font-size:var(--st-type-h3) !important}
body .sb-sermons-livestream.sb-sermons-livestream .s07-t { font-size:var(--st-type-h3)}
body .sb-sermons-livestream.sb-sermons-livestream .s07-m { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream .s08-f button { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream .s08-l time { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream.s08 .tt { font-size:var(--st-type-h3)}
body .sb-sermons-livestream.sb-sermons-livestream .s09-h { font-size:var(--st-type-h3)}
body .sb-sermons-livestream.sb-sermons-livestream .s09-l a { font-size: var(--st-type-h3) }
body .sb-sermons-livestream.sb-sermons-livestream .s09-l a span { font-size: var(--st-type-small) }
body .sb-sermons-livestream.sb-sermons-livestream.s10 .tt { font-size:var(--st-type-h3)}
body .sb-sermons-livestream.sb-sermons-livestream .s10-p { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream .s11-t { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream .s11-t tbody th { font-size: var(--st-type-h3) }
body .sb-sermons-livestream.sb-sermons-livestream .s-ser { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream .s12-q { font-size:var(--st-type-h3)}
body .sb-sermons-livestream.sb-sermons-livestream .s12-l li::before { font-size: var(--st-type-body) }
body .sb-sermons-livestream.sb-sermons-livestream .s12-f span { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream.s13 .tt { font-size:var(--st-type-h3)}
body .sb-sermons-livestream.sb-sermons-livestream .s14-h { font-size:var(--st-type-h2) !important}
body .sb-sermons-livestream.sb-sermons-livestream .s14-n { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream .s14-w a { font-size: var(--st-type-h3) }
body .sb-sermons-livestream.sb-sermons-livestream .s14-up { font-size: var(--st-type-h3) }
body .sb-sermons-livestream.sb-sermons-livestream .s15-l a { font-size: var(--st-type-h3) }
body .sb-sermons-livestream.sb-sermons-livestream.s17 .tt { font-size:var(--st-type-h3)}
body .sb-sermons-livestream.sb-sermons-livestream .s18-tag { font-size: var(--st-type-small) }
body .sb-sermons-livestream.sb-sermons-livestream.s18 .tt { font-size:var(--st-type-h3)}
body .sb-sermons-livestream.sb-sermons-livestream .s19-h { font-size:var(--st-type-h3) !important}
body .sb-sermons-livestream.sb-sermons-livestream .b12-tile b { font-size: var(--st-type-h3) }
body .sb-sermons-livestream.sb-sermons-livestream .b12-tile span { font-size: var(--st-type-small) !important }
body .sb-sermons-livestream.sb-sermons-livestream.s19 .tt { font-size:var(--st-type-h3)}
body .sb-sermons-livestream.sb-sermons-livestream.s20 .tt { font-size:var(--st-type-h2)}
body .sb-sermons-livestream.sb-sermons-livestream .s20-t { font-size:var(--st-type-h3)}
body .sb-sermons-livestream.sb-sermons-livestream .s20-b .cd b { font-size:var(--st-type-display) !important}

/* 3.6.10: SRM-14 six week columns: week titles at the small-titles size wrapped one or two words per line. */
body .sb-sermons-livestream.sb-sermons-livestream .s14-w :is(a, .s14-up) { font-size:var(--st-type-h3) !important; line-height: 1.3 !important; }
/* 3.6.10: SRM-20 is a slim strip. Title at the Titles size and the countdown at Huge squeezed the next-service line
   ("Sunday at 9:00 a.m.") into three short lines; strip-scale sizes that still follow Branding. */
body .sb-sermons-livestream.sb-sermons-livestream.s20 .tt { font-size:var(--st-type-h3) !important; }
body .sb-sermons-livestream.sb-sermons-livestream .s20-t { font-size:var(--st-type-h3) !important; }
body .sb-sermons-livestream.sb-sermons-livestream .s20-b .cd b { font-size:var(--st-type-h3) !important; }
/* 3.6.10: SRM-14 upcoming week was painted Secondary, which is near black on this dark band (Week 6 looked empty). It
   reads in the band's text color and is marked by a Primary rule at the top of its column. */
body .sb-sermons-livestream.sb-sermons-livestream .s14-w .next, body .sb-sermons-livestream.sb-sermons-livestream .s14-w .next .meta { color: inherit; }
body .sb-sermons-livestream.sb-sermons-livestream .s14-w .next { box-shadow: inset 0 3px 0 var(--pb-primary); }
/* 3.6.10: SRM-09 book names are a two-column index (designed at 18px), not titles: at the small-titles size the second
   column ran past phone screens. */
body .sb-sermons-livestream.sb-sermons-livestream .s09-l { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body .sb-sermons-livestream.sb-sermons-livestream .s09-l a { font-size: var(--st-type-lead) !important;gap:var(--st-grid-gap,8px); }

/* 3.6.10: the series label on a dark panel (16) used Secondary, invisible when Secondary is dark: it keeps Secondary's hue
   at a lightness that reads on the dark panel. */
body .sb-sermons-livestream.sb-sermons-livestream .dark .s-ser { color: oklch(from var(--pb-secondary) max(l, 0.82) c h); }
/* 3.6.10: on a dark band the soft tint (Branding Fifth) that panels, bands and cards paint turns into the same faint light
   tint as the surface, so the white text the band gives them stays readable (SRM-06/09/12/15/18/20 printed white on a light tint). */
body .sb-blk.sb-blk.sb-sermons-livestream.sb-sermons-livestream:not(.sb-edge).sb-dark { --pb-tint: color-mix(in srgb, var(--pb-on-dark) 8%, transparent); }
/* 3.6.10: looks that paint their own light band (SRM-06/09/12/15/18/20: the category's page color or a tint) keep their light-row colors
   on a dark row, so they render the same on every row. The dark row only turned their text white (white on their own
   light band). */
body .sb-blk.sb-blk.sb-sermons-livestream.sb-sermons-livestream.sb-edge.sb-dark:is(.sb-look-06, .sb-look-09, .sb-look-12, .sb-look-15, .sb-look-18, .sb-look-20) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-sermons-livestream.sb-sermons-livestream.sb-edge.sb-dark:is(.sb-look-06, .sb-look-09, .sb-look-12, .sb-look-15, .sb-look-18, .sb-look-20) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-sermons-livestream.sb-sermons-livestream.sb-edge.sb-dark:is(.sb-look-06, .sb-look-09, .sb-look-12, .sb-look-15, .sb-look-18, .sb-look-20) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-sermons-livestream.sb-sermons-livestream.sb-edge.sb-dark:is(.sb-look-06, .sb-look-09, .sb-look-12, .sb-look-15, .sb-look-18, .sb-look-20) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }

/* 3.6.10: the dark row's ".white a:link { color: white !important }" still turned these light-panel looks' links white.
   Their links follow the look as on a light row: plain links the text color, text links the link color. */
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-sermons-livestream.sb-sermons-livestream.sb-edge.sb-dark:is(.sb-look-06, .sb-look-09, .sb-look-12, .sb-look-15, .sb-look-18, .sb-look-20) a:not(.btn):not(.tlink):not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *):is(:link, :visited, :hover, :active) { color: inherit !important; }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-sermons-livestream.sb-sermons-livestream.sb-edge.sb-dark:is(.sb-look-06, .sb-look-09, .sb-look-12, .sb-look-15, .sb-look-18, .sb-look-20) a.tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *):is(:link, :visited, :hover, :active) { color: var(--bl-site-link) !important; }

/* Source: sliders-carousels.fixes.css */
/* Sliders and carousels: framework-only fixes (the generated file is never edited). */
/* Without JS the buttons do nothing: hide them, and stack the one-at-a-time looks so every slide is readable. */
body .sb-sliders-carousels.sb-sliders-carousels:not(.sb-sld-js) :is(.cbtn,.pbtn,.dots,.s9-arrow,.s4-ctrl,.s16-ctrl,.s13-ctrl,.s15-ctrl){display:none}
body .sb-sliders-carousels.sb-sliders-carousels:not(.sb-sld-js) :is(.s4,.s5,.s9,.s10,.s11,.s13,.s14,.s19) .stage{gap:var(--st-grid-gap,32px)}
body .sb-sliders-carousels.sb-sliders-carousels:not(.sb-sld-js) :is(.s4,.s5,.s9,.s10,.s11,.s13,.s14,.s19) .stage > [data-slide]{grid-area:auto;opacity:1;visibility:visible;transition:none}
/* Bootstrap's .fade:not(.show){opacity:0} hid every .stage.fade; the library's own rule shows the slide. */
body .sb-sliders-carousels.sb-sliders-carousels .stage.fade{opacity:1;transition:none}
/* The generated "p{font-size:inherit !important}" beats the quote sizes (04, 05, 06, 14): restore them. */
body .sb-sliders-carousels.sb-sliders-carousels.s4 blockquote p{font-size:var(--st-type-quote) !important;line-height:1.22 !important}
body .sb-sliders-carousels.sb-sliders-carousels.s5 blockquote p{font-size:var(--st-type-quote) !important;line-height:1.3 !important}
body .sb-sliders-carousels.sb-sliders-carousels .s6-top p{font-size:var(--st-type-lead) !important;line-height:1.45 !important}
body .sb-sliders-carousels.sb-sliders-carousels.s14 blockquote p{font-size:var(--st-type-quote) !important;line-height:var(--st-lh-display) !important}
body .sb-sliders-carousels.sb-sliders-carousels .s17-frame{width:100%;max-width:100%}
/* The generated p{font-size/line-height:inherit !important} beat the eyebrow and meta lines' own size and line height. */
body .sb-sliders-carousels.sb-sliders-carousels p.eyebrow, body .sb-sliders-carousels.sb-sliders-carousels.s16 p.meta { font-size: var(--st-type-small) !important; }
body .sb-sliders-carousels.sb-sliders-carousels p.eyebrow, body .sb-sliders-carousels.sb-sliders-carousels p.meta { line-height: 1.3 !important; }

/* Stages keep all content in reading order until their controls initialize. */
body .sb-sliders-carousels.sb-sliders-carousels:not(.sb-sld-js) :is(.s3,.s15,.s17) .stage,
body .sb-sliders-carousels.sb-sliders-carousels:not(.sb-sld-js) .s12-deck { display:grid; height:auto; min-height:0;gap:var(--st-grid-gap,32px); overflow:visible; }
body .sb-sliders-carousels.sb-sliders-carousels:not(.sb-sld-js) :is(.s3,.s12,.s15,.s17) [data-slide] { position:relative; grid-area:auto; opacity:1; visibility:visible; transform:none; pointer-events:auto; }
body .sb-sliders-carousels.sb-sliders-carousels:not(.sb-sld-js) :is(.s3-bar,.s12-ctrl,.s17-top,.s17-nav) { display:none; }
body .sb-sliders-carousels.sb-sliders-carousels:not(.sb-sld-js) :is(.s3,.s17-frame) { height:auto; min-height:0; aspect-ratio:auto; overflow:visible; }
body .sb-sliders-carousels.sb-sliders-carousels:not(.sb-sld-js) :is(.s3,.s17) .stage { position:relative; inset:auto; }
body .sb-sliders-carousels.sb-sliders-carousels:not(.sb-sld-js) :is(.s12,.s15) [data-slide] figcaption { visibility:visible; opacity:1; }
body .sb-sliders-carousels.sb-sliders-carousels:not(.sb-sld-js) :is(.s3,.s17) [data-slide] { min-height:360px; }
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-sliders-carousels.sb-sliders-carousels { font-size: var(--st-type-body) }
body .sb-sliders-carousels.sb-sliders-carousels .doc-top { font-size: var(--st-type-small) !important }
body .sb-sliders-carousels.sb-sliders-carousels .doc-top h1 { font-size:var(--st-type-h2)}
body .sb-sliders-carousels.sb-sliders-carousels .eyebrow { font-size: var(--st-type-small) }
body .sb-sliders-carousels.sb-sliders-carousels .h2 { font-size:var(--st-type-h2)}
body .sb-sliders-carousels.sb-sliders-carousels .h3 { font-size:var(--st-type-h3)}
body .sb-sliders-carousels.sb-sliders-carousels .lead { font-size: var(--st-type-lead) !important }
body .sb-sliders-carousels.sb-sliders-carousels .cap-t { font-size:var(--st-type-h3)}
body .sb-sliders-carousels.sb-sliders-carousels .cap-c { font-size: var(--st-type-small) !important }
body .sb-sliders-carousels.sb-sliders-carousels .cbtn { font-size: var(--st-type-body) !important }
body .sb-sliders-carousels.sb-sliders-carousels .count { font-size: var(--st-type-small) }
body .sb-sliders-carousels.sb-sliders-carousels .pbtn { font-size: var(--st-type-body) }
body .sb-sliders-carousels.sb-sliders-carousels .s1-card p { font-size: var(--st-type-small) !important }
body .sb-sliders-carousels.sb-sliders-carousels .meta { font-size: var(--st-type-small) }
body .sb-sliders-carousels.sb-sliders-carousels .s2-track .h3 { font-size:var(--st-type-h3) !important}
body .sb-sliders-carousels.sb-sliders-carousels .s2-track p { font-size: var(--st-type-small) !important }
body .sb-sliders-carousels.sb-sliders-carousels .s3-c h2 { font-size:var(--st-type-h2)}
body .sb-sliders-carousels.sb-sliders-carousels .s3-c p { font-size: var(--st-type-lead) !important }
body .sb-sliders-carousels.sb-sliders-carousels.s4 blockquote p { font-size: var(--st-type-quote) }
body .sb-sliders-carousels.sb-sliders-carousels.s5 blockquote p { font-size: var(--st-type-quote) }
body .sb-sliders-carousels.sb-sliders-carousels .s6-top p { font-size: var(--st-type-lead) }
body .sb-sliders-carousels.sb-sliders-carousels .s8-chip { font-size: var(--st-type-small) }
body .sb-sliders-carousels.sb-sliders-carousels .s8-track p { font-size: var(--st-type-small) !important }
body .sb-sliders-carousels.sb-sliders-carousels .s9-cap p { font-size: var(--st-type-small) !important }
body .sb-sliders-carousels.sb-sliders-carousels .s9-arrow { font-size: var(--st-type-lead) !important }
body .sb-sliders-carousels.sb-sliders-carousels .s11-x p { font-size: var(--st-type-body) !important }
body .sb-sliders-carousels.sb-sliders-carousels .s13-num { font-size:var(--st-type-display)}
body .sb-sliders-carousels.sb-sliders-carousels .s13-num small { font-size: var(--st-type-small) }
body .sb-sliders-carousels.sb-sliders-carousels.s14 blockquote p { font-size: var(--st-type-quote) }
body .sb-sliders-carousels.sb-sliders-carousels.s14 blockquote footer { font-size: var(--st-type-quote) !important }
body .sb-sliders-carousels.sb-sliders-carousels .s18-yr { font-size:var(--st-type-h3)}
body .sb-sliders-carousels.sb-sliders-carousels .s18-track p { font-size: var(--st-type-small) !important }
body .sb-sliders-carousels.sb-sliders-carousels.s17 h3.h2 { font-size:var(--st-type-h3) !important}

/* 3.6.10: 16's counter and arrows sit over the brand text panel; the control strip paints the same color so the counter
   never lands on a photo or the row (no visible change on the design). */
body .sb-sliders-carousels.sb-sliders-carousels .s16-ctrl { background: var(--pb-primary); }

/* Source: sponsorships.fixes.css */
/* Sponsorships: framework-only fixes. */
/* Author display rules (grid, flex) beat the [hidden] attribute the filters, tabs and one-at-a-time card use. */
body .sb-sponsorships.sb-sponsorships [hidden]{display:none !important}
/* Project rows without a photo keep the thumbnail column. */
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--project_list .rows .ph{display:block;width:120px;aspect-ratio:1;background:var(--pb-surface);border-radius:var(--st-photo-r)}
@media (max-width:767px){body .sb-sponsorships.sb-sponsorships.bl-sponsorships--project_list .rows .ph{width:88px}}

/* Result line of a posted form (shared Forms submit): inherits the look text color. */
body .sb-sponsorships.sb-sponsorships .sbstatus { margin: 12px 0 0; font-weight: var(--pb-ui-weight); }

/* Text links with an arrow: the library link is one text run, sb_a adds a span, so no flex gap between them. */
body .sb-sponsorships.sb-sponsorships .tlink { gap: 0; }

/* The theme has a global ".light { font-weight: 300 !important }" that hits the library's light button. */
body .sb-sponsorships.sb-sponsorships .btn.light { font-weight: var(--pb-ui-weight) !important; }

/* The theme paints placeholders #bbb; the library keeps the browser default. */
body .sb-sponsorships.sb-sponsorships input::placeholder, body .sb-sponsorships.sb-sponsorships textarea::placeholder { color: var(--pb-placeholder); opacity: 1; }
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-sponsorships.sb-sponsorships { font-size: var(--st-type-body) !important }
body .sb-sponsorships.sb-sponsorships .h2 { font-size:var(--st-type-h2) !important}
body .sb-sponsorships.sb-sponsorships .h3 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships .lead { font-size: var(--st-type-lead) !important }
body .sb-sponsorships.sb-sponsorships .small { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships .eyebrow { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships .cur { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships .unit { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships .btn { font-size: var(--st-type-body) }
body .sb-sponsorships.sb-sponsorships .toolbar { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships .pagehead h1 { font-size:var(--st-type-h1) !important}
body .sb-sponsorships.sb-sponsorships .bill button { font-size: var(--st-type-small) }
body .sb-sponsorships.sb-sponsorships .init { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships .nophoto { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships .flag { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships .facts { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships .kid .h3 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships .kid .wait { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships .sel { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships .sel select { font-size: var(--st-type-body) }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--waiting_grid_filters .count { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--profile_feature .meta span { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--profile_feature .act .num { font-size:var(--st-type-display) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--one_at_a_time_hold .hold b { font-size: var(--st-type-h3) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--one_at_a_time_hold .another { font-size: var(--st-type-body) }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--waiting_longest .days { font-size:var(--st-type-display) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--waiting_longest .init { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--birthday_month .months button { font-size: var(--st-type-small) }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--birthday_month .k .init { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--birthday_month .bd { font-size: var(--st-type-lead) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--project_progress .big { font-size:var(--st-type-display) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--project_list .prog { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--letters_updates .who { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--letters_updates .av .init { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--letters_updates .type { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--sponsored_states .slotline { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--category_picker .n { font-size:var(--st-type-display) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--category_picker .amt { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--compact_list .init { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--swipe_row .arrows button { font-size: var(--st-type-lead) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--waiting_counter .big { font-size:var(--st-type-display) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--waiting_counter .faces .init { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--child_safe_grid .init { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--child_safe_grid .kid .h3 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--what_it_provides .amt { font-size:var(--st-type-display) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--what_it_provides .amt small { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--what_it_provides .split .num { font-size:var(--st-type-display) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--student_profile .years span { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--country_tabs .tabs button { font-size: var(--st-type-body) }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--country_tabs .tabs small { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--all_sponsored_waitlist input { font-size: var(--st-type-body) }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--write_a_letter .to .init { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--write_a_letter label { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--write_a_letter textarea { font-size: var(--st-type-body) }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--write_a_letter .cnt { font-size: var(--st-type-small) !important }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--qr_next_child .next .init { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--one_at_a_time_hold .init { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--student_profile .init { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships .kid .btn { font-size: var(--st-type-body) !important }
body .sb-sponsorships.sb-sponsorships .sbi1 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships .sbi2 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships .sbi3 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships .sbi4 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships .sbi5 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships .sbi6 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships .sbi11 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships .sbi12 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships .sbi13 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships .sbi14 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships .sbi30 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--one_at_a_time_hold h3.h2 { font-size:var(--st-type-h3) !important}
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--letters_updates h3.h2 { font-size:var(--st-type-h3) !important}

/* 3.6.10: SPN-15 cost lines: the amount is a list figure, not a headline. At the Huge size "$16" ran over the title
   beside it; the amount column now fits its figure. */
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--what_it_provides .split li { grid-template-columns: minmax(88px, max-content) 1fr; }
body .sb-sponsorships.sb-sponsorships.bl-sponsorships--what_it_provides .split .num { font-size:var(--st-type-h3) !important; line-height: 1.1 !important; font-family: var(--pb-heading-font); }
/* 3.6.10: SPN-19: the staff-request line (3.6.9) became its own grid cell, took the right column and pushed the letter
   form under the intro. It sits under the form; on one column it follows the form. */
@media (min-width: 901px) {
	body .sb-sponsorships.sb-sponsorships.bl-sponsorships--write_a_letter .grid > .head { grid-column: 1; grid-row: 1 / span 2; }
	body .sb-sponsorships.sb-sponsorships.bl-sponsorships--write_a_letter .grid > .paper { grid-column: 2; grid-row: 1; }
	body .sb-sponsorships.sb-sponsorships.bl-sponsorships--write_a_letter .grid > .small { grid-column: 2; grid-row: 2; margin-top: calc(-1 * clamp(16px, 3vw, 72px)); }
}
@media (max-width: 900px) { body .sb-sponsorships.sb-sponsorships.bl-sponsorships--write_a_letter .grid > .small { order: 1; } }
/* 3.6.10: SPN-07 phones: project names at the Medium size beside the photo ran a long place name past the screen. */
@media (max-width: 900px) {
	body .sb-sponsorships.sb-sponsorships.bl-sponsorships--project_list .rows li { grid-template-columns: 88px minmax(0, 1fr); }
	body .sb-sponsorships.sb-sponsorships.bl-sponsorships--project_list .rows .h3 { font-size:var(--st-type-h3) !important; overflow-wrap: anywhere; }
}

/* Source: staff-bios.fixes.css */
/* Studio Blocks: staff bios. Hand-written framework fixes (the generated staff-bios.css is never edited). */

/* 3.6.10: 17's per-person quote sat at the Quotes size in three narrow columns (two or three words a line) and its
   credit inherited it. In a column it reads as a pull quote at a column size; the credit is a small byline (BIO-17). */
body .sb-staff-bios.sb-staff-bios .b17-q { font-size:var(--st-type-quote) !important; line-height: 1.35 !important; }
body .sb-staff-bios.sb-staff-bios .b17-q small { display: block; margin-top: 10px; font-family: var(--pb-body-font, inherit); font-style: normal; font-size: var(--st-type-small); line-height: 1.4; color: var(--pb-muted); }
/* 3.6.10: 18's department label sits in a 200px column; at the Medium size a long word ran into the photo (BIO-18).
   The label stays at a size a 200px column holds. */
body .sb-staff-bios.sb-staff-bios .b18-dept { font-size: min(clamp(calc(var(--st-type-h3) * 0.75), 2.65625vw, var(--st-type-h3)), 26px) !important; hyphens: auto; }

/* 3.6.10: looks that paint their own band (BIO-04/07/16: the category's page color, a tint or a dark bar of their own)
   keep their light-row colors on a dark row, so they render the same on every row. The dark row only turned their
   text white (white on their own light band) and faded their surface color to an 8% tint. */
body .sb-blk.sb-blk.sb-staff-bios.sb-staff-bios.sb-edge.sb-dark:is(.sb-look-04, .sb-look-07, .sb-look-16) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-staff-bios.sb-staff-bios.sb-edge.sb-dark:is(.sb-look-04, .sb-look-07, .sb-look-16) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-staff-bios.sb-staff-bios.sb-edge.sb-dark:is(.sb-look-04, .sb-look-07, .sb-look-16) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-staff-bios.sb-staff-bios.sb-edge.sb-dark:is(.sb-look-04, .sb-look-07, .sb-look-16) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }
/* 3.6.10: BIO-20's heading and every second chapter sit on the row itself, so on a dark row it follows the row: its tint
   chapters fade like the surface color and the words stay white. */
body .sb-blk.sb-blk.sb-staff-bios.sb-staff-bios.sb-dark.sb-look-20 { --pb-tint: color-mix(in srgb, var(--pb-on-dark) 12%, transparent); --b-tint: var(--pb-tint); }

/* Source: tabs.fixes.css */
/* Studio Blocks: tabs. No JS: tab buttons are inert, so hide them and let every panel stack. */
body .sb-tabs.sb-tabs:not(.sb-js) .tabs-list{display:none}
body .sb-tabs.sb-tabs:not(.sb-js) .tabset,body .sb-tabs.sb-tabs:not(.sb-js) .wrap{display:block}
body .sb-tabs.sb-tabs:not(.sb-js) .panel{margin-bottom:48px}
/* Looks that set display on .panel (14, 9, ...) would otherwise beat [hidden] and show every panel. */
body .sb-tabs.sb-tabs .panel[hidden]{display:none!important}
body .sb-tabs.sb-tabs .action{text-decoration:underline;text-underline-offset:5px}
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-tabs.sb-tabs { font-size: var(--st-type-body) }
body .sb-tabs.sb-tabs h1 { font-size:var(--st-type-h2) !important}
body .sb-tabs.sb-tabs h2 { font-size:var(--st-type-h2) !important}
body .sb-tabs.sb-tabs h3 { font-size:var(--st-type-h3) !important}
body .sb-tabs.sb-tabs .label { font-size: var(--st-type-small) !important }
body .sb-tabs.sb-tabs .caption { font-size: var(--st-type-small) !important }
body .sb-tabs.sb-tabs .facts dt { font-size: var(--st-type-small) !important }
body .sb-tabs.sb-tabs .facts dd { font-size: var(--st-type-lead) !important }
body .sb-tabs.sb-tabs .note { font-size: var(--st-type-small) !important }
body .sb-tabs.sb-tabs .t5 .tab { font-size:var(--st-type-h3) !important}
body .sb-tabs.sb-tabs .t15 .tab { font-size:var(--st-type-h3) !important}
body .sb-tabs.sb-tabs .tab { font-size:var(--st-type-h3) !important}
/* 3.6.10: tab labels are controls, not titles. At the Medium title size "Grow connections" split mid-word in the
   vertical lists (TAB-02/12/14/18) and the tab rows wrapped (TAB-06/19). Looks 05 and 15 are display tabs and keep it. */
body .sb-tabs.sb-tabs .tab:not(.t5 .tab, .t15 .tab) { font-size: var(--st-type-lead) !important; overflow-wrap: normal; }
/* 3.6.10: on a dark band the soft tint (Branding Fifth) that panels, bands and cards paint turns into the same faint light
   tint as the surface, so the white text the band gives them stays readable (TAB-13 printed white on a light tint). */
body .sb-blk.sb-blk.sb-tabs.sb-tabs:not(.sb-edge).sb-dark { --pb-tint: color-mix(in srgb, var(--pb-on-dark) 8%, transparent); }

/* Source: team.fixes.css */
/* TEM-17: the theme's paragraph size wins over the generated .idx size; restore the running-headline scale. */
body .sb-team.sb-team .t17 .idx{font-size:var(--st-type-h3) !important;line-height:1.35 !important}
/* TEM-18: cells were painted with --pb-text, which is light on a dark section. Keep the cells transparent and draw the hairlines on the cells. */
body .sb-team.sb-team .t18 .g{background:none;border:0;gap:0;border-top:var(--st-line-w) solid var(--pb-border);border-left:var(--st-line-w) solid var(--pb-border)}
body .sb-team.sb-team .t18 li{background:transparent;border-right:var(--st-line-w) solid var(--pb-border);border-bottom:var(--st-line-w) solid var(--pb-border)}
/* The theme's p/span rules beat the shorthand `font` in the generated CSS (size, line height, tracking); restore the design's values. */
body .sb-team.sb-team .eyebrow { font-size: var(--st-type-small) !important; line-height: 1.3 !important; letter-spacing: var(--st-track-label) !important; }
body .sb-team.sb-team .nm { line-height: 1.2 !important; }
body .sb-team.sb-team .t03 .cap .nm { line-height: 1.05 !important; }
body .sb-team.sb-team .t16 .rail .side .role { line-height: 1 !important; }
body .sb-team.sb-team .t17 .sep { line-height: inherit; font-size: inherit; }
body .sb-team.sb-team .t12 .sig .nm { line-height: 1 !important; }
@media (max-width: 760px) { body .sb-team.sb-team .t17 .idx { line-height: 1.2 !important; } }
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-team.sb-team { font-size: var(--st-type-body) }
body .sb-team.sb-team .h-display { font-size:var(--st-type-h2)}
body .sb-team.sb-team .h1 { font-size:var(--st-type-h2)}
body .sb-team.sb-team .h2 { font-size:var(--st-type-h2)}
body .sb-team.sb-team .h3 { font-size:var(--st-type-h3)}
body .sb-team.sb-team .lead { font-size: var(--st-type-lead) !important }
body .sb-team.sb-team .small { font-size: var(--st-type-small) !important }
body .sb-team.sb-team .eyebrow { font-size: var(--st-type-small) }
body .sb-team.sb-team .role { font-size: var(--st-type-small) !important }
body .sb-team.sb-team .btn { font-size: var(--st-type-body) }
body .sb-team.sb-team .pagehead h1 { font-size:var(--st-type-h1)}
body .sb-team.sb-team .rtoggle button { font-size: var(--st-type-small) }
body .sb-team.sb-team .nm { font-size:var(--st-type-h3)}
body .sb-team.sb-team .t02 .cap a { font-size: var(--st-type-small) !important }
body .sb-team.sb-team .t03 .cap .nm { font-size:var(--st-type-h3) !important}
body .sb-team.sb-team .t04 .ft .role { font-size: var(--st-type-lead) !important }
body .sb-team.sb-team .t04 .ft .body { font-size: var(--st-type-lead) !important }
body .sb-team.sb-team .t04 .rest .nm { font-size:var(--st-type-h3) !important}
body .sb-team.sb-team .t06 .grp h3 { font-size:var(--st-type-h3)}
body .sb-team.sb-team .t06 .r .nm { font-size:var(--st-type-h3) !important}
body .sb-team.sb-team .t07 summary::after { font-size: var(--st-type-body) }
body .sb-team.sb-team .t09 .n { font-size: var(--st-type-h3) !important }
body .sb-team.sb-team .t11 dt { font-size: var(--st-type-h3) }
body .sb-team.sb-team .t12 .letter { font-size: var(--st-type-lead) !important }
body .sb-team.sb-team .t12 .letter p:first-child::first-letter { font-size:var(--st-type-display)}
body .sb-team.sb-team .t12 .sig .nm { font-size:var(--st-type-h3)}
body .sb-team.sb-team .t13 .grp h3 { font-size:var(--st-type-h3)}
body .sb-team.sb-team .t13 .nm { font-size:var(--st-type-h3) !important}
body .sb-team.sb-team .t15 figcaption { font-size: var(--st-type-small) !important }
body .sb-team.sb-team .t16 .rail .side { font-size: var(--st-type-lead) }
body .sb-team.sb-team .t16 .rail .side .role { font-size: var(--st-type-small) }
body .sb-team.sb-team .t16 .nav button { font-size: var(--st-type-lead) !important }
body .sb-team.sb-team .t17 .idx { font-size: var(--st-type-h3) !important }
body .sb-team.sb-team .t17 .p em { font-size: var(--st-type-small) }
body .sb-team.sb-team .t19 .big .nm { font-size:var(--st-type-h3) !important}
body .sb-team.sb-team .t19 .tile:not(.big) .nm { font-size:var(--st-type-h3) !important}
body .sb-team.sb-team .t20 .pt .body { font-size: var(--st-type-lead) !important }
body .sb-team.sb-team .sbi7 { font-size: var(--st-type-lead) !important }
body .sb-team.sb-team .sbi8 { font-size: var(--st-type-lead) !important }
body .sb-team.sb-team .sbi9 { font-size: var(--st-type-lead) !important }
body .sb-team.sb-team .sbi10 { font-size: var(--st-type-lead) !important }
body .sb-team.sb-team .sbi11 { font-size: var(--st-type-lead) !important }
body .sb-team.sb-team .sbi12 { font-size: var(--st-type-lead) !important }
body .sb-team.sb-team .t04 h2.h1 { font-size:var(--st-type-h3) !important}
body .sb-team.sb-team .t20 h3.h1 { font-size:var(--st-type-h3) !important}

/* 3.6.10: TEM-06 is a directory: department labels are small caps and names read at the Lead size (both were set to the
   Medium title size, which wrapped names and squeezed the email column). */
body .sb-team.sb-team .t06 .grp h3 { font-size: var(--st-type-small) !important; }
body .sb-team.sb-team .t06 .r .nm { font-size: var(--st-type-lead) !important; }
body .sb-team.sb-team .t06 .r a { overflow-wrap: anywhere; }
/* 3.6.10: TEM-19 small tiles: names at the Medium size wrapped to two lines and rose above the photo scrim (white on
   bright photo). Lead-size names and a scrim that covers the whole caption. */
body .sb-team.sb-team .t19 .tile:not(.big) .nm { font-size: var(--st-type-lead) !important; line-height: 1.2 !important; }
body .sb-team.sb-team .t19 .tile::after { background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.6) 30%, rgba(0,0,0,.2) 55%, rgba(0,0,0,0) 70%); }
/* 3.6.10: TEM-06 rows without a portrait drop the empty portrait column. */
body .sb-team.sb-team .t06 .r:not(:has(> img)) { grid-template-columns: 2fr 2fr 2fr 1.4fr; }
@media (max-width: 900px) {
	body .sb-team.sb-team .t06 .r:not(:has(> img)) { grid-template-columns: 1fr; }
	body .sb-team.sb-team .t06 .r:not(:has(> img)) > * { grid-column: 1; }
}
/* 3.6.10: looks drawn as a dark band (.dark) sit on the row's Background, which paints the band. On a light row their
   words, rules, buttons and links follow the row (dark text), not white (TEM-18 printed its names white on white). On a Secondary row they follow
   that color's lightness; Main, Black and photo rows keep the white design. */
body .sb-blk.sb-blk.sb-team.sb-team:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark { --pb-on-dark: var(--pb-text); --pb-muted-on-dark: var(--bl-site-muted); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-rule-on-dark: var(--bl-site-border); color: var(--pb-text); }
body .bg-sec .sb-blk.sb-blk.sb-team.sb-team:not(.sb-edge):not(.sb-dark) > .dark { --pb-on-dark: oklch(from var(--bl-site-secondary) clamp(0, (0.62 - l) * 1000, 1) 0 0); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-team.sb-team:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn:not(.ghost) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-team.sb-team:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn:not(.ghost):hover { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-team.sb-team:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn.ghost { background: transparent; color: var(--bl-site-primary) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-team.sb-team:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark :is(.tlink, .tlink--on-dark) { color: var(--bl-site-link); }

/* Source: testimonials.fixes.css */
/* TST-04: the theme's global p font-size beat the score; restore the big number. */
body .sb-testimonials.sb-testimonials.bl-testimonials--rating_summary .sum .score{font-size:var(--st-type-display) !important;line-height:.85 !important}
/* TST-17: the dark row turns every text light, which hid the light button's label. */
body .sb-blk.sb-testimonials.sb-testimonials.bl-testimonials--quote_cta a.btn.btn--light{color:var(--pb-ink) !important}
/* TST-16: five avatars must stay on one row at phone width inside the framed column. */
@media(max-width:560px){body .sb-testimonials.sb-testimonials.bl-testimonials--avatar_switcher .avs{gap:var(--st-grid-gap,8px)}body .sb-testimonials.sb-testimonials.bl-testimonials--avatar_switcher label{width:44px;height:44px}}
/* TST-01: the hanging opening quote mark sits in the section's side padding, as in the design; the block must not clip it. */
body .sb-blk.sb-testimonials.sb-testimonials.sb-look-01 { overflow: visible; }
/* TST-10: the generated p{font-size:inherit !important} beat the eyebrow's size. */
body .sb-testimonials.sb-testimonials p.eyebrow { font-size: var(--st-type-small) !important; line-height: 1.3 !important; }
/* TST-18: the design underlines the video link's caption. */
body .sb-testimonials.sb-testimonials a.vid { text-decoration: underline; }
/* TST-07: the credit name uses the design's tighter line height (the shared .cr rule says 1.3). */
body .sb-testimonials.sb-testimonials.bl-testimonials--portrait_split .cr strong { line-height: 1.2 !important; }
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-testimonials.sb-testimonials { font-size: var(--st-type-body) }
body .sb-testimonials.sb-testimonials .h-display { font-size:var(--st-type-h2)}
body .sb-testimonials.sb-testimonials .h1 { font-size:var(--st-type-h2)}
body .sb-testimonials.sb-testimonials .h2 { font-size:var(--st-type-h2)}
body .sb-testimonials.sb-testimonials .h3 { font-size:var(--st-type-h3)}
body .sb-testimonials.sb-testimonials .lead { font-size: var(--st-type-lead) !important }
body .sb-testimonials.sb-testimonials .small { font-size: var(--st-type-small) !important }
body .sb-testimonials.sb-testimonials .eyebrow { font-size: var(--st-type-small) }
body .sb-testimonials.sb-testimonials .role { font-size: var(--st-type-small) !important }
body .sb-testimonials.sb-testimonials .btn { font-size: var(--st-type-body) }
body .sb-testimonials.sb-testimonials .pagehead h1 { font-size:var(--st-type-h1)}
body .sb-testimonials.sb-testimonials .rtoggle button { font-size: var(--st-type-small) }
body .sb-testimonials.sb-testimonials.bl-testimonials--giant_quote blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--quote_over_photo blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--heading_beside_quotes blockquote { font-size: var(--st-type-quote) !important }
body .sb-testimonials.sb-testimonials.bl-testimonials--rating_summary .score { font-size:var(--st-type-display)}
body .sb-testimonials.sb-testimonials.bl-testimonials--rating_summary .score small { font-size: var(--st-type-small) !important }
body .sb-testimonials.sb-testimonials.bl-testimonials--rating_summary .bars div { font-size: var(--st-type-small) !important }
body .sb-testimonials.sb-testimonials.bl-testimonials--rating_summary .rv blockquote { font-size: var(--st-type-quote) !important }
body .sb-testimonials.sb-testimonials.bl-testimonials--two_up_cards blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--portrait_split blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--portrait_split .cr strong { font-size:var(--st-type-h3)}
body .sb-testimonials.sb-testimonials.bl-testimonials--edge_color_panel blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--ruled_quote_list blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--story_pull_quote .story .body { font-size: var(--st-type-lead) !important }
body .sb-testimonials.sb-testimonials.bl-testimonials--story_pull_quote .pull blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--quote_slider .nav button { font-size: var(--st-type-lead) !important }
body .sb-testimonials.sb-testimonials.bl-testimonials--quote_slider blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--straddling_card blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--featured_plus_two .big blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--featured_plus_two blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--chat_bubbles .bub strong { font-size:var(--st-type-h3) !important}
body .sb-testimonials.sb-testimonials.bl-testimonials--avatar_switcher blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--quote_cta blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--video_quote .len { font-size: var(--st-type-small) !important }
body .sb-testimonials.sb-testimonials.bl-testimonials--video_quote blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--circle_portrait_center blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--circle_portrait_center figcaption { font-size: var(--st-type-small) }
body .sb-testimonials.sb-testimonials.bl-testimonials--card_deck blockquote { font-size: var(--st-type-quote) }
body .sb-testimonials.sb-testimonials.bl-testimonials--card_deck .nx { font-size: var(--st-type-body) }
body .sb-testimonials.sb-testimonials.bl-testimonials--video_quote h2.h3 { font-size:var(--st-type-h2) !important}
body .sb-testimonials.sb-testimonials .cr strong { font-size:var(--st-type-h3) !important}
/* 3.6.10 fit pass: the Branding pass above set every quote to the Quotes size (a display size) and every credit name
   to Medium. Only the looks designed with display quotes (01, 02, 08, 10, 14 feature, 17, 19) keep it; reading quotes
   scale from Quotes at their designed share, never under Lead (TST-04/14/18 ran three words per line), and names are
   Lead size (TST-11/14 names wrapped). */
body .sb-testimonials.sb-testimonials :is(.s03, .s04 .rv, .s05, .s14 figure:not(.big), .s18, .s20, .s11) blockquote { font-size:var(--st-type-lead) !important; line-height: 1.45 !important; }
body .sb-testimonials.sb-testimonials :is(.s07, .s09, .s12, .s13, .s16) blockquote { font-size:var(--st-type-lead) !important; line-height: 1.32 !important; }
body .sb-testimonials.sb-testimonials .cr strong { font-size: var(--st-type-lead) !important; }
/* TST-11 with reduced motion: the marquee stops; its cards wrap into rows instead of running off the right edge. */
@media (prefers-reduced-motion: reduce) {
	body .sb-testimonials.sb-testimonials.bl-testimonials--quote_marquee .mq:not(.mq2) { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); width: auto; overflow: visible; }
	body .sb-testimonials.sb-testimonials.bl-testimonials--quote_marquee .m { width: auto; }
}
/* TST-15: the Branding pass set the chat bubble names to Medium, so names outweighed the quotes; the design's small label. */
body .sb-testimonials.sb-testimonials.bl-testimonials--chat_bubbles .bub strong { font-size: var(--st-type-body) !important; line-height: 1.35 !important; }
/* 3.6.10: looks drawn as a dark band (.dark) sit on the row's Background, which paints the band. On a light row their
   words, rules, buttons and links follow the row (dark text), not white (TST-17 printed its quote white on white). On a Secondary row they follow
   that color's lightness; Main, Black and photo rows keep the white design. */
body .sb-blk.sb-blk.sb-testimonials.sb-testimonials:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark { --pb-on-dark: var(--pb-text); --pb-muted-on-dark: var(--bl-site-muted); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-rule-on-dark: var(--bl-site-border); color: var(--pb-text); }
body .bg-sec .sb-blk.sb-blk.sb-testimonials.sb-testimonials:not(.sb-edge):not(.sb-dark) > .dark { --pb-on-dark: oklch(from var(--bl-site-secondary) clamp(0, (0.62 - l) * 1000, 1) 0 0); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-testimonials.sb-testimonials:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn:not(.ghost) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-testimonials.sb-testimonials:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn:not(.ghost):hover { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-testimonials.sb-testimonials:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn.ghost { background: transparent; color: var(--bl-site-primary) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-testimonials.sb-testimonials:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark :is(.tlink, .tlink--on-dark) { color: var(--bl-site-link); }
/* 3.6.10: on a dark band the soft tint (Branding Fifth) that panels, bands and cards paint turns into the same faint light
   tint as the surface, so the white text the band gives them stays readable (TST-14 printed white on a light tint). */
body .sb-blk.sb-blk.sb-testimonials.sb-testimonials:not(.sb-edge).sb-dark { --pb-tint: color-mix(in srgb, var(--pb-on-dark) 8%, transparent); }
/* 3.6.10: 06's dark quote cards are drawn in the copy color, white on a dark band: there they paint Branding Dark. */
body .sb-blk.sb-blk.sb-testimonials.sb-testimonials.sb-dark .s06 figure:nth-child(3n+2) { background: var(--pb-ink); border-color: var(--pb-ink); }
/* 3.6.10: looks that paint their own light band (TST-13: the category's page color or a tint) keep their light-row colors
   on a dark row, so they render the same on every row. The dark row only turned their text white (white on their own
   light band). */
body .sb-blk.sb-blk.sb-testimonials.sb-testimonials.sb-edge.sb-dark:is(.sb-look-13) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-testimonials.sb-testimonials.sb-edge.sb-dark:is(.sb-look-13) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-testimonials.sb-testimonials.sb-edge.sb-dark:is(.sb-look-13) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-testimonials.sb-testimonials.sb-edge.sb-dark:is(.sb-look-13) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }

/* Source: timelines.fixes.css */
/* sb_a() prints "label&nbsp;<span>→</span>"; keep a small, even gap inside the design's flex link. */
body .sb-blk.sb-timelines.sb-timelines .action{gap:0}
body .sb-blk.sb-timelines.sb-timelines .action > span[aria-hidden]{margin-left:.15em}
/* Theme link styles removed the design's underline on the action links. */
body .sb-blk.sb-timelines.sb-timelines .action{text-decoration:underline;text-underline-offset:4px}
/* The theme forces h1-h6 to the heading font with !important; the design's story titles in looks 1, 6, 8, 12, 13 and 16 use the body font. */
body .sb-blk.sb-timelines.sb-timelines :is(.l1, .l6, .l8, .l12, .l13, .l16) .story h3 { font-family: var(--pb-body-font) !important; }
/* Phone: the design's mobile rule sets every date to the h3 size with !important; the extractor's per-look !important rules out-rank it. */
/* TML-12: the design's rules on its dark band are light and solid (the library border token), not the faint ink mix. */
body .sb-timelines.sb-timelines .section.dark { --pb-border: color-mix(in srgb, var(--pb-on-dark) 74%, transparent); }
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-timelines.sb-timelines { font-size: var(--st-type-body) }
body .sb-timelines.sb-timelines h1 { font-size:var(--st-type-h2) !important}
body .sb-timelines.sb-timelines h2 { font-size:var(--st-type-h2) !important}
body .sb-timelines.sb-timelines h3 { font-size:var(--st-type-h3) !important}
body .sb-timelines.sb-timelines .label { font-size: var(--st-type-small) !important }
body .sb-timelines.sb-timelines .caption { font-size: var(--st-type-small) !important }
body .sb-timelines.sb-timelines .facts dt { font-size: var(--st-type-small) !important }
body .sb-timelines.sb-timelines .facts dd { font-size: var(--st-type-lead) !important }
body .sb-timelines.sb-timelines .note { font-size: var(--st-type-small) !important }
body .sb-timelines.sb-timelines .date { font-size:var(--st-type-h3) !important}
body .sb-timelines.sb-timelines .story h3 { font-size:var(--st-type-h3) !important}
body .sb-timelines.sb-timelines .story .action { font-size: var(--st-type-small) !important }
body .sb-timelines.sb-timelines .moment figcaption { font-size: var(--st-type-small) !important }
body .sb-timelines.sb-timelines .l1 .story h3 { font-size: var(--st-type-h3) !important }
body .sb-timelines.sb-timelines .l6 .date { font-size:var(--st-type-h3) !important}
body .sb-timelines.sb-timelines .l6 .story h3 { font-size:var(--st-type-h3) !important}
body .sb-timelines.sb-timelines .l8 .story h3 { font-size: var(--st-type-h3) !important }
body .sb-timelines.sb-timelines .l10 .date { font-size:var(--st-type-h3) !important}
body .sb-timelines.sb-timelines .l11 .date { font-size:var(--st-type-h3) !important}
body .sb-timelines.sb-timelines .l12 .story h3 { font-size: var(--st-type-h3) !important }
body .sb-timelines.sb-timelines .l13 .story h3 { font-size: var(--st-type-h3) !important }
body .sb-timelines.sb-timelines .l15 .date { font-size:var(--st-type-h3) !important}
body .sb-timelines.sb-timelines .l16 .story h3 { font-size: var(--st-type-h3) !important }
body .sb-timelines.sb-timelines .l16 .date { font-size:var(--st-type-h3) !important}
/* 3.6.10 fit pass: TML-05 thumbnail captions sat in the 96px photo column (one word per line); they now run under the
   story. TML-08 gives the milestones more of the row (titles and text wrapped three words per line). TML-12 cards fill
   the row whatever their count (three cards left a fourth column empty). */
@media (min-width: 768px) {
	body .sb-timelines.sb-timelines .l5 .milestone:not(:first-child) .moment { display: contents; }
	body .sb-timelines.sb-timelines .l5 .milestone:not(:first-child) .moment img { grid-column: 1; grid-row: 2; }
	body .sb-timelines.sb-timelines .l5 .milestone:not(:first-child) .moment figcaption { grid-column: 2; grid-row: 3; margin-top: 12px; }
	body .sb-timelines.sb-timelines .l5 .milestone:not(:first-child) .story { grid-column: 2; grid-row: 2; }
}
@media (min-width: 1101px) {
	body .sb-timelines.sb-timelines .l8 .wrap { grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr);gap:var(--st-grid-gap,72px); }
	body .sb-timelines.sb-timelines .l12 .chronology:not(:has(> :nth-child(4))) { --fit-max: 3; grid-template-columns: repeat(var(--fit-c,3),minmax(0,1fr)); }
	body .sb-timelines.sb-timelines .l12 .chronology:not(:has(> :nth-child(3))) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* 3.6.10: four-across looks (01, 07, 12, 13): story titles at Small Titles broke words in narrow cards
   ("convers/ation", TML-12); a title never runs wider than its card. TML-12's own dark band runs edge to edge (the
   theme caps .section at the section width). */
body .sb-timelines.sb-timelines :is(.l1, .l7, .l12, .l13) .milestone { container-type: inline-size; }
body .sb-timelines.sb-timelines :is(.l1, .l7, .l12, .l13) .story h3 { font-size: min(var(--st-type-h3), 13cqi) !important; overflow-wrap: normal; }
body .sb-timelines.sb-timelines.sb-edge .section { max-width: none; width: 100%; }
/* 3.6.10: on a dark band the soft tint (Branding Fifth) that panels, bands and cards paint turns into the same faint light
   tint as the surface, so the white text the band gives them stays readable (TML-09 printed white on a light tint). */
body .sb-blk.sb-blk.sb-timelines.sb-timelines:not(.sb-edge).sb-dark { --pb-tint: color-mix(in srgb, var(--pb-on-dark) 8%, transparent); }

/* Source: video.fixes.css */
/* The theme's button rules must not reveal a hidden background pause control. */
body .sb-video.sb-video .v05-pause[hidden] { display: none; }
/* Keep the native dialog close button visible and support uploaded MP4 players. */
body .sb-video.sb-video .lb { overflow: visible; }
body .sb-video.sb-video .lb video { width: 100%; height: 100%; display: block; }
/* Match the reference's wordmark card while allowing an editor-supplied logo. */
body .sb-video.sb-video .v19-logo img { width: 96px; height: auto; }
/* Only the selected playlist row has the reference's active border. */
body .sb-video.sb-video .v08-l button[aria-current="false"] { border-left-color: transparent; background: transparent; }
/* Dark rows redefine --pb-text to light; keep dark ink inside the pale play disc. */
body .sb-video.sb-video.sb-dark .play:not(.v16-d) { color: var(--pb-ink); }
body .sb-video.sb-video.sb-dark .dark { --pb-muted: color-mix(in srgb, var(--pb-on-dark) 74%, transparent); --pb-border: color-mix(in srgb, var(--pb-on-dark) 20%, transparent); }

/* VID-09: the quote's opening mark hangs left of the text; the base overflow clip cut it off on phones. */
body .sb-video.sb-video.sb-look-09{overflow-x:visible}
/* The theme's p and h3 rules beat the generated eyebrow size and the muted Chapters heading. */
body .sb-video.sb-video p.eyebrow{font-size:var(--st-type-small) !important;line-height:1.2 !important}
body .sb-video.sb-video .v15-h{color:var(--pb-muted) !important;line-height:1.6 !important}
body .sb-video.sb-video .tlink>span[aria-hidden]{font-family:var(--pb-body-font,system-ui,sans-serif)}
/* Link arrow: one text run, like the design, so the underline is unbroken. */
body .sb-video.sb-video .tlink{display:inline-block;min-height:0;padding-block:calc((44px - 1lh) / 2)}
body .sb-video.sb-video.sb-blk.sb-blk:not(.sb-dark){--pb-surface:var(--pb-tint)}
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-video.sb-video { font-size: var(--st-type-body); }
body .sb-video.sb-video .hd { font-size:var(--st-type-h2); }
body .sb-video.sb-video .eyebrow { font-size: var(--st-type-small); }
body .sb-video.sb-video .lede { font-size: var(--st-type-lead) !important; }
body .sb-video.sb-video .t3 { font-size:var(--st-type-h3); }
body .sb-video.sb-video .meta { font-size: var(--st-type-small) !important; }
body .sb-video.sb-video .btn { font-size: var(--st-type-body) !important; }
body .sb-video.sb-video .dur { font-size: var(--st-type-small) !important; }
body .sb-video.sb-video .b10-ctl button { font-size: var(--st-type-body) !important; }
body .sb-video.sb-video .sel select { font-size: var(--st-type-body) !important; }
body .sb-video.sb-video .fin { font-size: var(--st-type-body) !important; }
body .sb-video.sb-video .sel label { font-size: var(--st-type-small) !important; }
body .sb-video.sb-video .fl { font-size: var(--st-type-small) !important; }
body .sb-video.sb-video .chip { font-size: var(--st-type-small) !important; }
body .sb-video.sb-video .intro h1 { font-size:var(--st-type-h1); }
body .sb-video.sb-video .lb .close { font-size: var(--st-type-body) !important; }
body .sb-video.sb-video .v04-h { font-size:var(--st-type-h2); }
body .sb-video.sb-video .v04-play b { font-size: var(--st-type-body) !important; }
body .sb-video.sb-video .v04-play b+span { font-size: var(--st-type-small) !important; }
body .sb-video.sb-video .v05-h { font-size:var(--st-type-h2) !important; }
body .sb-video.sb-video .v06-h { font-size:var(--st-type-h2) !important; }
body .sb-video.sb-video .v08-l b { font-size: var(--st-type-body); }
body .sb-video.sb-video .v09-chip { font-size: var(--st-type-small) !important; }
body .sb-video.sb-video .v09-q { font-size: var(--st-type-quote); }
body .sb-video.sb-video .v10-n b { font-size:var(--st-type-h3) !important; }
body .sb-video.sb-video .v10-n span { font-size: var(--st-type-small) !important; }
body .sb-video.sb-video .v11 .tt { font-size:var(--st-type-h3); }
body .sb-video.sb-video .v12-f dt { font-size: var(--st-type-small) !important; }
body .sb-video.sb-video .v12-f dd { font-size:var(--st-type-h3); }
body .sb-video.sb-video .v15-h { font-size:var(--st-type-h3) !important; }
body .sb-video.sb-video .v15-l span { font-size: var(--st-type-h3); }
body .sb-video.sb-video .v16-d b { font-size: var(--st-type-small) !important; }
body .sb-video.sb-video .v19-logo { font-size:var(--st-type-h3) !important; }
body .sb-video.sb-video .v19-q { font-size: var(--st-type-quote); }
body .sb-video.sb-video .v20-l .t3 { font-size:var(--st-type-h3) !important; }
body .sb-video.sb-video .v09-g figcaption b { font-size:var(--st-type-h3) !important; }
body .sb-video.sb-video .v19-g figcaption b { font-size:var(--st-type-h3) !important; }
/* 3.6.10: VID-19's quote is a reading quote (the design's h3 size); at the display Quotes size it ran off a phone
   ("neighborho|"). On phones the logo card is smaller so it no longer covers the play button. */
body .sb-video.sb-video .v19-q { font-size:var(--st-type-lead) !important; }
@media (max-width: 900px) {
	body .sb-video.sb-video .v19-logo { padding: 10px 12px; }
	body .sb-video.sb-video .v19-logo img { width: 56px; }
}
body .sb-video.sb-video .v19-g figcaption b { font-size: var(--st-type-lead) !important; }
/* 3.6.10: looks drawn as a dark band (.dark) sit on the row's Background, which paints the band. On a light row their
   words, rules, buttons and links follow the row (dark text), not white (VID-06/08/12/18 printed captions and meta white on white). On a Secondary row they follow
   that color's lightness; Main, Black and photo rows keep the white design. */
body .sb-blk.sb-blk.sb-video.sb-video:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark { --pb-on-dark: var(--pb-text); --pb-muted-on-dark: var(--bl-site-muted); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-rule-on-dark: var(--bl-site-border); color: var(--pb-text); }
body .bg-sec .sb-blk.sb-blk.sb-video.sb-video:not(.sb-edge):not(.sb-dark) > .dark { --pb-on-dark: oklch(from var(--bl-site-secondary) clamp(0, (0.62 - l) * 1000, 1) 0 0); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-video.sb-video:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn:not(.ghost) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-video.sb-video:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn:not(.ghost):hover { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-video.sb-video:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .btn.ghost { background: transparent; color: var(--bl-site-primary) !important; border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-video.sb-video:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark :is(.tlink, .tlink--on-dark) { color: var(--bl-site-link); }
/* On a light row the length badge stays white on its own dark chip, and 06's title sits under the poster instead of
   overlapping it (dark words on a photo would not read). Dark rows keep the overlap. */
body .sb-blk.sb-blk.sb-video.sb-video:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .dur { color: var(--pb-on-dark); }
body .sb-blk.sb-blk.sb-video.sb-video:not(.sb-edge):not(.sb-dark, :is(.bg-sec, .bg-main, .bg-black, .bg-image) *) > .dark .v06-h { margin-top: 24px; }
/* 3.6.10: on a dark band the soft tint (Branding Fifth) that panels, bands and cards paint turns into the same faint light
   tint as the surface, so the white text the band gives them stays readable (VID-03 printed white on a light tint). */
body .sb-blk.sb-blk.sb-video.sb-video:not(.sb-edge).sb-dark { --pb-tint: color-mix(in srgb, var(--pb-on-dark) 8%, transparent); }
/* 3.6.10: looks that paint their own light band (VID-03: the category's page color or a tint) keep their light-row colors
   on a dark row, so they render the same on every row. The dark row only turned their text white (white on their own
   light band). */
body .sb-blk.sb-blk.sb-video.sb-video.sb-edge.sb-dark:is(.sb-look-03) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-video.sb-video.sb-edge.sb-dark:is(.sb-look-03) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-video.sb-video.sb-edge.sb-dark:is(.sb-look-03) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-video.sb-video.sb-edge.sb-dark:is(.sb-look-03) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }

/* Source: volunteers.fixes.css */
/* Volunteers: framework-only fixes. */
/* Content looks sit on the row's Background (surface or dark), so the look's own band must not paint a second box. */
body .sb-blk.sb-volunteers.sb-volunteers:not(.sb-edge) .is-surface,
body .sb-blk.sb-volunteers.sb-volunteers:not(.sb-edge) .is-dark{background:transparent}
/* The theme caps .section at 1240px; the edge bands must touch both screen edges. */
body .sb-volunteers.sb-volunteers.sb-edge .section{max-width:none;width:100%}
/* Skills filter: a matched skill reads like the design's bold accent. */
body .sb-volunteers.sb-volunteers .sk .m{color:var(--pb-primary);font-weight:var(--pb-ui-weight)}
/* [hidden] must win over the look's display rules (day panels, empty box). */
body .sb-volunteers.sb-volunteers [hidden]{display:none !important}
/* The generated file forces every <p> to inherit its size; these paragraphs carry their own display sizes in the design. */
body .sb-volunteers.sb-volunteers p.v15-big{font-size:var(--st-type-display) !important}
body .sb-volunteers.sb-volunteers .v3-panel .tm,body .sb-volunteers.sb-volunteers .empty .h3{font-size:var(--st-type-h3) !important}
body .sb-volunteers.sb-volunteers p.cat{font-size:var(--st-type-small) !important}
/* The framework map (css/cc-map.css) fills the design's .map box. */
body .sb-volunteers.sb-volunteers .map > .cc-map{height:100%;min-height:inherit;border:0;border-radius:0}
body .sb-volunteers.sb-volunteers .cc-map__fallback a{color:var(--pb-ink);min-height:0;display:inline}
body .sb-volunteers.sb-volunteers .cc-map__fallback p{font-size:var(--st-type-body) !important}
/* The design's own palette (terracotta accent, white surface, green dark band, its ink and rules): Branding's near-matches read creamier, greener or fainter. */
/* sb_a() prints "&nbsp;<span>→</span>": the design's arrow sits in the link text (one underline, one space). */
body .sb-volunteers.sb-volunteers .tlink{gap:0}
body .sb-volunteers.sb-volunteers .tlink>span[aria-hidden]{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em}
body .sb-volunteers.sb-volunteers .tlink:hover>span[aria-hidden]{text-decoration-thickness:2px}
/* 13: the design's quote keeps the browser's blockquote margin; the theme resets it. */
body .sb-volunteers.sb-volunteers .v13-q,body .sb-volunteers.sb-volunteers .v17-q{margin:1em 40px}
/* The framework map's pins: the design's terracotta, the selected site in ink and a little larger. */
body .sb-volunteers.sb-volunteers{--cc-map-marker-color:var(--bl-site-primary)}
body .sb-volunteers.sb-volunteers .cc-map .cc-map__pin svg{transition:transform var(--st-dur) var(--st-ease)}
body .sb-volunteers.sb-volunteers .cc-map .cc-map__pin.on{z-index:3;color:var(--pb-text)}
body .sb-volunteers.sb-volunteers .cc-map .cc-map__pin.on svg{transform:scale(1.3);transform-origin:50% 100%}
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-volunteers.sb-volunteers { font-size: var(--st-type-body) }
body .sb-volunteers.sb-volunteers .h1 { font-size:var(--st-type-h2)}
body .sb-volunteers.sb-volunteers .h2 { font-size:var(--st-type-h2)}
body .sb-volunteers.sb-volunteers .h3 { font-size:var(--st-type-h3)}
body .sb-volunteers.sb-volunteers .lead { font-size: var(--st-type-lead) !important }
body .sb-volunteers.sb-volunteers .cat { font-size: var(--st-type-small) }
body .sb-volunteers.sb-volunteers .small { font-size: var(--st-type-small) !important }
body .sb-volunteers.sb-volunteers .btn { font-size: var(--st-type-body) }
body .sb-volunteers.sb-volunteers .rtoggle button { font-size: var(--st-type-small) }
body .sb-volunteers.sb-volunteers .lbl-bar { font-size: var(--st-type-small) }
body .sb-volunteers.sb-volunteers .fld>span { font-size: var(--st-type-small) }
body .sb-volunteers.sb-volunteers .inp { font-size: var(--st-type-body) }
body .sb-volunteers.sb-volunteers .sel { font-size: var(--st-type-body) }
body .sb-volunteers.sb-volunteers .btn-ghost { font-size: var(--st-type-body) }
body .sb-volunteers.sb-volunteers .tag { font-size: var(--st-type-small) }
body .sb-volunteers.sb-volunteers .map .maplibregl-ctrl-attrib { font-size: var(--st-type-small) !important }
body .sb-volunteers.sb-volunteers .u-chips button { font-size: var(--st-type-small) }
body .sb-volunteers.sb-volunteers .dtile .d { font-size: var(--st-type-h3) !important }
body .sb-volunteers.sb-volunteers .v3-days button b { font-size: var(--st-type-lead) }
body .sb-volunteers.sb-volunteers .v3-days .o { font-size: var(--st-type-small) !important }
body .sb-volunteers.sb-volunteers .v3-panel .tm { font-size:var(--st-type-h3)}
body .sb-volunteers.sb-volunteers .v4-cal .wd { font-size: var(--st-type-small) }
body .sb-volunteers.sb-volunteers .v4-cal button .n { font-size: var(--st-type-body) !important }
body .sb-volunteers.sb-volunteers .v4-cal button .c { font-size: var(--st-type-small) !important }
body .sb-volunteers.sb-volunteers .v4-key { font-size: var(--st-type-small) !important }
body .sb-volunteers.sb-volunteers .v4-cal button.hi .n { font-size: var(--st-type-body) !important }
body .sb-volunteers.sb-volunteers .v6-f legend { font-size: var(--st-type-small) }
body .sb-volunteers.sb-volunteers .sk { font-size: var(--st-type-small) !important }
body .sb-volunteers.sb-volunteers .v7-n b { font-size:var(--st-type-display)}
body .sb-volunteers.sb-volunteers .v8 summary .h1 { font-size:var(--st-type-h3) !important}
body .sb-volunteers.sb-volunteers .v8 summary .pm { font-size: var(--st-type-body) !important }
body .sb-volunteers.sb-volunteers .v9-tb th { font-size: var(--st-type-small) }
body .sb-volunteers.sb-volunteers .v9-tb .p { font-size:var(--st-type-h3)}
body .sb-volunteers.sb-volunteers .v9-tb .o { font-size: var(--size-data-numbers) }
body .sb-volunteers.sb-volunteers .v10-t:nth-child(1) .h2 { font-size:var(--st-type-h3) !important}
body .sb-volunteers.sb-volunteers .v11-col .big { font-size:var(--st-type-h3)}
body .sb-volunteers.sb-volunteers .v12-mx th { font-size: var(--st-type-small) }
body .sb-volunteers.sb-volunteers .v12-mx tbody th { font-size: var(--st-type-h3) }
body .sb-volunteers.sb-volunteers .v12-mx td a { font-size: var(--st-type-small) !important }
body .sb-volunteers.sb-volunteers .v12-mx td span { font-size: var(--st-type-small) !important }
body .sb-volunteers.sb-volunteers .v13-q { font-size: var(--st-type-quote) }
body .sb-volunteers.sb-volunteers .v13-f dt { font-size: var(--st-type-small) !important }
body .sb-volunteers.sb-volunteers .v14-steps .k { font-size: var(--st-type-h3) !important }
body .sb-volunteers.sb-volunteers .v15-big { font-size:var(--st-type-display)}
body .sb-volunteers.sb-volunteers .v17-q { font-size: var(--st-type-quote) }
body .sb-volunteers.sb-volunteers .v17-s b { font-size:var(--st-type-display)}
body .sb-volunteers.sb-volunteers .v19-l .k { font-size: var(--st-type-h3) }
body .sb-volunteers.sb-volunteers .v20-tiles label>span b { font-size: var(--st-type-h3) }
body .sb-volunteers.sb-volunteers .v4-cal h3.h2 { font-size:var(--st-type-h3) !important}
body .sb-volunteers.sb-volunteers .v13-t > p > b { font-size:var(--st-type-h3) !important}
body .sb-volunteers.sb-volunteers .v17 .sbi83 > b { font-size:var(--st-type-h3) !important}
/* 3.6.10 fit pass. VOL-10: small tiles took the Titles size ("Food and pantry" one word per line) and their count
   lines collided; tile titles stay within the tile and the counts wrap as whole phrases. VOL-19: the list numbers
   took the Small Titles size and ran into the place names. VOL-20: interest tile names ran past their tile. */
body .sb-volunteers.sb-volunteers .v10-t { container-type: inline-size; }
body .sb-volunteers.sb-volunteers .v10-t .h2 { font-size: min(clamp(calc(var(--st-type-h3) * 0.75), 2.65625vw, var(--st-type-h3)), 14cqi) !important; overflow-wrap: normal; }
body .sb-volunteers.sb-volunteers .v10-t:nth-child(1) .h2 { font-size: min(clamp(calc(var(--st-type-h2) * 0.65), 3.75vw, var(--st-type-h2)), 12cqi) !important; }
body .sb-volunteers.sb-volunteers .v10-t .row { flex-wrap: wrap;row-gap:var(--st-stack-gap,2px); }
body .sb-volunteers.sb-volunteers .v10-t .row > * { white-space: nowrap; }
body .sb-volunteers.sb-volunteers .v19-l li button { grid-template-columns: auto minmax(0, 1fr) auto; }
body .sb-volunteers.sb-volunteers .v19-l .k { font-size: var(--st-type-lead) !important; min-width: 2ch; }
body .sb-volunteers.sb-volunteers .v19-l .h3 { font-size:var(--st-type-lead) !important; }
body .sb-volunteers.sb-volunteers .v20-tiles label > span { container-type: inline-size; }
body .sb-volunteers.sb-volunteers .v20-tiles label > span b { font-size: min(var(--st-type-h3), 14cqi) !important; overflow-wrap: normal; }
/* 3.6.10: on a dark band the soft tint (Branding Fifth) that panels, bands and cards paint turns into the same faint light
   tint as the surface, so the white text the band gives them stays readable (VOL-04 printed white on a light tint). */
body .sb-blk.sb-blk.sb-volunteers.sb-volunteers:not(.sb-edge).sb-dark { --pb-tint: color-mix(in srgb, var(--pb-on-dark) 8%, transparent); }
/* 3.6.10: looks that paint their own light band (VOL-04: the category's page color or a tint) keep their light-row colors
   on a dark row, so they render the same on every row. The dark row only turned their text white (white on their own
   light band). */
body .sb-blk.sb-blk.sb-volunteers.sb-volunteers.sb-edge.sb-dark:is(.sb-look-04) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-volunteers.sb-volunteers.sb-edge.sb-dark:is(.sb-look-04) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-volunteers.sb-volunteers.sb-edge.sb-dark:is(.sb-look-04) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-volunteers.sb-volunteers.sb-edge.sb-dark:is(.sb-look-04) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }

/* 3.6.10: the dark row's ".white a:link { color: white !important }" still turned these light-panel looks' links white.
   Their links follow the look as on a light row: plain links the text color, text links the link color. */
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-volunteers.sb-volunteers.sb-edge.sb-dark:is(.sb-look-04) a:not(.btn):not(.tlink):not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *):is(:link, :visited, :hover, :active) { color: inherit !important; }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-volunteers.sb-volunteers.sb-edge.sb-dark:is(.sb-look-04) a.tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *):is(:link, :visited, :hover, :active) { color: var(--bl-site-link) !important; }

/* Source: wizards.fixes.css */
/* wizards: framework-only fixes (the generated wizards.css is never edited). */
/* Hidden steps and parts must really hide (the design's display rules would win over [hidden]). */
body .sb-wizards.sb-wizards [hidden] { display: none !important; }
/* The form and each step wrapper add no box: the design's layout (grids, cards, columns) sees the children directly. */
body .sb-wizards.sb-wizards .wzf, body .sb-wizards.sb-wizards .wzp { display: contents; }
/* Before the script runs, only the shown step is visible (without JS every step shows stacked). */
html.wz-js body .sb-wizards.sb-wizards .wzp:not(.cur) { display: none; }
html.wz-js body .sb-wizards.sb-wizards .cs.done .opts, html.wz-js body .sb-wizards.sb-wizards .cs:not(.done) .me { display: none; }
/* Step headings take focus on step change without a ring; the error summary keeps its box. */
body .sb-wizards.sb-wizards [tabindex="-1"]:focus { outline: none; }
body .sb-wizards.sb-wizards .alert:focus-visible { outline: none; }
/* Back is a real button here (the design used a link): same look as .back. */
body .sb-wizards.sb-wizards .wz button.back { background: none; border: 0; padding: 0; cursor: pointer; font-size: inherit !important; line-height: inherit; text-align: left; }
/* Links the theme restyles (underline, color) keep the design's look. */
body .sb-wizards.sb-wizards .w13 a.btn, body .sb-wizards.sb-wizards .w15 a.btn { text-decoration: none; color: var(--pb-on-dark); }
body .sb-wizards.sb-wizards a.back, body .sb-wizards.sb-wizards .tlink { text-decoration: none; }
body .sb-wizards.sb-wizards .w03 .sum a, body .sb-wizards.sb-wizards .w16 .alert a, body .sb-wizards.sb-wizards .w17 .ih a { text-decoration: underline; }
/* Group join as a real dialog (the design's stage shows when the Button field is empty or ?sb_open is set). */
body .sb-wizards.sb-wizards dialog.w05d { border: 0; padding: 0; background: transparent; max-width: none; max-height: none; width: min(100% - 32px, 560px); overflow: visible; }
body .sb-wizards.sb-wizards dialog.w05d::backdrop { background: var(--st-hero-scrim); }
body .sb-wizards.sb-wizards dialog.w05d .md { position: relative; left: auto; top: auto; bottom: auto; translate: none; width: 100%; max-height: calc(100vh - 48px); border-radius: var(--st-photo-r); }
html:has(.sb-wizards.sb-wizards dialog[open]) { overflow: hidden; }
/* The theme's phone paragraph size reaches <p> elements that carry a heading or label class. */
body .sb-wizards.sb-wizards p.h2 { font-size:var(--st-type-h2) !important; line-height: var(--st-lh-head) !important; }
body .sb-wizards.sb-wizards .eyebrow { font-size: var(--st-type-small) !important; line-height: 1.3 !important; }
/* The theme forces heading colors; the result word keeps the accent. */
body .sb-wizards.sb-wizards .w13 .big { color: var(--pb-primary) !important; }
/* A narrow centered column inside the section frame (the frame strips the .wrap width; keep the design's column). */
body .sb-blk.sb-wizards.sb-wizards .sec.w02 > .wrap.in { max-width: calc(880px - 2 * var(--gut)) !important; margin-inline: auto; }
body .sb-blk.sb-wizards.sb-wizards .sec.w16 > .wrap.in { max-width: calc(720px - 2 * var(--gut)) !important; margin-inline: auto; }
/* Back arrow as inline SVG. */
body .sb-wizards.sb-wizards .back .ar { width: 1em; height: 1em; flex: none; margin-right: .4em; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
body .sb-wizards.sb-wizards dialog.w05d { color: var(--pb-text); }
body .sb-wizards.sb-wizards .w13 .big { font-size:var(--st-type-h2) !important; line-height: .9 !important; }
/* WIZ-13: the "Your scores" heading (design inline style margin-bottom:16px). */
body .sb-wizards.sb-wizards .w13 h3.lbl { margin-bottom: 16px; }
/* WIZ-14: the Change link in the topic chip is the accent color and underlined, as in the design. */
body .sb-wizards.sb-wizards .w14 .chip a { color: var(--pb-primary); text-decoration: underline; }
/* WIZ-13: grid children may shrink below their content (a long display word otherwise pushes the bars off the screen). */
body .sb-wizards.sb-wizards .w13 .g > div { min-width: 0; }
/* Branding text sizes. Kept here so Studio library re-extraction preserves these roles. */
body .sb-wizards.sb-wizards { font-size: var(--st-type-body); }
body .sb-wizards.sb-wizards .h-display { font-size:var(--st-type-h2); }
body .sb-wizards.sb-wizards .h1 { font-size:var(--st-type-h2); }
body .sb-wizards.sb-wizards .h2 { font-size:var(--st-type-h2); }
body .sb-wizards.sb-wizards .h3 { font-size:var(--st-type-h3); }
body .sb-wizards.sb-wizards .lead { font-size: var(--st-type-lead) !important; }
body .sb-wizards.sb-wizards .small { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .eyebrow { font-size: var(--st-type-small); }
body .sb-wizards.sb-wizards .role { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .btn { font-size: var(--st-type-body); }
body .sb-wizards.sb-wizards .pagehead h1 { font-size:var(--st-type-h1); }
body .sb-wizards.sb-wizards .rtoggle button { font-size: var(--st-type-small); }
body .sb-wizards.sb-wizards .wz button { font-size: var(--st-type-body) !important; }
body .sb-wizards.sb-wizards .fld label { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .lgd { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .hint { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .err { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .tile .ts { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .frac { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .hs .l { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .vs .l small { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .stq { font-size:var(--st-type-h2) !important; }
body .sb-wizards.sb-wizards .w01 .cn span { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w01 .qty button { font-size: var(--st-type-lead) !important; }
body .sb-wizards.sb-wizards .w01 .qty output { font-size: var(--st-type-body); }
body .sb-wizards.sb-wizards .w02 .q { font-size:var(--st-type-h2); }
body .sb-wizards.sb-wizards .w02 .tile { font-size: var(--st-type-body) !important; }
body .sb-wizards.sb-wizards .w02 .key { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w03 .sum strong { font-size: var(--size-data-numbers); }
body .sb-wizards.sb-wizards .w04 .pr { font-size: var(--st-type-lead); }
body .sb-wizards.sb-wizards .w04 .qty button { font-size: var(--st-type-lead) !important; }
body .sb-wizards.sb-wizards .w04 .tot { font-size: var(--st-type-lead) !important; }
body .sb-wizards.sb-wizards .w04 .tot strong { font-size: var(--size-data-numbers); }
body .sb-wizards.sb-wizards .w05 .x { font-size: var(--st-type-body) !important; }
body .sb-wizards.sb-wizards .w06 .rh { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w06 .wk label { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w06 .tabs li { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w07 .crumbs { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w07 .dw span { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w07 .cal button { font-size: var(--st-type-body); }
body .sb-wizards.sb-wizards .w07 .empty { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w08 .os .tot { font-size: var(--size-data-numbers); }
body .sb-wizards.sb-wizards .w09 .dots li { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w09 .tile .tt { font-size: var(--st-type-h3); }
body .sb-wizards.sb-wizards .w09 .tile .ts { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w11 .quote { font-size: var(--st-type-quote); }
body .sb-wizards.sb-wizards .w12 .q { font-size:var(--st-type-h2); }
body .sb-wizards.sb-wizards .w12 .sc .n { font-size: var(--st-type-body); }
body .sb-wizards.sb-wizards .w12 .sc .t { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w13 .big { font-size:var(--st-type-h2); }
body .sb-wizards.sb-wizards .w14 .topics a small { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w14 .chip a { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w15 dt { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w17 .ih strong { font-size: var(--st-type-h3) !important; }
body .sb-wizards.sb-wizards .w17 .ih small { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w18 .host { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w18 .opts button { font-size: var(--st-type-body); }
body .sb-wizards.sb-wizards .w18 .meter { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w19 label.q { font-size:var(--st-type-h2); }
body .sb-wizards.sb-wizards .w19 input { font-size: var(--st-type-body); }
body .sb-wizards.sb-wizards .w20 .ring b { font-size: var(--st-type-small) !important; }
body .sb-wizards.sb-wizards .w04 h2.h3 { font-size:var(--st-type-h2) !important; }
body .sb-wizards.sb-wizards .w05 h2.h3 { font-size:var(--st-type-h2) !important; }
body .sb-wizards.sb-wizards .w10 h2.h3 { font-size:var(--st-type-h2) !important; }
body .sb-wizards.sb-wizards .w20 h2.h3 { font-size:var(--st-type-h2) !important; }
body .sb-wizards.sb-wizards .w13 h3.lbl { font-size:var(--st-type-h3) !important; }
body .sb-wizards.sb-wizards .tile .tt { font-size: var(--st-type-h3) !important; }
body .sb-wizards.sb-wizards .cn strong { font-size: var(--st-type-h3) !important; }
body .sb-wizards.sb-wizards .tk strong { font-size: var(--st-type-h3) !important; }
body .sb-wizards.sb-wizards .w06 .role strong { font-size:var(--st-type-h3) !important; }
body .sb-wizards.sb-wizards .w09 .tag strong { font-size:var(--st-type-h3) !important; }
body .sb-wizards.sb-wizards .w13 .next strong { font-size:var(--st-type-h3) !important; }
/* 3.6.10: choice tiles inherited a title size from the theme's label rule (38px), so every option read like a heading
   and long options wrapped two words per line (WIZ-02/03/05/11/18/20). Option names are Lead size (looks 09 keep their
   own display tiles). */
body .sb-wizards.sb-wizards .tile:not(.w09 .tile) { font-size: var(--st-type-body) !important; }
body .sb-wizards.sb-wizards .tile:not(.w09 .tile) .tt { font-size: var(--st-type-lead) !important; line-height: 1.3 !important; }
body .sb-wizards.sb-wizards .w07-note { margin-top: 24px; }
/* 3.6.10: on a dark band the soft tint (Branding Fifth) that panels, bands and cards paint turns into the same faint light
   tint as the surface, so the white text the band gives them stays readable (WIZ-18 printed white on a light tint). */
body .sb-blk.sb-blk.sb-wizards.sb-wizards:not(.sb-edge).sb-dark { --pb-tint: color-mix(in srgb, var(--pb-on-dark) 8%, transparent); }
/* 3.6.10: on a dark band 14's picked topic (copy color) paints Branding Dark, and 12's picked number keeps dark words on
   its light tile (both printed white on white). */
body .sb-blk.sb-blk.sb-wizards.sb-wizards.sb-dark .w14 .topics a.on { background: var(--pb-ink); }
body .sb-blk.sb-blk.sb-wizards.sb-wizards .w12 .sc input:checked + label .n { color: var(--pb-ink); }
/* 3.6.10: looks that paint their own light band (WIZ-01/03/18: the category's page color or a tint) keep their light-row colors
   on a dark row, so they render the same on every row. The dark row only turned their text white (white on their own
   light band). */
body .sb-blk.sb-blk.sb-wizards.sb-wizards.sb-edge.sb-dark:is(.sb-look-01, .sb-look-03, .sb-look-18) { --pb-text: var(--bl-site-text, var(--bl-look-headings)); --pb-muted: var(--bl-site-muted); --pb-border: var(--bl-site-border); --pb-surface: var(--bl-site-surface, var(--bl-site-bg)); --form-label-color: inherit; color: var(--pb-text); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-wizards.sb-wizards.sb-edge.sb-dark:is(.sb-look-01, .sb-look-03, .sb-look-18) .btn:not(.ghost):not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: var(--bl-site-primary); color: var(--pbd-fallback-on-brand); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-wizards.sb-wizards.sb-edge.sb-dark:is(.sb-look-01, .sb-look-03, .sb-look-18) .btn.ghost:not(:is(.dark, .ink, .is-dark, .on-dark) *) { background: transparent; color: var(--bl-site-primary); border-color: var(--bl-site-primary); }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-wizards.sb-wizards.sb-edge.sb-dark:is(.sb-look-01, .sb-look-03, .sb-look-18) .tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *) { color: var(--bl-site-link); }

/* 3.6.10: the dark row's ".white a:link { color: white !important }" still turned these light-panel looks' links white.
   Their links follow the look as on a light row: plain links the text color, text links the link color. */
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-wizards.sb-wizards.sb-edge.sb-dark:is(.sb-look-01, .sb-look-03, .sb-look-18) a:not(.btn):not(.tlink):not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *):is(:link, :visited, :hover, :active) { color: inherit !important; }
body .sb-blk.sb-blk.sb-blk.sb-blk.sb-wizards.sb-wizards.sb-edge.sb-dark:is(.sb-look-01, .sb-look-03, .sb-look-18) a.tlink:not(:is(.dark, .ink, .is-dark, .on-dark, .photo, .ov) *):is(:link, :visited, :hover, :active) { color: var(--bl-site-link) !important; }

/* Source markup owns the single arrow in Studio. */
body .sb-blk.sb-blk.sb-blk .tlink::after{content:none!important}
body .sb-blk.sb-blk :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:none;box-shadow:none;background-color:color-mix(in srgb,currentColor 8%,transparent)}

body .sb-blk.sb-blk{--pb-primary:var(--bl-site-primary);--pb-secondary:var(--bl-site-secondary);--pb-bg:var(--bl-site-bg)}

body .sb-blk.sb-blk{--pb-ui-weight:var(--pb-btn-weight,600);--pb-card-weight:var(--pb-heading-weight,600);--pb-placeholder:var(--bl-site-muted);--st-radius:var(--pb-radius,0px);--st-lh-display:var(--pb-heading-lh,1.05);--st-narrow:var(--st-width,760px);--st-dur:200ms;--st-ease:ease;--st-scrim:var(--st-scrim-tint,#000);--size-data-numbers:var(--st-type-numeral)}

body .sb-blk.sb-blk:not(.sb-edge){background:transparent!important}
body .sb-blk.sb-blk:not(.sb-edge):is(.sec,.section,.blk){padding-block:0!important;margin-block:0!important}

/* Studio merges numbered sections into these roots. Shared source token names read Studio's existing roles. */
body .sb-blk.sb-blk{--st-lh-body:var(--pb-body-lh,1.65);--st-lh-head:var(--pb-heading-lh,1.1);--st-lh-h3:var(--pb-heading-lh,1.2);--st-line-w:1px;--st-track-head:var(--pb-heading-tracking,0);--st-track-h3:var(--pb-heading-tracking,0);--st-track-label:.1em;--st-photo-r:var(--pb-radius,0px);--sb-side:var(--st-gutter,24px);--sb-split-pad:var(--sb-hero-pad);--sb-hero-pad:var(--hl-space,var(--pt-space,var(--st-space-normal,40px)));--sb-hdr-room:var(--st-header-clearance,0px);--hp-top:calc(var(--sb-hdr-room) + var(--sb-hero-pad))}
