/* =========================================================================
   Resources redesign (resources2.html, blog2*.html, resources2-state-laws.html, post2-*.html). Loaded after
   gable.css + home2.css, only on these pages. Wrapper: .gbl.gbl-home2.rs (PayHOA blue, home2 section rhythm).
   Prefix: rs-. Reuses from home2.css: the hero card (.hx-hero-*), .hx-eyebrow, --pb-* blues. From gable.css:
   .gbl-sec, .gbl-btn, .gbl-reveal, .gbl-sr. Article body text: Source Serif 4 (SIL OFL 1.1, self-hosted; question
   R-Q1 in docs/resources-redesign.md) — everything else stays Proxima Nova 400/600.
   ========================================================================= */

@font-face { font-family: 'Source Serif 4'; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url(fonts/source-serif-4/SourceSerif4-Roman-latin.woff2) format('woff2'); }
@font-face { font-family: 'Source Serif 4'; font-style: italic; font-weight: 400 600; font-display: swap;
  src: url(fonts/source-serif-4/SourceSerif4-Italic-latin.woff2) format('woff2'); }

.rs {
  --rs-head: 96px;
  --rs-card: 0 0 0 1px var(--line), 0 1px 2px rgba(28, 39, 55, .04);
  --rs-lift: 0 0 0 1px var(--pb-200), 0 22px 44px -26px rgba(24, 50, 140, .45);
  --rs-read: #2b3a52;
  --t-article: var(--pb-700); --t-article-bg: var(--pb-50);
  --t-state: #a35f00; --t-state-bg: #fff4e0;
  --t-ebook: #6a3fb8; --t-ebook-bg: #f3eeff;
  --t-case: #0c7a5c; --t-case-bg: #e7f6f1;
}
/* ship: page 7139's layout becomes one BB row holding [resources_hub]; BB's cached node CSS can be stale, so the row,
   column and module spacing is pinned here (same as the other redesigned pages). Nothing matches locally. */
body.page-id-7139 .fl-builder-content-primary .fl-col { width: 100%; }
body.page-id-7139 .fl-builder-content-primary > .fl-row > .fl-row-content-wrap { padding: 0; }
body.page-id-7139 .fl-builder-content-primary .fl-module-html > .fl-module-content { margin: 0; }
/* keyboard focus and jump links never land under the sticky site header (2.4.11) */
.rs :is(a, button, input, select, summary, [tabindex]), .rs [id] { scroll-margin-top: calc(var(--rs-head) + 20px); }
.rs .rs-ico { width: 18px; height: 18px; fill: currentColor; flex: none; }
/* every Phosphor icon takes the text colour, whatever its size class (gbl-ico-sm in buttons, carets, crumbs…) */
.rs svg[viewBox="0 0 256 256"] { fill: currentColor; }
.gbl .rs-btn { min-height: 52px; gap: 8px; }
.gbl a.gbl-btn-blue.rs-btn, .gbl a.gbl-btn-blue.rs-btn:visited { background: var(--pb-600); box-shadow: 0 10px 24px -12px rgba(34, 86, 211, .6); }
.gbl a.gbl-btn-blue.rs-btn:hover { background: var(--pb-800); }
.gbl :is(a, button).gbl-btn-soft.rs-btn { background: #fff; color: var(--ink); border: 1px solid var(--line); border-radius: var(--r-sm); padding: 0 24px; }
.gbl :is(a, button).gbl-btn-soft.rs-btn:hover { border-color: var(--pb-200); color: var(--pb-700); }
.gbl a.gbl-btn .rs-ico { width: 16px; height: 16px; }
/* icons that point down (download, "Read it here") nudge down on hover, not right like the site's button arrows */
.gbl a.gbl-btn:hover .rs-ico-down { transform: translateY(3px); }
.rs-btn-s { font-weight: 400; font-size: 14px; opacity: .8; padding-left: 10px; margin-left: 2px; border-left: 1px solid rgba(255, 255, 255, .35); }
.rs-sep { width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: .55; flex: none; }

/* =========================================================================
   Heroes: the light feature/solutions hero card
   ========================================================================= */
.rs-hero .hx-hero-card { color: var(--ink); background: linear-gradient(160deg, #f5f9ff 0%, var(--pb-50) 45%, var(--pb-100) 100%); box-shadow: inset 0 0 0 1px var(--pb-100); }
.rs-hero .hx-hero-glow { background: radial-gradient(42% 60% at 82% 8%, rgba(42, 107, 230, .16), transparent 70%), radial-gradient(40% 50% at 0% 100%, rgba(255, 255, 255, .9), transparent 70%); }
.rs-hero .hx-hero-glow::after { background-image: radial-gradient(rgba(34, 86, 211, .16) 1px, transparent 1px); }
.gbl.rs .rs-hero .hx-h1 { color: var(--ink); margin-top: 22px; font-size: clamp(40px, 3.7vw, 56px); }
.rs-hero .hx-h1 span { color: var(--pb-600); }
.rs-hero .hx-hero-sub { color: var(--body); }
.gbl .rs-hero .hx-hero-sub a { color: var(--pb-700); font-weight: 600; } /* the category intro's owner link (SEO S11, CS-19) */
.rs-hero-grid.hx-hero-grid { grid-template-columns: minmax(0, 560px) minmax(0, 1fr); column-gap: 56px; min-height: 0; align-items: center; }
.rs-hero-copy.hx-hero-copy { padding: 72px 0; }


/* crumbs */
.rs-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin: 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.3; }
.rs-crumbs li { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.gbl .rs-crumbs a { color: var(--pb-700); font-weight: 600; }
.gbl .rs-crumbs a:hover { color: var(--pb-800); }
.rs-crumbs [aria-current] { color: var(--muted); max-width: 42ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rs .rs-crumb-sep { width: 12px; height: 12px; color: var(--muted); opacity: .7; }

/* search: one box for the hub (with suggestions) and the library (filters the list) */
.rs-search { position: relative; display: flex; align-items: center; width: 100%; max-width: 560px; margin-top: 32px; background: #fff; border-radius: 16px; box-shadow: 0 0 0 1px var(--pb-100), 0 12px 28px -18px rgba(24, 50, 140, .45); transition: box-shadow .2s; }
.rs-search:focus-within { box-shadow: 0 0 0 2px var(--pb-600), 0 12px 28px -18px rgba(24, 50, 140, .45); }
.rs .rs-search-ico { position: absolute; left: 18px; width: 22px; height: 22px; color: var(--muted); pointer-events: none; }
.gbl .rs-search input { flex: 1; min-width: 0; height: 60px; margin: 0; padding: 0 12px 0 52px; border: 0; border-radius: 16px; background: transparent; box-shadow: none; outline: 0; font: inherit; font-size: 17px; color: var(--ink); -webkit-appearance: none; appearance: none; }
.rs-search input::placeholder { color: #7a879b; opacity: 1; }
.rs-search input::-webkit-search-cancel-button { -webkit-appearance: none; }
.rs-kbd { flex: none; display: grid; place-items: center; width: 26px; height: 26px; margin-right: 8px; border-radius: 7px; background: var(--bg); box-shadow: inset 0 0 0 1px var(--line); color: var(--muted); font: 600 13px/1 'Proxima Nova', sans-serif; }
.rs-search:focus-within .rs-kbd { display: none; }
.gbl button.rs-search-go { flex: none; display: grid; place-items: center; width: 46px; height: 46px; margin-right: 7px; border-radius: 12px; background: var(--pb-600); color: #fff; transition: background .2s; }
.gbl button.rs-search-go:hover { background: var(--pb-800); color: #fff; }
.rs-search-go .rs-ico { width: 20px; height: 20px; }
.rs-try { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 16px; font-size: 14px; color: var(--muted); }
.gbl .rs-try a { padding: 5px 12px; border-radius: 999px; background: rgba(255, 255, 255, .7); box-shadow: 0 0 0 1px var(--pb-100); color: var(--ink); line-height: 1.2; transition: background .2s, box-shadow .2s; }
.gbl .rs-try a:hover { background: #fff; color: var(--pb-700); box-shadow: 0 0 0 1px var(--pb-200); }

/* suggestions (hub): grouped by type, keyboard-driven (gable/resources2.js) */
.rs-sugg { position: absolute; z-index: 30; top: calc(100% + 8px); left: 0; right: 0; max-height: min(460px, 60vh); overflow: auto; padding: 8px; border-radius: 16px; background: #fff; box-shadow: 0 0 0 1px var(--line), 0 24px 48px -20px rgba(24, 50, 140, .45); text-align: left; }
.rs-sugg-h { margin: 8px 10px 4px; font-size: 12px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.gbl .rs-sugg a { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 10px; color: var(--ink); font-size: 15px; line-height: 1.3; }
.gbl .rs-sugg a[aria-selected="true"], .gbl .rs-sugg a:hover { background: var(--pb-50); color: var(--ink); }
.rs-sugg-img { width: 48px; height: 34px; border-radius: 7px; object-fit: cover; flex: none; background: var(--pb-50); }
.rs-sugg-ico { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; flex: none; background: var(--pb-50); color: var(--pb-700); }
.rs-sugg-ico svg { width: 18px; height: 18px; fill: currentColor; }
.rs-sugg-t { min-width: 0; flex: 1; }
.rs-sugg-t mark { padding: 0; margin: 0; background: none; color: var(--pb-700); font-weight: 600; }
.rs-sugg-t small { display: block; margin-top: 2px; font-size: 12.5px; color: var(--muted); }
.gbl .rs-sugg a.rs-sugg-all { justify-content: center; margin-top: 4px; color: var(--pb-700); font-weight: 600; box-shadow: inset 0 1px 0 var(--line-2); border-radius: 0 0 10px 10px; }
.rs-sugg-none { padding: 14px 12px; font-size: 15px; color: var(--muted); }

/* ---------- hub hero: the four types as a bento, each with a preview of what's inside ---------- */
.rs-hero-stage { min-width: 0; padding: 48px 56px 48px 0; }
.rs-bento { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.gbl .rs-bento a { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 4px; height: 100%; min-height: 236px; padding: 22px 22px 20px; border-radius: 24px; background: #fff; box-shadow: 0 0 0 1px rgba(34, 86, 211, .1), 0 24px 48px -32px rgba(24, 50, 140, .55); color: var(--ink); transition: transform .35s var(--ease), box-shadow .3s; }
.gbl .rs-bento a:hover { color: var(--ink); transform: translateY(-4px); box-shadow: 0 0 0 1px var(--pb-200), 0 30px 56px -30px rgba(24, 50, 140, .6); }
.rs-bento-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.rs .rs-bento-ico { width: 40px; height: 40px; padding: 9px; border-radius: 12px; background: var(--c-bg); color: var(--c); }
.rs-bento-n { font-size: 40px; font-weight: 600; line-height: 1; letter-spacing: -.02em; color: var(--c); font-variant-numeric: tabular-nums; }
.rs-bento b { font-size: 19px; font-weight: 600; line-height: 1.25; }
.rs-bento-i.is-article { --c: var(--t-article); --c-bg: var(--t-article-bg); }
.rs-bento-i.is-state { --c: var(--t-state); --c-bg: var(--t-state-bg); }
.rs-bento-i.is-ebook { --c: var(--t-ebook); --c-bg: var(--t-ebook-bg); }
.rs-bento-i.is-case { --c: var(--t-case); --c-bg: var(--t-case-bg); }
/* articles: three newest thumbnails, fanned */
.rs-fan { position: relative; margin-top: auto; height: 76px; }
.rs-fan-i { position: absolute; bottom: -34px; left: calc(var(--i) * 26%); width: 44%; aspect-ratio: 3 / 2; border-radius: 10px; overflow: hidden; background: var(--pb-50); box-shadow: 0 0 0 3px #fff, 0 10px 20px -10px rgba(24, 50, 140, .5); transform: rotate(calc(-6deg + var(--i) * 6deg)); transition: transform .45s var(--ease); }
.rs-fan-img { width: 100%; height: 100%; object-fit: cover; }
.rs-bento a:hover .rs-fan-i { transform: rotate(calc(-9deg + var(--i) * 9deg)) translateY(-6px); }
/* state laws: the tile map in miniature */
.rs-bento-map { margin-top: auto; align-self: flex-end; display: grid; grid-template-columns: repeat(11, 9px); grid-auto-rows: 9px; gap: 3px; }
.rs-bento-map i { grid-column: calc(var(--c) + 1); grid-row: calc(var(--r) + 1); border-radius: 2px; background: #f1e6d4; }
.rs-bento-map i.is-on { background: var(--t-state); }
/* eBooks: three covers */
.rs-books { position: relative; margin-top: auto; height: 84px; }
.rs-books span { position: absolute; bottom: -30px; left: calc(8% + var(--i) * 24%); width: 27%; aspect-ratio: 3 / 4; border-radius: 4px 8px 8px 4px; overflow: hidden; box-shadow: 0 12px 20px -10px rgba(40, 20, 90, .5); transform: rotate(calc(-7deg + var(--i) * 7deg)); transition: transform .45s var(--ease); }
.rs-book-img { width: 100%; height: 100%; object-fit: cover; }
.rs-bento a:hover .rs-books span { transform: rotate(calc(-10deg + var(--i) * 10deg)) translateY(-6px); }
/* case studies: faces */
.rs-faces { margin-top: auto; display: flex; padding-left: 10px; }
.rs-face { width: 48px; height: 48px; margin-left: -10px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 3px #fff; background: var(--t-case-bg); }

/* =========================================================================
   Section heads: left-aligned with a "see all" link
   ========================================================================= */
.gbl-home2 .rs-sec.gbl-sec { padding: 88px 0 0; }
.rs-hub .rs-sec:last-child, .rs-next.gbl-sec { padding-bottom: 96px; }
.rs-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 36px; }
.rs-head-txt { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; max-width: 760px; }
.rs-head .hx-eyebrow .rs-ico, .rs-states-copy .hx-eyebrow .rs-ico { width: 16px; height: 16px; }
.rs-lead { font-size: 19px; line-height: 1.55; color: var(--body); }
.gbl a.rs-more { flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 10px 0; color: var(--pb-700); font-size: 16px; font-weight: 600; }
.gbl a.rs-more:hover { color: var(--pb-800); }
.rs-more .rs-ico { width: 16px; height: 16px; transition: transform .2s var(--ease); }
.rs-more:hover .rs-ico { transform: translateX(3px); }

/* =========================================================================
   The card (every list on these pages)
   ========================================================================= */
.rs-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 24px; }
.rs-grid > li { min-width: 0; display: flex; }
.rs-card { position: relative; display: flex; flex-direction: column; width: 100%; border-radius: 20px; background: #fff; box-shadow: var(--rs-card); overflow: hidden; transition: transform .3s var(--ease), box-shadow .3s; }
.rs-card:hover { transform: translateY(-3px); box-shadow: var(--rs-lift); }
.rs-card:focus-within { box-shadow: var(--rs-lift); }
.rs-card-media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--pb-50); }
.rs-card-img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.rs-card:hover .rs-card-img { transform: scale(1.035); }
/* eBook covers: the book on a tinted panel */
.rs-card.is-cover .rs-card-media { background: linear-gradient(160deg, var(--t-ebook-bg), #e9e0ff); }
.rs-card.is-cover .rs-card-img { position: absolute; top: 9%; left: 50%; width: auto; height: 82%; max-width: 80%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 4px 8px 8px 4px; box-shadow: 0 14px 26px -12px rgba(40, 20, 90, .55); transform: translateX(-50%); }
.rs-card.is-cover:hover .rs-card-img { transform: translateX(-50%) translateY(-4px) rotate(-1.5deg); }
.rs-card-body { flex: 1; display: flex; flex-direction: column; gap: 10px; padding: 20px 22px 20px; }
.rs-card-k { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 13px; line-height: 1.2; }
.rs-type { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 8px; border-radius: 999px; background: var(--tb); color: var(--tc); font-weight: 600; font-size: 12.5px; letter-spacing: .01em; }
.rs .rs-type .rs-ico { width: 14px; height: 14px; }
.rs-type.is-article { --tb: var(--t-article-bg); --tc: var(--t-article); }
.rs-type.is-state { --tb: var(--t-state-bg); --tc: var(--t-state); }
.rs-type.is-ebook { --tb: var(--t-ebook-bg); --tc: var(--t-ebook); }
.rs-type.is-case { --tb: var(--t-case-bg); --tc: var(--t-case); }
/* the type chips on cards: the icon as a CSS mask (one copy here instead of one inline SVG per card) */
.rs-type.is-mask::before { content: ""; width: 14px; height: 14px; flex: none; background: currentColor; -webkit-mask: var(--m) center / contain no-repeat; mask: var(--m) center / contain no-repeat; }
.rs-type.is-mask.is-article { --m: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20d%3D%22M216%2C40H40A16%2C16%2C0%2C0%2C0%2C24%2C56V200a16%2C16%2C0%2C0%2C0%2C16%2C16H216a16%2C16%2C0%2C0%2C0%2C16-16V56A16%2C16%2C0%2C0%2C0%2C216%2C40Zm0%2C160H40V56H216V200ZM184%2C96a8%2C8%2C0%2C0%2C1-8%2C8H80a8%2C8%2C0%2C0%2C1%2C0-16h96A8%2C8%2C0%2C0%2C1%2C184%2C96Zm0%2C32a8%2C8%2C0%2C0%2C1-8%2C8H80a8%2C8%2C0%2C0%2C1%2C0-16h96A8%2C8%2C0%2C0%2C1%2C184%2C128Zm0%2C32a8%2C8%2C0%2C0%2C1-8%2C8H80a8%2C8%2C0%2C0%2C1%2C0-16h96A8%2C8%2C0%2C0%2C1%2C184%2C160Z%22%2F%3E%3C%2Fsvg%3E"); }
.rs-type.is-mask.is-state { --m: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20d%3D%22M243.32%2C116.69l-16-16a16%2C16%2C0%2C0%2C0-20.84-1.53L156.84%2C49.52a16%2C16%2C0%2C0%2C0-1.52-20.84l-16-16a16%2C16%2C0%2C0%2C0-22.63%2C0l-64%2C64a16%2C16%2C0%2C0%2C0%2C0%2C22.63l16%2C16a16%2C16%2C0%2C0%2C0%2C20.83%2C1.52L96.69%2C124%2C31.31%2C189.38A25%2C25%2C0%2C0%2C0%2C66.63%2C224.7L132%2C159.32l7.17%2C7.16a16%2C16%2C0%2C0%2C0%2C1.52%2C20.84l16%2C16a16%2C16%2C0%2C0%2C0%2C22.63%2C0l64-64A16%2C16%2C0%2C0%2C0%2C243.32%2C116.69ZM80%2C104%2C64%2C88l64-64%2C16%2C16ZM55.32%2C213.38a9%2C9%2C0%2C0%2C1-12.69%2C0%2C9%2C9%2C0%2C0%2C1%2C0-12.68L108%2C135.32%2C120.69%2C148ZM101%2C105.66%2C145.66%2C61%2C195%2C110.34%2C150.35%2C155ZM168%2C192l-16-16%2C4-4h0l56-56h0l4-4%2C16%2C16Z%22%2F%3E%3C%2Fsvg%3E"); }
.rs-type.is-mask.is-ebook { --m: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20d%3D%22M232%2C48H160a40%2C40%2C0%2C0%2C0-32%2C16A40%2C40%2C0%2C0%2C0%2C96%2C48H24a8%2C8%2C0%2C0%2C0-8%2C8V200a8%2C8%2C0%2C0%2C0%2C8%2C8H96a24%2C24%2C0%2C0%2C1%2C24%2C24%2C8%2C8%2C0%2C0%2C0%2C16%2C0%2C24%2C24%2C0%2C0%2C1%2C24-24h72a8%2C8%2C0%2C0%2C0%2C8-8V56A8%2C8%2C0%2C0%2C0%2C232%2C48ZM96%2C192H32V64H96a24%2C24%2C0%2C0%2C1%2C24%2C24V200A39.81%2C39.81%2C0%2C0%2C0%2C96%2C192Zm128%2C0H160a39.81%2C39.81%2C0%2C0%2C0-24%2C8V88a24%2C24%2C0%2C0%2C1%2C24-24h64ZM160%2C88h40a8%2C8%2C0%2C0%2C1%2C0%2C16H160a8%2C8%2C0%2C0%2C1%2C0-16Zm48%2C40a8%2C8%2C0%2C0%2C1-8%2C8H160a8%2C8%2C0%2C0%2C1%2C0-16h40A8%2C8%2C0%2C0%2C1%2C208%2C128Zm0%2C32a8%2C8%2C0%2C0%2C1-8%2C8H160a8%2C8%2C0%2C0%2C1%2C0-16h40A8%2C8%2C0%2C0%2C1%2C208%2C160Z%22%2F%3E%3C%2Fsvg%3E"); }
.rs-type.is-mask.is-case { --m: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20256%20256%22%3E%3Cpath%20d%3D%22M225.86%2C102.82c-3.77-3.94-7.67-8-9.14-11.57-1.36-3.27-1.44-8.69-1.52-13.94-.15-9.76-.31-20.82-8-28.51s-18.75-7.85-28.51-8c-5.25-.08-10.67-.16-13.94-1.52-3.56-1.47-7.63-5.37-11.57-9.14C146.28%2C23.51%2C138.44%2C16%2C128%2C16s-18.27%2C7.51-25.18%2C14.14c-3.94%2C3.77-8%2C7.67-11.57%2C9.14C88%2C40.64%2C82.56%2C40.72%2C77.31%2C40.8c-9.76.15-20.82.31-28.51%2C8S41%2C67.55%2C40.8%2C77.31c-.08%2C5.25-.16%2C10.67-1.52%2C13.94-1.47%2C3.56-5.37%2C7.63-9.14%2C11.57C23.51%2C109.72%2C16%2C117.56%2C16%2C128s7.51%2C18.27%2C14.14%2C25.18c3.77%2C3.94%2C7.67%2C8%2C9.14%2C11.57%2C1.36%2C3.27%2C1.44%2C8.69%2C1.52%2C13.94.15%2C9.76.31%2C20.82%2C8%2C28.51s18.75%2C7.85%2C28.51%2C8c5.25.08%2C10.67.16%2C13.94%2C1.52%2C3.56%2C1.47%2C7.63%2C5.37%2C11.57%2C9.14C109.72%2C232.49%2C117.56%2C240%2C128%2C240s18.27-7.51%2C25.18-14.14c3.94-3.77%2C8-7.67%2C11.57-9.14%2C3.27-1.36%2C8.69-1.44%2C13.94-1.52%2C9.76-.15%2C20.82-.31%2C28.51-8s7.85-18.75%2C8-28.51c.08-5.25.16-10.67%2C1.52-13.94%2C1.47-3.56%2C5.37-7.63%2C9.14-11.57C232.49%2C146.28%2C240%2C138.44%2C240%2C128S232.49%2C109.73%2C225.86%2C102.82Zm-11.55%2C39.29c-4.79%2C5-9.75%2C10.17-12.38%2C16.52-2.52%2C6.1-2.63%2C13.07-2.73%2C19.82-.1%2C7-.21%2C14.33-3.32%2C17.43s-10.39%2C3.22-17.43%2C3.32c-6.75.1-13.72.21-19.82%2C2.73-6.35%2C2.63-11.52%2C7.59-16.52%2C12.38S132%2C224%2C128%2C224s-9.15-4.92-14.11-9.69-10.17-9.75-16.52-12.38c-6.1-2.52-13.07-2.63-19.82-2.73-7-.1-14.33-.21-17.43-3.32s-3.22-10.39-3.32-17.43c-.1-6.75-.21-13.72-2.73-19.82-2.63-6.35-7.59-11.52-12.38-16.52S32%2C132%2C32%2C128s4.92-9.15%2C9.69-14.11%2C9.75-10.17%2C12.38-16.52c2.52-6.1%2C2.63-13.07%2C2.73-19.82.1-7%2C.21-14.33%2C3.32-17.43S70.51%2C56.9%2C77.55%2C56.8c6.75-.1%2C13.72-.21%2C19.82-2.73%2C6.35-2.63%2C11.52-7.59%2C16.52-12.38S124%2C32%2C128%2C32s9.15%2C4.92%2C14.11%2C9.69%2C10.17%2C9.75%2C16.52%2C12.38c6.1%2C2.52%2C13.07%2C2.63%2C19.82%2C2.73%2C7%2C.1%2C14.33.21%2C17.43%2C3.32s3.22%2C10.39%2C3.32%2C17.43c.1%2C6.75.21%2C13.72%2C2.73%2C19.82%2C2.63%2C6.35%2C7.59%2C11.52%2C12.38%2C16.52S224%2C124%2C224%2C128%2C219.08%2C137.15%2C214.31%2C142.11ZM173.66%2C98.34a8%2C8%2C0%2C0%2C1%2C0%2C11.32l-56%2C56a8%2C8%2C0%2C0%2C1-11.32%2C0l-24-24a8%2C8%2C0%2C0%2C1%2C11.32-11.32L112%2C148.69l50.34-50.35A8%2C8%2C0%2C0%2C1%2C173.66%2C98.34Z%22%2F%3E%3C%2Fsvg%3E"); }
.rs-card-topic { color: var(--muted); font-weight: 600; }
.gbl a.rs-card-topic { color: var(--muted); }
.gbl a.rs-card-topic:hover { color: var(--pb-700); }
.gbl .rs-card-t { font-size: 20px; line-height: 1.3; font-weight: 600; color: var(--ink); text-wrap: pretty; }
.gbl .rs-card-t a { color: inherit; }
.gbl .rs-card-t a::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.gbl .rs-card-t a:focus-visible { outline: 0; }
.gbl .rs-card-t a:focus-visible::after { outline: 3px solid var(--focus); outline-offset: -3px; border-radius: 20px; }
.rs-card:hover .rs-card-t { color: var(--pb-700); }
.rs-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: auto; padding-top: 6px; font-size: 13px; line-height: 1.3; color: var(--muted); }
.rs-meta-a { color: var(--ink); font-weight: 600; }
.rs-av { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; flex: none; background: var(--pb-50); }
.rs-av.is-initials, .rs-by-av.is-initials, .rs-author-av.is-initials { display: grid; place-items: center; background: var(--pb-100); color: var(--pb-800); font-size: 10px; font-weight: 600; }
/* lead card (editor's picks, library hero) */
.rs-card.is-lead .rs-card-media { aspect-ratio: 16 / 9; }
.rs-card.is-lead .rs-card-body { padding: 26px 30px 28px; gap: 12px; }
.gbl .rs-card.is-lead .rs-card-t { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.22; }

/* =========================================================================
   Hub sections
   ========================================================================= */
.rs-picks-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px; }
.rs-picks-side { display: grid; grid-template-rows: 1fr 1fr; gap: 24px; min-width: 0; }
.rs-picks-side .rs-card { flex-direction: row; }
.rs-picks-side .rs-card-media { flex: 0 0 42%; aspect-ratio: auto; }
.rs-picks-side .rs-card-body { padding: 22px 24px; }

.rs-tabs { display: flex; gap: 8px; margin: -12px 0 28px; overflow-x: auto; scrollbar-width: none; padding: 2px; }
.rs-tabs::-webkit-scrollbar { display: none; }
.gbl a.rs-tab, .gbl button.rs-tab { flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); color: var(--ink); font-size: 15px; font-weight: 600; transition: background .2s, box-shadow .2s, color .2s; }
.gbl a.rs-tab:hover, .gbl button.rs-tab:hover { color: var(--pb-700); box-shadow: inset 0 0 0 1px var(--pb-200); background: #fff; }
.gbl .rs-tab[aria-selected="true"], .gbl .rs-tab[aria-selected="true"]:hover { background: var(--ink); color: #fff; box-shadow: none; }
/* Browse by category (SEO CS-07): the tab pills as plain links, wrapping */
.rs-browse-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 2px; list-style: none; }
.gbl-home2 .rs-lib-browse.rs-sec.gbl-sec { padding: 0 0 96px; }
.rs-tab-n { min-width: 26px; padding: 3px 7px; border-radius: 999px; background: var(--bg); color: var(--muted); font-size: 12px; text-align: center; line-height: 1.2; }
.rs-tab[aria-selected="true"] .rs-tab-n { background: rgba(255, 255, 255, .16); color: #fff; }
.gbl-js [data-rs-panel]:not([hidden]) > .rs-grid > li { animation: rs-in .5s var(--ease) both; animation-delay: calc(var(--k, 0) * 50ms); }
@keyframes rs-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }

/* state laws band: the one dark card on the page */
.rs-states-card { position: relative; overflow: hidden; isolation: isolate; display: grid; grid-template-columns: minmax(0, 480px) minmax(0, 1fr); gap: 56px; align-items: center; padding: 64px 64px 64px 72px; border-radius: var(--r-xl); background: linear-gradient(150deg, #1c3a94 0%, #2256d3 55%, #2a6be6 100%); color: #fff; }
.rs-states-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(45% 60% at 85% 10%, rgba(150, 185, 255, .35), transparent 70%), radial-gradient(50% 60% at 10% 110%, rgba(16, 32, 100, .55), transparent 70%); }
.rs-states-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.rs-states-card .hx-eyebrow { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .2); color: #d6e4ff; }
.gbl .rs-states-card h2 { color: #fff; }
.rs-states-card h2 span { color: #cfdfff; }
.rs-states-card .rs-lead { color: #e3ecff; }
.rs-st-ab { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: #fff; color: var(--pb-800); font-size: 14px; font-weight: 600; letter-spacing: .02em; }
.gbl .rs-states-card a.gbl-btn-soft.rs-btn { background: #fff; border-color: #fff; color: var(--pb-800); }
.gbl .rs-states-card a.gbl-btn-soft.rs-btn:hover { background: var(--pb-50); color: var(--pb-800); }

/* state picker (a <select> that opens the guide) */
.rs-pick { position: relative; display: flex; align-items: center; width: 100%; max-width: 380px; }
.gbl .rs-pick select { width: 100%; height: 52px; margin: 0; padding: 0 44px 0 46px; border: 0; border-radius: 14px; background: #fff; box-shadow: 0 0 0 1px var(--pb-100); color: var(--ink); font: inherit; font-size: 16px; font-weight: 600; -webkit-appearance: none; appearance: none; cursor: pointer; }
.gbl .rs-pick select:focus-visible { outline: 3px solid #96c8fa; outline-offset: 2px; }
.rs .rs-pick-ico { position: absolute; left: 16px; width: 20px; height: 20px; color: var(--pb-600); pointer-events: none; }
.rs .rs-pick-car { position: absolute; right: 16px; width: 16px; height: 16px; color: var(--muted); pointer-events: none; }

/* the tile map */
.rs-map { min-width: 0; }
.rs-map-grid { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: clamp(4px, .5vw, 7px); }
.rs-tile { grid-column: calc(var(--c) + 1); grid-row: calc(var(--r) + 1); position: relative; display: grid; place-items: center; aspect-ratio: 1; border-radius: clamp(6px, .7vw, 10px); font-size: clamp(10px, .9vw, 13px); font-weight: 600; letter-spacing: .02em; line-height: 1; background: #fff; color: #a8b3c4; box-shadow: inset 0 0 0 1px var(--line); user-select: none; }
.gbl a.rs-tile.is-on { background: var(--pb-600); color: #fff; box-shadow: 0 8px 16px -10px rgba(24, 50, 140, .8); transition: transform .25s var(--ease), background .2s; z-index: 1; }
.gbl a.rs-tile.is-on:hover, .gbl a.rs-tile.is-on:focus-visible { background: var(--pb-900); color: #fff; transform: translateY(-3px) scale(1.06); z-index: 3; }
.rs-tile.is-two::before { content: ""; position: absolute; right: 12%; bottom: 12%; width: 22%; height: 22%; border-radius: 3px; background: rgba(255, 255, 255, .55); }
/* the state's name, above the tile on hover / focus */
.rs-tile[data-tip]:hover > .rs-tip, .rs-tile[data-tip]:focus-visible > .rs-tip { opacity: 1; transform: translate(-50%, 0); }
/* a hit area of at least 24 × 24 px round a small tile (the map at ≤ 360 px; SEO S11, P-13), invisible */
.rs-hit { position: absolute; inset: min(0px, calc(50% - 12px)); }
.rs-tip { position: absolute; bottom: calc(100% + 8px); left: 50%; z-index: 5; padding: 6px 10px; border-radius: 8px; background: var(--ink); color: #fff; font-size: 13px; font-weight: 600; letter-spacing: 0; white-space: nowrap; pointer-events: none; opacity: 0; transform: translate(-50%, 4px); transition: opacity .15s, transform .15s; }
.rs-map-key { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin-top: 18px; font-size: 13px; color: var(--muted); }
.rs-map-sw { width: 12px; height: 12px; border-radius: 3px; background: var(--pb-600); }
.rs-map-sw.is-two { position: relative; }
.rs-map-sw.is-two::after { content: ""; position: absolute; right: 2px; bottom: 2px; width: 4px; height: 4px; border-radius: 1px; background: rgba(255, 255, 255, .7); }
.rs-map-sw:not(:first-child) { margin-left: 12px; }
/* on the blue band */
.rs-states-card .rs-tile { background: rgba(255, 255, 255, .07); color: rgba(255, 255, 255, .38); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); }
.gbl .rs-states-card a.rs-tile.is-on { background: #fff; color: var(--pb-800); box-shadow: 0 10px 20px -12px rgba(8, 20, 70, .8); }
.gbl .rs-states-card a.rs-tile.is-on:hover, .gbl .rs-states-card a.rs-tile.is-on:focus-visible { background: #ffe9bf; color: var(--pb-900); }
.rs-states-card .rs-tile.is-two::before { background: var(--pb-200); }
.rs-states-card .rs-map-key { color: #d6e4ff; }
.rs-states-card .rs-map-sw { background: #fff; }
.rs-states-card .rs-map-sw.is-two::after { background: var(--pb-200); }
.rs-states-card .rs-tip { background: #fff; color: var(--ink); }
.rs-states-card .rs-pick select { box-shadow: none; }

/* eBook shelf */
.rs-shelf { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 28px 24px; }
.rs-shelf-i { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.gbl a.rs-shelf-cover { display: grid; place-items: center; aspect-ratio: 4 / 4.4; margin-bottom: 8px; border-radius: 20px; background: linear-gradient(160deg, var(--t-ebook-bg), #e6dcff); perspective: 800px; }
.rs-shelf-img { width: 64%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 4px 8px 8px 4px; box-shadow: 0 18px 30px -14px rgba(40, 20, 90, .6), inset 3px 0 0 rgba(0, 0, 0, .08); transform: rotateY(-8deg); transition: transform .5s var(--ease); }
.rs-shelf-i:hover .rs-shelf-img { transform: rotateY(0) translateY(-6px); }
.gbl .rs-shelf-t { font-size: 17px; line-height: 1.3; }
.gbl .rs-shelf-t a { color: var(--ink); }
.gbl .rs-shelf-t a:hover { color: var(--pb-700); }

/* case studies */
.rs-cases-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; }
.rs-case { position: relative; display: flex; flex-direction: column; border-radius: 20px; overflow: hidden; background: #fff; box-shadow: var(--rs-card); transition: transform .3s var(--ease), box-shadow .3s; }
.rs-case:hover { transform: translateY(-3px); box-shadow: var(--rs-lift); }
.rs-case-media { aspect-ratio: 4 / 3; overflow: hidden; background: var(--t-case-bg); }
.rs-case-img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.rs-case:hover .rs-case-img { transform: scale(1.04); }
.rs-case-body { display: flex; flex-direction: column; gap: 8px; padding: 16px 18px 20px; }
.rs-case-k { display: flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 600; color: var(--t-case); }
.rs .rs-case-k .rs-ico { width: 14px; height: 14px; }
.gbl .rs-case-t { font-size: 16.5px; line-height: 1.32; }
.gbl .rs-case-t a { color: var(--ink); }
.gbl .rs-case-t a::after { content: ""; position: absolute; inset: 0; }
.rs-case:hover .rs-case-t a { color: var(--pb-700); }

/* quick answers */
.rs-quick-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.gbl a.rs-q { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; height: 100%; padding: 28px 28px 26px; border-radius: 24px; background: #fff; box-shadow: var(--rs-card); color: var(--body); font-size: 15.5px; line-height: 1.5; transition: transform .3s var(--ease), box-shadow .3s; }
.gbl a.rs-q:hover { color: var(--body); transform: translateY(-3px); box-shadow: var(--rs-lift); }
.rs-q-ico { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 6px; border-radius: 14px; background: var(--pb-50); color: var(--pb-700); }
.rs .rs-q-ico .rs-ico { width: 24px; height: 24px; }
.rs-q b { font-size: 20px; font-weight: 600; color: var(--ink); line-height: 1.25; }
.rs-q-eg { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.rs-q-eg i { font-style: normal; font-size: 13px; padding: 4px 10px; border-radius: 999px; background: var(--bg); color: var(--muted); }
.rs-q-go { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; padding-top: 8px; color: var(--pb-700); font-weight: 600; }
.rs .rs-q-go .rs-ico { width: 15px; height: 15px; transition: transform .2s var(--ease); }
.rs-q:hover .rs-q-go .rs-ico { transform: translateX(3px); }

/* =========================================================================
   Library (blog + category archives)
   ========================================================================= */
/* the lead column (topic cards, or the archive's hero card) fills more of the space beside the copy (Earl 2026-10-19) */
.rs-lib-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 560px); gap: 48px; align-items: center; padding: 56px 56px 56px 0; }
.rs-lib-copy { display: flex; flex-direction: column; align-items: flex-start; }
.rs-lib-copy .hx-hero-sub { max-width: 600px; }
/* author archive header (SEO CS-23): photo + role above the name */
.rs-who { display: flex; align-items: center; gap: 14px; margin: 4px 0 14px; }
.rs-who-av { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 3px #fff, 0 12px 28px -14px rgba(24, 50, 140, .55); }
.rs-who-av.is-initials { display: grid; place-items: center; background: var(--pb-100); color: var(--pb-800); font-size: 22px; font-weight: 600; }
.rs-who-r { font-size: 15px; font-weight: 600; color: var(--pb-700); }
.gbl .rs-who-team { color: var(--pb-700); font-weight: 600; white-space: nowrap; }
.gbl .rs-who-team:hover { color: var(--pb-800); }
.gbl a.rs-who-li { display: inline-grid; place-items: center; width: 44px; height: 44px; margin-left: -10px; border-radius: 50%; color: var(--pb-700); text-decoration: none; transition: background-color .2s var(--ease), color .2s var(--ease); }
.gbl a.rs-who-li .rs-ico { width: 22px; height: 22px; }
.gbl a.rs-who-li:hover { background: var(--pb-100); color: var(--pb-800); }
.rs-lib-lead { min-width: 0; }
.rs-lib-topics { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
/* the topic tiles are buttons (a JS filter, not ?topic= URLs: SEO CS-07); the state/glossary tiles stay links */
.gbl a.rs-topic, .gbl button.rs-topic, .gbl button.rs-topic:focus { display: flex; flex-direction: column; gap: 6px; width: 100%; height: 100%; min-height: 128px; padding: 22px 22px 20px; border-radius: 20px; background: #fff; box-shadow: 0 0 0 1px rgba(34, 86, 211, .1), 0 20px 40px -30px rgba(24, 50, 140, .55); color: var(--ink); text-align: left; transition: transform .3s var(--ease), box-shadow .3s; }
/* bb-theme's skin sets ".fl-page button { font-size: 16px; line-height: 1.2 }" below 992px (same specificity as .gbl button,
   later file): the buttons keep what the links inherited */
.gbl button.rs-topic, .gbl button.rs-tab { line-height: inherit; }
.gbl button.rs-topic { font-size: inherit; }
.gbl a.rs-topic:hover, .gbl button.rs-topic:hover { color: var(--ink); background: #fff; transform: translateY(-3px); box-shadow: 0 0 0 1px var(--pb-200), 0 26px 48px -28px rgba(24, 50, 140, .6); }
.rs-topic-ico { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 8px; border-radius: 12px; background: var(--pb-50); color: var(--pb-700); }
.rs .rs-topic-ico .rs-ico { width: 24px; height: 24px; }
.rs-topic b { font-size: 18px; font-weight: 600; line-height: 1.25; }
/* an odd last card (the blog's HOA glossary) spans the row, icon beside its name */
.rs-lib-topics li:last-child:nth-child(odd) { grid-column: 1 / -1; }
.gbl .rs-lib-topics li:last-child:nth-child(odd) .rs-topic { flex-direction: row; align-items: center; gap: 14px; min-height: 0; }
.rs-lib-topics li:last-child:nth-child(odd) .rs-topic-ico { margin-bottom: 0; }
.rs-lib-lead-k { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; font-size: 13px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--pb-700); }
.rs .rs-lib-lead-k .rs-ico { width: 15px; height: 15px; }
.rs-lib-lead .rs-card { box-shadow: 0 0 0 1px rgba(34, 86, 211, .1), 0 30px 60px -34px rgba(24, 50, 140, .6); }
.rs-lib-lead .rs-card-media { aspect-ratio: 16 / 9; }
.rs-lib-lead .rs-card.is-cover .rs-card-media { aspect-ratio: 16 / 8; }
.gbl .rs-lib-lead .rs-card-t { font-size: 22px; }
.gbl-home2 .rs-lib-body.rs-sec { padding: 40px 0 96px; }
.rs-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 20px; margin: 0 0 18px; padding: 0; }
.rs-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; border: 0; min-width: 0; }
.rs-chip { position: relative; cursor: pointer; }
.rs-chip input { position: absolute; opacity: 0; pointer-events: none; }
.rs-chip span { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); color: var(--ink); font-size: 15px; font-weight: 600; transition: background .2s, box-shadow .2s, color .2s; }
.rs-chip i { font-style: normal; min-width: 26px; padding: 3px 7px; border-radius: 999px; background: var(--bg); color: var(--muted); font-size: 12px; text-align: center; line-height: 1.2; }
.rs-chip:hover span { box-shadow: inset 0 0 0 1px var(--pb-200); color: var(--pb-700); }
.rs-chip input:checked + span { background: var(--ink); color: #fff; box-shadow: none; }
.rs-chip input:checked + span i { background: rgba(255, 255, 255, .16); color: #fff; }
.rs-chip input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 2px; }
.rs-bar-r { display: flex; flex-wrap: wrap; gap: 10px; }
.rs-sel { position: relative; display: flex; align-items: center; }
.gbl .rs-sel select { height: 44px; margin: 0; padding: 0 38px 0 40px; border: 0; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); color: var(--ink); font: inherit; font-size: 15px; font-weight: 600; -webkit-appearance: none; appearance: none; cursor: pointer; }
.gbl .rs-sel select:hover { box-shadow: inset 0 0 0 1px var(--pb-200); }
.gbl .rs-sel select:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.rs .rs-sel-ico { position: absolute; left: 14px; width: 17px; height: 17px; color: var(--muted); pointer-events: none; }
.rs .rs-sel-car { position: absolute; right: 14px; width: 14px; height: 14px; color: var(--muted); pointer-events: none; }
.rs-status-row { display: flex; align-items: center; gap: 14px; min-height: 36px; margin-bottom: 18px; }
.rs-status { font-size: 15px; color: var(--muted); }
.rs-status b { color: var(--ink); font-weight: 600; }
.gbl button.rs-reset { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px 6px 10px; border-radius: 999px; background: var(--bg); color: var(--ink); font-size: 14px; font-weight: 600; }
.gbl button.rs-reset:hover { background: var(--pb-50); color: var(--pb-700); }
.rs .rs-reset .rs-ico { width: 14px; height: 14px; }
.rs-lib-list > li[hidden] { display: none; }
.rs-empty { max-width: 560px; margin: 24px auto 0; padding: 40px 32px; border-radius: 24px; background: #fff; box-shadow: var(--rs-card); text-align: center; font-size: 16px; color: var(--body); }
.rs-empty-ico { display: inline-grid; place-items: center; width: 56px; height: 56px; margin-bottom: 14px; border-radius: 16px; background: var(--pb-50); color: var(--pb-700); }
.rs .rs-empty-ico .rs-ico { width: 26px; height: 26px; }
.rs-empty-h { margin-bottom: 8px; font-size: 20px; font-weight: 600; color: var(--ink); }
.gbl .rs-empty a, .gbl .rs-empty button { color: var(--pb-700); font-weight: 600; }
.rs-more-row { display: flex; justify-content: center; margin-top: 40px; }
.rs-more-n { font-weight: 400; color: var(--muted); }

/* =========================================================================
   State Laws page
   ========================================================================= */
.rs-states-grid { display: grid; grid-template-columns: minmax(0, 500px) minmax(0, 1fr); gap: 64px; align-items: center; padding: 64px 64px 64px 0; }
.rs-states-hero-copy { display: flex; flex-direction: column; align-items: flex-start; }
.rs-states-hero-copy .rs-pick { margin-top: 30px; }
.rs-hero-states .rs-map { padding: 28px; border-radius: 28px; background: rgba(255, 255, 255, .6); box-shadow: 0 0 0 1px var(--pb-100); }
.gbl-home2 .rs-st-sec.rs-sec { padding: 56px 0 96px; }
.rs-az { position: sticky; top: calc(var(--rs-head) + 8px); z-index: 4; display: flex; gap: 8px; margin: 0 0 32px; padding: 10px; overflow-x: auto; scrollbar-width: none; border-radius: 16px; background: rgba(245, 247, 250, .9); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 0 0 1px var(--line); }
.rs-az::-webkit-scrollbar { display: none; }
.gbl .rs-az a { flex: none; padding: 8px 14px; border-radius: 10px; color: var(--ink); font-size: 14px; font-weight: 600; white-space: nowrap; }
.gbl .rs-az a:hover { background: #fff; color: var(--pb-700); }
.rs-st-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.rs-st { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 32px; padding: 32px 0; border-top: 1px solid var(--line); }
.rs-st:first-child { border-top: 0; padding-top: 0; }
.rs-st-head { display: flex; align-items: center; gap: 14px; align-self: start; position: sticky; top: calc(var(--rs-head) + 96px); }
.rs-st-head .rs-st-ab { width: 52px; height: 52px; border-radius: 14px; background: var(--pb-600); color: #fff; font-size: 17px; }
.gbl .rs-st-h { font-size: 26px; line-height: 1.2; }
.rs-badge { padding: 4px 9px; border-radius: 999px; background: #fff4e0; color: var(--t-state); font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.rs-st-guides { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.rs-sg { position: relative; display: grid; grid-template-columns: 240px minmax(0, 1fr); border-radius: 20px; overflow: hidden; background: #fff; box-shadow: var(--rs-card); transition: transform .3s var(--ease), box-shadow .3s; }
.rs-sg:hover { transform: translateY(-2px); box-shadow: var(--rs-lift); }
.rs-sg-media { background: var(--pb-50); }
.rs-sg-img { width: 100%; height: 100%; object-fit: cover; }
.rs-sg-body { display: flex; flex-direction: column; gap: 8px; padding: 22px 26px; }
.rs-sg-k { font-size: 13px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--t-state); }
.gbl .rs-sg-t { font-size: 21px; line-height: 1.3; }
.gbl .rs-sg-t a { color: var(--ink); }
.gbl .rs-sg-t a::after { content: ""; position: absolute; inset: 0; }
.rs-sg:hover .rs-sg-t a { color: var(--pb-700); }
.rs-sg-d { font-size: 15.5px; line-height: 1.55; color: var(--body); }

/* =========================================================================
   Single post
   ========================================================================= */
.rs-progress { position: fixed; top: 0; left: 0; right: 0; z-index: 1001; height: 3px; pointer-events: none; }
.rs-progress span { display: block; height: 100%; width: 100%; background: linear-gradient(90deg, var(--pb-600), #5b8cff); transform: scaleX(0); transform-origin: 0 50%; }
.rs-post-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: 56px; align-items: center; padding: 56px 56px 56px 0; }
.rs-post.is-ebook .rs-post-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 400px); }
.rs-post-copy { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
.rs-post-copy .rs-card-k { margin-top: 6px; }
.gbl .rs-h1 { font-size: clamp(34px, 3.3vw, 50px); line-height: 1.12; color: var(--ink); text-wrap: balance; }
.rs-dek { max-width: 640px; font-size: 20px; line-height: 1.55; color: var(--body); }
.rs-by { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 14px; row-gap: 2px; align-items: center; margin-top: 6px; }
.rs-by-av { grid-row: span 2; width: 48px; height: 48px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 3px #fff; }
.rs-by-txt { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; font-size: 16px; }
.rs-by-n { font-weight: 600; color: var(--ink); }
.gbl .rs-by-n a { color: var(--ink); }
.gbl .rs-by-n a:hover { color: var(--pb-700); }
.rs-by-r { font-size: 14px; color: var(--muted); }
.rs-by-m { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; font-size: 14px; color: var(--muted); }
.rs .rs-by-m .rs-ico { width: 15px; height: 15px; margin-right: -2px; }
.rs-hero-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; }
.rs-hero-img { min-width: 0; }
.rs-hero-pic { width: 100%; height: auto; object-fit: cover; border-radius: 24px; box-shadow: 0 0 0 1px rgba(34, 86, 211, .1), 0 30px 60px -34px rgba(24, 50, 140, .6); }
.rs-cover { display: grid; place-items: center; padding: 20px 0; perspective: 1000px; }
.rs-cover-img { width: min(100%, 300px); height: auto; object-fit: cover; border-radius: 6px 12px 12px 6px; box-shadow: 0 40px 60px -30px rgba(40, 20, 90, .6), 0 0 0 1px rgba(40, 20, 90, .06); transform: rotateY(-10deg) rotateX(2deg); transition: transform .8s var(--ease); }
.rs-cover:hover .rs-cover-img { transform: none; }
.rs-video { position: relative; overflow: hidden; border-radius: 24px; aspect-ratio: 3 / 2; background: #0e1a33; box-shadow: 0 30px 60px -34px rgba(24, 50, 140, .6); }
.rs-video img, .rs-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.gbl a.rs-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: inline-flex; align-items: center; gap: 12px; padding: 10px 22px 10px 10px; border-radius: 999px; background: rgba(255, 255, 255, .94); color: var(--ink); font-size: 16px; font-weight: 600; box-shadow: 0 16px 36px -14px rgba(0, 0, 0, .5); transition: transform .25s var(--ease), background .2s; }
.gbl a.rs-play:hover { color: var(--ink); background: #fff; transform: translate(-50%, -50%) scale(1.04); }
.rs .rs-play-ico { width: 44px; height: 44px; padding: 12px; border-radius: 50%; background: var(--pb-600); color: #fff; }

/* reading layout: contents + share | article | CTA */
.rs-read { display: grid; grid-template-columns: 240px minmax(0, 720px) 250px; justify-content: space-between; gap: 48px; padding-top: 64px; padding-bottom: 24px; }
.rs-rail, .rs-rail-r { min-width: 0; }
.rs-rail-in, .rs-side-cta { position: sticky; top: calc(var(--rs-head) + 24px); }
.rs-rail-in { display: flex; flex-direction: column; gap: 28px; max-height: calc(100vh - var(--rs-head) - 48px); overflow: auto; scrollbar-width: thin; padding: 2px 4px 2px 2px; }
.rs-toc-h, .rs-share-h, .rs-facts-h { margin-bottom: 12px; font-size: 13px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--muted); }
.rs-toc ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--line); }
.gbl .rs-toc a { display: block; margin-left: -2px; padding: 7px 0 7px 16px; border-left: 2px solid transparent; color: var(--body); font-size: 14.5px; line-height: 1.4; transition: color .2s, border-color .2s; }
.gbl .rs-toc a:hover { color: var(--ink); }
.gbl .rs-toc a[aria-current="true"] { color: var(--ink); font-weight: 600; border-left-color: var(--pb-600); }
.rs-share ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; }
.gbl .rs-sh { position: relative; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #fff; box-shadow: inset 0 0 0 1px var(--line); color: var(--ink); transition: box-shadow .2s, color .2s, transform .2s var(--ease); }
.gbl .rs-sh:hover { color: var(--pb-700); box-shadow: inset 0 0 0 1px var(--pb-200); transform: translateY(-2px); background: #fff; }
.rs-sh .rs-ico { width: 18px; height: 18px; }
.rs-sh-tip { position: absolute; bottom: calc(100% + 6px); left: 50%; padding: 4px 8px; border-radius: 6px; background: var(--ink); color: #fff; font-size: 12px; white-space: nowrap; opacity: 0; transform: translate(-50%, 4px); transition: opacity .15s, transform .15s; pointer-events: none; }
.rs-sh.is-done .rs-sh-tip { opacity: 1; transform: translate(-50%, 0); }
.rs-side-cta { display: flex; flex-direction: column; gap: 12px; padding: 22px; border-radius: 20px; background: linear-gradient(160deg, #f5f9ff, var(--pb-50)); box-shadow: inset 0 0 0 1px var(--pb-100); }
.rs-side-cta-k { display: flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; color: var(--pb-700); }
.rs .rs-side-cta-k .rs-ico { width: 15px; height: 15px; }
.rs-side-cta-t { font-size: 18px; font-weight: 600; line-height: 1.35; color: var(--ink); }
.rs-side-cta .gbl-btn { width: 100%; min-height: 48px; padding: 0 16px; }
.rs-side-cta-n { font-size: 13px; line-height: 1.4; color: var(--muted); }
/* case studies: the ACF facts where the contents list would be */
.rs-facts { padding: 22px; border-radius: 20px; background: #fff; box-shadow: var(--rs-card); }
.rs-facts dl { margin: 0; display: flex; flex-direction: column; gap: 14px; }
.rs-facts dt { display: flex; align-items: center; gap: 6px; margin-bottom: 2px; font-size: 13px; font-weight: 600; color: var(--muted); }
.rs .rs-facts dt .rs-ico { width: 15px; height: 15px; color: var(--t-case); }
.rs-facts dd { margin: 0; font-size: 15.5px; line-height: 1.45; color: var(--ink); font-weight: 600; }
.rs-facts-r { margin: 18px 0 10px; padding-top: 16px; border-top: 1px solid var(--line-2); font-size: 14.5px; font-weight: 600; color: var(--ink); line-height: 1.4; }
.rs-facts-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14.5px; line-height: 1.45; color: var(--body); }
.rs-facts-list li { display: flex; gap: 8px; }
.rs .rs-facts-list .rs-ico { width: 17px; height: 17px; margin-top: 1px; color: var(--t-case); }
.rs-facts.is-inline { display: none; margin-bottom: 32px; }

.rs-article { min-width: 0; }
.rs-toc-m { display: none; }
.rs-expand { margin: 0 0 20px; }
.gbl .rs-expand button { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); color: var(--ink); font-size: 14px; font-weight: 600; }
.gbl .rs-expand button:hover { color: var(--pb-700); box-shadow: inset 0 0 0 1px var(--pb-200); background: #fff; }

/* the prose: live Gutenberg HTML, verbatim. Serif body, Proxima headings */
.rs-prose { font-family: 'Source Serif 4', 'Source Serif Pro', Georgia, 'Times New Roman', serif; font-optical-sizing: auto; font-size: 19px; line-height: 1.72; color: var(--rs-read); font-feature-settings: 'kern', 'liga', 'onum' 0; }
.rs-prose > :first-child { margin-top: 0 !important; }
.gbl .rs-prose p { margin: 0 0 1.1em; }
.gbl .rs-prose :is(h2, h3, h4) { font-family: 'Proxima Nova', Verdana, Arial, sans-serif; color: var(--ink); font-weight: 600; padding: 0; }
.gbl .rs-prose h2 { margin: 2.1em 0 .6em; font-size: 30px !important; line-height: 1.22; }
.gbl .rs-prose h3 { margin: 1.7em 0 .5em; font-size: 22px; line-height: 1.3; }
.gbl .rs-prose h4 { margin: 1.5em 0 .4em; font-size: 19px; line-height: 1.35; }
.gbl .rs-prose h2 strong, .gbl .rs-prose h3 strong { font-weight: 600; }
.gbl .rs-prose a, .gbl .rs-prose a:visited { color: var(--pb-700); font-weight: 600; }
.gbl .rs-prose a:hover { color: var(--pb-800); }
.gbl .rs-prose strong, .gbl .rs-prose b { font-weight: 600; color: var(--ink); }
.gbl .rs-prose :is(ul, ol) { margin: 0 0 1.2em; padding-left: 1.4em; }
.gbl .rs-prose ul { list-style: none; }
.gbl .rs-prose ol { list-style: decimal; }
.gbl .rs-prose li { position: relative; margin: 0 0 .45em; padding-left: .2em; }
.gbl .rs-prose ul > li::before { content: ""; position: absolute; left: -1.05em; top: .72em; width: 7px; height: 7px; border-radius: 50%; background: var(--pb-600); }
.gbl .rs-prose ol > li::marker { color: var(--pb-700); font-family: 'Proxima Nova', sans-serif; font-weight: 600; }
.gbl .rs-prose figure { margin: 2em 0; }
.gbl .rs-prose img { max-width: 100%; height: auto; border-radius: 16px; }
.gbl .rs-prose figure a img { transition: opacity .2s; }
.gbl .rs-prose figcaption { margin-top: 10px; font-family: 'Proxima Nova', sans-serif; font-size: 14px; color: var(--muted); text-align: center; }
.gbl .rs-prose blockquote { margin: 1.8em 0; padding: 4px 0 4px 26px; border-left: 3px solid var(--pb-600); font-size: 22px; line-height: 1.55; font-style: italic; color: var(--ink); }
.gbl .rs-prose blockquote p:last-child { margin-bottom: 0; }
.gbl .rs-prose .rs-scroll { overflow-x: auto; }
.gbl .rs-prose table { width: 100%; border-collapse: collapse; font-family: 'Proxima Nova', sans-serif; font-size: 15px; }
.gbl .rs-prose :is(th, td) { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
/* Key Takeaways */
.gbl .rs-prose .rs-kt { position: relative; margin: 0 0 2.2em; padding: 28px 32px 22px; border-radius: 20px; background: linear-gradient(160deg, #f5f9ff, var(--pb-50)); box-shadow: inset 0 0 0 1px var(--pb-100); font-family: 'Proxima Nova', Verdana, Arial, sans-serif; font-size: 17px; line-height: 1.55; color: var(--ink); }
.gbl .rs-prose .rs-kt h2 { margin: 0 0 14px; font-size: 14px !important; line-height: 1.2; letter-spacing: .06em; text-transform: uppercase; color: var(--pb-700); }
.rs .rs-kt-ico { position: absolute; top: 22px; right: 24px; width: 28px; height: 28px; color: var(--pb-600); opacity: .55; }
.gbl .rs-prose .rs-kt ul { margin: 0; padding-left: 1.5em; }
.gbl .rs-prose .rs-kt li { margin-bottom: .6em; }
.gbl .rs-prose .rs-kt ul > li::before { top: .5em; left: -1.3em; width: 10px; height: 10px; background: none; border: 2.5px solid var(--pb-600); }
.gbl .rs-prose .rs-kt a { font-weight: 600; }
/* the state guides' bill accordions (wp-block-details inside .post-dropdown-group) */
.gbl .rs-prose .post-dropdown-group { margin: 0 0 12px; }
.gbl .rs-prose details.wp-block-details { border: 0; padding: 0; margin: 0 0 12px; border-radius: 16px; background: #fff; box-shadow: var(--rs-card); transition: box-shadow .2s; }
.gbl .rs-prose details.wp-block-details[open] { box-shadow: 0 0 0 1px var(--pb-200), 0 16px 32px -24px rgba(24, 50, 140, .45); }
.gbl .rs-prose details > summary { position: relative; display: block; padding: 18px 56px 18px 22px; cursor: pointer; list-style: none; font-family: 'Proxima Nova', sans-serif; font-size: 17px; line-height: 1.4; color: var(--ink); }
.gbl .rs-prose details > summary::-webkit-details-marker { display: none; }
.gbl .rs-prose details > summary::after { content: ""; position: absolute; right: 22px; top: 50%; width: 10px; height: 10px; margin-top: -7px; border-right: 2px solid var(--pb-600); border-bottom: 2px solid var(--pb-600); transform: rotate(45deg); transition: transform .25s var(--ease); }
.gbl .rs-prose details[open] > summary::after { transform: rotate(225deg); margin-top: -2px; }
.gbl .rs-prose details > summary:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; border-radius: 16px; }
.gbl .rs-prose details > :not(summary) { margin-left: 22px; margin-right: 22px; }
.gbl .rs-prose details > :last-child { margin-bottom: 20px; }
.gbl .rs-prose details > p { font-size: 17.5px; }
/* FAQ section */
.rs-faq { margin: 0 0 1.4em; border-top: 1px solid var(--line); }
.rs-faq-i { padding: 18px 0 6px; border-bottom: 1px solid var(--line); }
.gbl .rs-prose .rs-faq-i h3 { margin: 0 0 8px; font-size: 19px; }
/* article end */
.rs-post-end { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--line); }
.rs-author { display: flex; align-items: center; gap: 14px; }
.rs-author-av { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.rs-author-k { font-size: 13px; color: var(--muted); }
.rs-author-n { font-size: 17px; font-weight: 600; color: var(--ink); line-height: 1.3; }
.rs-author-n span { display: block; font-size: 14px; font-weight: 400; color: var(--muted); }
.gbl .rs-author-n a { color: var(--ink); }
.gbl .rs-author-n a:hover { color: var(--pb-700); }
.rs-share.is-end { display: flex; align-items: center; gap: 12px; }
.rs-share.is-end .rs-share-h { margin: 0; }
/* after the article */
.rs-next.gbl-sec { margin-top: 64px; padding-top: 72px; background: linear-gradient(#fff0, var(--pb-50) 70%); }
.gbl-home2 .rs-next.rs-sec.gbl-sec { padding: 72px 0 96px; }
.rs-states-more { margin-bottom: 64px; }
.gbl .rs-endh { margin-bottom: 18px; font-size: 24px; }
.rs-st-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.gbl .rs-st-chips a { display: inline-flex; align-items: center; gap: 10px; padding: 6px 16px 6px 6px; border-radius: 14px; background: #fff; box-shadow: var(--rs-card); color: var(--ink); font-size: 15px; font-weight: 600; transition: transform .2s var(--ease), box-shadow .2s; }
.gbl .rs-st-chips a:hover { color: var(--pb-700); transform: translateY(-2px); box-shadow: var(--rs-lift); }
.rs-st-chips .rs-st-ab { width: 34px; height: 34px; border-radius: 9px; background: var(--pb-600); color: #fff; font-size: 13px; }
.rs-st-chips small { font-size: 12px; color: var(--muted); font-weight: 600; }

/* =========================================================================
   State law guides (SD-6875): a reference page, not a marketing one. A full-width grey header band and white
   reading paper (the DoorLoop pattern the ticket points at), a "Laws in this guide" index, law cards with a code chip,
   the inline photos hidden (R-Q12, D13) and "Read the law". The "About this guide" note (.rs-disclaim) is held until its
   copy is reviewed (D13, not rendered). Markup comes from stateProse() in tools/resources2.mjs.
   ========================================================================= */
.rs-post.is-state { --ref: #eceff4; --paper: #fff; }
.rs-hero-ref { position: relative; padding-bottom: 0; background: var(--ref); box-shadow: inset 0 -1px 0 var(--line); }
.rs-hero-ref .gbl-wrap.gbl-wrap-hero { padding: 0 60px; }
.rs-hero-ref .hx-hero-card { background: none; box-shadow: none; border-radius: 0; padding: 0; }
.rs-hero-ref .hx-hero-glow { display: none; }
.rs-hero-ref .rs-post-grid { padding: 48px 0 56px; }
.rs-hero-ref .rs-hero-pic { border-radius: 20px; box-shadow: 0 0 0 1px rgba(28, 39, 55, .08), 0 24px 48px -30px rgba(28, 39, 55, .45); }
.rs-hero-ref .rs-by-av { box-shadow: 0 0 0 3px var(--ref); }
.rs-by-up { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); font-weight: 600; }
.rs-ref-facts { list-style: none; margin: 4px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.rs-ref-facts li { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 14px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); font-size: 14.5px; color: var(--body); }
.rs-ref-facts b { color: var(--ink); font-weight: 600; }
.rs .rs-ref-facts .rs-ico { width: 16px; height: 16px; color: var(--pb-700); }
.gbl .rs-ref-facts a { display: inline-flex; align-items: center; gap: 6px; color: var(--pb-700); font-weight: 600; }
.gbl .rs-ref-facts a:hover { color: var(--pb-800); }
.rs-ref-facts .rs-go { width: 14px; height: 14px; transition: transform .2s var(--ease); }
.rs-ref-facts a:hover .rs-go { transform: translateX(3px); }
/* white paper behind the reading columns, edge to edge */
.rs-post.is-state .rs-read { position: relative; background: var(--paper); box-shadow: 0 0 0 100vmax var(--paper); clip-path: inset(0 -100vmax); padding-bottom: 72px; }
.rs-post.is-state .rs-next.gbl-sec { margin-top: 0; }
.rs-post.is-state .rs-prose .rs-kt { background: #f5f8fd; }

/* contents: the h3 groups under their h2 */
.rs-toc ol ol { border-left: 0; margin: 0 0 4px; }
.gbl .rs-toc ol ol a { padding: 4px 0 4px 28px; font-size: 13.5px; color: var(--muted); }
.gbl .rs-toc ol ol a:hover, .gbl .rs-toc ol ol a[aria-current="true"] { color: var(--ink); }
.rs-toc-m li ul { margin: 6px 0 2px; padding-left: 16px; list-style: disc; }
.rs-toc-m li ul li { padding: 3px 0; font-size: 14px; }
.rs-rail-pick .rs-pick { max-width: none; }
.gbl .rs-rail-pick .rs-pick select { height: 44px; font-size: 14.5px; border-radius: 12px; box-shadow: 0 0 0 1px var(--line); padding-left: 40px; }
.rs-rail-pick .rs-pick-ico { left: 12px; }

/* the law code chip, in the index and on each card */
.rs-law-code { display: inline-block; flex: none; max-width: 100%; padding: 3px 9px; border-radius: 7px; background: var(--pb-50); box-shadow: inset 0 0 0 1px var(--pb-100); color: var(--pb-800); font-family: 'Proxima Nova', Verdana, Arial, sans-serif; font-size: 13.5px; font-weight: 600; line-height: 1.35; letter-spacing: .01em; font-variant-numeric: tabular-nums; white-space: normal; }
/* Laws in this guide */
.gbl .rs-prose .rs-laws { margin: 0 0 2.4em; padding: 26px 28px 20px; border-radius: 20px; background: #fff; box-shadow: var(--rs-card); font-family: 'Proxima Nova', Verdana, Arial, sans-serif; }
.rs-laws-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.gbl .rs-prose h2.rs-laws-h { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; font-size: 14px !important; line-height: 1.2; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); }
.rs .rs-laws-h .rs-ico { width: 20px; height: 20px; color: var(--pb-700); }
.rs-laws-n { font-size: 14px; color: var(--muted); }
.rs-laws-cols { columns: 2 280px; column-gap: 32px; }
.rs-laws-g { break-inside: avoid; margin-bottom: 14px; }
.gbl .rs-prose .rs-laws-gh { margin: 0 0 6px; font-size: 13px; font-weight: 600; line-height: 1.35; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); }
.gbl .rs-prose .rs-laws ul { list-style: none; margin: 0; padding: 0; }
.gbl .rs-prose .rs-laws li { margin: 0; padding: 0; }
.gbl .rs-prose .rs-laws li::before { content: none; }
.gbl .rs-prose .rs-laws a { display: flex; align-items: baseline; gap: 10px; padding: 6px 8px; margin: 0 -8px; border-radius: 10px; color: var(--ink); font-size: 15px; line-height: 1.4; transition: background .15s; }
.gbl .rs-prose .rs-laws a:hover { background: var(--pb-50); color: var(--pb-800); }
.rs-laws a .rs-law-code { font-size: 12.5px; padding: 1px 7px; }
.rs-laws-t { min-width: 0; }
.rs-laws a:has(.is-long), .rs-prose summary:has(.is-long) { flex-direction: column; align-items: flex-start; }
.rs-law-code.is-long { order: 2; }
.rs-prose summary:has(.is-long) .rs-law-t { flex: none; }
.gbl .rs-prose .rs-laws a:has(.is-long) { gap: 4px; }
/* law cards */
.gbl .rs-prose .is-law > summary, .gbl .rs-prose details[id^="rs-law-"] > summary { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 12px; font-weight: 600; }
.rs-law-t { flex: 1 1 260px; min-width: 0; }
.gbl .rs-prose details[id^="rs-law-"]:target { box-shadow: 0 0 0 2px var(--pb-600), 0 16px 32px -24px rgba(24, 50, 140, .45); }
.gbl .rs-prose p.rs-law-read { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 4px; padding-top: 14px; border-top: 1px solid var(--line); font-family: 'Proxima Nova', Verdana, Arial, sans-serif; font-size: 14.5px; line-height: 1.4; }
.gbl .rs-prose .rs-law-read a { display: inline-flex; align-items: center; gap: 4px; color: var(--pb-700); font-weight: 600; }
.rs .rs-law-ext { width: 14px; height: 14px; }
.rs-law-read-g { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; }
.rs-law-read-g > span { color: var(--muted); font-weight: 400; }
/* inline photos: hidden, the text and the law cards lead (R-Q12, D13: hidden in CSS, still in the HTML, reversible) */
.gbl .rs-prose figure.rs-fig-inline { display: none; margin: 2.2em 0; }
/* Read the law */
.rs-sources { margin-top: 48px; padding: 26px 28px; border-radius: 20px; background: var(--bg); }
.gbl .rs-sources-h { display: flex; align-items: center; gap: 10px; margin: 0 0 4px; font-size: 22px; }
.rs .rs-sources-h .rs-ico { width: 24px; height: 24px; color: var(--pb-700); }
.rs-sources-l { margin-bottom: 16px; font-size: 15px; color: var(--muted); }
.rs-sources ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px; }
.gbl .rs-sources a { display: flex; flex-direction: column; gap: 2px; height: 100%; padding: 12px 16px; border-radius: 12px; background: #fff; box-shadow: var(--rs-card); color: var(--ink); transition: box-shadow .2s, color .2s; }
.gbl .rs-sources a:hover { box-shadow: var(--rs-lift); color: var(--pb-800); }
.rs-src-t { font-size: 15.5px; font-weight: 600; line-height: 1.35; }
.rs-src-h { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; color: var(--muted); }
.rs .rs-src-h .rs-ico { width: 13px; height: 13px; }
/* About this guide */
.rs-disclaim { display: flex; gap: 12px; margin-top: 16px; padding: 18px 20px; border-radius: 16px; box-shadow: inset 0 0 0 1px var(--line); font-size: 14.5px; line-height: 1.55; color: var(--body); }
.rs-disclaim b { color: var(--ink); }
.rs .rs-disclaim .rs-ico { width: 20px; height: 20px; margin-top: 1px; color: var(--muted); }
.rs-post.is-state .rs-post-end { margin-top: 32px; }
@media (max-width: 768px) {
  .rs-hero-ref .gbl-wrap.gbl-wrap-hero { padding: 0 20px; }
  .rs-hero-ref .rs-post-grid { padding: 32px 0 40px; }
  .rs-post.is-state .rs-by-m .rs-sep { display: none; }
  .rs-post.is-state .rs-by-m { gap: 2px 12px; }
  .gbl .rs-prose .rs-laws, .rs-sources { padding: 20px 18px 14px; }
  .rs-post.is-state .rs-read { padding-bottom: 48px; }
}

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width: 1320px) {
  .rs-read { grid-template-columns: 220px minmax(0, 720px); justify-content: center; gap: 56px; }
  .rs-rail-r { display: none; }
  .rs-shelf { grid-template-columns: repeat(5, minmax(200px, 1fr)); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; scrollbar-width: thin; }
  .rs-shelf-i { scroll-snap-align: start; }
  .rs-cases-grid { grid-template-columns: repeat(5, minmax(220px, 1fr)); overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 4px 16px; margin: -4px; scrollbar-width: thin; }
  .rs-case { scroll-snap-align: start; }
}
@media (max-width: 1200px) {
  .rs-hero-grid.hx-hero-grid { grid-template-columns: minmax(0, 480px) minmax(0, 1fr); column-gap: 40px; }
  .rs-hero-stage { padding-right: 40px; }
  .gbl .rs-bento a { min-height: 210px; padding: 18px; }
  .rs-states-card { grid-template-columns: 1fr; padding: 56px; }
  .rs-post-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 40px; padding-right: 40px; }
  .rs-lib-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: 40px; padding-right: 40px; }
  .rs-states-grid { gap: 40px; padding-right: 40px; }
}
@media (max-width: 1100px) {
  .rs-hero-grid.hx-hero-grid { grid-template-columns: 1fr; }
  .rs-hero-copy.hx-hero-copy { padding: 64px 0 32px; }
  .rs-hero-copy .rs-search { margin-left: auto; margin-right: auto; }
  .rs-try { justify-content: center; }
  .rs-hero-stage { padding: 0 0 40px; }
  .rs-bento { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .rs-picks-grid { grid-template-columns: 1fr; }
  .rs-picks-side { grid-template-rows: none; grid-template-columns: 1fr 1fr; }
  .rs-picks-side .rs-card { flex-direction: column; }
  .rs-picks-side .rs-card-media { flex: none; aspect-ratio: 16 / 10; }
  .rs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-quick-grid { grid-template-columns: 1fr; }
  .rs-lib-grid, .rs-post-grid, .rs-states-grid, .rs-post.is-ebook .rs-post-grid { grid-template-columns: 1fr; padding: 56px 0 40px; }
  .rs-lib-lead { max-width: 560px; }
  .rs-post-copy, .rs-lib-copy, .rs-states-hero-copy { align-items: flex-start; text-align: left; }
  .rs-lib-copy .hx-hero-sub, .rs-states-hero-copy .hx-hero-sub { margin-left: 0; margin-right: 0; } /* left-aligned with the H1 (home2.css centres it ≤1100) */
  .rs-hero-img, .rs-video { max-width: 720px; }
  .rs-read { grid-template-columns: minmax(0, 720px); padding-top: 40px; }
  .rs-rail { display: none; }
  .rs-toc-m { display: block; margin-bottom: 28px; border-radius: 16px; background: #fff; box-shadow: var(--rs-card); }
  .rs-toc-m summary { display: flex; align-items: center; gap: 10px; padding: 14px 18px; cursor: pointer; list-style: none; font-size: 16px; font-weight: 600; color: var(--ink); }
  .rs-toc-m summary::-webkit-details-marker { display: none; }
  .rs-toc-m-n { margin-left: auto; font-size: 13px; font-weight: 400; color: var(--muted); }
  .rs-toc-m .rs-car { transition: transform .25s var(--ease); }
  .rs-toc-m[open] .rs-car { transform: rotate(180deg); }
  .rs-toc-m ol { margin: 0; padding: 0 18px 16px 40px; list-style: decimal; }
  .rs-toc-m li { padding: 5px 0; font-size: 15px; line-height: 1.4; }
  .rs-toc-m li::marker { color: var(--muted); font-size: 13px; }
  .gbl .rs-toc-m a { color: var(--body); }
  .rs-facts.is-inline { display: block; }
  .rs-st { grid-template-columns: 1fr; gap: 16px; }
  .rs-st-head { position: static; }
}
@media (max-width: 768px) {
  .gbl .rs-search input { height: 54px; font-size: 16px; }
  .rs-kbd { display: none; }
  .rs-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .gbl .rs-bento a { min-height: 170px; padding: 16px; border-radius: 20px; }
  .rs-bento-n { font-size: 30px; }
  .rs-bento b { font-size: 16px; }
  .rs .rs-bento-ico { width: 34px; height: 34px; padding: 7px; }
  .gbl-home2 .rs-sec.gbl-sec { padding-top: 64px; }
  .gbl-home2 .rs-next.rs-sec.gbl-sec { margin-top: 40px; padding: 56px 0 64px; }
  .rs-head { flex-direction: column; align-items: flex-start; gap: 12px; margin-bottom: 24px; }
  .rs-lead { font-size: 17px; }
  .rs-grid { grid-template-columns: 1fr; gap: 16px; }
  .rs-picks-side { grid-template-columns: 1fr; }
  .rs-card.is-lead .rs-card-body { padding: 20px 22px 22px; }
  .rs-states-card { padding: 40px 20px 28px; border-radius: 28px; gap: 32px; }
  .rs-bar { flex-direction: column; flex-wrap: nowrap; align-items: stretch; }
  .rs-chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -20px; padding: 2px 20px; }
  .rs-chips::-webkit-scrollbar { display: none; }
  .rs-chip { flex: none; }
  .rs-bar-r { display: grid; grid-template-columns: 1fr 1fr; }
  .rs-bar-r > :only-child { grid-column: 1 / -1; }
  .gbl .rs-sel select { width: 100%; }
  .gbl a.rs-topic, .gbl button.rs-topic, .gbl button.rs-topic:focus { min-height: 0; padding: 16px 16px 14px; border-radius: 18px; }
  .rs-topic-ico { width: 40px; height: 40px; }
  .rs-topic b { font-size: 16px; }
  .rs-lib-grid, .rs-post-grid, .rs-states-grid { padding: 40px 4px 28px; gap: 28px; }
  .rs-hero-states .rs-map { padding: 14px; border-radius: 20px; }
  .rs-sg { grid-template-columns: 1fr; }
  .rs-sg-media { aspect-ratio: 16 / 8; }
  .rs-sg-body { padding: 18px 20px 20px; }
  .gbl .rs-h1 { font-size: 34px; }
  .rs-dek { font-size: 18px; }
  .rs-prose { font-size: 18px; line-height: 1.68; }
  .gbl .rs-prose h2 { font-size: 25px !important; }
  .gbl .rs-prose h3 { font-size: 20px; }
  .gbl .rs-prose .rs-kt { padding: 22px 20px 16px; font-size: 16px; }
  .rs .rs-kt-ico { display: none; }
  .gbl .rs-prose details > summary { padding: 16px 48px 16px 18px; font-size: 16px; }
  .gbl .rs-prose details > :not(summary) { margin-left: 18px; margin-right: 18px; }
  .rs-post-end { flex-direction: column; align-items: flex-start; }
  .rs-quick-grid .rs-q { padding: 22px; }
  .gbl a.rs-play { padding: 8px 16px 8px 8px; font-size: 15px; }
  .rs .rs-play-ico { width: 38px; height: 38px; padding: 10px; }
}
@media (max-width: 420px) {
  .gbl .rs-bento a { min-height: 150px; }
  .rs-fan, .rs-books { height: 58px; }
  .rs-bento-map { grid-template-columns: repeat(11, 6px); grid-auto-rows: 6px; gap: 2px; }
  .rs-face { width: 36px; height: 36px; }
  .rs-fan { height: 64px; }
  .rs-fan-i { bottom: -14px; width: 50%; left: calc(var(--i) * 24%); }
}
@media (prefers-reduced-motion: reduce) {
  .rs *, .rs *::before, .rs *::after { transition: none !important; animation: none !important; }
  .rs-cover-img, .rs-shelf-img { transform: none; }
}
@media print {
  .rs-rail, .rs-rail-r, .rs-progress, .rs-next, .rs-toc-m, .rs-share { display: none !important; }
  .rs-read { display: block; }
}
