/* CryptoSites.io home (owner, 29 Oct 2026): Libre Franklin (a revival of Franklin Gothic, 1902) for everything on the page,
   readable cards in sentence case, the hosting sites first. Chakra Petch stays only on the animated page headers of other pages.
   Loaded after styles.css and calm.css, scoped to body.home; colours come from the calm.css tokens, so light and dark both work. */
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/libre-franklin-latin-400.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 400; font-display: swap; src: url(/assets/fonts/libre-franklin-latin-ext-400.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/libre-franklin-latin-500.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 500; font-display: swap; src: url(/assets/fonts/libre-franklin-latin-ext-500.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/libre-franklin-latin-600.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 600; font-display: swap; src: url(/assets/fonts/libre-franklin-latin-ext-600.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 700; font-display: swap; src: url(/assets/fonts/libre-franklin-latin-700.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 700; font-display: swap; src: url(/assets/fonts/libre-franklin-latin-ext-700.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 800; font-display: swap; src: url(/assets/fonts/libre-franklin-latin-800.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Libre Franklin"; font-style: normal; font-weight: 800; font-display: swap; src: url(/assets/fonts/libre-franklin-latin-ext-800.woff2) format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

body.home {
  --franklin: "Twemoji Country Flags", "Libre Franklin", "Franklin Gothic Medium", system-ui, sans-serif;
  --sans: var(--franklin); --display: var(--franklin); --mono: var(--franklin);
  --card: var(--panel); --card-line: var(--line-hi);
  --chip: color-mix(in srgb, var(--text) 6%, transparent);
  font-family: var(--franklin); font-size: 16px; line-height: 1.5; font-feature-settings: "lnum" 1;
}
body.home::after { display: none; }               /* no scanlines on the home page */
body.home { --max: 1640px; }   /* owner, 29 Oct 2026: "make the page wider" (was 1240px) */

/* ---------- header: logo + CryptoSites.io on the left, Hosting · Sites for Sale/Lease · Toolbox · Miners Digest · My profile ---------- */
/* the header (owner, 29 Oct 2026: "the header now looks sad") and the hero keep the original faces: Chakra Petch, Space Grotesk, JetBrains Mono */
body.home .site-header, body.home .hero {
  --display: "Twemoji Country Flags", "Chakra Petch", "Space Grotesk", system-ui, sans-serif;
  --sans: "Twemoji Country Flags", "Space Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: "Twemoji Country Flags", "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  font-family: var(--sans);
}
body.home .hero .eyebrow { display: inline-block; }
body.home .site-header .nav .btn.nav-acct { margin-left: 14px; }   /* the Miners Digest caret sat under the button */
body.home .hero .btn { font: 600 15px var(--display); letter-spacing: .06em; text-transform: uppercase; }

/* ---------- buttons, selects, segmented tabs: sentence case, Franklin ---------- */
body.home main .btn, body.home .hp-modal .btn { font: 600 15px var(--franklin); letter-spacing: 0; text-transform: none; }
body.home main .btn-sm, body.home .hp-modal .btn-sm { font-size: 14px; }
body.home .select { font: 500 15px var(--franklin); min-height: 44px; }
body.home .seg button { font: 600 14px var(--franklin); letter-spacing: 0; text-transform: none; padding: 9px 14px; }
body.home .seg button[aria-pressed="true"], body.home .seg button[data-type][aria-pressed="true"] { background: var(--text); color: var(--bg); box-shadow: none; }

/* ---------- section rhythm ---------- */
.hs-section { padding: 40px 0 24px; }
body.home .hero + .hs-section { padding-top: 56px; }
.hs-section + .hs-section, body.home #listings, body.home #alerts, body.home #homeBlog { padding-top: 72px; }
.hs-head { margin-bottom: 20px; }
.hs-head h1, .hs-head h2, body.home .section-head h2 { font: 800 clamp(28px, 3vw, 40px)/1.12 var(--franklin); letter-spacing: -.015em; text-transform: none; margin: 0; color: var(--text); }
body.home .section-head h2 em { color: inherit; text-shadow: none; }
.hs-head p, body.home .section-head p { color: var(--muted); font-size: 17px; margin: 10px 0 0; max-width: 68ch; }
.hs-head p b { color: var(--text); }
.hs-head-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.hs-all { font-weight: 600; color: var(--btc); white-space: nowrap; }
body.home .eyebrow { display: none; }

/* ---------- filter bar ---------- */
.hs-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 12px; padding: 14px 0 18px; border-top: 1px solid var(--line-hi); }
.hs-filters label { display: grid; gap: 4px; font-size: 12.5px; font-weight: 600; color: var(--dim); }
.hs-filters .select { min-width: 170px; }
.hs-wl { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border: 1px solid var(--line-hi); background: var(--panel); color: var(--text); font: 600 15px var(--franklin); cursor: pointer; }
.hs-wl svg { width: 18px; height: 18px; }
.hs-wl:hover { border-color: var(--text); }
.hs-wl[aria-pressed="true"] { background: var(--text); color: var(--bg); border-color: var(--text); }
.hs-wl[aria-pressed="true"] svg path { fill: currentColor; }
.hs-count { margin-left: auto; align-self: center; font-weight: 600; color: var(--muted); }
.hs-clear { align-self: center; background: none; border: 0; padding: 4px 0; font: 600 14px var(--franklin); color: var(--text); border-bottom: 1px solid currentColor; cursor: pointer; }
.hs-prov { display: flex; align-items: center; gap: 8px; margin: -6px 0 14px; color: var(--muted); }
.hs-prov b { color: var(--text); }
.hs-prov button { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--line-hi); background: var(--panel); color: var(--text); cursor: pointer; }
.hs-prov svg { width: 14px; height: 14px; }

/* ---------- hosting site cards: four to a row ---------- */
.hs-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.hs-card { display: flex; flex-direction: column; background: var(--card); border: 1px solid var(--card-line); min-width: 0; transition: border-color .15s, transform .15s; }
.hs-card:hover { border-color: var(--text); }
.hs-art { position: relative; aspect-ratio: 16 / 10; background: var(--panel-2); overflow: hidden; }
.hs-art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hs-logo { position: absolute; left: 10px; bottom: 10px; display: flex; align-items: center; height: 34px; max-width: 58%; padding: 5px 9px; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.18); }
.hs-logo.dark { background: #15191f; }
.hs-logo img { height: 100%; width: auto; max-width: 100%; object-fit: contain; }
.hs-cap { position: absolute; left: 10px; top: 10px; font-size: 11.5px; font-weight: 600; color: #fff; background: rgba(12,14,20,.66); padding: 3px 7px; }
.hs-watch { position: absolute; right: 10px; top: 10px; display: grid; place-items: center; width: 38px; height: 38px; border: 0; border-radius: 50%; background: rgba(255,255,255,.94); color: #121419; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.2); }
.hs-watch svg { width: 20px; height: 20px; }
.hs-watch:hover { color: var(--btc); }
.hs-watch.on { color: #ad5200; }
.hs-watch.on svg path { fill: currentColor; }
.hs-body { display: flex; flex-direction: column; padding: 14px 16px 16px; flex: 1; }
.hs-where { margin: 0; font-size: 13.5px; font-weight: 500; color: var(--muted); }
.hs-name { margin: 2px 0 0; font: 700 19px/1.25 var(--franklin); color: var(--text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hs-by { margin: 4px 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; color: var(--muted); }
.tier { display: inline-flex; align-items: center; gap: 3px; font-size: 11.5px; font-weight: 700; letter-spacing: .02em; padding: 2px 7px; line-height: 1.4; }
.tier svg { width: 12px; height: 12px; }
.t-feat { background: var(--btc); color: #fff; }
html[data-theme="dark"] .t-feat { color: #120800; }
.t-ver { border: 1px solid var(--line-hi); color: var(--text); }
.hs-rate { display: flex; align-items: baseline; gap: 6px; margin: 14px 0 0; padding-top: 12px; border-top: 1px solid var(--line); }
.hs-rate b { font: 800 30px/1 var(--franklin); font-variant-numeric: tabular-nums; color: var(--text); letter-spacing: -.01em; }
.hs-rate span { font-size: 14px; color: var(--muted); }
.hs-ask { font-weight: 600; }
.hs-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 12px 0 16px; }
.hs-facts dt { font-size: 11.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: var(--dim); }
.hs-facts dd { margin: 1px 0 0; font-size: 14.5px; font-weight: 600; color: var(--text); overflow-wrap: anywhere; }
.hs-cta { width: 100%; margin-top: auto; }
.hs-empty { grid-column: 1 / -1; padding: 40px 20px; text-align: center; color: var(--muted); background: var(--panel); border: 1px dashed var(--line-hi); }
.hs-empty p { margin: 0 0 12px; }
.hs-more { display: flex; justify-content: center; margin-top: 24px; }

/* ---------- site pop-up ---------- */
.hp-modal { width: min(820px, calc(100vw - 32px)); max-height: calc(100dvh - 40px); padding: 0; border: 0; background: var(--panel); color: var(--text); font-family: var(--franklin); box-shadow: 0 24px 80px rgba(0,0,0,.35); }
.hp-modal::backdrop { background: rgba(10,12,16,.6); }
.hp-modal[open] { animation: hp-in .22s cubic-bezier(.2,.8,.2,1); }
@keyframes hp-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.hp-in { position: relative; max-height: calc(100dvh - 40px); overflow: auto; }
.hp-close { position: absolute; right: 12px; top: 12px; z-index: 3; display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 50%; background: rgba(255,255,255,.94); color: #121419; cursor: pointer; }
.hp-close svg { width: 18px; height: 18px; }
.hp-art { position: relative; aspect-ratio: 16 / 7; background: var(--panel-2); }
.hp-art img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hp-logo { position: absolute; left: 16px; bottom: 16px; display: flex; align-items: center; height: 46px; max-width: 50%; padding: 7px 12px; background: #fff; box-shadow: 0 2px 10px rgba(0,0,0,.2); }
.hp-logo.dark { background: #15191f; }
.hp-logo img { height: 100%; width: auto; object-fit: contain; }
.hp-art .hs-cap { left: 16px; top: 16px; }
.hp-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; padding: 20px 24px 0; }
.hp-title h2 { margin: 2px 0 0; font: 800 28px/1.15 var(--franklin); letter-spacing: -.01em; }
.hp-rate { text-align: right; white-space: nowrap; }
.hp-rate b { display: block; font: 800 40px/1 var(--franklin); font-variant-numeric: tabular-nums; }
.hp-rate span { font-size: 14px; color: var(--muted); }
.hp-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 16px 24px; }
.hp-socs { display: flex; gap: 6px; }
.hp-soc { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--line-hi); color: var(--text); }
.hp-soc:hover { border-color: var(--text); }
.hp-soc svg { width: 17px; height: 17px; }
.hp-tabs { display: flex; gap: 0; padding: 0 24px; border-bottom: 1px solid var(--line-hi); overflow-x: auto; scrollbar-width: none; }
.hp-tabs button { flex: none; background: none; border: 0; border-bottom: 3px solid transparent; margin-bottom: -1px; padding: 12px 14px; font: 700 13.5px var(--franklin); letter-spacing: .05em; text-transform: uppercase; color: var(--dim); cursor: pointer; }
.hp-tabs button:hover { color: var(--text); }
.hp-tabs button[aria-selected="true"] { color: var(--text); border-bottom-color: var(--btc); }
.hp-panel { padding: 20px 24px 4px; min-height: 160px; }
.hp-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 20px; margin: 0; }
.hp-facts dt { font-size: 12px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: var(--dim); }
.hp-facts dd { margin: 2px 0 0; font-size: 16px; font-weight: 600; }
.hp-facts dd b { font-size: 20px; }
.hp-desc { margin: 18px 0 0; color: var(--muted); max-width: 72ch; white-space: pre-line; }
.hp-src { margin: 14px 0 0; font-size: 13px; color: var(--dim); }
.hp-adv { margin: 14px 0 0; padding-left: 20px; color: var(--muted); }
.hp-adv li { margin: 4px 0; }
.hp-more { display: inline-block; margin-top: 16px; font-weight: 600; color: var(--btc); }
.hp-others { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.hp-others button { display: grid; grid-template-columns: 88px 1fr auto; gap: 14px; align-items: center; width: 100%; padding: 8px; background: var(--bg); border: 1px solid var(--line); color: var(--text); text-align: left; cursor: pointer; font: inherit; }
.hp-others button:hover { border-color: var(--text); }
.hp-others img, .hp-others button > span:first-child { width: 88px; height: 56px; object-fit: cover; background: var(--panel-2); }
.ho-n b { display: block; font-weight: 700; }
.ho-n em { font-style: normal; font-size: 14px; color: var(--muted); }
.ho-r { font: 800 20px var(--franklin); font-variant-numeric: tabular-nums; padding-right: 6px; }
.hp-actions { display: flex; flex-wrap: wrap; gap: 10px; padding: 20px 24px; border-top: 1px solid var(--line); margin-top: 20px; }
.hp-actions .btn svg { width: 17px; height: 17px; margin-right: 6px; }
.hp-actions .hp-go { flex: 1 1 220px; }
.hp-watch.on { color: var(--btc) !important; }
.hp-watch.on svg path { fill: currentColor; }
.hp-calcs { list-style: none; margin: -8px 24px 18px; padding: 10px 14px; border: 1px solid var(--line-hi); background: var(--bg); }
.hp-calcs li { padding: 6px 0; }
.hp-calcs a { font-weight: 600; }
.hp-proceed { margin: -6px 24px 22px; padding: 16px; background: var(--bg); border: 1px solid var(--btc); }
.hp-proceed p { margin: 0 0 12px; }

/* ---------- hosting providers by level ---------- */
.v-group { display: flex; align-items: baseline; gap: 8px; margin: 22px 0 12px; font: 700 15px var(--franklin); letter-spacing: .04em; text-transform: uppercase; color: var(--text); }
.v-group span { color: var(--dim); font-weight: 600; }
.v-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.v-card { display: flex; flex-direction: column; gap: 14px; padding: 18px; background: var(--card); border: 1px solid var(--card-line); }
.v-featured { border-top: 3px solid var(--btc); }
.v-top { display: grid; grid-template-columns: 72px 1fr auto; gap: 14px; align-items: center; }
.v-logo { display: grid; place-items: center; width: 72px; height: 48px; padding: 6px; background: #fff; border: 1px solid var(--line); }
.v-logo.dark { background: #15191f; }
.v-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.v-top h4 { margin: 0; font: 700 18px/1.2 var(--franklin); }
.v-meta { margin: 2px 0 0; font-size: 13.5px; color: var(--muted); }
.v-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.v-facts dt { font-size: 11.5px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: var(--dim); }
.v-facts dd { margin: 1px 0 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.v-acts { display: flex; gap: 8px; }
.v-acts .btn { flex: 1; }

/* ---------- sites for sale and lease: the existing cards, made readable ---------- */
body.home #grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
body.home .result-count, body.home .clear-filters, body.home .alerts-mini, body.home .to-top, body.home .currency-note, body.home .list-cta,
body.home .load-more .btn { font-family: var(--franklin) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.home .result-count { font-weight: 600; color: var(--muted); }
body.home #listings .filters { border-top: 1px solid var(--line-hi); padding-top: 14px; }
body.home #grid .card { clip-path: none; background: var(--card); border: 1px solid var(--card-line); }
body.home #grid .card::after { display: none; }
body.home #grid .card:hover { transform: none; border-color: var(--text); }
body.home #grid .card-art:has(img) { height: auto; aspect-ratio: 16 / 10; }
body.home #grid .card-art::after, body.home #grid .card-art:has(img)::before { display: none; }
body.home #grid .card-mw { display: none; }
body.home #grid .card h3.sr-only { position: static; width: auto; height: auto; overflow: visible; clip: auto; white-space: normal; margin: 4px 0 0; font: 700 19px/1.25 var(--franklin); color: var(--text); text-transform: none; }
body.home #grid .card-loc { font: 500 13.5px var(--franklin); color: var(--muted); text-transform: none; letter-spacing: 0; }
body.home #grid .card-date { font: 400 13px var(--franklin); color: var(--dim); text-transform: none; letter-spacing: 0; }
body.home #grid .specs { border-top: 1px solid var(--line); margin-top: 12px; padding-top: 12px; }
body.home #grid .spec-v { font: 800 22px/1.1 var(--franklin); font-variant-numeric: tabular-nums; }
body.home #grid .spec-l { font: 600 11.5px var(--franklin); letter-spacing: .03em; text-transform: uppercase; color: var(--dim); }
body.home #grid .card-asset { font-size: 14.5px; color: var(--muted); }
body.home .plaque, body.home .q-tag, body.home .card-id, body.home .new-badge, body.home .illus { font-family: var(--franklin); letter-spacing: .02em; }

/* ---------- alerts and blog headings ---------- */
body.home .alerts h2, body.home .alerts-intro h2 { font: 800 clamp(28px, 3vw, 40px)/1.12 var(--franklin) !important; letter-spacing: -.015em !important; text-transform: none !important; }
.al-sub { font-size: 18px; font-weight: 600; color: var(--text); margin: 8px 0 0; }
body.home .alerts-intro p, body.home .alerts-points { font-size: 16px; }
body.home .alerts-form legend, body.home .alerts-form label { font-family: var(--franklin); text-transform: none; letter-spacing: 0; }
body.home .pk { font: 600 14px var(--franklin); text-transform: none; letter-spacing: 0; }

/* ---------- request a site ---------- */
.rq-section { padding-top: 72px; }
.rq-card { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px; padding: 36px; background: var(--panel); border: 1px solid var(--line-hi); border-top: 3px solid var(--btc); }
.rq-intro h2 { margin: 0; font: 800 clamp(28px, 3vw, 38px)/1.12 var(--franklin); letter-spacing: -.015em; }
.rq-intro p { color: var(--muted); font-size: 17px; margin: 12px 0 0; }
.rq-points { margin: 18px 0 0; padding-left: 20px; color: var(--muted); }
.rq-points li { margin: 6px 0; }
.rq-form { display: grid; gap: 14px; }
.rq-form label { display: grid; gap: 5px; font-size: 13.5px; font-weight: 600; color: var(--muted); }
.rq-form input:not([type=checkbox]), .rq-form textarea { width: 100%; min-height: 44px; padding: 10px 12px; font: 400 16px var(--franklin); color: var(--text); background: var(--bg); border: 1px solid var(--line-hi); }
.rq-form textarea { resize: vertical; }
.rq-form input:focus, .rq-form textarea:focus { outline: 2px solid var(--btc); outline-offset: 0; border-color: transparent; }
.rq-form .opt { font-weight: 400; color: var(--dim); }
.rq-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.rq-kind { justify-self: start; }
.rq-form .consent { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; }
.rq-form .consent input { margin-top: 3px; width: 18px; height: 18px; }
.rq-form button[type=submit] { justify-self: start; min-width: 200px; }
.rq-bad input, .rq-bad textarea, input.rq-bad, textarea.rq-bad { border-color: #d0293b !important; }
.rq-msg { margin: 0; min-height: 1.5em; font-weight: 600; }
.rq-msg.err { color: #d0293b; }
.rq-msg.ok { color: var(--text); }

/* ---------- responsive ---------- */
@media (max-width: 1180px) { .hs-grid, body.home #grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .v-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 900px) {
  .hs-grid, body.home #grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .rq-card { grid-template-columns: 1fr; gap: 24px; padding: 24px; }
  .hp-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .hs-section { padding-top: 20px; }
  .hs-head h1, .hs-head h2 { font-size: 26px; }
  .hs-head p { font-size: 15.5px; }
  .hs-head-row { flex-direction: column; align-items: flex-start; gap: 8px; }
  .hs-filters { gap: 8px; }
  .hs-filters label { flex: 1 1 calc(50% - 8px); }
  .hs-filters label span { font-size: 11.5px; }
  .hs-filters .select { min-width: 0; width: 100%; font-size: 14px; }
  .hs-count { margin-left: 0; }
  .hs-grid { gap: 10px; }
  .hs-body { padding: 10px 10px 12px; }
  .hs-where { font-size: 12px; }
  .hs-name { font-size: 15.5px; }
  .hs-by { font-size: 12.5px; gap: 4px; }
  .tier { font-size: 10.5px; padding: 1px 5px; }
  .hs-rate { margin-top: 10px; padding-top: 8px; }
  .hs-rate b { font-size: 24px; }
  .hs-rate span { font-size: 12px; }
  .hs-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 8px 0 12px; }
  .hs-facts > div:nth-child(3) { display: none; }
  .hs-facts dt { font-size: 10px; }
  .hs-facts dd { font-size: 13px; }
  .hs-cta { font-size: 13px !important; padding: 0 6px; min-height: 40px; }
  .hs-logo { height: 26px; left: 6px; bottom: 6px; padding: 3px 6px; }
  .hs-cap { font-size: 10px; left: 6px; top: 6px; }
  .hs-watch { width: 32px; height: 32px; right: 6px; top: 6px; }
  .hs-watch svg { width: 17px; height: 17px; }
  .v-grid { grid-template-columns: 1fr; }
  .hp-modal { width: 100vw; max-width: 100vw; max-height: 100dvh; height: 100dvh; margin: 0; }
  .hp-in { max-height: 100dvh; }
  .hp-art { aspect-ratio: 16 / 9; }
  .hp-head { flex-direction: column; align-items: flex-start; padding: 16px 16px 0; gap: 10px; }
  .hp-rate { text-align: left; }
  .hp-rate b { display: inline; font-size: 32px; margin-right: 6px; }
  .hp-bar, .hp-tabs, .hp-panel, .hp-actions { padding-left: 16px; padding-right: 16px; }
  .hp-tabs button { padding: 12px 10px; font-size: 12.5px; }
  .hp-calcs, .hp-proceed { margin-left: 16px; margin-right: 16px; }
  .hp-actions .btn { flex: 1 1 100%; }
  .rq-row { grid-template-columns: 1fr; }
  .rq-card { padding: 20px 16px; }
}
@media (prefers-reduced-motion: reduce) { .hp-modal[open] { animation: none; } }
