@font-face {
    font-family: 'Omaaa Devanagari';
    src: url('../fonts/NotoSansDevanagari.woff2') format('woff2'), url('../fonts/NotoSansDevanagari.ttf') format('truetype');
    font-weight: 100 900;
    font-display: swap;
}
:root {
    --brand: #c34716; --brand-dark: #9e330d; --brand-light: #e56b31;
    --ink: #17324d; --ink-soft: #42576b; --muted: #56697a;
    --bg: #fffaf5; --bg-alt: #fff3e7; --line: #e6e2dc;
    --font-devanagari: 'Omaaa Devanagari', 'Nirmala UI', 'Mangal', sans-serif;
}
body { background: #fffaf5; color: var(--ink); font-size: 17px; line-height: 1.75; }
html[lang="hi"] body, html[lang="mr"] body, html[lang="hng"] body {
    font-family: 'Omaaa Devanagari', system-ui, sans-serif; font-weight: 450;
}
button, input, select, textarea { font: inherit; }
.section-head p, .horoscope-hero p, .prose, .article-body, .reading-body, .aside-card p { font-size: 17px; line-height: 1.8; }
.section-head h1, .section-head h2, h2, h3 { font-weight: 700; }
.site-header { top: 0; margin: 0; border-radius: 0; border: 0; border-bottom: 1px solid var(--line); background: #fff; box-shadow: 0 2px 12px #17324d08; }
.site-nav a, .knowledge-menu summary, .knowledge-menu > ul a { font-size: 15px; font-weight: 600; }
.site-nav a[aria-current="page"] { color: var(--brand); box-shadow: inset 0 -3px var(--brand); }
.brand-tagline { font-size: 11px; }
.btn, .period-strip a { min-height: 44px; font-size: 15px; font-weight: 650; }
.btn-primary, .hero-actions .btn-primary { background: var(--brand); color: #fff; border-color: var(--brand); }
.btn-primary:hover, .hero-actions .btn-primary:hover { background: var(--brand-dark); border-color: var(--brand-dark); }
.btn-ghost { border-color: #d7c9ba; }
input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]):not([type="submit"]), select, textarea {
    width: 100%; min-height: 48px; padding: 11px 14px; border: 1px solid #b5bfca;
    border-radius: 10px; color: #17324d; background: #fff; font-size: 16px;
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--brand); }
label { color: #17324d; font-weight: 600; }
:is(input, select, textarea, button, a):focus-visible { outline: 3px solid #247d88; outline-offset: 3px; }
.site-footer, .site-footer p, .site-footer a, .footer-links a { font-size: 15px; line-height: 1.8; }
.breadcrumbs, .result-meta, .hint { font-size: 14px; color: var(--muted); }
.period-strip a.is-active { background: #17324d; color: #fff; }
.permission-option { display: flex; gap: 10px; align-items: center; margin-block: 9px; }
.admin { background: #f4f7fa; font-size: 15px; }
.admin .card { border: 1px solid #e1e7ef; }
@media (max-width: 640px) {
    body { font-size: 16px; }
    .section-head p, .prose, .article-body { font-size: 16px; }
    .site-header { top: 0; margin: 0; border-radius: 0; }
    .brand-text { font-size: 22px; }
    .knowledge-menu > ul { max-width: min(320px, 90vw); }
}
:root { --forecast-note-bg: #fff8e8; }
.forecast-method { background: var(--forecast-note-bg); border-inline-start: 4px solid #c45b16; padding: 14px 18px; color: #344454; font-size: 1rem; line-height: 1.85; border-radius: 10px; margin: 18px 0 24px; }
.editorial-prose { line-height: 1.9; overflow-wrap: anywhere; }
.install-help { width: min(480px, calc(100% - 32px)); max-height: 85dvh; overflow: auto; border: 1px solid var(--line); border-radius: 18px; padding: 24px; color: var(--ink); background: #fffaf5; box-shadow: 0 16px 60px #17324d33; }
.install-help::backdrop { background: #17324d88; }
.install-help:not([open]) { display: none; }
.install-help p { line-height: 1.8; }
.page-share-bar { display: flex; justify-content: flex-end; padding-top: 16px; }
.page-share-dialog { width: min(720px, calc(100% - 24px)); max-height: 90dvh; overflow: auto; border: 1px solid var(--line); border-radius: 18px; padding: 24px; color: var(--ink); background: #fffaf5; }
.page-share-dialog::backdrop { background: #17324d88; }
.page-share-dialog:not([open]) { display: none; }
.page-share-dialog p { line-height: 1.75; }
.page-share-heading { font-weight: 700; }
.page-share-actions { display: flex; flex-wrap: wrap; gap: 10px; }
[data-share-previews] { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
[data-share-previews] figure { margin: 0; min-width: 0; }
[data-share-previews] img { display: block; width: 100%; height: auto; border-radius: 12px; border: 1px solid var(--line); margin-bottom: 8px; }
.page-share-dialog textarea { width: 100%; min-height: 180px; }
@media (max-width: 480px) { [data-share-previews] { grid-template-columns: 1fr; } }
@media print { .page-share-bar, .page-share-dialog { display: none; } }
/* Topic artwork and authored infographic summaries. */
.puja-card { transition: transform .18s ease, box-shadow .18s ease; }
.puja-card:hover { transform: translateY(-3px); box-shadow: 0 14px 34px #19374716; }
.puja-card:focus-within { outline: 3px solid #df8d38; outline-offset: 3px; }
.puja-card-art { aspect-ratio: 1.5; }
.puja-card-art img { display: block; transition: transform .25s ease; }
.puja-card-art:hover img { transform: scale(1.025); }
.knowledge-visual { margin-block: 26px 38px; border: 1px solid var(--line); padding: clamp(16px,3vw,30px); background: #fff; border-radius: 22px; }
.knowledge-visual-head h2 { margin: 8px 0 22px; font-size: clamp(22px,3vw,28px); }
.knowledge-hero { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(0,1fr); margin: 0 0 24px; background: #fff8ef; border-radius: 16px; overflow: hidden; }
.knowledge-hero a { display: block; min-width: 0; }
.knowledge-hero img { display: block; width: 100%; height: 100%; object-fit: cover; }
.knowledge-hero figcaption { padding: 24px; align-self: center; }
.knowledge-hero figcaption span { color: var(--saffron); font-size: 13px; font-weight: 650; }
.knowledge-hero figcaption p { font-size: 17px; line-height: 1.85; margin: 12px 0 0; }
.knowledge-points { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; list-style: none; padding: 0; margin: 22px 0 0; counter-reset: none; }
.knowledge-points li { display: flex; gap: 16px; align-items: start; padding: 20px; border: 1px solid #e8e3d9; border-radius: 16px; background: #fffdf8; }
.knowledge-points h3 { font-size: 19px; margin: 0 0 8px; line-height: 1.55; }
.knowledge-points p { font-size: 16px; margin: 0; line-height: 1.85; overflow-wrap: anywhere; }
.knowledge-point-symbol { position: relative; display: grid; place-items: center; width: 46px; height: 46px; flex: 0 0 46px; color: #b45421; background: #ffedda; border-radius: 13px; }
.knowledge-point-symbol .ui-icon { width: 26px; height: 26px; }
.knowledge-point-symbol b { position: absolute; inset-inline-end: -5px; top: -7px; width: 21px; height: 21px; display: grid; place-items: center; border-radius: 50%; color: white; background: #193747; font-size: 12px; }
.knowledge-card-image { display: block; width: 100%; height: auto; aspect-ratio: 1.5; object-fit: cover; border-radius: 12px; margin-bottom: 16px; }
.vastu-diagram { margin: 24px 0; border: 1px solid #eedfcb; border-radius: 16px; overflow: hidden; background: #fcf3e4; }
.vastu-diagram svg { display: block; width: 100%; height: auto; max-height: 360px; }
.vastu-diagram-key { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 18px; background: #fffaf2; }
.vastu-diagram-key span { display: flex; align-items: center; gap: 10px; font-size: 15px; }
.vastu-diagram-key b { border-radius: 50%; width: 26px; height: 26px; flex: 0 0 26px; display: grid; place-items: center; background: #193747; color: white; font-size: 14px; }
.vastu-diagram-note { padding: 0 18px 18px; color: var(--text-muted, #596a77); font-size: 14px; line-height: 1.7; }
@media (max-width: 620px) { .knowledge-hero,.knowledge-points { grid-template-columns: 1fr; } .knowledge-hero img { height: auto; } .knowledge-hero figcaption { padding: 18px; } .knowledge-points li { padding: 16px; gap: 12px; } .knowledge-points h3 { font-size: 18px; } .knowledge-points p { font-size: 16px; } }
@media (prefers-reduced-motion: reduce) { .puja-card,.puja-card-art img { transition: none; } .puja-card:hover,.puja-card-art:hover img { transform: none; } }

.puja-detail-figure { margin: 0 0 24px; }
.puja-detail-figure a { display: block; }
.puja-detail-figure figcaption { margin-top: 8px; color: var(--text-muted, #596a77); font-size: 14px; }
/* Devotional readings keep the Sanskrit text prominent on small screens. */
.mantra-readings blockquote { font-size: clamp(1.2rem, 2.2vw, 1.55rem); font-weight: 600; line-height: 1.9; font-style: normal; overflow-wrap: anywhere; }
.mantra-search label { font-weight: 600; }
.mantra-search input { flex: 1 1 260px; min-width: 0; padding: 12px 14px; border: 1px solid var(--line, #e5d8ce); border-radius: 12px; font: inherit; color: var(--ink, #193747); background: #fff; }
@media (max-width: 600px) { .mantra-search label, .mantra-search input { flex-basis: 100%; } }

/* Clearly separated, in-flow advertisements; no fixed/sticky overlays. */
.advertisement { margin-block: 24px; text-align: center; }
.knowledge-filters { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:16px; align-items:end; margin-block:24px; }
.knowledge-filters .field { min-width:0; }
.knowledge-filters button { min-height:48px; }
.knowledge-detail-image { display:block; max-width:100%; height:auto; margin-block:24px; border-radius:12px; }
.knowledge-faq { padding-block:12px; border-bottom:1px solid var(--line); }
.knowledge-faq summary { font-weight:650; cursor:pointer; padding-block:8px; }
@media print { .knowledge-filters,.knowledge-faq summary::marker { display:none; } }
.advertisement-label { display: block; margin-bottom: 8px; color: var(--muted, #66717b); font: 500 11px/1.5 var(--font, sans-serif); letter-spacing: .04em; }
.advertisement-creative { width: 100%; min-width: 0; margin-inline: auto; }
.advertisement-creative > a { display: block; width: fit-content; max-width: 100%; margin-inline: auto; }
.advertisement-creative img { display: block; max-width: 100%; width: auto; max-height: 600px; height: auto; margin-inline: auto; border-radius: 10px; }
.advertisement-creative iframe { display: block; width: 100%; max-width: 100%; border: 0; background: transparent; }
.advertisement-creative ins { min-width: 0; }
.advertisement a:focus-visible { outline: 3px solid var(--brand, #a34423); outline-offset: 4px; }
@media print { .advertisement { display: none !important; } }
.forecast-dates { padding: 16px; margin-block: 18px 24px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.forecast-dates > span { display: block; margin-bottom: 10px; color: var(--ink); font-size: 14px; font-weight: 650; }
.forecast-dates ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.forecast-dates a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 9px; color: var(--ink); font-size: 14px; text-decoration: none; }
.forecast-dates a:hover, .forecast-dates a[aria-current=date] { background: #fff0df; border-color: var(--brand); color: var(--brand-dark); }
.knowledge-image-frame{aspect-ratio:3/2;overflow:hidden;margin:0 0 1rem}.knowledge-image-frame>img{width:100%;height:100%;object-fit:contain;display:block}

.knowledge-hub-art{height:240px;overflow:hidden;border-radius:18px;margin-bottom:24px}.knowledge-hub-art img{width:100%;height:100%;object-fit:cover}@media(max-width:600px){.knowledge-hub-art{height:180px}}

/* Official calendars remain readable on small screens. */
.holiday-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:1rem;align-items:end;margin-bottom:1.5rem}.holiday-filters select,.holiday-filters input{width:100%;max-width:100%}.holiday-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:1rem;margin:1.5rem 0}.holiday-grid h2{font-size:1.15rem}.holiday-grid a,.holiday-grid p{overflow-wrap:anywhere}
@media(max-width:780px){.header-inner>.brand{min-width:0;max-width:calc(100% - 190px)}.header-inner .brand-lockup{min-width:0;max-width:100%}.header-inner .brand-mobile{font-size:clamp(16px,4.5vw,23px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}}


/* Original responsive banners and restrained motion; content never waits for animation. */
.home-carousel { margin-block:1.5rem 2rem; }
.carousel-stage { position:relative; min-height:22rem; overflow:hidden; border:1px solid var(--line); border-radius:24px; background:#fff3e7; }
.carousel-slide { position:relative; min-height:22rem; isolation:isolate; }
.carousel-slide[hidden] { display:none; }
.carousel-art { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; object-position:right center; z-index:-1; }
.carousel-art img { width:100%; height:100%; object-fit:contain; object-position:right center; }
.carousel-copy { max-width:52%; padding:2.5rem; }
.carousel-copy h2 { font-size:clamp(1.7rem,3vw,2.7rem); line-height:1.3; margin:.5rem 0 1rem; }
.carousel-copy p { color:var(--ink-soft); }
.carousel-controls { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:.8rem; padding:.75rem; }
.carousel-controls button { min-width:44px; min-height:44px; border:1px solid var(--line); border-radius:10px; background:white; color:var(--ink); padding:.4rem .8rem; cursor:pointer; }
.carousel-controls button[aria-pressed="true"] { background:var(--ink); color:#fff; }
.motion-accent { display:block; width:64px; height:64px; margin-bottom:.6rem; }
.motion-accent img { width:64px; height:64px; }
.call-controls audio { max-width:100%; width:100%; margin-top:1rem; }
.tool-card > img { max-width:100%; object-fit:contain; border-radius:14px; }
input,select,textarea { max-width:100%; min-width:0; }
:focus-visible { outline:3px solid #b65b20; outline-offset:3px; }
@media (prefers-reduced-motion:no-preference) {
 .btn, .tool-card, .carousel-controls button { transition:transform 180ms ease,box-shadow 180ms ease,background-color 160ms ease; }
 @media (hover:hover) { .tool-card:hover { transform:translateY(-3px); } .btn:hover { transform:translateY(-1px); } }
 .btn:active { transform:translateY(1px); }
 .carousel-slide:not([hidden]) { animation:omaaa-banner-enter 420ms ease-out both; }
 .knowledge-menu[open] > ul { animation:omaaa-menu-enter 160ms ease-out; }
 [data-call-state] { transition:opacity 180ms ease; }
 @keyframes omaaa-banner-enter { from { opacity:.35; transform:translateX(18px); } to { opacity:1; transform:translateX(0); } }
 @keyframes omaaa-menu-enter { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }
}
@media (max-width:640px) {
 .carousel-stage,.carousel-slide { min-height:28rem; }
 .carousel-copy { max-width:100%; padding:1.5rem 1.25rem 10rem; }
 .carousel-art { top:auto; bottom:0; height:10rem; opacity:.9; }
 .carousel-art img { object-position:center; }
 .carousel-controls { gap:.5rem; }
 .home-carousel { width:calc(100% - 2rem); }
 .period-strip { overflow-x:auto; gap:.65rem; }
 .tool-card { min-width:0; }
}
@media (prefers-reduced-motion:reduce) {
 *,*::before,*::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

.natal-diagram { display:block; width:min(100%,28rem); height:auto; margin:1.5rem auto; }
.knowledge-menu > ul { max-height:70vh; overflow-y:auto; overscroll-behavior:contain; }

/* Keep below-fold Hindi shaping out of the initial render. */
@supports (content-visibility:auto) {
 .home-deferred { content-visibility:auto; contain-intrinsic-size:auto 650px; }
}
@media print { .home-deferred { content-visibility:visible; } }
.sign-card.tone-strong .chip-tone { color:#0d7041; }
.mobile-dock a[aria-current="page"] { color:var(--brand-dark); }

.home-carousel { scroll-margin-top:100px; }
