/* ============================================================
   Sanskrit News Daily — Stylesheet
   Clean, professional newspaper aesthetic + Inshorts swipe mode
   ============================================================ */

:root {
    /* Brand — soft ivory & royal indigo */
    --saffron: #E97C1F;          /* accent only — used sparingly */
    --saffron-dark: #B85F0F;
    --green: #2E7D5B;            /* deep emerald (replaces flag-green) */
    --green-dark: #1F5C40;
    --navy: #2B2E63;             /* royal indigo */
    --navy-2: #3A3E80;           /* lighter indigo */
    --indigo-deep: #1F2150;      /* darkest indigo for masthead */
    --gold: #C9A961;             /* muted antique gold for hairlines */

    /* Surfaces — soft ivory */
    --bg: #F7F4ED;               /* warm ivory */
    --bg-2: #FCFAF5;             /* paper white */
    --bg-muted: #EFEAE0;         /* faint sand */
    --bg-elev: #FFFFFF;

    /* Text */
    --text: #1A1B2E;             /* indigo-tinted near-black */
    --text-2: #4A4D6B;           /* indigo-grey */
    --text-mute: #8B8FA8;
    --text-inv: #FBF9F4;

    /* Borders / shadows */
    --border: #E0DBCD;
    --border-strong: #C5BEA9;
    --shadow-sm: 0 1px 2px rgba(43,46,99,.05), 0 1px 3px rgba(43,46,99,.04);
    --shadow-md: 0 4px 14px rgba(43,46,99,.09);
    --shadow-lg: 0 14px 36px rgba(43,46,99,.20);

    /* Typography — clean editorial stack.
       Headings: Source Serif 4 (English) + Noto Serif Devanagari (Indic).
       Body:     Inter (Latin) + Noto Sans Devanagari (Indic).
       Per-language overrides below switch to Telugu / Kannada families. */
    --font-heading: 'Source Serif 4', 'Noto Serif Devanagari', Georgia, 'Times New Roman', serif;
    --font-body:    'Inter', 'Noto Sans Devanagari', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

    /* Layout */
    --container: 1280px;
    --radius: 8px;
    --radius-sm: 6px;
    --font-scale: 1;

    --transition: 180ms ease;
}

[data-theme="dark"] {
    --bg: #0F1029;               /* deep indigo night */
    --bg-2: #181A3B;
    --bg-muted: #1F224A;
    --bg-elev: #232658;
    --text: #ECEAF5;
    --text-2: #B8B6D0;
    --text-mute: #7E80A0;
    --border: #2D3068;
    --border-strong: #3F438A;
    --shadow-sm: 0 1px 2px rgba(0,0,0,.4);
    --shadow-md: 0 4px 12px rgba(0,0,0,.5);
    --shadow-lg: 0 16px 40px rgba(0,0,0,.6);
}

/* Reset */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

html, body { overflow-x: hidden; max-width: 100vw; }
img, video { max-width: 100%; height: auto; }

html { font-size: calc(16px * var(--font-scale)); scroll-behavior: smooth; }

body {
    font-family: var(--font-body);
    background: var(--bg);
    color: var(--text);
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    transition: background var(--transition), color var(--transition);
    position: relative;
    min-height: 100vh;
}

/* Watery glassy blue backdrop — drifting aqua blobs + soft frosted veil */
body::before {
    content: "";
    position: fixed;
    inset: -10vmax;
    z-index: -3;
    background:
        radial-gradient(38vw 38vw at 18% 22%,  rgba( 29,  78, 216, 0.65), transparent 70%),
        radial-gradient(42vw 42vw at 82% 18%,  rgba(  8, 145, 178, 0.60), transparent 70%),
        radial-gradient(46vw 46vw at 75% 85%,  rgba( 30,  64, 175, 0.65), transparent 70%),
        radial-gradient(36vw 36vw at 20% 90%,  rgba( 14, 116, 144, 0.60), transparent 70%),
        radial-gradient(30vw 30vw at 50% 50%,  rgba( 37,  99, 235, 0.45), transparent 70%),
        linear-gradient(135deg, #1E3A8A 0%, #1E40AF 45%, #0E7490 100%);
    animation: waterDrift 28s ease-in-out infinite alternate;
    pointer-events: none;
    will-change: transform;
}

/* Layer 2: subtle floating highlight — like sunlight through water */
body::after {
    content: "";
    position: fixed;
    inset: -10vmax;
    z-index: -2;
    background:
        radial-gradient(28vw 28vw at 60% 30%, rgba(255, 255, 255, 0.35), transparent 70%),
        radial-gradient(22vw 22vw at 30% 70%, rgba(255, 255, 255, 0.28), transparent 70%);
    animation: waterDrift 22s ease-in-out infinite alternate-reverse;
    pointer-events: none;
    will-change: transform;
}

/* Layer 3: frosted glass veil for that wet/glossy feel */
body > .glass-veil {
    position: fixed;
    inset: 0;
    z-index: -1;
    background: rgba(15, 35, 80, 0.12);
    backdrop-filter: blur(8px) saturate(150%);
    -webkit-backdrop-filter: blur(8px) saturate(150%);
    pointer-events: none;
}

@keyframes waterDrift {
    0%   { transform: translate3d(0, 0, 0)         scale(1); }
    50%  { transform: translate3d(2vw, -1.5vw, 0)  scale(1.04); }
    100% { transform: translate3d(-1.5vw, 2vw, 0)  scale(1.02); }
}

@media (prefers-reduced-motion: reduce) {
    body::before, body::after { animation: none; }
}

[data-theme="dark"] body::before {
    background:
        radial-gradient(38vw 38vw at 18% 22%,  rgba( 30,  64, 175, 0.55), transparent 70%),
        radial-gradient(42vw 42vw at 82% 18%,  rgba( 14, 116, 144, 0.55), transparent 70%),
        radial-gradient(46vw 46vw at 75% 85%,  rgba(  8,  47,  73, 0.65), transparent 70%),
        radial-gradient(36vw 36vw at 20% 90%,  rgba( 30,  58, 138, 0.55), transparent 70%),
        linear-gradient(135deg, #050A1A 0%, #0A1530 50%, #051828 100%);
}
[data-theme="dark"] body::after  { opacity: 0.35; }
[data-theme="dark"] body > .glass-veil { background: rgba(5, 12, 30, 0.25); }

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }

.container {
    max-width: var(--container);
    margin: 0 auto;
    padding: 0 20px;
}

::selection { background: var(--saffron); color: white; }

/* ============================================================
   MASTHEAD
   ============================================================ */
.masthead {
    background:
        radial-gradient(60% 120% at 20% 0%, rgba(125, 211, 252, 0.50), transparent 70%),
        radial-gradient(50% 120% at 90% 100%, rgba( 14, 116, 144, 0.55), transparent 70%),
        linear-gradient(135deg, rgba( 30,  64, 175, 0.85) 0%, rgba( 29,  78, 216, 0.80) 50%, rgba( 14, 116, 144, 0.85) 100%);
    backdrop-filter: blur(20px) saturate(180%);
    -webkit-backdrop-filter: blur(20px) saturate(180%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.25);
    position: sticky;
    top: 0;
    z-index: 100;
    box-shadow: 0 4px 22px rgba(10, 30, 80, 0.30);
}
[data-theme="dark"] .masthead {
    background:
        radial-gradient(60% 120% at 20% 0%, rgba(30, 64, 175, 0.50), transparent 70%),
        linear-gradient(135deg, rgba(8, 20, 50, 0.92) 0%, rgba(5, 15, 35, 0.92) 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}
.masthead .brand-subtitle { color: rgba(255, 255, 255, 0.85); }
.masthead-main { color: var(--text-inv); }
.masthead-bar {
    background: linear-gradient(135deg, rgba(8, 47, 73, 0.85) 0%, rgba(14, 116, 144, 0.85) 100%);
    backdrop-filter: blur(12px) saturate(160%);
    -webkit-backdrop-filter: blur(12px) saturate(160%);
    color: var(--text-inv);
    padding: 8px 0;
    font-size: 0.78rem;
}
.masthead-bar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.masthead-tagline {
    font-family: var(--font-heading);
    opacity: .9;
    letter-spacing: .3px;
}
.data-age {
    font-size: 0.72rem;
    padding: 2px 8px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    letter-spacing: .2px;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.masthead-controls { display: flex; gap: 6px; }

/* Language switcher chips */
.lang-switcher {
    display: inline-flex;
    gap: 2px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    padding: 2px;
}
.lang-chip {
    background: transparent;
    color: rgba(255,255,255,.85);
    border: none;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
    line-height: 1;
    min-width: 28px;
}
.lang-chip:hover { background: rgba(255,255,255,.15); color: white; }
.lang-chip.active {
    background: rgba(255,255,255,.95);
    color: var(--navy);
    box-shadow: 0 1px 4px rgba(0,0,0,.20);
}

.control-btn {
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.22);
    color: white;
    padding: 5px 10px;
    border-radius: 4px;
    font-size: 0.75rem;
    transition: var(--transition);
}
.control-btn:hover { background: rgba(255,255,255,.25); transform: translateY(-1px); }

/* Per-language font support — switches based on <html lang>.
   Each lang gets a serif heading font + sans body font.                  */
html[lang="sa"] body, html[lang="hi"] body {
    font-family: 'Noto Sans Devanagari', 'Inter', system-ui, sans-serif;
    /* Critical for proper Devanagari shaping (matras, conjuncts, dirgha) */
    font-feature-settings: "kern", "liga", "calt", "rlig";
    text-rendering: optimizeLegibility;
    -webkit-font-feature-settings: "kern", "liga", "calt", "rlig";
    font-variant-ligatures: common-ligatures contextual;
    font-synthesis: none;          /* don't fake bold/italic — distorts dirgha */
    line-height: 1.7;              /* extra room for top dirgha mātra */
}
html[lang="sa"] .masthead-title, html[lang="sa"] .news-card-title, html[lang="sa"] .modal-title,
html[lang="hi"] .masthead-title, html[lang="hi"] .news-card-title, html[lang="hi"] .modal-title {
    font-family: 'Noto Serif Devanagari', 'Noto Sans Devanagari', Georgia, serif;
    font-feature-settings: "kern", "liga", "calt", "rlig";
    text-rendering: optimizeLegibility;
    font-weight: 600;              /* heavier weight = bolder, clearer dirgha */
    line-height: 1.5;              /* enough room for top mātra */
    padding-top: 0.05em;           /* tiny breathing room above */
}
/* Mobile-specific: dirgha clipping fix */
@media (max-width: 720px) {
    html[lang="sa"] body, html[lang="hi"] body {
        line-height: 1.75;
        font-size: 1.02rem;        /* slightly bigger for clarity */
    }
    html[lang="sa"] .masthead-title, html[lang="sa"] .news-card-title,
    html[lang="sa"] .modal-title, html[lang="sa"] .lead-title,
    html[lang="hi"] .masthead-title, html[lang="hi"] .news-card-title,
    html[lang="hi"] .modal-title, html[lang="hi"] .lead-title {
        line-height: 1.55;
        padding-top: 0.1em;        /* extra room so top mātra/dirgha never clips */
        overflow: visible;         /* allow dirgha to render outside text box */
    }
    html[lang="sa"] .news-card-excerpt, html[lang="sa"] p,
    html[lang="hi"] .news-card-excerpt, html[lang="hi"] p {
        line-height: 1.8;          /* generous body line-height */
    }
}
html[lang="te"] body {
    font-family: 'Noto Sans Telugu', 'Inter', system-ui, sans-serif;
}
html[lang="te"] .masthead-title, html[lang="te"] .news-card-title, html[lang="te"] .modal-title {
    font-family: 'Noto Serif Telugu', 'Noto Sans Telugu', Georgia, serif;
}
html[lang="kn"] body {
    font-family: 'Noto Sans Kannada', 'Inter', system-ui, sans-serif;
}
html[lang="kn"] .masthead-title, html[lang="kn"] .news-card-title, html[lang="kn"] .modal-title {
    font-family: 'Noto Serif Kannada', 'Noto Sans Kannada', Georgia, serif;
}
html[lang="en"] body {
    font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
}
html[lang="en"] .masthead-title, html[lang="en"] .news-card-title, html[lang="en"] .modal-title {
    font-family: 'Source Serif 4', Georgia, 'Times New Roman', serif;
    font-feature-settings: "kern", "liga", "onum";
    letter-spacing: -0.005em;
}

.masthead-main {
    text-align: center;
    padding: 18px 0 14px;
}
.masthead-main-inner {
    display: flex;
    justify-content: center;
}
.brand {
    display: inline-flex;
    align-items: center;
    gap: 18px;
    text-decoration: none;
    color: inherit;
}
.brand-logo {
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,.12));
    transition: transform var(--transition);
}
.brand:hover .brand-logo { transform: rotate(-8deg) scale(1.05); }
.brand-text { text-align: left; line-height: 1.1; }
.brand-subtitle {
    display: block;
    margin-top: 4px;
    font-family: var(--font-body);
    font-size: 0.8rem;
    color: var(--text-mute);
    letter-spacing: .3px;
    font-weight: 400;
}
[data-theme="dark"] .brand-subtitle { color: #B7B7B7; }

.masthead-title {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 700;
    color: #FFFFFF;
    letter-spacing: 1px;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.18);
}
[data-theme="dark"] .masthead-title { color: #FFFFFF; }
.title-icon { margin-right: 8px; }

.masthead-border { display: flex; height: 4px; }
.border-line { flex: 1; }
.border-saffron { background: var(--saffron); }
.border-white { background: #FFFFFF; }
.border-green { background: var(--green); }

/* Navigation */
.nav-bar {
    background:
        radial-gradient(40% 200% at 100% 50%, rgba(125, 211, 252, 0.40), transparent 70%),
        linear-gradient(135deg, rgba(8, 30, 80, 0.92) 0%, rgba(14, 60, 110, 0.92) 100%);
    backdrop-filter: blur(16px) saturate(170%);
    -webkit-backdrop-filter: blur(16px) saturate(170%);
    color: var(--text-inv);
}
.nav-bar .container {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
}
.nav-links {
    display: flex;
    list-style: none;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    min-width: 0;
}
.nav-links::-webkit-scrollbar { display: none; }
.nav-links li { flex: 0 0 auto; }
.nav-links a {
    display: block;
    padding: 12px 14px;
    color: var(--text-inv);
    font-weight: 500;
    font-size: 0.92rem;
    border-bottom: 3px solid transparent;
    transition: var(--transition);
    white-space: nowrap;
}
.nav-links a:hover,
.nav-links a.active {
    background: rgba(255,255,255,.08);
    border-bottom-color: var(--saffron);
}
.nav-links a.nav-highlight {
    color: var(--saffron);
    font-weight: 700;
}
.nav-links a.nav-highlight.active {
    background: rgba(240,138,0,.15);
}
.nav-links a.nav-highlight-tech {
    color: #1f9cf0;
    font-weight: 700;
}
.nav-links a.nav-highlight-tech.active {
    background: rgba(31, 156, 240, .15);
    border-bottom-color: #1f9cf0;
}
.nav-search {
    display: flex;
    background: rgba(255,255,255,.12);
    border-radius: 4px;
    overflow: hidden;
    flex: 0 0 auto;
}
.nav-search input {
    padding: 9px 14px;
    border: none;
    background: transparent;
    color: white;
    width: 180px;
    font-family: var(--font-body);
    font-size: 0.9rem;
}
.nav-search input::placeholder { color: rgba(255,255,255,.6); }
.nav-search input:focus { outline: none; background: rgba(255,255,255,.06); }
.nav-search button {
    background: var(--saffron);
    padding: 9px 14px;
    color: white;
    transition: var(--transition);
}
.nav-search button:hover { background: var(--saffron-dark); }

/* ============================================================
   BREAKING NEWS TICKER
   ============================================================ */
.breaking-banner {
    background: linear-gradient(90deg, var(--green) 0%, var(--green-dark) 100%);
    color: white;
    overflow: hidden;
}
.breaking-banner .container {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-top: 0;
    padding-bottom: 0;
}
.breaking-label {
    background: #B91C1C;
    padding: 8px 14px;
    font-weight: 700;
    font-size: 0.8rem;
    white-space: nowrap;
    flex-shrink: 0;
}
.breaking-content {
    flex: 1;
    overflow: hidden;
    height: 38px;
    position: relative;
    /* fade edges so the label edge doesn't visually clash */
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 32px, #000 calc(100% - 32px), transparent 100%);
            mask-image: linear-gradient(90deg, transparent 0, #000 32px, #000 calc(100% - 32px), transparent 100%);
}
.breaking-track {
    position: absolute;
    top: 0; left: 0;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 36px;
    white-space: nowrap;
    padding-left: 100%;
    animation: ticker 180s linear infinite;
    will-change: transform;
}
.breaking-item {
    color: white;
    font-weight: 500;
    font-size: 0.9rem;
    transition: opacity var(--transition);
}
.breaking-item:hover { opacity: .8; text-decoration: underline; }
@keyframes ticker {
    from { transform: translateX(0); }
    to   { transform: translateX(-100%); }
}
.breaking-banner:hover .breaking-track { animation-play-state: paused; }

/* ============================================================
   MAIN CONTENT
   ============================================================ */
.main-content {
    padding: 28px 0 60px;
    min-height: 70vh;
}

/* Shloka banner — daily Sanskrit verse above the fold */
.shloka-banner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 22px;
    margin: 0 0 28px;
    padding: 22px 28px;
    background: linear-gradient(135deg, rgba(255, 248, 232, 0.75) 0%, rgba(251, 241, 214, 0.75) 100%);
    backdrop-filter: blur(14px) saturate(140%);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
    border-left: 4px solid var(--saffron);
    border-right: 4px solid var(--green);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    text-align: center;
    transition: opacity 350ms ease, transform 350ms ease;
}
.shloka-banner.shloka-fade {
    opacity: 0;
    transform: translateY(-4px);
}
[data-theme="dark"] .shloka-banner {
    background: linear-gradient(135deg, rgba(31, 26, 14, 0.75) 0%, rgba(42, 35, 16, 0.75) 100%);
}
.shloka-deco {
    font-family: var(--font-heading);
    font-size: 2.2rem;
    color: var(--saffron);
    line-height: 1;
    flex-shrink: 0;
    opacity: .7;
}
.shloka-text { max-width: 800px; }
.shloka-line {
    font-family: var(--font-heading);
    font-size: 1.25rem;
    line-height: 1.55;
    color: var(--navy);
    font-weight: 500;
}
[data-theme="dark"] .shloka-line { color: #FFE7B0; }
.shloka-tr {
    margin-top: 8px;
    font-size: 0.98rem;
    line-height: 1.5;
    color: var(--text-strong, #2c1810);
    font-weight: 400;
}
[data-theme="dark"] .shloka-tr { color: #F5E6CC; }
.shloka-src {
    margin-top: 6px;
    font-size: 0.82rem;
    color: var(--text-mute);
    font-style: italic;
}

/* Sanskrit feature section — the heart of the site */
.sanskrit-feature {
    margin: 36px 0;
    padding: 26px 28px 32px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.65) 0%, rgba(255, 250, 241, 0.7) 100%);
    backdrop-filter: blur(14px) saturate(140%);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-top: 4px solid var(--saffron);
    border-radius: var(--radius);
    box-shadow: 0 6px 24px rgba(19, 41, 75, 0.06);
}
[data-theme="dark"] .sanskrit-feature {
    background: linear-gradient(180deg, rgba(22, 27, 34, 0.7) 0%, rgba(27, 24, 18, 0.75) 100%);
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-top: 4px solid var(--saffron);
}
.sanskrit-feature-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 22px;
    padding-bottom: 14px;
    border-bottom: 2px dashed var(--border-strong);
    flex-wrap: wrap;
}
.sanskrit-feature-title {
    font-family: var(--font-heading);
    font-size: 1.85rem;
    color: var(--navy);
    font-weight: 700;
    letter-spacing: .5px;
}
[data-theme="dark"] .sanskrit-feature-title { color: var(--saffron); }
.sanskrit-feature-sub {
    margin-top: 6px;
    font-size: 0.92rem;
    color: var(--text-2);
    max-width: 70ch;
}
.sanskrit-feature-more {
    color: var(--saffron-dark);
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
    font-size: 0.95rem;
}
.sanskrit-feature-more:hover { text-decoration: underline; }
.sanskrit-feature-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 22px;
}

/* Hero grid */
.content-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 28px;
    margin-bottom: 36px;
}

/* Lead story */
.lead-story {
    position: relative;
    cursor: pointer;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    transition: transform var(--transition);
}
.lead-story:hover { transform: translateY(-2px); }
.lead-story-image-wrap {
    aspect-ratio: 16 / 10;
    background: var(--bg-muted);
    overflow: hidden;
}
.lead-story-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 400ms ease;
}
.lead-story:hover .lead-story-image { transform: scale(1.04); }
.lead-story-overlay {
    position: absolute;
    inset: auto 0 0 0;
    padding: 28px 26px 22px;
    background: linear-gradient(to top, rgba(0,0,0,.92) 0%, rgba(0,0,0,.55) 60%, transparent 100%);
    color: white;
}
.lead-story-category {
    display: inline-block;
    background: var(--saffron);
    color: white;
    padding: 4px 12px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: .4px;
    border-radius: 3px;
    margin-bottom: 10px;
}
.lead-story-title {
    font-family: var(--font-heading);
    font-size: 1.65rem;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 10px;
}
.lead-story-excerpt {
    color: rgba(255,255,255,.92);
    font-size: 1rem;
    line-height: 1.55;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.lead-story-meta {
    color: rgba(255,255,255,.75);
    font-size: 0.82rem;
    margin-top: 12px;
}

/* Top stories sidebar */
.top-stories {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 22px;
    box-shadow: var(--shadow-sm);
}
.section-title {
    font-family: var(--font-heading);
    font-size: 1.1rem;
    color: var(--navy);
    padding-bottom: 10px;
    border-bottom: 2px solid var(--saffron);
    margin-bottom: 18px;
    text-transform: uppercase;
    letter-spacing: .5px;
}
[data-theme="dark"] .section-title { color: var(--saffron); }
.top-stories-list { display: flex; flex-direction: column; gap: 16px; }
.top-story-item {
    display: flex;
    gap: 14px;
    cursor: pointer;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--border);
    transition: var(--transition);
}
.top-story-item:last-child { border-bottom: none; padding-bottom: 0; }
.top-story-item:hover { padding-left: 4px; }
.top-story-item:hover .top-story-title { color: var(--saffron-dark); }
.top-story-number {
    font-family: var(--font-heading);
    font-size: 1.8rem;
    font-weight: 900;
    color: var(--saffron);
    line-height: 1;
    min-width: 32px;
    opacity: .85;
}
.top-story-content { flex: 1; min-width: 0; }
.top-story-category {
    display: inline-block;
    font-size: 0.7rem;
    color: var(--saffron-dark);
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 4px;
    letter-spacing: .4px;
}
.top-story-title {
    font-family: var(--font-heading);
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--text);
    transition: color var(--transition);
}
.top-story-meta {
    font-size: 0.78rem;
    color: var(--text-mute);
    margin-top: 5px;
    display: block;
}

/* ============================================================
   SECTION DIVIDERS & GRIDS
   ============================================================ */
.section-divider {
    display: flex;
    align-items: center;
    margin: 36px 0 22px;
    gap: 18px;
}
.section-name {
    font-family: var(--font-heading);
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--navy);
    text-transform: uppercase;
    letter-spacing: .8px;
    white-space: nowrap;
    padding: 0 4px;
}
[data-theme="dark"] .section-name { color: var(--saffron); }
.section-divider::before,
.section-divider::after {
    content: '';
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--border-strong), transparent);
}

.news-section {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 22px;
}
.news-section.compact {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 18px;
}

.two-column-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    margin: 0;
}
.column { min-width: 0; }

/* ============================================================
   NEWS CARDS
   ============================================================ */
.news-card {
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: blur(12px) saturate(140%);
    -webkit-backdrop-filter: blur(12px) saturate(140%);
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: var(--radius);
    overflow: hidden;
    cursor: pointer;
    transition: var(--transition);
    display: flex;
    flex-direction: column;
    box-shadow: 0 4px 16px rgba(19, 41, 75, 0.06), inset 0 1px 0 rgba(255,255,255,0.6);
}
[data-theme="dark"] .news-card {
    background: rgba(22, 27, 34, 0.65);
    border: 1px solid rgba(255, 255, 255, 0.08);
}
.news-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-md);
    border-color: var(--saffron);
}
.news-card-image-wrap {
    position: relative;
    aspect-ratio: 16 / 10;
    background: var(--bg-muted);
    overflow: hidden;
}
.news-card-image {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 400ms ease;
}
.news-card:hover .news-card-image { transform: scale(1.05); }
.card-bookmark {
    position: absolute;
    top: 8px; right: 8px;
    width: 32px; height: 32px;
    background: rgba(0,0,0,.55);
    color: #FFD700;
    border-radius: 50%;
    font-size: 1rem;
    display: flex; align-items: center; justify-content: center;
    transition: var(--transition);
    backdrop-filter: blur(4px);
}
.card-bookmark:hover { background: rgba(0,0,0,.8); transform: scale(1.1); }
.card-bookmark.on { background: var(--saffron); color: white; }

.news-card-content {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.news-card-category {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    color: var(--saffron-dark);
    text-transform: uppercase;
    margin-bottom: 6px;
    letter-spacing: .4px;
}
.news-card-title {
    font-family: var(--font-heading);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--text);
    margin-bottom: 8px;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.news-card-excerpt {
    font-size: 0.85rem;
    color: var(--text-2);
    line-height: 1.55;
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
    flex: 1;
}
.news-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--border);
    font-size: 0.75rem;
    color: var(--text-mute);
}

.is-compact .news-card-title { font-size: 0.92rem; }
.is-compact .news-card-excerpt { -webkit-line-clamp: 2; }

/* ============================================================
   LITERATURE BLOCK
   ============================================================ */
.literature-section {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 28px;
    background: var(--bg-muted);
    padding: 28px;
    border-radius: var(--radius);
    border: 1px solid var(--border);
}
.literature-featured { cursor: pointer; }
.literature-featured-image {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: var(--radius-sm);
    margin-bottom: 14px;
}
.literature-featured-title {
    font-family: var(--font-heading);
    font-size: 1.25rem;
    font-weight: 700;
    margin-bottom: 8px;
    color: var(--text);
}
.literature-featured-excerpt {
    font-size: 0.92rem;
    color: var(--text-2);
    line-height: 1.6;
}
.literature-list { display: flex; flex-direction: column; gap: 14px; }
.literature-item {
    cursor: pointer;
    padding: 14px;
    background: var(--bg-2);
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    transition: var(--transition);
}
.literature-item:hover {
    border-color: var(--saffron);
    transform: translateX(4px);
}
.literature-item-title {
    font-family: var(--font-heading);
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 4px;
    color: var(--text);
}
.literature-item-author {
    font-size: 0.78rem;
    color: var(--text-mute);
}

.empty-msg {
    grid-column: 1 / -1;
    text-align: center;
    padding: 30px;
    color: var(--text-mute);
    font-style: italic;
}
.empty-msg.big { padding: 80px 20px; font-size: 1.1rem; }

/* ============================================================
   SWIPE / INSHORTS-STYLE VIEW
   ============================================================ */
.swipe-view {
    display: none;
    background: var(--bg);
}
.swipe-help {
    text-align: center;
    padding: 10px;
    background: var(--bg-muted);
    color: var(--text-mute);
    font-size: 0.85rem;
    border-bottom: 1px solid var(--border);
}
.swipe-help kbd {
    background: var(--bg-2);
    border: 1px solid var(--border-strong);
    padding: 1px 6px;
    border-radius: 3px;
    font-family: ui-monospace, monospace;
    font-size: 0.78rem;
}
.swipe-deck {
    height: calc(100vh - 50px);
    overflow-y: auto;
    scroll-snap-type: y mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
.swipe-deck::-webkit-scrollbar { display: none; }
.swipe-card {
    height: calc(100vh - 50px);
    scroll-snap-align: start;
    scroll-snap-stop: always;
    display: flex;
    flex-direction: column;
    background: var(--bg-2);
    border-bottom: 8px solid var(--bg);
}
.swipe-card-img {
    flex: 0 0 45%;
    background-color: var(--bg-muted);
    position: relative;
    overflow: hidden;
}
.swipe-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.swipe-card-cat {
    position: absolute;
    top: 16px; left: 16px;
    background: var(--saffron);
    color: white;
    padding: 6px 14px;
    font-size: 0.78rem;
    font-weight: 700;
    border-radius: 3px;
    letter-spacing: .4px;
}
.swipe-card-body {
    flex: 1;
    padding: 24px 28px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 14px;
    max-width: 720px;
    margin: 0 auto;
    width: 100%;
}
.swipe-card-title {
    font-family: var(--font-heading);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--text);
}
.swipe-card-text {
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--text-2);
    flex: 1;
}
.swipe-card-meta {
    display: flex;
    gap: 16px;
    color: var(--text-mute);
    font-size: 0.85rem;
    padding-top: 8px;
    border-top: 1px solid var(--border);
}
.swipe-card-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.card-action {
    padding: 9px 14px;
    background: var(--bg-muted);
    border: 1px solid var(--border);
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-2);
    transition: var(--transition);
}
.card-action:hover {
    background: var(--saffron);
    color: white;
    border-color: var(--saffron);
    transform: translateY(-1px);
}
.card-action.on {
    background: var(--saffron);
    color: white;
    border-color: var(--saffron);
}

/* ============================================================
   ARTICLE MODAL
   ============================================================ */
.modal {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.78);
    z-index: 2000;
    backdrop-filter: blur(4px);
}
.modal.active {
    display: flex;
    align-items: stretch;
    justify-content: center;
}
.modal-content {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(24px) saturate(160%);
    -webkit-backdrop-filter: blur(24px) saturate(160%);
    width: 100%;
    max-width: 820px;
    margin: 30px auto;
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: var(--radius);
    position: relative;
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 60px);
    box-shadow: 0 20px 60px rgba(19, 41, 75, 0.18);
    animation: modalIn .25s ease;
}
[data-theme="dark"] .modal-content {
    background: rgba(22, 27, 34, 0.85);
    border: 1px solid rgba(255, 255, 255, 0.08);
}
@keyframes modalIn {
    from { opacity: 0; transform: translateY(-20px); }
    to { opacity: 1; transform: translateY(0); }
}
.modal-progress {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: var(--bg-muted);
    border-radius: var(--radius) var(--radius) 0 0;
    overflow: hidden;
}
.modal-progress-bar {
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, var(--saffron), var(--green));
    transition: width 100ms linear;
}
.modal-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 20px 12px;
    border-bottom: 1px solid var(--border);
    flex-wrap: wrap;
}
.modal-action-btn {
    padding: 8px 14px;
    background: var(--bg-muted);
    border: 1px solid var(--border);
    border-radius: 999px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-2);
    transition: var(--transition);
}
.modal-action-btn:hover {
    background: var(--saffron);
    color: white;
    border-color: var(--saffron);
}
.modal-action-btn.on {
    background: var(--saffron);
    color: white;
    border-color: var(--saffron);
}
.modal-close {
    margin-left: auto;
    width: 36px; height: 36px;
    background: var(--bg-muted);
    border-radius: 50%;
    font-size: 1.4rem;
    display: flex; align-items: center; justify-content: center;
    transition: var(--transition);
    color: var(--text-2);
}
.modal-close:hover { background: #B91C1C; color: white; transform: rotate(90deg); }

.modal-scroll {
    overflow-y: auto;
    flex: 1;
}
.modal-body {
    padding: 28px;
}
.modal-hero {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    border-radius: var(--radius-sm);
    margin-bottom: 20px;
}
.modal-meta-row {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}
.modal-category {
    background: var(--saffron);
    color: white;
    padding: 5px 14px;
    font-size: 0.78rem;
    font-weight: 700;
    border-radius: 3px;
    letter-spacing: .4px;
}
.modal-meta {
    color: var(--text-mute);
    font-size: 0.88rem;
}
.modal-title {
    font-family: var(--font-heading);
    font-size: 1.7rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--text);
    margin-bottom: 14px;
}
.modal-excerpt {
    font-size: 1.05rem;
    color: var(--text-2);
    border-left: 4px solid var(--saffron);
    padding-left: 14px;
    margin-bottom: 22px;
}
.modal-content-text {
    font-size: 1.05rem;
    line-height: 1.85;
    color: var(--text);
}
.modal-content-text p::first-letter {
    float: left;
    font-family: var(--font-heading);
    font-size: 3.4rem;
    font-weight: 700;
    line-height: 1;
    padding-right: 10px;
    padding-top: 5px;
    color: var(--navy);
}
[data-theme="dark"] .modal-content-text p::first-letter { color: var(--saffron); }
.modal-content-text .word {
    cursor: pointer;
    border-radius: 2px;
    transition: background var(--transition);
}
.modal-content-text .word:hover {
    background: rgba(240, 138, 0, .25);
    text-decoration: underline dotted var(--saffron);
}

/* Multi-dictionary lookup popover (anchored beside the clicked word) */
.word-popover {
    display: inline-flex;
    flex-direction: column;
    vertical-align: middle;
    margin: 0 4px;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid var(--border-strong);
    border-radius: var(--radius-sm);
    box-shadow: 0 8px 24px rgba(19, 41, 75, 0.18);
    font-family: var(--font-body);
    font-size: 0.85rem;
    z-index: 50;
    min-width: 200px;
    overflow: hidden;
    animation: popIn .15s ease;
}
[data-theme="dark"] .word-popover {
    background: rgba(22, 27, 34, 0.95);
    border-color: rgba(255,255,255,0.12);
}
@keyframes popIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
.word-popover-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 10px;
    background: var(--bg-muted);
    border-bottom: 1px solid var(--border);
    font-family: var(--font-heading);
    color: var(--navy);
}
[data-theme="dark"] .word-popover-head { color: var(--saffron); }
.word-popover-close {
    background: transparent;
    border: none;
    font-size: 1.1rem;
    line-height: 1;
    cursor: pointer;
    color: var(--text-mute);
    padding: 0 4px;
}
.word-popover-close:hover { color: var(--text); }
.word-popover-body { display: flex; flex-direction: column; }
.word-popover-link {
    padding: 7px 12px;
    color: var(--text);
    text-decoration: none;
    border-top: 1px solid var(--border);
    transition: background var(--transition);
}
.word-popover-link:first-child { border-top: none; font-weight: 600; color: var(--saffron-dark); }
.word-popover-link:hover { background: rgba(240, 138, 0, .12); }
[data-theme="dark"] .word-popover-link:first-child { color: var(--saffron); }
.word-popover-split {
    background: rgba(40, 130, 200, .08);
    color: #1976d2 !important;
    font-weight: 600;
    border-top: 2px solid var(--border) !important;
}
.word-popover-split:hover { background: rgba(40, 130, 200, .18); }
[data-theme="dark"] .word-popover-split { color: #6cb4f0 !important; background: rgba(108, 180, 240, .10); }
.word-popover-own {
    background: linear-gradient(135deg, rgba(240,138,0,.14), rgba(240,138,0,.06));
    color: var(--saffron-dark) !important;
    font-weight: 700 !important;
    border-top: none !important;
}
.word-popover-own:hover { background: linear-gradient(135deg, rgba(240,138,0,.28), rgba(240,138,0,.16)); }
[data-theme="dark"] .word-popover-own { color: var(--saffron) !important; }
.modal-hint {
    margin-top: 20px;
    padding: 12px 16px;
    background: var(--bg-muted);
    border-radius: var(--radius-sm);
    font-size: 0.88rem;
    color: var(--text-mute);
    border-left: 3px solid var(--saffron);
}
.modal-hint small { display: block; opacity: .8; margin-top: 2px; }

/* ============================================================
   FOOTER
   ============================================================ */
.footer {
    background: var(--navy);
    color: var(--text-inv);
    padding: 48px 0 22px;
    margin-top: 40px;
}
.footer-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 36px;
    margin-bottom: 32px;
}
.footer-section h4 {
    font-family: var(--font-heading);
    font-size: 1.05rem;
    margin-bottom: 16px;
    color: var(--saffron);
    text-transform: uppercase;
    letter-spacing: .5px;
}
.footer-section p { opacity: .82; line-height: 1.7; font-size: 0.92rem; }
.footer-section ul { list-style: none; }
.footer-section ul li { margin-bottom: 8px; }
.footer-section ul li a {
    opacity: .78;
    transition: var(--transition);
    font-size: 0.92rem;
}
.footer-section ul li a:hover { opacity: 1; color: var(--saffron); padding-left: 4px; }
.footer-contact { margin-top: 14px; }
.footer-contact p { font-size: 0.88rem; margin-bottom: 6px; }
.social-links { display: flex; gap: 12px; }
.social-links a { font-size: 1.4rem; opacity: .8; transition: var(--transition); }
.social-links a:hover { opacity: 1; transform: scale(1.15); }
.footer-bottom {
    text-align: center;
    padding-top: 22px;
    border-top: 1px solid rgba(255,255,255,.1);
    font-size: 0.85rem;
    opacity: .6;
}

/* ============================================================
   TOAST + TO-TOP
   ============================================================ */
.toast {
    position: fixed;
    bottom: 28px;
    left: 50%;
    transform: translateX(-50%) translateY(100px);
    background: var(--navy);
    color: white;
    padding: 12px 22px;
    border-radius: 999px;
    font-size: 0.9rem;
    font-weight: 500;
    box-shadow: var(--shadow-lg);
    z-index: 3000;
    opacity: 0;
    transition: opacity 200ms, transform 250ms ease;
    pointer-events: none;
}
.toast.show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

.to-top {
    position: fixed;
    bottom: 24px;
    right: 24px;
    width: 46px; height: 46px;
    background: var(--saffron);
    color: white;
    border-radius: 50%;
    font-size: 1.3rem;
    display: flex; align-items: center; justify-content: center;
    box-shadow: var(--shadow-md);
    opacity: 0; pointer-events: none;
    transition: var(--transition);
    z-index: 999;
}
.to-top.visible { opacity: 1; pointer-events: auto; }
.to-top:hover { background: var(--saffron-dark); transform: translateY(-3px); }

/* ============================================================
   RESPONSIVE — mobile-first refinements
   Breakpoints: ≤1024 tablet · ≤900 small tablet · ≤720 phone landscape
                ≤560 phone portrait · ≤380 small phone
   ============================================================ */
@media (max-width: 1024px) {
    .literature-section { grid-template-columns: 1fr; }
    .container { padding: 0 16px; }
}

@media (max-width: 900px) {
    .content-grid { grid-template-columns: 1fr; gap: 18px; }
    .two-column-grid { grid-template-columns: 1fr; gap: 18px; }
    .footer-grid { grid-template-columns: repeat(2, 1fr); }
    .masthead-title { font-size: 1.55rem; letter-spacing: .5px; }
    .lead-story-title { font-size: 1.3rem; }
    .sanskrit-feature-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ===== Phone & small tablets ===== */
@media (max-width: 720px) {
    html { font-size: calc(15px * var(--font-scale)); }
    .container { padding: 0 14px; }

    /* Lead story — cap height so it doesn't dominate the fold */
    .lead-story-image-wrap { aspect-ratio: 16 / 11; max-height: 56vh; }
    .lead-story-overlay {
        padding: 14px 16px 16px;
        background: linear-gradient(to top, rgba(0,0,0,.95) 0%, rgba(0,0,0,.55) 55%, rgba(0,0,0,.10) 100%);
    }

    /* Top utility bar — keep only essentials, allow wrap */
    .masthead-bar { padding: 6px 0; font-size: 0.72rem; }
    .masthead-bar .container { gap: 8px; row-gap: 6px; justify-content: space-between; }
    .masthead-tagline { display: none; }
    #dateGregorian { font-size: 0.72rem; opacity: .85; }
    .masthead-controls { gap: 4px; }
    .control-btn { padding: 5px 8px; font-size: 0.7rem; }
    .lang-switcher { padding: 2px; }
    .lang-chip { padding: 5px 9px; font-size: 0.74rem; min-width: 26px; min-height: 28px; }

    /* Brand */
    .masthead-main { padding: 12px 0 10px; }
    .brand { gap: 12px; }
    .brand-logo { width: 48px; height: 48px; }
    .brand-text { line-height: 1.05; }
    .brand-subtitle { font-size: 0.7rem; margin-top: 2px; }
    .masthead-title { font-size: 1.4rem; letter-spacing: .3px; }

    /* Nav — single horizontal scroller, no input below */
    .nav-bar .container { display: block; padding: 0; }
    .nav-links {
        width: 100%;
        justify-content: flex-start;
        padding: 0 10px;
        overflow-x: auto;
        flex-wrap: nowrap;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
    }
    .nav-links::-webkit-scrollbar { display: none; }
    .nav-links li { scroll-snap-align: start; }
    .nav-links a {
        padding: 12px 12px;
        font-size: 0.85rem;
        white-space: nowrap;
        min-height: 44px;            /* iOS hit target */
        display: inline-flex;
        align-items: center;
    }
    .nav-search {
        width: calc(100% - 20px);
        margin: 8px 10px;
        order: 2;
    }
    .nav-search input { width: 100%; min-height: 40px; }

    /* Breaking ticker */
    .breaking-banner { font-size: 0.85rem; }
    .breaking-label { font-size: 0.7rem; padding: 7px 9px; }

    /* Shloka banner */
    .shloka-banner { flex-direction: column; gap: 8px; padding: 16px 14px; text-align: center; }
    .shloka-deco { display: none; }
    .shloka-line { font-size: 1.05rem; line-height: 1.5; }
    .shloka-tr   { font-size: 0.92rem; }
    .shloka-src  { font-size: 0.78rem; }

    /* Hero / lead */
    .lead-story-overlay { padding: 16px; }
    .lead-story-title { font-size: 1.15rem; }
    .lead-story-excerpt { font-size: 0.92rem; -webkit-line-clamp: 2; line-clamp: 2; }

    /* Sections */
    .news-section, .news-section.compact { grid-template-columns: 1fr; gap: 14px; }
    .sanskrit-feature { padding: 18px 14px 22px; }
    .sanskrit-feature-head { flex-wrap: wrap; gap: 10px; }
    .sanskrit-feature-title { font-size: 1.4rem; }
    .sanskrit-feature-sub { font-size: 0.85rem; }
    .sanskrit-feature-grid { grid-template-columns: 1fr; gap: 14px; }

    /* Cards become horizontal compact rows on phone */
    .news-card { display: flex; flex-direction: row; min-height: 110px; }
    .news-card-image-wrap { flex: 0 0 38%; max-width: 140px; }
    .news-card-image { height: 100%; min-height: 110px; }
    .news-card-body { padding: 10px 12px; flex: 1; min-width: 0; }
    .news-card-title { font-size: 0.98rem; line-height: 1.35; -webkit-line-clamp: 3; line-clamp: 3; }
    .news-card-excerpt { display: none; }
    .news-card-meta { font-size: 0.72rem; margin-top: 6px; }

    /* Modal — full-screen on mobile */
    .modal-content {
        margin: 0;
        max-width: 100%;
        max-height: 100vh;
        max-height: 100dvh;
        height: 100vh;
        height: 100dvh;
        border-radius: 0;
        border: none;
    }
    .modal-body, .modal-content-text { padding: 18px 16px; }
    .modal-title { font-size: 1.35rem; line-height: 1.3; }
    .modal-content-text { font-size: 1rem; line-height: 1.7; }
    .modal-content-text p::first-letter { font-size: 2.6rem; }
    .modal-hero { max-height: 240px; object-fit: cover; }
    .modal-actions { gap: 6px; flex-wrap: wrap; }
    .modal-actions button { min-height: 40px; padding: 8px 12px; font-size: 0.85rem; }

    /* Swipe view */
    .swipe-card-img { flex: 0 0 36%; }
    .swipe-card-body { padding: 16px 18px; }
    .swipe-card-title { font-size: 1.18rem; line-height: 1.35; }
    .swipe-card-text { font-size: 0.95rem; line-height: 1.55; }

    /* Footer */
    .footer-grid { grid-template-columns: 1fr; gap: 24px; text-align: center; }

    /* All buttons get a comfy iOS hit area */
    button, .nav-links a, .lang-chip, .control-btn {
        -webkit-tap-highlight-color: rgba(0,0,0,.08);
        touch-action: manipulation;
    }

    /* iOS safe-area for notched devices */
    body { padding-bottom: env(safe-area-inset-bottom); }
    .masthead { padding-top: env(safe-area-inset-top); }
}

/* ===== Phone portrait ===== */
@media (max-width: 560px) {
    .container { padding: 0 12px; }
    .masthead-title { font-size: 1.25rem; }
    .brand-logo { width: 42px; height: 42px; }
    .brand-subtitle { font-size: 0.66rem; }
    .lang-chip { padding: 4px 7px; font-size: 0.7rem; }
    .control-btn { padding: 4px 7px; font-size: 0.68rem; }
    .news-card-image-wrap { flex: 0 0 36%; max-width: 120px; }
    .news-card-title { font-size: 0.94rem; }
    .sanskrit-feature-title { font-size: 1.25rem; }
    .modal-title { font-size: 1.2rem; }
    .modal-content-text { font-size: 0.96rem; }
    .modal-content-text p::first-letter { font-size: 2.3rem; }
    .lead-story-title { font-size: 1.05rem; }
    .lead-story-overlay { padding: 14px; }
    .breaking-label { font-size: 0.66rem; padding: 6px 8px; }
}

/* ===== Very small phones (≤380px) ===== */
@media (max-width: 380px) {
    .brand { gap: 8px; }
    .brand-logo { width: 36px; height: 36px; }
    .masthead-title { font-size: 1.1rem; }
    .brand-subtitle { display: none; }
    .lang-switcher { gap: 0; }
    .lang-chip { padding: 4px 6px; min-width: 22px; }
    .news-card { min-height: 96px; }
    .news-card-image-wrap { max-width: 104px; }
    .news-card-image { min-height: 96px; }
}

/* Print */
@media print {
    .masthead-controls, .nav-bar, .breaking-banner, .footer, .modal, .to-top, .swipe-view { display: none !important; }
    .news-card { break-inside: avoid; box-shadow: none; }
}

/* Focus accessibility */
:focus-visible {
    outline: 3px solid var(--saffron);
    outline-offset: 2px;
    border-radius: 4px;
}

/* Scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg-muted); }
::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: var(--saffron); }

/* ============================================================
   EDITOR'S NOTE — daily auto-generated editorial digest banner
   ============================================================ */
.editors-note {
    background: var(--surface, #fff);
    border: 1px solid var(--gold);
    border-left: 4px solid #F08A00;
    border-radius: 6px;
    padding: 22px 28px 24px;
    margin: 0 0 32px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
[data-theme="dark"] .editors-note {
    background: #112846;
    border-color: rgba(240,138,0,0.55);
    box-shadow: 0 2px 12px rgba(0,0,0,0.35);
}
.editors-note-head {
    display: flex; justify-content: space-between; align-items: baseline;
    gap: 12px; margin-bottom: 8px;
    border-bottom: 1px solid var(--gold);
    padding-bottom: 6px;
}
.editors-note-dateline {
    font-family: var(--font-heading);
    font-weight: 700;
    font-size: 0.78rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #C97300;
}
[data-theme="dark"] .editors-note-dateline { color: #F4A331; }
.editors-note-date {
    font-size: 0.8rem;
    color: var(--text-mute);
    font-style: italic;
}
.editors-note-title {
    font-family: var(--font-heading);
    font-size: 1.55rem;
    line-height: 1.25;
    color: var(--text);
    margin: 6px 0 12px;
    font-weight: 700;
}
.editors-note-body {
    font-family: var(--font-heading);
    font-size: 1.02rem;
    line-height: 1.7;
    color: var(--text);
}
.editors-note-body p { margin: 0 0 10px; }
.editors-note-body p:last-child { margin-bottom: 0; }
.editors-note-sign {
    margin-top: 12px;
    text-align: right;
    font-style: italic;
    font-size: 0.88rem;
    color: var(--text-mute);
}
[data-theme="dark"] .editors-note-title { color: #F4E9D2; }
[data-theme="dark"] .editors-note-body { color: #E8E2D4; }
[data-theme="dark"] .editors-note-date { color: #B8C4D6; }
[data-theme="dark"] .editors-note-sign { color: #C8B894; }

/* ============================================================
   MODAL BYLINE + READ-ORIGINAL LINK
   ============================================================ */
.modal-byline {
    display: flex; flex-wrap: wrap; gap: 6px 18px;
    padding: 10px 0;
    margin-bottom: 14px;
    border-top: 1px solid var(--gold);
    border-bottom: 1px solid var(--gold);
    font-size: 0.82rem;
    color: var(--text-2);
}
.modal-byline strong { color: var(--text); }
.modal-byline-author { font-style: italic; }
.modal-byline-source::before { content: "·"; margin-right: 12px; color: var(--text-mute); }
@media (max-width: 600px) {
    .modal-byline-source::before { display: none; }
}
.modal-original-link {
    display: inline-block;
    margin: 22px 0 8px;
    padding: 12px 18px;
    background: linear-gradient(135deg, #F08A00, #C97300);
    color: #fff !important;
    font-weight: 600;
    font-size: 0.95rem;
    border-radius: 4px;
    text-decoration: none;
    transition: transform 0.15s, box-shadow 0.15s;
}
.modal-original-link:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(240,138,0,0.35);
}

/* ============================================================
   ABOUT / EDITORIAL STANDARDS MODAL
   ============================================================ */
.about-modal {
    padding: 28px 32px 40px;
    font-family: var(--font-heading);
    line-height: 1.7;
    color: var(--text-2);
    max-width: 720px;
    margin: 0 auto;
}
.about-modal .about-title {
    font-family: var(--font-heading);
    font-size: 2.4rem;
    color: var(--text);
    margin: 0 0 4px;
    text-align: center;
    font-weight: 700;
}
.about-modal .about-tagline {
    text-align: center;
    color: var(--text-mute);
    margin: 0 0 28px;
    font-size: 1.05rem;
}
.about-modal h3 {
    font-family: var(--font-heading);
    color: #C97300;
    font-size: 1.15rem;
    margin: 26px 0 8px;
    padding-bottom: 4px;
    border-bottom: 1px solid var(--gold);
    letter-spacing: 0.04em;
}
[data-theme="dark"] .about-modal h3 { color: #F4A331; }
.about-modal p { margin: 0 0 12px; font-size: 0.98rem; }
.about-modal a { color: #C97300; text-decoration: none; }
.about-modal a:hover { text-decoration: underline; }
.about-sources {
    display: flex; flex-wrap: wrap; gap: 6px 8px;
    margin: 10px 0 6px;
}
.about-source-chip {
    display: inline-block;
    background: rgba(11,37,69,0.06);
    border: 1px solid var(--gold);
    border-radius: 14px;
    padding: 4px 12px;
    font-size: 0.84rem;
    color: var(--text-2);
    font-weight: 500;
}
[data-theme="dark"] .about-source-chip { background: rgba(255,255,255,0.04); }
.about-standards {
    list-style: none; padding: 0; margin: 8px 0 0;
}
.about-standards li {
    padding: 6px 0;
    font-size: 0.96rem;
    border-bottom: 1px dotted var(--gold);
}
.about-standards li:last-child { border-bottom: none; }
.about-founded {
    margin-top: 30px;
    padding-top: 14px;
    border-top: 2px double var(--gold);
    text-align: center;
    font-style: italic;
    color: var(--text-mute);
    font-size: 0.9rem;
}

@media (max-width: 600px) {
    .editors-note { padding: 18px 18px 20px; }
    .editors-note-title { font-size: 1.3rem; }
    .editors-note-body { font-size: 0.96rem; }
    .about-modal { padding: 22px 20px 32px; }
    .about-modal .about-title { font-size: 1.8rem; }
}

/* ============================================================
   CATEGORY VIEW — main + sidebar (professional newspaper layout)
   ============================================================ */
.category-grid {
    display: grid;
    grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr);
    gap: 36px;
    align-items: start;
}
.category-main { min-width: 0; }
.category-aside {
    position: sticky;
    top: 12px;
    display: flex;
    flex-direction: column;
    gap: 22px;
}
.side-widget {
    background: var(--surface, #fff);
    border: 1px solid var(--border, rgba(0,0,0,0.08));
    border-top: 3px solid var(--saffron);
    border-radius: 4px;
    padding: 16px 18px 18px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
[data-theme="dark"] .side-widget {
    background: #112846;
    border-color: rgba(255,255,255,0.08);
    border-top-color: var(--saffron);
}
.side-widget-title {
    font-family: var(--font-heading);
    font-size: 0.78rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--text-mute);
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border, rgba(0,0,0,0.08));
}
[data-theme="dark"] .side-widget-title { color: #C8B894; border-bottom-color: rgba(255,255,255,0.1); }
.side-list {
    list-style: none; margin: 0; padding: 0;
    display: flex; flex-direction: column; gap: 14px;
}
.side-list li {
    display: flex; gap: 10px; align-items: flex-start;
    padding-bottom: 14px;
    border-bottom: 1px dotted var(--border, rgba(0,0,0,0.1));
}
.side-list li:last-child { border-bottom: none; padding-bottom: 0; }
.side-num {
    flex: 0 0 auto;
    font-family: var(--font-heading);
    font-size: 1.4rem; font-weight: 700;
    color: var(--saffron);
    line-height: 1; min-width: 24px;
}
.side-link { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; }
.side-link:hover .side-headline { color: var(--saffron); }
.side-cat {
    font-size: 0.7rem; letter-spacing: 0.1em;
    text-transform: uppercase; color: var(--saffron);
    font-weight: 600;
}
.side-headline {
    font-family: var(--font-heading);
    font-size: 0.96rem; line-height: 1.35;
    color: var(--text); font-weight: 600;
    transition: color 0.15s;
}
[data-theme="dark"] .side-headline { color: #F4E9D2; }
.side-time { font-size: 0.74rem; color: var(--text-mute); }
.side-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.side-tag {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 6px 12px;
    background: var(--bg-mute, rgba(0,0,0,0.04));
    border: 1px solid var(--border, rgba(0,0,0,0.08));
    border-radius: 999px;
    font-size: 0.85rem;
    color: var(--text);
    transition: all 0.15s;
}
[data-theme="dark"] .side-tag {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.1);
    color: #E8E2D4;
}
.side-tag:hover {
    background: var(--saffron); color: white; border-color: var(--saffron);
}
.side-tag-n {
    font-size: 0.72rem; opacity: 0.7;
    background: rgba(0,0,0,0.08);
    padding: 1px 6px; border-radius: 999px;
}
.side-tag:hover .side-tag-n { background: rgba(255,255,255,0.25); opacity: 1; }

@media (max-width: 900px) {
    .category-grid { grid-template-columns: 1fr; gap: 28px; }
    .category-aside { position: static; }
}

/* ============================================================
   FRESHNESS BADGE — pulsing "NEW" on articles <30min old
   ============================================================ */
.card-new-badge {
    position: absolute; top: 10px; left: 10px;
    background: #E63946;
    color: #fff;
    font-size: 0.68rem; font-weight: 700;
    letter-spacing: 0.08em;
    padding: 4px 8px; border-radius: 3px;
    box-shadow: 0 2px 6px rgba(230,57,70,0.4);
    text-transform: uppercase;
    z-index: 2;
    animation: newPulse 2s ease-in-out infinite;
}
@keyframes newPulse {
    0%, 100% { box-shadow: 0 2px 6px rgba(230,57,70,0.4); transform: scale(1); }
    50%      { box-shadow: 0 2px 14px rgba(230,57,70,0.7); transform: scale(1.04); }
}
.card-fav, .src-fav {
    width: 14px; height: 14px;
    vertical-align: -2px; margin-right: 5px;
    border-radius: 2px;
}
.src-fav { width: 18px; height: 18px; vertical-align: -4px; margin-right: 7px; }

/* ============================================================
   RELATED ARTICLES — bottom of modal (NYT-style)
   ============================================================ */
.modal-related {
    margin-top: 36px;
    padding-top: 24px;
    border-top: 2px solid var(--border, rgba(0,0,0,0.1));
}
.modal-related-title {
    font-family: var(--font-heading);
    font-size: 0.82rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--text-mute);
    margin: 0 0 16px;
    font-weight: 700;
}
.modal-related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 18px;
}
.rel-card {
    display: flex; flex-direction: column;
    background: var(--surface, #fff);
    border: 1px solid var(--border, rgba(0,0,0,0.08));
    border-radius: 4px;
    overflow: hidden;
    transition: transform 0.15s, box-shadow 0.15s;
}
[data-theme="dark"] .rel-card {
    background: #112846;
    border-color: rgba(255,255,255,0.08);
}
.rel-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0,0,0,0.1);
    border-color: var(--saffron);
}
.rel-card-img {
    width: 100%; height: 110px;
    object-fit: cover; display: block;
}
.rel-card-body {
    padding: 10px 12px 12px;
    display: flex; flex-direction: column; gap: 4px;
}
.rel-card-cat {
    font-size: 0.66rem; letter-spacing: 0.12em;
    text-transform: uppercase; color: var(--saffron);
    font-weight: 700;
}
.rel-card-title {
    font-family: var(--font-heading);
    font-size: 0.92rem; line-height: 1.3;
    color: var(--text); margin: 0;
    font-weight: 600;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
[data-theme="dark"] .rel-card-title { color: #F4E9D2; }
.rel-card-time { font-size: 0.72rem; color: var(--text-mute); margin-top: 4px; }

/* News card image wrap needs relative for badge */
.news-card-image-wrap { position: relative; }

/* ============================================================
   SKELETON LOADERS — instant paint while data loads
   ============================================================ */
.skeleton-wrap { display: flex; flex-direction: column; gap: 32px; }
.skeleton-hero {
    display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px;
    align-items: start;
}
.skeleton-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 22px;
}
.sk-card { background: var(--surface,#fff); border:1px solid var(--border,rgba(0,0,0,0.06)); border-radius:6px; padding:14px; }
[data-theme="dark"] .sk-card { background:#112846; border-color:rgba(255,255,255,0.06); }
.sk-img {
    width: 100%; aspect-ratio: 16/10;
    border-radius: 6px;
    background: linear-gradient(90deg, rgba(0,0,0,0.06) 25%, rgba(0,0,0,0.12) 37%, rgba(0,0,0,0.06) 63%);
    background-size: 400% 100%;
    animation: skShimmer 1.4s ease infinite;
    margin-bottom: 12px;
}
.sk-img.sm { aspect-ratio: 16/9; }
[data-theme="dark"] .sk-img {
    background: linear-gradient(90deg, rgba(255,255,255,0.05) 25%, rgba(255,255,255,0.1) 37%, rgba(255,255,255,0.05) 63%);
    background-size: 400% 100%;
}
.sk-text { display:flex; flex-direction:column; gap:10px; padding-top:8px; }
.sk-line {
    height: 14px; border-radius: 3px;
    background: linear-gradient(90deg, rgba(0,0,0,0.06) 25%, rgba(0,0,0,0.12) 37%, rgba(0,0,0,0.06) 63%);
    background-size: 400% 100%;
    animation: skShimmer 1.4s ease infinite;
    margin-bottom: 8px;
}
[data-theme="dark"] .sk-line {
    background: linear-gradient(90deg, rgba(255,255,255,0.05) 25%, rgba(255,255,255,0.1) 37%, rgba(255,255,255,0.05) 63%);
    background-size: 400% 100%;
}
.w-30 { width:30%; } .w-40 { width:40%; } .w-60 { width:60%; }
.w-70 { width:70%; } .w-80 { width:80%; } .w-90 { width:90%; }
@keyframes skShimmer {
    0% { background-position: 100% 0; }
    100% { background-position: -100% 0; }
}
@media (max-width: 720px) {
    .skeleton-hero { grid-template-columns: 1fr; }
}

/* Sparse sections: cap columns to 3 and let cards stretch wider so 2-3 items
   fill the row instead of leaving empty slots. */
.news-section.is-sparse {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    max-width: 900px;
}

/* ============================================================
   SHARE CHIP ROW (modal) — v27
   ============================================================ */
.modal-share-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 14px 0 18px;
    padding: 10px 14px;
    border-radius: 10px;
    background: rgba(240, 138, 0, 0.06);
    border: 1px solid rgba(240, 138, 0, 0.18);
}
[data-theme="dark"] .modal-share-row {
    background: rgba(240, 138, 0, 0.08);
    border-color: rgba(240, 138, 0, 0.22);
}
.modal-share-row .share-label {
    font-weight: 600;
    color: var(--ink, #0B2545);
    font-size: 13px;
    margin-right: 4px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}
[data-theme="dark"] .modal-share-row .share-label { color: #F4E9D2; }
.share-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    font-size: 12.5px;
    font-weight: 600;
    border-radius: 999px;
    border: 1px solid transparent;
    cursor: pointer;
    transition: transform 0.12s, filter 0.12s, box-shadow 0.12s;
    color: #fff;
    line-height: 1;
    font-family: inherit;
}
.share-chip:hover { transform: translateY(-1px); filter: brightness(1.08); box-shadow: 0 3px 8px rgba(0,0,0,0.15); }
.share-chip:active { transform: translateY(0); }
.share-chip.wa { background: #25D366; }
.share-chip.x  { background: #000; }
.share-chip.tg { background: #29A0DA; }
.share-chip.fb { background: #1877F2; }
.share-chip.li { background: #0A66C2; }
.share-chip.cp { background: #6c757d; }

@media (max-width: 600px) {
    .modal-share-row { padding: 8px 10px; gap: 6px; }
    .share-chip { padding: 5px 10px; font-size: 11.5px; }
    .modal-share-row .share-label { width: 100%; margin-bottom: 4px; }
}

/* ============================================================
   FOOTER — real link styling polish (v27)
   ============================================================ */
.footer-section ul a:hover { color: var(--saffron, #F08A00); }

/* ============================================================
   WORD OF THE DAY — homepage strip + sidebar widget (v28)
   ============================================================ */
.wod-strip {
    margin: 28px 0;
    border-radius: 14px;
    background: linear-gradient(135deg, #FEF6E0 0%, #F4E9D2 100%);
    border: 1px solid rgba(240,138,0,0.25);
    box-shadow: 0 6px 24px rgba(11,37,69,0.08);
    overflow: hidden;
}
[data-theme="dark"] .wod-strip {
    background: linear-gradient(135deg, #112846 0%, #0B2545 100%);
    border-color: rgba(240,138,0,0.35);
    box-shadow: 0 6px 24px rgba(0,0,0,0.4);
}
.wod-strip-inner {
    display: grid;
    grid-template-columns: minmax(180px, 280px) 1fr;
    gap: 28px;
    padding: 24px 28px;
    align-items: center;
}
.wod-strip-left {
    border-right: 2px solid rgba(240,138,0,0.3);
    padding-right: 24px;
}
[data-theme="dark"] .wod-strip-left { border-right-color: rgba(240,138,0,0.4); }
.wod-strip-eyebrow {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 2px;
    color: #C97300;
    text-transform: uppercase;
    margin-bottom: 8px;
}
[data-theme="dark"] .wod-strip-eyebrow { color: #F08A00; }
.wod-strip-glyph {
    font-family: 'Sanskrit 2003','Noto Serif Devanagari',serif;
    font-size: 44px;
    font-weight: 700;
    color: #0B2545;
    line-height: 1.1;
}
[data-theme="dark"] .wod-strip-glyph { color: #FBF9F4; }
.wod-strip-translit {
    font-family: 'Source Serif 4',serif;
    font-size: 16px;
    font-style: italic;
    color: #555;
    margin-top: 4px;
}
[data-theme="dark"] .wod-strip-translit { color: #E8E2D4; }
.wod-strip-mean {
    font-family: 'Source Serif 4',serif;
    font-size: 17px;
    color: #222;
    margin: 0 0 12px;
    line-height: 1.5;
}
[data-theme="dark"] .wod-strip-mean { color: #F4E9D2; }
.wod-strip-shloka {
    margin: 0;
    padding: 10px 14px;
    border-left: 3px solid #F08A00;
    background: rgba(255,255,255,0.5);
    border-radius: 4px;
}
[data-theme="dark"] .wod-strip-shloka { background: rgba(255,255,255,0.05); }
.wod-strip-sl {
    display: block;
    font-family: 'Noto Serif Devanagari',serif;
    font-size: 17px;
    color: #13315C;
    line-height: 1.5;
}
[data-theme="dark"] .wod-strip-sl { color: #FBF9F4; }
.wod-strip-sl-en {
    display: block;
    font-size: 13px;
    color: #777;
    margin-top: 6px;
    font-style: italic;
}
[data-theme="dark"] .wod-strip-sl-en { color: #BFC9D9; }

@media (max-width: 720px) {
    .wod-strip-inner { grid-template-columns: 1fr; gap: 16px; padding: 18px; }
    .wod-strip-left { border-right: none; border-bottom: 2px solid rgba(240,138,0,0.3); padding: 0 0 14px; text-align: center; }
    .wod-strip-glyph { font-size: 36px; }
}

/* Sidebar WoD widget (compact) */
.side-widget.word-day .wod-card {
    text-align: center;
    padding: 8px 0 4px;
}
.wod-glyph {
    font-family: 'Sanskrit 2003','Noto Serif Devanagari',serif;
    font-size: 32px;
    font-weight: 700;
    color: #0B2545;
}
[data-theme="dark"] .wod-glyph { color: #FBF9F4; }
.wod-translit {
    font-style: italic;
    font-size: 14px;
    color: #777;
    margin: 2px 0 8px;
}
.wod-mean {
    font-size: 13px;
    color: #444;
    line-height: 1.45;
    margin-bottom: 10px;
}
[data-theme="dark"] .wod-mean { color: #E8E2D4; }
.wod-shloka {
    margin: 0;
    padding: 8px 10px;
    border-left: 3px solid #F08A00;
    background: rgba(240,138,0,0.06);
    text-align: left;
    border-radius: 4px;
}
.wod-shloka-sa {
    display: block;
    font-family: 'Noto Serif Devanagari',serif;
    font-size: 14px;
    color: #13315C;
    line-height: 1.5;
}
[data-theme="dark"] .wod-shloka-sa { color: #FBF9F4; }
.wod-shloka-en {
    display: block;
    font-size: 11.5px;
    color: #777;
    margin-top: 4px;
    font-style: italic;
}

/* ============================================================
   SUPPORT US WIDGET (sidebar) — v28
   ============================================================ */
.side-widget.support-widget {
    background: linear-gradient(135deg, #FFF6E5, #FEF6E0);
    border: 1px solid rgba(240,138,0,0.25);
}
[data-theme="dark"] .side-widget.support-widget {
    background: linear-gradient(135deg, #112846, #13315C);
    border-color: rgba(240,138,0,0.3);
}
.support-blurb {
    font-size: 13px;
    color: #555;
    line-height: 1.55;
    margin: 0 0 12px;
}
[data-theme="dark"] .support-blurb { color: #E8E2D4; }
.support-actions { display: flex; flex-direction: column; gap: 8px; }
.support-btn {
    display: block;
    padding: 9px 12px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
    transition: transform 0.12s, box-shadow 0.12s, filter 0.12s;
}
.support-btn.primary {
    background: linear-gradient(135deg, #F08A00, #C97300);
    color: #fff;
}
.support-btn.secondary {
    background: transparent;
    color: #C97300;
    border: 1px solid rgba(240,138,0,0.5);
}
[data-theme="dark"] .support-btn.secondary { color: #F08A00; }
.support-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(240,138,0,0.25); filter: brightness(1.05); }

/* ============================================================
   MODAL COMMENTS (Giscus / placeholder) — v28
   ============================================================ */
.modal-comments {
    margin: 36px 0 20px;
    padding-top: 24px;
    border-top: 2px solid rgba(11,37,69,0.1);
}
[data-theme="dark"] .modal-comments { border-top-color: rgba(255,255,255,0.1); }
.modal-comments-title {
    font-family: 'Source Serif 4',serif;
    font-size: 20px;
    color: #0B2545;
    margin: 0 0 16px;
}
[data-theme="dark"] .modal-comments-title { color: #FBF9F4; }
.comments-placeholder {
    padding: 24px;
    background: rgba(11,37,69,0.04);
    border-radius: 8px;
    text-align: center;
    color: #777;
    font-style: italic;
}
[data-theme="dark"] .comments-placeholder { background: rgba(255,255,255,0.04); color: #BFC9D9; }
