/* URBMS 2026 visual refresh: shared premium, responsive presentation layer */
:root {
    --urbms-navy: hsl(210 70% 25%);
    --urbms-gold: hsl(45 95% 60%);
    --urbms-gold-deep: hsl(43 85% 48%);
    --urbms-sky: hsl(210 50% 94%);
    --urbms-line: hsl(210 45% 85%);
    --urbms-shadow: 0 14px 36px rgba(12, 52, 85, 0.10);
}

html { scroll-behavior: smooth; }

body {
    background: linear-gradient(180deg, #f8fbfd 0, #ffffff 34rem) !important;
    letter-spacing: 0.01em;
}

.container { max-width: 1240px !important; }

.top-navbar {
    border-bottom: 1px solid rgba(12, 52, 85, 0.12);
}

.main-navbar {
    position: sticky;
    top: 0;
    z-index: 1000;
    padding: 0.8rem 0 !important;
    background: rgba(255, 255, 255, 0.96) !important;
    backdrop-filter: blur(14px);
    box-shadow: 0 5px 22px rgba(12, 52, 85, 0.08) !important;
}

.logo-section { gap: 0.8rem !important; }

.logo {
    box-shadow: 0 5px 14px rgba(12, 52, 85, 0.18) !important;
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.logo-section:hover .logo {
    transform: rotate(-4deg) scale(1.04);
    box-shadow: 0 8px 18px rgba(12, 52, 85, 0.24) !important;
}

.company-name {
    letter-spacing: 0.08em;
    font-size: clamp(1.45rem, 2.3vw, 2rem) !important;
}

.nav-section { gap: 0.25rem !important; }

.nav-button {
    border-radius: 999px !important;
    font-weight: 650 !important;
    transition: color 180ms ease, background-color 180ms ease, transform 180ms ease !important;
}

.nav-button:hover { transform: translateY(-1px); }

.nav-button.active {
    color: var(--urbms-navy) !important;
    background: hsl(45 95% 60% / 0.27) !important;
    border-bottom: 0 !important;
}

.donate-button {
    border: 1px solid hsl(43 85% 48% / 0.35) !important;
    box-shadow: 0 4px 10px rgba(160, 113, 0, 0.16) !important;
}

.page-header {
    background: linear-gradient(135deg, var(--urbms-navy), hsl(210 62% 34%)) !important;
    padding: clamp(2.5rem, 5vw, 4.5rem) 0 !important;
    position: relative;
    overflow: hidden;
}

.page-header::after {
    content: "";
    position: absolute;
    width: clamp(11rem, 20vw, 17rem);
    height: clamp(11rem, 20vw, 17rem);
    right: clamp(1rem, 8vw, 7rem);
    top: 50%;
    transform: translateY(-50%);
    border-radius: 50%;
    opacity: 0.62;
    background:
        radial-gradient(circle, hsl(45 95% 60% / 0.86) 0 5%, transparent 5.5%),
        repeating-conic-gradient(from 0deg, hsl(45 95% 60% / 0.72) 0 4deg, transparent 4deg 12deg);
    -webkit-mask: radial-gradient(circle, transparent 0 18%, #000 18.5% 28%, transparent 28.5% 34%, #000 34.5% 62%, transparent 62.5% 68%, #000 68.5% 78%, transparent 78.5%);
    mask: radial-gradient(circle, transparent 0 18%, #000 18.5% 28%, transparent 28.5% 34%, #000 34.5% 62%, transparent 62.5% 68%, #000 68.5% 78%, transparent 78.5%);
    animation: rangoliGlow 7s ease-in-out infinite alternate;
}

@keyframes rangoliGlow {
    from { opacity: 0.43; rotate: -5deg; }
    to { opacity: 0.75; rotate: 5deg; }
}

.page-header .container { position: relative; z-index: 1; }

.page-header h1 { letter-spacing: -0.025em; }

.about-section, .key-initiatives-section, .contact-form-section,
.contact-info-section, .donate-section, .events-section, .gallery-section,
.membership-intro, .membership-table-section, .president-section,
.sponsorship-section, .team-info {
    border: 1px solid var(--urbms-line) !important;
    border-radius: 1rem !important;
    box-shadow: var(--urbms-shadow) !important;
}

.initiative-card, .contact-card, .member-card, .gallery-item, .card {
    border: 1px solid var(--urbms-line) !important;
    border-radius: 0.85rem !important;
    box-shadow: 0 7px 18px rgba(12, 52, 85, 0.08) !important;
    overflow: hidden;
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.initiative-card:hover, .contact-card:hover, .member-card:hover, .gallery-item:hover, .card:hover {
    transform: translateY(-4px);
    box-shadow: var(--urbms-shadow) !important;
}

.events-section h2, .events-section h3, .events-section h4,
.about-section h2, .key-initiatives-section h2, .membership-table-section h3,
.sponsorship-section h2, .team-title {
    letter-spacing: -0.02em;
}

.event-button, .contact-secretary-btn, .past-bearers-btn, .gallery-button,
.sponsorship-button, .language-toggle button {
    border-radius: 0.65rem !important;
    border: 1px solid hsl(43 85% 48% / 0.42) !important;
    box-shadow: 0 4px 10px rgba(160, 113, 0, 0.12);
}

.event-button {
    min-height: 3.25rem;
    font-weight: 700 !important;
}

.event-button:hover { transform: translateY(-2px); }

.membership-table {
    border: 1px solid var(--urbms-line);
    border-radius: 0.85rem !important;
    overflow: hidden;
}

.membership-table td strong {
    display: inline-block;
    padding: 0.2rem 0.65rem;
    border: 1px solid hsl(43 85% 48% / 0.6);
    border-radius: 999px;
    background: hsl(45 95% 60% / 0.16);
}

.footer {
    background: linear-gradient(135deg, hsl(210 70% 19%), hsl(210 70% 25%)) !important;
    margin-top: clamp(3rem, 7vw, 6rem) !important;
}

.urbms-menu-toggle {
    display: none;
    border: 1px solid var(--urbms-line);
    border-radius: 0.6rem;
    background: white;
    color: var(--urbms-navy);
    width: 2.75rem;
    height: 2.75rem;
    font-size: 1.1rem;
    cursor: pointer;
}

@media (max-width: 900px) {
    .main-navbar-content {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        min-height: 3.75rem;
    }

    .urbms-menu-toggle { display: inline-grid; place-items: center; }

    .nav-section {
        display: none !important;
        position: absolute;
        top: calc(100% + 0.55rem);
        right: 1rem;
        width: min(22rem, calc(100vw - 2rem));
        padding: 0.75rem;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.2rem !important;
        background: white;
        border: 1px solid var(--urbms-line);
        border-radius: 0.85rem;
        box-shadow: 0 18px 38px rgba(12, 52, 85, 0.18);
    }

    .nav-section.is-open { display: flex !important; }
    .nav-button, .dropdown { width: 100%; text-align: left; }
    .nav-button { padding: 0.72rem 0.9rem !important; }
    .donate-button { text-align: center; margin-top: 0.35rem; }
    .dropdown-content { position: static !important; box-shadow: none !important; border: 0 !important; width: 100% !important; }
    .dropdown.open .dropdown-content { display: block !important; }
    .dropdown-item { padding: 0.65rem 1rem !important; }
    .top-navbar-content { justify-content: center !important; }
    .events-section, .gallery-section, .about-section, .key-initiatives-section,
    .contact-form-section, .contact-info-section, .donate-section,
    .membership-intro, .membership-table-section, .president-section,
    .sponsorship-section, .team-info { border-radius: 0.8rem !important; }
}

@media (max-width: 600px) {
    .container { padding-left: 0.9rem !important; padding-right: 0.9rem !important; }
    .top-navbar { padding: 0.65rem 0 !important; }
    .top-navbar-content, .contact-info, .contact-info-top { align-items: center !important; text-align: center; }
    .contact-info, .contact-info-top { gap: 0.25rem !important; }
    .social-icons { justify-content: center; flex-wrap: wrap; }
    .logo-section { gap: 0.55rem !important; }
    .logo { width: 3.1rem !important; height: 3.1rem !important; }
    .company-name { font-size: 1.35rem !important; }
    .page-header { padding: 2.4rem 0 !important; }
    .page-header::after { width: 12rem; height: 12rem; border-width: 1.25rem; right: -4rem; }
    .membership-table-section { overflow-x: auto; }
    .membership-table { min-width: 34rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; }
}

/* Heritage-inspired edition: strong editorial hierarchy without changing content. */
body::before {
    content: "";
    position: fixed;
    z-index: -1;
    inset: 0;
    pointer-events: none;
    opacity: 0.35;
    background-image: radial-gradient(circle at 12% 12%, hsl(45 95% 60% / 0.15) 0 1px, transparent 1.5px), radial-gradient(circle at 88% 32%, hsl(210 70% 25% / 0.1) 0 1px, transparent 1.5px);
    background-size: 28px 28px, 36px 36px;
}

h1, h2, h3, h4, .company-name {
    font-family: Georgia, 'Times New Roman', serif;
}

.section-eyebrow, .heritage-hero-kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.65rem;
    color: var(--urbms-gold-deep);
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.section-eyebrow::before, .section-eyebrow::after {
    content: "";
    width: 1.5rem;
    height: 1px;
    background: currentColor;
}

.about-section, .key-initiatives-section, .contact-form-section,
.donate-section, .membership-intro, .sponsorship-section {
    position: relative;
    overflow: hidden;
}

.about-section::before, .key-initiatives-section::before, .contact-form-section::before,
.donate-section::before, .membership-intro::before, .sponsorship-section::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--urbms-gold), var(--urbms-gold-deep), transparent 75%);
}

.about-section:nth-of-type(even), .gallery-section:nth-of-type(even),
.sponsorship-section:nth-of-type(even), .events-section:nth-of-type(even) {
    background-color: hsl(45 95% 60% / 0.06) !important;
}

/* Modern utility bar */
.top-navbar {
    position: relative;
    background: var(--urbms-gold) !important;
    border-bottom: 1px solid hsl(210 70% 25% / 0.22) !important;
}
.top-navbar::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 0.35rem; background: var(--urbms-gold-deep); }
.top-navbar .contact-item a, .top-navbar .contact-item-top a {
    padding: 0.3rem 0.6rem !important;
    border-radius: 999px !important;
    font-weight: 650;
}
.top-navbar .contact-item a:hover, .top-navbar .contact-item-top a:hover { background: hsl(210 70% 25% / 0.1) !important; }
.top-navbar .social-icon {
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    box-shadow: 0 2px 6px rgba(12, 52, 85, 0.13);
}
.top-navbar .brochure-btn { border-radius: 999px !important; box-shadow: 0 2px 7px rgba(12, 52, 85, 0.15); }

/* Homepage image and editorial call-to-action */
.banner-section {
    position: relative;
    margin: clamp(1rem, 2vw, 2rem) 0 clamp(2.5rem, 6vw, 5rem) !important;
    padding: 0.1rem 2.25rem;
}
.banner-section::before, .banner-section::after {
    content: "";
    position: absolute;
    z-index: 2;
    top: 1.9rem;
    bottom: 1.9rem;
    width: 0.55rem;
    border-radius: 99px;
    background: repeating-linear-gradient(180deg, hsl(105 42% 35%) 0 0.55rem, hsl(45 95% 60%) 0.55rem 0.83rem, hsl(28 94% 48%) 0.83rem 1.08rem, transparent 1.08rem 1.4rem);
    background-size: 100% 1.4rem;
    box-shadow: 0 0 0 1px hsl(43 85% 48% / 0.28), 0 3px 8px hsl(120 35% 20% / 0.15);
    animation: toranBorderFlow 3.8s linear infinite;
}
.banner-section::before { left: 0.72rem; }
.banner-section::after { right: 0.72rem; animation-direction: reverse; }
.spiritual-garland {
    display: flex;
    justify-content: space-around;
    align-items: center;
    gap: clamp(0.5rem, 2vw, 1.8rem);
    min-height: 2rem;
    padding: 0.15rem 8%;
    color: var(--urbms-gold-deep);
    overflow: hidden;
}
.spiritual-garland::before, .spiritual-garland::after {
    content: "";
    flex: 1;
    min-width: 1.5rem;
    height: 2px;
    background: repeating-linear-gradient(90deg, hsl(105 42% 35%) 0 0.45rem, hsl(45 95% 60%) 0.45rem 0.72rem, hsl(28 94% 48%) 0.72rem 0.94rem, transparent 0.94rem 1.25rem);
    background-size: 1.25rem 100%;
    animation: toranBorderFlow 3.8s linear infinite;
}
.spiritual-garland span {
    display: inline-block;
    flex: 0 0 auto;
    animation: garlandSway 3.4s ease-in-out infinite alternate;
}
.toran-leaf {
    width: 1.25rem;
    height: 1.9rem;
    border-radius: 90% 0 90% 0;
    background: linear-gradient(135deg, hsl(120 35% 28%), hsl(102 48% 43%));
    border: 1px solid hsl(120 35% 22% / 0.45);
    box-shadow: inset -3px -2px 0 hsl(72 55% 60% / 0.18), 0 3px 7px hsl(120 35% 20% / 0.16);
    rotate: 45deg;
}
.toran-flower {
    width: 1.4rem;
    height: 1.4rem;
    border: 3px dotted hsl(32 92% 44%);
    border-radius: 50%;
    background: radial-gradient(circle, hsl(45 98% 60%) 0 32%, hsl(28 95% 52%) 34% 62%, hsl(45 98% 65%) 64% 100%);
    box-shadow: 0 3px 8px hsl(28 90% 40% / 0.2);
}
.toran-om {
    display: inline-grid !important;
    place-items: center;
    width: 2rem;
    height: 2rem;
    color: hsl(28 90% 38%);
    font-family: Georgia, 'Nirmala UI', serif;
    font-size: 1.35rem;
    font-weight: bold;
    border: 1px solid hsl(32 92% 44% / 0.55);
    border-radius: 50%;
    background: hsl(45 95% 60% / 0.22);
}
.toran-sacred {
    display: inline-grid !important;
    place-items: center;
    min-width: 1.7rem;
    height: 1.7rem;
    color: hsl(4 72% 35%);
    font-family: Georgia, 'Nirmala UI', serif;
    font-size: 1.05rem;
    font-weight: 800;
    border-radius: 50%;
    background: hsl(45 95% 60% / 0.18);
}
.spiritual-garland span:nth-child(2n) { animation-delay: -1.3s; }
.spiritual-garland span:nth-child(3n) { animation-delay: -2.1s; }
.garland-bottom { margin-top: 0.1rem; }
@keyframes garlandSway { from { transform: translateY(-2px) rotate(-4deg); } to { transform: translateY(3px) rotate(4deg); } }
@keyframes toranBorderFlow { from { background-position: 0 0; } to { background-position: 1.25rem 1.4rem; } }
.banner-container {
    aspect-ratio: 16 / 9 !important;
    min-height: 0;
    border: 2px solid var(--urbms-gold) !important;
    border-radius: 1rem !important;
    box-shadow: 0 14px 32px rgba(12, 52, 85, 0.13) !important;
}
.banner-container::after, .banner-container::before { display: none; }
.heritage-cta-panel {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) auto;
    align-items: end;
    gap: 2rem;
    margin: 0 0 clamp(2.5rem, 6vw, 5rem);
    padding: clamp(2rem, 5vw, 4.25rem);
    overflow: hidden;
    color: white;
    background: linear-gradient(125deg, hsl(210 70% 20%), hsl(210 70% 30%));
    border-radius: 1.1rem;
    box-shadow: 0 18px 40px rgba(12, 52, 85, 0.2);
}
.heritage-cta-panel::before, .heritage-cta-panel::after {
    content: "";
    position: absolute;
    border: 1px solid hsl(45 95% 60% / 0.55);
    border-radius: 50%;
    pointer-events: none;
}
.heritage-cta-panel::before { width: 18rem; height: 18rem; top: -11rem; right: -4rem; box-shadow: 0 0 0 1.2rem hsl(45 95% 60% / 0.12), 0 0 0 2.4rem hsl(45 95% 60% / 0.06); }
.heritage-cta-panel::after { width: 8rem; height: 8rem; bottom: -5rem; left: 46%; }
.heritage-cta-copy, .heritage-hero-actions { position: relative; z-index: 1; }
.heritage-cta-panel [hidden] { display: none !important; }
.heritage-cta-copy { max-width: 42rem; }
.heritage-cta-kannada h2, .heritage-cta-kannada p, .heritage-actions-kannada { font-family: 'Noto Sans Kannada', 'Tunga', 'Nirmala UI', sans-serif; }
.heritage-cta-kannada h2 { letter-spacing: 0; line-height: 1.2; }
.heritage-cta-copy h2 {
    margin: 0 0 1rem;
    color: white;
    font-size: clamp(2.2rem, 5vw, 4.75rem);
    line-height: 0.98;
    letter-spacing: -0.045em;
}
.heritage-cta-copy p { max-width: 34rem; margin-bottom: 0; font-size: clamp(0.98rem, 1.6vw, 1.14rem); }
.heritage-hero-kicker { color: var(--urbms-gold); }
.heritage-hero-kicker::before { content: '✦'; font-size: 1rem; }
.heritage-hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.heritage-hero-actions a { padding: 0.8rem 1.1rem; border-radius: 0.6rem; font-weight: 750; text-decoration: none; transition: transform 180ms ease, background-color 180ms ease; }
.heritage-hero-actions a:hover { transform: translateY(-2px); }
.heritage-primary-action { color: var(--urbms-navy); background: var(--urbms-gold); }
.heritage-secondary-action { color: white; border: 1px solid hsl(0 0% 100% / 0.72); background: hsl(0 0% 100% / 0.08); }
.banner-indicators { position: absolute; z-index: 4; right: 1.5rem; bottom: 1.5rem; display: flex; gap: 0.5rem; }
.banner-indicator { width: 0.65rem; height: 0.65rem; padding: 0; border: 1px solid white; border-radius: 99px; background: transparent; opacity: 0.65; cursor: pointer; transition: width 180ms ease, background-color 180ms ease, opacity 180ms ease; }
.banner-indicator.active { width: 2rem; background: var(--urbms-gold); border-color: var(--urbms-gold); opacity: 1; }

/* Membership as a considered collection rather than a plain data table. */
.membership-collection-intro { max-width: 38rem; margin: -0.5rem auto 1.5rem; text-align: center; }
.membership-table tr { transition: transform 180ms ease, background-color 180ms ease; }
.membership-table tbody tr:hover { transform: scale(1.012); }
.membership-table tbody tr { background: linear-gradient(90deg, hsl(45 95% 60% / 0.18), transparent) !important; }
.membership-table td:first-child { font-family: Georgia, 'Times New Roman', serif; font-size: 1.15rem; }
.membership-call-to-action { border-top: 5px solid var(--urbms-gold) !important; }

/* Events become a cultural timeline; programmes read as feature tiles. */
.button-grid-container { position: relative; gap: 0.8rem !important; }
.button-grid-container::before { content: ""; position: absolute; left: 1.2rem; top: 1rem; bottom: 1rem; width: 1px; background: var(--urbms-line); }
.event-button { position: relative; text-align: left !important; padding-left: 3.25rem !important; background: white !important; }
.event-button::before { content: ""; position: absolute; left: 0.85rem; top: 50%; width: 0.7rem; height: 0.7rem; transform: translateY(-50%); border: 3px solid var(--urbms-gold-deep); border-radius: 50%; background: white; z-index: 1; }
.events-content .event-button { background: var(--urbms-gold) !important; }
.text-content ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.8rem; list-style: none; counter-reset: flagship; padding: 0; }
.text-content ol li { counter-increment: flagship; min-height: 5.4rem; padding: 1rem 1rem 1rem 4rem; position: relative; display: flex; align-items: center; border: 1px solid var(--urbms-line); border-radius: 0.75rem; background: white; box-shadow: 0 5px 13px rgba(12, 52, 85, 0.06); }
.text-content ol li::before { content: counter(flagship, decimal-leading-zero); position: absolute; left: 1rem; color: var(--urbms-gold-deep); font-family: Georgia, serif; font-size: 1.2rem; font-weight: bold; }

/* Editorial masonry gallery: original images and captions remain untouched. */
.gallery-grid { columns: 3 15rem; column-gap: 1rem; display: block !important; }
.gallery-grid .gallery-item { display: inline-block; width: 100%; margin: 0 0 1rem; break-inside: avoid; background: white; }
.gallery-grid .gallery-item img { width: 100%; height: auto; aspect-ratio: auto !important; display: block; filter: saturate(0.92) contrast(1.04); transition: transform 400ms ease, filter 400ms ease; }
.gallery-grid .gallery-item:hover img { transform: scale(1.045); filter: saturate(1.1) contrast(1.04); }
.gallery-grid .gallery-item p { margin: 0; padding: 0.8rem 0.9rem 1rem; font-size: 0.9rem; line-height: 1.45; }

@media (max-width: 700px) {
    .banner-container { min-height: 0; aspect-ratio: 16 / 9 !important; }
    .banner-section { padding-left: 1.55rem; padding-right: 1.55rem; }
    .banner-section::before { left: 0.42rem; }
    .banner-section::after { right: 0.42rem; }
    .heritage-cta-panel { grid-template-columns: 1fr; gap: 1.5rem; padding: 2rem 1.4rem; }
    .heritage-cta-copy h2 { font-size: clamp(2.2rem, 11vw, 3.25rem); }
    .heritage-hero-actions { display: grid; grid-template-columns: 1fr; }
    .heritage-hero-actions a { text-align: center; min-height: 3rem; }
    .banner-indicators { right: 1rem; bottom: 0.8rem; }
    .button-grid-container { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 0.5rem; }
    .button-grid-container::before { display: none; }
    .event-button { flex: 0 0 min(17rem, 82vw); scroll-snap-align: start; }
    .text-content ol { grid-template-columns: 1fr; }
    .gallery-grid { columns: 2 9rem; column-gap: 0.7rem; }
}

/* iPhone and other compact mobile screens */
@media (max-width: 430px) {
    html, body { overflow-x: hidden; }
    body { padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }
    .top-navbar { padding-top: max(0.55rem, env(safe-area-inset-top)) !important; }
    .top-navbar .contact-info, .top-navbar .contact-info-top { width: 100%; }
    .top-navbar .contact-item a, .top-navbar .contact-item-top a { min-height: 2.25rem; font-size: 0.78rem; }
    .top-navbar .social-icons { gap: 0.35rem !important; }
    .top-navbar .social-icon { width: 1.7rem; height: 1.7rem; }
    .main-navbar { top: 0; }
    .main-navbar-content { gap: 0.5rem !important; }
    .company-name { letter-spacing: 0.045em; }
    .urbms-menu-toggle { width: 2.9rem; height: 2.9rem; }
    .nav-section { right: max(0.75rem, env(safe-area-inset-right)); width: min(22rem, calc(100vw - 1.5rem - env(safe-area-inset-left) - env(safe-area-inset-right))); }
    .banner-section { margin-top: 0.75rem !important; padding-left: 1.3rem; padding-right: 1.3rem; }
    .banner-section::before, .banner-section::after { top: 1.75rem; bottom: 1.75rem; width: 0.42rem; }
    .spiritual-garland { min-height: 1.8rem; padding: 0.1rem 4%; gap: 0.35rem; }
    .spiritual-garland::before, .spiritual-garland::after { min-width: 0.8rem; }
    .toran-leaf { width: 0.95rem; height: 1.45rem; }
    .toran-flower { width: 1.1rem; height: 1.1rem; }
    .toran-om { width: 1.7rem; height: 1.7rem; font-size: 1.15rem; }
    .toran-sacred { min-width: 1.35rem; height: 1.35rem; font-size: 0.85rem; }
    .heritage-cta-panel { margin-bottom: 2.75rem; }
    .heritage-cta-copy h2 { font-size: clamp(2rem, 10.5vw, 2.65rem); }
    .heritage-hero-actions a { display: flex; align-items: center; justify-content: center; min-height: 3.25rem; }
    .events-section, .gallery-section, .about-section, .membership-intro, .membership-table-section { padding-left: 1rem !important; padding-right: 1rem !important; }
}

@media (prefers-reduced-motion: reduce) {
    .spiritual-garland span { animation: none; }
}

/* Cross-page responsive safety layer: phones from 320px through large mobile screens. */
img, video, iframe { max-width: 100%; }

/* The original Events mobile rules reduce this padding; retain a dedicated number column. */
.events-content .text-content ol {
    list-style: none !important;
    padding-left: 0 !important;
}
.events-content .text-content ol li {
    display: flex !important;
    align-items: center !important;
    min-width: 0;
    padding: 1rem 1rem 1rem 4.25rem !important;
    margin-bottom: 0 !important;
}
.events-content .text-content ol li::before {
    left: 1.15rem !important;
    width: 2rem;
    text-align: center;
    line-height: 1;
}

@media (max-width: 768px) {
    html, body { max-width: 100%; overflow-x: hidden; }
    .container { width: 100%; }
    .page-header h1 { font-size: clamp(1.8rem, 8vw, 2.45rem) !important; }
    .page-header p { font-size: 0.95rem !important; }
    .page-header .breadcrumb { flex-wrap: wrap; justify-content: center; }

    .about-content, .contact-content, .membership-content, .sponsorship-content,
    .team-section, .donate-content {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 1.25rem !important;
    }

    .initiatives-grid, .contact-details-grid, .team-categories, .team-images {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 1rem !important;
    }

    .about-section, .key-initiatives-section, .contact-form-section,
    .contact-info-section, .donate-section, .events-section, .gallery-section,
    .membership-intro, .membership-table-section, .president-section,
    .sponsorship-section, .team-info {
        min-width: 0;
        padding: clamp(1rem, 4vw, 1.5rem) !important;
    }

    .contact-form input, .contact-form textarea, .contact-form select,
    input, textarea, select { max-width: 100%; min-width: 0; }
    .calendar-iframe { height: min(70vh, 34rem) !important; min-height: 26rem; }
    .map-iframe { min-height: 18rem; }
    .member-card, .initiative-card, .contact-card, .gallery-item { min-width: 0; }
    .member-image, .gallery-item img { max-width: 100%; }

    .events-content .text-content ol { grid-template-columns: minmax(0, 1fr) !important; }
    .events-content .text-content ol li { padding-left: 4rem !important; }
    .events-content .text-content ul li { padding-left: 1.75rem !important; }
}

@media (max-width: 480px) {
    .page-header { padding: 2rem 0 !important; }
    .page-header::after { width: 9rem; height: 9rem; right: -1.25rem; opacity: 0.35; }
    .top-navbar .contact-item span, .top-navbar .contact-item-top span { overflow-wrap: anywhere; }
    .social-icons { max-width: 100%; }
    .events-content .text-content ol li {
        min-height: 4.75rem;
        padding: 0.8rem 0.75rem 0.8rem 3.65rem !important;
        font-size: 0.9rem !important;
    }
    .events-content .text-content ol li::before { left: 0.85rem !important; font-size: 1rem !important; }
    .events-content .text-content ul li { padding-left: 1.6rem !important; }
    .gallery-grid { columns: 2 7.5rem !important; }
    .gallery-grid .gallery-item p { font-size: 0.8rem !important; }
    .membership-table { min-width: 31rem; }
}

@media (max-width: 340px) {
    .company-name { font-size: 1.15rem !important; }
    .logo { width: 2.75rem !important; height: 2.75rem !important; }
    .top-navbar .contact-item a, .top-navbar .contact-item-top a { font-size: 0.72rem !important; }
    .events-content .text-content ol li { padding-left: 3.35rem !important; }
    .events-content .text-content ol li::before { left: 0.62rem !important; }
}

/* Stakeholder refinement pass */
.company-name {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 0.9;
}
.company-name::after {
    content: '🔱';
    margin-top: 0.12rem;
    margin-left: 0.18rem;
    font-family: 'Nirmala UI', serif;
    font-size: 0.82rem;
    line-height: 1;
    filter: saturate(0.9);
}

/* Framed navigation, retaining Donate as the distinct primary action. */
.nav-section .nav-button:not(.donate-button), .nav-section .dropdown > .nav-button,
.nav-section .dropdown-content .dropdown-item {
    position: relative;
    border: 1px solid hsl(43 85% 48% / 0.42) !important;
    background: hsl(45 95% 60% / 0.16) !important;
    color: var(--urbms-navy) !important;
}
.nav-section .nav-button:not(.donate-button):hover, .nav-section .dropdown > .nav-button:hover,
.nav-section .dropdown-content .dropdown-item:hover {
    background: hsl(45 95% 60% / 0.28) !important;
    color: var(--urbms-navy) !important;
}
.nav-section .nav-button.active:not(.donate-button), .nav-section .dropdown-content .dropdown-item.active {
    transform: scale(1.08);
    box-shadow: 0 4px 11px hsl(43 85% 48% / 0.2);
    background: hsl(45 95% 60% / 0.32) !important;
}
.nav-section .nav-button.active:not(.donate-button)::after, .nav-section .dropdown-content .dropdown-item.active::after {
    content: '';
    position: absolute;
    inset-block-start: 0.33rem;
    inset-inline-end: 0.38rem;
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 50%;
    background: hsl(114 42% 36%);
    box-shadow: 0 0 0 2px white;
}
.nav-section .donate-button:hover, .top-navbar .brochure-btn:hover {
    color: white !important;
    background: var(--urbms-navy) !important;
    transform: translateY(-2px) scale(1.03) !important;
}
.top-navbar .social-icon:hover {
    background: var(--urbms-navy) !important;
    color: white !important;
    transform: scale(1.13) !important;
}
.top-navbar .social-icon { width: 2.05rem; height: 2.05rem; }

/* Compact rangoli page banners on desktop, with full width retained on phones. */
.page-header {
    width: min(70%, 66rem);
    margin: 1rem auto 1.35rem;
    border-radius: 1rem;
    box-shadow: 0 12px 28px hsl(210 70% 20% / 0.16);
}

/* Team page: balanced columns and a respectful memorial frame. */
body[data-urbms-page='team'] .team-section {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    align-items: stretch !important;
    gap: 2rem !important;
}
body[data-urbms-page='team'] .team-images {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-content: start;
    gap: 0.9rem !important;
    padding: 1rem;
    border: 5px solid hsl(43 85% 48%) !important;
    border-radius: 1rem;
    background: hsl(45 95% 60% / 0.06);
    box-shadow: var(--urbms-shadow);
}
.memorial-heading {
    grid-column: 1 / -1;
    margin: 0 0 0.15rem !important;
    padding-bottom: 0.7rem;
    text-align: center;
    color: var(--urbms-navy) !important;
    border-bottom: 1px solid hsl(43 85% 48% / 0.42);
    font-size: clamp(1rem, 1.6vw, 1.3rem) !important;
    letter-spacing: 0.06em;
}
body[data-urbms-page='team'] .team-info { height: 100%; padding: clamp(1.4rem, 3vw, 2.25rem) !important; }
body[data-urbms-page='team'] .member-card { border-radius: 0.65rem !important; }
body[data-urbms-page='team'] .member-image { height: clamp(11rem, 18vw, 16rem) !important; }
body[data-urbms-page='team'] .team-category:first-child ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1.25rem;
    row-gap: 0.45rem;
}
body[data-urbms-page='team'] .team-category li {
    position: relative;
    font-size: 1rem !important;
    line-height: 1.5;
    padding-left: 18px;
}

body[data-urbms-page='team'] .team-category li::before {
    position: absolute;
    left: 0;
    top: 0.1em;
}

/* About and gallery corrections. */
body[data-urbms-page='aboutus'] .about-section:first-child h2 {
    font-size: clamp(1.45rem, 2.25vw, 2.05rem) !important;
    white-space: nowrap;
}
body[data-urbms-page='gallery'] .gallery-grid .gallery-item img {
    height: 17rem !important;
    object-fit: cover !important;
}
body[data-urbms-page='gallery'] .gallery-button-section { padding: 0.75rem 0 1.1rem !important; }
body[data-urbms-page='gallery'] .gallery-content { gap: 1.25rem !important; }
body[data-urbms-page='events'] .text-content ol li strong { display: inline !important; white-space: normal !important; }

/* Donation banner shrinks to its actual image instead of leaving an empty framed area. */
body[data-urbms-page='donate'] .banner-section { text-align: center; }
body[data-urbms-page='donate'] .banner-container:has(#staticBanner) {
    width: fit-content !important;
    max-width: 100%;
    aspect-ratio: auto !important;
    margin-inline: auto;
}
body[data-urbms-page='donate'] #staticBanner img {
    display: block;
    width: auto !important;
    max-width: 100%;
    height: auto !important;
    padding: 0 !important;
}

/* Reduce accumulated whitespace without flattening the visual hierarchy. */
.about-content, .gallery-content, .events-content, .membership-content,
.contact-content, .donate-content, .sponsorship-content, .president-note-content {
    padding-top: clamp(1.5rem, 3vw, 2.5rem) !important;
    padding-bottom: clamp(1.5rem, 3vw, 2.5rem) !important;
}
.about-content, .gallery-content { gap: clamp(1.25rem, 2.5vw, 2rem) !important; }
.footer { margin-top: clamp(2rem, 4vw, 3.5rem) !important; }

@media (max-width: 900px) {
    .page-header { width: min(92%, 44rem); margin-top: 0.75rem; margin-bottom: 1rem; }
    body[data-urbms-page='team'] .team-section { grid-template-columns: 1fr !important; }
    body[data-urbms-page='team'] .team-info { height: auto; }
}

@media (max-width: 600px) {
    .company-name::after { font-size: 0.7rem; }
    .page-header { width: calc(100% - 1.5rem); border-radius: 0.75rem; }
    body[data-urbms-page='aboutus'] .about-section:first-child h2 { white-space: normal; }
    body[data-urbms-page='team'] .team-images { padding: 0.7rem; border-width: 4px !important; }
    body[data-urbms-page='team'] .team-category:first-child ul { grid-template-columns: 1fr; }
    body[data-urbms-page='team'] .member-image { height: 10rem !important; }
    body[data-urbms-page='gallery'] .gallery-grid .gallery-item img { height: 10rem !important; }
    body[data-urbms-page='donate'] .banner-container:has(#staticBanner) { width: 100% !important; }
    body[data-urbms-page='donate'] #staticBanner img { width: 100% !important; }
}

/* Final visual adjustments */
.company-name::after {
    content: '';
    display: block;
    width: min(100%, 9rem);
    height: 0.32rem;
    margin-top: 0.18rem;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent 0%, var(--urbms-gold-deep) 18%, var(--urbms-gold-deep) 82%, transparent 100%);
    box-shadow: 0 0 0 1px hsl(45 95% 60% / 0.18);
}

.heritage-cta-copy h2 { font-size: clamp(2.15rem, 4.5vw, 4.25rem); }
.heritage-cta-copy p strong { color: var(--urbms-gold); font-weight: 750; }
.heritage-cta-kannada h2 {
    font-size: clamp(1.55rem, 3.15vw, 2.9rem);
    line-height: 1.3;
}
.heritage-cta-kannada p { font-size: clamp(0.92rem, 1.35vw, 1.05rem); }

/* Full-width but shorter rangoli headers. */
.page-header {
    width: 100%;
    max-width: none;
    margin: 0 0 1rem;
    border-radius: 0;
    padding: clamp(1.65rem, 3.25vw, 2.85rem) 0 !important;
}
.page-header::after { right: clamp(1.2rem, 7vw, 7rem); }

/* Keep all Chief Guest portraits inside uniform frames without cropping faces. */
body[data-urbms-page='gallery'] .gallery-grid .gallery-item img {
    height: 17rem !important;
    object-fit: contain !important;
    background: hsl(210 50% 96%);
}
.visual-chronicles-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.25rem;
}
.visual-chronicles-heading h2 { margin-bottom: 0 !important; }
.visual-chronicles-heading .gallery-button {
    flex: 0 0 auto;
    margin: 0;
    padding: 0.65rem 1rem;
    font-size: 0.9rem;
}

/* Match the memorial frame on the Team information panel; keep bearer names one per line. */
body[data-urbms-page='team'] .team-info {
    border: 5px solid hsl(43 85% 48%) !important;
    border-radius: 1rem !important;
    background: hsl(45 95% 60% / 0.04);
}
body[data-urbms-page='team'] .team-category:first-child ul { grid-template-columns: 1fr !important; }

/* A restrained decorative curve below the Annual Events heading. */
body[data-urbms-page='events'] .events-section > h2 {
    position: relative;
    display: table;
    margin-inline: auto;
    padding-bottom: 1rem;
}
body[data-urbms-page='events'] .events-section > h2::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 0.1rem;
    width: 5.8rem;
    height: 0.8rem;
    transform: translateX(-50%) rotate(-2deg);
    border-bottom: 3px solid var(--urbms-gold-deep);
    border-radius: 0 0 50% 50%;
}

@media (max-width: 600px) {
    .page-header { margin-bottom: 0.7rem; padding: 1.5rem 0 !important; }
    .heritage-cta-kannada h2 { font-size: clamp(1.4rem, 7.2vw, 2rem); line-height: 1.35; }
    .heritage-cta-kannada p { font-size: 0.9rem; }
    .visual-chronicles-heading { align-items: flex-start; flex-direction: column; gap: 0.65rem; }
    .visual-chronicles-heading .gallery-button { width: 100%; text-align: center; }
    body[data-urbms-page='gallery'] .gallery-grid .gallery-item img { height: 10rem !important; }
}

/* Ornamental brand underline, compact page banners, and final content refinements. */
.company-name::after {
    content: '';
    display: block;
    width: min(100%, 9rem);
    height: 0.32rem;
    margin: 0.18rem 0 0;
    border-radius: 999px;
    background: linear-gradient(90deg, transparent 0%, var(--urbms-gold-deep) 18%, var(--urbms-gold-deep) 82%, transparent 100%);
    box-shadow: 0 0 0 1px hsl(45 95% 60% / 0.18);
}

/* Full saffron membership fee table without a fading row treatment. */
.membership-table, .membership-table thead, .membership-table tbody,
.membership-table tr, .membership-table th, .membership-table td {
    background: hsl(45 95% 60% / 0.18) !important;
}
.membership-table th { background: hsl(45 95% 60% / 0.34) !important; }

/* Full-width page banners at 65% of their prior height, including a proportionate rangoli. */
.page-header {
    padding: clamp(1.1rem, 2.1vw, 1.85rem) 0 !important;
    margin-bottom: 0.7rem;
}
.page-header::after {
    width: clamp(7rem, 13vw, 11rem);
    height: clamp(7rem, 13vw, 11rem);
}

body[data-urbms-page='gallery'] .gallery-content > .gallery-section:nth-of-type(2) {
    border: 5px solid hsl(43 85% 48%) !important;
    background: hsl(45 95% 60% / 0.045);
}

body[data-urbms-page='team'] .container { max-width: 1440px !important; }
body[data-urbms-page='donate'] .donate-section { border: 5px solid hsl(43 85% 48%) !important; }

/* Event labels are consistently two-line; the white timeline dot turns green on hover. */
.events-content .event-button .event-label, .events-content .event-button .event-year { display: block; }
.events-content .event-button .event-label { font-weight: 750; }
.events-content .event-button .event-year { margin-top: 0.08rem; font-size: 0.86em; font-weight: 650; }
.events-content .event-button:hover::before { background: hsl(114 42% 36%) !important; }

/* A straight dark-gold underline spanning the full events title. */
body[data-urbms-page='events'] .events-section > h2 {
    display: inline-block;
    position: relative;
    padding-bottom: 0.9rem;
}
body[data-urbms-page='events'] .events-section > h2::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0.18rem;
    width: 100%;
    height: 0.38rem;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--urbms-gold-deep) 0%, var(--urbms-gold) 100%);
    box-shadow: 0 0 0 1px hsl(43 85% 48% / 0.18);
}

@media (max-width: 600px) {
    .company-name::after { min-width: 5.8rem; height: 0.75rem; }
    .page-header { padding: 1rem 0 !important; }
    .page-header::after { width: 6.5rem; height: 6.5rem; }
    body[data-urbms-page='team'] .container { max-width: 100% !important; }
    .events-content .event-button { min-height: 4.7rem; }
}
