* { box-sizing:border-box; }
  body { margin:0; background:var(--cream); color:var(--ink);
         font-family:var(--font-sans); font-size:15px; line-height:1.6; }
  /* Grid and flex children default to min-width:auto, which lets a wide table
     push the whole page sideways. This is the rule the signed-in mockup was
     missing on all seventeen routes. */
  .l-wrap > *, .l-sec > * { min-width:0; }
  .l-wrap { max-width:var(--wrap); margin:0 auto; padding:0 16px; }
  .l-sec { padding:38px 0; }
  .l-alt { background:var(--surface-2); border-block:1px solid var(--line-soft); }
  .l-sub { font-size:var(--text-base); line-height:1.62; color:var(--ink-2);
           margin:0; max-width:66ch; }
  /* A link in a lede had no colour and came out in the browser's own
     -webkit-link — rgb(158,158,255) in dark, #0000EE in light. .l-sub is on
     every page, so this was one page today and any page that adds a link to a
     lede tomorrow. Set here rather than on the page that happened to have
     one. */
  .l-sub a { color:var(--gold-dk); text-underline-offset:2px; }
  /* A CENTRED SECTION, for pages whose head is centred too. Lives here rather
     than in a page's stylesheet because two clusters use it now — it was
     .ai-c in ai_astrologer.py, and pages/dasha.py picked up the class without
     the rule, so its ledes rendered left under centred heads and looked like
     an oversight. margin-inline is not optional: .l-sub caps at 66ch, so
     centring the text without centring the box leaves a centred column
     sitting on the left of the wrap.
     Only the lede. Lists, tables and cards inside a .l-ctr stay left —
     centred body copy is ragged on both edges and a centred bulleted list
     stops forming a column to scan. */
  .l-ctr .l-sub { text-align:center; margin-inline:auto; }
  /* TWO LEDES GO SIDE BY SIDE. One is fine stacked: 66ch keeps a line
     readable and the grid or panel under it carries the width. Two of them
     stacked is not — they fill the left half of the band, the right half is
     empty, and under a full-width heading with a full-width panel below it
     the pair reads as a column that has been cut off rather than as air.
     Measured at 1280: 582px of a 1180px section, 49% of it, twice over.

     A track each, so both keep the SAME measure they had — this is a layout
     fix, not a wider line. Stretching one paragraph across 1180px would give
     150 characters to a line that is already at 74.

     auto-fit rather than two fixed columns, because the home page has a pair
     inside a half-width column; there they stack again rather than becoming
     two forty-character ribbons.

     .l-sub KEEPS ITS 66ch. Each track comes out at 552px against a 582px
     cap, so the track is what governs in two columns and the cap is what
     governs when it falls back to one — which is the width it has today.
     Overriding the cap to none looked tidier and gave a 736px tablet a
     93-character line, which is the fault this rule exists to avoid.

     min(400px, 100%), NOT 400px. A minimum track wider than the container
     does not shrink — it overflows it, and at 320px the whole page scrolled
     sideways by 26px. min() caps the floor at whatever room there is. */
  .l-lede { display:grid; gap:10px 44px; margin-bottom:20px;
            grid-template-columns:repeat(auto-fit, minmax(min(400px, 100%), 1fr)); }
  .l-mb { margin-bottom:20px; }
  .l-mt { margin-top:22px; }
  /* ── the header's two menus (language, account) ─────── */
  .c-dd { position:relative; }
  .c-dd > summary { list-style:none; }
  .c-dd > summary::-webkit-details-marker { display:none; }
  /* The theme toggle's size and shape (ui .c-th-t), so the three read as
     one set: 34px under a mouse, 44px under a finger. */
  .c-dd-b { display:grid; place-items:center; width:34px; height:34px; border-radius:10px;
            border:1px solid var(--line); background:var(--surface); color:var(--ink-2);
            cursor:pointer; }
  @media (pointer:coarse) { .c-dd-b { width:44px; height:44px; border-radius:12px; } }
  .c-dd-b:hover, .c-dd[open] > .c-dd-b { border-color:var(--gold); color:var(--gold-dk); }
  .c-dd-aa { font-size:13px; font-weight:700; letter-spacing:-.02em; }
  .c-dd-m { position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%); z-index:60;
            min-width:170px; padding:6px; border-radius:12px; border:1px solid var(--line);
            background:var(--surface); box-shadow:0 10px 30px rgba(0,0,0,.14);
            display:flex; flex-direction:column; gap:2px; }
  .c-dd-r { left:auto; right:0; transform:none; }
  .c-dd-i { display:flex; align-items:center; gap:10px; padding:9px 12px; border-radius:8px;
            min-height:44px; box-sizing:border-box;
            font-size:14.5px; color:var(--ink); text-decoration:none; white-space:nowrap; }
  .c-dd-i i { font-style:normal; width:18px; text-align:center; color:var(--ink-3); }
  .c-dd-i:hover { background:var(--gold-bg); }
  .c-dd-i.c-on { color:var(--gold-dk); font-weight:650; }
  .c-dd-i.c-on i { color:var(--gold-dk); }
  .l-act-u { display:flex; align-items:center; gap:8px; }
  /* Theme, language, account and the menu at 320px ran the menu button
     to the screen's edge, into the 16px gutter every page keeps. */
  @media (max-width:359px) { .l-act-u { gap:2px; } }
  /* Date and time are one question, asked once. Both values are short enough
     to sit side by side even at 360px, and pairing them stops the form
     reading as five separate chores. */
  /* Date and time side by side, and STACKED on the narrowest phones. The two
     were always a 1fr 1fr grid; what changed is that the time trigger now
     reads 09:15 PM as four flex spans rather than one string, so its
     min-content is wider than half of a 288px card and the card grew to 311 —
     7px of sideways scroll on the page the whole site links to. minmax(0,1fr)
     alone would have kept the row and clipped the readout instead. */
  .l-dt { display:grid; grid-template-columns:1fr; gap:10px; }
  @media (min-width:360px) {
    .l-dt { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  }
  /* Part of the hero's left column, not a band of its own. It anchors the
     bottom of that column so it finishes level with the form card. */
  /* Inside the form card the list sits under the button, separated by a rule
     rather than by more whitespace — it is what pressing the button gets you,
     so it should read as part of the button's promise. */
  .l-cardsub { margin:2px 0 14px; }
  .l-cardinc { margin-top:14px; padding-top:14px;
               border-top:1px solid var(--line-soft); }
  .l-inc { list-style:none; margin:0; padding:0; display:grid; gap:9px; }
  .l-inc li { display:flex; align-items:flex-start; gap:9px; }
  .l-inc svg { flex:none; margin-top:2px; color:var(--gold-dk); }
  .l-inc span { font-size:14px; line-height:1.45; color:var(--ink-2); }

  .l-samp { display:flex; align-items:center; gap:13px; padding:14px 16px;
            text-decoration:none; color:var(--ink); border:1px solid var(--line);
            border-radius:var(--r-card); background:var(--surface); }
  .l-samp:hover { border-color:var(--gold); background:var(--gold-bg); }
  /* Between the two-column breakpoint and 1024 the left column runs 9px past
     the card, because the headline takes an extra line before the columns are
     wide enough. Four pixels off the padding and four off the stack gap close
     it without anyone being able to tell the difference. */

  .l-samp > svg:first-child { flex:none; color:var(--gold-dk); }
  .l-samp > svg:last-child { flex:none; color:var(--ink-3); margin-left:auto; }
  .l-samp span { min-width:0; }
  .l-samp b { display:block; font-size:14.5px; font-weight:700; }
  .l-samp i { display:block; font-style:normal; font-size:12.5px;
              color:var(--ink-3); margin-top:2px; line-height:1.45; }
  .l-dt .c-pf { margin-bottom:0; }
  .l-dth { margin:6px 0 var(--space-3); }
  .l-mb2 { margin-bottom:16px; }

  .l-mark { display:block; width:34px; height:34px; flex:none; }
  .l-mark img { display:block; width:100%; height:100%; border-radius:19%; }

  /* proof row */
  .l-proof { background:var(--gold-bg); border-block:1px solid var(--line); }
  .l-pfr { display:grid; grid-template-columns:repeat(2,1fr); gap:0;
           padding:4px 0; }
  .l-pf { padding:18px 4px 18px 18px; }
  /* Hairlines, not a colour change, do the separating — and only between
     cells that are actually side by side, which changes at each breakpoint. */
  .l-pf:nth-child(2n) { border-left:1px solid var(--line); }
  .l-pf:nth-child(n+3) { border-top:1px solid var(--line); }
  .l-pf:first-child { padding-left:0; }
  .l-pf b { display:block; font-family:var(--font-serif); font-size:29px;
            line-height:1.05; font-weight:600; color:var(--gold-dk);
            letter-spacing:-.015em; }
  .l-pf span { display:block; font-size:13.5px; font-weight:650; margin-top:5px;
               color:var(--ink); }
  .l-pf i { display:block; font-style:normal; font-size:12.5px; color:var(--ink-3);
            margin-top:2px; }
  @media (min-width:760px) {
    .l-pfr { grid-template-columns:repeat(4,1fr); }
    .l-pf:nth-child(n+3) { border-top:0; }
    .l-pf:nth-child(n+2) { border-left:1px solid var(--line); }
  }

  /* panchang */
  .l-panch { display:grid; gap:8px; grid-template-columns:repeat(2,1fr); }
  .l-pc { padding:13px 14px; border:1px solid var(--line); border-radius:var(--r-in);
          background:var(--surface); }
  .l-pc span { display:block; font-family:var(--font-mono); font-size:9px;
               letter-spacing:.13em; color:var(--ink-3); }
  .l-pc b { display:block; font-size:15px; margin-top:5px; }
  .l-pc i { display:block; font-style:normal; font-size:12px; color:var(--ink-3); }
  .l-pc.c-t-good b { color:var(--good); } .l-pc.c-t-bad b { color:var(--bad); }
  @media (min-width:700px) { .l-panch { grid-template-columns:repeat(3,1fr); } }
  @media (min-width:1000px) { .l-panch { grid-template-columns:repeat(6,1fr); } }

  /* rashifal */
  .l-rsg { display:grid; gap:7px; grid-template-columns:repeat(3,1fr); }
  .l-rs { display:flex; flex-direction:column; align-items:center; gap:1px;
          min-height:98px; justify-content:center; padding:12px 5px;
          border:1px solid var(--line); border-radius:var(--r-in);
          background:var(--surface); text-decoration:none; color:var(--ink);
          text-align:center; }
  .l-rs:hover { border-color:var(--gold); background:var(--gold-bg); }
  .l-rs .c-sym { color:var(--gold-dk); margin-bottom:4px; }
  .l-rs b { font-size:12.5px; font-weight:650; }
  .l-rs i { font-style:normal; font-size:10.5px; color:var(--ink-3); }
  .l-rs u { text-decoration:none; font-size:12px; color:var(--gold-dk); }
  @media (min-width:560px) { .l-rsg { grid-template-columns:repeat(4,1fr); } }
  @media (min-width:900px) { .l-rsg { grid-template-columns:repeat(6,1fr); } }

  /* tools */
  .l-tools { display:grid; gap:12px; }
  .l-ti { display:grid; place-items:center; width:40px; height:40px;
          border-radius:11px; color:var(--gold-dk); background:var(--gold-bg);
          margin-bottom:11px; }
  .l-tl { display:flex; flex-wrap:wrap; gap:6px; margin-top:13px; }
  .l-tl a { display:inline-flex; align-items:center; min-height:44px;
            font-size:12.5px; font-weight:600; padding:0 14px;
            border-radius:var(--r-pill); color:var(--ink-2);
            border:1px solid var(--line); background:var(--surface);
            text-decoration:none; }
  .l-tl a:hover { color:var(--gold-dk); border-color:var(--gold);
                  background:var(--gold-bg); }
  @media (min-width:720px) { .l-tools { grid-template-columns:repeat(2,1fr); } }

  /* astrologers */
  /* .h-astro in home.py sets display on top of this and is the only caller,
     so anything layout-ish added here is dead. The phone rail lives there. */
  .l-astro { display:grid; gap:11px; grid-template-columns:repeat(1,1fr); }
  .l-ah { display:flex; align-items:center; gap:11px; }
  .l-an { display:block; font-size:15px; font-weight:700; }
  .l-as { display:block; font-size:12.5px; color:var(--ink-3); }
  .l-am { display:flex; gap:5px; margin-top:12px; }
  @media (min-width:600px) { .l-astro { grid-template-columns:repeat(2,1fr); } }
  @media (min-width:1000px) { .l-astro { grid-template-columns:repeat(4,1fr); } }

  /* The unknown-birth-time escape hatch belongs inside the time picker, where
     someone reaches it at the exact moment they realise they cannot answer. */
  .l-unk { margin-top:14px; padding-top:12px; border-top:1px solid var(--line-soft); }
  .l-faq { margin-top:16px; }


/* ── page head ────────────────────────────────────────── */
.s-crumb { padding-top:16px; }
.s-top { padding:22px 0 6px; }
.s-head { max-width:64ch; }
/* With a form beside it the header is the full width and the two columns
   share it, so the reading underneath is not squeezed into a rail. */
.s-head-2 { max-width:none; display:grid; gap:26px;
            grid-template-columns:minmax(0,1fr); align-items:start; }
.s-head-2 > * { min-width:0; }
@media (min-width:960px) {
  .s-head-2 { grid-template-columns:minmax(0,1fr) minmax(0,380px); }
}
.s-head-t { max-width:64ch; }
.s-eyebrow { display:inline-block; font-family:var(--font-mono); font-size:10px;
             letter-spacing:.14em; text-transform:uppercase; color:var(--gold-dk);
             padding:5px 10px; border-radius:var(--r-pill);
             background:var(--gold-bg); margin-bottom:14px; }
.s-h1 { font-family:var(--font-serif); font-size:clamp(27px,5.2vw,42px);
        line-height:1.08; letter-spacing:-.021em; font-weight:600;
        margin:0 0 13px; text-wrap:balance; }
.s-h1 em { font-style:normal; color:var(--gold-dk); }
.s-dek { font-size:var(--text-md); line-height:1.62; color:var(--ink-2);
         margin:0; max-width:58ch; }
/* What the page gives back, named. See page_head() for why it is only on the
   fourteen with a full birth-details form. */
.s-ret { margin-top:18px; max-width:58ch; }
.s-ret ul { margin:8px 0 0; padding:0; list-style:none; display:grid;
            gap:5px; }
.s-ret li { position:relative; padding-left:18px; font-size:14px;
            line-height:1.55; color:var(--ink-2); }
.s-ret li::before { content:''; position:absolute; left:2px; top:9px;
                    width:5px; height:5px; border-radius:50%;
                    background:var(--gold-solid); }
@media (min-width:960px) {
  .s-head-fill { align-items:stretch; }
  .s-head-fill > .s-head-t { display:flex; flex-direction:column; }
  .s-head-fill .s-meta { margin-top:auto; padding-top:16px; }
}
/* The facts a dek would otherwise carry as adjectives. Mono, so they read as
   data rather than as more sentence. */
/* THE CENTRED HEAD, for pages that are not asking for a birth time. The
   default sits beside a form card and runs to 64ch down the left; a page
   whose top is a choice rather than a form leaves that whole right-hand
   column empty, and the text reads as the caption of something that failed
   to load. Two pages want this — the tarot hub, whose top half is six
   readings, and the astrologer pages, whose top half is a roster — so it
   lives here rather than being written twice. */
.s-head-c { max-width:700px; margin-inline:auto; text-align:center; }
.s-head-c .s-eyebrow { font-size:11.5px; letter-spacing:.09em; font-weight:700;
          border:1px solid var(--gold-lt); padding:5px 13px; margin-bottom:16px; }
.s-head-c .s-h1 { font-size:clamp(30px,5.6vw,46px); }
.s-head-c .s-dek { margin-inline:auto; max-width:62ch; }
.s-head-c .s-meta { justify-content:center; }

.s-meta { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:16px;
          font-family:var(--font-mono); font-size:11px; letter-spacing:.04em;
          color:var(--ink-3); }
.s-meta span { display:flex; align-items:center; gap:7px; }
.s-meta span + span::before { content:''; width:3px; height:3px; flex:none;
          border-radius:50%; background:var(--line); margin-left:-11px; }

/* ── related ──────────────────────────────────────────── */
.s-rel { display:grid; gap:10px; grid-template-columns:1fr; }
@media (min-width:620px) { .s-rel { grid-template-columns:repeat(2,1fr); } }
@media (min-width:960px) { .s-rel { grid-template-columns:repeat(3,1fr); } }
.s-rel > * { min-width:0; }
.s-rel-i { display:flex; align-items:flex-start; gap:12px; padding:14px 16px;
           min-height:44px; text-decoration:none; color:var(--ink);
           background:var(--surface); border:1px solid var(--line);
           border-radius:var(--r-card); }
.s-rel-i:hover { border-color:var(--gold); background:var(--gold-bg); }
.s-rel-k { flex:none; display:grid; place-items:center; width:32px; height:32px;
           border-radius:9px; background:var(--gold-bg); color:var(--gold-dk); }
.s-rel-x { min-width:0; display:flex; flex-direction:column; line-height:1.4; }
.s-rel-x b { font-size:14px; font-weight:650; }
.s-rel-x i { font-style:normal; font-size:12.5px; color:var(--ink-3);
             margin-top:2px; }

/* ── closing CTA ──────────────────────────────────────── */
.s-cta { display:grid; gap:20px; align-items:center; padding:28px;
         border-radius:var(--r-card); border:1px solid var(--gold-lt);
         background:
           radial-gradient(120% 140% at 88% 0%, var(--gold-bg) 0%, transparent 64%),
           var(--surface); }
@media (min-width:820px) {
  .s-cta { grid-template-columns:1fr auto; gap:34px; padding:32px 36px; } }
.s-cta > * { min-width:0; }
.s-cta h2 { font-family:var(--font-serif); font-size:clamp(21px,3.4vw,28px);
            line-height:1.16; letter-spacing:-.018em; font-weight:600;
            margin:0 0 9px; text-wrap:balance; }
.s-cta p { font-size:var(--text-base); line-height:1.6; color:var(--ink-2);
           margin:0; max-width:52ch; }
.s-cta-b { display:flex; flex-wrap:wrap; gap:10px; }
.s-cta-b > * { flex:1 1 auto; }
.s-cta-alt { display:inline-flex; align-items:center; justify-content:center;
             gap:8px; text-decoration:none; white-space:nowrap; }
.s-cta-alt svg { color:var(--gold-dk); }

/* The banner: the page's line, then the astrologers and the reports. */
.s-cta.s-pro { display:block; position:relative; overflow:hidden;
  padding:36px 20px 26px;
  background:radial-gradient(120% 80% at 50% 0%, var(--gold-bg) 0%, transparent 70%), var(--cream); }
@media (min-width:760px) { .s-cta.s-pro { padding:44px 40px 36px; } }
/* The line art: faint, behind everything, never in the way. */
.s-pro-deco { position:absolute; top:0; pointer-events:none; display:block;
  background:var(--gold); opacity:.8;
  -webkit-mask:var(--m) no-repeat top / contain; mask:var(--m) no-repeat top / contain; }
.s-pro-sun { left:0; width:340px; aspect-ratio:340 / 250; -webkit-mask-position:left top; mask-position:left top; }
.s-pro-moon { right:0; width:404px; aspect-ratio:404 / 250; -webkit-mask-position:right top; mask-position:right top; }
/* Smaller and fainter behind a narrower headline; on a phone, a corner of
   each, inside the edge. */
@media (max-width:1099px) { .s-pro-sun { width:250px; } .s-pro-moon { width:290px; } }
@media (max-width:759px) { .s-pro-deco { opacity:.75; } .s-pro-sun { width:44%; left:-5%; }
  .s-pro-moon { width:48%; right:-4%; }
  /* The faces show at the edges, as in the mobile mock: the headline keeps
     to the middle. */
  .s-cta.s-pro .s-pro-h h2 { max-width:78%; margin-inline:auto; } }
.s-pro-h { position:relative; text-align:center; max-width:780px; margin:0 auto 28px; }
.s-cta.s-pro .s-pro-h h2 { font-size:clamp(28px,4.6vw,46px); line-height:1.08; margin:0; }
.s-cta.s-pro .s-pro-h p { margin:12px auto 0; max-width:60ch; font-size:17px; color:var(--ink-2); }
.s-pro-go1 { margin-top:20px; display:inline-flex; gap:10px; align-items:center; padding:0 26px;
  min-height:52px; font-size:16px; box-shadow:0 8px 22px -12px rgba(90,55,10,.55); }
.s-pro-g { position:relative; display:grid; gap:18px; grid-template-columns:minmax(0,1fr); }
/* Side by side from 1000px: narrower, the covers shrink under the chat card
   and no amount of tightening makes the two end together. */
@media (min-width:1000px) { .s-pro-g { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.s-pro-c { display:flex; flex-direction:column; align-items:flex-start; gap:10px; min-width:0;
  padding:22px 20px; border:1px solid var(--line); border-radius:20px; background:var(--surface);
  color:inherit; text-decoration:none; transition:border-color .15s; }
@media (min-width:760px) { .s-pro-c { padding:26px 28px; } }
.s-pro-c:hover { border-color:var(--gold-lt); }
.s-pro-c h3 { font-family:var(--font-serif); font-size:clamp(24px,2.6vw,32px); font-weight:600;
  line-height:1.15; margin:6px 0 0; color:var(--ink); }
.s-pro-t { font-size:15px; line-height:1.55; color:var(--ink-2); }
.s-pro-p { font-size:15px; font-weight:600; color:var(--gold-dk); }
.s-pro-fs { display:flex; text-decoration:none; }
.s-pro-f { width:68px; height:68px; border-radius:50%; overflow:hidden; border:3px solid var(--surface);
  margin-left:-10px; background:var(--surface-2); box-shadow:0 0 0 1px var(--gold-lt); }
.s-pro-f:first-child { margin-left:0; }
/* Six across a phone's card: 44px at 320, 54 from 380. */
@media (max-width:759px) { .s-pro-f { width:44px; height:44px; margin-left:-10px; border-width:2px; } }
@media (min-width:380px) and (max-width:759px) { .s-pro-f { width:54px; height:54px; margin-left:-8px; } }
@media (min-width:760px) { .s-pro-f { width:76px; height:76px; margin-left:-12px; } }
.s-pro-f img { width:100%; height:100%; object-fit:cover; display:block; }
/* The four, as tiles with their subject's icon. */
.s-pro-rs { display:grid; gap:8px; grid-template-columns:repeat(2,minmax(0,1fr)); align-self:stretch; margin-top:4px; }
@media (min-width:480px) { .s-pro-rs { gap:10px; } }
.s-pro-r { display:flex; align-items:center; gap:10px; min-width:0; padding:11px 12px;
  border-radius:12px; background:var(--gold-bg); }
.s-pro-r svg { flex:none; color:var(--gold-dk); }
.s-pro-r > span { display:flex; flex-direction:column; min-width:0; }
.s-pro-r b { font-size:15px; font-weight:650; color:var(--ink); }
.s-pro-r i { font-style:normal; font-size:13.5px; color:var(--ink-2); }

.s-pro-qs { display:flex; flex-direction:column; gap:8px; align-self:stretch; margin-top:4px; }
.s-pro-qs > i { font-style:normal; font-size:12px; font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink-3); }
.s-pro-q { display:flex; align-items:center; min-height:44px; padding:10px 14px; border-radius:12px;
  background:var(--gold-bg); color:var(--ink); font-size:14.5px; line-height:1.4; text-decoration:none; }
.s-pro-q:hover { background:var(--gold-lt); }
.s-pro-bs { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; align-self:stretch; margin-top:6px; }
/* A price abroad is longer than ₹5 ("Chat from $0.10/min"), and at 320
   the nowrap button ran past the screen. Wrap there instead. */
@media (max-width:374px) { .s-pro-bs .c-btn { white-space:normal; flex-wrap:wrap; text-align:center; } }
@media (min-width:1000px) { .s-pro-bs { grid-template-columns:repeat(2,minmax(0,1fr)); } }
/* The rate sits beside its label, one line. */
.s-pro-bs .c-btn { display:flex; justify-content:center; align-items:center; gap:8px; white-space:nowrap;
  min-height:52px; font-size:16px; }
.s-pro-bs .c-as-rate { font-weight:650; }
.s-pro-fine { font-size:13px; color:var(--ink-3); }
/* ── THE PHONE (Rohit's mobile mock, 28 Sep 2026) ──
   The chat card centred — faces, heading, the line under it — with the
   four as one-row tiles, icon beside the name; Chat and Call full width,
   one over the other. The reports card leads with its heading, then the
   covers, the words, and Explore full width. Everything a little closer. */
@media (max-width:759px) {
  .s-cta.s-pro { padding:24px 12px 14px; }
  .s-pro-h { margin-bottom:18px; }
  .s-cta.s-pro .s-pro-h p { margin-top:8px; font-size:16px; }
  .s-pro-go1 { margin-top:14px; width:100%; max-width:360px; justify-content:center; }
  .s-pro-g { gap:14px; }
  .s-pro-c { padding:18px 12px; gap:10px; border-radius:18px; }
  .s-pro-g > .s-pro-c:first-child { align-items:center; text-align:center; }
  .s-pro-g > .s-pro-c:first-child .s-pro-fs { justify-content:center; }
  .s-pro-c h3 { margin-top:2px; font-size:26px; }
  .s-pro-rs { gap:8px; }
  .s-pro-r { flex-direction:row; align-items:center; gap:7px; padding:9px 8px; text-align:left; }
  .s-pro-r svg { width:20px; height:20px; }
  .s-pro-r b { font-size:14px; white-space:nowrap; }
  .s-pro-r i { font-size:12.5px; line-height:1.3; }
  .s-pro-rs { gap:6px; }
  .s-pro-bs { gap:8px; margin-top:2px; }
  .s-pro-bs .c-btn { min-height:50px; }
  .s-pro-fine { text-align:center; }
  .s-pro-rep h3 { order:-1; margin:0; text-align:center; align-self:stretch; }
  .s-pro-rep .s-pro-cvs { gap:10px; }
  .s-pro-go { align-self:stretch; justify-content:center; margin-top:4px; }
}
/* The smallest phones: a 66px name column cannot hold "Astro Vaidya" beside
   an icon, so the icon goes above it there. */
@media (max-width:359px) {
  .s-pro-r { flex-direction:column; align-items:flex-start; gap:5px; }
  .s-pro-r b { white-space:normal; }
}

/* THE TWO CARDS END TOGETHER (Rohit, 28 Sep 2026: "the right card has
   empty space, shrink the left to match"). Side by side the covers set the
   height, and they shrink with the card: from 1280px the two already match
   to a few pixels; between 1000 and 1279 the chat card is tightened —
   smaller faces, slimmer tiles, closer rows — to fit under the covers.
   Both cards' buttons sit on the bottom edge, so what little is left over
   falls above them and the two rows of buttons line up. */
.s-pro-g > .s-pro-c:first-child .s-pro-bs { margin-top:auto; }
@media (min-width:1000px) and (max-width:1279px) {
  .s-pro-g > .s-pro-c:first-child { gap:8px; }
  .s-pro-g > .s-pro-c:first-child .s-pro-f { width:58px; height:58px; margin-left:-10px; }
  .s-pro-g > .s-pro-c:first-child .s-pro-f:first-child { margin-left:0; }
  .s-pro-g > .s-pro-c:first-child h3 { margin-top:2px; font-size:clamp(22px,2.2vw,28px); }
  .s-pro-g > .s-pro-c:first-child .s-pro-t { font-size:14px; }
  .s-pro-rs { gap:8px; margin-top:2px; }
  .s-pro-r { padding:8px 12px; gap:10px; }
  .s-pro-r svg { width:22px; height:22px; }
  .s-pro-r b { font-size:14.5px; }
  .s-pro-r i { font-size:13px; }
  .s-pro-bs .c-btn { min-height:48px; }
}
/* The reports: the covers big, then the words, then the button. */
.s-pro-cvs { display:flex; gap:14px; align-items:flex-start; align-self:stretch; }
.s-pro-cv { flex:1 1 0; max-width:190px; border-radius:6px; overflow:hidden;
  box-shadow:0 10px 24px -14px rgba(60,30,5,.6); }
.s-pro-cv img { width:100%; height:auto; display:block; }
.s-pro-rep h3 { margin-top:10px; }
.s-pro-go { margin-top:auto; display:inline-flex; align-items:center; gap:8px; min-height:52px;
  padding:0 24px; font-size:16px; }
.s-pro-c .s-pro-p + .s-pro-go { margin-top:12px; }

  .mu-note { font-size:15px; line-height:1.7; color:var(--ink-2);
             max-width:74ch; margin:0 0 20px; }
  /* margin-inline:auto as well as text-align. The 74ch cap means the paragraph
     is narrower than the wrap on a wide screen, so centring the text alone
     would have centred it inside a block still sitting hard left. Sits under
     a section_head(centre=True); the group headings further down stay left,
     over the card grids they label. */
  .mu-note-c { margin-left:auto; margin-right:auto; text-align:center;
               max-width:68ch; text-wrap:balance; }
  .mu-sub { font-size:13.5px; line-height:1.65; color:var(--ink-3);
            max-width:76ch; margin:14px 0 0; }

  /* The seven pills are ui.link_bar and carry no styling from this page. All
     that is left is the gap under them and the panels they switch, which is
     display:none here rather than in the component because six of the seven
     are always off. */
  .mu-days { margin:0 0 18px; cursor:pointer; }
  .mu-dpane { display:none; }

  /* the four windows of the day — the bar's legend, keyed to it by colour */
  .mu-wg { display:grid; gap:10px; grid-template-columns:1fr;
           margin-top:14px; }
  @media (min-width:560px) { .mu-wg { grid-template-columns:repeat(2,1fr); } }
  @media (min-width:1000px) { .mu-wg { grid-template-columns:repeat(4,1fr); } }
  .mu-win { min-width:0; padding:14px 16px; border:1px solid var(--line);
            border-radius:var(--r-card); background:var(--surface); }
  .mu-win-g { border-color:var(--gold); background:var(--gold-bg);
              border-left:3px solid var(--good); }
  .mu-win-bad { border-left:3px solid var(--bad); }
  .mu-win i { display:block; font-style:normal; font-size:9.5px;
              letter-spacing:.06em; text-transform:uppercase;
              color:var(--ink-3); font-weight:600; }
  /* 17px and tabular, so a range fits one line at a quarter of 1000px and the
     minutes line up down the row. */
  .mu-win b { display:block; margin:6px 0 3px; font-size:17px;
              font-weight:750; color:var(--ink); line-height:1.2;
              font-variant-numeric:tabular-nums; }
  .mu-win-no { color:var(--ink-2) !important; }
  .mu-off { color:var(--ink-3); font-style:italic; }
  .mu-win em { display:block; font-style:normal; font-size:11.5px;
               line-height:1.45; color:var(--ink-3); }

  /* the activity directory */
  .mu-g { margin-bottom:26px; }
  .mu-g:last-child { margin-bottom:0; }
  .mu-ag { display:grid; gap:10px; grid-template-columns:1fr; }
  @media (min-width:640px) { .mu-ag { grid-template-columns:repeat(2,1fr); } }
  @media (min-width:1000px) { .mu-ag { grid-template-columns:repeat(4,1fr); } }
  .mu-a { display:block; min-width:0; padding:15px 16px;
          border:1px solid var(--line); border-radius:var(--r-card);
          background:var(--surface); text-decoration:none;
          transition:border-color .18s, transform .18s; }
  .mu-a:hover { border-color:var(--gold); transform:translateY(-1px); }
  .mu-a > b { display:block; font-size:15px; font-weight:650; color:var(--ink); }
  .mu-a > i { display:block; font-style:normal; font-size:12px;
              color:var(--ink-3); margin-top:2px; }

  /* The answer, given the weight of an answer. "Next" is the one fact a
     reader is scanning for, so it is the largest thing on the card after the
     name — the old card buried it at 11.5px at the end of a sentence. */
  .mu-a-next { display:block; margin:12px 0 10px;
               padding-top:11px; border-top:1px solid var(--line-soft);
               font-size:16px; font-weight:700; color:var(--ink);
               font-variant-numeric:tabular-nums; }
  .mu-a-next em { display:block; font-style:normal; font-family:var(--font-mono);
                  font-size:9.5px; letter-spacing:.1em; text-transform:uppercase;
                  font-weight:600; color:var(--ink-3); margin-bottom:2px; }

  /* Three segments, and the word beside them. The meter alone would be one
     more thing to decode; the word alone would give the grid nothing to
     compare at a glance. Together the eye ranks the cards and the text says
     what the ranking means. */
  .mu-a-av { display:flex; align-items:center; gap:9px; }
  .mu-a-m { flex:none; display:flex; gap:4px; }
  /* FILLED VERSUS HOLLOW, not two colours. Two solid tones cannot do this job
     with the palette available: an empty segment has to be visible against the
     card (3:1) AND distinct from a filled one, and nothing clears both in both
     themes. Measured against the card / against --gold-dk:
        --line     1.25 / 8.82 (dark)   1.35 / 3.98 (light)  — invisible
        --ink-3    5.29 / 2.08 (dark)   5.44 / 1.01 (light)  — same as filled
        --gold-lt  3.50 / 3.15 (dark)   1.60 / 3.37 (light)  — invisible on cream
     A ring instead of a fill makes the difference a shape, which survives any
     theme: --ink-3 clears 3:1 against the card in both, and a hollow dot is
     not a solid one whatever the two tones happen to measure against
     each other. */
  .mu-a-m i { display:block; width:8px; height:8px; border-radius:50%;
              background:transparent;
              box-shadow:inset 0 0 0 1.5px var(--ink-3); }
  .mu-a-m1 i:nth-child(-n+1), .mu-a-m2 i:nth-child(-n+2),
  .mu-a-m3 i:nth-child(-n+3) { background:var(--gold-dk); box-shadow:none; }
  .mu-a-av em { font-style:normal; font-size:11.5px; color:var(--ink-3);
                font-variant-numeric:tabular-nums; }

  .mu-a-f { display:block; margin-top:11px; font-size:11.5px;
            color:var(--ink-3); }

  /* the rules the tradition asks for */
  .mu-rg { display:grid; gap:12px; grid-template-columns:1fr; }
  @media (min-width:760px) { .mu-rg { grid-template-columns:repeat(2,1fr); } }
  .mu-r { min-width:0; padding:15px 17px; border:1px solid var(--line);
          border-radius:var(--r-card); background:var(--surface); }
  .mu-r-bad { background:var(--rail); }
  .mu-r b { display:block; font-size:13px; font-weight:700; color:var(--ink);
            margin-bottom:8px; }
  .mu-r ul { margin:0; padding-left:16px; }
  .mu-r li { font-size:12.5px; line-height:1.6; color:var(--ink-2); }

  /* the five limbs, and the four windows */
  .mu-dg { display:grid; gap:10px; grid-template-columns:1fr; }
  @media (min-width:720px) { .mu-dg { grid-template-columns:repeat(2,1fr); } }
  .mu-d { min-width:0; padding:14px 16px; border:1px solid var(--line);
          border-radius:var(--r-card); background:var(--surface); }
  .mu-d b { display:block; font-size:13.5px; font-weight:700; color:var(--ink);
            margin-bottom:4px; }
  .mu-d p { margin:0; font-size:12.5px; line-height:1.6; color:var(--ink-2); }

  /* Full width and centred, unlike .mu-note above it. The 78ch cap is gone on
     purpose: this is the footnote for the whole section, so it sits under the
     bar at the bar's width rather than in a column of its own. */
  .mu-city { padding:14px 20px; border-radius:12px; background:var(--gold-bg);
             font-size:13px; line-height:1.65; color:var(--ink-2);
             text-align:center; text-wrap:pretty; margin-top:16px; }
  /* ── the year, three months across ──────────────────────────────────
     One card per month, each a real calendar. Three across is the shape a
     wall calendar has and the reason it works: twelve months fit four rows
     deep, and a reader compares September against October by looking left,
     not by scrolling.

     EVERYTHING BETWEEN THE TWO MARKERS BELOW IS SHARED with /home/muhurat/,
     which draws the same calendar from an API response. calendar_css()
     slices between them — see the note on it for why that is a slice and no
     longer a regex. A calendar rule written outside the markers is a rule
     the signed-in page does not get. */
  /* CALENDAR-SHARED-START */
  .mu-cals { display:grid; gap:14px; grid-template-columns:1fr; margin:0 0 4px; }
  @media (min-width:600px) { .mu-cals { grid-template-columns:repeat(2,1fr); } }
  @media (min-width:940px) { .mu-cals { grid-template-columns:repeat(3,1fr); } }

  .mu-mo { min-width:0; padding:15px 16px 13px; background:var(--surface);
           border:1px solid var(--line); border-radius:var(--r-card); }
  /* A month the scan never reached. Dimmed rather than dropped: January to
     July still happened, and a month left off the page is indistinguishable
     from a month with nothing in it. Opacity, not filter:blur — blur on 12px
     tabular numerals turns them to mush at this size, and the point is that
     the reader can still read the dates, just not mistake them for answers. */
  /* NOT opacity. Fading a past month by opacity:.55 and its gone days by a
     further .4 multiplied out to 0.22, and the day numbers measured 1.00:1 —
     invisible, and text a screen reader still reads out. A month that has
     passed is still content, so it is de-emphasised with tokens that stay
     legible: no fill on the card, lighter ink, lighter weight. */
  .mu-mo-off { background:transparent; }
  .mu-mo-off .mu-mo-h b { font-weight:500; color:var(--ink-2); }
  .mu-mo-off .mu-mo-h span { color:var(--ink-3); font-weight:400; }
  .mu-mo-now { border-color:var(--gold); }
  .mu-mo-h { display:flex; align-items:baseline; gap:8px; margin-bottom:11px;
             padding-bottom:9px; border-bottom:1px solid var(--line-soft); }
  .mu-mo-h b { font-family:var(--font-serif); font-size:17px; font-weight:600;
               color:var(--ink); letter-spacing:.01em; }
  .mu-mo-h em { font-style:normal; font-size:10.5px; color:var(--ink-3); }
  .mu-mo-h span { margin-left:auto; flex:none; font-family:var(--font-mono);
                  font-size:9.5px; letter-spacing:.07em; text-transform:uppercase;
                  color:var(--gold-dk); font-weight:600; }

  .mu-cal { display:grid; grid-template-columns:repeat(7,minmax(0,1fr));
            gap:2px; container-type:inline-size; }
  /* Under 280px the seven columns are 38px each, and two lines of type in a
     38px circle is cramping rather than information. The score drops out and
     the date keeps the cell; the day list under the calendar carries the
     number at every width, and the cell's title still holds it. */
  @container (max-width:280px) { .mu-cal-on em { display:none; }
                                 .mu-cal-on b { font-size:12px; } }
  .mu-cal-w { padding-bottom:5px; text-align:center; font-family:var(--font-mono);
              font-size:8.5px; letter-spacing:.02em; text-transform:uppercase;
              color:var(--ink-3); }
  /* सोम मंगल: +2 and untracked on a Hindi page (review, 28 Sep 2026). */
  :root[lang^="hi"] .mu-cal-w { font-size:13px; letter-spacing:0; }
  /* Same geometry as a real cell, or a row made entirely of padding collapses
     to nothing and the calendar comes out five rows instead of six — which is
     what left the short months with empty space under their list. */
  .mu-cal-p { aspect-ratio:1; visibility:hidden; }
  /* Square cells, so a lit day is a circle rather than a lozenge. Every other
     day is just a number — no border, no fill — because twenty-eight boxes
     around twenty-eight numbers is what made the first version look like a
     spreadsheet. */
  .mu-cal-c { aspect-ratio:1; display:grid; place-items:center;
              border-radius:50%; font-variant-numeric:tabular-nums; }
  .mu-cal-c b { font-size:12px; font-weight:500; color:var(--ink-2);
                line-height:1; }
  /* A lit cell holds two lines in a 47px circle: the date, and its score
     under it. line-height is pulled in to 1 on both — at the default the pair
     is 30px tall inside a 47px circle and sits visibly low. */
  .mu-cal-on { align-content:center; gap:1px; }
  .mu-cal-on b { font-weight:750; font-size:11.5px; line-height:1; }
  /* THREE BANDS, ALL GOLD. A ladder of one hue rather than green-amber-red:
     every one of these days clears the bar, so the weakest is "good, and the
     others are better" — colouring a 58% day red would say the engine
     rejected it, which is the opposite of why it is on the calendar.
     Solid, tinted, outlined — an order that survives greyscale.
     The top band is green rather than gold, because that is the one a reader
     is hunting for and gold is the page's ordinary furniture. A ring and a
     green score rather than a green disc: filled, it was the loudest thing on
     a page of twelve calendars, and the date inside it had to fight the fill.
     The ring is 2px where the others are 1px, so the order still reads by
     weight and not only by hue. */
  .mu-cal-t3 { box-shadow:inset 0 0 0 2px var(--good); }
  .mu-cal-t3 b { color:var(--ink); }
  .mu-cal-t3 em { color:var(--good); }
  .mu-cal-t2 { background:var(--gold-bg);
               box-shadow:inset 0 0 0 1px var(--gold); }
  .mu-cal-t2 b, .mu-cal-t2 em { color:var(--gold-dk); }
  .mu-cal-t1 { box-shadow:inset 0 0 0 1px var(--gold-lt); }
  .mu-cal-t1 b, .mu-cal-t1 em { color:var(--ink-2); }
  .mu-cal-on em { font-style:normal; font-size:8px; font-weight:650;
                  line-height:1; letter-spacing:-.02em; }
  /* Looked at and turned down is not the same as never looked at. Faded
     rather than dashed: at 44px a dashed ring is louder than the lit day it
     sits beside, and the month header already says "5-31 only". */
  .mu-cal-gone b { color:var(--ink-3); font-weight:400; }
  /* A day that qualified but has gone keeps the gold, in the muted pair —
     --gold-dk on --gold-bg, which is a designed combination and passes in
     both themes, where gold-solid at 40% opacity did not. */
  /* NEUTRAL, not a fourth shade of gold. A spent day was painted --gold-bg
     with --gold-dk on it, which is pixel-for-pixel the 65-79% band — so a
     date in February looked like a middling day still on offer instead of one
     that had gone. Grey is the one thing none of the three live bands is.
     (Not opacity: a faded circle drops its text under 4.5:1, which is what
     the first version of this did at 1.00:1.) */
  .mu-cal-on.mu-cal-gone { background:var(--surface-2); box-shadow:none; }
  .mu-cal-on.mu-cal-gone b,
  .mu-cal-on.mu-cal-gone em { color:var(--ink-3); font-weight:600; }
  .mu-cal-now { box-shadow:inset 0 0 0 1.5px var(--gold); }
  .mu-cal-now b { color:var(--ink); font-weight:750; }

  /* ── the phone, and the score inside a lit day ──────────────────────
     Inside the markers, so the signed-in calendar gets it too. Last in the
     shared block, because a media query adds no specificity and a block
     above the rules it overrides loses at equal weight.

     The month header's year and its count were 10.5 and 9.5. The score in a
     lit cell was 8, which is the smallest number on either page and the one
     a reader is actually comparing between days — it goes to 11 where the
     cell can hold it, and where it cannot the container rule above already
     drops it and hands the number to the day card and the cell's title. At
     390 the cell is 45px and holds an 11.5px date over an 11px score with
     room to spare; below a 280px calendar there is no size that works and
     the rule above is why. */
  @media (max-width:640px) {
    .mu-mo-h em { font-size:11px; }
    .mu-mo-h span { font-size:11px; }
    .mu-cal-on em { font-size:11px; }
    /* The seven weekday heads. This one is not a change of mind about 8.5 so
       much as the first time the signed-in page has had the rule at all: the
       old extractor emitted a stray closing brace immediately above it, and
       a stray brace swallows the rule that follows it whole — so this page
       drew MON TUE WED at an inherited 15px while the public one drew 8.5,
       and neither was 11. */
    .mu-cal-w { font-size:11px; }
  }
  /* CALENDAR-SHARED-END */

  /* The key for the three bands. Colour with no legend is a puzzle. */
  .mu-key { display:flex; flex-wrap:wrap; gap:8px 18px; margin:0 0 16px;
            justify-content:center; font-size:11.5px; color:var(--ink-3); }
  .mu-key span { display:inline-flex; align-items:center; gap:7px; }
  .mu-key i { flex:none; width:15px; height:15px; aspect-ratio:auto;
              border-radius:50%; }

  .mu-key .mu-cal-gone { background:var(--gold-bg); box-shadow:none; }

  /* ── the list under each month ───────────────────────────────────── */
  /* FIXED HEIGHT, and the list inside it scrolls. Twelve month cards whose
     depth follows their content make a ragged three-column grid — January
     with four dates sits beside a February with one, and every row of the
     grid is as tall as its worst card. A constant box makes the year read as
     a year, and the count in the heading is what says how much is below the
     fold. */
  .mu-mb { margin-top:12px; padding-top:11px; height:196px; overflow:hidden;
           border-top:1px solid var(--line-soft);
           display:flex; flex-direction:column; }
  .mu-mb-h { flex:none; margin:0 0 9px; font-size:12.5px; line-height:1.5;
             color:var(--ink-2); }
  .mu-mb-h b { color:var(--ink); font-weight:700; }
  .mu-mb-no { color:var(--ink-3); }

  .mu-dls { flex:1 1 auto; min-height:0; list-style:none; margin:0;
            padding:0 9px 0 0; display:grid; gap:10px; align-content:start;
            overflow-y:auto; scrollbar-width:thin; }
  .mu-dl { display:grid; grid-template-columns:1fr auto auto; gap:2px 8px;
           align-items:baseline; padding-bottom:9px;
           border-bottom:1px solid var(--line-soft); }
  .mu-dl:last-child { padding-bottom:0; border-bottom:0; }
  .mu-dl-d { display:flex; align-items:baseline; gap:6px; min-width:0; }
  .mu-dl-d b { font-size:12.5px; font-weight:700; color:var(--ink);
               white-space:nowrap; }
  .mu-dl-d i { font-style:normal; font-size:10.5px; color:var(--ink-3); }
  /* The verdict, on the same line as the date. A reader scrolling a month is
     scanning this column and nothing else. */
  .mu-dl-x { font-family:var(--font-mono); font-size:8.5px; letter-spacing:.07em;
             text-transform:uppercase; font-weight:600; color:var(--ink-3);
             white-space:nowrap; }
  .mu-dl-yes { color:var(--good); }
  .mu-dl-b { grid-column:1 / -1; display:grid; gap:1px; }
  .mu-dl-t { font-size:11.5px; color:var(--ink-2);
             font-variant-numeric:tabular-nums; }
  .mu-dl-t em { font-style:normal; color:var(--ink-3); }
  .mu-dl-w { font-size:11px; line-height:1.45; color:var(--ink-3);
             overflow-wrap:anywhere; }
  /* A day that has gone still belongs on a year view, but it is not on offer.
     Weight and ink rather than opacity, for the same reason as the month. */
  .mu-dl-gone .mu-dl-d b { color:var(--ink-2); font-weight:600; }
  .mu-dl-gone .mu-dl-yes { color:var(--ink-3); }

  .mu-none { padding:16px 18px; border:1px dashed var(--line);
             border-radius:var(--r-card); font-size:13.5px; line-height:1.65;
             color:var(--ink-2); }

/* ── THE PHONE, AND IT GOES LAST ──────────────────────────────────────────
   A media query adds no specificity, so a block written above the rules it
   overrides loses at equal specificity. All four of these are set earlier in
   this same file.

   OUTSIDE THE CALENDAR MARKERS, deliberately. Everything between
   CALENDAR-SHARED-START and CALENDAR-SHARED-END is sliced out verbatim by
   muhurat_app.py for the signed-in page, and _check_shared() asserts at build
   time that the slice is whole and its braces balance. None of these four
   rules is part of the calendar, so none of them belongs inside it.

   .mu-dl-x IS THE VERDICT. "Auspicious" and "Inauspicious" — the one word on
   a date row that this whole page exists to produce — were the SMALLEST type
   on it, at 8.5px, under a 17px date. A muhurat page that has to be squinted
   at to find which days are the answer is not doing the only job it has.
   The tracking is what makes it read as a label; the smallness never was. */
@media (max-width:640px) {
  .mu-dl-x { font-size:11px; }
  /* The weekday under each date. A date without its day of the week is half
     an answer when the thing being planned is a wedding. */
  .mu-dl-d i { font-size:11px; }
  /* The hub's two: "Next" over the soonest date on each activity card, and
     the label over each window. Both name the number underneath them. */
  .mu-a-next em { font-size:11px; }
  .mu-win i { font-size:11px; }
}
#mud-0:checked ~ .mu-dp-0,
#mud-0:checked ~ * .mu-dp-0 { display:block; }
#mud-0:checked ~ label[for="mud-0"],
#mud-0:checked ~ * label[for="mud-0"] { border-color:var(--gold); background:var(--gold-bg); }
#mud-0:focus-visible ~ label[for="mud-0"],
#mud-0:focus-visible ~ * label[for="mud-0"] { outline:2px solid var(--gold); outline-offset:2px; }
#mud-1:checked ~ .mu-dp-1,
#mud-1:checked ~ * .mu-dp-1 { display:block; }
#mud-1:checked ~ label[for="mud-1"],
#mud-1:checked ~ * label[for="mud-1"] { border-color:var(--gold); background:var(--gold-bg); }
#mud-1:focus-visible ~ label[for="mud-1"],
#mud-1:focus-visible ~ * label[for="mud-1"] { outline:2px solid var(--gold); outline-offset:2px; }
#mud-2:checked ~ .mu-dp-2,
#mud-2:checked ~ * .mu-dp-2 { display:block; }
#mud-2:checked ~ label[for="mud-2"],
#mud-2:checked ~ * label[for="mud-2"] { border-color:var(--gold); background:var(--gold-bg); }
#mud-2:focus-visible ~ label[for="mud-2"],
#mud-2:focus-visible ~ * label[for="mud-2"] { outline:2px solid var(--gold); outline-offset:2px; }
#mud-3:checked ~ .mu-dp-3,
#mud-3:checked ~ * .mu-dp-3 { display:block; }
#mud-3:checked ~ label[for="mud-3"],
#mud-3:checked ~ * label[for="mud-3"] { border-color:var(--gold); background:var(--gold-bg); }
#mud-3:focus-visible ~ label[for="mud-3"],
#mud-3:focus-visible ~ * label[for="mud-3"] { outline:2px solid var(--gold); outline-offset:2px; }
#mud-4:checked ~ .mu-dp-4,
#mud-4:checked ~ * .mu-dp-4 { display:block; }
#mud-4:checked ~ label[for="mud-4"],
#mud-4:checked ~ * label[for="mud-4"] { border-color:var(--gold); background:var(--gold-bg); }
#mud-4:focus-visible ~ label[for="mud-4"],
#mud-4:focus-visible ~ * label[for="mud-4"] { outline:2px solid var(--gold); outline-offset:2px; }
#mud-5:checked ~ .mu-dp-5,
#mud-5:checked ~ * .mu-dp-5 { display:block; }
#mud-5:checked ~ label[for="mud-5"],
#mud-5:checked ~ * label[for="mud-5"] { border-color:var(--gold); background:var(--gold-bg); }
#mud-5:focus-visible ~ label[for="mud-5"],
#mud-5:focus-visible ~ * label[for="mud-5"] { outline:2px solid var(--gold); outline-offset:2px; }
#mud-6:checked ~ .mu-dp-6,
#mud-6:checked ~ * .mu-dp-6 { display:block; }
#mud-6:checked ~ label[for="mud-6"],
#mud-6:checked ~ * label[for="mud-6"] { border-color:var(--gold); background:var(--gold-bg); }
#mud-6:focus-visible ~ label[for="mud-6"],
#mud-6:focus-visible ~ * label[for="mud-6"] { outline:2px solid var(--gold); outline-offset:2px; }#mud-0:checked ~ label[for="mud-0"],
#mud-0:checked ~ * label[for="mud-0"] { background:var(--gold-solid); border-color:var(--gold-solid); color:var(--gold-solid-text); }
#mud-0:checked ~ label[for="mud-0"] i,
#mud-0:checked ~ * label[for="mud-0"] i { color:var(--gold-solid-text); opacity:.75; }
#mud-1:checked ~ label[for="mud-1"],
#mud-1:checked ~ * label[for="mud-1"] { background:var(--gold-solid); border-color:var(--gold-solid); color:var(--gold-solid-text); }
#mud-1:checked ~ label[for="mud-1"] i,
#mud-1:checked ~ * label[for="mud-1"] i { color:var(--gold-solid-text); opacity:.75; }
#mud-2:checked ~ label[for="mud-2"],
#mud-2:checked ~ * label[for="mud-2"] { background:var(--gold-solid); border-color:var(--gold-solid); color:var(--gold-solid-text); }
#mud-2:checked ~ label[for="mud-2"] i,
#mud-2:checked ~ * label[for="mud-2"] i { color:var(--gold-solid-text); opacity:.75; }
#mud-3:checked ~ label[for="mud-3"],
#mud-3:checked ~ * label[for="mud-3"] { background:var(--gold-solid); border-color:var(--gold-solid); color:var(--gold-solid-text); }
#mud-3:checked ~ label[for="mud-3"] i,
#mud-3:checked ~ * label[for="mud-3"] i { color:var(--gold-solid-text); opacity:.75; }
#mud-4:checked ~ label[for="mud-4"],
#mud-4:checked ~ * label[for="mud-4"] { background:var(--gold-solid); border-color:var(--gold-solid); color:var(--gold-solid-text); }
#mud-4:checked ~ label[for="mud-4"] i,
#mud-4:checked ~ * label[for="mud-4"] i { color:var(--gold-solid-text); opacity:.75; }
#mud-5:checked ~ label[for="mud-5"],
#mud-5:checked ~ * label[for="mud-5"] { background:var(--gold-solid); border-color:var(--gold-solid); color:var(--gold-solid-text); }
#mud-5:checked ~ label[for="mud-5"] i,
#mud-5:checked ~ * label[for="mud-5"] i { color:var(--gold-solid-text); opacity:.75; }
#mud-6:checked ~ label[for="mud-6"],
#mud-6:checked ~ * label[for="mud-6"] { background:var(--gold-solid); border-color:var(--gold-solid); color:var(--gold-solid-text); }
#mud-6:checked ~ label[for="mud-6"] i,
#mud-6:checked ~ * label[for="mud-6"] i { color:var(--gold-solid-text); opacity:.75; }
  /* ── the six most asked, with their next three dates ── */
  .mu-fg { display:grid; gap:12px; grid-template-columns:1fr; }
  @media (min-width:640px) { .mu-fg { grid-template-columns:repeat(2,minmax(0,1fr)); } }
  @media (min-width:1000px) { .mu-fg { grid-template-columns:repeat(3,minmax(0,1fr)); } }
  .mu-f { display:flex; flex-direction:column; min-width:0; padding:16px 18px 14px;
          border:1px solid var(--line); border-radius:var(--r-card); background:var(--surface);
          text-decoration:none; transition:border-color .18s, transform .18s; }
  .mu-f:hover { border-color:var(--gold); transform:translateY(-1px); }
  .mu-f-h { display:block; padding-bottom:10px; border-bottom:1px solid var(--line-soft); }
  .mu-f-h b { display:block; font-family:var(--font-serif); font-size:19px; font-weight:600;
              color:var(--ink); }
  .mu-f-h i { display:block; font-style:normal; font-size:12.5px; color:var(--ink-3); margin-top:2px; }
  .mu-f-l { list-style:none; margin:0; padding:0; flex:1; }
  .mu-f-l li { display:grid; gap:1px; padding:10px 0; border-bottom:1px solid var(--line-soft); }
  .mu-f-l li:last-child { border-bottom:0; }
  .mu-f-l b { font-size:15px; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; }
  .mu-f-l span { font-size:12.5px; color:var(--ink-2); overflow-wrap:anywhere; }
  .mu-f-l em { font-style:normal; font-size:12.5px; color:var(--good);
               font-variant-numeric:tabular-nums; }
  .mu-f-no { margin:12px 0; font-size:13px; color:var(--ink-3); flex:1; }
  .mu-f-all { display:flex; align-items:center; gap:4px; margin-top:8px; font-size:13px;
              font-weight:650; color:var(--gold-dk); }
  .mu-times { margin:14px 0 0; font-size:13px; line-height:1.6; color:var(--ink-3);
              text-align:center; text-wrap:pretty; }

  /* ── how a day is chosen: three steps ── */
  .mu-st { display:grid; gap:12px; grid-template-columns:1fr; counter-reset:mu-st; }
  @media (min-width:860px) { .mu-st { grid-template-columns:repeat(3,minmax(0,1fr)); } }
  .mu-st > div { min-width:0; padding:16px 18px; border:1px solid var(--line);
                 border-radius:var(--r-card); background:var(--surface); }
  .mu-st b { display:flex; align-items:baseline; gap:8px; font-size:15px; font-weight:700;
             color:var(--ink); margin-bottom:6px; }
  .mu-st b::before { counter-increment:mu-st; content:counter(mu-st);
                     font-family:var(--font-mono); font-size:12px; color:var(--gold-dk); }
  .mu-st p { margin:0; font-size:13.5px; line-height:1.65; color:var(--ink-2); }
  .mu-strip-w { margin-top:22px; }

  /* ── the next dates ── */
  .mu-lead { margin:0 auto 16px; max-width:70ch; text-align:center; font-size:15px; line-height:1.65;
             color:var(--ink-2); text-wrap:balance; }
  .mu-lead b { color:var(--ink); }
  .mu-ns { display:grid; gap:10px; grid-template-columns:1fr; }
  @media (min-width:640px) { .mu-ns { grid-template-columns:repeat(2,minmax(0,1fr)); } }
  @media (min-width:1000px) { .mu-ns { grid-template-columns:repeat(3,minmax(0,1fr)); } }
  .mu-n { display:flex; gap:14px; min-width:0; padding:14px 16px; border:1px solid var(--line);
          border-radius:var(--r-card); background:var(--surface); }
  .mu-n:first-child { border-color:var(--gold); background:var(--gold-bg); }
  .mu-n-d { flex:none; width:52px; text-align:center; }
  .mu-n-d b { display:block; font-family:var(--font-serif); font-size:28px; line-height:1; color:var(--ink); }
  .mu-n-d i { display:block; font-style:normal; font-size:12px; font-weight:650; color:var(--gold-dk);
              margin-top:4px; }
  .mu-n-t { display:grid; gap:3px; min-width:0; }
  .mu-n-w { font-size:15px; font-weight:700; color:var(--ink); }
  .mu-n-p { font-size:12.5px; color:var(--ink-2); overflow-wrap:anywhere; }
  .mu-n-m, .mu-n-b { font-size:12.5px; color:var(--ink-2); font-variant-numeric:tabular-nums;
                     overflow-wrap:anywhere; }
  .mu-n-b { color:var(--good); font-weight:650; }
  .mu-n-m em, .mu-n-b em { font-style:normal; font-weight:650; margin-right:5px; color:var(--ink-3); }
  .mu-n-b em { color:inherit; }
  .mu-more { display:flex; justify-content:center; margin-top:14px; }
  /* the months gone, folded above this one */
  .mu-past { margin:0 0 14px; }
  .mu-past > summary { cursor:pointer; list-style:none; padding:12px 16px; border:1px dashed var(--line);
                       border-radius:var(--r-card); font-size:13.5px; font-weight:650; color:var(--ink-2); }
  .mu-past > summary::-webkit-details-marker { display:none; }
  .mu-past > summary::before { content:'+ '; font-family:var(--font-mono); color:var(--gold-dk); }
  .mu-past[open] > summary::before { content:'– '; }
  .mu-past[open] > .mu-cals { margin-top:14px; }

/* ── the small offer (strip) ───────────────────────────── */
/* Its own section adds no padding: between two padded sections it stacked
   to 88px above and 106 below (Rohit, 27 Sep 2026: "too much space"). */
section.l-sec.of-strip-sec { padding-top:0; padding-bottom:0; }
/* ...except above a tinted band, which would start flush under the strip. */
section.l-sec.of-strip-sec:has(+ .l-alt) { padding-bottom:38px; }
.of-strip { display:grid; grid-template-columns:auto 1fr; gap:12px 14px; align-items:center;
            padding:14px 16px; border-radius:var(--r-card); border:1px solid var(--gold-lt);
            background:var(--surface); }
@media (min-width:760px) { .of-strip { grid-template-columns:auto 1fr auto; } }
.of-strip-who { display:block; line-height:0; }
.of-strip .of-ph { width:48px; height:48px; border-radius:50%; object-fit:cover;
                   border:2px solid var(--gold-lt); }
.of-strip-t { display:flex; flex-direction:column; gap:2px; min-width:0; }
.of-strip-t b { font-size:16px; color:var(--ink); }
.of-strip-t span { font-size:14.5px; line-height:1.5; color:var(--ink-2); }
.of-strip-b { display:flex; gap:8px; flex-wrap:wrap; grid-column:1 / -1; }
@media (min-width:760px) { .of-strip-b { grid-column:auto; } }
.of-strip-b .c-btn { gap:7px; flex:1 1 150px; justify-content:center; white-space:nowrap; }
@media (min-width:760px) { .of-strip-b .c-btn { flex:0 0 auto; } }
.of-strip-b .c-as-rate { font-weight:600; opacity:.85; }
/* ── the ask panel ─────────────────────────────────────── */
.of-ask { display:grid; gap:18px; padding:22px; border-radius:var(--r-card);
          border:1px solid var(--gold-lt);
          background:radial-gradient(120% 140% at 100% 0%, var(--gold-bg) 0%, transparent 62%),
                     var(--surface); }
@media (min-width:860px) {
  .of-ask { grid-template-columns:230px minmax(0,1fr); gap:30px; padding:28px 32px; } }
.of-ask > * { min-width:0; }
.of-who { display:flex; gap:13px; align-items:center; text-decoration:none; color:var(--ink);
          align-self:start; }
@media (min-width:860px) { .of-who { flex-direction:column; align-items:flex-start; } }
.of-who .of-ph { width:64px; height:64px; border-radius:50%; object-fit:cover; flex:none;
                 border:2px solid var(--gold-lt); }
.of-who-t { display:flex; flex-direction:column; gap:2px; min-width:0; }
.of-who-t b { font-size:16px; }
.of-who-t i { font-style:normal; font-size:13px; color:var(--ink-2); }
.of-who-t em { font-style:normal; font-size:12.5px; color:var(--ink-3);
               display:flex; align-items:center; gap:5px; flex-wrap:wrap; }
.of-t { font-family:var(--font-serif); font-size:clamp(20px,3.2vw,25px); line-height:1.2;
        letter-spacing:-.015em; font-weight:600; margin:0 0 8px; text-wrap:balance; }
.of-d { margin:0 0 16px; color:var(--ink-2); font-size:var(--text-md); line-height:1.6;
        max-width:62ch; }
.of-lbl { margin:0 0 9px; font-size:12.5px; font-weight:650; color:var(--ink-3); }
.of-qs { display:flex; flex-direction:column; gap:8px; margin-bottom:18px; }
.of-q { display:flex; align-items:flex-start; gap:10px; padding:11px 14px; min-height:44px;
        border-radius:12px; border:1px solid var(--line); background:var(--surface);
        color:var(--ink); text-decoration:none; font-size:14.5px; line-height:1.45; }
.of-q svg { flex:none; margin-top:2px; color:var(--gold-dk); }
.of-q:hover { border-color:var(--gold); background:var(--gold-bg); }
.of-buy { display:flex; flex-wrap:wrap; gap:10px; }
.of-buy .c-btn { flex:1 1 170px; justify-content:center; gap:8px; }
.of-buy .c-as-rate { font-weight:700; }
.of-buy .c-as-rate::before { content:'\00b7'; margin-right:7px; opacity:.6; }
.of-gift { display:flex; gap:8px; align-items:flex-start; margin:14px 0 0; font-size:13.5px;
           color:var(--ink-2); line-height:1.5; }
.of-gift[hidden] { display:none; }
.of-gift svg { flex:none; margin-top:2px; color:var(--gold-dk); }

/* ── reports ───────────────────────────────────────────── */
.of-rp { display:grid; gap:12px; }
@media (min-width:900px) { .of-rp { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* ── the phone bar ─────────────────────────────────────── */
.of-stk, .of-stk-sp { display:none; }
@media (max-width:819px) {
  .of-stk { display:block; position:fixed; left:0; right:0; bottom:0; z-index:40;
            padding:9px 12px calc(9px + env(safe-area-inset-bottom));
            background:var(--surface); border-top:1px solid var(--line);
            box-shadow:0 -8px 24px rgba(0,0,0,.08);
            transform:translateY(110%); transition:transform .25s ease; }
  .of-stk.on { transform:none; }
  .of-stk-sp { display:block; height:76px; }
}
@media (prefers-reduced-motion:reduce) { .of-stk { transition:none; } }
.of-stk-a { display:flex; align-items:center; gap:11px; text-decoration:none; color:var(--ink); }
.of-stk-a .of-ph { width:38px; height:38px; border-radius:50%; object-fit:cover; flex:none; }
.of-stk-t { display:flex; flex-direction:column; min-width:0; flex:1; line-height:1.3; }
.of-stk-t b { font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.of-stk-t i { font-style:normal; font-size:12.5px; color:var(--ink-3); white-space:nowrap;
              overflow:hidden; text-overflow:ellipsis; }
.of-stk-a .c-btn { flex:none; }
  .p-city { display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
            gap:8px 14px; margin:0 auto 20px; }
  .p-city-f { display:flex; align-items:center; width:min(100%, 380px); height:46px;
              border:1px solid var(--gold-lt); border-radius:999px; background:var(--surface);
              padding:0 14px 0 12px; gap:8px; }
  .p-city-f:focus-within { border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-bg); }
  .p-city-pin { display:grid; place-items:center; color:var(--gold-dk); cursor:text; flex:none; }
  .p-city-f input { flex:1; min-width:0; height:100%; border:0; outline:0; background:transparent;
                    font:inherit; font-size:15.5px; font-weight:600; color:var(--ink); }
  .p-city-f input::placeholder { font-weight:400; color:var(--ink-3); }
  .p-city-s { display:grid; place-items:center; color:var(--ink-3); flex:none; }
  .p-city-f .c-ac-l { left:0; right:0; top:calc(100% + 6px); }
  .p-city-f .c-ac-o em { display:none; }
  .p-city-x { font-size:14px; font-weight:600; color:var(--gold-dk); }

  .mu-busy { opacity:.45; transition:opacity .2s; }
  .mu-cnote { margin:10px auto 0; max-width:70ch; text-align:center; font-size:13px; line-height:1.6;
              color:var(--ink-3); }

  /* ── THE ROSTER CARDS IN A ROW (was the dashboard's own) ── */
  .d-ags { display:grid; gap:15px; align-items:start; }
  /* The tags are plain labels here, so a tap on them opens the astrologer
     like the rest of the card (the shared card lifts them above its link). */
  .d-ags .c-as:has(.c-as-n) .c-as-tags { position:static; z-index:auto; pointer-events:none; }
  .d-cell { display:flex; }
  .d-cell > * { flex:1; }
  /* SYMMETRIC CARDS. Side by side, every card is the same six rows of the
     grid they sit in (subgrid, twice: the cell, then the card): name,
     speciality, rating, tags, languages, buttons. A name that wraps or a
     longer speciality makes that row taller in all three, so the stars, the
     tags, the languages and both price buttons line up across the row and
     the cards end at one height. The card's own head wrappers step aside
     (display:contents) so their parts can sit on those rows. */
  @media (min-width:900px) {
    .d-ags { grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:0; align-items:stretch; }
    .d-ags > .d-cell { display:grid; grid-row:span 6; grid-template-rows:subgrid;
                       row-gap:0; margin-bottom:15px; }
    .d-ags .c-as { grid-row:span 6; display:grid; grid-template-rows:subgrid; row-gap:0;
                   grid-template-columns:64px minmax(0,1fr); column-gap:13px; }
    .d-ags .c-as-h, .d-ags .c-as-id { display:contents; }
    .d-ags .c-as-h > :first-child { grid-column:1; grid-row:1 / span 3; align-self:start; }
    .d-ags .c-as-id > b { grid-column:2; grid-row:1; align-self:end; }
    .d-ags .c-as-sp { grid-column:2; grid-row:2; align-self:start; }
    .d-ags .c-as-r { grid-column:2; grid-row:3; align-self:start; flex-wrap:wrap; }
    .d-ags .c-as-tags { grid-column:1 / -1; grid-row:4; align-self:start; }
    .d-ags .c-as-lang { grid-column:1 / -1; grid-row:5; align-self:start; }
    .d-ags .c-as-buy { grid-column:1 / -1; grid-row:6; align-self:end; }
  }

  /* ── ASK AN ASTROLOGER, under a page's reading ── */
  .c-askb { margin-top:22px; }
  .c-askb-h { margin:0 0 4px; font-family:var(--font-sans); font-size:16px;
              font-weight:700; color:var(--ink); }
  .c-askb-why { margin:0 0 12px; padding:8px 12px; border-radius:10px;
                background:var(--gold-bg); font-size:13.5px; line-height:1.55;
                color:var(--ink-2); max-width:760px; }
  .c-askb-why:empty { display:none; }
  .c-askb-all { display:inline-flex; align-items:center; min-height:44px;
                font-size:14px; font-weight:600; color:var(--gold-dk); }
  :root[data-lang="hi"] .c-askb-why { font-size:15px; }
  /* ON A PHONE, A ROW YOU SWIPE (Rohit, 27 Sep 2026: "optimize for phone").
     Three roster cards stacked were ~1,300px under every page that offers
     them. One whole card and the edge of the next says there are more; the
     row bleeds to the screen edge (.d-main's 16px), snaps card by card, and
     fades at its right edge — the report banner's way of saying it goes on. */
  @media (max-width:640px) {
    .c-askb .d-ags { grid-template-columns:none; grid-auto-flow:column; grid-auto-columns:86%;
      gap:12px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory;
      scroll-padding:0 16px; margin:0 -16px; padding:0 16px 8px; scrollbar-width:none;
      -webkit-mask-image:linear-gradient(90deg, #000 calc(100% - 28px), transparent);
      mask-image:linear-gradient(90deg, #000 calc(100% - 28px), transparent); }
    .c-askb .d-ags::-webkit-scrollbar { display:none; }
    .c-askb .d-ags > .d-cell { scroll-snap-align:start; margin:0; }
  }

  .rp-pub .d-main { margin-inline:auto; }
  /* ── the redesigned report pages, prefix rv- ─────────────────────── */
  .rv { --rv-hi: 'Kohinoor Devanagari','Noto Serif Devanagari','Noto Sans Devanagari',
               'Mangal','Nirmala UI',var(--font-serif); }
  .rv [lang="hi"] { font-family:var(--rv-hi); }
  /* THE SITE'S WIDTH, not a narrower one of its own (Rohit, 28 Sep 2026:
     "its content width is lower compared to other pages, the content seems
     centered"). It was 1120px against every other public page's --wrap
     (1360px, lib/common .l-wrap), so at 1440 the shelf sat 240px narrower,
     floating in the middle. */
  .rv-wrap { max-width:var(--wrap); margin-inline:auto; padding-inline:16px; }
  .rv-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px;
            min-height:44px; padding:0 18px; border-radius:10px; font-weight:650;
            font-size:14.5px; text-decoration:none; background:var(--gold-solid);
            color:var(--gold-solid-text); border:1px solid var(--gold-solid); }
  .rv-btn:hover { filter:brightness(1.06); }
  .rv-btn:focus-visible, .rv a:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
  .rv-btn-ghost { background:transparent; color:var(--ink); border-color:var(--line); }

  /* ── the offer banner ── ITS OWN PALETTE, ONE PER THEME. It was one look
     in both, the deep brown of the report covers, and on the cream light
     page that was a near-black slab from another app. Light is now the warm
     saffron-cream of a sweet-shop offer board, with the dark covers standing
     out on it; dark keeps the brown, with a gold edge so it does not melt
     into the page. The tokens are the banner's own (--bn-*) because the
     discount seal and the covers need the same warmth in both. */
  .rv-ban { --bn-bg:linear-gradient(115deg, #FFF4DE 0%, #FDE6B8 55%, #F8D08A 100%);
            --bn-line:rgba(138,90,11,.07); --bn-ink:#2B170A; --bn-accent:#7A4E08;
            --bn-mute:#6E5638; --bn-btn:#5A3313; --bn-btn-ink:#FFF3DF; --bn-btn-hi:#6E4119;
            --bn-dot:rgba(90,51,19,.28); --bn-arrow:rgba(255,255,255,.55);
            --bn-edge:rgba(138,90,11,.22); --bn-shadow:0 10px 28px rgba(138,90,11,.16);
            --bn-fade:#FBDCA0; }
  :root[data-theme="dark"] .rv-ban {
            --bn-bg:radial-gradient(120% 140% at 85% 20%, #5A3313 0%, #2B170A 55%, #1B0F07 100%);
            --bn-line:rgba(232,201,138,.05); --bn-ink:#FFF3DF; --bn-accent:#E8C98A;
            --bn-mute:#CDB693; --bn-btn:#E8C98A; --bn-btn-ink:#2B170A; --bn-btn-hi:#F1D9A6;
            --bn-dot:rgba(255,243,223,.35); --bn-arrow:rgba(0,0,0,.2);
            --bn-edge:rgba(232,201,138,.3); --bn-shadow:0 0 0 1px rgba(232,201,138,.08), 0 14px 34px rgba(0,0,0,.45);
            --bn-fade:#3A200C; }
  .rv-ban-w { background:var(--surface-2); padding:14px 0 0; }
  .rv-ban { position:relative; border-radius:16px; overflow:hidden;
            background:var(--bn-bg); color:var(--bn-ink); border:1px solid var(--bn-edge);
            box-shadow:var(--bn-shadow); }
  .rv-ban::before { content:""; position:absolute; inset:0; pointer-events:none;
            background:repeating-linear-gradient(45deg, var(--bn-line) 0 1px, transparent 1px 22px),
                       repeating-linear-gradient(-45deg, var(--bn-line) 0 1px, transparent 1px 22px); }
  /* The kundli line drawing gave way to each slide's photo. */
  .rv-ban-mark { display:none; }
  .rv-ban-track { position:relative; z-index:1; display:flex; overflow-x:auto; scroll-snap-type:x mandatory;
            scrollbar-width:none; overscroll-behavior-x:contain; }
  .rv-ban-track::-webkit-scrollbar { display:none; }
  .rv-ban-track:focus-visible { outline:2px solid var(--bn-accent); outline-offset:-4px; }
  /* min-width:0 and border-box: with the photo's side padding a slide's
     min-content ran wider than the track, every slide after the first
     started early, and the last one's photo showed down its left edge. */
  .rv-ban-s { position:relative; flex:0 0 100%; min-width:0; max-width:100%; box-sizing:border-box;
            overflow:hidden; scroll-snap-align:start; display:grid;
            grid-template-columns:96px 1fr; gap:16px; align-items:center; padding:128px 18px 46px; }
  @media (min-width:760px) { .rv-ban-s { grid-template-columns:150px minmax(0,1fr); gap:30px;
            padding:26px 42% 50px 40px; } }
  .rv-ban-s > :not(.rv-ban-ph) { position:relative; z-index:1; }
  /* THE PHOTO. On a phone a band across the top that fades down into the
     banner; wider, the right side of the slide, fading left into it. The
     text column stops where the photo starts (padding-right above), so no
     word is ever set on a picture. --bn-fade is the banner's colour at
     that edge, per theme. */
  .rv-ban-ph { position:absolute; left:0; right:0; top:0; height:150px; z-index:0; pointer-events:none; }
  .rv-ban-ph img { display:block; width:100%; height:100%; object-fit:cover; object-position:var(--pos, 50% 50%); }
  .rv-ban-ph::after { content:""; position:absolute; inset:0;
            background:linear-gradient(180deg, transparent 35%, var(--bn-fade) 100%); }
  @media (min-width:760px) {
    .rv-ban-ph { left:auto; top:0; bottom:0; height:auto; width:46%; }
    .rv-ban-ph::after { background:linear-gradient(90deg, var(--bn-fade) 0%, transparent 38%); }
  }
  .rv-ban-art { position:relative; }
  .rv-ban-art img { display:block; width:100%; height:auto; border-radius:8px; transform:rotate(-3deg);
            box-shadow:0 12px 26px rgba(0,0,0,.45); border:1px solid rgba(232,201,138,.35); }
  /* THE SEAL — the discount as a stamped roundel, the shape a sale sticker
     takes on any Indian shop shelf. Empty (and so hidden) until the
     catalogue confirms an offer for this report. */
  /* Bottom corner of the cover, clear of the book's own title and of the
     headline beside it. */
  .rv-ban-seal { position:absolute; left:-10px; bottom:-10px; }
  @media (min-width:760px) { .rv-ban-seal { left:auto; right:-18px; bottom:-8px; } }
  .rv-ban-seal .c-rp-off { display:grid; place-items:center; width:54px; height:54px; margin:0;
            border-radius:50%; background:#C0392B; color:#FFF3DF; border:2px dashed rgba(255,243,223,.7);
            box-shadow:0 0 0 3px #C0392B; font-family:var(--font-sans); font-style:normal;
            font-size:11.5px; font-weight:800; line-height:1.05; text-align:center; letter-spacing:0;
            text-transform:uppercase; padding:4px; transform:rotate(8deg); flex-basis:auto; }
  .rv-ban-seal .c-rp-off[hidden] { display:none; }
  @media (min-width:760px) { .rv-ban-seal .c-rp-off { width:78px; height:78px; font-size:16px; } }
  .rv-ban-k { margin:0; font-size:12.5px; letter-spacing:.02em; color:var(--bn-accent); }
  .rv-ban-k > span:first-of-type:not(.rv-ban-tag) { text-transform:uppercase; letter-spacing:.08em;
            font-family:var(--font-mono); font-size:11px; }
  .rv-ban-tag:not([hidden]) { display:inline-block; margin-right:8px; padding:2px 8px; border-radius:99px;
            background:var(--bn-btn); color:var(--bn-btn-ink); font-weight:700; font-size:11px; }
  .rv-ban-tag i { font-style:normal; }
  .rv-ban-t { margin:6px 0 0; font-family:var(--font-serif); font-size:clamp(19px,3.4vw,30px);
            line-height:1.22; color:var(--bn-ink); text-wrap:balance; max-width:26ch; }
  .rv-ban-t[lang="hi"] { font-family:var(--rv-hi); font-weight:600; line-height:1.4; }
  .rv-ban-pay { margin-top:12px; display:flex; flex-wrap:wrap; align-items:center; gap:10px 14px; }
  .rv .rv-ban-pr { display:flex; align-items:baseline; gap:8px; width:auto; margin:0;
            justify-content:flex-start; font-family:var(--font-sans); }
  .rv .rv-ban-pr b { flex-basis:auto; font-size:26px; font-weight:800; color:var(--bn-ink);
            font-variant-numeric:tabular-nums; }
  .rv .rv-ban-pr s { font-size:14px; color:var(--bn-mute); }
  .rv-ban-buy { display:inline-flex; align-items:center; min-height:44px; padding:0 18px;
            border-radius:10px; background:var(--bn-btn); color:var(--bn-btn-ink); font-weight:750;
            font-size:14.5px; text-decoration:none; border:0; }
  .rv-ban-buy:hover { background:var(--bn-btn-hi); }
  .rv-ban-more { display:inline-flex; align-items:center; min-height:44px;
            color:var(--bn-accent); font-size:13.5px; font-weight:600; text-decoration:underline;
            text-underline-offset:3px; }
  .rv-ban a:focus-visible, .rv-ban button:focus-visible { outline:2px solid var(--bn-ink); outline-offset:2px; }
  /* z-index:2, above the track's 1: the track covers the whole banner, so
     without it every arrow and dot click landed on a slide instead. */
  .rv-ban-nav { position:absolute; left:0; right:0; bottom:10px; z-index:2; display:flex;
            align-items:center; justify-content:center; gap:12px; pointer-events:none; }
  .rv-ban-nav > * { pointer-events:auto; }
  .rv-ban-dots { display:flex; gap:4px; }
  .rv-ban-dot { width:24px; height:24px; border:0; background:none; padding:0; cursor:pointer;
            display:grid; place-items:center; }
  .rv-ban-dot::before { content:""; width:8px; height:8px; border-radius:99px; background:var(--bn-dot);
            transition:width .25s; }
  .rv-ban-dot[aria-current="true"]::before { width:22px; background:var(--bn-accent); }
  .rv-ban-arrow { width:32px; height:32px; border-radius:50%; border:1px solid var(--bn-edge);
            background:var(--bn-arrow); color:var(--bn-ink); font-size:20px; line-height:1; cursor:pointer;
            display:grid; place-items:center; }
  @media (prefers-reduced-motion:reduce) { .rv-ban-dot::before { transition:none; } }
  @media (pointer:coarse) { .rv-ban-arrow { width:44px; height:44px; } .rv-ban-dot { width:44px; height:44px; }
                             .rv-ban-dots { gap:0; } }
  .rv-ban-w + .rv-head { padding-top:22px; }

  /* head */
  .rv-head { position:relative; overflow:hidden; background:var(--surface-2);
             border-bottom:1px solid var(--line); padding:34px 0 26px; }
  .rv-head .rv-wrap { position:relative; }
  .rv-mark { fill:none; stroke:var(--gold); stroke-width:1.2; vector-effect:non-scaling-stroke; }
  /* The header's kundli: a real chart, not an outline (_head_chart), in the
     signed-in pages' dress — gold frame and lines, the lagna's box shaded,
     the grahas in the page's face, big enough to read. Its own column beside
     the heading, the lede and the four facts (it sat on top of the fourth),
     and not at all on a phone. */
  @media (min-width:760px) {
    .rv-head .rv-wrap:has(> .rv-hchart) { display:grid; grid-template-columns:minmax(0,1fr) 240px;
                                          column-gap:36px; align-items:center; }
    .rv-head .rv-wrap:has(> .rv-hchart) > :not(.rv-hchart) { grid-column:1; }
    .rv-hchart { grid-column:2; grid-row:1 / span 4; }
  }
  .rv-hchart .c-nc { max-width:none; border-radius:12px; overflow:hidden;
                     box-shadow:0 0 0 1.5px var(--gold); background:var(--surface); }
  .rv-hchart .c-nc-bg { fill:var(--gold-lt); }
  .rv-hchart .c-nc-h1 { fill:var(--gold-bg); }
  .rv-hchart .c-nc-p { font-family:var(--font-sans); font-size:18px; font-weight:700; }
  .rv-hchart .c-nc-s { font-size:13.5px; font-weight:600; }
  .rv-hchart .c-nc-rx { font-size:10px; }
  @media (max-width:759px) { .rv-hchart { display:none; } }
  /* ONE LINE, NOT TWO: the page's 20ch cap broke "Reports read from your
     kundli" after "read". */
  .rv[lang] .rv-head .rv-h1 { max-width:none; }
  .rv-sec-h b[lang="en"], .rv-shelf-h h2 b[lang="en"] { font-family:var(--font-serif);
      font-weight:600; }
  .rv-pick-a > b[lang="en"] { font-family:var(--font-serif); font-size:16px; }
  .rv-facts b[lang="en"] { font-family:var(--font-sans); font-size:14px; }
  .rv-moment span[lang="en"] { color:var(--gold-dk); }
  /* The Hindi page: the Hindi name is the title, the English one under it. */
  .rv[lang="hi"] .rv-btn { font-family:var(--rv-hi); font-weight:600; }
  .rv-t-hi { font-family:var(--rv-hi); font-weight:600; font-size:19px; color:var(--ink); }
  .rv-c-en { font-size:12.5px; color:var(--ink-3); margin-top:1px; }
  .rv-c-en:empty, .rv-dh1 span:empty { display:none; }
  .rp-pv-gap { display:none; }
  .rv[lang="hi"] .rv-h1 { font-family:var(--rv-hi); font-weight:600; line-height:1.3; max-width:22ch; }
  .rv[lang="hi"] .rv-c-d, .rv[lang="hi"] .rv-lede, .rv[lang="hi"] .rv-tell li,
  .rv[lang="hi"] .rv-steps span, .rv[lang="hi"] .rv-pandit p, .rv[lang="hi"] .rv-who p
    { line-height:1.7; }
  .rv[lang="hi"] .rv-steps b, .rv[lang="hi"] .rv-pandit b, .rv[lang="hi"] .rv-who b
    { font-family:var(--rv-hi); font-weight:600; }
  .rv[lang="hi"] .rv-eyebrow { font-size:16px; }
  .rv[lang="hi"] .rv-ask { font-family:var(--rv-hi); font-size:14px; letter-spacing:0;
      text-transform:none; color:var(--ink-2); }
  .rv-eyebrow { margin:0 0 4px; font-size:17px; color:var(--gold-dk); font-weight:600; }
  .rv-h1 { margin:0; font-family:var(--font-serif); font-size:clamp(27px,5vw,40px);
           line-height:1.12; color:var(--ink); text-wrap:balance; max-width:20ch; }
  .rv-lede { margin:10px 0 0; max-width:60ch; font-size:15.5px; line-height:1.6;
             color:var(--ink-2); }
  .rv-facts { list-style:none; margin:20px 0 0; padding:0; display:grid; gap:10px;
              grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rv-facts li { display:flex; flex-direction:column; gap:2px; padding:10px 12px;
                 background:var(--surface); border:1px solid var(--line); border-radius:10px; }
  .rv-facts b[lang="hi"] { font-size:14.5px; color:var(--ink); font-weight:600; }
  .rv-facts span { font-size:12.5px; line-height:1.4; color:var(--ink-3); }
  .rv-facts span b { color:var(--ink-2); font-weight:650; }
  @media (min-width:760px) { .rv-facts { grid-template-columns:repeat(4,minmax(0,1fr)); } }

  /* moment picker */
  .rv-ask { margin:26px 0 10px; font-family:var(--font-mono); font-size:11px;
            letter-spacing:.08em; text-transform:uppercase; color:var(--ink-3); }
  .rv-pick { display:grid; gap:10px; grid-template-columns:1fr; }
  @media (min-width:640px) { .rv-pick { grid-template-columns:repeat(3,minmax(0,1fr)); } }
  .rv-pick-a { display:grid; grid-template-columns:auto 1fr auto; grid-template-rows:auto auto;
               column-gap:12px; align-items:center; padding:12px 14px; border-radius:12px;
               background:var(--surface); border:1px solid var(--line); text-decoration:none;
               color:var(--ink); }
  .rv-pick-a:hover { border-color:var(--gold); }
  .rv-pick-a > .rv-pick-i { grid-row:1/3; grid-column:1; display:grid; place-items:center;
               width:38px; height:38px; border-radius:50%; background:var(--gold-bg);
               color:var(--gold-dk); }
  .rv-pick-a > b { grid-row:1; grid-column:2; font-size:16.5px; font-weight:600; line-height:1.3; }
  .rv-pick-a > span:not(.rv-pick-i) { grid-row:2; grid-column:2; font-size:12.5px; color:var(--ink-3); }
  .rv-pick-a > i { grid-row:1/3; grid-column:3; font-style:normal; font-family:var(--font-mono);
                 font-size:11px; color:var(--ink-3); }

  /* shelves */
  .rv-shelf { margin-top:38px; scroll-margin-top:84px; }
  .rv-shelf-h { display:grid; grid-template-columns:auto 1fr; column-gap:12px;
                align-items:center; margin-bottom:14px; padding-bottom:12px;
                border-bottom:1px solid var(--line); }
  .rv-shelf-i { grid-row:1/3; display:grid; place-items:center; width:42px; height:42px;
                border-radius:50%; border:1px solid var(--gold-lt); color:var(--gold-dk); }
  .rv-shelf-h h2 { margin:0; display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; }
  .rv-shelf-h h2 b { font-size:clamp(21px,3.4vw,26px); font-weight:600; color:var(--ink); }
  .rv-shelf-h h2 span { font-family:var(--font-serif); font-size:16px; color:var(--ink-2); }
  .rv-shelf-h p { grid-column:2; margin:3px 0 0; font-size:13.5px; line-height:1.5;
                  color:var(--ink-3); max-width:70ch; }
  .rv-grid { display:grid; gap:12px; grid-template-columns:1fr; }
  @media (min-width:900px) { .rv-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }

  /* the card */
  .rv-c { position:relative; display:grid; grid-template-columns:78px 1fr; gap:14px;
          padding:14px; border-radius:14px; background:var(--surface);
          border:1px solid var(--line); }
  .rv-c:hover { border-color:var(--gold-lt); }
  @media (min-width:520px) { .rv-c { grid-template-columns:96px 1fr; } }
  /* THE NARROWEST PHONES: a smaller cover and a three-line description, so
     a card stays under a third of a 320px phone's screen. */
  @media (max-width:360px) {
    .rv-c { grid-template-columns:62px 1fr; gap:11px; padding:12px; }
    .rv-c-d { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
    .rv-c-pay { padding-top:10px; gap:8px; }
    .rv .rv-pr b { font-size:19px; }
  }
  .rv-c-cov img, .rv-c-img { display:block; width:100%; height:auto; border-radius:6px;
                             box-shadow:0 2px 8px rgba(23,18,12,.18); }
  .rv-c-b { min-width:0; display:flex; flex-direction:column; }
  .rv-c-t { margin:0; font-family:var(--font-serif); font-size:18px; line-height:1.25; }
  .rv-c-a { color:var(--ink); text-decoration:none; }
  .rv-c-a::after { content:""; position:absolute; inset:0; border-radius:14px; }
  .rv-c-d { margin:6px 0 0; font-size:13.5px; line-height:1.5; color:var(--ink-2); }
  .rv-c-m { margin:6px 0 0; display:flex; flex-wrap:wrap; gap:4px 12px; font-size:12px;
            color:var(--ink-3); }
  .rv-c-m span { white-space:nowrap; }
  .rv-c-pay { margin-top:auto; padding-top:12px; display:flex; align-items:center;
              justify-content:space-between; gap:10px; flex-wrap:wrap; }
  .rv-c-btn { position:relative; z-index:1; min-height:44px; font-size:14px; }
  /* THE SHARED PRICE HOOKS, laid out for this card. .c-rp-pr and its
     children carry global rules for the old portrait card (figure on its own
     line, badge full width, mono); scoped here to one row. */
  .rv .rv-pr { display:flex; flex-wrap:nowrap; align-items:baseline; justify-content:flex-start;
               gap:8px; width:auto; margin:0; font-family:var(--font-sans); }
  .rv .rv-pr b { flex-basis:auto; font-size:21px; font-weight:700; color:var(--ink);
                 letter-spacing:-.01em; font-variant-numeric:tabular-nums; min-width:3.2ch; }
  .rv .rv-pr s { font-size:13px; color:var(--ink-3); }
  .rv .rv-pr .c-rp-off { flex-basis:auto; margin:0; width:auto; font-family:var(--font-sans);
               font-size:11.5px; letter-spacing:0; text-transform:none; padding:2px 7px; }
  .rv .rv-pr .c-rp-off[hidden] { display:none; }
  .rv-tag:not([hidden]) { position:absolute; top:-9px; right:14px; z-index:1;
             font-size:11px; font-weight:650; padding:2px 9px; border-radius:99px;
             background:var(--gold-solid); color:var(--gold-solid-text); }
  .rv-tag i { font-style:normal; }

  /* the package */
  .rv-bundle { grid-template-columns:1fr; background:var(--gold-bg); border-color:var(--gold-lt); }
  @media (min-width:900px) { .rv-bundle { grid-column:1/-1; grid-template-columns:auto 1fr; align-items:center; } }
  .rv-b-fan { display:flex; padding-left:14px; }
  .rv-b-cov { width:52px; margin-left:-14px; }
  .rv-b-cov img { display:block; width:100%; height:auto; border-radius:5px;
                  box-shadow:0 2px 6px rgba(23,18,12,.25); border:2px solid var(--surface); }

  /* how it works, and the pandit */
  .rv-how { margin:48px 0 40px; }
  .rv-sec-h { margin:0 0 14px; display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; }
  .rv-sec-h b { font-size:clamp(20px,3vw,24px); font-weight:600; color:var(--ink); }
  .rv-sec-h span { font-family:var(--font-serif); font-size:16px; color:var(--ink-2); }
  .rv-steps { list-style:none; counter-reset:rv; margin:0; padding:0; display:grid; gap:10px; }
  @media (min-width:760px) { .rv-steps { grid-template-columns:repeat(3,minmax(0,1fr)); } }
  .rv-steps li { counter-increment:rv; position:relative; padding:14px 14px 14px 52px;
                 border-radius:12px; background:var(--surface); border:1px solid var(--line); }
  .rv-steps li::before { content:counter(rv); position:absolute; left:14px; top:14px;
                         width:26px; height:26px; border-radius:50%; display:grid; place-items:center;
                         font-size:13px; font-weight:700; background:var(--gold-bg);
                         color:var(--gold-dk); border:1px solid var(--gold-lt); }
  .rv-steps b { display:block; font-size:15px; color:var(--ink); }
  .rv-steps span { display:block; margin-top:3px; font-size:13px; line-height:1.5; color:var(--ink-2); }
  .rv-pandit { margin-top:12px; display:grid; grid-template-columns:auto 1fr; gap:14px;
               align-items:center; padding:16px; border-radius:12px;
               border:1px dashed var(--gold-lt); background:var(--surface-2); }
  .rv-pandit-m .rv-mark { width:52px; height:52px; display:block; opacity:.9; }
  .rv-pandit b { font-size:15.5px; color:var(--ink); }
  .rv-pandit p { margin:4px 0 0; font-size:13.5px; line-height:1.55; color:var(--ink-2); max-width:78ch; }

.of-team { display:grid; gap:18px; }
.of-team-d { margin:0 0 12px; max-width:74ch; font-size:15px; line-height:1.7; color:var(--ink-2); }
.of-team .of-qs { margin-bottom:0; }
@media (min-width:900px) { .of-team .of-qs { flex-direction:row; flex-wrap:wrap; }
                           .of-team .of-q { flex:1 1 280px; } }
.of-team-all { justify-self:start; font-size:14px; font-weight:650; color:var(--gold-dk); }
.of-shelf { display:grid; gap:16px; }
.of-shelf-w { margin:0; padding-left:18px; max-width:80ch; }
.of-shelf-w li { font-size:14px; line-height:1.65; color:var(--ink-2); margin-bottom:4px; }
@media (min-width:900px) { .of-shelf .of-rp { grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); } }

  /* The wrapper t() puts round each Hindi string: no box, the parent's type. */
  :root .l-hi { display:contents; font:inherit; color:inherit; }
  /* The same Hindi rules as the signed-in pages (CSS above): matras need the
     taller line; under 15px goes up by 2, never past 15; no tracking, caps
     or slant, which pull a conjunct apart. */
  :root[lang^="hi"] body { line-height:1.6; }
  :root[lang^="hi"] .l-hi {
    font-size:max(1em, min(calc(1em + 2px), 15px));
    letter-spacing:0; text-transform:none; font-style:normal; }
  :root[lang^="hi"] .l-hi .l-hi { font-size:1em; }
  /* AND NOT MONO. The small labels are set in the mono face for English;
     Devanagari in it reads as a typewriter. On a Hindi page the mono face
     is the sans. */
  :root[lang^="hi"] { --font-mono:var(--font-sans); }
  /* AND A DEVANAGARI FACE IN THE SERIF. The serif stack names Latin faces
     only, so a Hindi heading fell through to whatever the system had: on a
     Mac that is Devanagari MT, which sets पें apart from the next letter
     ("पें टाकल्स", /hi/tarot/ card names). The Latin in a heading keeps the
     serif; the Devanagari gets the face the body text already uses. */
  :root[lang^="hi"] { --font-serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,
    "Kohinoor Devanagari","Nirmala UI","Noto Serif Devanagari","Noto Sans Devanagari",serif; }
  /* THE SHARED PARTS THAT CARRY HINDI WITHOUT t(): the header and drawer
     (common.chrome writes them in Hindi), the pickers, the report cards,
     the astrologer rate, the notes and the footer. The .l-hi rule above
     never reached them, so a /hi/ page had 9.5-13.5px Devanagari and tracked
     capitals in its menu (review, 28 Sep 2026: measured against the English
     twin, class by class). Each is its English size +2, never past 15. */
  :root[lang^="hi"] .c-nav-i, :root[lang^="hi"] .c-nav-px b,
  :root[lang^="hi"] .c-dd-i, :root[lang^="hi"] .c-pf-done, :root[lang^="hi"] .c-unknown,
  :root[lang^="hi"] .c-btn .c-as-rate, :root[lang^="hi"] .rv-btn,
  :root[lang^="hi"] .c-nav-mi, :root[lang^="hi"] .c-nav-mm,
  :root[lang^="hi"] .rv-c-d { font-size:15px; }
  :root[lang^="hi"] .c-nav-px i, :root[lang^="hi"] .c-note,
  :root[lang^="hi"] .c-as-rate { font-size:14.5px; }
  :root[lang^="hi"] .rv-c-m, :root[lang^="hi"] .p-hb-k,
  :root[lang^="hi"] .p-hb-k > * { font-size:14px; }
  :root[lang^="hi"] .c-drawer-h > *, :root[lang^="hi"] .c-drawer-h, :root[lang^="hi"] .c-dp-wd,
  :root[lang^="hi"] .c-nav-mh, :root[lang^="hi"] .c-field label {
    letter-spacing:0; text-transform:none; font-family:var(--font-sans); }
  :root[lang^="hi"] .c-drawer-h, :root[lang^="hi"] .c-drawer-h > * { font-size:13px; }
  :root[lang^="hi"] .c-dp-wd { font-size:11px; }
  :root[lang^="hi"] .c-nav-mh { font-size:11.5px; }