:root {
    --rksap-paper: #f7f4ee;
    --rksap-white: #fffdf9;
    --rksap-verm: #a83a2a;
    --rksap-verm-dark: #84291e;
    --rksap-ink: #272920;
    --rksap-stone: #ded5c8;
    --rksap-gold: #b98b47;
    --rksap-muted: #67695f;
}

/* v1.0.4 — refined gallery and free healthcare impact */
.rksap-gallery-grid { gap: 24px; align-items: start; }
.rksap-gallery-item { overflow: hidden; border: 1px solid #eadfce; border-radius: 18px; background: #fff; box-shadow: 0 14px 40px rgba(48,37,24,.07); transition: transform .3s, box-shadow .3s; }
.rksap-gallery-item:hover { transform: translateY(-5px); box-shadow: 0 22px 55px rgba(48,37,24,.12); }
.rksap-gallery-open { position: relative; }
.rksap-gallery-open::after { content: "ছবি দেখুন  ↗"; position: absolute; right: 14px; bottom: 14px; padding: 8px 12px; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--rksap-ink); font-size: 12px; font-weight: 700; opacity: 0; transform: translateY(6px); transition: .25s; }
.rksap-gallery-open:hover::after { opacity: 1; transform: none; }
.rksap-gallery-item figcaption { padding: 17px 18px 19px; }

/* v1.0.5 — public gallery presentation */
.rksap-gallery-section { background: linear-gradient(180deg, var(--rksap-paper), #fffdf9 45%, var(--rksap-paper)); }
.rksap-gallery-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 34px; padding-bottom: 25px; border-bottom: 1px solid #dfd2bf; }
.rksap-gallery-heading h2 { margin: 7px 0 6px; font: 700 clamp(34px, 4vw, 52px)/1.2 "Noto Serif Bengali", serif; }
.rksap-gallery-heading p { max-width: 720px; margin: 0; color: var(--rksap-muted); }
.rksap-gallery-count { min-width: 132px; padding: 16px 20px; border: 1px solid #dfd2bf; border-radius: 16px; background: rgba(255,255,255,.8); text-align: center; box-shadow: 0 10px 30px rgba(48,37,24,.05); }
.rksap-gallery-count strong, .rksap-gallery-count span { display: block; }
.rksap-gallery-count strong { color: var(--rksap-verm); font: 700 30px/1 "Noto Serif Bengali", serif; }
.rksap-gallery-count span { margin-top: 7px; color: var(--rksap-muted); font-size: 12px; }
.rksap-album-rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px, 285px); gap: 14px; margin-bottom: 42px; padding: 3px 2px 14px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; scrollbar-color: #c9a46c transparent; }
.rksap-album-chip { min-height: 82px; display: grid; grid-template-columns: 74px minmax(0, 1fr); align-items: center; gap: 13px; padding: 8px; border: 1px solid #e3d7c6; border-radius: 14px; background: rgba(255,255,255,.84); box-shadow: 0 8px 22px rgba(48,37,24,.04); transition: border-color .25s, transform .25s, box-shadow .25s; }
.rksap-album-chip:hover { transform: translateY(-2px); border-color: #c69a59; box-shadow: 0 12px 28px rgba(48,37,24,.09); }
.rksap-album-chip.active { border-color: var(--rksap-verm); background: #fff8f3; box-shadow: inset 0 0 0 1px var(--rksap-verm); }
.rksap-album-thumb, .rksap-album-all-mark { width: 74px; height: 64px; display: grid; place-items: center; overflow: hidden; border-radius: 10px; background: #efe3d1; color: var(--rksap-verm); font: 25px serif; }
.rksap-album-thumb img { width: 100%; height: 100%; object-fit: cover; }
.rksap-album-chip > span:last-child { min-width: 0; }
.rksap-album-chip strong, .rksap-album-chip small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rksap-album-chip strong { font: 600 15px/1.4 "Noto Serif Bengali", serif; }
.rksap-album-chip small { margin-top: 5px; color: var(--rksap-muted); font-size: 11px; }
.rksap-gallery-grid { gap: 26px; }
.rksap-gallery-item { border-radius: 20px; box-shadow: 0 16px 42px rgba(48,37,24,.08); }
.rksap-gallery-open::before { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(22,18,13,.28)); opacity: 0; transition: opacity .3s; pointer-events: none; }
.rksap-gallery-open:hover::before { opacity: 1; }
.rksap-gallery-item figcaption > div { min-width: 0; }
.rksap-gallery-item figcaption strong, .rksap-gallery-item figcaption small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rksap-gallery-item figcaption > span { min-width: 26px; font-size: 13px; }
.rksap-lightbox figure { margin: 0; padding: 12px; border-radius: 16px; background: #161613; box-shadow: 0 30px 90px rgba(0,0,0,.5); }
.rksap-lightbox img { border-radius: 10px; }
.rksap-lightbox-caption { padding: 12px 8px 4px; color: #f4eee5; text-align: center; font-family: "Noto Serif Bengali", serif; }

@media (max-width: 767px) {
    .rksap-gallery-heading { align-items: flex-start; flex-direction: column; }
    .rksap-gallery-count { min-width: 0; width: 100%; display: flex; align-items: center; justify-content: center; gap: 9px; }
    .rksap-gallery-count span { margin-top: 0; }
    .rksap-album-rail { grid-auto-columns: minmax(215px, 78vw); margin-inline: calc((100vw - 100%) / -2); padding-inline: max(20px, calc((100vw - 100%) / 2)); }
    .rksap-gallery-grid { gap: 20px; }
    .rksap-gallery-item { border-radius: 16px; }
    .rksap-gallery-open::after { opacity: 1; transform: none; }
    .rksap-lightbox figure { padding: 8px; }
}

/* v1.0.6 — balanced memorial frame and uniform, uncropped gallery */
.rksap-homeo-photo {
    min-height: 540px;
    align-content: center;
    padding: 54px 40px 82px;
    border: 1px solid #dfcdaF;
    border-radius: 28px;
    background:
        radial-gradient(circle at 50% 42%, rgba(255,255,255,.96) 0 34%, transparent 35%),
        linear-gradient(145deg, #f8f0e3, #ead9bf);
}
.rksap-homeo-photo::before {
    inset: 16px;
    width: auto;
    height: auto;
    border: 1px solid rgba(181,133,58,.28);
    border-radius: 20px;
}
.rksap-homeo-medallion {
    position: relative;
    z-index: 1;
    width: min(390px, 88%);
    aspect-ratio: 1;
    overflow: hidden;
    border: 10px solid #fffdf8;
    border-radius: 50%;
    background: #fff;
    box-shadow:
        0 0 0 1px #cfae76,
        0 0 0 14px rgba(255,253,248,.62),
        0 22px 48px rgba(71,48,21,.16);
}
.rksap-homeo-medallion::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid rgba(133,86,28,.2);
    border-radius: 50%;
    pointer-events: none;
}
.rksap-homeo-medallion img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border-radius: 50%;
    transform: scale(1.1);
}
.rksap-homeo-photo > span {
    right: 40px;
    bottom: 27px;
    left: 40px;
    padding: 10px 16px;
    border: 1px solid rgba(185,139,71,.25);
    background: rgba(255,253,249,.92);
    color: #855c27;
    letter-spacing: .01em;
}

.rksap-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}
.rksap-gallery-item,
.rksap-gallery-item.g1,
.rksap-gallery-item.g5 {
    grid-column: auto;
    margin: 0;
}
.rksap-gallery-open,
.rksap-gallery-item.g1 .rksap-gallery-open,
.rksap-gallery-item.g5 .rksap-gallery-open {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    display: grid;
    place-items: center;
    background:
        linear-gradient(135deg, rgba(255,255,255,.72), rgba(239,228,211,.9)),
        #eee3d2;
}
.rksap-gallery-open img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    transition: transform .35s ease;
}
.rksap-gallery-open:hover img { transform: scale(1.018); }
.rksap-gallery-item figcaption { min-height: 82px; align-items: flex-start; padding: 17px 18px 18px; }

@media (max-width: 991px) {
    .rksap-gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767px) {
    .rksap-homeo-photo { min-height: 430px; padding: 42px 24px 76px; border-radius: 22px; }
    .rksap-homeo-medallion { width: min(310px, 88%); border-width: 7px; }
    .rksap-homeo-photo > span { right: 22px; bottom: 22px; left: 22px; }
    .rksap-gallery-grid { grid-template-columns: 1fr; gap: 22px; }
    .rksap-gallery-open,
    .rksap-gallery-item.g1 .rksap-gallery-open,
    .rksap-gallery-item.g5 .rksap-gallery-open { height: auto; aspect-ratio: 4 / 3; }
}

.rksap-homeo-section { background: linear-gradient(180deg, #fffdf9, #f6f0e6); }
.rksap-homeo-shell { display: grid; grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr); gap: clamp(36px, 6vw, 88px); align-items: center; padding-top: 20px; padding-bottom: 20px; }
.rksap-homeo-photo { position: relative; min-height: 490px; display: grid; place-items: center; overflow: hidden; border: 1px solid #e1cfb4; border-radius: 48% 48% 24px 24px; background: radial-gradient(circle at 50% 30%, #fff, #eadcc8); box-shadow: 0 24px 70px rgba(74,52,27,.12); }
.rksap-homeo-photo::before { content: ""; position: absolute; inset: 18px; border: 1px solid rgba(181,133,58,.32); border-radius: inherit; pointer-events: none; }
.rksap-homeo-photo img { width: 84%; height: 84%; object-fit: contain; }
.rksap-homeo-photo > span { position: absolute; right: 24px; bottom: 22px; left: 24px; padding: 11px 16px; border-radius: 999px; background: rgba(255,253,249,.94); color: #8f5e1d; text-align: center; font-size: 13px; font-weight: 600; }
.rksap-homeo-copy h2 { max-width: 680px; margin: 10px 0 4px; font: 700 clamp(34px, 4vw, 58px)/1.15 "Noto Serif Bengali", serif; }
.rksap-homeo-copy h3 { margin: 0 0 18px; color: var(--rksap-verm); font: 600 20px/1.4 "Noto Serif Bengali", serif; }
.rksap-homeo-copy > p { max-width: 720px; color: var(--rksap-muted); font-size: 17px; line-height: 1.9; }
.rksap-impact-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin: 30px 0; border: 1px solid #e3d5c0; border-radius: 16px; background: rgba(255,255,255,.72); }
.rksap-impact-grid > div { padding: 22px 18px; text-align: center; }
.rksap-impact-grid > div + div { border-left: 1px solid #e3d5c0; }
.rksap-impact-grid strong, .rksap-impact-grid span { display: block; }
.rksap-impact-grid strong { color: var(--rksap-verm); font: 700 32px/1.2 "Noto Serif Bengali", serif; }
.rksap-impact-grid span { margin-top: 6px; color: var(--rksap-muted); font-size: 13px; }
.rksap-homeo-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.rksap-homeo-actions > span { color: #715d45; font-weight: 600; }

@media (max-width: 991px) {
    .rksap-homeo-shell { grid-template-columns: 1fr; }
    .rksap-homeo-photo { min-height: 420px; max-width: 620px; width: 100%; margin: auto; }
}

@media (max-width: 767px) {
    .rksap-homeo-photo { min-height: 350px; border-radius: 42% 42% 18px 18px; }
    .rksap-impact-grid { grid-template-columns: 1fr; }
    .rksap-impact-grid > div + div { border-top: 1px solid #e3d5c0; border-left: 0; }
    .rksap-homeo-actions { align-items: stretch; flex-direction: column; }
}

body:has(.rksap-site) header#top,
body:has(.rksap-site) footer#bottom,
body:has(.rksap-site) .o_header_standard {
    display: none !important;
}

.rksap-site {
    min-height: 100vh;
    overflow-x: clip;
    background: var(--rksap-paper);
    color: var(--rksap-ink);
    font-family: "Noto Sans Bengali", sans-serif;
    font-size: 16px;
    line-height: 1.7;
}
.rksap-site *, .rksap-site *::before, .rksap-site *::after { box-sizing: border-box; }
.rksap-site a { color: inherit; text-decoration: none; }
.rksap-site button { font: inherit; }
.rksap-wrap { width: min(1320px, calc(100% - 64px)); margin-inline: auto; }
.rksap-skip-link { position: fixed; left: 18px; top: -70px; z-index: 9999; padding: 10px 16px; background: var(--rksap-ink); color: #fff; }
.rksap-skip-link:focus { top: 18px; }

.rksap-utility { height: 42px; border-bottom: 1px solid var(--rksap-stone); background: #f2eee7; color: var(--rksap-muted); font-size: 12px; }
.rksap-utility-inner { height: 100%; display: flex; align-items: center; justify-content: center; gap: 16px; text-align: center; }
.rksap-motto { color: var(--rksap-gold); font-family: "Noto Serif Bengali", serif; font-size: 14px; font-weight: 600; letter-spacing: .04em; }
.rksap-header { position: sticky; top: 0; z-index: 100; height: 92px; border-bottom: 1px solid var(--rksap-stone); background: rgba(255, 253, 249, .95); backdrop-filter: blur(16px); }
.rksap-nav-shell { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.rksap-brand { min-width: 285px; display: flex; align-items: center; gap: 13px; }
.rksap-brand-mark { width: 48px; height: 48px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid var(--rksap-gold); border-radius: 50% 50% 46% 54%; background: #fff9ee; color: var(--rksap-verm); font: 21px serif; }
.rksap-logo-mark { overflow: hidden; border: 0; border-radius: 8px; background: transparent; }
.rksap-logo-mark img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.rksap-brand strong, .rksap-brand small { display: block; }
.rksap-brand strong { font: 600 19px/1.25 "Noto Serif Bengali", serif; }
.rksap-brand small { margin-top: 3px; color: var(--rksap-muted); font-size: 12px; }
.rksap-nav { display: flex; align-items: center; gap: 23px; font-size: 13px; font-weight: 500; }
.rksap-nav > a { position: relative; padding: 35px 0 31px; white-space: nowrap; }
.rksap-nav > a:not(.rksap-nav-donate)::after { content: ""; position: absolute; right: 100%; bottom: 24px; left: 0; height: 2px; background: var(--rksap-verm); transition: right .25s; }
.rksap-nav > a:hover::after, .rksap-nav > a.active::after { right: 0; }
.rksap-nav > a.active { color: var(--rksap-verm); }
.rksap-nav .rksap-nav-donate { min-width: 128px; padding: 12px 20px; border: 1px solid var(--rksap-verm); border-radius: 999px; background: linear-gradient(135deg, #b9412f, var(--rksap-verm-dark)); box-shadow: 0 7px 20px rgba(132, 41, 30, .18); color: #fff !important; font-weight: 700; text-align: center; }
.rksap-nav .rksap-nav-donate:hover { transform: translateY(-1px); background: var(--rksap-verm-dark); box-shadow: 0 10px 24px rgba(132, 41, 30, .25); color: #fff !important; }
.rksap-menu-button { display: none; border: 0; background: none; padding: 10px; }
.rksap-menu-button span { display: block; width: 25px; height: 2px; margin: 5px; background: var(--rksap-ink); transition: .2s; }

.rksap-live-bar { border-bottom: 1px solid #e5d8c7; background: #fffaf2; }
.rksap-live-inner { min-height: 48px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 20px; }
.rksap-live-label { display: inline-flex; align-items: center; gap: 8px; color: var(--rksap-verm); font-size: 12px; font-weight: 700; letter-spacing: .05em; white-space: nowrap; }
.rksap-live-label i { width: 8px; height: 8px; border-radius: 50%; background: #d9412f; box-shadow: 0 0 0 5px rgba(217,65,47,.1); animation: rksap-pulse 1.8s infinite; }
.rksap-live-viewport { position: relative; min-height: 28px; overflow: hidden; }
.rksap-live-item { position: absolute; inset: 0; display: flex; align-items: center; gap: 12px; overflow: hidden; opacity: 0; transform: translateY(8px); pointer-events: none; transition: opacity .35s, transform .35s; white-space: nowrap; }
.rksap-live-item.active { opacity: 1; transform: none; pointer-events: auto; }
.rksap-live-item strong { color: var(--rksap-ink); }
.rksap-live-item span { overflow: hidden; color: var(--rksap-muted); text-overflow: ellipsis; }
.rksap-live-item a { color: var(--rksap-verm); font-weight: 700; }
.rksap-live-controls { display: flex; gap: 5px; }
.rksap-live-controls button { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid var(--rksap-stone); border-radius: 50%; background: #fff; color: var(--rksap-verm); font-size: 20px; line-height: 1; }
.rksap-live-controls button:hover { border-color: var(--rksap-verm); }

.rksap-hero { position: relative; min-height: 700px; overflow: hidden; background: radial-gradient(circle at 78% 35%, rgba(218,188,139,.26) 0, transparent 34%), linear-gradient(145deg, #fffefa 0%, #f8f3eb 54%, #f0e6d7 100%); }
.rksap-hero::after { content: ""; position: absolute; inset: 0; opacity: .22; background-image: radial-gradient(#b98b47 .6px, transparent .6px); background-size: 9px 9px; pointer-events: none; }
.rksap-hero-grid { position: relative; z-index: 2; min-height: 700px; display: grid; grid-template-columns: 47% 53%; align-items: center; gap: 28px; }
.rksap-hero-copy { padding: 60px 0; animation: rksap-rise .6s ease-out both; }
.rksap-eyebrow { display: inline-block; color: var(--rksap-gold); font-size: 12px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.rksap-hero h1, .rksap-page-hero h1, .rksap-event-detail-hero h1 { margin: 18px 0 20px; font-family: "Noto Serif Bengali", serif; font-weight: 600; letter-spacing: -.035em; line-height: .98; }
.rksap-hero h1 { max-width: 680px; font-size: clamp(58px, 7vw, 104px); }
.rksap-hero h1 em { color: var(--rksap-verm); font-style: normal; }
.rksap-hero-copy > p { max-width: 580px; color: var(--rksap-muted); font-size: 18px; line-height: 1.9; }
.rksap-next-event-chip { max-width: 550px; display: grid; grid-template-columns: 58px 1fr auto; align-items: center; gap: 14px; margin-top: 24px; padding: 10px 14px 10px 10px; border: 1px solid #ddc9aa; border-radius: 14px; background: rgba(255,253,249,.8); box-shadow: 0 10px 32px rgba(78,56,31,.06); backdrop-filter: blur(8px); transition: .2s; }
.rksap-next-event-chip:hover { transform: translateY(-2px); border-color: var(--rksap-gold); box-shadow: 0 14px 38px rgba(78,56,31,.1); }
.rksap-next-event-date { min-height: 54px; display: grid; place-items: center; align-content: center; border-radius: 10px; background: var(--rksap-verm); color: #fff; line-height: 1; }
.rksap-next-event-date strong { font-size: 20px; }
.rksap-next-event-date small { margin-top: 4px; font-size: 10px; text-transform: uppercase; }
.rksap-next-event-chip > span:nth-child(2) small, .rksap-next-event-chip > span:nth-child(2) strong { display: block; }
.rksap-next-event-chip > span:nth-child(2) small { color: var(--rksap-gold); font-size: 11px; font-weight: 700; }
.rksap-next-event-chip > span:nth-child(2) strong { margin-top: 2px; font-family: "Noto Serif Bengali", serif; font-size: 17px; }
.rksap-next-event-chip > b { color: var(--rksap-verm); font-size: 22px; }
.rksap-hero-actions { display: flex; align-items: center; gap: 34px; margin-top: 34px; }
.rksap-button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; padding: 12px 23px; border: 1px solid transparent; border-radius: 999px; font-weight: 600; transition: .25s; }
.rksap-button span, .rksap-text-link span { transition: transform .25s; }
.rksap-button:hover span, .rksap-text-link:hover span { transform: translateX(4px); }
.rksap-primary { background: var(--rksap-verm); color: #fff !important; }
.rksap-primary:hover { transform: translateY(-2px); background: var(--rksap-verm-dark); }
.rksap-outline { border-color: var(--rksap-verm); color: var(--rksap-verm) !important; }
.rksap-outline:hover { background: var(--rksap-verm); color: #fff !important; }
.rksap-text-link { display: inline-flex; gap: 18px; border-bottom: 1px solid #c88b82; padding-bottom: 5px; color: var(--rksap-verm) !important; font-weight: 600; }
.rksap-hero-art { position: relative; height: 640px; display: flex; align-items: flex-end; justify-content: center; }
.rksap-arch { position: relative; width: min(520px, 90%); height: 620px; overflow: hidden; border: 8px double #d5c5ac; border-radius: 260px 260px 18px 18px; background: #efe5d6; box-shadow: 0 22px 60px rgba(84, 58, 35, .12); animation: rksap-appear .8s ease-out; }
.rksap-arch img { width: 100%; height: 100%; object-fit: cover; object-position: center 28%; }
.rksap-lotus { position: absolute; z-index: 2; top: 10px; left: 50%; transform: translateX(-50%); color: var(--rksap-gold); font-size: 42px; text-shadow: 0 0 18px white; }
.rksap-blessing { position: absolute; bottom: 2px; padding: 9px 27px; border: 1px solid var(--rksap-stone); border-radius: 99px; background: var(--rksap-white); box-shadow: 0 8px 30px rgba(40,30,20,.08); color: var(--rksap-gold); font-family: "Noto Serif Bengali", serif; font-weight: 600; }
.rksap-hero-sketch { position: absolute; bottom: -150px; width: 340px; height: 390px; border: 1px solid #cdbda4; border-radius: 50% 50% 4px 4px; opacity: .22; }
.rksap-hero-sketch.left { left: -120px; }
.rksap-hero-sketch.right { right: -130px; }

.rksap-section { padding: 100px 0; }
.rksap-two-col { display: grid; grid-template-columns: 1fr 1.25fr; gap: 100px; align-items: start; }
.rksap-site h2 { margin: 14px 0 20px; font: 600 clamp(36px, 4vw, 56px)/1.2 "Noto Serif Bengali", serif; letter-spacing: -.025em; }
.rksap-site h3 { font: 600 22px/1.4 "Noto Serif Bengali", serif; }
.rksap-lead { margin-top: 0; color: #4c4e46; font-size: 20px; line-height: 1.9; }
.rksap-section-head { display: flex; align-items: end; justify-content: space-between; margin-bottom: 48px; }
.rksap-section-head h2 { margin-bottom: 0; }
.rksap-services, .rksap-values, .rksap-principles { border-block: 1px solid var(--rksap-stone); background: #f0ece4; }
.rksap-card-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.rksap-service-card { position: relative; min-height: 310px; padding: 30px; border: 1px solid var(--rksap-stone); background: var(--rksap-white); transition: .3s; }
.rksap-service-card:hover { transform: translateY(-6px); border-color: #c8b291; box-shadow: 0 18px 50px rgba(50,40,25,.08); }
.rksap-service-card p { color: var(--rksap-muted); }
.rksap-service-card > a { position: absolute; right: 28px; bottom: 26px; color: var(--rksap-verm); font-size: 25px; }
.rksap-card-icon { width: 50px; height: 50px; display: grid; place-items: center; border: 1px solid var(--rksap-gold); border-radius: 50%; color: var(--rksap-verm); font-size: 22px; }
.rksap-card-icon::before { content: "✦"; }
.rksap-card-icon.icon-food::before { content: "♡"; }
.rksap-card-icon.icon-education::before { content: "⌘"; }
.rksap-card-icon.icon-health::before { content: "✚"; }
.rksap-card-icon.icon-relief::before { content: "◇"; }
.rksap-card-icon.icon-worship::before { content: "ॐ"; }
.rksap-quote-band { padding: 80px 0; background: var(--rksap-ink); color: #fff; text-align: center; }
.rksap-quote-band span { color: var(--rksap-gold); font: 90px/.5 serif; }
.rksap-quote-band blockquote { max-width: 1000px; margin: 20px auto; font: 500 clamp(36px, 5vw, 64px)/1.35 "Noto Serif Bengali", serif; }
.rksap-quote-band p { color: #c9c8bd; }
.rksap-event-feature { display: grid; grid-template-columns: 130px 1fr auto; gap: 42px; align-items: center; padding: 38px; border: 1px solid var(--rksap-stone); background: var(--rksap-white); }
.rksap-date-tile { width: 130px; height: 130px; display: grid; place-items: center; align-content: center; border: 1px solid var(--rksap-gold); background: #f7eee1; }
.rksap-date-tile strong { color: var(--rksap-verm); font-size: 25px; }
.rksap-date-tile span { font: 600 27px "Noto Serif Bengali", serif; }
.rksap-event-feature h2 { margin: 8px 0; font-size: 35px; }
.rksap-event-feature p { margin: 0; color: var(--rksap-muted); }
.rksap-donate-banner { padding: 72px 0; background: var(--rksap-verm); color: #fff; }
.rksap-donate-banner .rksap-wrap { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.rksap-donate-banner h2 { max-width: 800px; margin: 8px 0 0; }
.rksap-donate-banner .rksap-eyebrow { color: #e6c9a1; }
.rksap-light { flex: 0 0 auto; background: #fff; color: var(--rksap-verm) !important; }

.rksap-page-hero { position: relative; overflow: hidden; padding: 110px 0 90px; border-bottom: 1px solid var(--rksap-stone); background: linear-gradient(135deg, #f9f6f0, #ece4d7); }
.rksap-page-hero::after { content: "ॐ"; position: absolute; top: -60px; right: 8%; color: var(--rksap-gold); font: 300px serif; opacity: .06; }
.rksap-page-hero h1 { max-width: 960px; font-size: clamp(56px, 7vw, 90px); }
.rksap-page-hero p { max-width: 680px; color: var(--rksap-muted); font-size: 19px; }
.rksap-story-grid, .rksap-donate-grid, .rksap-contact-grid { display: grid; grid-template-columns: .9fr 1.3fr; gap: 90px; align-items: center; }
.rksap-arch-card { min-height: 500px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 50px; border: 8px double var(--rksap-stone); border-radius: 230px 230px 10px 10px; background: radial-gradient(circle, #fff8e8, #e9decf); text-align: center; }
.rksap-arch-card > span { color: var(--rksap-verm); font: 80px serif; }
.rksap-arch-card h3 { color: var(--rksap-gold); font-size: 32px; }
.rksap-leader { display: flex; align-items: center; gap: 15px; margin-top: 35px; padding-top: 26px; border-top: 1px solid var(--rksap-stone); }
.rksap-leader-mark { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; background: var(--rksap-verm); color: #fff; font: 600 24px "Noto Serif Bengali", serif; }
.rksap-leader small, .rksap-leader strong, .rksap-leader span { display: block; }
.rksap-leader strong { font: 600 20px "Noto Serif Bengali", serif; }
.rksap-leader small, .rksap-leader span { color: var(--rksap-muted); font-size: 12px; }
.rksap-three-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.rksap-three-grid article { padding: 35px; border-top: 1px solid var(--rksap-gold); background: var(--rksap-white); }
.rksap-three-grid article > span { color: var(--rksap-gold); font: 600 14px serif; }
.rksap-three-grid p { color: var(--rksap-muted); }
.rksap-about-visual { position: relative; min-height: 500px; overflow: hidden; border: 1px solid #ccb995; border-radius: 240px 240px 14px 14px; background: #eee3d2; box-shadow: 0 24px 65px rgba(60,43,22,.12); }
.rksap-about-visual > img { width: 100%; height: 500px; display: block; object-fit: cover; }
.rksap-about-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(31,28,22,.72)); pointer-events: none; }
.rksap-about-visual-caption { position: absolute; z-index: 2; right: 24px; bottom: 22px; left: 24px; display: flex; align-items: center; gap: 14px; color: #fff; }
.rksap-about-visual-caption > span { width: 46px; height: 46px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.5); border-radius: 50%; color: #f0cc8b; font: 24px serif; }
.rksap-about-visual-caption small, .rksap-about-visual-caption strong { display: block; }
.rksap-about-visual-caption small { color: #e4d8c7; font-size: 11px; }
.rksap-about-visual-caption strong { font-family: "Noto Serif Bengali", serif; font-size: 18px; }
.rksap-ideals-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.rksap-ideal-card { padding: 25px; text-align: center; }
.rksap-portrait-symbol { width: 200px; height: 260px; display: grid; place-items: center; overflow: hidden; margin: 0 auto 28px; border: 5px double var(--rksap-stone); border-radius: 110px 110px 8px 8px; background: linear-gradient(160deg, #f4eadc, #dbcdbb); color: var(--rksap-gold); font-size: 46px; }
.rksap-portrait-symbol img { width: 100%; height: 100%; object-fit: cover; }
.rksap-ideal-card h2 { font-size: 36px; }
.rksap-ideal-card p { color: var(--rksap-muted); }
.rksap-principle-list > div { display: flex; align-items: center; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--rksap-stone); }
.rksap-principle-list span { width: 35px; height: 35px; display: grid; place-items: center; border: 1px solid var(--rksap-gold); border-radius: 50%; color: var(--rksap-verm); }
.rksap-principle-list p { margin: 0; font-size: 18px; }
.rksap-activity-list article { display: grid; grid-template-columns: 70px 60px 1fr; gap: 28px; align-items: start; padding: 42px 0; border-bottom: 1px solid var(--rksap-stone); }
.rksap-activity-number { color: var(--rksap-gold); font: 500 16px serif; }
.rksap-activity-list h2 { margin: 0 0 9px; font-size: 37px; }
.rksap-activity-list p { max-width: 830px; margin: 0; color: var(--rksap-muted); }
.rksap-soft-callout { padding: 90px 0; background: #e8e1d5; }

.rksap-filter-pills { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 42px; }
.rksap-filter-pills a { padding: 9px 18px; border: 1px solid var(--rksap-stone); border-radius: 999px; background: var(--rksap-white); color: var(--rksap-muted); }
.rksap-filter-pills a:hover, .rksap-filter-pills a.active { border-color: var(--rksap-verm); background: var(--rksap-verm); color: #fff; }
.rksap-event-list .rksap-event-row { display: grid; grid-template-columns: 80px 1fr auto; align-items: center; padding: 30px 20px; border-bottom: 1px solid var(--rksap-stone); background: transparent; transition: padding .2s, background .2s, box-shadow .2s; }
.rksap-event-list .rksap-event-row:hover { padding-left: 30px; background: var(--rksap-white); box-shadow: 0 10px 34px rgba(50, 40, 25, .06); }
.rksap-event-list .rksap-event-row:focus-visible { outline: 3px solid rgba(168, 58, 42, .35); outline-offset: 2px; }
.rksap-event-index { color: var(--rksap-gold); font-family: serif; }
.rksap-event-list small { color: var(--rksap-verm); font-weight: 600; }
.rksap-event-list h2 { margin: 4px 0; font-size: 31px; }
.rksap-event-list p { margin: 0; color: var(--rksap-muted); }
.rksap-event-arrow { color: var(--rksap-verm); font-size: 26px; transition: transform .2s; }
.rksap-event-row:hover .rksap-event-arrow { transform: translateX(5px); }
.rksap-notice { margin-top: 35px; padding: 20px; border-left: 3px solid var(--rksap-gold); background: #efe9df; color: var(--rksap-muted); }
.rksap-empty-state { padding: 80px 20px; border: 1px solid var(--rksap-stone); background: var(--rksap-white); text-align: center; }
.rksap-empty-state > span { color: var(--rksap-gold); font: 72px serif; }
.rksap-empty-state h2 { font-size: 34px; }

.rksap-event-detail-hero { padding: 80px 0; background: linear-gradient(135deg, #f9f6f0, #ece4d7); }
.rksap-event-detail-grid { display: grid; grid-template-columns: 1fr .9fr; gap: 70px; align-items: center; }
.rksap-back-link { display: block; margin-bottom: 42px; color: var(--rksap-verm) !important; font-weight: 600; }
.rksap-event-detail-hero h1 { font-size: clamp(52px, 6vw, 82px); line-height: 1.08; }
.rksap-event-detail-hero p { max-width: 720px; color: var(--rksap-muted); font-size: 19px; }
.rksap-event-meta { display: flex; flex-wrap: wrap; gap: 16px 30px; margin-top: 28px; color: var(--rksap-verm); font-weight: 600; }
.rksap-event-cover { min-height: 430px; display: grid; place-items: center; overflow: hidden; border: 8px double #d5c5ac; border-radius: 220px 220px 12px 12px; background: #e8dac5; color: rgba(168,58,42,.25); font: 100px serif; }
.rksap-event-cover img { width: 100%; height: 100%; min-height: 430px; object-fit: cover; }
.rksap-detail-columns { display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; align-items: start; }
.rksap-rich-text { font-size: 18px; }
.rksap-rich-text img { max-width: 100%; height: auto; }
.rksap-schedule-card { padding: 38px; border: 1px solid var(--rksap-stone); background: var(--rksap-white); box-shadow: 0 18px 60px rgba(50,40,25,.07); }
.rksap-schedule-card h2 { margin-top: 5px; font-size: 34px; }
.rksap-schedule-line { display: grid; grid-template-columns: 80px 1fr; gap: 20px; padding: 22px 0; border-top: 1px solid var(--rksap-stone); }
.rksap-schedule-line time strong, .rksap-schedule-line time small { display: block; }
.rksap-schedule-line time strong { color: var(--rksap-verm); font-size: 18px; }
.rksap-schedule-line time small { color: var(--rksap-muted); }
.rksap-schedule-line h3 { margin: 0; font-size: 19px; }
.rksap-schedule-line p { margin: 6px 0 0; color: var(--rksap-muted); font-size: 14px; }

.rksap-gallery-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 20px; }
.rksap-gallery-item { grid-column: span 4; margin: 0; }
.rksap-gallery-item.g1, .rksap-gallery-item.g5 { grid-column: span 8; }
.rksap-gallery-open { width: 100%; height: 300px; display: block; overflow: hidden; border: 0; background: #d7c5aa; padding: 0; cursor: zoom-in; }
.rksap-gallery-item.g1 .rksap-gallery-open, .rksap-gallery-item.g5 .rksap-gallery-open { height: 420px; }
.rksap-gallery-open img { width: 100%; height: 100%; object-fit: cover; transition: transform .45s; }
.rksap-gallery-open:hover img { transform: scale(1.035); }
.rksap-gallery-item figcaption { display: flex; gap: 15px; padding: 16px 2px; }
.rksap-gallery-item figcaption > span { color: var(--rksap-gold); font-family: serif; }
.rksap-gallery-item figcaption strong, .rksap-gallery-item figcaption small { display: block; }
.rksap-gallery-item figcaption strong { font-family: "Noto Serif Bengali", serif; }
.rksap-gallery-item figcaption small { color: var(--rksap-muted); }
.rksap-lightbox { width: min(1100px, calc(100% - 32px)); max-width: none; max-height: calc(100vh - 32px); overflow: visible; border: 0; background: transparent; padding: 0; }
.rksap-lightbox::backdrop { background: rgba(20,20,17,.9); backdrop-filter: blur(4px); }
.rksap-lightbox img { display: block; max-width: 100%; max-height: calc(100vh - 32px); margin: auto; object-fit: contain; }
.rksap-lightbox-close { position: absolute; z-index: 2; top: -18px; right: -12px; width: 44px; height: 44px; border: 1px solid #fff5; border-radius: 50%; background: #222; color: #fff; font-size: 28px; line-height: 1; }

.rksap-donate-card, .rksap-contact-card { padding: 45px; border: 1px solid var(--rksap-stone); background: var(--rksap-white); box-shadow: 0 22px 70px rgba(55,44,28,.08); text-align: center; }
.rksap-donate-card > span { color: var(--rksap-gold); font: 72px serif; }
.rksap-donate-card h2, .rksap-contact-card h2 { font-size: 35px; }
.rksap-donate-card p, .rksap-contact-card p { color: var(--rksap-muted); }
.rksap-donate-card small { display: block; margin-top: 16px; color: var(--rksap-muted); }
.rksap-full { width: 100%; margin-top: 12px; }
.rksap-use-list { margin-top: 30px; }
.rksap-use-list p { margin: 0; padding: 11px 0; border-bottom: 1px solid var(--rksap-stone); color: #52544d; }
.rksap-contact-lines { margin-top: 35px; }
.rksap-contact-lines > a, .rksap-contact-lines > div { display: flex; align-items: center; gap: 18px; padding: 20px 0; border-top: 1px solid var(--rksap-stone); text-align: left; }
.rksap-contact-lines > * > span { width: 45px; height: 45px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid var(--rksap-gold); border-radius: 50%; color: var(--rksap-verm); }
.rksap-contact-lines small, .rksap-contact-lines strong, .rksap-contact-lines p { display: block; margin: 0; }
.rksap-contact-lines small { color: var(--rksap-muted); }
.rksap-contact-lines strong { font-size: 18px; }

.rksap-teachings { border-block: 1px solid var(--rksap-stone); background: #ede7dc; }
.rksap-teachings-head > p { max-width: 430px; margin: 0; color: var(--rksap-muted); }
.rksap-quote-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.rksap-quote-card { position: relative; min-height: 300px; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 34px; border: 1px solid var(--rksap-stone); background: var(--rksap-white); }
.rksap-quote-card::after { content: "ॐ"; position: absolute; right: -12px; bottom: -48px; color: rgba(185,139,71,.07); font: 150px serif; }
.rksap-quote-mark { color: var(--rksap-gold); font: 72px/.5 Georgia, serif; }
.rksap-quote-card blockquote { position: relative; z-index: 1; margin: 20px 0 32px; font: 600 clamp(23px,2vw,30px)/1.55 "Noto Serif Bengali", serif; }
.rksap-quote-card footer { position: relative; z-index: 1; padding-top: 18px; border-top: 1px solid var(--rksap-stone); }
.rksap-quote-card footer strong, .rksap-quote-card footer small { display: block; }
.rksap-quote-card footer strong { color: var(--rksap-verm); }
.rksap-quote-card footer small { color: var(--rksap-muted); }
.rksap-sacred-path { background: #fffdf9; }
.rksap-sacred-intro { max-width: 850px; margin: 0 auto 50px; text-align: center; }
.rksap-sacred-intro p { max-width: 660px; margin: auto; color: var(--rksap-muted); font-size: 18px; }
.rksap-path-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.rksap-path-grid > a { padding: 32px; border: 1px solid var(--rksap-stone); border-radius: 4px; background: #faf6ef; transition: .25s; }
.rksap-path-grid > a:hover { transform: translateY(-5px); border-color: var(--rksap-gold); box-shadow: 0 18px 45px rgba(60,43,22,.08); }
.rksap-path-grid > a > span { width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--rksap-gold); border-radius: 50%; color: var(--rksap-verm); font-size: 22px; }
.rksap-path-grid h3 { margin: 24px 0 10px; font-size: 25px; }
.rksap-path-grid p { min-height: 58px; color: var(--rksap-muted); }
.rksap-path-grid b { color: var(--rksap-verm); font-size: 14px; }

.rksap-footer { padding: 75px 0 20px; background: #22251f; color: #f3efe6; }
.rksap-footer-grid { display: grid; grid-template-columns: 1.5fr .7fr 1fr .9fr; gap: 55px; }
.rksap-footer-grid p { color: #aeb0a8; font-size: 14px; white-space: pre-line; }
.rksap-footer-grid h3 { color: #d8bb86; font-size: 17px; }
.rksap-footer-grid a { display: block; margin: 8px 0; color: #c5c6bf; font-size: 14px; }
.rksap-footer-brand { display: flex; align-items: center; gap: 14px; font: 600 22px "Noto Serif Bengali", serif; }
.rksap-footer .rksap-brand-mark { background: transparent; }
.rksap-footer-cta { color: #e2bd7d !important; }
.rksap-copyright { display: flex; justify-content: space-between; margin-top: 55px; padding-top: 20px; border-top: 1px solid #3c3e38; color: #85877f; font-size: 12px; }

.rksap-reveal { opacity: 0; transform: translateY(20px); transition: opacity .55s ease, transform .55s ease; }
.rksap-reveal.visible { opacity: 1; transform: none; }
@keyframes rksap-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes rksap-appear { from { opacity: 0; transform: scale(.985); } to { opacity: 1; transform: none; } }
@keyframes rksap-pulse { 50% { box-shadow: 0 0 0 8px rgba(217,65,47,0); } }

@media (max-width: 1100px) {
    .rksap-wrap { width: min(calc(100% - 40px), 1100px); }
    .rksap-menu-button { display: block; z-index: 2; }
    .rksap-nav { position: absolute; top: 92px; right: 0; left: 0; display: none; flex-direction: column; align-items: stretch; gap: 0; max-height: calc(100vh - 92px); overflow-y: auto; padding: 20px; background: var(--rksap-white); box-shadow: 0 20px 40px #0002; }
    .rksap-nav.open { display: flex; }
    .rksap-nav > a { padding: 12px 10px; }
    .rksap-nav > a:not(.rksap-nav-donate)::after { bottom: 4px; }
    .rksap-nav .rksap-nav-donate { margin-top: 10px; text-align: center; }
    .rksap-card-grid { grid-template-columns: repeat(2, 1fr); }
    .rksap-quote-grid, .rksap-path-grid { grid-template-columns: 1fr 1fr; }
    .rksap-footer-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 760px) {
    .rksap-wrap { width: calc(100% - 32px); }
    .rksap-utility { height: 34px; }
    .rksap-motto { display: inline; font-size: 12px; }
    .rksap-header { height: 76px; }
    .rksap-brand { min-width: 0; }
    .rksap-brand-mark { width: 40px; height: 40px; }
    .rksap-brand strong { font-size: 15px; }
    .rksap-brand small { font-size: 10px; }
    .rksap-nav { top: 76px; max-height: calc(100vh - 76px); }
    .rksap-hero, .rksap-hero-grid { min-height: auto; }
    .rksap-hero-grid { grid-template-columns: 1fr; padding-top: 52px; }
    .rksap-hero h1 { font-size: clamp(52px, 16vw, 66px); }
    .rksap-hero-copy { padding: 30px 0; }
    .rksap-hero-copy > p { font-size: 16px; }
    .rksap-hero-actions { align-items: flex-start; flex-direction: column; gap: 22px; }
    .rksap-hero-art { height: 500px; margin-top: 20px; }
    .rksap-arch { width: min(340px, 100%); height: 480px; }
    .rksap-section { padding: 70px 0; }
    .rksap-two-col, .rksap-story-grid, .rksap-donate-grid, .rksap-contact-grid,
    .rksap-event-detail-grid, .rksap-detail-columns { grid-template-columns: 1fr; gap: 38px; }
    .rksap-section-head { align-items: flex-start; flex-direction: column; gap: 20px; }
    .rksap-card-grid, .rksap-three-grid, .rksap-ideals-grid { grid-template-columns: 1fr; }
    .rksap-live-inner { grid-template-columns: auto 1fr; gap: 12px; }
    .rksap-live-controls { display: none; }
    .rksap-live-item strong { display: none; }
    .rksap-live-item { font-size: 13px; }
    .rksap-quote-grid, .rksap-path-grid { grid-template-columns: 1fr; }
    .rksap-quote-card { min-height: 250px; }
    .rksap-path-grid p { min-height: 0; }
    .rksap-about-visual, .rksap-about-visual > img { min-height: 410px; height: 410px; }
    .rksap-service-card { min-height: 260px; }
    .rksap-event-feature { grid-template-columns: 1fr; padding: 25px; }
    .rksap-date-tile { width: 110px; height: 110px; }
    .rksap-donate-banner .rksap-wrap { align-items: flex-start; flex-direction: column; }
    .rksap-page-hero { padding: 75px 0 60px; }
    .rksap-page-hero h1 { font-size: clamp(46px, 14vw, 58px); line-height: 1.08; }
    .rksap-arch-card { min-height: 400px; }
    .rksap-activity-list article { grid-template-columns: 42px 1fr; gap: 15px; }
    .rksap-activity-list article .rksap-card-icon { display: none; }
    .rksap-activity-list h2 { font-size: 30px; }
    .rksap-event-list .rksap-event-row { grid-template-columns: 42px 1fr; padding-inline: 4px; }
    .rksap-event-arrow { display: none; }
    .rksap-event-list h2 { font-size: 27px; }
    .rksap-event-list small { font-size: 12px; }
    .rksap-event-detail-hero { padding: 55px 0; }
    .rksap-event-detail-hero h1 { font-size: clamp(44px, 13vw, 60px); }
    .rksap-event-cover, .rksap-event-cover img { min-height: 340px; }
    .rksap-schedule-card { padding: 25px; }
    .rksap-gallery-item, .rksap-gallery-item.g1, .rksap-gallery-item.g5 { grid-column: span 12; }
    .rksap-gallery-open, .rksap-gallery-item.g1 .rksap-gallery-open, .rksap-gallery-item.g5 .rksap-gallery-open { height: 280px; }
    .rksap-donate-card, .rksap-contact-card { padding: 30px 22px; }
    .rksap-footer-grid { grid-template-columns: 1fr; }
    .rksap-copyright { align-items: flex-start; flex-direction: column; gap: 7px; }
    .rksap-quote-band blockquote { font-size: 35px; }
    .rksap-footer { padding-top: 55px; }
}

@media (max-width: 390px) {
    .rksap-brand strong { font-size: 13px; }
    .rksap-brand small { font-size: 9px; }
    .rksap-hero h1 { font-size: 49px; }
    .rksap-button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .rksap-site *, .rksap-site *::before, .rksap-site *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
    .rksap-reveal { opacity: 1; transform: none; }
}

/* Keep v1.0.4 card spacing after the base gallery rules. */
.rksap-gallery-item figcaption { padding: 17px 18px 19px; }
