@font-face{font-family:Montserrat;font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/montserrat-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:Montserrat;font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/montserrat-cyrillic.woff2) format("woff2");unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:Montserrat;font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/montserrat-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, 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:Montserrat;font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/montserrat-latin.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}
:root { --ink:#0b1b33; --text:#22364f; --mute:#55657a; --line:#dbe8f7; --card:#fff;
  --y:linear-gradient(135deg,#1f6fd6,#0b4fc4); --y-soft:#eef7ff; --y-line:#cfe5fb; --gold:linear-gradient(90deg,#1f6fd6,#0b4fc4); }
* { box-sizing:border-box; }
body { margin:0; color:var(--text); font:15px/1.75 Montserrat,system-ui,sans-serif;
  background:linear-gradient(180deg,#e4f2ff 0,#f8fbff 420px,#f8fbff 100%) no-repeat #f8fbff; }
.wrap { max-width:1180px; margin:0 auto; padding:0 16px; }
header { position:sticky; top:0; z-index:2; background:rgba(228,242,255,.85); backdrop-filter:blur(10px); }
header .wrap { display:flex; align-items:center; gap:10px; height:64px; }
.logo { width:34px; height:34px; border-radius:50%; background:var(--y); display:grid; place-items:center; font-size:18px; color:#fff; }
.brand { font-size:20px; font-weight:600; color:var(--ink); }
.crumbs { font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--mute); margin:18px 0; }
.crumbs b { background:var(--gold); -webkit-background-clip:text; background-clip:text; color:transparent; }
.card { background:var(--card); border:1px solid var(--line); border-radius:22px; padding:26px;
  box-shadow:0 8px 30px rgba(20,87,184,.07); }
.hero { display:flex; align-items:center; gap:24px; background:linear-gradient(90deg,#fff 40%,#e4f2ff); }
.avatar { flex:none; width:96px; height:96px; border-radius:50%; background:var(--y); display:grid; place-items:center;
  font-size:48px; color:#fff; }
h1 { margin:0; font-size:40px; line-height:1.15; font-weight:600; color:var(--ink); letter-spacing:-.01em; }
h1 span { background:var(--gold); -webkit-background-clip:text; background-clip:text; color:transparent; }
.sub { font-size:17px; color:var(--mute); margin-top:4px; }
.dates { font-size:12px; color:var(--mute); margin-top:6px; }
.change { margin-left:auto; text-align:right; }
.label { font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--mute); }
select { margin-top:8px; font:600 14px Montserrat,sans-serif; color:var(--ink); padding:13px 40px 13px 18px; border-radius:14px;
  border:1.5px solid #7dbbff; background:var(--y-soft); box-shadow:0 6px 16px rgba(47,140,255,.2); cursor:pointer; }
.grid2 { display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:24px; margin-top:24px; align-items:start; }
.pill { display:inline-block; font-size:12px; font-weight:500; padding:6px 14px; border-radius:99px;
  background:var(--y-soft); border:1px solid var(--y-line); color:#1457b8; margin-bottom:16px; }
.text p { margin:8px 0 14px; }
.advice > span:first-child { color:#2f8cff; }
.advice { display:flex; gap:12px; align-items:flex-start; margin-top:20px; padding:16px 18px; border-radius:16px;
  background:var(--y-soft); border:1px solid var(--y-line); color:var(--ink); font-weight:500; }
h2 { margin:0 0 16px; font-size:20px; font-weight:600; color:var(--ink); }
.tiles { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.tile { background:var(--y-soft); border:1px solid var(--y-line); border-radius:14px; padding:12px 14px; }
.tile.wide { grid-column:1/-1; }
.tile div { font-size:14px; font-weight:600; color:var(--ink); margin-top:4px; line-height:1.4; }
section { margin:48px 0 64px; }
section h2 { font-size:30px; font-weight:500; margin-bottom:4px; }
section > p { margin:0 0 20px; color:var(--mute); }
.signs { display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
.signs a { display:block; text-align:center; text-decoration:none; background:#fff; border:1px solid var(--line);
  border-radius:20px; padding:20px 8px 16px; transition:.15s; }
.signs a:hover, .signs a[aria-current=true] { border-color:#7dbbff; box-shadow:0 8px 22px rgba(47,140,255,.25); transform:translateY(-2px); }
.signs i { display:grid; place-items:center; width:64px; height:64px; margin:0 auto 10px; border-radius:50%;
  background:var(--y); font-style:normal; font-size:30px; color:#fff; }
.signs b { display:block; font-weight:600; color:var(--ink); }
.signs small { font-size:12px; color:var(--mute); }
footer { margin-top:0; border-top:1px solid var(--line); background:linear-gradient(180deg,#f1f8ff,#e4f2ff); padding:40px 0 28px; font-size:13px; color:var(--mute); }
@media (max-width:900px) {
  .grid2 { grid-template-columns:1fr; }
  .hero { flex-wrap:wrap; } .change { margin-left:0; text-align:left; width:100%; } select { width:100%; }
  h1 { font-size:24px; } .hero { gap:16px; } .avatar { width:64px; height:64px; font-size:32px; }
  .signs { grid-template-columns:repeat(3,1fr); } .card { padding:20px; }
}
/* home */
.intro { max-width:760px; margin:8px 0 28px; }
.intro h1 { font-size:48px; }
.intro p { font-size:16px; margin:14px 0 18px; }
.intro .pill { margin:0; }
section.first { margin-top:0; }
.tiles.row { grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }
.tiles.row .tile.wide { grid-column:auto; }
@media (max-width:900px) { .intro h1 { font-size:34px; } }
a.home { display:flex; align-items:center; gap:10px; text-decoration:none; }
.crumbs a { color:inherit; text-decoration:none; }
.crumbs a:hover { color:var(--ink); }
/* today/tomorrow tabs, CSS only: radios stay focusable for keyboard, just visually hidden */
.tab { position:absolute; opacity:0; pointer-events:none; }
.tabs { display:flex; gap:8px; margin-top:20px; }
.tabs label { font-size:14px; font-weight:600; color:var(--ink); padding:9px 20px; border-radius:99px; cursor:pointer;
  background:#fff; border:1px solid var(--line); transition:.15s; }
.tabs label:hover { border-color:#7dbbff; }
#d0:checked ~ .tabs label[for=d0], #d1:checked ~ .tabs label[for=d1] { background:var(--y); color:#fff; border-color:transparent;
  box-shadow:0 6px 16px rgba(47,140,255,.3); }
#d0:focus-visible ~ .tabs label[for=d0], #d1:focus-visible ~ .tabs label[for=d1] { outline:2px solid #0b4fc4; outline-offset:2px; }
.panel { display:none; margin-top:16px; }
#d0:checked ~ .p0, #d1:checked ~ .p1 { display:grid; }
@media (max-width:560px) { .tabs label { flex:1; text-align:center; font-size:12px; padding:10px 6px; } }
/* header nav */
header nav { margin-left:auto; display:flex; gap:6px; }
header nav a { font-size:14px; font-weight:600; color:var(--ink); text-decoration:none; padding:8px 14px; border-radius:99px; }
header nav a:hover { background:#fff; }
/* names section: gender filter is CSS only, same radio pattern as day tabs */
#g0:checked ~ .tabs label[for=g0], #g1:checked ~ .tabs label[for=g1], #g2:checked ~ .tabs label[for=g2] {
  background:var(--y); color:#fff; border-color:transparent; box-shadow:0 6px 16px rgba(47,140,255,.3); }
#g0:focus-visible ~ .tabs label[for=g0], #g1:focus-visible ~ .tabs label[for=g1], #g2:focus-visible ~ .tabs label[for=g2] {
  outline:2px solid #0b4fc4; outline-offset:2px; }
#g1:checked ~ .names .f, #g2:checked ~ .names .m { display:none; }
.names h2 { margin:28px 0 14px; font-size:22px; }
.chips { display:flex; flex-wrap:wrap; gap:8px; }
.chips span, .legend span { font-size:14px; font-weight:500; color:var(--ink); padding:5px 14px; border-radius:99px;
  background:#fff; border:1px solid var(--line); }
.chips .m, .legend .m { background:var(--y-soft); border-color:var(--y-line); }
.chips .f, .legend .f { background:#fff3f9; border-color:#f6cfe3; }
.legend { margin:18px 0 0; font-size:12px; } .legend span { font-size:12px; padding:3px 10px; }
.credit { margin-top:28px; font-size:12px; color:var(--mute); }
.flag { background:var(--y-soft) !important; border:1px solid var(--y-line); }
/* first-letter filter bar */
.abc { display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; }
.abc label { min-width:34px; text-align:center; font-size:13px; font-weight:600; color:var(--ink); padding:6px 8px; border-radius:10px;
  background:#fff; border:1px solid var(--line); cursor:pointer; }
.abc label:hover { border-color:#7dbbff; }
.tab:focus-visible ~ .abc { outline:none; }
/* name chips can be links; name description pages */
.chips a { font-size:14px; font-weight:600; color:var(--ink); padding:5px 14px; border-radius:99px; background:#fff;
  border:1px solid var(--line); text-decoration:none; }
.chips a:hover { border-color:#2f8cff; box-shadow:0 4px 12px rgba(47,140,255,.2); }
.prose h2 { margin:30px 0 10px; font-size:22px; scroll-margin-top:80px; }
.prose p { margin:0 0 14px; } .prose ul { margin:0; padding-left:20px; } .prose li { margin-bottom:8px; }
.prose .chips { margin-top:4px; }
.toc { background:var(--y-soft); border:1px solid var(--y-line); border-radius:16px; padding:16px 20px; }
.toc ol { margin:8px 0 0; padding-left:20px; columns:2; column-gap:32px; } .toc li { margin-bottom:4px; }
.toc a { color:#1457b8; text-decoration:none; font-weight:500; } .toc a:hover { text-decoration:underline; }
@media (max-width:560px) { .toc ol { columns:1; } }
/* compatibility: search form, pair hero, score bars, matrix */
.pairform { display:flex; flex-wrap:wrap; align-items:flex-end; gap:16px; }
.pairform fieldset { flex:1; min-width:220px; border:0; margin:0; padding:0; }
.pairform .gender { display:flex; gap:8px; margin:8px 0 0; }
.pairform .gender label { flex:1; text-align:center; font-size:14px; font-weight:600; color:var(--ink); padding:10px; border-radius:12px;
  border:1px solid var(--line); background:#fff; cursor:pointer; }
.pairform .gender label:has(:checked) { background:var(--y); color:#fff; border-color:transparent; }
.pairform .gender input { position:absolute; opacity:0; }
.pairform .gender label:has(:focus-visible) { outline:2px solid #0b4fc4; outline-offset:2px; }
.pairform select { width:100%; }
.pairform .plus { font-size:28px; font-weight:600; color:#2f8cff; padding-bottom:10px; }
.pairform button { flex-basis:100%; font:600 16px Montserrat,sans-serif; color:#fff; background:var(--y); border:0; border-radius:14px;
  padding:16px; cursor:pointer; box-shadow:0 8px 20px rgba(47,140,255,.35); }
.pairform button:hover { filter:brightness(1.06); }
.pairhero .avatar + .avatar { margin-left:-40px; border:4px solid #fff; }
.total { margin-left:auto; text-align:center; } .total strong { display:block; font-size:44px; line-height:1; font-weight:700;
  background:var(--gold); -webkit-background-clip:text; background-clip:text; color:transparent; }
.total span { font-size:13px; font-weight:600; color:var(--mute); }
.bar { display:grid; grid-template-columns:1fr auto; gap:4px 12px; margin-bottom:16px; font-size:14px; font-weight:600; color:var(--ink); }
.bar i { grid-column:1/-1; grid-row:2; height:10px; border-radius:99px; background:var(--y-soft); border:1px solid var(--y-line); overflow:hidden; }
.bar b { display:block; height:100%; background:var(--y); border-radius:99px; } .bar em { font-style:normal; color:#1457b8; }
.matrix { overflow-x:auto; background:#fff; border:1px solid var(--line); border-radius:18px; padding:12px; }
.matrix table { border-collapse:separate; border-spacing:4px; width:100%; font-size:13px; }
.matrix th { font-weight:600; color:var(--ink); white-space:nowrap; text-align:left; padding:4px 6px; } .matrix th small { display:block; font-weight:500; color:var(--mute); font-size:10px; }
.matrix td a { display:block; text-align:center; padding:9px 0; min-width:40px; border-radius:9px; font-weight:700; text-decoration:none; color:var(--ink); }
.matrix .s0 { background:#1f6fd6; color:#fff; } .matrix .s1 { background:#9fd0ff; } .matrix .s2 { background:#dcefff; } .matrix .s3 { background:#f1f5fa; color:var(--mute); }
.matrix td a:hover { outline:2px solid #0b4fc4; }
@media (max-width:900px) { .total { margin-left:0; } .pairform .plus { display:none; } }
/* pair page sidebar: stacked cards + links to the same person with other signs */
.side { display:grid; gap:16px; }
.pairlinks { display:grid; gap:4px; }
.pairlinks a { display:flex; align-items:center; gap:10px; padding:7px 10px; border-radius:12px; text-decoration:none;
  font-size:14px; font-weight:500; color:var(--ink); border:1px solid transparent; }
.pairlinks a:hover { background:var(--y-soft); border-color:var(--y-line); }
.pairlinks a[aria-current=true] { background:var(--y-soft); border-color:#7dbbff; font-weight:700; }
.pairlinks i { display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--y); color:#fff;
  font-style:normal; font-size:15px; flex:none; }
.pairlinks em { margin-left:auto; font-style:normal; font-weight:700; color:#1457b8; }
/* pair page: link lists in two columns under the text, sticky banner slot on the right */
.grid2.stretch { align-items:stretch; }
.twocol { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
.twocol .card h2 { font-size:17px; }
.sticky { position:sticky; top:80px; }
.banner { display:grid; place-content:center; justify-items:center; gap:6px; width:300px; max-width:100%; height:600px; margin:0 auto;
  border:2px dashed var(--y-line); border-radius:18px; background:var(--y-soft); color:var(--mute); font-weight:600; }
@media (max-width:900px) { .twocol { grid-template-columns:1fr; } .sticky { position:static; } .banner { height:250px; } }
a.more { color:#1457b8; font-weight:600; text-decoration:none; white-space:nowrap; } a.more:hover { text-decoration:underline; }
.crumbs:empty { margin:8px 0; }
/* six nav items: scroll sideways on narrow screens instead of wrapping */
header .wrap { min-width:0; } header nav { overflow-x:auto; white-space:nowrap; scrollbar-width:none; } header nav::-webkit-scrollbar { display:none; }
@media (max-width:900px) { header nav a { padding:8px 10px; font-size:13px; } }
/* tarot */
.tarot { display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:14px; }
.tarot > * { display:block; text-align:center; text-decoration:none; color:var(--ink); font-size:13px; }
.tarot img, .cardimg, .pick img { display:block; width:100%; height:auto; border-radius:10px; border:1px solid var(--line); box-shadow:0 6px 16px rgba(20,87,184,.12); }
.tarot b { display:block; margin-top:8px; font-weight:600; line-height:1.3; } .tarot a:hover img { transform:translateY(-3px); transition:.15s; }
.cardimg { width:110px; flex:none; }
a.feature { display:block; text-decoration:none; color:var(--text); transition:.15s; } a.feature:hover { border-color:#7dbbff; transform:translateY(-2px); }
a.feature h2 { margin-bottom:6px; color:#1457b8; } a.feature p { margin:0; } a.feature small { color:var(--mute); }
.spread { text-align:center; }
.draw { font:600 16px Montserrat,sans-serif; color:#fff; background:var(--y); border:0; border-radius:14px; padding:16px 28px; cursor:pointer;
  box-shadow:0 8px 20px rgba(47,140,255,.35); } .draw:hover { filter:brightness(1.06); }
.drawn { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,220px)); justify-content:center; gap:20px; text-align:left; }
.spread.done .drawn { margin-top:24px; }
.pick { animation:deal .5s both; } .pick:nth-child(2) { animation-delay:.12s; } .pick:nth-child(3) { animation-delay:.24s; } .pick:nth-child(n+4) { animation-delay:.36s; }
@keyframes deal { from { opacity:0; transform:translateY(16px) rotateY(90deg); } }
.pick img { margin:6px 0 10px; } .pick img.rev { transform:rotate(180deg); }
.pick b { color:var(--ink); } .pick em { font-weight:500; color:var(--mute); } .pick p { margin:6px 0; font-size:14px; line-height:1.6; }
.positions { columns:2; padding-left:20px; } .positions li { margin-bottom:6px; }
/* numerology */
.chips.big > * { font-size:16px; font-weight:700; padding:8px 16px; min-width:56px; text-align:center; }
.chips a[aria-current=true] { background:var(--y); color:#fff; border-color:transparent; }
.avatar.num { font-size:26px; font-weight:700; letter-spacing:-.02em; }
.pairform input[type=date] { width:100%; margin-top:8px; font:600 16px Montserrat,sans-serif; color:var(--ink); padding:12px 16px; border-radius:14px;
  border:1.5px solid #7dbbff; background:var(--y-soft); }
.calc-out { flex-basis:100%; margin:4px 0 0; font-size:16px; color:var(--ink); }
/* calculators */
.pairform input[type=time], .pairform input[type=text], .pairform input[type=number] { width:100%; margin-top:8px; font:600 16px Montserrat,sans-serif;
  color:var(--ink); padding:12px 16px; border-radius:14px; border:1.5px solid #7dbbff; background:var(--y-soft); }
.findrow { display:flex; gap:8px; } .findrow input { flex:1; }
.pairform .find { flex:none; margin-top:8px; font:600 14px Montserrat,sans-serif; padding:0 20px; border-radius:14px; border:1.5px solid #7dbbff;
  background:#fff; color:#1457b8; cursor:pointer; box-shadow:none; }
.places { list-style:none; margin:8px 0 0; padding:0; display:grid; gap:6px; } .places li { font-size:14px; color:var(--mute); }
.places button { width:100%; text-align:left; font:500 14px Montserrat,sans-serif; color:var(--ink); padding:10px 14px; border-radius:12px;
  border:1px solid var(--line); background:#fff; cursor:pointer; } .places button:hover { border-color:#2f8cff; background:var(--y-soft); }
.wheel svg, .biochart svg { display:block; width:100%; height:auto; } .wheel { max-width:440px; margin:0 auto; }
.w-rim { fill:#eef7ff; stroke:#7dbbff; } .w-in { fill:#fff; stroke:#cfe5fb; } .w-core { fill:#f8fbff; stroke:#cfe5fb; }
.w-line { stroke:#cfe5fb; } .w-axis { stroke:#0b4fc4; stroke-width:1.5; } .w-tick { stroke:#0b1b33; }
.w-sign, .w-pl, .w-ax { text-anchor:middle; dominant-baseline:central; font-family:Montserrat,sans-serif; }
.w-sign { font-size:17px; fill:#1457b8; } .w-pl { font-size:18px; fill:#0b1b33; font-weight:600; } .w-ax { font-size:9px; font-weight:700; fill:#0b4fc4; }
.ptable { width:100%; border-collapse:collapse; font-size:14px; } .ptable th { text-align:left; font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--mute); padding:6px 8px; }
.ptable td { padding:8px; border-top:1px solid var(--line); color:var(--ink); font-weight:500; } .ptable em { color:#e0457b; font-style:normal; font-weight:700; font-size:12px; }
.aspects { list-style:none; margin:0; padding:0; font-size:14px; } .aspects li { padding:6px 0; border-top:1px solid var(--line); color:var(--ink); } .aspects small { color:var(--mute); }
.credit { font-size:12px; color:var(--mute); }
.ball { display:grid; place-items:center; width:240px; height:240px; margin:0 auto 24px; padding:30px; border-radius:50%; text-align:center;
  font-size:20px; font-weight:600; color:#fff; line-height:1.35; background:radial-gradient(circle at 35% 30%,#5bb8ff,#0b2f7a 70%); box-shadow:0 20px 50px rgba(11,79,196,.35);
  transition:opacity .3s, transform .3s; } .ball:not(.show) { opacity:.85; transform:scale(.96); }
/* footer links, quizzes */
.foot { display:flex; flex-wrap:wrap; gap:6px 18px; margin-bottom:14px; } .foot a { color:#1457b8; text-decoration:none; font-weight:600; font-size:13px; } .foot a:hover { text-decoration:underline; }
.quiz { min-height:320px; } .qbar { height:8px; border-radius:99px; background:var(--y-soft); border:1px solid var(--y-line); overflow:hidden; margin-bottom:18px; }
.qbar b { display:block; height:100%; background:var(--y); transition:width .3s; }
.qq, .qres { margin:8px 0 18px; font-size:24px; line-height:1.3; color:var(--ink); } .qres { font-size:30px; background:var(--gold); -webkit-background-clip:text; background-clip:text; color:transparent; }
.qopts { display:grid; gap:10px; } .qopts button { text-align:left; font:500 15px/1.5 Montserrat,sans-serif; color:var(--ink); padding:14px 18px; border-radius:14px;
  border:1px solid var(--line); background:#fff; cursor:pointer; transition:.12s; } .qopts button:hover { border-color:#2f8cff; background:var(--y-soft); transform:translateX(3px); }
.share { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; } .share a, .share button { font:600 14px Montserrat,sans-serif; padding:10px 18px; border-radius:99px; cursor:pointer;
  text-decoration:none; border:1px solid var(--line); background:#fff; color:var(--ink); } .share a { background:var(--y); color:#fff; border-color:transparent; }
.hero h1:only-child { margin:0; }
/* bottom gap before the footer on every page, whatever the last block is */
main.wrap { padding-bottom:64px; }
main.wrap > :last-child, main.wrap > section:last-of-type { margin-bottom:0; }
.logo-img { display:block; height:36px; width:auto; }
@media (max-width:560px) { .logo-img { height:30px; } }
/* birthday horoscope */
.daygrid { gap:6px; } .daygrid > * { min-width:40px; text-align:center; padding:6px 0; font-weight:600; }
.months { grid-template-columns:repeat(3,1fr); } @media (max-width:900px) { .months { grid-template-columns:1fr; } }
.daynav { display:grid; grid-template-columns:1fr 1fr; gap:16px; } .daynav a:last-child { text-align:right; } .daynav h2 { margin:4px 0 0; font-size:18px; }
.cusp { margin:16px 0 0; padding:14px 18px; border-radius:14px; background:var(--y-soft); border:1px solid var(--y-line); font-size:14px; }
/* horoscope by date: compact sign jump bar */
.signs.jump { grid-template-columns:repeat(12,1fr); gap:8px; } .signs.jump a { padding:10px 2px 8px; border-radius:14px; } .signs.jump i { width:36px; height:36px; font-size:18px; margin-bottom:4px; }
.signs.jump b { font-size:11px; } .prose h2 small { font-size:12px; font-weight:500; color:var(--mute); margin-left:6px; } .prose[id] { scroll-margin-top:80px; }
@media (max-width:900px) { .signs.jump { grid-template-columns:repeat(6,1fr); } }
/* html sitemap, 404 */
.sitemap { columns:3; column-gap:28px; margin:8px 0 0; padding-left:18px; font-size:14px; } .sitemap li { margin-bottom:5px; break-inside:avoid; }
.sitemap a { color:var(--text); text-decoration:none; } .sitemap a:hover { color:#1457b8; text-decoration:underline; }
@media (max-width:900px) { .sitemap { columns:1; } }
.e404 { grid-template-columns:repeat(3,1fr); } .e404 h2 { margin:0; font-size:17px; } @media (max-width:900px) { .e404 { grid-template-columns:1fr 1fr; } }
/* footer: brand + four link columns + legal line */
.fgrid { display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:28px; }
.fabout p { margin:12px 0 0; max-width:260px; line-height:1.6; }
.fgrid nav { display:grid; gap:7px; align-content:start; } .fgrid nav b { font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); margin-bottom:4px; }
.fgrid nav a { color:var(--text); text-decoration:none; font-weight:500; } .fgrid nav a:hover { color:#1457b8; text-decoration:underline; }
.fbottom { display:flex; flex-wrap:wrap; gap:6px 24px; justify-content:space-between; margin-top:28px; padding-top:18px; border-top:1px solid var(--line); font-size:12px; }
@media (max-width:900px) { .fgrid { grid-template-columns:1fr 1fr; } .fabout { grid-column:1/-1; } }
.legal h2 { margin:28px 0 10px; font-size:20px; } .legal p, .legal li { margin:0 0 12px; } .legal ul { padding-left:20px; margin:0 0 12px; }
/* mobile burger menu, CSS only: a checkbox toggles the nav panel */
.menu-toggle { position:absolute; opacity:0; pointer-events:none; } .burger, .m-only { display:none; }
@media (max-width:900px) {
  header .wrap { position:relative; }
  .burger { display:grid; place-items:center; margin-left:auto; width:44px; height:44px; border-radius:12px; border:1px solid var(--line); background:#fff; cursor:pointer; }
  .burger span, .burger span::before, .burger span::after { display:block; width:20px; height:2px; border-radius:2px; background:var(--ink); transition:.2s; }
  .burger span { position:relative; } .burger span::before, .burger span::after { content:""; position:absolute; left:0; } .burger span::before { top:-6px; } .burger span::after { top:6px; }
  .menu-toggle:checked ~ .burger span { background:transparent; } .menu-toggle:checked ~ .burger span::before { top:0; transform:rotate(45deg); } .menu-toggle:checked ~ .burger span::after { top:0; transform:rotate(-45deg); }
  .menu-toggle:focus-visible ~ .burger { outline:2px solid #0b4fc4; outline-offset:2px; }
  header nav { display:none; position:absolute; left:0; right:0; top:64px; margin:0; padding:10px 16px 16px; gap:2px; overflow:visible; white-space:normal;
    background:#f1f8ff; border-bottom:1px solid var(--line); box-shadow:0 18px 30px rgba(20,87,184,.12); max-height:calc(100vh - 64px); overflow-y:auto; }
  .menu-toggle:checked ~ nav { display:grid; grid-template-columns:1fr 1fr; }
  header nav a, header nav a.m-only { display:block; padding:12px 12px; font-size:15px; border-radius:12px; } header nav a:active { background:#fff; }
}
/* FAQ */
.faq details { background:#fff; border:1px solid var(--line); border-radius:16px; padding:0 20px; margin-bottom:10px; }
.faq summary { cursor:pointer; padding:16px 0; font-weight:600; color:var(--ink); list-style:none; display:flex; justify-content:space-between; gap:16px; }
.faq summary::-webkit-details-marker { display:none; } .faq summary::after { content:"+"; font-size:22px; line-height:1; color:#1457b8; } .faq details[open] summary::after { content:"–"; }
.faq details p { margin:0 0 16px; } .daygrid.wide > * { min-width:0; padding:6px 12px; font-weight:500; }
