:root { --ashram-saffron: #a95719; --ashram-cream: #fffaf0; --ashram-ink: #2f2b26; --ashram-green: #385849; --ashram-sand: #f4eadb; }
body { background: var(--ashram-cream); color: var(--ashram-ink); }
.brand, h1 { color: var(--ashram-saffron); font-family: Georgia, serif; }
.hero-section { background: linear-gradient(120deg, #fffaf0 0%, #f4eadb 100%); min-height: 52vh; display: grid; align-items: center; }
.site-header { position: relative; background: rgba(255, 255, 255, .9); border-bottom: 1px solid #eadfce; }
.site-header a:not(.brand) { color: var(--ashram-ink); text-decoration: none; }
.site-header a:not(.brand):hover { color: var(--ashram-saffron); }
.nav-menu { position: relative; min-height: 44px; display: inline-flex; align-items: center; }
.nav-menu summary { min-height: 44px; display: inline-flex; align-items: center; cursor: pointer; color: var(--ashram-ink); list-style: none; }
.nav-menu summary::-webkit-details-marker { display: none; }
.nav-menu summary::after { content: "▾"; margin-left: .3rem; font-size: .8rem; }
.nav-submenu { position: absolute; z-index: 100; top: 42px; left: 0; min-width: 170px; margin: 0; padding: .4rem; list-style: none; border: 1px solid #eadfce; border-radius: .45rem; background: #fff; box-shadow: 0 .6rem 1.4rem rgba(47, 43, 38, .12); }
.nav-submenu li { display: block; width: 100%; }
.site-nav-links .nav-submenu a { display: flex !important; width: 100%; justify-content: flex-start; padding: .45rem .6rem; border-radius: .3rem; }
.nav-submenu a:hover { background: var(--ashram-sand); }
.about-subnav { display: flex; flex-wrap: wrap; gap: .5rem; }
.about-subnav a { padding: .42rem .75rem; border: 1px solid #d7c3a9; border-radius: 2rem; color: var(--ashram-ink); background: #fff; text-decoration: none; }
.about-subnav a:hover, .about-subnav a.active { border-color: var(--ashram-saffron); background: var(--ashram-saffron); color: #fff; }
.person-photo { width: 112px; height: 112px; object-fit: cover; border-radius: 50%; border: 3px solid var(--ashram-sand); }
.language-form select { border: 1px solid #d7c3a9; border-radius: .25rem; background: white; padding: .2rem .4rem; }
.btn-spiritual { background: var(--ashram-saffron); color: #fff; }
.btn-spiritual:hover { background: #804114; color: #fff; }
.eyebrow, .card-label { color: var(--ashram-saffron); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.content-card { background: #fff; border: 1px solid #eadfce; border-radius: .6rem; }
.content-card a { color: var(--ashram-saffron); text-decoration: none; }
.reading-width { max-width: 820px; }
.page-content { font-size: 1.05rem; line-height: 1.8; }
.page-content strong, .page-content b, .page-content [style*="font-weight: bold"], .page-content [style*="font-weight: 700"] { font-weight: 700 !important; }
.page-content > :first-child { margin-top: 0; }
.page-content > :last-child { margin-bottom: 0; }
.page-content h2, .page-content h3, .page-content h4 { margin-top: 1.55em; margin-bottom: .55em; color: var(--ashram-green); font-family: Georgia, serif; line-height: 1.28; }
.page-content ul, .page-content ol { padding-left: 1.35rem; margin: 1rem 0; }
.page-content li + li { margin-top: .35rem; }
.page-content blockquote { margin: 1.4rem 0; padding: .85rem 1.1rem; border-left: 4px solid #a96c30; border-radius: 0 .45rem .45rem 0; background: #f8efdf; color: #62594f; font-family: Georgia, serif; }
.back-link { color: var(--ashram-saffron); }
.hero-title { font-size: clamp(2.3rem, 6vw, 4.5rem); line-height: 1.08; }
.hero-image-placeholder { min-height: 260px; display: grid; place-items: center; padding: 2rem; color: #6e6257; text-align: center; background: radial-gradient(circle at top left, #fff 0%, #e8d5b8 100%); border: 1px solid #ddc8aa; border-radius: 1rem; }
.hero-image-placeholder img { max-width: 100%; max-height: 250px; object-fit: contain; }
.message-panel { border-left: 4px solid var(--ashram-saffron); padding: 2rem; background: #fff; border-radius: 0 .75rem .75rem 0; }
.message-panel h2 { font-family: Georgia, serif; font-size: clamp(1.4rem, 3vw, 2rem); }
.section-heading h2, .quick-links-section h2 { font-family: Georgia, serif; color: var(--ashram-green); }
.quick-links-section { background: var(--ashram-sand); }
.quick-link { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem; border: 1px solid #dfcdb5; border-radius: .55rem; color: var(--ashram-ink); background: #fffdf9; text-decoration: none; }
.quick-link:hover { color: var(--ashram-saffron); border-color: var(--ashram-saffron); }
.quick-link small { color: #766c62; font-size: .75rem; }
.disabled-link { opacity: .76; cursor: default; }
.contact-panel { background: var(--ashram-green); color: #fff; border-radius: .6rem; }
.contact-panel .eyebrow { color: #f4d5a8; }
.history-hero { background: linear-gradient(120deg, #f4eadb, #fffaf0); }
.history-timeline { border-left: 2px solid #d7b589; margin-left: .5rem; padding-left: 1.8rem; }
.timeline-item { position: relative; padding: 0 0 2.5rem; }
.timeline-item::before { position: absolute; content: ""; width: .8rem; height: .8rem; border-radius: 50%; background: var(--ashram-saffron); left: -2.25rem; top: .35rem; }
.timeline-date { color: var(--ashram-saffron); font-weight: 700; margin-bottom: .25rem; }
.history-image { display: block; max-width: 100%; max-height: 420px; object-fit: cover; margin: 1rem 0; border-radius: .5rem; }
.events-hero { background: linear-gradient(120deg, #fffaf0, #f4eadb); }
.event-filters { display: flex; flex-wrap: wrap; gap: .5rem; }
.filter-pill { padding: .4rem .7rem; border: 1px solid #d7c3a9; border-radius: 2rem; color: var(--ashram-ink); text-decoration: none; background: #fff; }
.filter-pill:hover, .filter-pill.active { border-color: var(--ashram-saffron); background: var(--ashram-saffron); color: #fff; }
.event-image { width: 100%; height: 180px; object-fit: cover; }
.event-detail-image { width: 100%; max-height: 480px; object-fit: cover; border-radius: .6rem; margin: 1rem 0; }
.event-details-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; padding: 1rem; background: #fff; border: 1px solid #eadfce; border-radius: .6rem; }
.gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 1rem; }
.gallery-item { margin: 0; background: #fff; border: 1px solid #eadfce; border-radius: .5rem; overflow: hidden; }
.gallery-item img { display: block; width: 100%; aspect-ratio: 1 / .78; object-fit: cover; }
.gallery-item figcaption { padding: .65rem .75rem; font-size: .9rem; }
@media (max-width: 575px) { .site-header nav { justify-content: center !important; } .hero-image-placeholder { min-height: 180px; } }

/* Keyboard and screen-reader usability. */
.skip-link { position: fixed; z-index: 2000; top: .5rem; left: .5rem; transform: translateY(-160%); padding: .65rem .9rem; border-radius: .35rem; background: #2f2b26; color: #fff; text-decoration: none; }
.skip-link:focus { transform: translateY(0); color: #fff; outline: 3px solid #f4d5a8; outline-offset: 2px; }
:focus-visible { outline: 3px solid #385849; outline-offset: 3px; }
main:focus { outline: none; }
.site-nav-links a, .language-form select, .btn, .filter-pill, .quick-link { min-height: 44px; display: inline-flex; align-items: center; }
.language-form select { min-height: 40px; }
@media (max-width: 767px) {
  .site-header nav { gap: 1rem !important; }
  .site-nav-links { width: 100%; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem !important; }
  .site-nav-links a { justify-content: center; padding: .35rem .25rem; font-size: .92rem; text-align: center; }
  .nav-menu { position: static; display: block; min-height: 44px; }
  .nav-menu summary { justify-content: center; border: 1px solid #eadfce; border-radius: .3rem; }
  .nav-submenu { position: fixed !important; z-index: 500; top: var(--about-menu-top, 112px); left: .75rem; right: .75rem; min-width: 0; margin: 0; box-shadow: 0 .7rem 1.4rem rgba(47, 43, 38, .18); }
  .site-nav-links .nav-submenu a { justify-content: center; width: 100%; }
  .language-form { grid-column: span 2; text-align: center; }
  .language-form select { width: 100%; }
  .page-content { font-size: 1rem; line-height: 1.7; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Phase 41: calmer, responsive public navigation and visual rhythm. */
body { font-family: Inter, "Noto Sans Devanagari", "Nirmala UI", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.6; }
h1, h2, h3, .brand { letter-spacing: -.015em; }
.site-header { position: sticky; top: 0; z-index: 1000; background: rgba(255, 253, 249, .97); box-shadow: 0 1px 12px rgba(47, 43, 38, .05); }
.site-navigation { min-height: 72px; display: flex; align-items: center; gap: 1.25rem; justify-content: space-between; }
.brand { font-size: clamp(1.15rem, 2vw, 1.45rem); white-space: nowrap; }
.desktop-navigation { display: flex; flex: 1; min-width: 0; align-items: center; justify-content: flex-end; gap: .2rem .55rem; }
.desktop-navigation-main { display: flex; min-width: 0; flex: 1 1 auto; overflow: visible; align-items: center; justify-content: flex-start; gap: .2rem .8rem; }
.desktop-navigation-item { display: inline-flex; flex: 0 0 auto; align-items: center; }
.desktop-navigation-main > .desktop-navigation-item > a, .desktop-navigation-main > .desktop-navigation-item .nav-menu summary, .desktop-navigation .navigation-overflow > summary { font-size: .92rem; padding: .35rem .15rem; }
.desktop-navigation-tools { display: flex; flex: 0 0 auto; align-items: center; gap: .2rem .55rem; }
.desktop-navigation .language-form { margin-left: .05rem; }
.desktop-navigation .nav-menu { min-height: auto; }
.desktop-navigation .nav-menu summary { min-height: auto; }
.desktop-navigation .nav-submenu { top: 34px; }
.navigation-overflow[hidden] { display: none; }
.navigation-overflow .nav-submenu { right: 0; left: auto; min-width: 155px; }
.navigation-overflow .nav-submenu > li > a { display: flex; width: 100%; min-height: 38px; align-items: center; padding: .42rem .6rem; border-radius: .3rem; }
.navigation-overflow .nav-submenu > li > a:hover { background: var(--ashram-sand); }
.navigation-overflow .desktop-navigation-item { display: block; width: 100%; }
.navigation-overflow .desktop-navigation-item > a { display: flex; width: 100%; min-height: 38px; align-items: center; padding: .42rem .6rem; border-radius: .3rem; }
.navigation-overflow .desktop-navigation-item > a:hover { background: var(--ashram-sand); }
.more-reading-controls { margin-top: .35rem; padding: .75rem .6rem .2rem; border-top: 1px solid #eadfce; }
.more-reading-controls p { margin: 0 0 .55rem; color: #62594f; font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.mobile-navigation { display: none; }
.content-card { box-shadow: 0 3px 12px rgba(47, 43, 38, .035); }
.content-card:hover { border-color: #d7b589; }
.error-page { min-height: 58vh; display: grid; place-items: center; background: linear-gradient(135deg, #fffaf0, #f4eadb); }
.error-page .container { padding: clamp(2rem, 5vw, 4rem); border: 1px solid #e1caa8; border-radius: 1rem; background: rgba(255, 253, 249, .88); box-shadow: 0 .8rem 2rem rgba(47, 43, 38, .08); }
.error-page h1 { margin-bottom: .8rem; }
.hero-section, .history-hero, .events-hero { border-bottom: 1px solid #eadfce; }
.page-content p { margin-bottom: 1.15rem; }

@media (max-width: 1199px) {
  .site-navigation { min-height: 64px; }
  .desktop-navigation { display: none; }
  .mobile-navigation { display: block; position: static; }
  .mobile-navigation summary { display: inline-flex; min-height: 42px; align-items: center; gap: .35rem; padding: .45rem .7rem; cursor: pointer; list-style: none; border: 1px solid #d7c3a9; border-radius: .4rem; color: var(--ashram-ink); background: #fff; font-weight: 600; }
  .mobile-navigation summary::-webkit-details-marker { display: none; }
  .mobile-navigation-panel { position: fixed; z-index: 1100; top: 72px; right: .75rem; left: .75rem; max-height: calc(100vh - 88px); overflow-y: auto; padding: 1rem; border: 1px solid #eadfce; border-radius: .7rem; background: #fffdf9; box-shadow: 0 1rem 2.5rem rgba(47, 43, 38, .2); }
  .mobile-nav-group { padding: .75rem 0; border-bottom: 1px solid #eadfce; }
  .mobile-nav-group:last-of-type { border-bottom: 0; }
  .mobile-nav-group p { margin: 0 0 .4rem; color: var(--ashram-saffron); font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
  .mobile-nav-group a { display: block; padding: .42rem .2rem; color: var(--ashram-ink); text-decoration: none; }
  .mobile-nav-group .mobile-home-link { margin-bottom: .8rem; padding: .55rem .7rem; border: 1px solid #d7c3a9; border-radius: .4rem; background: #fff; color: var(--ashram-saffron); font-weight: 800; }
  .mobile-nav-group a:hover { color: var(--ashram-saffron); }
  .mobile-language-form { margin-top: .85rem; }
  .mobile-language-form select { width: 100%; }
  .mobile-logout { margin-top: .7rem; }
  .hero-section { min-height: 0; }
}

@media (max-width: 575px) {
  .site-navigation { padding-top: .55rem; padding-bottom: .55rem; }
  .mobile-navigation-panel { top: 64px; right: .5rem; left: .5rem; max-height: calc(100vh - 76px); }
  .content-card { border-radius: .5rem; }
  .hero-section, .history-hero, .events-hero { padding-top: 2.5rem !important; padding-bottom: 2.5rem !important; }
  .quick-link { min-height: 64px; }
}

/* Phase 54: events */
.event-width { max-width: 1120px; }
.event-archive-hero, .event-detail-hero { position: relative; overflow: hidden; background: linear-gradient(120deg, #f3eadb 0%, #fffaf0 60%, #e6d2ae 100%); }
.event-archive-hero::after, .event-detail-hero::after { position: absolute; right: -6rem; bottom: -9rem; width: 23rem; height: 23rem; border: 1px solid rgba(128, 65, 20, .18); border-radius: 50%; box-shadow: 0 0 0 2.5rem rgba(128, 65, 20, .05), 0 0 0 5rem rgba(128, 65, 20, .025); content: ""; }
.event-archive-hero .container, .event-detail-hero .container { position: relative; z-index: 1; }
.event-phase-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid #dfcdb5; border-radius: .75rem; background: #fffdf9; box-shadow: 0 .25rem .9rem rgba(47, 43, 38, .04); }
.event-phase-tab { display: flex; gap: .7rem; align-items: center; justify-content: center; padding: .85rem 1rem; border-right: 1px solid #eadfce; color: #62594f; font-weight: 700; text-decoration: none; }
.event-phase-tab:last-child { border-right: 0; }
.event-phase-tab strong { display: grid; min-width: 1.65rem; min-height: 1.65rem; place-items: center; border-radius: 50%; background: #f3eadb; color: #804114; font-size: .76rem; }
.event-phase-tab:hover, .event-phase-tab:focus-visible { color: #804114; background: #fff8ed; }
.event-phase-tab.active { color: #fffdf9; background: #804114; }
.event-phase-tab.active strong { background: #f3d19f; color: #59300e; }
.event-category-filters { display: flex; flex-wrap: wrap; gap: .55rem; align-items: center; padding-bottom: 1.35rem; border-bottom: 1px solid #eadfce; }
.event-category-filters > span { margin-right: .15rem; color: #766c62; font-size: .82rem; font-weight: 700; }
.featured-event-card { display: grid; grid-template-columns: 92px minmax(0, 1fr) auto; gap: 1.5rem; align-items: stretch; padding: clamp(1.15rem, 3vw, 1.7rem); border: 1px solid #dfcdb5; border-left: 5px solid #a96c30; border-radius: .8rem; background: linear-gradient(105deg, #fffdf9, #f8efdf); box-shadow: 0 .5rem 1.4rem rgba(74, 50, 26, .07); }
.featured-event-date { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 112px; border-radius: .6rem; background: #804114; color: #fffdf9; text-align: center; }
.featured-event-date strong { font-family: Georgia, serif; font-size: 2.6rem; line-height: 1; }
.featured-event-date span { margin-top: .3rem; color: #f4d5a8; font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.featured-event-content h2 { margin-bottom: .45rem; font-size: clamp(1.35rem, 2.4vw, 1.75rem); }
.featured-event-content h2 a, .event-card-body h2 a { color: var(--ashram-ink); text-decoration: none; }
.featured-event-content h2 a:hover, .event-card-body h2 a:hover { color: #8f552b; }
.featured-event-meta { color: #766c62; font-size: .9rem; font-weight: 600; }
.featured-event-meta span { padding: 0 .35rem; color: #b47639; }
.event-list-heading { display: flex; gap: 1rem; align-items: end; justify-content: space-between; }
.event-list-heading h2 { margin: 0; font-family: Georgia, serif; }
.event-archive-card { overflow: hidden; border-radius: .75rem; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.event-archive-card:hover { transform: translateY(-3px); border-color: #c58d54; box-shadow: 0 .75rem 1.6rem rgba(74, 50, 26, .11); }
.event-card-image-wrap { display: block; position: relative; height: 190px; overflow: hidden; background: #e7d2ae; }
.event-card-image { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.event-archive-card:hover .event-card-image { transform: scale(1.035); }
.event-card-placeholder { display: grid; width: 100%; height: 100%; place-items: center; background: linear-gradient(135deg, #385849, #547262 55%, #d6b783 56%, #f5ead7 100%); color: #fffdf9; font-size: 3.2rem; }
.event-live-badge { position: absolute; top: .8rem; left: .8rem; padding: .35rem .6rem; border-radius: 2rem; background: #a23a29; color: #fff; font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.event-card-body { display: flex; min-height: 240px; flex-direction: column; padding: 1.15rem; }
.event-card-heading { display: grid; grid-template-columns: 47px minmax(0, 1fr); gap: .8rem; align-items: start; }
.event-date-badge { display: flex; min-height: 47px; flex-direction: column; align-items: center; justify-content: center; border: 1px solid #dfcdb5; border-radius: .45rem; background: #f8efdf; color: #804114; line-height: 1; }
.event-date-badge strong { font-family: Georgia, serif; font-size: 1.35rem; }
.event-date-badge span { margin-top: .18rem; font-size: .58rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.event-card-summary { flex: 1; margin: 1rem 0; color: #62594f; font-size: .92rem; }
.event-card-meta { display: flex; flex-direction: column; gap: .3rem; margin-bottom: .85rem; color: #766c62; font-size: .8rem; }
.event-card-meta span + span::before { margin-right: .35rem; color: #a96c30; content: "•"; }
.event-card-footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding-top: .8rem; border-top: 1px solid #eadfce; color: #8f552b; font-size: .8rem; font-weight: 700; }
.event-card-footer a { color: #8f552b; text-decoration: none; }
.event-empty-state { display: flex; gap: 1.3rem; align-items: center; padding: clamp(1.4rem, 4vw, 2.2rem); border-top: 4px solid var(--ashram-saffron); }
.event-empty-symbol { display: grid; width: 4.2rem; height: 4.2rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #f8efdf; color: #8f552b; font-size: 2rem; }
.event-detail-heading-row { display: flex; gap: 1.3rem; align-items: start; justify-content: space-between; }
.event-detail-heading-row h1 { margin-bottom: .65rem; }
.event-detail-phase { flex: 0 0 auto; margin-top: .2rem; padding: .45rem .7rem; border-radius: 2rem; font-size: .76rem; font-weight: 800; }
.event-phase-upcoming { background: #f8efdf; color: #804114; }
.event-phase-ongoing { background: #fae4df; color: #9a3425; }
.event-phase-past { background: #eaf1eb; color: #385849; }
.event-detail-layout { display: grid; grid-template-columns: minmax(170px, .5fr) minmax(0, 1.8fr); gap: clamp(1.4rem, 4vw, 3rem); align-items: start; }
.event-detail-sidebar { position: sticky; top: 92px; }
.event-date-panel, .event-contact-panel { padding: 1.2rem; border: 1px solid #eadfce; border-radius: .65rem; background: #fffdf9; box-shadow: 0 .25rem .9rem rgba(47, 43, 38, .04); }
.event-date-panel { display: flex; flex-direction: column; align-items: center; text-align: center; }
.event-date-panel > span, .event-date-panel small, .event-contact-panel > span, .event-information-grid span { color: #766c62; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.event-date-panel strong { margin: .15rem 0; color: #804114; font-family: Georgia, serif; font-size: 3.2rem; line-height: 1; }
.event-date-panel hr { width: 100%; margin: 1rem 0 .7rem; border-color: #eadfce; }
.event-date-panel p { color: #62594f; font-size: .86rem; }
.event-contact-panel { margin-top: 1rem; }
.event-contact-panel p { margin-top: .4rem; color: #62594f; font-size: .92rem; }
.event-detail-feature-image { display: block; width: 100%; max-height: 460px; margin-bottom: 1.4rem; border-radius: .7rem; object-fit: cover; }
.event-information-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 1.7rem; border-top: 1px solid #eadfce; border-left: 1px solid #eadfce; }
.event-information-grid > div { display: flex; min-height: 92px; flex-direction: column; justify-content: center; gap: .35rem; padding: 1rem; border-right: 1px solid #eadfce; border-bottom: 1px solid #eadfce; background: #fffdf9; }
.event-information-grid strong { color: var(--ashram-ink); font-size: .93rem; }
.event-description { max-width: 760px; }
.event-detail-actions { display: flex; gap: 1rem; align-items: center; justify-content: space-between; margin-top: 2rem; padding: 1.2rem; border: 1px solid #dfcdb5; border-left: 4px solid var(--ashram-saffron); border-radius: .55rem; background: #f8efdf; }
.event-action-buttons { display: flex; flex-wrap: wrap; gap: .6rem; }
@media (max-width: 767px) {
  .featured-event-card { grid-template-columns: 72px minmax(0, 1fr); gap: 1rem; }
  .featured-event-card .btn { grid-column: 1 / -1; }
  .featured-event-date { min-height: 86px; }
  .featured-event-date strong { font-size: 2.1rem; }
  .event-list-heading, .event-detail-actions { align-items: flex-start; flex-direction: column; }
  .event-detail-layout { grid-template-columns: 1fr; }
  .event-detail-sidebar { position: static; display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 1rem; }
  .event-contact-panel { margin-top: 0; }
}
@media (max-width: 575px) {
  .event-phase-tab { gap: .35rem; padding: .75rem .35rem; font-size: .84rem; }
  .event-phase-tab strong { min-width: 1.4rem; min-height: 1.4rem; font-size: .67rem; }
  .event-detail-heading-row { flex-direction: column; }
  .event-detail-sidebar, .event-information-grid { grid-template-columns: 1fr; }
  .event-card-image-wrap { height: 205px; }
}

/* Phase 55: contact page */
.contact-width { max-width: 1120px; }
.contact-hero { position: relative; overflow: hidden; border-bottom: 1px solid #eadfce; background: linear-gradient(120deg, #f3eadb 0%, #fffaf0 60%, #e6d2ae 100%); }
.contact-hero::after { position: absolute; right: -5rem; bottom: -9rem; width: 23rem; height: 23rem; border: 1px solid rgba(56, 88, 73, .18); border-radius: 50%; box-shadow: 0 0 0 2.6rem rgba(56, 88, 73, .05), 0 0 0 5.2rem rgba(56, 88, 73, .025); content: ""; }
.contact-hero .container { position: relative; z-index: 1; }
.contact-overview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.contact-method-card { display: flex; min-height: 112px; gap: .9rem; align-items: center; padding: 1rem 1.15rem; }
.contact-method-icon { display: grid; width: 2.65rem; height: 2.65rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #f8efdf; color: #804114; font-size: 1.25rem; }
.contact-method-card .card-label { margin: 0 0 .15rem; }
.contact-method-card a { color: var(--ashram-ink); font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.contact-method-card a:hover { color: #8f552b; }
.contact-main-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(1.2rem, 3vw, 2rem); align-items: stretch; }
.contact-details-panel { padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid #dfcdb5; border-left: 4px solid var(--ashram-saffron); border-radius: .75rem; background: linear-gradient(145deg, #fffdf9, #f8efdf); }
.contact-details-panel h2, .contact-location-panel h2, .contact-message-intro h2 { font-family: Georgia, serif; }
.contact-address-card, .contact-visiting-card { padding: 1rem 0; border-bottom: 1px solid #dfcdb5; }
.contact-address-card > span, .contact-visiting-card > span { display: block; margin-bottom: .35rem; color: #766c62; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.contact-address-card address { margin: 0; color: var(--ashram-ink); font-style: normal; line-height: 1.7; }
.contact-visiting-card .page-content { color: #62594f; font-size: .96rem; }
.contact-note { margin-top: 1rem; color: #766c62; font-size: .85rem; }
.contact-location-panel { display: flex; flex-direction: column; overflow: hidden; padding: 0; }
.contact-location-heading { display: flex; gap: 1rem; align-items: center; justify-content: space-between; padding: 1.35rem 1.35rem 1rem; }
.contact-location-heading h2 { margin: 0; }
.contact-location-map { display: block; width: 100%; min-height: 330px; flex: 1; border: 0; background: #eadfce; }
.contact-map-placeholder { display: flex; min-height: 330px; flex: 1; flex-direction: column; align-items: center; justify-content: center; gap: .6rem; padding: 1.5rem; background: radial-gradient(circle at 50% 35%, #fffdf9, #f1e0c5); color: #766c62; text-align: center; }
.contact-map-placeholder span { display: grid; width: 3.5rem; height: 3.5rem; place-items: center; border-radius: 50%; background: #fffdf9; color: #804114; font-size: 1.8rem; box-shadow: 0 .25rem .7rem rgba(74, 50, 26, .1); }
.contact-message-section { display: grid; grid-template-columns: minmax(220px, .58fr) minmax(0, 1.42fr); gap: clamp(1.2rem, 3vw, 2rem); align-items: start; padding-top: 1rem; }
.contact-message-intro { padding: 1.2rem 0; }
.contact-message-intro p:last-child { color: #766c62; }
.contact-form-panel { padding: clamp(1.2rem, 3vw, 1.7rem); }
.contact-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.contact-form-wide { grid-column: 1 / -1; }
.contact-form-panel .form-control { border-color: #d7c3a9; background: #fffdf9; }
.contact-form-panel .form-control:focus { border-color: #a95719; box-shadow: 0 0 0 .2rem rgba(169, 87, 25, .13); }
.contact-form-footer { display: flex; gap: 1rem; align-items: center; justify-content: space-between; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid #eadfce; }
.contact-form-footer p { max-width: 430px; color: #766c62; font-size: .82rem; }
.contact-success-message { margin-bottom: 1.2rem; padding: .85rem 1rem; border: 1px solid #b9d2bd; border-left: 4px solid #385849; border-radius: .45rem; background: #edf6ee; color: #285236; }
@media (max-width: 767px) {
  .contact-overview-grid, .contact-main-grid, .contact-message-section { grid-template-columns: 1fr; }
  .contact-location-map, .contact-map-placeholder { min-height: 260px; }
  .contact-message-intro { padding-bottom: 0; }
}
@media (max-width: 575px) {
  .contact-overview-grid { gap: .75rem; }
  .contact-method-card { min-height: 0; }
  .contact-location-heading, .contact-form-footer { align-items: flex-start; flex-direction: column; }
  .contact-form-grid { grid-template-columns: 1fr; }
  .contact-form-wide { grid-column: auto; }
}

/* Phase 56: members pages */
.members-width { max-width: 1100px; }
.members-hero { position: relative; overflow: hidden; border-bottom: 1px solid #eadfce; background: linear-gradient(120deg, #eaf1eb 0%, #fffaf0 60%, #e4d1ad 100%); }
.members-hero::after { position: absolute; right: -6rem; bottom: -9rem; width: 23rem; height: 23rem; border: 1px solid rgba(56, 88, 73, .17); border-radius: 50%; box-shadow: 0 0 0 2.7rem rgba(56, 88, 73, .05), 0 0 0 5.4rem rgba(56, 88, 73, .025); content: ""; }
.members-hero .container { position: relative; z-index: 1; }
.membership-welcome-card { display: flex; gap: 1.4rem; align-items: center; justify-content: space-between; padding: clamp(1.4rem, 3vw, 2rem); border: 1px solid #d4c3a6; border-left: 5px solid var(--ashram-green); border-radius: .8rem; background: linear-gradient(105deg, #fffdf9, #f1f5f0); box-shadow: 0 .45rem 1.3rem rgba(47, 43, 38, .06); }
.membership-welcome-card h2, .membership-principles h2, .member-directory-heading h2, .membership-privacy-panel h2, .membership-form-heading h2 { font-family: Georgia, serif; }
.membership-welcome-card h2 { margin-bottom: .5rem; }
.membership-welcome-actions { display: flex; flex-wrap: wrap; gap: .65rem; flex: 0 0 auto; }
.btn-outline-spiritual { border: 1px solid #a95719; color: #804114; background: #fffdf9; }
.btn-outline-spiritual:hover { border-color: #804114; color: #fff; background: #804114; }
.membership-principles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.membership-principles article { display: flex; gap: .8rem; align-items: flex-start; padding: 1.15rem; border-top: 3px solid #a96c30; border-radius: .65rem; background: #fff; box-shadow: 0 .25rem .85rem rgba(47, 43, 38, .045); }
.membership-principles article > span { display: grid; width: 1.65rem; height: 1.65rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #eaf1eb; color: #385849; font-weight: 900; }
.membership-principles h2 { margin: 0 0 .25rem; font-size: 1.12rem; }
.membership-principles p { margin: 0; color: #766c62; font-size: .9rem; }
.member-directory-heading { display: flex; gap: 1.5rem; align-items: end; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid #eadfce; }
.member-directory-heading h2 { margin: 0; }
.member-directory-heading > p { max-width: 370px; font-size: .9rem; text-align: right; }
.member-directory-privacy-note { margin: 1rem 0 1.5rem; color: #766c62; font-size: .85rem; }
.member-profile-card { overflow: hidden; border-radius: .75rem; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.member-profile-card:hover { transform: translateY(-3px); border-color: #a9c1ad; box-shadow: 0 .75rem 1.6rem rgba(47, 43, 38, .09); }
.member-profile-card > img, .member-profile-placeholder { display: block; width: 100%; height: 215px; object-fit: cover; }
.member-profile-placeholder { display: grid; place-items: center; background: radial-gradient(circle at 50% 30%, #fffdf9, #d9e6d9); color: #385849; font-family: Georgia, serif; font-size: 4rem; }
.member-profile-body { padding: 1.2rem; }
.member-profile-body h3 { color: var(--ashram-ink); }
.member-profile-location { margin: -.3rem 0 .8rem; color: #766c62; font-size: .88rem; }
.member-directory-empty { display: flex; gap: 1.2rem; align-items: center; padding: clamp(1.35rem, 4vw, 2.2rem); border-top: 4px solid var(--ashram-green); }
.member-directory-empty > div:first-child { display: grid; width: 4rem; height: 4rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #eaf1eb; color: #385849; font-size: 1.8rem; }
.membership-application-layout { display: grid; grid-template-columns: minmax(230px, .65fr) minmax(0, 1.45fr); gap: clamp(1.4rem, 4vw, 2.8rem); align-items: start; }
.membership-privacy-panel { position: sticky; top: 92px; padding: clamp(1.25rem, 3vw, 1.7rem); border-radius: .75rem; background: var(--ashram-green); color: #fff; box-shadow: 0 .55rem 1.4rem rgba(47, 43, 38, .12); }
.membership-privacy-panel .eyebrow { color: #f4d5a8; }
.membership-privacy-panel h2 { color: #fff; font-size: 1.55rem; }
.membership-assurance-list { margin: 1.1rem 0; padding: 0; list-style: none; }
.membership-assurance-list li { position: relative; margin-bottom: .85rem; padding-left: 1.35rem; color: rgba(255, 255, 255, .92); font-size: .93rem; }
.membership-assurance-list li::before { position: absolute; left: 0; color: #f4d5a8; content: "✓"; font-weight: 800; }
.membership-sidebar-note { padding-top: .9rem; border-top: 1px solid rgba(255, 255, 255, .2); color: rgba(255, 255, 255, .78); font-size: .84rem; }
.membership-form-panel { padding: clamp(1.2rem, 3vw, 1.8rem); }
.membership-form-heading { padding-bottom: 1rem; border-bottom: 1px solid #eadfce; }
.membership-form-heading h2 { margin-bottom: .35rem; }
.membership-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 1.25rem; }
.membership-form-wide { grid-column: 1 / -1; }
.membership-form-panel .form-control { border-color: #d7c3a9; background: #fffdf9; }
.membership-form-panel .form-control:focus { border-color: #a95719; box-shadow: 0 0 0 .2rem rgba(169, 87, 25, .13); }
.membership-consent-box { margin-top: 1.2rem; padding: 1rem; border: 1px solid #d6e3d6; border-left: 4px solid var(--ashram-green); border-radius: .5rem; background: #f2f8f2; }
.membership-consent-box .form-check { display: flex; gap: .65rem; align-items: flex-start; }
.membership-consent-box .form-check-input { flex: 0 0 auto; margin-top: .3rem; }
.membership-consent-box .form-check-label { color: #314c3e; font-weight: 600; }
.membership-consent-box p { margin: .55rem 0 0 1.65rem; color: #547262; font-size: .84rem; }
.membership-form-footer { display: flex; gap: 1rem; align-items: center; justify-content: space-between; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid #eadfce; }
.membership-form-footer p { max-width: 420px; color: #766c62; font-size: .82rem; }
.membership-success-message { margin: 1.2rem 0 0; padding: .85rem 1rem; border: 1px solid #b9d2bd; border-left: 4px solid #385849; border-radius: .45rem; background: #edf6ee; color: #285236; }
@media (max-width: 767px) {
  .membership-welcome-card, .member-directory-heading, .membership-form-footer { align-items: flex-start; flex-direction: column; }
  .membership-principles, .membership-application-layout { grid-template-columns: 1fr; }
  .member-directory-heading > p { text-align: left; }
  .membership-privacy-panel { position: static; }
}
@media (max-width: 575px) {
  .membership-form-grid { grid-template-columns: 1fr; }
  .membership-form-wide { grid-column: auto; }
  .membership-welcome-actions { width: 100%; }
  .membership-welcome-actions .btn { flex: 1 1 100%; justify-content: center; }
}

/* Phase 57: forum pages */
.forum-width { max-width: 1120px; }
.forum-reading-width { max-width: 900px; }
.forum-auth-width { max-width: 920px; }
.forum-hero, .forum-detail-hero, .forum-auth-hero { position: relative; overflow: hidden; border-bottom: 1px solid #eadfce; background: linear-gradient(120deg, #edf3ef 0%, #fffaf0 60%, #e7d6b9 100%); }
.forum-hero::after, .forum-detail-hero::after, .forum-auth-hero::after { position: absolute; right: -6rem; bottom: -9rem; width: 23rem; height: 23rem; border: 1px solid rgba(56, 88, 73, .18); border-radius: 50%; box-shadow: 0 0 0 2.8rem rgba(56, 88, 73, .05), 0 0 0 5.6rem rgba(56, 88, 73, .025); content: ""; }
.forum-hero .container, .forum-detail-hero .container, .forum-auth-hero .container { position: relative; z-index: 1; }
.forum-message { margin-bottom: 1.2rem; padding: .85rem 1rem; border: 1px solid #b9d2bd; border-left: 4px solid #385849; border-radius: .45rem; background: #edf6ee; color: #285236; }
.forum-participation-card { display: flex; gap: 1.5rem; align-items: center; justify-content: space-between; padding: clamp(1.3rem, 3vw, 1.9rem); border: 1px solid #d4c3a6; border-left: 5px solid var(--ashram-green); border-radius: .8rem; background: linear-gradient(105deg, #fffdf9, #f1f5f0); box-shadow: 0 .45rem 1.3rem rgba(47, 43, 38, .06); }
.forum-participation-card h2, .forum-list-heading h2, .forum-detail-heading h1, .forum-replies-heading h2, .forum-reply-form-intro h2, .forum-guidance-panel h2, .forum-auth-panel h2, .forum-auth-aside h2 { font-family: Georgia, serif; }
.forum-participation-card h2 { margin-bottom: .45rem; }
.forum-participation-actions { display: flex; flex-wrap: wrap; gap: .65rem; flex: 0 0 auto; }
.forum-toolbar { display: flex; flex-direction: column; gap: 1rem; padding-bottom: 1.2rem; border-bottom: 1px solid #eadfce; }
.forum-search-form { display: flex; gap: .65rem; align-items: center; max-width: 650px; }
.forum-search-form .form-control { border-color: #d7c3a9; background: #fffdf9; }
.forum-search-form .form-control:focus { border-color: #a95719; box-shadow: 0 0 0 .2rem rgba(169, 87, 25, .13); }
.forum-category-filters { display: flex; flex-wrap: wrap; gap: .5rem; }
.forum-category-filters .filter-pill { display: inline-flex; gap: .35rem; align-items: center; }
.forum-category-filters .filter-pill span { display: grid; min-width: 1.25rem; min-height: 1.25rem; place-items: center; border-radius: 50%; background: rgba(255, 255, 255, .55); font-size: .68rem; }
.forum-list-heading, .forum-replies-heading { display: flex; gap: 1rem; align-items: end; justify-content: space-between; }
.forum-list-heading h2, .forum-replies-heading h2 { margin: 0; }
.forum-list-heading > p { max-width: 360px; font-size: .88rem; text-align: right; }
.forum-discussion-list { display: grid; gap: .8rem; margin-top: 1rem; }
.forum-discussion-card { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 1.1rem; border-radius: .7rem; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.forum-discussion-card:hover { transform: translateY(-2px); border-color: #a9c1ad; box-shadow: 0 .55rem 1.25rem rgba(47, 43, 38, .08); }
.forum-discussion-card.is-pinned { border-left: 4px solid #a96c30; }
.forum-discussion-marker, .forum-author-mark { display: grid; width: 2.55rem; height: 2.55rem; place-items: center; border-radius: 50%; background: #eaf1eb; color: #385849; font-weight: 800; }
.forum-discussion-card.is-pinned .forum-discussion-marker { background: #f8efdf; color: #804114; }
.forum-discussion-topline { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; margin-bottom: .4rem; }
.forum-category-label, .forum-pinned-label, .forum-locked-badge { padding: .22rem .48rem; border-radius: 2rem; background: #eaf1eb; color: #385849; font-size: .69rem; font-weight: 800; letter-spacing: .03em; }
.forum-pinned-label { background: #f8efdf; color: #804114; }
.forum-discussion-content h3 { margin: 0 0 .45rem; font-size: 1.15rem; }
.forum-discussion-content h3 a { color: var(--ashram-ink); text-decoration: none; }
.forum-discussion-content h3 a:hover { color: #8f552b; }
.forum-discussion-excerpt { margin: 0 0 .6rem; color: #62594f; font-size: .93rem; }
.forum-discussion-meta { display: flex; flex-wrap: wrap; gap: .2rem .7rem; color: #766c62; font-size: .78rem; }
.forum-discussion-meta span + span::before { margin-right: .7rem; color: #a96c30; content: "•"; }
.forum-read-link { color: #8f552b; font-size: .83rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.forum-empty-state { display: flex; gap: 1.2rem; align-items: center; padding: clamp(1.35rem, 4vw, 2.2rem); border-top: 4px solid var(--ashram-green); }
.forum-empty-state > div:first-child { display: grid; width: 4rem; height: 4rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #eaf1eb; color: #385849; font-size: 1.7rem; }
.forum-detail-heading { display: flex; gap: 1.2rem; align-items: start; justify-content: space-between; }
.forum-detail-heading h1 { margin-bottom: .55rem; }
.forum-detail-meta { color: #766c62; font-size: .9rem; }
.forum-locked-badge { flex: 0 0 auto; margin-top: .25rem; background: #f3eadb; color: #804114; }
.forum-post-card, .forum-reply-card { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 1rem; padding: clamp(1.15rem, 3vw, 1.6rem); border-radius: .7rem; }
.forum-post-card .forum-author-mark { background: #385849; color: #fff; }
.forum-post-body .page-content { max-width: 740px; }
.forum-replies-heading > span { color: #766c62; font-size: .83rem; }
.forum-replies-list { display: grid; gap: .8rem; margin-top: 1rem; }
.forum-reply-card { padding: 1rem 1.1rem; }
.forum-reply-meta { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin-bottom: .45rem; }
.forum-reply-meta strong { color: var(--ashram-ink); font-size: .92rem; }
.forum-reply-meta span { color: #766c62; font-size: .78rem; }
.forum-reply-text { color: #4f4942; }
.forum-reply-form-section { display: grid; grid-template-columns: minmax(190px, .58fr) minmax(0, 1.42fr); gap: 1.5rem; align-items: start; }
.forum-reply-form-intro { padding: .75rem 0; }
.forum-reply-form-intro h2 { margin-bottom: .45rem; }
.forum-reply-form { padding: 1.25rem; }
.forum-reply-form .form-control, .forum-new-discussion-form .form-control, .forum-new-discussion-form .form-select, .forum-auth-panel .form-control { border-color: #d7c3a9; background: #fffdf9; }
.forum-reply-form .form-control:focus, .forum-new-discussion-form .form-control:focus, .forum-new-discussion-form .form-select:focus, .forum-auth-panel .form-control:focus { border-color: #a95719; box-shadow: 0 0 0 .2rem rgba(169, 87, 25, .13); }
.forum-reply-form-footer, .forum-new-form-footer { display: flex; gap: 1rem; align-items: center; justify-content: space-between; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #eadfce; }
.forum-reply-form-footer p, .forum-new-form-footer p { max-width: 380px; color: #766c62; font-size: .82rem; }
.forum-closed-notice, .forum-login-notice { display: flex; gap: 1rem; align-items: center; justify-content: space-between; padding: 1rem 1.15rem; border: 1px solid #dfcdb5; border-left: 4px solid #a96c30; border-radius: .5rem; background: #f8efdf; color: #62594f; }
.forum-login-notice strong { color: var(--ashram-ink); }
.forum-new-discussion-layout, .forum-auth-layout { display: grid; grid-template-columns: minmax(210px, .62fr) minmax(0, 1.38fr); gap: clamp(1.4rem, 4vw, 2.8rem); align-items: start; }
.forum-guidance-panel, .forum-auth-aside { padding: 1.5rem; border-radius: .75rem; background: var(--ashram-green); color: #fff; box-shadow: 0 .55rem 1.4rem rgba(47, 43, 38, .12); }
.forum-guidance-panel .eyebrow, .forum-auth-aside .eyebrow { color: #f4d5a8; }
.forum-guidance-panel h2, .forum-auth-aside h2 { color: #fff; font-size: 1.45rem; }
.forum-guidance-panel ul { margin: 1rem 0 0; padding: 0; list-style: none; }
.forum-guidance-panel li { position: relative; margin-bottom: .8rem; padding-left: 1.3rem; color: rgba(255, 255, 255, .9); font-size: .92rem; }
.forum-guidance-panel li::before { position: absolute; left: 0; color: #f4d5a8; content: "✓"; font-weight: 800; }
.forum-new-discussion-form, .forum-auth-panel { padding: clamp(1.2rem, 3vw, 1.7rem); }
.forum-auth-panel h2 { margin-bottom: 1.2rem; }
.forum-auth-bottom { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #eadfce; color: #766c62; font-size: .9rem; }
.forum-auth-bottom a { color: #8f552b; font-weight: 700; text-decoration: none; }
.forum-auth-aside > p:not(.eyebrow), .forum-auth-aside li { color: rgba(255, 255, 255, .9); }
.forum-auth-aside ol { margin: 1rem 0; padding-left: 1.25rem; }
.forum-auth-aside li { margin-bottom: .55rem; }
.forum-auth-aside .btn-outline-spiritual { border-color: #f4d5a8; color: #fff; background: transparent; }
.forum-auth-aside .btn-outline-spiritual:hover { color: #385849; background: #f4d5a8; }
@media (max-width: 767px) {
  .forum-participation-card, .forum-list-heading, .forum-replies-heading, .forum-reply-form-footer, .forum-new-form-footer, .forum-closed-notice, .forum-login-notice { align-items: flex-start; flex-direction: column; }
  .forum-list-heading > p { text-align: left; }
  .forum-detail-heading { flex-direction: column; }
  .forum-reply-form-section, .forum-new-discussion-layout, .forum-auth-layout { grid-template-columns: 1fr; }
}
@media (max-width: 575px) {
  .forum-search-form { align-items: stretch; flex-direction: column; }
  .forum-discussion-card { grid-template-columns: 36px minmax(0, 1fr); gap: .75rem; }
  .forum-read-link { grid-column: 2; }
  .forum-post-card, .forum-reply-card { grid-template-columns: 34px minmax(0, 1fr); gap: .75rem; }
  .forum-discussion-marker, .forum-author-mark { width: 2.15rem; height: 2.15rem; }
}

/* Phase 58: About information and People pages */
.about-info-width, .people-width { max-width: 1080px; }
.about-info-hero, .people-hero { position: relative; overflow: hidden; border-bottom: 1px solid #eadfce; background: linear-gradient(120deg, #f3eadb 0%, #fffaf0 60%, #e5d5bb 100%); }
.about-info-hero::after, .people-hero::after { position: absolute; right: -6rem; bottom: -9rem; width: 23rem; height: 23rem; border: 1px solid rgba(128, 65, 20, .17); border-radius: 50%; box-shadow: 0 0 0 2.7rem rgba(128, 65, 20, .05), 0 0 0 5.4rem rgba(128, 65, 20, .025); content: ""; }
.about-info-hero .container, .people-hero .container { position: relative; z-index: 1; }
.about-info-content-heading h2, .people-introduction-card h2, .people-list-heading h2 { font-family: Georgia, serif; }
.about-info-content-card { padding: clamp(1.3rem, 3vw, 2rem); border-top: 4px solid var(--ashram-saffron); border-radius: .75rem; }
.about-info-content-heading { padding-bottom: 1rem; border-bottom: 1px solid #eadfce; }
.about-info-content-heading h2 { margin: 0; }
.about-info-content { max-width: none; padding-top: 1.35rem; }
.about-section-directory-heading { display: flex; gap: 1rem; align-items: end; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid #eadfce; }
.about-section-directory-heading h2 { margin: 0; font-family: Georgia, serif; }
.about-section-directory-heading > p { max-width: 340px; font-size: .88rem; text-align: right; }
.about-section-card { display: flex; min-height: 170px; flex-direction: column; justify-content: space-between; gap: 1.3rem; padding: 1.35rem; border-top: 3px solid #d8b37e; transition: transform .18s ease, box-shadow .18s ease; }
.about-section-card:hover { transform: translateY(-3px); box-shadow: 0 .7rem 1.5rem rgba(47, 43, 38, .09); }
.about-section-card h3 { color: var(--ashram-ink); font-family: Georgia, serif; }
.about-section-card h3 a { color: inherit; text-decoration: none; }
.about-section-card h3 a:hover { color: var(--ashram-saffron); }
.about-section-link { align-self: flex-start; color: var(--ashram-green); font-size: .9rem; font-weight: 800; text-decoration: none; }
.about-section-link:hover { color: var(--ashram-saffron); text-decoration: underline; }
.about-info-empty, .people-empty-state { display: flex; gap: 1.25rem; align-items: center; padding: clamp(1.4rem, 4vw, 2.2rem); border-top: 4px solid var(--ashram-saffron); }
.about-info-empty-symbol, .people-empty-state > div:first-child { display: grid; width: 4.1rem; height: 4.1rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #f8efdf; color: #804114; font-size: 1.8rem; }
.people-introduction-card { display: flex; gap: 1.4rem; align-items: center; justify-content: space-between; padding: clamp(1.3rem, 3vw, 1.9rem); border: 1px solid #d4c3a6; border-left: 5px solid var(--ashram-green); border-radius: .8rem; background: linear-gradient(105deg, #fffdf9, #f1f5f0); box-shadow: 0 .45rem 1.3rem rgba(47, 43, 38, .06); }
.people-introduction-card h2 { margin-bottom: .45rem; }
.people-count-panel { display: flex; min-width: 105px; flex-direction: column; align-items: center; justify-content: center; padding: .8rem 1rem; border-radius: .6rem; background: #385849; color: #fff; text-align: center; }
.people-count-panel strong { font-family: Georgia, serif; font-size: 2rem; line-height: 1; }
.people-count-panel span { margin-top: .25rem; color: #f4d5a8; font-size: .72rem; font-weight: 700; }
.people-list-heading { display: flex; gap: 1rem; align-items: end; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid #eadfce; }
.people-list-heading h2 { margin: 0; }
.people-list-heading > p { max-width: 330px; font-size: .88rem; text-align: right; }
.people-profile-card { overflow: hidden; border-radius: .75rem; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.people-profile-card:hover { transform: translateY(-3px); border-color: #a9c1ad; box-shadow: 0 .75rem 1.6rem rgba(47, 43, 38, .09); }
.people-profile-header { display: flex; gap: 1rem; align-items: center; padding: 1.2rem; border-bottom: 1px solid #eadfce; background: #f8f4ec; }
.people-profile-header img, .people-profile-placeholder { display: grid; width: 86px; height: 108px; flex: 0 0 auto; place-items: center; border: 3px solid #fffdf9; border-radius: .75rem; object-fit: cover; object-position: center top; background: radial-gradient(circle at 50% 30%, #fffdf9, #d9e6d9); color: #385849; font-family: Georgia, serif; font-size: 2.1rem; box-shadow: 0 .2rem .6rem rgba(47, 43, 38, .1); }
.people-portrait--top { object-position: center top !important; }
.people-portrait--center { object-position: center center !important; }
.people-portrait--bottom { object-position: center bottom !important; }
.people-profile-title h3 { margin: 0 0 .25rem; color: var(--ashram-ink); font-family: Georgia, serif; font-size: 1.35rem; }
.people-profile-title p { margin: 0; color: #8f552b; font-size: .85rem; font-weight: 700; }
.people-profile-body { padding: 1.25rem; }
.people-service-period { display: flex; flex-wrap: wrap; gap: .35rem .6rem; align-items: baseline; margin: 0 0 1rem; padding-bottom: .8rem; border-bottom: 1px solid #eadfce; }
.people-service-period span { color: #766c62; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.people-service-period strong { color: #385849; font-size: .9rem; }
.people-biography { color: #62594f; }
.people-biography p:last-child { margin-bottom: 0; }
.people-responsibilities { margin-top: 1.1rem; padding: 1rem; border-left: 3px solid #a96c30; border-radius: 0 .45rem .45rem 0; background: #f8efdf; color: #62594f; font-size: .92rem; }
.people-responsibilities h4 { margin: 0 0 .35rem; color: #804114; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; }
.people-responsibilities p:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
  .people-introduction-card, .people-list-heading, .about-section-directory-heading { align-items: flex-start; flex-direction: column; }
  .people-list-heading > p, .about-section-directory-heading > p { text-align: left; }
}
@media (max-width: 575px) {
  .people-count-panel { min-width: 0; width: 100%; align-items: flex-start; text-align: left; }
  .people-count-panel strong { font-size: 1.65rem; }
}

/* Phase 59: video library and live streams */
.media-width { max-width: 1120px; }
.video-library-hero, .live-library-hero { position: relative; overflow: hidden; border-bottom: 1px solid #eadfce; background: linear-gradient(120deg, #edf3ef 0%, #fffaf0 60%, #e7d6b9 100%); }
.video-library-hero::after, .live-library-hero::after { position: absolute; right: -6rem; bottom: -9rem; width: 23rem; height: 23rem; border: 1px solid rgba(56, 88, 73, .18); border-radius: 50%; box-shadow: 0 0 0 2.8rem rgba(56, 88, 73, .05), 0 0 0 5.6rem rgba(56, 88, 73, .025); content: ""; }
.video-library-hero .container, .live-library-hero .container { position: relative; z-index: 1; }
.media-crosslink-card { display: flex; gap: 1.3rem; align-items: center; justify-content: space-between; padding: clamp(1.25rem, 3vw, 1.8rem); border: 1px solid #d4c3a6; border-left: 5px solid var(--ashram-green); border-radius: .8rem; background: linear-gradient(105deg, #fffdf9, #f1f5f0); box-shadow: 0 .45rem 1.3rem rgba(47, 43, 38, .06); }
.media-crosslink-card h2, .media-library-heading h2, .live-section-heading h2 { font-family: Georgia, serif; }
.media-crosslink-card h2 { margin-bottom: .45rem; }
.media-category-filters { display: flex; flex-wrap: wrap; gap: .5rem; }
.media-library-heading, .live-section-heading { display: flex; gap: 1rem; align-items: end; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid #eadfce; }
.media-library-heading h2, .live-section-heading h2 { margin: 0; }
.media-library-heading > p, .live-section-heading > p { max-width: 350px; font-size: .88rem; text-align: right; }
.video-library-card { overflow: hidden; border-radius: .75rem; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.video-library-card:hover { transform: translateY(-3px); border-color: #a9c1ad; box-shadow: 0 .75rem 1.6rem rgba(47, 43, 38, .1); }
.video-thumb-wrap { display: block; position: relative; height: 210px; overflow: hidden; background: #d9e6d9; }
.video-thumb-wrap img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.video-library-card:hover .video-thumb-wrap img { transform: scale(1.035); }
.video-thumb-placeholder { display: grid; width: 100%; height: 100%; place-items: center; background: radial-gradient(circle at 50% 30%, #fffdf9, #bfd3c0); color: #385849; font-size: 4rem; }
.video-play-button { display: grid; position: absolute; left: 50%; top: 50%; width: 3.1rem; height: 3.1rem; place-items: center; border: 3px solid rgba(255, 253, 249, .9); border-radius: 50%; background: rgba(56, 88, 73, .9); color: #fff; font-size: .9rem; transform: translate(-50%, -50%); transition: transform .18s ease, background .18s ease; }
.video-library-card:hover .video-play-button { background: #a95719; transform: translate(-50%, -50%) scale(1.08); }
.video-library-body { display: flex; min-height: 216px; flex-direction: column; padding: 1.15rem; }
.video-card-topline { display: flex; gap: .5rem; align-items: center; justify-content: space-between; margin-bottom: .65rem; color: #766c62; font-size: .77rem; }
.video-category-label { padding: .23rem .48rem; border-radius: 2rem; background: #eaf1eb; color: #385849; font-size: .68rem; font-weight: 800; letter-spacing: .03em; }
.video-library-body h2 { color: var(--ashram-ink); font-family: Georgia, serif; }
.video-library-description { flex: 1; color: #62594f; font-size: .92rem; }
.video-library-footer { display: flex; gap: .7rem; align-items: center; justify-content: space-between; padding-top: .8rem; border-top: 1px solid #eadfce; color: #766c62; font-size: .8rem; }
.video-library-footer a { color: #8f552b; font-weight: 700; text-decoration: none; }
.media-empty-state { display: flex; gap: 1.2rem; align-items: center; padding: clamp(1.35rem, 4vw, 2.2rem); border-top: 4px solid var(--ashram-green); }
.media-empty-state > div:first-child { display: grid; width: 4rem; height: 4rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #eaf1eb; color: #385849; font-size: 1.6rem; }
.live-status-summary { display: flex; gap: 1.2rem; align-items: center; padding: 1rem 1.2rem; border: 1px solid #dfcdb5; border-radius: .7rem; background: #fffdf9; box-shadow: 0 .2rem .8rem rgba(47, 43, 38, .04); }
.live-status-item { display: flex; gap: .65rem; align-items: center; min-width: 145px; }
.live-status-item strong { display: block; color: var(--ashram-ink); font-family: Georgia, serif; font-size: 1.4rem; line-height: 1; }
.live-status-item span:last-child { display: block; margin-top: .18rem; color: #766c62; font-size: .75rem; }
.live-status-dot { width: .7rem; height: .7rem; border-radius: 50%; background: #8e9e92; }
.live-status-dot.is-live { background: #b63529; box-shadow: 0 0 0 .35rem rgba(182, 53, 41, .12); }
.live-status-dot.is-scheduled { background: #a96c30; }
.live-video-library-link { margin-left: auto; color: #8f552b; font-size: .88rem; font-weight: 700; text-decoration: none; }
.live-stream-grid { display: grid; gap: 1rem; }
.live-stream-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1.2rem; align-items: center; padding: clamp(1.1rem, 3vw, 1.5rem); border-radius: .75rem; }
.live-stream-card.is-live { border-left: 5px solid #b63529; background: linear-gradient(105deg, #fffdf9, #fff5f3); }
.live-stream-status { display: inline-flex; gap: .4rem; align-items: center; align-self: start; padding: .32rem .55rem; border-radius: 2rem; background: #fbe5e2; color: #9a3425; font-size: .7rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; }
.live-stream-status.is-scheduled { background: #f8efdf; color: #804114; }
.live-pulse { width: .52rem; height: .52rem; border-radius: 50%; background: #b63529; box-shadow: 0 0 0 .25rem rgba(182, 53, 41, .12); }
.live-stream-content .card-label { margin-bottom: .35rem; }
.live-stream-content h3 { margin-bottom: .45rem; color: var(--ashram-ink); font-family: Georgia, serif; font-size: 1.25rem; }
.live-stream-content > p:not(.card-label):not(.live-time) { margin-bottom: .65rem; color: #62594f; }
.live-time { margin: 0; color: #766c62; font-size: .85rem; }
.live-time span { margin-right: .35rem; color: #804114; font-weight: 700; }
@media (max-width: 767px) {
  .media-crosslink-card, .media-library-heading, .live-section-heading { align-items: flex-start; flex-direction: column; }
  .media-library-heading > p, .live-section-heading > p { text-align: left; }
  .live-status-summary { flex-wrap: wrap; }
  .live-video-library-link { margin-left: 0; }
  .live-stream-card { grid-template-columns: 1fr; gap: .85rem; }
  .live-stream-card .btn { justify-self: start; }
}
@media (max-width: 575px) {
  .video-thumb-wrap { height: 205px; }
  .live-status-summary { align-items: flex-start; flex-direction: column; }
}

/* Phase 60: Home page lower-area redesign */
.home-message-showcase { padding-top: .4rem; }
.home-lower-heading { display: flex; gap: 1rem; align-items: end; justify-content: space-between; }
.home-lower-heading h2 { margin: 0; color: var(--ashram-green); font-family: Georgia, serif; }
.home-lower-heading > p { max-width: 385px; font-size: .88rem; text-align: right; }
.home-heading-link { color: #8f552b; font-size: .9rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.home-message-grid-six { align-items: start; }
.home-message-grid-primary { width: 100%; grid-template-columns: minmax(0, 1fr); align-items: start; }
.home-message-grid-secondary { width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.home-showcase-card { position: relative; min-height: 0; padding: 1.25rem; border-radius: .72rem; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.home-showcase-card:hover { transform: translateY(-3px); border-color: #c58d54; box-shadow: 0 .65rem 1.35rem rgba(74, 50, 26, .1); }
.home-showcase-card .card-label { margin-bottom: .45rem; color: #a96c30; }
.home-showcase-card h2 { margin-bottom: .75rem; font-size: 1.22rem; }
.home-primary-message-card { border-left: 4px solid var(--ashram-saffron); background: linear-gradient(105deg, #fffdf9, #f8efdf); }
.home-combined-message + .home-combined-message { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #dfcdb5; }
.home-combined-message h3 { margin: 0 0 .45rem; color: #385849; font-family: Georgia, serif; font-size: 1rem; }
.home-combined-message p:last-child { margin-bottom: 0; }
.home-expandable-text { position: relative; max-height: 8.4rem; overflow: hidden; color: #62594f; font-size: .94rem; line-height: 1.65; }
.home-expandable-text::after { position: absolute; right: 0; bottom: 0; left: 0; height: 2.7rem; background: linear-gradient(transparent, #fff); content: ""; pointer-events: none; }
.home-expandable-text.is-expanded { max-height: none; }
.home-expandable-text.is-expanded::after { display: none; }
.home-expandable-text p:last-child { margin-bottom: 0; }
.home-read-more { margin-top: .7rem; padding: 0; border: 0; background: transparent; color: #8f552b; font-size: .86rem; font-weight: 700; }
.home-read-more:hover { color: #804114; text-decoration: underline; }
.home-updates-section { border-top: 1px solid #eadfce; border-bottom: 1px solid #eadfce; background: linear-gradient(145deg, #fffdf9, #f8efdf); }
.home-updates-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
.home-update-card { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; align-items: start; min-height: 170px; padding: clamp(1.1rem, 2.5vw, 1.5rem); border: 1px solid #dfcdb5; border-radius: .72rem; background: #fffdf9; box-shadow: 0 .3rem 1rem rgba(47, 43, 38, .04); }
.home-event-update { border-left: 4px solid #a96c30; }
.home-announcement-update { border-left: 4px solid #385849; }
.home-event-date { display: flex; min-width: 58px; min-height: 64px; flex-direction: column; align-items: center; justify-content: center; border-radius: .48rem; background: #804114; color: #fffdf9; line-height: 1; }
.home-event-date strong { font-family: Georgia, serif; font-size: 1.9rem; }
.home-event-date span { margin-top: .28rem; color: #f4d5a8; font-size: .65rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.home-update-symbol { display: grid; width: 3.65rem; height: 3.65rem; place-items: center; border-radius: 50%; background: #eaf1eb; color: #385849; font-size: 1.55rem; }
.home-update-card h3 { margin-bottom: .45rem; font-family: Georgia, serif; font-size: 1.25rem; }
.home-update-card h3 a { color: var(--ashram-ink); text-decoration: none; }
.home-update-card h3 a:hover { color: #8f552b; }
.home-update-meta { margin-bottom: .7rem; color: #766c62; font-size: .82rem; }
.home-gallery-section { background: #fffdf9; }
.home-gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.home-gallery-card { overflow: hidden; border-radius: .75rem; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.home-gallery-card:hover { transform: translateY(-3px); border-color: #c58d54; box-shadow: 0 .75rem 1.6rem rgba(74, 50, 26, .1); }
.home-gallery-image, .home-gallery-placeholder { display: block; height: 205px; overflow: hidden; background: #e7d2ae; }
.home-gallery-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.home-gallery-card:hover .home-gallery-image img { transform: scale(1.035); }
.home-gallery-placeholder { display: grid; place-items: center; background: radial-gradient(circle at 50% 30%, #fffdf9, #e1c99f); color: #804114; font-size: 3.2rem; text-decoration: none; }
.home-gallery-body { padding: 1rem 1.1rem 1.1rem; }
.home-gallery-body h3 { margin-bottom: .65rem; font-family: Georgia, serif; font-size: 1.2rem; }
.home-gallery-body h3 a { color: var(--ashram-ink); text-decoration: none; }
.home-gallery-link { color: #8f552b; font-size: .84rem; font-weight: 700; text-decoration: none; }
.home-access-section { background: linear-gradient(150deg, #f3eadb, #fffaf0); }
.home-access-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(280px, .88fr); gap: clamp(1.25rem, 3vw, 2.3rem); align-items: stretch; }
.home-access-links { padding: clamp(.35rem, 2vw, 1.2rem) 0; }
.home-access-links h2 { color: var(--ashram-green); font-family: Georgia, serif; }
.home-access-intro { max-width: 590px; color: #766c62; }
.home-access-links .quick-access-list { max-width: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .3rem 1.4rem; }
.home-access-side-panel { min-height: 235px; box-shadow: 0 .35rem 1rem rgba(47, 43, 38, .05); }
.home-access-side-panel h2 { margin-top: .35rem; }
.home-access-side-panel .home-expandable-text::after { background: linear-gradient(transparent, #fffdf9); }
.home-visit-section { background: #fffdf9; }
.home-visit-grid { display: grid; grid-template-columns: minmax(260px, .78fr) minmax(0, 1.22fr); gap: 1.25rem; align-items: stretch; }
.home-contact-card { display: flex; min-height: 100%; flex-direction: column; padding: clamp(1.3rem, 3vw, 1.85rem); border-radius: .75rem; background: var(--ashram-green); color: #fff; box-shadow: 0 .45rem 1.3rem rgba(47, 43, 38, .12); }
.home-contact-card .eyebrow { color: #f4d5a8; }
.home-contact-card h2, .home-location-card h2 { color: inherit; font-family: Georgia, serif; }
.home-contact-details { flex: 1; margin: .65rem 0 1.1rem; }
.home-contact-details p { margin-bottom: .85rem; color: rgba(255, 255, 255, .92); }
.home-contact-details span { display: block; margin-bottom: .15rem; color: #f4d5a8; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.home-contact-details a { color: #fff; text-decoration: none; overflow-wrap: anywhere; }
.home-location-card { display: flex; overflow: hidden; flex-direction: column; padding: 0; border-radius: .75rem; }
.home-location-heading { display: flex; gap: 1rem; align-items: center; justify-content: space-between; padding: 1.2rem 1.3rem .8rem; }
.home-location-heading h2 { margin: 0; color: var(--ashram-ink); font-size: 1.45rem; }
.home-location-info { padding: 0 1.3rem .85rem; color: #62594f; font-size: .91rem; }
.home-location-info p:last-child { margin-bottom: 0; }
.home-location-map, .home-location-map-placeholder { display: block; width: 100%; min-height: 255px; flex: 1; border: 0; }
.home-location-map-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .55rem; padding: 1.5rem; background: radial-gradient(circle at 50% 35%, #fffdf9, #f1e0c5); color: #766c62; text-align: center; }
.home-location-map-placeholder span { display: grid; width: 3.35rem; height: 3.35rem; place-items: center; border-radius: 50%; background: #fffdf9; color: #804114; font-size: 1.7rem; box-shadow: 0 .25rem .7rem rgba(74, 50, 26, .1); }
@media (max-width: 767px) {
  .home-lower-heading, .home-location-heading { align-items: flex-start; flex-direction: column; }
  .home-lower-heading > p { text-align: left; }
  .home-updates-grid, .home-gallery-grid, .home-access-grid, .home-visit-grid { grid-template-columns: 1fr; }
  .home-message-grid-secondary { grid-template-columns: 1fr; }
  .home-access-links .quick-access-list { grid-template-columns: 1fr 1fr; }
  .home-access-side-panel { min-height: 0; }
}
@media (max-width: 575px) {
  .home-showcase-card { padding: 1.1rem; }
  .home-update-card { grid-template-columns: 1fr; }
  .home-event-date, .home-update-symbol { width: 3.65rem; }
  .home-access-links .quick-access-list { grid-template-columns: 1fr; }
  .home-gallery-image, .home-gallery-placeholder { height: 220px; }
}

/* Phase 63: final override for the Home message-box grid.
   These rules appear after the older home grid rules intentionally. */
.home-message-grid.home-message-grid-primary { display: grid; width: 100%; grid-template-columns: minmax(0, 1fr); }
.home-message-grid.home-message-grid-secondary { display: grid; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 767px) {
  .home-message-grid.home-message-grid-secondary { grid-template-columns: minmax(0, 1fr); }
}

/* Phase 43: administrator-managed structured homepage introduction. */
.home-intro-section { background: linear-gradient(155deg, #fffdf9 0%, #f8efdf 100%); border-bottom: 1px solid #eadfce; }
.home-identity-row { display: grid; grid-template-columns: minmax(80px, 130px) minmax(0, 1fr) minmax(110px, 180px); align-items: center; gap: 1.25rem; padding: 1rem; border: 1px solid #eadfce; border-radius: .8rem; background: rgba(255, 255, 255, .72); }
.identity-logo, .identity-photo { display: grid; min-height: 88px; place-items: center; overflow: hidden; border: 1px solid #dfcdb5; border-radius: .55rem; color: #766c62; background: #fffaf0; font-size: .85rem; text-align: center; }
.identity-logo img, .identity-photo img { display: block; width: 100%; height: 100px; object-fit: contain; }
.identity-photo img { object-fit: cover; }
.identity-name { text-align: center; }
.identity-name h1 { margin: 0; font-size: clamp(1.8rem, 4vw, 3.1rem); }
.identity-name p:last-child { color: #6e6257; }
.identity-name .identity-tagline { margin-top: .35rem; color: #6e6257; font-size: clamp(1.2rem, 2.25vw, 1.62rem); font-weight: 500; line-height: 1.45; }
.home-feature-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(240px, .8fr) minmax(0, 1.1fr); gap: 1.25rem; align-items: stretch; }
.home-pair-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); gap: 1.25rem; align-items: stretch; }
.home-message-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.home-photo-card { display: flex; min-height: 235px; flex-direction: column; align-items: stretch; justify-content: center; overflow: hidden; border: 1px solid #dfcdb5; border-radius: .8rem; background: radial-gradient(circle at 20% 20%, #fff 0%, #ead8ba 100%); color: #766c62; padding: 1rem; text-align: center; }
.home-photo-card img { display: block; width: calc(100% + 2rem); height: calc(100% + 2rem); object-fit: cover; }
.home-image-caption { margin: 0; padding: .65rem .2rem 0; color: var(--ashram-ink); font-size: .93rem; font-weight: 600; text-align: center; }
.captioned-home-photo-card { display: flex; flex-direction: column; align-items: stretch; justify-content: stretch; padding: 0; }
.home-photo-frame { flex: 1 1 auto; min-height: 0; overflow: hidden; }
.captioned-home-photo-card .home-photo-frame img { width: 100%; height: 100%; object-fit: cover; }
.captioned-home-photo-card .home-image-caption { flex: 0 0 auto; padding: .7rem 1rem; border-top: 1px solid #eadfce; background: #fffdf9; }
.home-message-card { padding: clamp(1.2rem, 3vw, 2rem); border: 1px solid #eadfce; border-radius: .8rem; background: #fff; box-shadow: 0 5px 18px rgba(47, 43, 38, .05); }
.home-message-card h2 { color: var(--ashram-green); font-family: Georgia, serif; font-size: clamp(1.25rem, 2.5vw, 1.8rem); }
.home-welcome-card { display: flex; flex-direction: column; justify-content: center; }
.home-welcome-card--has-audio { cursor: pointer; }
.home-welcome-card--has-audio:focus-visible { outline: 3px solid rgba(169, 87, 25, .42); outline-offset: 3px; }
.home-welcome-audio { display: none; }
.home-spiritual-card { display: flex; flex-direction: column; justify-content: center; border-left: 4px solid var(--ashram-saffron); }
.compact-message-card { min-height: 165px; }
.home-pair-right-card { display: flex; flex-direction: column; justify-content: center; }
.quick-access-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem 1.25rem; max-width: 820px; margin-bottom: 0; padding: 0; list-style: none; }
.quick-access-list a { display: flex; align-items: center; min-height: 38px; padding: .25rem 0; border-bottom: 1px solid #dfcdb5; color: var(--ashram-ink); text-decoration: none; }
.quick-access-list a::before { content: "→"; margin-right: .55rem; color: var(--ashram-saffron); font-weight: 700; }
.quick-access-list a:hover { color: var(--ashram-saffron); border-bottom-color: var(--ashram-saffron); }
.quick-access-side-panel { display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding: 1.4rem; border: 1px solid #dfcdb5; border-radius: .75rem; background: #fffdf9; }
.quick-access-side-panel img { width: calc(100% + 2.8rem); height: 100%; min-height: 190px; margin: -1.4rem -1.4rem 0; object-fit: cover; }
.quick-access-side-panel .home-image-caption { margin: 0 -1.4rem -1.4rem; padding: .75rem 1rem; border-top: 1px solid #eadfce; background: #fffdf9; }
.location-map { display: block; width: 100%; min-height: 250px; border: 0; border-radius: .55rem; }
.audio-library-width { max-width: 1080px; }
.audio-album-card { display: block; height: 100%; overflow: hidden; color: var(--ashram-ink); border-radius: .85rem; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.audio-album-card:hover { transform: translateY(-4px); border-color: #c58d54; box-shadow: 0 .8rem 1.8rem rgba(74, 50, 26, .12); }
.audio-album-art { position: relative; overflow: hidden; background: #efe1c9; }
.audio-album-cover { display: block; width: 100%; height: 220px; object-fit: cover; }
.audio-album-placeholder { display: grid; place-items: center; position: relative; overflow: hidden; color: #8f552b; background: radial-gradient(circle at 50% 30%, #fffdf9 0%, #f3e5ce 44%, #ddbd8d 100%); font-size: 4.7rem; }
.audio-album-placeholder::before, .audio-album-placeholder::after { position: absolute; width: 170px; height: 170px; border: 1px solid rgba(143, 85, 43, .2); border-radius: 50%; content: ""; }
.audio-album-placeholder::before { transform: translate(-37px, 25px); }
.audio-album-placeholder::after { transform: translate(37px, -25px); }
.audio-album-placeholder span { position: relative; z-index: 1; text-shadow: 0 2px 0 rgba(255, 255, 255, .65); }
.audio-album-badge { position: absolute; z-index: 1; top: .8rem; left: .8rem; padding: .3rem .55rem; border-radius: 2rem; background: rgba(255, 253, 249, .93); color: #804114; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.audio-album-play { display: grid; position: absolute; right: 1rem; bottom: -1.35rem; z-index: 1; width: 2.7rem; height: 2.7rem; place-items: center; border: 3px solid #fffdf9; border-radius: 50%; background: var(--ashram-saffron); color: #fff; box-shadow: 0 .2rem .6rem rgba(74, 50, 26, .2); }
.audio-album-description { min-height: 3rem; color: #766c62; font-size: .93rem; }
.audio-album-footer { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding-top: .8rem; border-top: 1px solid #eadfce; color: #8f552b; font-size: .86rem; font-weight: 700; }
.album-playback { display: flex; gap: 1.25rem; align-items: center; border-left: 4px solid var(--ashram-saffron); }
.album-detail-cover { display: grid; width: 132px; height: 132px; flex: 0 0 auto; place-items: center; border-radius: .7rem; object-fit: cover; }
.album-detail-placeholder { color: #8f552b; background: radial-gradient(circle at 50% 30%, #fffdf9, #e2c89e); font-size: 3.7rem; }
.track-playlist { overflow: hidden; }
.playlist-row { display: flex; gap: .75rem; align-items: center; padding: .55rem; border-bottom: 1px solid #eadfce; }
.playlist-row:last-child { border-bottom: 0; }
.playlist-track { display: flex; flex: 1; min-width: 0; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem .8rem; border: 0; border-radius: .5rem; background: transparent; color: var(--ashram-ink); text-align: left; }
.playlist-track:hover, .playlist-track.is-playing { background: #f8efdf; color: var(--ashram-saffron); }
.playlist-track small { display: block; margin: .18rem 0 0 2.1rem; color: #766c62; font-weight: 400; }
.track-number { display: inline-grid; width: 1.55rem; height: 1.55rem; margin-right: .55rem; place-items: center; border: 1px solid #d7c3a9; border-radius: 50%; color: #8f552b; font-size: .75rem; }
.playlist-track.is-playing .track-number { border-color: var(--ashram-saffron); background: var(--ashram-saffron); color: #fff; }
.playlist-play-icon { display: grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; border: 1px solid #d7c3a9; border-radius: 50%; font-size: .68rem; }
.playlist-track.is-playing .playlist-play-icon { border-color: var(--ashram-saffron); background: var(--ashram-saffron); color: #fff; }
.history-width { max-width: 1050px; }
.history-hero-rich { position: relative; overflow: hidden; background: linear-gradient(120deg, #f5e9d7 0%, #fffaf0 62%, #ead9be 100%); }
.history-hero-rich::after { position: absolute; right: -6rem; bottom: -8rem; width: 23rem; height: 23rem; border: 1px solid rgba(143, 85, 43, .18); border-radius: 50%; box-shadow: 0 0 0 2.8rem rgba(143, 85, 43, .06), 0 0 0 5.6rem rgba(143, 85, 43, .035); content: ""; }
.history-hero-rich .container { position: relative; z-index: 1; }
.history-intro-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(230px, .7fr); gap: 1.4rem; align-items: stretch; }
.history-intro-card { border-top: 4px solid var(--ashram-saffron); }
.history-facts-card { display: flex; flex-direction: column; justify-content: center; padding: 1.8rem; border-radius: .8rem; background: var(--ashram-green); color: #fff; box-shadow: 0 .55rem 1.4rem rgba(47, 43, 38, .12); }
.history-facts-card .eyebrow { color: #f4d5a8; }
.history-fact { padding: .8rem 0; border-top: 1px solid rgba(255, 255, 255, .22); }
.history-fact strong { display: block; color: #fff; font-family: Georgia, serif; font-size: 1.35rem; }
.history-fact span { color: rgba(255, 255, 255, .82); font-size: .86rem; }
.history-section-heading { max-width: 680px; }
.history-section-heading h2 { color: var(--ashram-green); font-family: Georgia, serif; }
.history-timeline-rich { position: relative; margin: 0; padding: .4rem 0; border: 0; }
.history-timeline-rich::before { position: absolute; top: 0; bottom: 0; left: 50%; width: 2px; background: linear-gradient(#d7b589, #eadfce); content: ""; }
.timeline-item-rich { display: grid; position: relative; grid-template-columns: minmax(0, 1fr) 74px minmax(0, 1fr); gap: 1.2rem; align-items: start; padding: 0 0 2.5rem; }
.timeline-item-rich::before { display: none; }
.timeline-marker { display: grid; grid-column: 2; grid-row: 1; z-index: 1; width: 26px; height: 26px; place-self: start center; place-items: center; border: 5px solid #fffaf0; border-radius: 50%; background: var(--ashram-saffron); box-shadow: 0 0 0 1px #d7b589; }
.timeline-marker span { width: 5px; height: 5px; border-radius: 50%; background: #fff; }
.timeline-date-card { grid-column: 1; grid-row: 1; justify-self: end; margin-top: .2rem; padding: .48rem .8rem; border: 1px solid #dfcdb5; border-radius: 2rem; background: #fffdf9; color: #8f552b; font-size: .86rem; font-weight: 800; text-align: right; }
.timeline-content-card { grid-column: 3; grid-row: 1; overflow: hidden; }
.timeline-item-rich:nth-child(even) .timeline-date-card { grid-column: 3; justify-self: start; text-align: left; }
.timeline-item-rich:nth-child(even) .timeline-content-card { grid-column: 1; }
.history-image-frame { margin: 0; background: #f8efdf; }
.timeline-content-card .history-image { display: block; width: 100%; max-width: none; height: 245px; margin: 0; border-radius: 0; object-fit: cover; }
.history-image-frame figcaption { padding: .55rem .9rem; color: #766c62; font-size: .82rem; font-style: italic; }
.history-milestone-text p:last-child { margin-bottom: 0; }
.history-explore-card { display: flex; gap: 1.5rem; align-items: center; justify-content: space-between; padding: clamp(1.4rem, 4vw, 2.2rem); border: 1px solid #dfcdb5; border-radius: .8rem; background: #f8efdf; }
.history-resource-links { display: flex; flex-wrap: wrap; gap: .7rem; }
.history-resource-links a { padding: .5rem .75rem; border: 1px solid #d7c3a9; border-radius: .35rem; background: #fffdf9; color: var(--ashram-ink); font-weight: 700; text-decoration: none; }
.history-resource-links a:hover { border-color: var(--ashram-saffron); color: var(--ashram-saffron); }
.history-empty-state { display: flex; gap: 1.3rem; align-items: center; padding: clamp(1.4rem, 4vw, 2.2rem); border-top: 4px solid var(--ashram-saffron); }
.history-empty-symbol { display: grid; width: 4.2rem; height: 4.2rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #f8efdf; color: #8f552b; font-size: 2rem; }
.gallery-width { max-width: 1120px; }
.gallery-hero, .gallery-detail-hero { position: relative; overflow: hidden; background: linear-gradient(122deg, #f7eedf 0%, #fffaf0 57%, #e6d0aa 100%); }
.gallery-hero::after, .gallery-detail-hero::after { position: absolute; right: -5rem; bottom: -9rem; width: 24rem; height: 24rem; border: 1px solid rgba(128, 65, 20, .16); border-radius: 50%; box-shadow: 0 0 0 2.8rem rgba(128, 65, 20, .05), 0 0 0 5.6rem rgba(128, 65, 20, .025); content: ""; }
.gallery-hero .container, .gallery-detail-hero .container { position: relative; z-index: 1; }
.gallery-filters { display: flex; flex-wrap: wrap; gap: .55rem; padding-bottom: 1.4rem; border-bottom: 1px solid #eadfce; }
.gallery-introduction { display: flex; gap: 1.5rem; align-items: end; justify-content: space-between; }
.gallery-album-card { display: block; height: 100%; overflow: hidden; border-radius: .85rem; color: var(--ashram-ink); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.gallery-album-card:hover { transform: translateY(-4px); border-color: #c58d54; box-shadow: 0 .85rem 1.8rem rgba(74, 50, 26, .13); }
.gallery-album-cover-wrap { position: relative; overflow: hidden; background: #efdfc4; }
.gallery-album-cover { display: block; width: 100%; height: 225px; object-fit: cover; transition: transform .25s ease; }
.gallery-album-card:hover .gallery-album-cover { transform: scale(1.035); }
.gallery-album-placeholder { display: flex; align-items: center; justify-content: center; gap: .45rem; background: linear-gradient(135deg, #e9d1a7, #fff9ed 52%, #c99863); color: rgba(128, 65, 20, .75); font-size: 3.1rem; }
.gallery-album-placeholder span { display: block; border: 2px solid rgba(255, 255, 255, .72); box-shadow: 0 .2rem .45rem rgba(74, 50, 26, .16); transform: rotate(-8deg); }
.gallery-album-placeholder span:nth-child(2) { transform: translateY(-.6rem); }
.gallery-album-placeholder span:nth-child(3) { transform: rotate(8deg); }
.gallery-album-year, .gallery-album-count { position: absolute; bottom: .8rem; padding: .3rem .55rem; border-radius: 2rem; background: rgba(255, 253, 249, .94); color: #804114; font-size: .72rem; font-weight: 800; }
.gallery-album-year { left: .8rem; }
.gallery-album-count { right: .8rem; }
.gallery-album-description { min-height: 3rem; color: #766c62; font-size: .93rem; }
.gallery-album-footer { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding-top: .85rem; border-top: 1px solid #eadfce; color: #8f552b; font-size: .84rem; font-weight: 700; }
.gallery-empty-state { display: flex; gap: 1.3rem; align-items: center; padding: clamp(1.4rem, 4vw, 2.2rem); border-top: 4px solid var(--ashram-saffron); }
.gallery-empty-symbol { display: grid; width: 4.2rem; height: 4.2rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #f8efdf; color: #8f552b; font-size: 2rem; }
.gallery-detail-bar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1.1rem; border: 1px solid #eadfce; border-radius: .55rem; background: #fffdf9; color: #766c62; font-size: .92rem; }
.gallery-detail-bar strong { color: #8f552b; }
.event-photo-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 1rem; }
.event-photo-card { grid-column: span 4; margin: 0; overflow: hidden; border: 1px solid #eadfce; border-radius: .6rem; background: #fff; }
.event-photo-card:nth-child(5n + 1) { grid-column: span 8; }
.event-photo-button { display: block; position: relative; width: 100%; overflow: hidden; padding: 0; border: 0; background: #e9dcc7; cursor: zoom-in; }
.event-photo-button img { display: block; width: 100%; height: 250px; object-fit: cover; transition: transform .25s ease; }
.event-photo-card:nth-child(5n + 1) .event-photo-button img { height: 310px; }
.event-photo-button:hover img { transform: scale(1.035); }
.event-photo-zoom { display: grid; position: absolute; right: .7rem; bottom: .7rem; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; background: rgba(255, 253, 249, .9); color: #804114; opacity: 0; transition: opacity .18s ease; }
.event-photo-button:hover .event-photo-zoom, .event-photo-button:focus-visible .event-photo-zoom { opacity: 1; }
.event-photo-card figcaption { padding: .65rem .75rem; color: #62594f; font-size: .88rem; }
.gallery-lightbox { width: min(94vw, 1000px); max-width: none; max-height: 92vh; padding: 0; border: 0; border-radius: .7rem; background: #24211d; color: #fff; box-shadow: 0 1rem 3rem rgba(0, 0, 0, .4); }
.gallery-lightbox::backdrop { background: rgba(24, 20, 15, .78); }
.gallery-lightbox img { display: block; max-width: 100%; max-height: calc(88vh - 3.5rem); margin: 0 auto; object-fit: contain; }
.gallery-lightbox p { margin: 0; padding: .8rem 3.3rem .8rem 1rem; color: rgba(255, 255, 255, .9); }
.gallery-lightbox-close { display: grid; position: absolute; top: .65rem; right: .65rem; z-index: 1; width: 2.35rem; height: 2.35rem; place-items: center; border: 0; border-radius: 50%; background: rgba(255, 253, 249, .94); color: #2f2b26; font-size: 1.7rem; line-height: 1; }
.literature-width { max-width: 1080px; }
.literature-hero, .literature-detail-hero { position: relative; overflow: hidden; background: linear-gradient(120deg, #f3eadb 0%, #fffaf0 60%, #e6d2ae 100%); }
.literature-hero::after, .literature-detail-hero::after { position: absolute; right: -5rem; bottom: -8rem; width: 21rem; height: 21rem; border: 1px solid rgba(56, 88, 73, .17); border-radius: .9rem; box-shadow: 0 0 0 2.7rem rgba(56, 88, 73, .05), 0 0 0 5.4rem rgba(56, 88, 73, .025); content: ""; transform: rotate(22deg); }
.literature-hero .container, .literature-detail-hero .container { position: relative; z-index: 1; }
.literature-filters { display: flex; flex-wrap: wrap; gap: .55rem; padding-bottom: 1.4rem; border-bottom: 1px solid #eadfce; }
.literature-introduction { display: flex; gap: 1.5rem; align-items: end; justify-content: space-between; }
.literature-card { display: flex; overflow: hidden; border-radius: .8rem; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.literature-card:hover { transform: translateY(-3px); border-color: #c58d54; box-shadow: 0 .75rem 1.6rem rgba(74, 50, 26, .11); }
.literature-cover-wrap { display: block; width: 37%; min-width: 132px; overflow: hidden; background: #e7d2ae; }
.literature-cover { display: block; width: 100%; height: 100%; min-height: 245px; object-fit: cover; transition: transform .25s ease; }
.literature-card:hover .literature-cover { transform: scale(1.035); }
.literature-cover-placeholder, .literature-detail-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; background: linear-gradient(145deg, #385849, #547262 58%, #d6b783 59%, #f5ead7 100%); color: #fffdf9; font-family: Georgia, serif; font-size: 1.5rem; letter-spacing: .08em; }
.literature-cover-placeholder small, .literature-detail-placeholder small { color: #f4d5a8; font-family: inherit; font-size: .63rem; letter-spacing: .12em; text-transform: uppercase; }
.literature-card-body { display: flex; width: 63%; flex-direction: column; padding: 1.35rem; }
.literature-card-topline { display: flex; gap: .5rem; align-items: center; justify-content: space-between; }
.literature-access-badge { padding: .22rem .45rem; border-radius: 2rem; background: #f8efdf; color: #804114; font-size: .68rem; font-weight: 800; white-space: nowrap; }
.literature-card h2 { margin-top: .6rem; }
.literature-author { margin-bottom: .6rem; color: #766c62; font-size: .9rem; font-style: italic; }
.literature-description { flex: 1; margin-bottom: .9rem; color: #62594f; font-size: .92rem; }
.literature-card-footer { display: flex; gap: .65rem; align-items: center; justify-content: space-between; padding-top: .8rem; border-top: 1px solid #eadfce; color: #766c62; font-size: .82rem; }
.literature-card-footer a { color: #8f552b; font-weight: 700; text-decoration: none; }
.literature-empty-state { display: flex; gap: 1.3rem; align-items: center; padding: clamp(1.4rem, 4vw, 2.2rem); border-top: 4px solid var(--ashram-saffron); }
.literature-empty-symbol { display: grid; width: 4.2rem; height: 4.2rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #f8efdf; color: #8f552b; font-size: 2rem; }
.literature-detail-layout { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.5fr); gap: clamp(1.4rem, 4vw, 3rem); align-items: start; }
.literature-detail-cover-panel { position: sticky; top: 92px; overflow: hidden; border: 1px solid #eadfce; border-radius: .7rem; background: #fff; box-shadow: 0 .35rem 1rem rgba(47, 43, 38, .06); }
.literature-detail-cover { display: block; width: 100%; min-height: 330px; object-fit: cover; }
.literature-detail-placeholder { min-height: 330px; }
.literature-metadata { padding: .8rem 1rem; }
.literature-metadata p { display: flex; flex-direction: column; gap: .1rem; margin: 0; padding: .7rem 0; border-bottom: 1px solid #eadfce; }
.literature-metadata p:last-child { border-bottom: 0; }
.literature-metadata span { color: #766c62; font-size: .76rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.literature-metadata strong { color: var(--ashram-ink); font-size: .93rem; }
.literature-detail-content { padding: .5rem 0; }
.literature-actions { display: flex; gap: 1rem; align-items: center; justify-content: space-between; margin-top: 2rem; padding: 1.2rem; border: 1px solid #dfcdb5; border-left: 4px solid var(--ashram-saffron); border-radius: .55rem; background: #f8efdf; }
.literature-actions p { color: #62594f; font-size: .9rem; }
.literature-action-buttons { display: flex; flex-wrap: wrap; gap: .6rem; }
.literature-reading-section { padding: clamp(1.1rem, 3vw, 1.6rem); border: 1px solid #eadfce; border-top: 4px solid var(--ashram-green); border-radius: .7rem; background: #fffdf9; }
.literature-reading-content { max-width: 800px; }
.literature-attached-image { margin: 1.5rem 0 0; overflow: hidden; border: 1px solid #eadfce; border-radius: .7rem; background: #fff; }
.literature-attached-image img { display: block; width: 100%; max-height: 760px; object-fit: contain; }
@media (max-width: 767px) {
  .home-identity-row { grid-template-columns: minmax(0, 1fr); justify-items: center; gap: .7rem; padding: 1.15rem .9rem 1.25rem; }
  .identity-photo { display: none; }
  .identity-logo { width: 92px; min-height: 68px; }
  .identity-logo img { height: 68px; }
  .identity-name { width: 100%; text-align: center; }
  .identity-name h1 { font-size: clamp(1.75rem, 8vw, 2.35rem); line-height: 1.18; }
  .identity-name .identity-tagline { font-size: 1.2rem; }
  .home-feature-grid, .home-pair-grid, .home-message-grid { grid-template-columns: 1fr; gap: 1rem; }
  .home-photo-card { min-height: 210px; }
  .compact-message-card { min-height: 0; }
  .quick-access-list { grid-template-columns: 1fr 1fr; }
  .album-playback { align-items: stretch; flex-direction: column; }
  .album-detail-cover { width: 100%; height: 220px; }
  .history-intro-grid { grid-template-columns: 1fr; }
  .history-timeline-rich::before { left: 12px; }
  .timeline-item-rich, .timeline-item-rich:nth-child(even) { grid-template-columns: 26px minmax(0, 1fr); gap: .85rem; }
  .timeline-marker { grid-column: 1; }
  .timeline-date-card, .timeline-item-rich:nth-child(even) .timeline-date-card { grid-column: 2; grid-row: 1; justify-self: start; margin: 0 0 .2rem; text-align: left; }
  .timeline-content-card, .timeline-item-rich:nth-child(even) .timeline-content-card { grid-column: 2; grid-row: 2; }
  .history-explore-card { align-items: flex-start; flex-direction: column; }
  .gallery-introduction, .gallery-detail-bar { align-items: flex-start; flex-direction: column; }
  .event-photo-card, .event-photo-card:nth-child(5n + 1) { grid-column: span 6; }
  .event-photo-card:nth-child(5n + 1) .event-photo-button img { height: 250px; }
  .literature-introduction, .literature-actions { align-items: flex-start; flex-direction: column; }
  .literature-detail-layout { grid-template-columns: 1fr; }
  .literature-detail-cover-panel { position: static; display: grid; grid-template-columns: 145px minmax(0, 1fr); }
  .literature-detail-cover { min-height: 100%; height: 100%; }
  .literature-detail-placeholder { min-height: 100%; }
}

@media (max-width: 575px) {
  .event-photo-grid { grid-template-columns: 1fr; gap: .8rem; }
  .event-photo-card, .event-photo-card:nth-child(5n + 1) { grid-column: auto; }
  .event-photo-button img, .event-photo-card:nth-child(5n + 1) .event-photo-button img { height: 235px; }
  .literature-card { display: block; }
  .literature-cover-wrap, .literature-card-body { width: 100%; }
  .literature-cover { min-height: 195px; height: 195px; }
  .literature-detail-cover-panel { display: block; }
  .literature-detail-cover, .literature-detail-placeholder { min-height: 250px; height: 250px; }
}

/* Phase 64: refined, spacious Home community messages.
   This is intentionally placed at the end so it overrides earlier Home styles. */
.home-message-showcase {
  position: relative;
  padding: clamp(.75rem, 2vw, 1.35rem) 0 clamp(1.25rem, 3vw, 2.25rem);
}
.home-message-grid.home-message-grid-primary .home-showcase-card,
.home-message-grid.home-message-grid-secondary .home-showcase-card {
  display: flex;
  min-height: 480px;
  flex-direction: column;
  padding: clamp(1.55rem, 3vw, 2.35rem);
  border: 1px solid #e3d1b9;
  border-radius: 1rem;
  background: linear-gradient(145deg, #fdfefa 0%, #f2f7f1 100%);
  box-shadow: 0 .7rem 1.9rem rgba(67, 48, 28, .09);
}
.home-message-grid.home-message-grid-primary .home-primary-message-card {
  border-left: 5px solid var(--ashram-saffron);
  background: linear-gradient(120deg, #fffefd 0%, #fbf6ed 100%);
}
.home-message-grid.home-message-grid-secondary .home-showcase-card {
  border-top: 4px solid #547262;
}
.home-message-grid.home-message-grid-primary .home-showcase-card:hover,
.home-message-grid.home-message-grid-secondary .home-showcase-card:hover {
  transform: translateY(-4px);
  border-color: #c89a66;
  box-shadow: 0 1rem 2.4rem rgba(67, 48, 28, .13);
}
.home-message-grid.home-message-grid-primary .home-expandable-text,
.home-message-grid.home-message-grid-secondary .home-expandable-text {
  max-height: 18rem;
  font-size: .98rem;
  line-height: 1.76;
}
.home-message-grid.home-message-grid-primary .home-expandable-text.is-expanded,
.home-message-grid.home-message-grid-secondary .home-expandable-text.is-expanded {
  max-height: none;
}
.home-message-grid.home-message-grid-primary .home-expandable-text::after,
.home-message-grid.home-message-grid-secondary .home-expandable-text::after {
  background: linear-gradient(transparent, #f2f7f1);
}
.home-message-grid.home-message-grid-primary .home-primary-message-card .home-expandable-text::after {
  background: linear-gradient(transparent, #fbf6ed);
}
.home-message-grid.home-message-grid-primary .home-read-more,
.home-message-grid.home-message-grid-secondary .home-read-more {
  margin-top: .8rem;
  padding-top: 0;
  letter-spacing: .01em;
}
.home-message-grid.home-message-grid-primary .home-combined-message + .home-combined-message {
  margin-top: 1.35rem;
  padding-top: 1.35rem;
}

/* A quiet separation between the lower Home sections. */
.home-updates-section,
.home-gallery-section,
.home-access-section,
.home-visit-section {
  position: relative;
}
.home-updates-section .container,
.home-gallery-section .container,
.home-access-section .container,
.home-visit-section .container {
  position: relative;
}
@media (max-width: 767px) {
  .home-message-grid.home-message-grid-primary .home-showcase-card,
  .home-message-grid.home-message-grid-secondary .home-showcase-card {
    min-height: 420px;
  }
  .home-message-grid.home-message-grid-primary .home-expandable-text,
  .home-message-grid.home-message-grid-secondary .home-expandable-text {
    max-height: 16rem;
  }
}

/* Phase 67: About overview and public search redesign. */
.about-overview-width, .search-page-width { max-width: 1080px; }
.about-overview-hero, .search-page-hero { position: relative; overflow: hidden; border-bottom: 1px solid #eadfce; background: linear-gradient(120deg, #f3eadb 0%, #fffaf0 62%, #e8d7b9 100%); }
.about-overview-hero::after, .search-page-hero::after { position: absolute; right: -6rem; bottom: -9rem; width: 22rem; height: 22rem; border: 1px solid rgba(56, 88, 73, .16); border-radius: 50%; box-shadow: 0 0 0 2.7rem rgba(56, 88, 73, .045), 0 0 0 5.4rem rgba(56, 88, 73, .022); content: ""; }
.about-overview-hero .container, .search-page-hero .container { position: relative; z-index: 1; }
.about-overview-hero h1, .search-page-hero h1 { margin-bottom: .7rem; }
.about-overview-hero .lead, .search-page-hero .lead { max-width: 720px; color: #62594f; }
.about-overview-introduction, .search-results-heading { display: flex; gap: 1rem; align-items: end; justify-content: space-between; }
.about-overview-introduction h2, .search-results-heading h2 { margin: 0; color: var(--ashram-green); font-family: Georgia, serif; font-size: clamp(1.55rem, 3vw, 2rem); }
.about-overview-introduction > p { max-width: 330px; margin: 0; color: #766c62; font-size: .92rem; text-align: right; }
.about-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; }
.about-overview-card { display: grid; grid-template-columns: 3.1rem minmax(0, 1fr); gap: 1.1rem; min-height: 230px; padding: clamp(1.25rem, 3vw, 1.75rem); border-radius: .85rem; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.about-overview-card:hover { transform: translateY(-3px); border-color: #c58d54; box-shadow: 0 .8rem 1.7rem rgba(74, 50, 26, .1); }
.about-overview-card-mark { display: grid; width: 3.1rem; height: 3.1rem; place-items: center; border-radius: 50%; background: #f8efdf; color: #804114; font-family: Georgia, serif; font-size: 1rem; font-weight: 700; }
.about-overview-card-content { display: flex; flex-direction: column; }
.about-overview-card h2 { margin: .25rem 0 .65rem; font-family: Georgia, serif; font-size: 1.35rem; }
.about-overview-card h2 a { color: var(--ashram-ink); text-decoration: none; }
.about-overview-card h2 a:hover { color: #8f552b; }
.about-overview-card-content > p { flex: 1; color: #62594f; font-size: .93rem; }
.about-overview-link, .search-result-link { color: #8f552b; font-size: .86rem; font-weight: 700; text-decoration: none; }
.about-overview-empty-state, .search-start-card, .search-no-results { display: flex; gap: 1.1rem; align-items: center; padding: clamp(1.3rem, 3vw, 2rem); border-top: 4px solid var(--ashram-saffron); }
.about-overview-empty-state > span, .search-start-card > span, .search-no-results > span { display: grid; width: 3.75rem; height: 3.75rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #f8efdf; color: #804114; font-size: 1.8rem; }
.search-page-form { display: flex; gap: .75rem; max-width: 760px; padding: .55rem; border: 1px solid #dfcdb5; border-radius: .75rem; background: rgba(255, 253, 249, .84); box-shadow: 0 .35rem 1rem rgba(74, 50, 26, .06); }
.search-page-form .form-control { min-height: 48px; border: 0; background: transparent; box-shadow: none; }
.search-page-form .form-control:focus { outline: 0; box-shadow: none; }
.search-page-form .btn { min-width: 110px; }
.search-page-note { margin-top: .9rem; color: #766c62; font-size: .82rem; }
.search-results-heading > span { flex: 0 0 auto; padding: .38rem .7rem; border-radius: 2rem; background: #eaf1eb; color: #385849; font-size: .78rem; font-weight: 800; }
.search-results-list { display: grid; gap: .85rem; }
.search-result-card { display: grid; grid-template-columns: 105px minmax(0, 1fr); overflow: hidden; border-radius: .75rem; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.search-result-card:hover { transform: translateY(-2px); border-color: #c58d54; box-shadow: 0 .65rem 1.4rem rgba(74, 50, 26, .09); }
.search-result-kind { display: flex; align-items: center; justify-content: center; padding: 1rem; background: #f8efdf; color: #804114; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-align: center; text-transform: uppercase; }
.search-result-content { padding: 1.05rem 1.2rem; }
.search-result-content h3 { margin: 0 0 .45rem; font-family: Georgia, serif; font-size: 1.25rem; }
.search-result-content h3 a { color: var(--ashram-ink); text-decoration: none; }
.search-result-content h3 a:hover { color: #8f552b; }
.search-result-content p { margin-bottom: .65rem; color: #62594f; font-size: .92rem; }
@media (max-width: 767px) {
  .about-overview-introduction, .search-results-heading { align-items: flex-start; flex-direction: column; }
  .about-overview-introduction > p { text-align: left; }
  .about-overview-grid { grid-template-columns: 1fr; }
  .search-page-form { flex-direction: column; }
  .search-page-form .btn { width: 100%; }
  .search-result-card { grid-template-columns: 1fr; }
  .search-result-kind { justify-content: flex-start; padding: .55rem 1rem; }
}

/* Phase 68: compact media thumbnails and album cards. */
.home-gallery-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.home-gallery-image, .home-gallery-placeholder { height: 145px; }
.home-gallery-body { padding: .8rem .9rem .9rem; }
.home-gallery-body h3 { margin-bottom: .45rem; font-size: 1.05rem; }
.audio-album-cover { height: 155px; }
.audio-album-card .p-4, .gallery-album-card .p-4 { padding: 1rem !important; }
.audio-album-description, .gallery-album-description { min-height: 2.55rem; margin-bottom: .8rem !important; font-size: .87rem; }
.audio-album-footer, .gallery-album-footer { padding-top: .65rem; font-size: .79rem; }
.audio-album-play { right: .8rem; bottom: -1.15rem; width: 2.35rem; height: 2.35rem; }
.gallery-album-cover { height: 160px; }
.gallery-album-year, .gallery-album-count { bottom: .6rem; padding: .25rem .45rem; font-size: .66rem; }
.gallery-album-year { left: .6rem; }
.gallery-album-count { right: .6rem; }
.video-thumb-wrap { height: 150px; }
.video-library-body { min-height: 180px; padding: .95rem; }
.video-library-body h2 { margin-bottom: .45rem; font-size: 1.12rem; }
.video-library-description { font-size: .86rem; }
.video-library-footer { padding-top: .65rem; font-size: .75rem; }
.video-play-button { width: 2.65rem; height: 2.65rem; }
@media (max-width: 991px) {
  .home-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575px) {
  .home-gallery-grid { grid-template-columns: 1fr; }
  .home-gallery-image, .home-gallery-placeholder { height: 175px; }
  .audio-album-cover, .gallery-album-cover { height: 170px; }
  .video-thumb-wrap { height: 165px; }
}

/* Phase 69: slightly denser media browsing while retaining mobile tap space. */
.home-gallery-image, .home-gallery-placeholder { height: 132px; }
.audio-album-cover { height: 142px; }
.gallery-album-cover { height: 148px; }
.video-thumb-wrap { height: 138px; }
@media (max-width: 575px) {
  .home-gallery-image, .home-gallery-placeholder { height: 160px; }
  .audio-album-cover, .gallery-album-cover { height: 156px; }
  .video-thumb-wrap { height: 152px; }
}

/* Phase 70: public visitor questions and answers. */
.questions-home-section { border-top: 1px solid #eadfce; border-bottom: 1px solid #eadfce; background: linear-gradient(145deg, #f7f1e7, #fffdf9 56%, #eef5ee); }
.questions-home-width, .questions-page-width { max-width: 1120px; }
.questions-home-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(300px, 1.05fr); gap: clamp(1.25rem, 3vw, 2.3rem); align-items: stretch; }
.questions-home-intro { padding: clamp(.25rem, 2vw, 1rem) 0; }
.questions-home-intro h2, .latest-question-card h2, .question-archive-heading h2, .question-answer-card h3 { font-family: Georgia, serif; }
.questions-home-intro > p:not(.eyebrow) { max-width: 600px; color: #62594f; }
.question-form label { display: block; margin-bottom: .35rem; color: #62594f; font-size: .86rem; font-weight: 700; }
.question-form .form-control { border-color: #d7c3a9; background: #fffdf9; }
.question-form .form-control:focus { border-color: #a95719; box-shadow: 0 0 0 .2rem rgba(169, 87, 25, .13); }
.question-form ul.errorlist { margin: .35rem 0 0; padding: 0; color: #9a3425; font-size: .82rem; list-style: none; }
.question-form-two-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; }
.question-success-message, .question-error-message { margin: 1rem 0; padding: .8rem 1rem; border-radius: .45rem; font-size: .9rem; }
.question-success-message { border: 1px solid #b9d2bd; border-left: 4px solid #385849; background: #edf6ee; color: #285236; }
.question-error-message { border: 1px solid #ebc4bd; border-left: 4px solid #a23a29; background: #fff1ef; color: #8d2f23; }
.latest-question-card { display: flex; min-height: 100%; flex-direction: column; padding: clamp(1.3rem, 3vw, 1.9rem); border-left: 5px solid var(--ashram-green); border-radius: .85rem; background: #fffefa; box-shadow: 0 .5rem 1.4rem rgba(47, 43, 38, .06); }
.latest-question-card h2 { margin-bottom: .55rem; color: var(--ashram-ink); font-size: clamp(1.28rem, 2.4vw, 1.65rem); }
.latest-question-meta, .question-person-meta { color: #766c62; font-size: .82rem; }
.latest-question-answer { flex: 1; margin: 1rem 0; padding: 1rem 1.1rem; border-radius: .55rem; background: #f1f6f1; color: #385849; }
.latest-question-answer p:last-child { margin-bottom: 0; }
.questions-hero { position: relative; overflow: hidden; border-bottom: 1px solid #eadfce; background: linear-gradient(120deg, #edf3ef, #fffaf0 60%, #e8d7b9); }
.questions-hero::after { position: absolute; right: -6rem; bottom: -9rem; width: 22rem; height: 22rem; border: 1px solid rgba(56, 88, 73, .18); border-radius: 50%; box-shadow: 0 0 0 2.7rem rgba(56, 88, 73, .05), 0 0 0 5.4rem rgba(56, 88, 73, .025); content: ""; }
.questions-hero .container { position: relative; z-index: 1; }
.question-archive-layout { display: grid; grid-template-columns: minmax(240px, .56fr) minmax(0, 1.44fr); gap: clamp(1.3rem, 3vw, 2.4rem); align-items: start; }
.question-submit-panel { position: sticky; top: 92px; padding: 1.35rem; border-radius: .75rem; }
.question-archive-heading { display: flex; gap: 1rem; align-items: end; justify-content: space-between; padding-bottom: 1rem; border-bottom: 1px solid #eadfce; }
.question-archive-heading h2 { margin: 0; color: var(--ashram-green); }
.question-archive-heading > p { max-width: 250px; margin: 0; color: #766c62; font-size: .86rem; text-align: right; }
.question-answer-list { display: grid; gap: 1rem; }
.question-answer-card { overflow: hidden; border-radius: .75rem; }
.question-answer-question { padding: 1.2rem 1.3rem 1rem; border-bottom: 1px solid #eadfce; background: #fffdf9; }
.question-answer-question h3 { margin-bottom: .45rem; color: var(--ashram-ink); font-size: 1.27rem; }
.question-answer-question .card-label { color: #804114; }
.question-answer-response { padding: 1.15rem 1.3rem 1.25rem; border-left: 4px solid #547262; background: #f3f8f3; color: #385849; }
.question-answer-response p:last-of-type:not(.question-person-meta) { margin-bottom: .9rem; }
.question-empty-state { display: flex; gap: 1.1rem; align-items: center; padding: 1.5rem; border-top: 4px solid var(--ashram-green); }
.question-empty-state > span { display: grid; width: 3.6rem; height: 3.6rem; flex: 0 0 auto; place-items: center; border-radius: 50%; background: #eaf1eb; color: #385849; font-family: Georgia, serif; font-size: 2rem; }

/* Smaller event thumbnails for denser browsing. */
.event-card-image-wrap { height: 160px; }
.event-photo-button img { height: 210px; }
.event-photo-card:nth-child(5n + 1) .event-photo-button img { height: 260px; }
@media (max-width: 767px) {
  .questions-home-grid, .question-archive-layout { grid-template-columns: 1fr; }
  .question-submit-panel { position: static; }
  .question-archive-heading { align-items: flex-start; flex-direction: column; }
  .question-archive-heading > p { text-align: left; }
  .event-photo-button img, .event-photo-card:nth-child(5n + 1) .event-photo-button img { height: 200px; }
}
@media (max-width: 575px) {
  .question-form-two-columns { grid-template-columns: 1fr; }
  .event-card-image-wrap { height: 175px; }
}

/* Site-wide readability, accessibility, and navigation polish. */
.desktop-navigation .nav-submenu--wide { min-width: 155px; }
.reader-menu summary { min-width: 31px; justify-content: center; font-family: Georgia, serif; font-size: 1.05rem !important; font-weight: 700; }
.reader-menu-panel { width: 205px; padding: .85rem; }
.reader-menu-panel p { margin: 0 0 .65rem; color: #62594f; font-size: .78rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.reader-control-row { display: flex; gap: .45rem; align-items: center; }
.reader-control-row button, .reader-contrast-button { min-height: 34px; border: 1px solid #c8b296; border-radius: .35rem; background: #fffdf9; color: #2f2b26; font-weight: 700; }
.reader-control-row button { min-width: 38px; }
.reader-control-row button:hover, .reader-contrast-button:hover { border-color: #a95719; color: #804114; background: #fff8ed; }
.reader-contrast-button { width: 100%; margin-top: .65rem; padding: .35rem .55rem; text-align: left; }
.mobile-reader-controls .reader-control-row { margin-top: .25rem; }
.back-to-top { position: fixed; z-index: 900; right: 1rem; bottom: 1rem; display: grid; width: 44px; height: 44px; place-items: center; border: 1px solid #7c4d27; border-radius: 50%; background: #804114; color: #fffdf9; box-shadow: 0 .35rem .9rem rgba(47, 43, 38, .2); font-size: 1.25rem; font-weight: 700; }
.back-to-top:hover { background: #59300e; }
body.reader-size-small { font-size: .92rem; }
body.reader-size-normal { font-size: 1rem; }
body.reader-size-large { font-size: 1.13rem; }
body.reader-size-large .desktop-navigation-main > .desktop-navigation-item > a, body.reader-size-large .desktop-navigation .nav-menu summary { font-size: .88rem; }
body.high-contrast { background: #fff; color: #111; }
body.high-contrast .site-header, body.high-contrast .content-card, body.high-contrast .home-message-card, body.high-contrast .quick-access-side-panel, body.high-contrast .gallery-item { border-color: #111; background: #fff; color: #111; }
body.high-contrast h1, body.high-contrast h2, body.high-contrast h3, body.high-contrast .brand, body.high-contrast .site-header a:not(.brand), body.high-contrast .page-content h2, body.high-contrast .page-content h3, body.high-contrast .page-content h4 { color: #111; }
body.high-contrast .page-content, body.high-contrast .text-muted, body.high-contrast .literature-description, body.high-contrast .home-access-intro { color: #222 !important; }
body.high-contrast a, body.high-contrast .back-link, body.high-contrast .home-heading-link { color: #003f8c; text-decoration: underline; }
body.high-contrast .btn-spiritual, body.high-contrast .back-to-top { border-color: #111; background: #111; color: #fff; }
body.high-contrast .site-header { box-shadow: 0 2px 0 #111; }
@media (max-width: 991px) { .back-to-top { right: .75rem; bottom: .75rem; } }

/* Update 1: About menu simplification and compact hierarchy-based people cards. */
.people-level-section { margin-top: 1.15rem; }
.people-level-section + .people-level-section { margin-top: 2.35rem; padding-top: .3rem; border-top: 1px solid #eadfce; }
.people-profile-card--compact .people-profile-header { gap: .75rem; padding: .9rem; }
.people-profile-card--compact .people-profile-header img,
.people-profile-card--compact .people-profile-placeholder { width: 78px !important; height: 98px !important; border-width: 2px; border-radius: .65rem !important; font-size: 1.55rem; }
.people-profile-card--compact .people-profile-title h3 { margin-bottom: .18rem; font-size: 1.1rem; line-height: 1.2; }
.people-profile-card--compact .people-profile-title p { font-size: .78rem; line-height: 1.35; }
.people-profile-card--compact .people-profile-body { padding: .95rem; }
.people-profile-card--compact .people-service-period { gap: .25rem .45rem; margin-bottom: .7rem; padding-bottom: .65rem; }
.people-profile-card--compact .people-service-period strong { font-size: .83rem; }
.people-profile-card--compact .people-biography { font-size: .89rem; line-height: 1.58; }
.people-profile-card--compact .people-responsibilities { margin-top: .8rem; padding: .75rem; font-size: .84rem; }

/* Sloka link, expandable profiles, and compact content cards. */
.home-sloka-link { display: block; color: inherit; text-decoration: none; }
.home-sloka-link > span { display: inline-flex; gap: .35rem; align-items: center; margin-top: .8rem; color: #8f552b; font-size: .82rem; font-weight: 800; }
.home-sloka-link:hover > span, .home-sloka-link:focus-visible > span { color: var(--ashram-saffron); text-decoration: underline; }
.sloka-meaning-width { max-width: 850px; }
.sloka-meaning-hero { border-bottom: 1px solid #eadfce; background: linear-gradient(120deg, #f3eadb, #fffaf0 60%, #e4d1ad); }
.sloka-meaning-card { padding: clamp(1.35rem, 4vw, 2.5rem); border-top: 4px solid var(--ashram-saffron); }
.sloka-original { margin-bottom: 1.5rem; padding: 1.15rem 1.25rem; border-left: 4px solid var(--ashram-green); border-radius: .5rem; background: #f1f5f0; color: #385849; font-family: Georgia, serif; font-size: 1.1rem; }
.people-search-panel { display: flex; min-width: min(100%, 250px); flex-direction: column; gap: .3rem; }
.people-search-panel label { color: #62594f; font-size: .75rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.people-search-panel input { width: 100%; padding: .55rem .7rem; border: 1px solid #d7c3a9; border-radius: .45rem; background: #fffdf9; color: var(--ashram-ink); }
.people-search-panel input:focus { border-color: var(--ashram-saffron); outline: 0; box-shadow: 0 0 0 .2rem rgba(169, 87, 25, .13); }
.people-introduction-card { flex-wrap: wrap; }
.people-group-heading { margin: 0 0 1rem; color: var(--ashram-green); font-family: Georgia, serif; font-size: 1.32rem; }
.people-profile-card summary { list-style: none; cursor: pointer; }
.people-profile-card summary::-webkit-details-marker { display: none; }
.people-profile-card summary::after { margin-left: auto; color: #8f552b; content: "+"; font-size: 1.45rem; font-weight: 400; }
.people-profile-card[open] summary::after { content: "−"; }
.people-profile-card summary:focus-visible { outline: 3px solid rgba(169, 87, 25, .35); outline-offset: -3px; }
.people-role { margin: 0 0 .9rem; color: #8f552b; font-size: .88rem; font-weight: 700; }
.history-milestone-layout { display: grid; grid-template-columns: minmax(145px, .88fr) minmax(0, 1.12fr); min-height: 235px; }
.history-milestone-layout--text-only { display: block; min-height: 0; }
.history-milestone-layout .history-image-frame { height: 100%; }
.history-milestone-layout .history-image { height: 100%; min-height: 235px; }
.history-milestone-copy { padding: 1.25rem; }
.history-milestone-copy .h4 { margin-bottom: .65rem; }
.timeline-item-rich:nth-child(even) .history-milestone-layout { grid-template-columns: minmax(0, 1.12fr) minmax(145px, .88fr); }
.timeline-item-rich:nth-child(even) .history-image-frame { order: 2; }
.event-card-image-wrap { height: 108px !important; }
.member-profile-card { border-radius: .75rem; }
.member-profile-card .people-profile-header { background: #f8f4ec; }
@media (max-width: 767px) {
  .history-milestone-layout, .timeline-item-rich:nth-child(even) .history-milestone-layout { grid-template-columns: 1fr; }
  .timeline-item-rich:nth-child(even) .history-image-frame { order: 0; }
  .history-milestone-layout .history-image { height: 210px; min-height: 0; }
  .event-card-image-wrap { height: 118px !important; }
}

/* True left/right milestone layout: image and text sit on opposite sides of the timeline. */
.timeline-image-card { grid-column: 1; grid-row: 1; margin: 0; overflow: hidden; border: 1px solid #eadfce; border-radius: .75rem; background: #f8efdf; box-shadow: 0 .3rem .9rem rgba(47, 43, 38, .05); }
.timeline-image-card .history-image { display: block; width: 100%; height: 270px; object-fit: cover; }
.timeline-image-card figcaption { padding: .55rem .8rem; color: #766c62; font-size: .82rem; font-style: italic; }
.timeline-content-card { min-height: 0; }
.timeline-content-card .history-milestone-copy { padding: 1.35rem; }
.timeline-date-card { grid-column: 2 !important; grid-row: 1; align-self: start; justify-self: center !important; margin-top: 36px; text-align: center !important; }
.timeline-item-rich:nth-child(even) .timeline-image-card { grid-column: 3; }
.timeline-item-rich:nth-child(even) .timeline-content-card { grid-column: 1; }
@media (max-width: 767px) {
  .timeline-image-card, .timeline-item-rich:nth-child(even) .timeline-image-card { grid-column: 2; grid-row: 2; }
  .timeline-content-card, .timeline-item-rich:nth-child(even) .timeline-content-card { grid-column: 2; grid-row: 3; }
  .timeline-date-card { grid-column: 2 !important; grid-row: 1; justify-self: start !important; margin: 0 0 .2rem; text-align: left !important; }
.timeline-image-card .history-image { height: 210px; }
}

/* History timeline: dates on the left, with one full-width milestone card on
   the right. An image stays inside its own card and is never cropped. */
.history-width { max-width: 1320px; }
.history-timeline-rich::before { left: 36px; }
.timeline-item-rich, .timeline-item-rich:nth-child(even) { grid-template-columns: 74px minmax(0, 1fr); gap: 1.2rem; align-items: start; }
.timeline-marker { display: none; }
.timeline-date-card, .timeline-item-rich:nth-child(even) .timeline-date-card {
  display: grid;
  grid-column: 1 !important;
  grid-row: 1;
  z-index: 1;
  min-width: 64px;
  min-height: 64px;
  place-self: start center;
  place-items: center;
  margin: 0;
  padding: .45rem;
  border: 2px solid #d7b589;
  border-radius: 50%;
  background: #fffaf0;
  color: #8f552b;
  font-size: .82rem;
  line-height: 1.12;
  text-align: center !important;
}
.timeline-content-card, .timeline-item-rich:nth-child(even) .timeline-content-card,
.timeline-item-rich--text-only .timeline-content-card {
  grid-column: 2 !important;
  grid-row: 1;
  width: auto;
  overflow: visible;
}
.timeline-content-card .history-milestone-copy { padding: 1.35rem; }
.history-era-divider { display: flex; gap: .85rem; align-items: center; margin: .25rem 0 1.1rem 5.4rem; color: var(--ashram-green); font-family: "Noto Serif Devanagari", Georgia, serif; font-size: 1.05rem; font-weight: 700; }
.history-era-divider::after { height: 1px; flex: 1; background: linear-gradient(90deg, #d7b589, transparent); content: ""; }
.history-era-divider span { padding: .28rem .7rem; border: 1px solid #dfcdb5; border-radius: 2rem; background: #fffaf0; white-space: nowrap; }
.timeline-item-rich.is-featured .timeline-content-card { border-color: #c9955b; border-top: 4px solid var(--ashram-saffron); background: linear-gradient(135deg, #fffdf9, #fff8ee); box-shadow: 0 .55rem 1.3rem rgba(143, 85, 43, .11); }
.history-key-milestone-label { margin: 0 0 .45rem; color: #8f552b; font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.history-milestone-details::after { display: block; clear: both; content: ""; }
.history-milestone-details { display: block; }
.history-milestone-details--text-only { display: block; }
.timeline-image-card, .timeline-item-rich:nth-child(even) .timeline-image-card {
  grid-column: auto;
  grid-row: auto;
  float: right;
  width: min(42%, 380px);
  margin: 0 0 1rem 1.35rem;
  overflow: hidden;
  align-self: start;
  border: 1px solid #eadfce;
  border-radius: .55rem;
  background: #f8efdf;
  box-shadow: none;
}
.timeline-image-card .history-image { display: block; width: 100%; height: auto; max-height: none; object-fit: contain; }
.timeline-image-card figcaption { padding: .55rem .8rem; }

@media (max-width: 767px) {
  .history-timeline-rich::before { left: 27px; }
  .timeline-item-rich, .timeline-item-rich:nth-child(even) { grid-template-columns: 56px minmax(0, 1fr); gap: .85rem; }
  .timeline-date-card, .timeline-item-rich:nth-child(even) .timeline-date-card { min-width: 52px; min-height: 52px; padding: .3rem; font-size: .72rem; }
  .timeline-content-card, .timeline-item-rich:nth-child(even) .timeline-content-card,
  .timeline-item-rich--text-only .timeline-content-card { grid-column: 2 !important; grid-row: 1; }
  .history-era-divider { margin-left: 4.2rem; }
  .timeline-image-card, .timeline-item-rich:nth-child(even) .timeline-image-card { float: none; width: 100%; margin: 0 0 1rem; }
}

/* Mobile-first navigation, Hindi typography, and comfortable touch targets. */
body { font-family: "Noto Sans Devanagari", Inter, "Nirmala UI", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.brand, h1, h2, h3, .page-content h2, .page-content h3, .page-content h4 { font-family: "Noto Serif Devanagari", Georgia, serif; }
.eyebrow, .card-label, .people-search-panel label, .more-reading-controls p { font-size: .875rem; }
.mobile-bottom-nav { display: none; }
@media (max-width: 1199px) {
  body { padding-bottom: 76px; }
  .brand { max-width: calc(100vw - 135px); white-space: normal; line-height: 1.15; }
  .mobile-navigation-panel { bottom: 80px; max-height: calc(100vh - 156px); }
  .mobile-language-group { padding-top: 0; }
  .mobile-language-form { margin: 0; }
  .mobile-language-form label { display: block; margin-bottom: .35rem; color: #62594f; font-size: .85rem; font-weight: 700; }
  .mobile-primary-links a { min-height: 44px; display: flex; align-items: center; padding: .55rem .35rem; font-size: 1rem; }
  .mobile-nav-group > .mobile-reader-controls { margin-top: 0; padding-top: 0; border-top: 0; }
  .mobile-more-group { margin-top: .85rem; border: 1px solid #eadfce; border-radius: .55rem; background: #fff; }
  .mobile-more-group summary { min-height: 44px; display: flex; align-items: center; padding: .6rem .75rem; cursor: pointer; color: var(--ashram-green); font-weight: 800; }
  .mobile-more-group > div { padding: .15rem .75rem .75rem; border-top: 1px solid #eadfce; }
  .mobile-more-group a { display: flex; min-height: 42px; align-items: center; color: var(--ashram-ink); text-decoration: none; }
  .mobile-more-group .mobile-reader-controls { margin-top: .5rem; padding-top: .75rem; border-top: 1px solid #eadfce; }
  .mobile-bottom-nav { position: fixed; right: 0; bottom: 0; left: 0; z-index: 1200; display: grid; grid-template-columns: repeat(4, 1fr); min-height: 68px; border-top: 1px solid #d7c3a9; background: rgba(255, 253, 249, .98); box-shadow: 0 -.35rem 1.2rem rgba(47, 43, 38, .1); }
  .mobile-bottom-nav a, .mobile-bottom-nav button { display: flex; min-width: 0; flex-direction: column; align-items: center; justify-content: center; gap: .12rem; border: 0; background: transparent; color: var(--ashram-ink); font: inherit; font-size: .73rem; font-weight: 700; text-decoration: none; }
  .mobile-bottom-nav span { color: var(--ashram-saffron); font-size: 1.28rem; line-height: 1; }
  .mobile-bottom-nav a:focus-visible, .mobile-bottom-nav button:focus-visible { outline-offset: -3px; }
  .back-to-top { bottom: 5.25rem; }
}
@media (max-width: 767px) {
  .home-feature-grid { gap: 1rem; }
  .home-feature-grid .home-photo-card { min-height: 175px; }
  .contact-form-footer .btn, .membership-welcome-actions .btn, .membership-form-footer .btn, .featured-event-card .btn, .sloka-meaning-card .btn { width: 100%; justify-content: center; }
}
@media (max-width: 575px) {
  .site-navigation { align-items: flex-start; }
  .brand { max-width: calc(100vw - 112px); font-size: 1.08rem; }
  .mobile-navigation summary { min-height: 44px; }
  .mobile-navigation-panel { top: 70px; right: .4rem; bottom: 76px; left: .4rem; max-height: none; }
  .mobile-bottom-nav { min-height: 70px; }
  body { padding-bottom: 78px; }
}

/* Public launch cover. The normal site remains available to administrators at /admin/. */
.launch-cover-page { min-width: 320px; min-height: 100vh; margin: 0; color: #352920; background: radial-gradient(circle at 50% -20%, #fff 0%, #fffaf0 46%, #ead7b7 100%); }
.launch-page { display: grid; min-height: 100vh; place-items: center; padding: 1.5rem; }
.launch-card { width: min(100%, 720px); padding: clamp(2rem, 7vw, 4.5rem); border: 1px solid rgba(157, 80, 28, .22); border-radius: 1.4rem; text-align: center; background: rgba(255, 253, 248, .88); box-shadow: 0 1.2rem 3.5rem rgba(74, 43, 18, .14); }
.launch-welcome { margin: 0 0 .65rem; color: #9d501c; font-size: .86rem; font-weight: 700; letter-spacing: .15em; }
.launch-ashram-flag { display: block; width: min(150px, 42vw); max-height: 130px; margin: 0 auto .75rem; object-fit: contain; filter: drop-shadow(0 .25rem .55rem rgba(74, 43, 18, .16)); }
.launch-prayer { margin-bottom: .55rem; font-size: clamp(2.2rem, 7vw, 3.2rem); }
.launch-card h1, .launch-card h2 { margin: 0; color: #713514; font-family: "Noto Serif Devanagari", Georgia, serif; }
.launch-card h1 { font-size: clamp(2rem, 7vw, 3.85rem); line-height: 1.18; }
.launch-tradition { margin: .85rem 0 0; color: #625042; font-size: clamp(1rem, 3vw, 1.28rem); }
.launch-divider { display: flex; gap: .7rem; align-items: center; justify-content: center; margin: 1.7rem auto; color: #9d501c; }
.launch-divider span { width: min(25vw, 105px); height: 1px; background: #d5b789; }
.launch-card h2 { font-size: clamp(1.5rem, 4.5vw, 2.25rem); }
.launch-message { margin: .7rem auto; font-size: clamp(1rem, 2.8vw, 1.18rem); line-height: 1.7; }
.launch-time { margin: 0; color: #73533a; font-weight: 700; }
.launch-countdown { display: grid; grid-template-columns: repeat(4, 1fr); gap: .65rem; margin: clamp(1.75rem, 5vw, 2.5rem) auto; }
.launch-countdown > div { padding: .9rem .3rem; border: 1px solid #e2c69c; border-radius: .8rem; background: #fff8ed; }
.launch-countdown strong { display: block; color: #9d501c; font-family: Georgia, serif; font-size: clamp(1.55rem, 5vw, 2.55rem); line-height: 1; }
.launch-countdown span { display: block; margin-top: .5rem; color: #6a594c; font-size: .78rem; font-weight: 700; }
.launch-blessing { margin: 0; color: #73533a; font-family: "Noto Serif Devanagari", Georgia, serif; font-size: 1.05rem; }
.launch-language-form { margin-top: 1.3rem; }
.launch-language-form select { min-width: 9rem; padding: .45rem .7rem; border: 1px solid #d5b789; border-radius: .45rem; color: #352920; background: #fffdf8; }
@media (max-width: 430px) {
  .launch-page { padding: .8rem; }
  .launch-card { padding: 2rem 1rem; border-radius: 1rem; }
  .launch-countdown { gap: .4rem; }
  .launch-countdown > div { padding: .75rem .15rem; }
  .launch-countdown span { font-size: .73rem; }
}

/* Keep public-page headings compact while retaining the eyebrow, main heading,
   and optional introductory line. The Home page does not use this selector. */
main > section[class*="-hero"] { padding-top: 1.75rem !important; padding-bottom: 1.75rem !important; }
main > section[class*="-hero"] > .container > .eyebrow:first-child { margin-bottom: .25rem !important; }
main > section[class*="-hero"] h1 { margin-top: 0; margin-bottom: .35rem; line-height: 1.18; }
main > section[class*="-hero"] .lead:not(.mb-4) { margin-top: 0; margin-bottom: 0; line-height: 1.5; }

/* Show the complete uploaded image on an event detail page. Listing thumbnails
   retain their intentional crop. */
.event-detail-feature-image { height: auto; max-height: none; object-fit: contain; }
