/* ============================================================
   tamilnaduswadeshi.com — dynamic portal components (extends style.css)
   ============================================================ */
:root { --shadow-sm: 0 2px 10px rgba(16,36,59,.07); --shadow: 0 12px 34px rgba(16,36,59,.12); --cream-dark: var(--paper-2); }

/* ---------- utilities ---------- */
.muted { color: var(--muted); }
.small { font-size: .85rem; }
.hp-field { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.skip-link { position: absolute; left: -9999px; top: 8px; z-index: 5000; background: var(--navy); color: #fff; padding: 10px 16px; border-radius: 8px; }
.skip-link:focus { left: 12px; }
.no-anim .reveal, .no-anim .reveal-pop, .no-anim .reveal-r { opacity: 1 !important; transform: none !important; }
.sec-intro { margin-bottom: 8px; }
.sec-intro.text-center .section-sub { margin-left: auto; margin-right: auto; }
.empty-note { background: #fff; border: 1px dashed var(--line); border-radius: var(--r-lg); padding: 28px 22px; text-align: center; color: var(--muted); font-weight: 500; }
.thumb-ph { display: grid; place-items: center; width: 100%; height: 100%; min-height: 160px; background: linear-gradient(135deg, var(--navy), var(--navy-2)); color: var(--gold); font-family: 'Noto Serif Tamil', serif; font-size: 3rem; font-weight: 800; }

/* ---------- flash ---------- */
.flash { padding: 12px 0; font-weight: 600; font-size: .95rem; }
.flash-success { background: #E7F4EC; color: var(--green-dark); }
.flash-error { background: #FCE8E3; color: #9B2C12; }
.flash-warn, .flash-info { background: #FFF6DB; color: #7A5A00; }

/* ---------- page hero extras ---------- */
.page-hero { padding: 56px 0 50px; text-align: center; }
.page-hero .crumb { font-size: .82rem; color: #C9D6E4; margin-bottom: 14px; font-family: 'Inter', 'Noto Sans Tamil', sans-serif; }
.page-hero .crumb a { color: var(--gold); }
.page-hero .crumb span[aria-current] { color: #E6EDF5; }
.crumb { overflow-wrap: anywhere; }
.page-summary-wrap { background: var(--paper); padding-top: 26px; }
.page-summary { background: #fff; border: 1px solid var(--line); border-left: 5px solid var(--gold); border-radius: var(--r); padding: 16px 20px; display: flex; gap: 14px; align-items: flex-start; box-shadow: var(--sh-1); }
.page-summary .ps-label { flex: none; font-family: 'Inter', 'Noto Sans Tamil', sans-serif; font-weight: 700; font-size: .8rem; color: var(--saffron-dark); background: var(--saffron-soft); border-radius: 999px; padding: 4px 12px; margin-top: 2px; white-space: nowrap; }
.page-summary p { margin: 0; color: var(--ink); font-size: 1rem; }
.page-summary.in-article { margin: 0 0 22px; }
@media (max-width: 640px) { .page-summary { flex-direction: column; gap: 8px; } }

/* ---------- prose (rich text) ---------- */
.prose { font-size: 1.04rem; line-height: 1.85; color: #2A2A28; }
.prose > * + * { margin-top: 1em; }
.prose h2 { font-size: clamp(1.25rem, 2vw, 1.55rem); margin-top: 1.6em; }
.prose h3 { font-size: 1.15rem; margin-top: 1.4em; }
.prose ul, .prose ol { padding-left: 1.4em; }
.prose li + li { margin-top: .35em; }
.prose blockquote { border-left: 4px solid var(--saffron); background: var(--saffron-soft); padding: 14px 18px; border-radius: 0 var(--r) var(--r) 0; font-weight: 500; }
.prose img { border-radius: var(--r); margin: 1.2em 0; }
.prose table { width: 100%; border-collapse: collapse; font-size: .95rem; }
.prose th, .prose td { border: 1px solid var(--line); padding: 8px 10px; text-align: left; }
.prose th { background: var(--paper-2); }
.prose a { text-decoration: underline; text-underline-offset: 3px; }
.prose-narrow { max-width: 820px; margin-left: auto; margin-right: auto; }
.prose-light, .prose-light p { color: #D5E0EC; }
.section-navy .prose, .section-navy .prose p, .section-navy .section-sub { color: #D5E0EC; }
.section-navy .section-title, .section-navy h3 { color: #fff; }

/* ---------- cards extras ---------- */
.card-img { margin: -26px -26px 18px; border-radius: var(--r-lg) var(--r-lg) 0 0; overflow: hidden; }
.card-img img { width: 100%; height: 190px; object-fit: cover; }
.card-saffron { background: var(--saffron); color: #fff; border-color: var(--saffron); }
.card-saffron h3, .card-saffron .en, .card-saffron p { color: #fff; }
.card-compact { padding: 18px 18px; }
.card .card-btn { margin-top: 14px; align-self: flex-start; }
.cards-issue .card, .cards-default .card { display: flex; flex-direction: column; }
.card .list-check { margin-top: 10px; }
.card p + p { margin-top: 8px; }

/* ---------- split ---------- */
.split-rev .media { order: -1; }
.split-noimg { grid-template-columns: 1fr; }
.split .sec-intro { margin-bottom: 14px; }
.split .list-check { margin-top: 14px; }

/* ---------- points list ---------- */
.points { list-style: none; counter-reset: pt var(--start, 0); display: grid; gap: 14px; margin-top: 26px; padding: 0; }
.points.pcols-2 { grid-template-columns: 1fr 1fr; }
.points.pcols-3 { grid-template-columns: repeat(3, 1fr); }
.points li { counter-increment: pt; position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 14px 16px 14px 62px; box-shadow: var(--sh-1); }
.points li::before { content: counter(pt); position: absolute; left: 14px; top: 13px; width: 34px; height: 34px; border-radius: 50%; background: var(--saffron-soft); color: var(--saffron-dark); font-family: 'Inter', sans-serif; font-weight: 800; font-size: .9rem; display: grid; place-items: center; }
.points-check li::before { content: "✓"; background: #E7F4EC; color: var(--green); }
.points-cards li { border-top: 3px solid var(--saffron); }
.points .pt-title { display: block; color: var(--navy); font-family: 'Noto Serif Tamil', serif; font-size: 1.05rem; margin-bottom: 4px; }
.points .pt-text { color: #3a3a37; }
.section-navy .points li { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); }
.section-navy .points .pt-title { color: #fff; }
.section-navy .points .pt-text { color: #D5E0EC; }
.highlights { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 22px; margin: 0 0 26px; }
.highlights h2 { font-size: 1.2rem; }
.highlights .points { margin-top: 14px; }
.highlights .points li { box-shadow: none; background: var(--paper); }
@media (max-width: 860px) { .points.pcols-2, .points.pcols-3 { grid-template-columns: 1fr; } }

/* ---------- timeline ---------- */
.timeline { position: relative; margin-top: 34px; padding-left: 8px; }
.timeline::before { content: ""; position: absolute; left: 118px; top: 6px; bottom: 6px; width: 2px; background: linear-gradient(var(--saffron), var(--gold)); }
.tl-item { display: grid; grid-template-columns: 110px 1fr; gap: 34px; padding: 0 0 26px; position: relative; }
.tl-item::before { content: ""; position: absolute; left: 104px; top: 8px; width: 14px; height: 14px; border-radius: 50%; background: #fff; border: 3px solid var(--saffron); }
.tl-date { font-family: 'Inter', sans-serif; font-weight: 800; color: var(--saffron-dark); text-align: right; padding-top: 2px; font-size: .95rem; }
.tl-body { background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 14px 18px; box-shadow: var(--sh-1); }
.tl-body h3 { font-size: 1.05rem; margin-bottom: 4px; }
.tl-body p { color: #3a3a37; font-size: .96rem; }
.tl-tag { display: inline-block; font-size: .72rem; font-weight: 700; background: var(--paper-2); color: var(--navy); border-radius: 999px; padding: 2px 10px; margin-bottom: 6px; }
.section-navy .tl-body { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); }
.section-navy .tl-body p { color: #D5E0EC; }
@media (max-width: 640px) {
  .timeline::before { left: 10px; }
  .tl-item { grid-template-columns: 1fr; gap: 6px; padding-left: 30px; }
  .tl-item::before { left: 3px; }
  .tl-date { text-align: left; }
}

/* ---------- tables ---------- */
.table-note { margin-top: 16px; color: var(--muted); font-size: .9rem; text-align: center; }
.alt-note { display: block; color: var(--muted); font-size: .8rem; margin-top: 3px; }
@media (max-width: 700px) {
  .cmp-table thead { display: none; }
  .cmp-table tr { display: block; border-bottom: 1px solid var(--line); padding: 10px 0; }
  .cmp-table td { display: block; border: 0 !important; padding: 4px 12px !important; }
  .cmp-table td[data-label]::before { content: attr(data-label) " : "; font-weight: 700; color: var(--muted); font-size: .8rem; }
}

/* ---------- forms ---------- */
.form-section { scroll-margin-top: 90px; }
.form-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 28px; box-shadow: var(--sh-2); }
.form-center { max-width: 760px; margin: 26px auto 0; }
.form-split { margin-top: 26px; align-items: start; }
.form-side h3 { margin-bottom: 12px; }
.form-side .list-check { margin-top: 14px; }
.section-navy .form-side, .section-navy .form-side p, .section-navy .form-side li { color: #D5E0EC; }
.section-navy .form-side h3 { color: #fff; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.form-grid .fg-full { grid-column: 1 / -1; }
.form-field .lbl { display: block; font-family: 'Inter', 'Noto Sans Tamil', sans-serif; font-weight: 600; margin-bottom: 6px; color: var(--navy); font-size: .85rem; }
.form-field input, .form-field select, .form-field textarea { width: 100%; }
.form-field .req { color: #C0392B; }
.form-field .help { display: block; color: var(--muted); font-size: .78rem; margin-top: 4px; }
.form-field .err-msg { display: block; color: #C0392B; font-size: .8rem; margin-top: 4px; font-weight: 600; }
.form-field.has-err input, .form-field.has-err select, .form-field.has-err textarea { border-color: #C0392B; background: #FFF7F5; }
.choice-row { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.choice { display: inline-flex; align-items: flex-start; gap: 8px; font-size: .95rem; cursor: pointer; font-weight: 500; }
.choice input { width: 18px !important; height: 18px; margin-top: 3px; accent-color: var(--saffron); flex: none; }
.choice.agree { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); padding: 12px 14px; }
.form-subhead { font-family: 'Noto Serif Tamil', serif; font-weight: 800; color: var(--navy); border-bottom: 1px solid var(--line); padding: 8px 0 6px; margin-top: 6px; }
.form-title { margin-bottom: 6px; }
.form-desc { color: var(--muted); margin-bottom: 16px; }
.form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 20px; }
.privacy-note { color: var(--muted); font-size: .8rem; }
.form-alert { border-radius: var(--r); padding: 12px 16px; margin-bottom: 16px; font-weight: 600; }
.form-alert.ok { background: #E7F4EC; color: var(--green-dark); border: 1px solid #BFE0CB; }
.form-alert.err { background: #FCE8E3; color: #9B2C12; border: 1px solid #F3C4B6; }
.sjm-form button[disabled] { opacity: .7; cursor: wait; }
@media (max-width: 700px) { .form-grid { grid-template-columns: 1fr; } .form-card { padding: 20px 16px; } }

/* ---------- share ---------- */
.share-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--line); }
.share-bar strong { color: var(--navy); margin-right: 4px; font-family: 'Inter', 'Noto Sans Tamil', sans-serif; }
.share-bar .sh { width: 40px; height: 40px; border-radius: 50%; display: inline-grid; place-items: center; background: #fff; border: 1px solid var(--line); color: var(--navy); font-weight: 800; font-size: .95rem; cursor: pointer; transition: .15s; font-family: 'Inter', sans-serif; }
.share-bar .sh:hover { transform: translateY(-2px); text-decoration: none; }
.share-bar .sh-whatsapp { background: #25D366; color: #fff; border-color: #25D366; }
.share-bar .sh-facebook { background: #1877F2; color: #fff; border-color: #1877F2; }
.share-bar .sh-x { background: #111; color: #fff; border-color: #111; }
.share-bar .sh-telegram { background: #229ED9; color: #fff; border-color: #229ED9; }
.share-bar .sh-linkedin { background: #0A66C2; color: #fff; border-color: #0A66C2; }
.share-bar .sh-copy.copied { background: var(--green); color: #fff; }
.page-share { background: var(--paper); padding: 6px 0 40px; }
.page-share .share-bar { border-top: 0; justify-content: center; }

/* ---------- listings (posts) ---------- */
.type-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.type-tabs a { padding: 8px 16px; border-radius: 999px; background: #fff; border: 1px solid var(--line); color: var(--navy); font-weight: 600; font-size: .92rem; }
.type-tabs a.on, .type-tabs a:hover { background: var(--navy); color: #fff; text-decoration: none; }
.toolbar { background: #fff; border-radius: 14px; box-shadow: var(--shadow-sm); padding: 14px 18px; display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.search-box { flex: 1; min-width: 200px; position: relative; }
.search-box input { width: 100%; padding: 11px 14px 11px 40px; border: 1.5px solid #e0d6c2; border-radius: 10px; font-family: inherit; font-size: .95rem; background: #fff; }
.search-box input:focus { outline: none; border-color: var(--saffron); }
.search-box .mag { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: var(--muted); }
.toolbar .right { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.toolbar select { padding: 10px 12px; border: 1.5px solid #e0d6c2; border-radius: 10px; font-family: inherit; font-weight: 600; color: var(--navy); background: #fff; cursor: pointer; max-width: 220px; }
.toolbar .chk { display: inline-flex; gap: 6px; align-items: center; font-weight: 600; color: var(--navy); font-size: .9rem; cursor: pointer; }
.result-count { font-size: .9rem; color: var(--muted); font-weight: 600; margin-bottom: 16px; }
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.post { background: #fff; border-radius: 14px; overflow: hidden; box-shadow: var(--shadow-sm); display: flex; flex-direction: column; transition: transform .18s, box-shadow .18s; }
.post:hover { transform: translateY(-5px); box-shadow: 0 14px 32px rgba(14,42,71,.16); }
.post .thumb { position: relative; height: 190px; overflow: hidden; display: block; }
.post .thumb img { width: 100%; height: 100%; object-fit: cover; transition: .3s; }
.post:hover .thumb img { transform: scale(1.06); }
.post .type-badge, .hcard .type-badge { position: absolute; top: 12px; left: 12px; z-index: 1; color: #fff; font-size: .72rem; font-weight: 800; padding: 4px 12px; border-radius: 999px; }
.t-news .type-badge { background: var(--saffron); }
.t-event .type-badge { background: var(--navy); }
.t-blog .type-badge { background: var(--green); }
.t-press .type-badge { background: var(--gold); color: var(--navy); }
.post .body { padding: 18px 18px 20px; display: flex; flex-direction: column; flex: 1; }
.post .meta { display: flex; flex-wrap: wrap; gap: 10px; font-size: .78rem; color: var(--muted); font-weight: 600; margin-bottom: 8px; }
.post .meta .cat { color: var(--saffron-dark); }
.post h3 { font-size: 1.1rem; line-height: 1.42; margin-bottom: 8px; }
.post h3 a { color: var(--navy); }
.post h3 a:hover { color: var(--saffron-dark); text-decoration: none; }
.post p { font-size: .9rem; color: #555; margin-bottom: 14px; flex: 1; }
.post .foot { display: flex; align-items: center; justify-content: space-between; }
.post .read { font-weight: 800; color: var(--saffron-dark); font-size: .85rem; white-space: nowrap; }
.post .cd-row { margin-bottom: 8px; }
.featured { background: #fff; border-radius: 16px; overflow: hidden; box-shadow: var(--shadow); display: grid; grid-template-columns: 1.1fr 1fr; margin-bottom: 26px; border-left: 5px solid var(--saffron); }
.featured .thumb { min-height: 280px; position: relative; display: block; }
.featured .thumb img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.featured .body { padding: 30px; display: flex; flex-direction: column; justify-content: center; }
.featured .ribbon { display: inline-block; background: var(--gold); color: var(--navy); font-weight: 800; font-size: .75rem; padding: 4px 12px; border-radius: 999px; margin-bottom: 12px; width: max-content; }
.featured h2 { font-size: 1.5rem; margin-bottom: 10px; }
.featured h2 a { color: var(--navy); }
.featured .meta-row { display: flex; gap: 12px; flex-wrap: wrap; font-size: .82rem; color: var(--muted); font-weight: 600; margin-bottom: 8px; }
.featured .meta-row .cat { color: var(--saffron-dark); }
.pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 34px; }
.pager a, .pager span { min-width: 42px; height: 42px; padding: 0 12px; border-radius: 10px; border: 1.5px solid #e0d6c2; background: #fff; font-weight: 700; color: var(--navy); display: inline-grid; place-items: center; font-family: 'Inter', 'Noto Sans Tamil', sans-serif; }
.pager a:hover, .pager span.on { background: var(--saffron); color: #fff; border-color: var(--saffron); text-decoration: none; }
.feed-grid + .pager { margin-top: 30px; }
@media (max-width: 1000px) { .post-grid { grid-template-columns: 1fr 1fr; } .featured { grid-template-columns: 1fr; } .featured .thumb { min-height: 220px; } }
@media (max-width: 640px) { .post-grid { grid-template-columns: 1fr; } .toolbar { flex-direction: column; align-items: stretch; } .toolbar .right { justify-content: space-between; } .toolbar select { max-width: none; flex: 1; } }

/* ---------- article extras ---------- */
.read-progress { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 1200; }
#readProgress { height: 100%; width: 0; background: linear-gradient(90deg, var(--saffron), var(--gold)); }
.article-hero .crumb span[aria-current] { color: #E6EDF5; }
.event-box { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--navy); border-radius: var(--r-lg); padding: 18px 20px; margin-bottom: 24px; }
.event-box span { display: block; font-size: .78rem; color: var(--muted); font-weight: 700; font-family: 'Inter', 'Noto Sans Tamil', sans-serif; }
.event-box strong { color: var(--navy); }
.event-box small { display: block; color: var(--muted); }
.event-box .eb-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px; }
.post-gallery { margin-top: 30px; }
.post-gallery h2 { font-size: 1.2rem; margin-bottom: 14px; }
.tag-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.tagpill { display: inline-block; background: var(--paper-2); color: var(--navy); border-radius: 999px; padding: 4px 12px; font-size: .82rem; font-weight: 600; }
.side-cta p { font-size: .9rem; color: var(--muted); margin: 6px 0 12px; }
.badge-type.bt-news { background: var(--saffron); }
.badge-type.bt-blog { background: var(--green); }
.badge-type.bt-press { background: var(--gold); color: var(--navy); }

/* ---------- directory ---------- */
.dc-replaces { font-size: .8rem; color: var(--green-dark); background: #E7F4EC; border-radius: 6px; padding: 3px 8px; margin: 4px 0 6px; display: inline-block; }
.dir-card .dc-img { display: block; position: relative; }
.dir-card h3 a { color: var(--navy); }
.verified.gi { color: var(--gold); }
.listing-wrap { display: grid; grid-template-columns: 1fr 340px; gap: 32px; align-items: start; }
.listing-main { background: #fff; border-radius: var(--r-lg); padding: 26px; box-shadow: var(--sh-1); border: 1px solid var(--line); }
.listing-main .lead-img { border-radius: var(--r); margin-bottom: 18px; max-height: 460px; width: 100%; object-fit: cover; }
.listing-main .lead-text { font-size: 1.1rem; margin: 12px 0; }
.badges { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 8px; }
.badge-pending { background: #FFF6DB; color: #7A5A00; border-radius: 999px; padding: 3px 10px; font-size: .8rem; font-weight: 700; }
.replace-box { background: #E7F4EC; border: 1px solid #BFE0CB; color: var(--green-dark); border-radius: var(--r); padding: 10px 14px; margin: 10px 0; }
.contact-card { position: sticky; top: 96px; }
.contact-list { list-style: none; padding: 0; margin: 16px 0; display: grid; gap: 10px; }
.contact-list li { overflow-wrap: anywhere; }
@media (max-width: 900px) { .listing-wrap { grid-template-columns: 1fr; } .contact-card { position: static; } }

/* ---------- schemes + eligibility ---------- */
.scheme-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr)); gap: 22px; }
.scheme-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 22px; box-shadow: var(--sh-1); display: flex; flex-direction: column; gap: 10px; border-top: 5px solid var(--saffron); scroll-margin-top: 100px; }
.scheme-card.lvl-state { border-top-color: var(--green); }
.sc-top { display: flex; justify-content: space-between; align-items: center; }
.sc-num { width: 34px; height: 34px; border-radius: 50%; background: var(--navy); color: #fff; display: grid; place-items: center; font-weight: 800; font-family: 'Inter', sans-serif; }
.sc-lvl { font-size: .78rem; font-weight: 700; background: var(--paper-2); color: var(--navy); padding: 4px 10px; border-radius: 999px; }
.scheme-card h3 { font-size: 1.15rem; }
.scheme-card h3 small { color: var(--muted); font-family: 'Inter', sans-serif; font-size: .8rem; }
.sc-obj { color: #3a3a37; font-size: .95rem; }
.sc-row { display: grid; grid-template-columns: 1fr; gap: 4px; background: var(--paper); border-radius: 10px; padding: 10px 14px; font-size: .93rem; line-height: 1.6; border-left: 3px solid var(--line); }
.sc-row .k { font-weight: 700; color: var(--navy); font-size: .8rem; letter-spacing: .02em; text-transform: uppercase; }
.lvl-central .sc-row { border-left-color: #e8c9a8; } .lvl-state .sc-row { border-left-color: #b9d6c4; }
.sc-more summary { cursor: pointer; font-weight: 700; color: var(--saffron-dark); }
.sc-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: auto; padding-top: 6px; }
.elig-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: start; }
.elig-form { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px; box-shadow: var(--sh-2); }
.elig-form .btn { margin-top: 16px; width: 100%; }
.elig-note { color: var(--muted); font-size: .8rem; margin-top: 12px; }
.elig-result { scroll-margin-top: 90px; }
.elig-hint, .elig-none { background: #fff; border: 1px dashed var(--line); border-radius: var(--r-lg); padding: 22px; color: var(--muted); }
.elig-count { font-weight: 700; color: var(--navy); margin-bottom: 12px; }
.elig-card { background: #fff; border: 1px solid var(--line); border-left: 5px solid var(--saffron); border-radius: var(--r); padding: 14px 16px; margin-bottom: 12px; box-shadow: var(--sh-1); }
.elig-card.lvl-state { border-left-color: var(--green); }
.elig-card .lvl { font-size: .72rem; font-weight: 800; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
.elig-card h4 { margin: 4px 0 6px; }
.elig-card p { font-size: .9rem; margin: 2px 0; }
.elig-actions { display: flex; gap: 8px; margin-top: 10px; }
.section-navy .elig-hint { background: rgba(255,255,255,.06); color: #D5E0EC; border-color: rgba(255,255,255,.2); }
@media (max-width: 900px) { .elig-wrap { grid-template-columns: 1fr; } .sc-row { grid-template-columns: 1fr; gap: 2px; } }

/* ---------- downloads ---------- */
.dl-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 14px; }
.dl-item { display: flex; gap: 14px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 14px 16px; color: var(--ink); transition: .15s; }
.dl-item:hover { border-color: var(--saffron); transform: translateY(-2px); text-decoration: none; }
.dl-ic { flex: none; width: 52px; height: 52px; border-radius: 10px; background: var(--saffron-soft); color: var(--saffron-dark); display: grid; place-items: center; font-family: 'Inter', sans-serif; font-weight: 800; font-size: .75rem; }
.dl-body { flex: 1; min-width: 0; }
.dl-body strong { display: block; color: var(--navy); }
.dl-body small { display: block; color: var(--muted); font-size: .82rem; }
.dl-body em { display: block; font-style: normal; font-size: .75rem; color: var(--muted); margin-top: 2px; }
.dl-go { font-size: 1.3rem; color: var(--saffron); }

/* ---------- mentors / leaders / nominees ---------- */
.mentor-grid, .leader-grid, .nominee-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 22px; }
.mentor-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--sh-1); display: flex; flex-direction: column; }
.mc-photo { position: relative; height: 210px; background: var(--paper-2); }
.mc-photo img { width: 100%; height: 100%; object-fit: cover; }
.mc-badge { position: absolute; left: 12px; bottom: 12px; background: var(--saffron); color: #fff; font-size: .72rem; font-weight: 800; padding: 3px 10px; border-radius: 999px; }
.mc-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.mc-role { color: var(--saffron-dark); font-weight: 600; font-size: .88rem; }
.mc-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.mc-tags span { background: var(--paper-2); color: var(--navy); font-size: .75rem; border-radius: 999px; padding: 2px 9px; }
.mc-body p { color: #555; font-size: .9rem; flex: 1; }
.mc-foot { display: flex; flex-wrap: wrap; gap: 10px; font-size: .8rem; color: var(--muted); }
.mentor-card .btn { align-self: flex-start; }
.leader { text-align: center; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 22px 16px; box-shadow: var(--sh-1); }
.ld-photo { width: 120px; height: 120px; border-radius: 50%; overflow: hidden; margin: 0 auto 12px; border: 4px solid var(--paper-2); }
.ld-photo img, .ld-photo .thumb-ph { width: 100%; height: 100%; object-fit: cover; min-height: 0; font-size: 2.4rem; }
.ld-role { color: var(--saffron-dark); font-weight: 700; font-size: .9rem; }
.ld-place { color: var(--muted); font-size: .85rem; }
.nominee { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 20px; text-align: center; box-shadow: var(--sh-1); }
.nm-ph { width: 76px; height: 76px; border-radius: 50%; margin: 0 auto 10px; display: grid; place-items: center; background: linear-gradient(135deg, var(--saffron), var(--gold)); color: #fff; font-size: 2rem; font-weight: 800; }
.nm-meta { color: var(--muted); font-size: .85rem; margin-bottom: 8px; }
.nominee p { font-size: .9rem; color: #444; }
.nm-vote { margin-top: 12px; display: flex; gap: 10px; justify-content: center; align-items: center; font-weight: 700; color: var(--navy); }
.vote-count { font-size: 1.3rem; color: var(--saffron-dark); }
[data-vote].voted { background: var(--green); border-color: var(--green); }

/* ---------- media / video ---------- */
.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 22px; }
.media-item { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--sh-1); }
.media-item audio { width: 100%; display: block; }
.audio-ic { height: 120px; display: grid; place-items: center; font-size: 3rem; background: linear-gradient(135deg, var(--navy), var(--navy-2)); }
.mi-body { padding: 16px 18px; }
.mi-meta { color: var(--saffron-dark); font-size: .82rem; font-weight: 600; margin: 4px 0 8px; }
.mi-body p { font-size: .9rem; color: #555; margin-bottom: 10px; }
.video-embed { position: relative; padding-top: 56.25%; background: #000; border-radius: var(--r); overflow: hidden; }
.video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-block { max-width: 900px; margin-left: auto; margin-right: auto; }
.video-block figcaption { text-align: center; color: var(--muted); margin-top: 10px; }

/* ---------- contact ---------- */
.contact-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 16px; }
.contact-cards .contact-item { display: flex; gap: 14px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 16px; box-shadow: var(--sh-1); }
.contact-cards .ic { font-size: 1.5rem; }
.contact-cards p { margin: 2px 0 0; overflow-wrap: anywhere; }
.map-embed { margin-top: 24px; border-radius: var(--r-lg); overflow: hidden; border: 1px solid var(--line); }
.map-embed iframe { width: 100%; height: 380px; border: 0; display: block; }

/* ---------- social hub ---------- */
.social-hub { display: grid; grid-template-columns: 1fr auto; gap: 26px; align-items: start; }
.sh-links { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 14px; }
.sh-card { display: flex; flex-direction: column; gap: 4px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 18px; color: var(--navy); box-shadow: var(--sh-1); transition: .15s; }
.sh-card:hover { transform: translateY(-3px); text-decoration: none; border-color: var(--saffron); }
.sh-card .ic { font-size: 1.6rem; font-weight: 800; }
.sh-card small { color: var(--muted); }
.sh-facebook .ic { color: #1877F2; } .sh-instagram .ic { color: #C13584; } .sh-youtube .ic { color: #FF0000; } .sh-x .ic { color: #111; } .sh-whatsapp_channel .ic { color: #25D366; }
.fb-embed { max-width: 500px; }
@media (max-width: 900px) { .social-hub { grid-template-columns: 1fr; } }

/* ---------- banner ---------- */
.img-banner { position: relative; padding: 90px 0; text-align: center; color: #fff; background: linear-gradient(rgba(16,36,59,.78), rgba(16,36,59,.78)), var(--bg, linear-gradient(135deg, var(--navy), var(--saffron-dark))) center/cover; }
.img-banner h2 { color: #fff; font-size: clamp(1.5rem, 3vw, 2.3rem); }
.img-banner p { color: #E3EAF2; max-width: 720px; margin: 12px auto 22px; font-size: 1.08rem; }

/* ---------- gallery ---------- */
.album-tabs { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 10px 0 24px; }
.album-tabs a { padding: 7px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--line); color: var(--navy); font-weight: 600; font-size: .9rem; }
.album-tabs a.on, .album-tabs a:hover { background: var(--saffron); border-color: var(--saffron); color: #fff; text-decoration: none; }
.album-tabs small { opacity: .7; }

/* ---------- founder profile ---------- */
.founder-hero-sec { padding: 64px 0; }
.founder-hero h1 { color: #fff; font-size: clamp(1.7rem, 3.2vw, 2.5rem); }
.fh-role { color: var(--gold); font-weight: 700; margin: 6px 0 14px; }
.founder-dates { display: flex; flex-wrap: wrap; gap: 18px; margin: 10px 0 18px; }
.founder-dates small { display: block; color: #9FB3C8; font-size: .75rem; }
.founder-dates strong { color: var(--gold); }
@media (max-width: 860px) { .founder-hero { grid-template-columns: 1fr; } .founder-hero .portrait img { height: 340px; } }

/* ---------- search ---------- */
.search-results { display: grid; gap: 12px; }
.sr-item { display: block; background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 14px 18px; color: var(--ink); }
.sr-item:hover { border-color: var(--saffron); text-decoration: none; }
.sr-kind { display: inline-block; font-size: .72rem; font-weight: 800; background: var(--paper-2); color: var(--navy); border-radius: 999px; padding: 2px 10px; margin-bottom: 4px; }
.sr-item strong { display: block; color: var(--navy); font-size: 1.05rem; }
.sr-item small { color: var(--muted); }

/* ---------- footer extras ---------- */
.footer-links-row { margin-top: 36px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.12); }
.footer-links-row h4 { color: #fff; margin-bottom: 12px; font-size: .82rem; text-transform: uppercase; letter-spacing: .14em; font-family: 'Inter', sans-serif; font-weight: 700; }
.flr-items { display: flex; flex-wrap: wrap; gap: 8px 12px; }
.flr-items a { color: #C9D6E4; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); border-radius: 999px; padding: 6px 14px; font-size: .88rem; }
.flr-items a:hover { background: var(--saffron); border-color: var(--saffron); color: #fff; text-decoration: none; }
.footer-bottom .fb-links { display: flex; flex-wrap: wrap; gap: 14px; }
.footer-bottom .fb-links a { color: #9FB3C8; }
.site-footer .social { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }

/* ---------- auth (login / reset) ---------- */
.bare-body { background: linear-gradient(160deg, var(--navy) 0%, var(--navy-2) 55%, #2b1a10 100%); min-height: 100vh; }
.auth-wrap { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px 16px; gap: 18px; }
.auth-brand { display: flex; flex-direction: column; align-items: center; gap: 10px; color: #fff; font-family: 'Noto Serif Tamil', serif; font-weight: 800; text-align: center; }
.auth-brand img { border-radius: 50%; background: #fff; padding: 6px; }
.auth-brand img.is-emblem { background: transparent; padding: 0; width: 96px; height: 96px; filter: drop-shadow(0 6px 16px rgba(0,0,0,.35)); }
.auth-brand:hover { color: var(--gold); text-decoration: none; }
.auth-card { width: 100%; max-width: 440px; background: #fff; border-radius: var(--r-lg); padding: 30px 28px; box-shadow: 0 30px 60px rgba(0,0,0,.35); }
.auth-card h1 { font-size: 1.5rem; margin-bottom: 4px; }
.auth-card h1 small { font-family: 'Inter', sans-serif; font-size: .8rem; color: var(--muted); font-weight: 600; }
.auth-card .form-field { margin-bottom: 14px; }
.auth-card .muted { margin-bottom: 18px; }
.auth-links { margin-top: 18px; text-align: center; font-size: .88rem; }

/* ---------- certificate ---------- */
.certificate { max-width: 900px; margin: 0 auto; background: #fff; padding: 14px; border-radius: 6px; box-shadow: var(--shadow); }
.cert-inner { border: 3px double var(--gold); padding: 44px 40px 30px; text-align: center; background: radial-gradient(circle at 50% 0%, #FFF8EC, #fff 60%); position: relative; }
.cert-top { display: flex; gap: 14px; align-items: center; justify-content: center; margin-bottom: 22px; }
.cert-top img { border-radius: 50%; }
.cert-top strong { display: block; font-family: 'Noto Serif Tamil', serif; color: var(--navy); font-size: 1.2rem; }
.cert-top small { color: var(--muted); font-family: 'Inter', sans-serif; letter-spacing: .08em; text-transform: uppercase; font-size: .7rem; }
.cert-kicker { color: var(--saffron-dark); font-weight: 700; letter-spacing: .04em; }
.cert-name { font-size: clamp(1.8rem, 4vw, 2.8rem); color: var(--navy); margin: 12px 0 2px; border-bottom: 2px solid var(--line); display: inline-block; padding: 0 20px 6px; }
.cert-line { color: var(--muted); margin-bottom: 14px; }
.cert-text { max-width: 640px; margin: 0 auto; font-size: 1.05rem; }
.cert-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 34px; gap: 14px; }
.cert-foot small { display: block; color: var(--muted); font-size: .75rem; }
.cert-foot strong { font-family: 'Inter', sans-serif; color: var(--navy); }
.cert-seal { width: 92px; height: 92px; border-radius: 50%; background: linear-gradient(135deg, var(--saffron), var(--gold)); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: 1.6rem; line-height: 1; box-shadow: 0 0 0 5px #fff, 0 0 0 7px var(--gold); }
.cert-seal span { font-size: .8rem; }
.cert-verify { margin-top: 20px; font-size: .72rem; color: var(--muted); font-family: 'Inter', sans-serif; overflow-wrap: anywhere; }
.cert-actions { max-width: 900px; margin: 22px auto 0; text-align: center; }
.cert-actions .share-bar { justify-content: center; }
@media print {
  .site-header, .site-footer, .no-print, .wa-float, .to-top, .skip-link, #sjm-loader, .page-share { display: none !important; }
  body, .section, .cert-page { background: #fff !important; padding: 0 !important; }
  .certificate { box-shadow: none; }
}

/* ---------- misc ---------- */
.impact-title { color: #fff; margin-bottom: 26px; }
.sup-logo { max-height: 46px; width: auto; margin: 0 auto 6px; }
a.sup:hover { text-decoration: none; }
.who-ph { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--saffron-soft); color: var(--saffron-dark); font-weight: 800; }
.hero h1 .accent { color: var(--saffron); }
.lang-switch button[aria-pressed="true"] { background: var(--saffron); color: #fff; }
body.nav-open { overflow: hidden; }
.goog-te-banner-frame, .skiptranslate iframe { display: none !important; }
body { top: 0 !important; }
.translated-ltr .site-header, .translated-rtl .site-header { top: 0 !important; }

/* ---------- header: Tamil labels are long → drawer below 1200px, compact above ---------- */
@media (max-width:1279px){
  .site-header .brand{ order:1; padding-right:0; }
  .header-tools{ order:2; margin-left:auto; }
  .nav-toggle{ display:block; order:3; position:relative; z-index:1300; }
  .nav-links{
    position:fixed !important; inset:0 0 0 auto !important; left:auto !important; top:0; right:0;
    height:100dvh; width:min(86vw,340px); max-width:100vw; flex-direction:column; align-items:stretch; gap:0; flex-wrap:nowrap;
    background:#fff; box-shadow:-14px 0 44px rgba(16,36,59,.2); padding:82px 16px 26px;
    transform:translateX(104%); transition:transform .34s var(--ease); overflow-y:auto; overscroll-behavior:contain; z-index:1200; border:0;
  }
  .nav-links.open{ transform:none !important; }
  .nav-links > li{ width:100%; }
  .nav-links a{ display:block; padding:13px 12px !important; font-size:1rem !important; font-weight:600; border-bottom:1px solid var(--paper-2); border-radius:0; white-space:normal !important; }
  .nav-links a::after{ display:none !important; }
  .nav-links a:hover{ background:var(--paper); }
  .nav-links .cta-link{ margin:16px 0 0 !important; text-align:center; border-radius:10px; border-bottom:0; padding:14px !important; }
  .has-drop > .drop{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:0; border-left:2px solid var(--line); border-radius:0; margin:0 0 0 12px; padding:0 0 0 8px; min-width:0; }
  .has-drop > .drop li a{ padding:11px 10px !important; font-size:.95rem !important; font-weight:500; }
  .has-drop > .drop-toggle{ pointer-events:none; opacity:.7; font-size:.74rem !important; text-transform:uppercase; letter-spacing:.08em; }
  .nav-overlay{ z-index:1150; }
  .drawer-close{ display:block; }
  .header-tools.in-drawer{ margin:0 0 12px; }
}
@media (min-width:1280px){ .drawer-close{ display:none; } }
@media (min-width:1280px) and (max-width:1679px){
  .nav-links a{ padding:8px 8px !important; font-size:.86rem !important; }
  .nav-links a::after{ left:8px; right:8px; }
  .site-header .brand{ padding-right:10px; }
  .site-header .bw{ font-size:.9rem; }
  .nav-links .cta-link{ padding:8px 14px !important; margin-left:4px !important; }
  .header-tools .lang-switch button{ padding:6px 10px; }
}
.ticker-viewport{ overflow:hidden; min-width:0; }
.aud-grid{ grid-template-columns:repeat(3,1fr); }
@media (max-width:1000px){ .aud-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .aud-grid{ grid-template-columns:1fr; } }
@media (min-width:1280px) and (max-width:1365px){
  .nav-links a{ padding:8px 6px !important; font-size:.84rem !important; }
  .nav-links a::after{ left:6px; right:6px; }
  .site-header .bw{ font-size:.84rem; }
  .site-header .container.nav{ gap:10px; }
  .nav-links .cta-link{ padding:8px 12px !important; }
}
html{ overflow-x:clip; } body{ overflow-x:clip; }
img.img-broken{ visibility:hidden; }
.img-ph{ background:linear-gradient(135deg,#f3e7d3 0%,#f8f1e6 45%,#eadbc2 100%) !important; }
.img-ph::after{ content:"சுதேசி"; position:absolute; inset:auto 0 50% 0; transform:translateY(50%); text-align:center; font-weight:700; letter-spacing:.06em; color:rgba(122,62,20,.28); font-size:1.05rem; pointer-events:none; }
/* loader safety net: never block the page if JS fails or a 3rd-party script stalls */
#sjm-loader{ animation: ldrOut .45s ease 3.5s forwards; }
@keyframes ldrOut{ to{ opacity:0; visibility:hidden; pointer-events:none; } }

/* =====================================================================
   UI consistency pass (session 04) — same look on every page
   ===================================================================== */
/* 1. one hero size for every inner page (short heroes no longer look squashed) */
.page-hero, .article-hero { min-height: 300px; display: flex; align-items: center; }
.page-hero > .container, .article-hero > .container { width: 100%; }
.page-hero h1 { font-size: clamp(1.4rem, 1.05rem + 1.4vw, 2.1rem); line-height: 1.35; max-width: 980px; margin-left: auto; margin-right: auto; }
.page-hero p { max-width: 760px; font-size: 1rem; line-height: 1.75; }
.listing-hero { min-height: 260px; }
@media (max-width: 760px) {
  .page-hero, .article-hero { min-height: 240px; padding: 42px 0 38px; }
  .page-hero p { font-size: .95rem; }
}

/* 2. card rows: an odd last card sits centred instead of hanging on the left */
.grid.grid-2, .grid.grid-3, .grid.grid-4 { display: flex; flex-wrap: wrap; justify-content: center; }
.grid.grid-2 > * { flex: 0 1 calc((100% - var(--gap, 24px)) / 2); }
.grid.grid-3 > * { flex: 0 1 calc((100% - 2 * var(--gap, 24px)) / 3); }
.grid.grid-4 > * { flex: 0 1 calc((100% - 3 * var(--gap, 24px)) / 4); }
.grid { --gap: 26px; gap: var(--gap); }
.grid > * { min-width: 0; }
@media (max-width: 1000px) { .grid.grid-3 > *, .grid.grid-4 > * { flex-basis: calc((100% - var(--gap)) / 2); } }
@media (max-width: 640px) { .grid.grid-2 > *, .grid.grid-3 > *, .grid.grid-4 > * { flex-basis: 100%; } }
.contact-cards, .dl-list { display: flex; flex-wrap: wrap; justify-content: center; }
.contact-cards > * { flex: 1 1 250px; max-width: calc((100% - 48px) / 4); min-width: 230px; }
.dl-list > * { flex: 1 1 320px; max-width: calc((100% - 28px) / 3); }
@media (max-width: 1000px) { .contact-cards > * { max-width: calc((100% - 16px) / 2); } .dl-list > * { max-width: calc((100% - 14px) / 2); } }
@media (max-width: 640px) { .contact-cards > *, .dl-list > * { max-width: 100%; flex-basis: 100%; } }

/* 3. readable text: white cards inside navy sections, list text inside navy cards */
.section-navy .card:not(.card-navy):not(.card-saffron) h3,
.section-navy .card:not(.card-navy):not(.card-saffron) h4 { color: var(--navy); }
.section-navy .card:not(.card-navy):not(.card-saffron) p,
.section-navy .card:not(.card-navy):not(.card-saffron) li,
.section-navy .card:not(.card-navy):not(.card-saffron) .prose { color: #3a3a37; }
.section-navy .card:not(.card-navy):not(.card-saffron) .en { color: var(--muted); }
.card-navy li, .card-navy .list-check li, .card-navy .prose, .card-navy .prose p { color: #D5E0EC; }
.card-navy li b, .card-navy li strong, .card-navy h4 { color: #fff; }
.bl-title { font-size: .92rem; margin: 14px 0 6px; color: var(--saffron-dark); letter-spacing: .01em; }
.card-navy .bl-title, .section-navy .card-navy .bl-title { color: var(--gold); }
.sec-note { text-align: center; margin: 26px auto 0; max-width: 860px; font-size: .92rem; color: var(--muted); }
.section-navy .sec-note { color: #C3D3E4; }
.section-navy .sec-note a { color: var(--gold); font-weight: 700; }

/* 4. timeline: dates never hidden behind the dot */
.timeline::before { left: 167px; }
.tl-item { grid-template-columns: 140px 1fr; gap: 40px; }
.tl-item::before { left: 151px; width: 16px; height: 16px; box-sizing: border-box; top: 6px; }
.tl-date { font-size: .86rem; line-height: 1.35; padding-top: 4px; overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .timeline::before { left: 10px; }
  .tl-item { grid-template-columns: 1fr; gap: 6px; padding-left: 30px; }
  .tl-item::before { left: 3px; }
}

/* 5. numbers: long suffix (e.g. "லட்சம் கோடி ₹") no longer breaks the big figure */
.stat .n .suf { font-size: .55em; margin-left: 2px; }
.stat .n .suf.long { display: block; font-size: .36em; line-height: 1.35; margin: 6px 0 0; letter-spacing: 0; }

/* 6. form tick-boxes in a neat grid */
.choice-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 210px), 1fr)); gap: 8px 14px; }
.choice-row .choice { background: var(--paper); border: 1px solid var(--line); border-radius: 10px; padding: 9px 12px; font-size: .9rem; line-height: 1.45; }
.choice-row .choice:has(input:checked) { border-color: var(--saffron); background: #FFF4EC; }

/* 7. WhatsApp button: bottom-right corner, never on top of text */
.wa-float { left: auto; right: 20px; bottom: 20px; width: 50px; height: 50px; }
.to-top { right: 20px; bottom: 80px; }
@media (max-width: 640px) { .wa-float { right: 14px; bottom: 14px; width: 46px; height: 46px; font-size: 1.3rem; } .to-top { right: 16px; bottom: 70px; } }

/* 8. list pages on phones: one-line scrollable tabs, full-width filters */
@media (max-width: 640px) {
  .type-tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 4px; margin-left: -4px; margin-right: -4px; }
  .type-tabs::-webkit-scrollbar { display: none; }
  .type-tabs a { flex: none; }
  .toolbar .right { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .toolbar .right select { width: 100%; max-width: none; min-width: 0; }
  .toolbar .right .chk { grid-column: 1 / -1; }
}
.list-h { font-size: 1.15rem; margin: 6px 0 16px; color: var(--navy); }

/* 9. very long articles: show the first part, "read more" opens the rest */
.prose.clamp { max-height: 1100px; overflow: hidden; position: relative; }
.prose.clamp::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 160px; background: linear-gradient(rgba(250,246,238,0), var(--clamp-bg, #FAF6EE)); pointer-events: none; }
.section-white .prose.clamp { --clamp-bg: #fff; }
.prose.clamp.open { max-height: none; }
.prose.clamp.open::after { display: none; }
.clamp-btn { display: flex; margin: 18px auto 0; }
.sh-links .empty-note { grid-column: 1 / -1; text-align: center; max-width: 720px; margin: 0 auto; width: 100%; }
.card-compact .card-img { margin: -18px -18px 14px; }
.card-compact .card-img img { height: 150px; }

/* =====================================================================
   Session 05 — banners, hero slider, homepage power sections, forms 2.0, events
   ===================================================================== */
/* ---- section display options ---- */
@media (max-width: 760px) { .only-desktop { display: none !important; } }
@media (min-width: 761px) { .only-mobile { display: none !important; } }
.section.pad-compact { padding-top: 34px; padding-bottom: 34px; }
.section.pad-large { padding-top: 110px; padding-bottom: 110px; }
.section.pad-none { padding-top: 0; padding-bottom: 0; }
.section-saffron { background: linear-gradient(180deg, #FFF3EA, #FDE7D7); }
.section-green { background: linear-gradient(180deg, #EEF6F0, #E2EFE6); }
.section-gradient { background: linear-gradient(120deg, #10243B 0%, #1C3A5A 55%, #7A3413 100%); color: #E6EDF5; }
.section-gradient h2, .section-gradient h3, .section-gradient .section-title { color: #fff; }
.section-gradient .section-sub, .section-gradient p { color: #D5E0EC; }
.section-gradient .eyebrow { color: var(--gold); }
.section.has-bg-img { position: relative; background-image: linear-gradient(rgba(16,36,59,.78), rgba(16,36,59,.7)), var(--sec-bg); background-size: cover; background-position: center; color: #E6EDF5; }
.section.has-bg-img .section-title, .section.has-bg-img h3 { color: #fff; }
.section.has-bg-img .section-sub { color: #D5E0EC; }
.container-wide { max-width: 1440px; }
.container-narrow { max-width: 860px; }
.container-full { width: 100%; padding: 0; }
.no-reveal .reveal, .no-reveal .reveal-pop, .no-reveal .reveal-r { opacity: 1 !important; transform: none !important; }

/* ---- post thumbnails without photo ---- */
.thumb-ph { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; width: 100%; height: 100%; min-height: 150px; color: #fff; text-align: center; padding: 14px; }
.thumb-ph b { font-size: 2.4rem; line-height: 1; filter: drop-shadow(0 4px 10px rgba(0,0,0,.2)); }
.thumb-ph small { font-weight: 700; font-size: .82rem; letter-spacing: .02em; opacity: .95; }
.ph-0 { background: linear-gradient(135deg, #A33811, #C44619); }
.ph-1 { background: linear-gradient(135deg, #10243B, #2E5A86); }
.ph-2 { background: linear-gradient(135deg, #1E4E33, #2C6E49); }
.ph-3 { background: linear-gradient(135deg, #7A3413, #8C6A1F); }
.ph-4 { background: linear-gradient(135deg, #5B2A86, #7E4AAE); }
.ph-5 { background: linear-gradient(135deg, #0B4F56, #1F7F88); }

/* ---- banners ---- */
.bn-tag { display: inline-block; background: rgba(0,0,0,.22); color: inherit; font-weight: 700; font-size: .78rem; padding: 3px 10px; border-radius: 999px; letter-spacing: .02em; }
.bn-navy { --bn-bg: #10243B; --bn-fg: #fff; --bn-sub: #C9D6E4; }
.bn-saffron { --bn-bg: #C44619; --bn-fg: #fff; --bn-sub: #FFF4EC; }
.bn-green { --bn-bg: #2C6E49; --bn-fg: #fff; --bn-sub: #DDEFE3; }
.bn-light { --bn-bg: #FFF7EC; --bn-fg: #10243B; --bn-sub: #5b5347; }
.bn-gradient { --bn-bg: linear-gradient(110deg, #9E3610, #C44619 45%, #8C6A1F); --bn-fg: #fff; --bn-sub: #FFF4EC; }
.bn-cd { display: inline-flex; align-items: baseline; gap: 3px; font-family: 'Inter', sans-serif; }
.bn-cd b { background: rgba(0,0,0,.22); color: #fff; border-radius: 6px; padding: 2px 6px; font-size: .9rem; min-width: 1.9em; text-align: center; }
.bn-cd i { font-style: normal; font-size: .72rem; opacity: .85; margin-right: 4px; }
.bn-light .bn-cd b { background: var(--navy); }
/* top bar */
.bn-topbar { background: var(--bn-bg); color: var(--bn-fg); font-size: .9rem; position: relative; z-index: 60; }
.bn-top-in { display: flex; align-items: center; justify-content: center; gap: 12px; flex-wrap: nowrap; padding: 7px 48px 7px 16px; min-height: 42px; text-align: center; }
.bn-top-in > * { flex: none; }
.bn-top-in .bn-top-text { flex: 0 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bn-top-sub { color: var(--bn-sub); }
.bn-top-btns { display: inline-flex; gap: 8px; }
.bn-top-btns .btn { padding: 5px 14px; font-size: .82rem; min-height: 0; background: #fff; color: var(--saffron-dark); border-color: #fff; }
.bn-top-btns .btn-outline { background: transparent; color: #fff; border-color: rgba(255,255,255,.6); }
.bn-x { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border-radius: 50%; border: 0; background: rgba(0,0,0,.15); color: inherit; cursor: pointer; font-size: .9rem; }
.bn-x:hover { background: rgba(0,0,0,.3); }
@media (max-width: 1100px) { .bn-top-sub { display: none; } }
@media (max-width: 640px) { .bn-topbar { font-size: .8rem; } .bn-top-in { gap: 6px; padding: 6px 40px 6px 10px; flex-wrap: wrap; } .bn-top-in .bn-top-text { white-space: normal; } .bn-topbar .bn-tag { display: none; } .bn-topbar .bn-cd i { display: none; } .bn-topbar .bn-cd b { padding: 1px 4px; font-size: .78rem; } }
/* popup */
.bn-popup { position: fixed; inset: 0; z-index: 3000; background: rgba(10,20,35,.62); display: grid; place-items: center; padding: 18px; animation: bnFade .3s ease; }
.bn-popup[hidden] { display: none; }
@keyframes bnFade { from { opacity: 0; } to { opacity: 1; } }
.bn-pop-card { position: relative; width: min(560px, 100%); max-height: 92vh; overflow: auto; background: #fff; border-radius: 18px; box-shadow: 0 30px 80px rgba(0,0,0,.35); animation: bnUp .35s var(--ease); }
@keyframes bnUp { from { transform: translateY(24px) scale(.98); opacity: 0; } to { transform: none; opacity: 1; } }
.bn-pop-card .bn-x { top: 12px; transform: none; right: 12px; background: rgba(16,36,59,.08); color: var(--navy); z-index: 2; }
.bn-pop-img img { width: 100%; max-height: 300px; object-fit: cover; display: block; }
.bn-pop-body { padding: 24px 26px 26px; text-align: center; }
.bn-pop-body h3 { font-size: 1.35rem; margin: 6px 0 8px; color: var(--navy); }
.bn-pop-body p { color: #3a3a37; }
.bn-pop-body .bn-btns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 16px; }
.bn-pop-body .bn-btns .btn-outline { color: var(--navy); border-color: var(--line); }
.bn-popup.bn-navy .bn-pop-card, .bn-popup.bn-saffron .bn-pop-card, .bn-popup.bn-green .bn-pop-card, .bn-popup.bn-gradient .bn-pop-card { background: var(--bn-bg); color: var(--bn-fg); }
.bn-popup:not(.bn-light) .bn-pop-body h3 { color: #fff; }
.bn-popup:not(.bn-light) .bn-pop-body p { color: var(--bn-sub); }
.bn-popup:not(.bn-light) .bn-pop-body .btn-outline { color: #fff; border-color: rgba(255,255,255,.5); }
.bn-popup:not(.bn-light) .bn-x { background: rgba(255,255,255,.15); color: #fff; }
body.bn-pop-open { overflow: hidden; }
/* mobile bar */
.bn-mbar { display: none; }
@media (max-width: 760px) {
  .bn-mbar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 950; background: var(--bn-bg); color: var(--bn-fg); align-items: center; gap: 10px; padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); box-shadow: 0 -8px 24px rgba(0,0,0,.18); }
  .bn-mbar-t { flex: 1; font-weight: 700; font-size: .86rem; line-height: 1.3; }
  .bn-mbar-btns { display: flex; gap: 6px; }
  .bn-mbar-btns .btn { padding: 8px 12px; font-size: .82rem; }
  .bn-mbar-btns .btn-outline { color: #fff; border-color: rgba(255,255,255,.55); }
  body.has-mbar { padding-bottom: 64px; }
  body.has-mbar .wa-float { bottom: 76px; }
  body.has-mbar .to-top { bottom: 132px; }
}
/* primary button on saffron / gradient banners: white so it stays visible */
.bn-saffron .btn-primary, .bn-gradient .btn-primary { background: #fff; color: var(--saffron-dark); border-color: #fff; }
.bn-saffron .btn-primary:hover, .bn-gradient .btn-primary:hover { background: var(--navy); color: #fff; border-color: var(--navy); }
/* inline promo */
.bn-slot { display: grid; gap: 20px; }
.bn-slot-grid.n-2 { grid-template-columns: 1fr 1fr; }
.bn-slot-grid.n-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .bn-slot-grid.n-2, .bn-slot-grid.n-3 { grid-template-columns: 1fr; } }
.bn-inline { background: var(--bn-bg); color: var(--bn-fg); border-radius: 18px; overflow: hidden; display: grid; box-shadow: var(--sh-2); position: relative; }
.bn-inline h3 { color: inherit; font-size: clamp(1.15rem, 1rem + .8vw, 1.6rem); margin: 8px 0; line-height: 1.35; }
.bn-inline p { color: var(--bn-sub); margin: 0 0 12px; }
.bn-in-body { padding: 26px 30px; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 4px; }
.bn-in-body .bn-btns { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.bn-inline:not(.bn-light) .btn-outline { color: #fff; border-color: rgba(255,255,255,.55); }
.bn-inline .bn-in-img img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 200px; }
.bn-l-split.bn-sz-full { grid-template-columns: 1.1fr 1fr; }
.bn-l-split.bn-sz-full .bn-in-img { order: 2; }
.bn-l-card .bn-in-img img, .bn-sz-half .bn-in-img img { height: 190px; min-height: 0; }
.bn-l-cover { background-image: linear-gradient(90deg, rgba(10,20,35,.86), rgba(10,20,35,.35)), var(--bn-bg-img, var(--bn-bg)); background-size: cover; background-position: center; min-height: 260px; }
.bn-l-cover[style*="--bn-bg"] { background-image: linear-gradient(90deg, rgba(10,20,35,.86), rgba(10,20,35,.3)), var(--bn-bg); }
.bn-l-strip { grid-template-columns: 1fr; }
.bn-l-strip .bn-in-body { flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; padding: 18px 26px; }
.bn-l-strip h3 { margin: 0; font-size: 1.1rem; }
.bn-l-strip p { margin: 0; }
@media (max-width: 760px) { .bn-l-split.bn-sz-full { grid-template-columns: 1fr; } .bn-l-split.bn-sz-full .bn-in-img { order: 0; } .bn-in-body { padding: 20px; } }
/* sidebar */
.bn-side { padding: 0; overflow: hidden; background: var(--bn-bg); color: var(--bn-fg); border: 0; }
.bn-side img { width: 100%; display: block; max-height: 180px; object-fit: cover; }
.bn-side-body { padding: 16px 18px 18px; }
.bn-side-body h4 { color: inherit; margin: 8px 0 6px; }
.bn-side-body p { color: var(--bn-sub); font-size: .9rem; }
.bn-side .bn-btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.bn-side .btn { padding: 8px 14px; font-size: .85rem; }
.bn-side:not(.bn-light) .btn-outline { color: #fff; border-color: rgba(255,255,255,.5); }

/* ---- hero slider ---- */
.hslider { position: relative; background: var(--navy); color: #fff; overflow: hidden; }
.hs-track { position: relative; height: clamp(440px, 64vh, 600px); }
.hslider.h-tall .hs-track { height: clamp(520px, 80vh, 760px); }
.hslider.h-compact .hs-track { height: clamp(340px, 46vh, 440px); }
.hs-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .9s var(--ease), visibility 0s linear .9s; background: var(--bn-bg, var(--navy)); display: flex; align-items: center; }
.hs-slide.on { opacity: 1; visibility: visible; transition: opacity .9s var(--ease); z-index: 1; }
.fx-slide .hs-slide { transform: translateX(6%); transition: opacity .7s, transform .9s var(--ease), visibility 0s linear .9s; }
.fx-slide .hs-slide.on { transform: none; transition: opacity .7s, transform .9s var(--ease); }
.hs-bg, .hs-bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.fx-fade .hs-slide.on .hs-bg img { animation: hsZoom 9s ease-out both; }
@keyframes hsZoom { from { transform: scale(1.08); } to { transform: scale(1); } }
.hs-ov { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,22,38,.9) 0%, rgba(10,22,38,.72) 45%, rgba(10,22,38,.25) 100%); }
.hs-slide.no-img .hs-ov { background: radial-gradient(circle at 85% 20%, rgba(201,154,46,.35), transparent 50%), radial-gradient(circle at 10% 90%, rgba(255,255,255,.08), transparent 45%); }
.bn-light.hs-slide .hs-ov { background: linear-gradient(90deg, rgba(255,247,236,.96), rgba(255,247,236,.75) 55%, rgba(255,247,236,.2)); }
.hs-content { position: relative; z-index: 2; width: 100%; }
.hs-content > * { max-width: 700px; }
.al-center .hs-content { text-align: center; }
.al-center .hs-content > * { margin-left: auto; margin-right: auto; }
.al-center .hs-ov { background: rgba(10,22,38,.62); }
.hs-eyebrow { display: inline-block; background: var(--saffron); color: #fff; font-weight: 800; font-size: .8rem; letter-spacing: .04em; padding: 5px 14px; border-radius: 999px; margin-bottom: 14px; }
.bn-saffron .hs-eyebrow, .bn-gradient .hs-eyebrow { background: rgba(0,0,0,.25); }
.hs-title { font-family: 'Noto Serif Tamil', serif; font-size: clamp(1.55rem, 1rem + 1.9vw, 2.55rem); line-height: 1.3; color: #fff; margin: 0 0 14px; text-wrap: balance; }
.bn-light .hs-title { color: var(--navy); }
.hs-sub { font-size: clamp(1rem, .95rem + .3vw, 1.15rem); color: #D9E3EE; line-height: 1.7; margin: 0 0 18px; }
.bn-light .hs-sub { color: #4a4438; }
.hs-content .bn-cd { margin: 0 0 16px; }
.hs-content .bn-cd b { font-size: 1.15rem; padding: 6px 10px; }
.hs-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.al-center .hs-btns { justify-content: center; }
.hs-slide:not(.bn-light) .hs-btns .btn-outline { color: #fff; border-color: rgba(255,255,255,.6); }
.hs-slide.on .hs-content > * { animation: hsIn .8s var(--ease) both; }
.hs-slide.on .hs-content > *:nth-child(2) { animation-delay: .08s; }
.hs-slide.on .hs-content > *:nth-child(3) { animation-delay: .16s; }
.hs-slide.on .hs-content > *:nth-child(4) { animation-delay: .24s; }
.hs-slide.on .hs-content > *:nth-child(5) { animation-delay: .32s; }
@keyframes hsIn { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.hs-arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255,255,255,.35); background: rgba(10,22,38,.35); color: #fff; font-size: 1.6rem; line-height: 1; cursor: pointer; backdrop-filter: blur(4px); transition: .2s; }
.hs-arrow:hover { background: var(--saffron); border-color: var(--saffron); }
.hs-prev { left: 18px; } .hs-next { right: 18px; }
.hs-dots { position: absolute; left: 0; right: 0; bottom: 18px; z-index: 3; display: flex; justify-content: center; gap: 8px; }
.hs-dot { width: 10px; height: 10px; border-radius: 999px; border: 0; background: rgba(255,255,255,.45); cursor: pointer; padding: 0; transition: .3s; }
.hs-dot.on { width: 30px; background: var(--saffron); }
.hs-tabs { position: relative; z-index: 3; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 0; margin-top: -1px; }
.hs-tab { background: rgba(10,22,38,.92); color: #C9D6E4; border: 0; border-top: 3px solid transparent; text-align: left; padding: 12px 14px; font: inherit; font-size: .88rem; cursor: pointer; line-height: 1.4; }
.hs-tab small { display: block; color: var(--gold); font-weight: 700; font-size: .72rem; }
.hs-tab.on { border-top-color: var(--saffron); color: #fff; background: #10243B; }
@media (max-width: 760px) {
  .hs-track { height: clamp(460px, 78vh, 560px); }
  .hs-ov { background: linear-gradient(180deg, rgba(10,22,38,.35) 0%, rgba(10,22,38,.88) 55%, rgba(10,22,38,.95) 100%); }
  .hs-slide { align-items: flex-end; padding-bottom: 54px; }
  .hs-arrow { display: none; }
  .hs-tabs { display: none; }
  .hs-btns .btn { flex: 1 1 auto; justify-content: center; }
}

/* ---- quick links ---- */
.qlinks { display: grid; gap: 14px; grid-template-columns: repeat(4, 1fr); }
.ql-c5 { grid-template-columns: repeat(5, 1fr); } .ql-c6 { grid-template-columns: repeat(6, 1fr); } .ql-c8 { grid-template-columns: repeat(8, 1fr); }
.ql { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; padding: 20px 12px 18px; background: #fff; border: 1px solid var(--line); border-radius: 16px; color: var(--navy); text-decoration: none; box-shadow: var(--sh-1); transition: transform .25s var(--ease), box-shadow .25s, border-color .25s; }
.ql:hover { transform: translateY(-4px); box-shadow: var(--sh-2); border-color: transparent; text-decoration: none; }
.ql-ic { width: 58px; height: 58px; border-radius: 16px; display: grid; place-items: center; font-size: 1.7rem; background: var(--qc-soft, #FBEEE6); transition: transform .3s var(--ease); }
.ql:hover .ql-ic { transform: scale(1.08) rotate(-4deg); }
.ql-t { font-weight: 800; font-size: .95rem; line-height: 1.35; }
.ql-c8 .ql-t { font-size: .88rem; } .ql-c8 .ql-t small { font-size: .74rem; }
.ql-t small { display: block; font-weight: 500; color: var(--muted); font-size: .8rem; margin-top: 3px; }
.ql-badge { position: absolute; top: 8px; right: 8px; background: var(--saffron); color: #fff; font-style: normal; font-size: .68rem; font-weight: 800; padding: 2px 8px; border-radius: 999px; }
.ql-saffron { --qc-soft: #FDEADF; } .ql-navy { --qc-soft: #E3EAF3; } .ql-green { --qc-soft: #E2F1E7; } .ql-gold { --qc-soft: #F8EFD8; }
.ql-pink { --qc-soft: #FCE4EE; } .ql-blue { --qc-soft: #E1EEFB; } .ql-purple { --qc-soft: #EEE5F9; } .ql-teal { --qc-soft: #DDF2F3; }
.ql-pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.ql-pills .ql { flex-direction: row; padding: 10px 16px 10px 10px; border-radius: 999px; gap: 10px; }
.ql-pills .ql-ic { width: 38px; height: 38px; font-size: 1.15rem; border-radius: 50%; }
.ql-float { position: relative; z-index: 5; margin-top: -86px; background: #fff; border-radius: 20px; padding: 16px; box-shadow: 0 20px 50px rgba(16,36,59,.16); gap: 6px; }
.ql-float .ql { border: 0; box-shadow: none; padding: 14px 8px; }
.ql-float .ql:hover { background: var(--paper); transform: none; box-shadow: none; }
@media (max-width: 1000px) { .qlinks, .ql-c5, .ql-c6, .ql-c8 { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 640px) {
  .qlinks, .ql-c5, .ql-c6, .ql-c8 { grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .ql { padding: 14px 6px 12px; border-radius: 14px; }
  .ql-ic { width: 46px; height: 46px; font-size: 1.35rem; border-radius: 13px; }
  .ql-t { font-size: .8rem; } .ql-t small { display: none; }
  .ql-float { margin-top: -40px; padding: 10px; }
}

/* ---- news hub ---- */
.nhub-tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.nhub-tabs button, .xtabs-nav button { border: 1px solid var(--line); background: #fff; color: var(--navy); border-radius: 999px; padding: 8px 18px; font: inherit; font-weight: 700; font-size: .9rem; cursor: pointer; transition: .2s; }
.nhub-tabs button.on, .xtabs-nav button.on, .nhub-tabs button:hover, .xtabs-nav button:hover { background: var(--navy); color: #fff; border-color: var(--navy); }
.nhub-body { display: grid; gap: 26px; }
.nhub.has-trend .nhub-body { grid-template-columns: minmax(0, 1fr) 320px; }
.nhub-pane { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 22px; }
.nhub-pane[hidden] { display: none; }
.nhub-lead { background: #fff; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; box-shadow: var(--sh-1); display: flex; flex-direction: column; }
.nl-img { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--paper-2); }
.nl-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.nhub-lead:hover .nl-img img { transform: scale(1.04); }
.nl-img .thumb-ph { position: absolute; inset: 0; }
.nl-img .type-badge { position: absolute; left: 14px; top: 14px; background: var(--saffron); color: #fff; font-weight: 800; font-size: .75rem; padding: 4px 12px; border-radius: 999px; }
.nl-body { padding: 18px 20px 20px; }
.nl-body .meta { display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: .8rem; color: var(--muted); margin-bottom: 8px; }
.nl-body .meta .cat { color: var(--saffron-dark); font-weight: 700; }
.nl-body h3 { font-size: 1.2rem; line-height: 1.45; margin: 0 0 8px; }
.nl-body h3 a { color: var(--navy); }
.nl-body p { color: #3a3a37; font-size: .95rem; }
.nhub-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.nhub-list a { display: grid; grid-template-columns: 96px 1fr; gap: 12px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 8px; color: var(--navy); text-decoration: none; transition: .2s; }
.nhub-list a:hover { border-color: var(--saffron); box-shadow: var(--sh-1); }
.nli-thumb { display: block; width: 96px; height: 72px; border-radius: 10px; overflow: hidden; background: var(--paper-2); }
.nli-thumb img { width: 100%; height: 100%; object-fit: cover; }
.nli-thumb .thumb-ph { min-height: 0; height: 100%; padding: 0; }
.nli-thumb .thumb-ph b { font-size: 1.5rem; }
.nli-t small { display: block; color: var(--muted); font-size: .75rem; margin-bottom: 2px; }
.nli-t strong { font-size: .92rem; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.nhub-side { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 18px; box-shadow: var(--sh-1); align-self: start; }
.nhub-side h4 { font-size: 1rem; margin: 0 0 12px; color: var(--navy); }
.nh-trend { display: block; list-style: none; padding: 0; margin: 0 0 18px; }
.nh-trend a { display: flex; gap: 12px; padding: 10px 0; border-bottom: 1px dashed var(--line); color: var(--navy); text-decoration: none; }
.nh-trend li:last-child a { border-bottom: 0; }
.nh-trend b { font-family: 'Noto Serif Tamil', serif; font-size: 1.6rem; color: var(--saffron); line-height: 1; min-width: 26px; }
.nh-trend span { font-weight: 600; font-size: .9rem; line-height: 1.4; }
.nh-trend small { display: block; color: var(--muted); font-weight: 400; font-size: .75rem; margin-top: 2px; }
.tagcloud { display: flex; flex-wrap: wrap; gap: 6px; }
.tagcloud a { background: var(--paper); border: 1px solid var(--line); border-radius: 999px; padding: 4px 10px; font-size: .8rem; color: var(--navy); }
@media (max-width: 1000px) { .nhub.has-trend .nhub-body { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .nhub-pane { grid-template-columns: 1fr; } .nhub-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; } .nhub-tabs button { flex: none; } }

/* ---- category tiles ---- */
.cat-tiles { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.cat-tiles > * { flex: 0 1 calc((100% - 56px) / 5); min-width: 170px; }
@media (max-width: 1100px) { .cat-tiles > * { flex-basis: calc((100% - 42px) / 4); } }
@media (max-width: 860px) { .cat-tiles > * { flex-basis: calc((100% - 28px) / 3); } }
.cat-tile { position: relative; overflow: hidden; border-radius: 16px; padding: 18px 16px; min-height: 120px; color: #fff; text-decoration: none; display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; box-shadow: var(--sh-1); transition: transform .25s var(--ease), box-shadow .25s; }
.cat-tile:hover { transform: translateY(-4px); box-shadow: var(--sh-2); text-decoration: none; color: #fff; }
.ct-ic { position: absolute; top: 12px; right: 14px; font-size: 2.2rem; opacity: .95; transition: transform .3s var(--ease); }
.cat-tile:hover .ct-ic { transform: scale(1.15) rotate(-8deg); }
.ct-name { font-weight: 800; font-size: 1rem; line-height: 1.35; }
.ct-n { font-size: .78rem; opacity: .9; }
@media (max-width: 640px) { .cat-tiles { gap: 10px; } .cat-tiles > * { flex-basis: calc((100% - 10px) / 2); min-width: 0; } .cat-tile { min-height: 100px; padding: 14px 12px; } .ct-ic { font-size: 1.8rem; } }

/* ---- countdown ---- */
.cdown { display: grid; grid-template-columns: minmax(0, 1.2fr) auto; gap: 30px; align-items: center; background: linear-gradient(120deg, #10243B, #1C3A5A 60%, #7A3413); color: #fff; border-radius: 22px; padding: 34px 38px; box-shadow: var(--sh-2); position: relative; overflow: hidden; }
.cdown.has-bg { background-image: linear-gradient(110deg, rgba(10,22,38,.94), rgba(10,22,38,.7)), var(--cd-bg); background-size: cover; background-position: center; }
.cdown::after { content: ""; position: absolute; right: -80px; top: -80px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(201,154,46,.35), transparent 70%); }
.cd-kicker { color: var(--gold); font-weight: 800; margin: 0 0 4px; }
.cd-title { color: #fff; font-size: clamp(1.3rem, 1rem + 1.2vw, 1.9rem); margin: 0 0 8px; line-height: 1.35; }
.cd-meta { color: #D5E0EC; margin: 0 0 8px; }
.cd-desc { color: #C9D6E4; font-size: .95rem; }
.cd-clock { display: grid; grid-template-columns: repeat(4, minmax(70px, 1fr)); gap: 10px; position: relative; z-index: 1; }
.cd-clock div, .ev-clock div { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); border-radius: 14px; padding: 12px 8px; text-align: center; backdrop-filter: blur(4px); }
.cd-clock b, .ev-clock b { display: block; font-family: 'Inter', sans-serif; font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem); font-weight: 800; color: #fff; line-height: 1.1; }
.cd-clock span, .ev-clock span { font-size: .75rem; color: #C9D6E4; }
@media (max-width: 900px) { .cdown { grid-template-columns: 1fr; padding: 26px 20px; } .cd-clock { grid-template-columns: repeat(4, 1fr); } }

/* ---- district chips ---- */
.dist-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.dchip { display: inline-flex; align-items: center; gap: 6px; background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 7px 14px; font-size: .88rem; font-weight: 600; color: var(--navy); transition: .2s; }
.dchip:hover { background: var(--navy); color: #fff; border-color: var(--navy); text-decoration: none; }
.dchip b { background: var(--saffron); color: #fff; border-radius: 999px; font-size: .72rem; padding: 1px 7px; }
.section-navy .dchip, .section-gradient .dchip { background: rgba(255,255,255,.07); color: #E6EDF5; border-color: rgba(255,255,255,.15); }

/* ---- subscribe ---- */
.subscribe { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 34px; align-items: center; }
.sb-band { background: linear-gradient(120deg, #FFF3EA, #FDE3CF); border-radius: 22px; padding: 34px; border: 1px solid #F6D2BA; }
.sb-card { background: #fff; border: 1px solid var(--line); border-radius: 22px; padding: 30px; box-shadow: var(--sh-2); }
.subscribe .section-title { text-align: left; }
.sb-form .sjm-form { background: #fff; border-radius: 16px; padding: 18px; box-shadow: var(--sh-1); }
.section-navy .sb-band, .section-gradient .sb-band { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14); }
@media (max-width: 900px) { .subscribe { grid-template-columns: 1fr; } .sb-band, .sb-card { padding: 22px 16px; } }

/* ---- tabs section ---- */
.xtabs-nav { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-bottom: 22px; }
.xtabs-pane { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 26px 28px; box-shadow: var(--sh-1); }
.xtabs-pane.has-img { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 26px; align-items: center; }
.xtabs-img img { width: 100%; border-radius: 14px; }
@media (max-width: 760px) { .xtabs-nav { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; scrollbar-width: none; } .xtabs-nav button { flex: none; } .xtabs-pane { padding: 18px; } .xtabs-pane.has-img { grid-template-columns: 1fr; } }

/* ---- events microsite ---- */
.ev-hero { position: relative; background: radial-gradient(circle at 80% 10%, rgba(201,154,46,.3), transparent 45%), linear-gradient(120deg, #10243B, #1C3A5A 55%, #7A3413); color: #fff; padding: 64px 0 56px; overflow: hidden; }
.ev-hero.has-bg { background-image: linear-gradient(110deg, rgba(10,22,38,.92), rgba(10,22,38,.62)), var(--ev-bg); background-size: cover; background-position: center; }
.ev-hero .crumb { color: #C9D6E4; }
.ev-hero h1 { color: #fff; font-size: clamp(1.8rem, 1.2rem + 2.6vw, 3.2rem); line-height: 1.25; margin: 8px 0 10px; max-width: 900px; }
.ev-tag { font-size: 1.15rem; color: #FFD9C2; margin: 0 0 16px; max-width: 760px; }
.ev-facts { display: flex; flex-wrap: wrap; gap: 10px 22px; font-weight: 700; margin-bottom: 20px; }
.ev-facts span { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); padding: 8px 14px; border-radius: 12px; }
.ev-clock { display: grid; grid-template-columns: repeat(4, 90px); gap: 10px; margin: 0 0 22px; }
.ev-btns .btn-outline { color: #fff; border-color: rgba(255,255,255,.6); }
.ev-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.ev-badges span { background: var(--saffron); color: #fff; font-weight: 700; font-size: .85rem; padding: 5px 12px; border-radius: 999px; }
@media (max-width: 640px) { .ev-hero { padding: 42px 0 38px; } .ev-clock { grid-template-columns: repeat(4, 1fr); } }
.ag-nav button { display: flex; flex-direction: column; align-items: center; border-radius: 14px; padding: 10px 18px; }
.ag-nav button small { font-weight: 500; font-size: .75rem; opacity: .85; }
.ag-list { list-style: none; margin: 0; padding: 0; background: #fff; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; box-shadow: var(--sh-1); }
.ag-list li { display: grid; grid-template-columns: 130px 1fr; gap: 16px; padding: 16px 20px; border-bottom: 1px solid var(--line); }
.ag-list li:last-child { border-bottom: 0; }
.ag-time { font-family: 'Inter', sans-serif; font-weight: 800; color: var(--saffron-dark); }
.ag-body strong { display: block; color: var(--navy); }
.ag-body small { color: var(--muted); }
@media (max-width: 640px) { .ag-list li { grid-template-columns: 1fr; gap: 2px; padding: 12px 14px; } }
.spk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 18px; }
.spk { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 20px 16px; text-align: center; box-shadow: var(--sh-1); display: flex; flex-direction: column; gap: 4px; align-items: center; }
.spk-img { width: 110px; height: 110px; border-radius: 50%; overflow: hidden; margin-bottom: 8px; background: var(--paper-2); display: grid; place-items: center; border: 3px solid #fff; box-shadow: 0 0 0 3px var(--saffron); }
.spk-img img { width: 100%; height: 100%; object-fit: cover; }
.spk-img span { font-size: 2.2rem; font-weight: 800; color: var(--saffron); }
.spk small { color: var(--muted); }
.spk em { font-style: normal; font-size: .85rem; color: var(--saffron-dark); }
.price-grid { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); align-items: stretch; }
.price-grid.n-2 { grid-template-columns: repeat(2, minmax(0, 360px)); justify-content: center; }
.price-grid.n-4 { grid-template-columns: repeat(4, 1fr); }
.price { position: relative; background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 26px 22px; box-shadow: var(--sh-1); display: flex; flex-direction: column; gap: 10px; }
.price.hot { border: 2px solid var(--saffron); box-shadow: var(--sh-2); transform: translateY(-6px); }
.price-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--saffron); color: #fff; font-weight: 800; font-size: .78rem; padding: 4px 14px; border-radius: 999px; }
.price h3 { margin: 0; color: var(--navy); }
.price-amt { font-family: 'Inter', sans-serif; font-size: 1.8rem; font-weight: 800; color: var(--saffron-dark); }
.price-amt small { display: block; font-size: .8rem; font-weight: 500; color: var(--muted); }
.price .list-check { flex: 1; }
.price .btn { align-self: stretch; justify-content: center; }
@media (max-width: 900px) { .price-grid, .price-grid.n-4, .price-grid.n-2 { grid-template-columns: 1fr; } .price.hot { transform: none; } }
.venue { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 26px; align-items: stretch; }
.venue-info { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 24px; box-shadow: var(--sh-1); }
.venue-info h3 { margin-top: 0; }
.venue-dirs { list-style: none; padding: 0; margin: 12px 0 18px; display: grid; gap: 6px; }
.venue-map iframe { width: 100%; height: 100%; min-height: 320px; border: 0; border-radius: 18px; box-shadow: var(--sh-1); }
@media (max-width: 900px) { .venue { grid-template-columns: 1fr; } }

/* ---- forms 2.0 ---- */
.lbl-en { display: block; font-weight: 500; font-size: .78rem; color: var(--muted); margin-top: 1px; }
.form-field .err-msg { display: none; }
.form-field.has-err .err-msg { display: block; }
.form-field[hidden] { display: none !important; }
.other-input { margin-top: 8px; }
.other-input[hidden] { display: none; }
.form-closed { background: #FFF4EC; border: 1px solid #F6D2BA; color: var(--saffron-dark); border-radius: 12px; padding: 16px 18px; font-weight: 700; text-align: center; }
.form-section-head { border-top: 3px solid var(--saffron); padding-top: 14px; margin-top: 4px; }
.form-section-head h4 { margin: 0 0 4px; color: var(--navy); font-size: 1.1rem; }
.form-section-head p { color: var(--muted); margin: 0; font-size: .9rem; }
.form-subtext { font-weight: 400; color: var(--muted); font-size: .9rem; margin: 4px 0 0; }
.fprog { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; }
.fprog-bar { flex: 1; height: 8px; border-radius: 999px; background: var(--paper-2); overflow: hidden; }
.fprog-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--saffron), var(--gold)); border-radius: 999px; transition: width .4s var(--ease); }
.fprog-t { font-size: .82rem; color: var(--muted); white-space: nowrap; }
.sjm-form fieldset.fpage { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.sjm-form fieldset.fpage > .fg-full, .sjm-form fieldset.fpage > .form-subhead, .sjm-form fieldset.fpage > .form-section-head { grid-column: 1 / -1; }
.sjm-form:not(.js-steps) .fprog { display: none; }
@media (max-width: 640px) { .sjm-form fieldset.fpage { grid-template-columns: 1fr; } }
.scale-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.scale-end { font-size: .8rem; color: var(--muted); }
.scale-opt input { position: absolute; opacity: 0; pointer-events: none; }
.scale-opt span { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; border: 1.5px solid var(--line); background: #fff; font-weight: 800; cursor: pointer; transition: .15s; }
.scale-opt input:checked + span { background: var(--saffron); color: #fff; border-color: var(--saffron); }
.scale-opt input:focus-visible + span { outline: 3px solid rgba(217,83,30,.35); }
.star-row { display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.star-row input { position: absolute; opacity: 0; pointer-events: none; }
.star-row label { font-size: 2rem; color: #D9D2C3; cursor: pointer; transition: .15s; line-height: 1; }
.star-row label:hover, .star-row label:hover ~ label, .star-row input:checked ~ label { color: #F2A516; }
.star-row input:focus-visible + label { outline: 2px solid var(--saffron); border-radius: 4px; }
.ft-file input[type=file] { padding: 10px; border: 1.5px dashed var(--line); border-radius: 12px; background: var(--paper); width: 100%; }
.theme-navy .btn-primary { background: var(--navy); border-color: var(--navy); }
.theme-green .btn-primary { background: var(--green); border-color: var(--green); }
.theme-purple .btn-primary { background: #5B2A86; border-color: #5B2A86; }
.theme-teal .btn-primary { background: #0F6E78; border-color: #0F6E78; }
.theme-maroon .btn-primary { background: #7A1F2B; border-color: #7A1F2B; }
.fpage-hero { background: linear-gradient(120deg, #9E3610, #C44619 50%, #8C6A1F); color: #fff; padding: 46px 0 70px; }
.fpage-hero.theme-navy { background: linear-gradient(120deg, #10243B, #2E5A86); }
.fpage-hero.theme-green { background: linear-gradient(120deg, #1E4E33, #2C6E49 55%, #227A45); }
.fpage-hero.theme-purple { background: linear-gradient(120deg, #3E1C5E, #5B2A86 55%, #7E4AAE); }
.fpage-hero.theme-teal { background: linear-gradient(120deg, #0B4F56, #0F6E78 55%, #1F7F88); }
.fpage-hero.theme-maroon { background: linear-gradient(120deg, #4A0F18, #7A1F2B 55%, #9A3B3B); }
.fpage-hero.has-cover { background-image: linear-gradient(120deg, rgba(10,22,38,.86), rgba(10,22,38,.55)), var(--cover); background-size: cover; background-position: center; }
.fpage-hero .crumb { color: #fff; }
.fpage-hero .crumb a { color: #fff; }
.fpage-hero h1 { color: #fff; font-size: clamp(1.5rem, 1.1rem + 1.8vw, 2.4rem); line-height: 1.35; max-width: 860px; margin: 10px auto 8px; }
.fpage-hero p { color: #fff; max-width: 760px; margin: 0 auto; }
.fpage-hero .container { text-align: center; }
.fpage-body { padding-top: 0; }
.gform-card { background: #fff; border-radius: 20px; box-shadow: 0 20px 60px rgba(16,36,59,.12); padding: 28px 30px; margin-top: -44px; position: relative; border-top: 6px solid var(--saffron); }
.gform-intro { margin-bottom: 18px; }
.gform-foot { text-align: center; color: var(--muted); font-size: .85rem; margin-top: 16px; }
@media (max-width: 640px) { .gform-card { padding: 20px 16px; border-radius: 16px; } }
.thanks-card { background: #fff; border-radius: 22px; box-shadow: 0 20px 60px rgba(16,36,59,.12); padding: 38px 32px; text-align: center; }
.thanks-tick { width: 76px; height: 76px; margin: 0 auto 14px; border-radius: 50%; background: linear-gradient(135deg, #1E4E33, #2C6E49); color: #fff; font-size: 2.4rem; font-weight: 800; display: grid; place-items: center; box-shadow: 0 10px 30px rgba(44,110,73,.35); animation: tick .6s var(--ease) both; }
@keyframes tick { from { transform: scale(.4); opacity: 0; } to { transform: none; opacity: 1; } }
.thanks-card h1 { font-size: clamp(1.3rem, 1.1rem + 1vw, 1.9rem); color: var(--navy); line-height: 1.4; }
.thanks-msg { color: #3a3a37; max-width: 640px; margin: 8px auto 0; }
.thanks-img { max-width: 100%; border-radius: 14px; margin: 18px auto 0; display: block; }
.thanks-h { margin: 26px 0 12px; font-size: 1.2rem; }
.thanks-sum { text-align: left; margin: 22px auto 0; max-width: 640px; background: var(--paper); border: 1px solid var(--line); border-radius: 14px; padding: 10px 16px; }
.thanks-sum summary { cursor: pointer; font-weight: 700; color: var(--navy); }
.thanks-sum .kv { width: 100%; margin-top: 10px; border-collapse: collapse; font-size: .9rem; }
.thanks-sum .kv th, .thanks-sum .kv td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
.thanks-sum .kv th { width: 40%; color: var(--muted); font-weight: 600; }
.thanks-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 22px; }
.thanks-share { margin-top: 16px; }
.cert-canvas-wrap { position: relative; max-width: 960px; margin: 0 auto; }
.cert-canvas { width: 100%; height: auto; border-radius: 10px; box-shadow: 0 16px 40px rgba(16,36,59,.18); background: #fff; display: block; }
.cert-canvas-wrap:not(.ready) .cert-canvas { min-height: 240px; }
.cert-loading { position: absolute; inset: 0; display: grid; place-items: center; font-weight: 700; color: var(--muted); }
.cert-loading[hidden] { display: none; }
.cert-dl { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 16px; }
@media print { .cert-canvas { box-shadow: none; } }
/* events list: centre a lone last card */
@media (min-width: 901px) { .events-list > :last-child:nth-child(odd) { grid-column: 1 / -1; justify-self: center; width: calc(50% - 10px); } }
/* hero slider v2: slides are stacked in one grid cell, so the slider grows with its tallest slide —
   text never touches the header on short laptop screens, and the floating quick-services bar never covers it */
.hs-track { display: grid; height: auto !important; }
.hs-slide { position: relative; inset: auto; grid-area: 1 / 1; min-height: clamp(460px, 62vh, 600px); padding: 60px 0 64px; box-sizing: border-box; }
.hslider.h-tall .hs-slide { min-height: clamp(540px, 78vh, 760px); }
.hslider.h-compact .hs-slide { min-height: clamp(360px, 46vh, 440px); padding: 44px 0 48px; }
body:has(.ql-float) .hslider .hs-slide { padding-bottom: 150px; }
body:has(.ql-float) .hslider .hs-dots { bottom: 104px; }
@media (max-width: 760px) {
  .hs-slide, .hslider.h-tall .hs-slide, .hslider.h-compact .hs-slide { min-height: clamp(460px, 76vh, 560px); padding: 44px 0 60px; }
  body:has(.ql-float) .hslider .hs-slide { padding-bottom: 96px; }
  body:has(.ql-float) .hslider .hs-dots { bottom: 54px; }
}
/* quick services on phones: 2 columns, icon beside the title (no orphan tiles) */
@media (max-width: 560px) {
  .qlinks, .ql-c5, .ql-c6, .ql-c8 { grid-template-columns: 1fr 1fr; gap: 8px; }
  .ql { flex-direction: row; text-align: left; align-items: center; gap: 10px; padding: 10px; }
  .ql-float .ql { padding: 10px 8px; }
  .ql-ic { width: 40px; height: 40px; font-size: 1.2rem; border-radius: 11px; flex: none; }
  .ql-t, .ql-c8 .ql-t { font-size: .82rem; line-height: 1.3; }
  .ql-badge { top: 2px; right: 2px; font-size: .6rem; padding: 1px 6px; }
}
/* forms: anything JS hides must stay hidden even when its class sets display */
.sjm-form [hidden], .sjm-form fieldset.fpage[hidden] { display: none !important; }
.choice-row.long { grid-template-columns: 1fr; }
.choice-all { display: inline-flex; align-items: center; gap: 6px; margin: 2px 0 8px; font-size: .85rem; font-weight: 700; color: var(--saffron-dark); cursor: pointer; background: none; border: 1px dashed var(--saffron); border-radius: 999px; padding: 4px 12px; }
.choice-all:hover { background: #FFF4EC; }
/* founder portrait placeholder (until the real photo is saved) */
.founder-hero .portrait-ph { height: 420px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; background: linear-gradient(150deg, rgba(255,255,255,.14), rgba(255,255,255,.04)); }
.founder-hero .portrait-ph span { font-family: 'Noto Serif Tamil', serif; font-size: 7rem; line-height: 1; color: #F2C14E; }
.founder-hero .portrait-ph small { color: #fff; opacity: .8; font-size: .78rem; padding: 0 14px; text-align: center; word-break: break-all; }
@media (max-width: 860px) { .founder-hero .portrait-ph { height: 300px; } }
/* built-in round emblem logo (assets/img/brand): show the whole badge, no white disc, no crop */
.logo-wrap.is-emblem { width: 56px; height: 56px; background: transparent; overflow: visible; box-shadow: none; }
.logo-wrap.is-emblem img { inset: 0; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 3px 6px rgba(14,42,71,.22)); }
.brand:hover .logo-wrap.is-emblem { box-shadow: none; }
.site-footer .logo-wrap.is-emblem { width: 64px; height: 64px; background: transparent; box-shadow: none; }
.site-footer .logo-wrap.is-emblem img { filter: drop-shadow(0 4px 10px rgba(0,0,0,.4)); }
@media (max-width: 900px) { .logo-wrap.is-emblem { width: 48px; height: 48px; } }
@media (max-width: 420px) { .logo-wrap.is-emblem { width: 44px; height: 44px; } }
#sjm-loader .ldr img.is-emblem { width: 104px; height: 104px; background: transparent; padding: 0; box-shadow: none; filter: drop-shadow(0 8px 20px rgba(0,0,0,.4)); }
.site-footer .footer-brand .brand { display: inline-flex; align-items: center; }
.logo-wrap { display: inline-block; }
/* brand word swap: fade one word out completely before the other fades in (no overlapping letters) */
@keyframes bwEn { 0%, 42% { opacity: 1; transform: none; } 47% { opacity: 0; transform: translateY(-10px); } 47.01%, 95% { opacity: 0; transform: translateY(10px); } 100% { opacity: 1; transform: none; } }
@keyframes bwTa { 0%, 47% { opacity: 0; transform: translateY(10px); } 52%, 90% { opacity: 1; transform: none; } 95%, 100% { opacity: 0; transform: translateY(-10px); } }
/* slider arrows: on laptop widths keep them off the text — grouped bottom-right next to the dots */
@media (min-width: 761px) and (max-width: 1439px) {
  .hs-arrow { top: auto; transform: none; bottom: 12px; width: 40px; height: 40px; font-size: 1.35rem; }
  .hs-prev { left: auto; right: 70px; } .hs-next { right: 22px; }
  body:has(.ql-float) .hslider .hs-arrow { bottom: 96px; }
}
/* ---------- Tamil ⇄ English: status pill + progress line; Google fallback bar fully hidden ---------- */
.tr-toast { position: fixed; left: 16px; bottom: 16px; z-index: 4000; max-width: min(92vw, 460px); background: #10243B; color: #fff; font-size: .85rem; line-height: 1.5; padding: 10px 16px; border-radius: 12px; box-shadow: 0 12px 30px rgba(0,0,0,.28); }
.tr-toast[hidden] { display: none; }
html.tr-busy::before { content: ""; position: fixed; top: 0; left: 0; height: 3px; width: var(--tr-p, 5%); background: linear-gradient(90deg, #D9531E, #F2C14E); z-index: 5000; transition: width .3s; }
body > .skiptranslate, iframe.skiptranslate, .goog-te-banner-frame, .VIpgJd-ZVi9od-ORHb-OEVmcd, .VIpgJd-ZVi9od-aZ2wEe-wOHMyf, .VIpgJd-yAWNEb-L7lbkb, #goog-gt-tt, .goog-tooltip { display: none !important; visibility: hidden !important; }
html.translated-ltr, html.translated-rtl, body { margin-top: 0 !important; top: 0 !important; }
.VIpgJd-yAWNEb-VIpgJd-fmcmS-sn54Q, .goog-text-highlight { background: none !important; box-shadow: none !important; }
#google_translate_element { position: fixed !important; left: -9999px !important; top: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
/* ---------- header login / account ---------- */
.hdr-account { position: relative; flex: none; display: inline-flex; align-items: center; gap: 6px; margin-left: 10px; height: 40px; min-width: 40px; padding: 0 9px; border-radius: 999px; border: 1px solid var(--line); background: #fff; color: var(--navy); font-weight: 700; font-size: .82rem; text-decoration: none; transition: .2s; }
a.hdr-account:hover { border-color: var(--saffron); color: var(--saffron-dark); text-decoration: none; box-shadow: 0 4px 12px rgba(217,83,30,.15); }
a.hdr-account .ha-lbl { display: none; }
@media (min-width: 1680px) { a.hdr-account { padding: 0 14px 0 10px; } a.hdr-account .ha-lbl { display: inline; } }
details.hdr-account { padding: 0; border: 0; background: none; }
details.hdr-account > summary { list-style: none; cursor: pointer; display: block; border-radius: 50%; }
details.hdr-account > summary::-webkit-details-marker { display: none; }
details.hdr-account > summary img, .ha-ini { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; display: grid; place-items: center; }
.ha-ini { background: var(--navy); color: #fff; font-weight: 800; font-size: 1rem; box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--saffron); }
details.hdr-account[open] > summary .ha-ini { background: var(--saffron); }
.ha-menu { position: absolute; right: 0; top: 50px; min-width: 270px; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 18px 40px rgba(16,36,59,.18); padding: 8px; z-index: 1400; }
.ha-who { padding: 8px 10px 10px; border-bottom: 1px solid var(--line); margin-bottom: 6px; }
.ha-who b { display: block; color: var(--navy); font-size: .92rem; } .ha-who small { color: var(--muted); font-size: .76rem; }
.ha-menu a, .ha-menu button { display: flex; align-items: baseline; gap: 6px; width: 100%; padding: 9px 10px; border-radius: 9px; color: var(--navy); font: inherit; font-size: .9rem; font-weight: 600; text-decoration: none; background: none; border: 0; cursor: pointer; text-align: left; }
.ha-menu a small, .ha-menu button small { color: var(--muted); font-weight: 500; font-size: .74rem; }
.ha-menu a:hover, .ha-menu button:hover { background: var(--paper); text-decoration: none; }
.ha-menu form { margin: 0; }
@media (max-width: 1279px) {
  .hdr-account { order: 2; margin-left: auto; margin-right: 6px; }
  .site-header .container.nav > .header-tools + .hdr-account { margin-left: auto; }
}
@media (max-width: 420px) { .hdr-account { height: 36px; min-width: 36px; padding: 0 7px; } details.hdr-account > summary img, .ha-ini { width: 36px; height: 36px; } }
/* header fits brand + menu + language + login on every desktop width */
.site-header .container.nav { max-width: 1640px; }
@media (min-width: 1280px) and (max-width: 1439px) {
  .site-header .container.nav { gap: 8px; }
  .site-header .logo-wrap.is-emblem { width: 48px; height: 48px; }
  .site-header .brand { padding-right: 4px; gap: 8px; }
  .header-tools .lang-switch button { padding: 6px 7px; }
  .nav-links .cta-link { padding: 8px 10px !important; }
  .hdr-account { margin-left: 6px; height: 38px; min-width: 38px; padding: 0 7px; }
}
@media (min-width: 1280px) and (max-width: 1365px) {
  .nav-links a { font-size: .82rem !important; padding: 8px 5px !important; }
}
.ha-menu a, .ha-menu button { white-space: nowrap; }
/* hero slider on small phones: never wider than the screen (grid items default to min-content width) */
.hs-track { grid-template-columns: minmax(0, 1fr); }
.hs-slide, .hs-content { min-width: 0; }
.hs-content .bn-cd { flex-wrap: wrap; row-gap: 6px; }
.hs-btns .btn { white-space: normal; text-align: center; }
/* small phones: grids must not be pushed wider than the screen by long labels */
@media (max-width: 1000px) { .featured { grid-template-columns: minmax(0, 1fr); } }
.featured > *, .post-grid > *, .nhub-pane > *, .nhub-body > * { min-width: 0; }
.featured .ribbon { max-width: 100%; white-space: normal; }
/* long Tamil words in card headings may break instead of pushing past the edge on small phones */
@media (max-width: 480px) {
  .featured .body { padding: 18px; }
  h1, h2, h3, h4, .hs-title, .featured h2 a, .card h3, .bn-inline h3 { overflow-wrap: anywhere; }
}
/* category tiles: icon sits above the name (never on top of long Tamil names) */
.cat-tile { justify-content: space-between; }
.ct-ic { position: static; align-self: flex-start; font-size: 2rem; line-height: 1; margin-bottom: 10px; }
@media (max-width: 640px) { .ct-ic { font-size: 1.6rem; margin-bottom: 8px; } .ct-name { font-size: .92rem; } }
/* impact numbers: 2 × 2 on phones instead of one long column */
@media (max-width: 640px) {
  .impact .stats, .stats { grid-template-columns: 1fr 1fr !important; }
  .impact .stat, .stat { border-right: 0 !important; border-bottom: 1px solid rgba(255,255,255,.12) !important; padding: 16px 8px !important; }
  .impact .stat:nth-child(odd), .stat:nth-child(odd) { border-right: 1px solid rgba(255,255,255,.12) !important; }
  .impact .stat:nth-last-child(-n+2):nth-child(odd), .impact .stat:nth-last-child(-n+2):nth-child(odd) ~ .stat { border-bottom: 0 !important; }
  .stat .n { font-size: 2rem; } .stat .l { font-size: .8rem; }
}
/* article / event / directory detail pages: the text column may shrink to the phone width (long words wrap) */
.article-wrap { grid-template-columns: minmax(0, 1fr) 320px; }
@media (max-width: 1000px) { .article-wrap { grid-template-columns: minmax(0, 1fr); } }
.article-wrap > *, .split > *, .footer-grid > *, .events-list > *, .dir-grid > *, .home-cards > *, .post-grid > *, .form-grid > * { min-width: 0; }
.prose, .article-wrap article, .article-wrap aside { overflow-wrap: break-word; }
.prose img, .prose iframe, .prose video, .prose table { max-width: 100%; }
.prose table { display: block; overflow-x: auto; }
/* very small phones (≤ 360 px): nothing may push past the screen edge */
.mini > *, .nhub-list a > *, .points li, .qlinks > *, .bn-mbar > * { min-width: 0; }
.mini > div, .nli-t, .points li { overflow-wrap: break-word; }
@media (max-width: 560px) { .qlinks, .ql-c5, .ql-c6, .ql-c8 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .ql-t { overflow-wrap: anywhere; } }
@media (max-width: 400px) { .points li { padding: 12px 12px 12px 54px; } .points li::before { left: 10px; } }
@media (max-width: 360px) {
  .site-header .container.nav { gap: 6px; padding-left: 12px; padding-right: 12px; }
  .site-header .brand { gap: 6px; }
  .site-header .bw { font-size: .78rem; }
  .hdr-account { margin-right: 2px; }
  .nav-toggle { width: 40px; }
  .bn-mbar-t { display: none; }
  .bn-mbar-btns { flex: 1; }
  .bn-mbar-btns .btn { flex: 1; justify-content: center; }
}
@media (max-width: 330px) { .site-header .brand-word { display: none; } }
/* ---------- outline buttons: text always readable (normal + hover) ----------
   Context rules made the text white; the generic hover made the background white → invisible text. */
.btn.btn-outline:hover, .btn.btn-outline:focus-visible { background: #fff !important; color: var(--navy) !important; border-color: #fff !important; }
.bn-light .btn-outline, .bn-pop-body .bn-btns .btn-outline { color: var(--navy); border-color: rgba(16,36,59,.35); }
.btn.btn-outline.btn-dark:hover, .btn.btn-outline.btn-dark:focus-visible,
.bn-light .btn.btn-outline:hover, .bn-light .btn.btn-outline:focus-visible,
.bn-popup.bn-light .btn.btn-outline:hover { background: var(--navy) !important; color: #fff !important; border-color: var(--navy) !important; }
.btn-ghost:hover, .btn-ghost:focus-visible { color: var(--navy) !important; }
/* article sidebar: cards no longer pile on top of each other while scrolling — only the last one stays pinned */
.article-wrap aside .side-card { position: static; margin-bottom: 18px; }
@media (min-width: 1001px) { .article-wrap aside .side-card:last-child { position: sticky; top: 96px; } }

/* ===== v3.8 colour check (2026-10-01): text must never blend into its background ===== */
.cdown .eyebrow, .card-navy .eyebrow, .bn-navy .eyebrow, .bn-green .eyebrow, .bn-saffron .eyebrow, .bn-gradient .eyebrow, .ev-hero .eyebrow { color: var(--gold); }
.cdown .eyebrow::before, .card-navy .eyebrow::before { background: var(--gold); }
.tagpill:hover, .tagpill:focus-visible { color: var(--saffron-dark); background: var(--saffron-soft); text-decoration: none; }
.auth-lang { align-self: flex-end; margin: -10px 0 -6px; }
