/* Raviyan Aseman 3.3 — components */

/* Header and navigation */
:root {
  --raviyan-active-header-height:74px;
  --raviyan-mobile-header-height:58px;
}
.site-header,.raviyan-elementor-header {
  position:sticky; z-index:9000; top:0; min-height:74px; border-bottom:1px solid var(--ra-border);
  background:rgba(255,254,250,.94); backdrop-filter:blur(16px) saturate(1.12);
  transition:min-height var(--ra-normal) var(--ra-ease),box-shadow var(--ra-normal),background var(--ra-normal);
}
.site-header::after,.raviyan-elementor-header::after {
  content:""; position:absolute; right:50%; bottom:-1px; width:min(680px,68vw); height:1px;
  background:linear-gradient(90deg,transparent,var(--ra-bronze-500),var(--ra-green-700),var(--ra-bronze-500),transparent);
  transform:translateX(50%); opacity:.45;
}
.site-header.is-scrolled,.raviyan-elementor-header.is-scrolled { background:rgba(255,254,250,.98); box-shadow:0 12px 30px rgba(12,43,30,.075); }
.header-inner,.site-header-inner,.raviyan-elementor-shell {
  min-height:74px; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:28px;
}
.raviyan-elementor-shell { width:min(1280px,calc(100% - 64px)); margin-inline:auto; grid-template-columns:auto minmax(0,1fr); }
.site-header.is-scrolled :is(.header-inner,.site-header-inner) { min-height:64px; }
.brand,.site-brand,.raviyan-elementor-brand,.footer-brand-row { display:flex; align-items:center; gap:12px; }
.brand-mark,.site-brand-mark,.footer-brand-mark {
  width:44px; height:44px; flex:0 0 auto; overflow:hidden; display:grid; place-items:center;
  border:1px solid rgba(171,139,82,.65); border-radius:12px; color:#f4e5bd; background:var(--ra-green-900);
}
.brand-mark img,.site-brand-mark img,.footer-brand-mark img,.brand-mark svg,.site-brand-mark svg,.footer-brand-mark svg { width:31px; height:31px; object-fit:contain; }
.brand-title,.site-brand-title,.raviyan-elementor-brand { display:block; color:var(--ra-green-900); font-size:19px; font-weight:900; letter-spacing:-.035em; }
.brand-subtitle,.site-brand-subtitle { display:block; margin-top:3px; color:var(--ra-ink-600); font-size:10px; white-space:nowrap; }
.nav,.site-nav,.raviyan-elementor-nav ul { display:flex; align-items:center; justify-content:flex-start; gap:4px; list-style:none; }
.nav li,.site-nav li { display:contents; }
.nav a,.site-nav a,.raviyan-elementor-nav a {
  position:relative; min-height:40px; padding:0 14px; display:grid; place-items:center; border-radius:8px;
  color:#46564d; font-size:13px; font-weight:650; transition:color var(--ra-normal) var(--ra-ease),background var(--ra-normal) var(--ra-ease),transform var(--ra-normal) var(--ra-ease);
}
.nav a::after,.site-nav a::after,.raviyan-elementor-nav a::after { content:""; position:absolute; right:14px; bottom:5px; left:14px; height:1px; background:var(--ra-green-700); transform:scaleX(0); transform-origin:right; transition:transform var(--ra-normal) var(--ra-ease); }
.nav a:hover,.nav a.active,.nav .current-menu-item a,.site-nav a:hover,.site-nav .current-menu-item a,.raviyan-elementor-nav a:hover,.raviyan-elementor-nav .current-menu-item a { color:var(--ra-green-900); background:var(--ra-green-100); }
.nav a:hover::after,.nav a.active::after,.nav .current-menu-item a::after,.site-nav a:hover::after,.site-nav .current-menu-item a::after,.raviyan-elementor-nav a:hover::after,.raviyan-elementor-nav .current-menu-item a::after { transform:scaleX(1); }
.header-tools,.site-tools { display:flex; align-items:center; justify-self:end; gap:8px; direction:ltr; }
.user-avatar,.notice,.site-avatar,.site-notice,.mobile-search-toggle,.site-mobile-search-toggle {
  width:39px; height:39px; display:grid; place-items:center; border:1px solid var(--ra-border); border-radius:50%;
  color:var(--ra-green-800); background:var(--ra-ivory-050);
}
.mobile-search-toggle,.site-mobile-search-toggle { display:none; }
.ra-mobile-search-icon { display:none; }
.header-search,.site-search,.mobile-search,.site-mobile-search { position:relative; }
.header-search,.site-search { width:280px; }
.header-search input,.site-search input,.mobile-search input,.site-mobile-search input {
  direction:rtl; width:100%; height:42px; border:1px solid transparent; outline:0; border-radius:21px;
  padding:0 42px 0 16px; color:var(--ra-ink-800); background:var(--ra-green-050); font-size:12px; transition:border-color var(--ra-normal) var(--ra-ease),background var(--ra-normal) var(--ra-ease),box-shadow var(--ra-normal) var(--ra-ease);
}
.header-search input:focus,.site-search input:focus,.mobile-search input:focus,.site-mobile-search input:focus { border-color:rgba(35,103,77,.35); background:#fff; box-shadow:0 0 0 4px rgba(35,103,77,.08); }
.header-search>i,.site-search>i,.mobile-search>i,.site-mobile-search>i { position:absolute; top:13px; right:15px; color:var(--ra-green-700); }
.mobile-search-panel,.site-mobile-search-panel {
  position:absolute; z-index:9100; top:100%; right:0; left:0; padding:12px 16px 16px;
  border-bottom:1px solid var(--ra-border); background:rgba(255,254,250,.98); box-shadow:var(--ra-shadow-1);
}
.mobile-search,.site-mobile-search { max-width:620px; margin:auto; }
.mobile-search input,.site-mobile-search input { height:46px; border-radius:10px; background:#fff; }
.raviyan-search-results {
  position:absolute; z-index:1000; top:calc(100% + 9px); right:0; width:380px; max-width:calc(100vw - 28px); max-height:430px;
  overflow:auto; display:none; padding:7px; direction:rtl; border:1px solid var(--ra-border); border-radius:12px;
  color:var(--ra-ink-950); background:#fff; box-shadow:0 22px 55px rgba(12,43,30,.14);
}
.raviyan-search-results[data-open="true"] { display:block; }
.mobile-search .raviyan-search-results,.site-mobile-search .raviyan-search-results { position:static; width:100%; max-width:none; margin-top:8px; }
.raviyan-search-result { min-height:62px; display:grid; grid-template-columns:46px minmax(0,1fr) 20px; align-items:center; gap:11px; padding:7px 8px; border-radius:9px; transition:background var(--ra-fast),transform var(--ra-fast); }
.raviyan-search-result:hover,.raviyan-search-result:focus-visible { color:var(--ra-green-900); background:var(--ra-green-050); transform:translateX(-2px); }
.raviyan-search-result-media { width:46px; height:46px; overflow:hidden; display:grid; place-items:center; border-radius:8px; color:var(--ra-bronze-700); background:var(--ra-ivory-200); }
.raviyan-search-result-media img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.raviyan-search-result-copy { min-width:0; }
.raviyan-search-result-copy strong,.raviyan-search-result-copy small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.raviyan-search-result-copy strong { font-size:12px; font-weight:800; }
.raviyan-search-result-copy small { margin-top:3px; color:var(--ra-ink-600); font-size:10px; }
.raviyan-search-empty,.raviyan-search-error { padding:18px; color:var(--ra-ink-600); font-size:11px; text-align:center; }

/* Home hero */
.home-hero {
  position:relative; isolation:isolate; min-height:520px; overflow:hidden; margin:32px 0 28px; padding:80px 76px;
  display:flex; align-items:center; justify-content:space-between; gap:48px; border:1px solid var(--ra-border-warm); border-radius:var(--ra-radius-xl);
  background:linear-gradient(106deg,rgba(255,254,250,.98) 0 55%,rgba(232,240,233,.93)),var(--ra-pattern); background-size:auto,210px 210px;
}
@media (max-width:980px) {
  .home-hero::before { content:""; position:absolute; z-index:-1; left:-70px; top:50%; width:360px; aspect-ratio:1; background:var(--ra-shamseh) center/contain no-repeat; opacity:.17; transform:translateY(calc(-50% + var(--ra-parallax,0px))); }
}
.home-hero::after { content:""; position:absolute; z-index:-1; right:34px; top:34px; bottom:34px; width:2px; background:linear-gradient(var(--ra-green-700),var(--ra-bronze-500),var(--ra-red-700)); opacity:.7; }
.archive-masthead__copy { max-width:780px; }
.archive-masthead__eyebrow { display:flex; align-items:center; gap:9px; color:var(--ra-bronze-700); font-size:12px; font-weight:800; }
.archive-masthead__eyebrow>span { width:7px; height:7px; border-radius:50%; background:var(--ra-red-700); }
.home-hero h1 { margin:12px 0 0; color:var(--ra-green-950); font-size:clamp(52px,6vw,82px); font-weight:900; line-height:1.25; letter-spacing:-.075em; }
.home-hero__lead { margin:4px 0 18px; color:var(--ra-green-700); font-size:clamp(21px,2.2vw,31px); font-weight:650; line-height:1.7; }
.home-hero__description { max-width:62ch; margin:0; color:var(--ra-ink-600); font-size:15px; line-height:2.05; }
.home-hero__actions { margin-top:30px; display:flex; align-items:center; gap:20px; }
.home-hero__secondary { color:var(--ra-green-800); font-size:13px; font-weight:800; border-bottom:1px solid var(--ra-bronze-500); }
.home-hero__mark { --ra-stat-motif-size:240px; flex:0 0 260px; min-width:0; min-height:270px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:var(--ra-green-900); text-align:center; }
.home-hero__mark span { position:relative; isolation:isolate; display:block; font-size:72px; font-weight:900; line-height:1.15; font-variant-numeric:tabular-nums; }
.home-hero__mark span::before { content:""; position:absolute; z-index:-1; top:50%; left:50%; width:var(--ra-stat-motif-size); aspect-ratio:1; transform:translate(-50%,-50%); background:url('../images/stat-shamseh.svg') center/contain no-repeat; pointer-events:none; }
.home-hero__mark small { position:relative; z-index:1; padding-inline:6px; border-radius:4px; background:var(--ra-ivory-100); color:var(--ra-green-800); font-size:16px; font-weight:650; line-height:1.5; }


.hero-row { display:grid; gap:0; }
.banner-slider,.hero-slider { position:relative; min-width:0; padding-bottom:64px; }
.banner-slide { position:relative; display:none; overflow:hidden; aspect-ratio:2.65/1; border-radius:var(--ra-radius-lg); background:var(--ra-ivory-300); box-shadow:var(--ra-shadow-2); }
.banner-slide.is-active { display:block; }
.banner-slide[hidden] { display:none; }
.banner-slide-link,.banner-slide-content,.banner-slide-picture { width:100%; height:100%; display:block; }
.banner-slide-image,.banner-slide img { width:100%; height:100%; display:block; object-fit:cover; }
.hero-slider-controls { position:absolute; z-index:8; right:50%; bottom:10px; min-height:42px; padding:5px 7px; display:flex; align-items:center; gap:7px; border:1px solid var(--ra-border); border-radius:22px; background:var(--ra-ivory-050); transform:translateX(50%); box-shadow:var(--ra-shadow-1); }
.hero-slider-control,.hero-autoplay { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; color:var(--ra-green-800); background:transparent; }
.hero-slider-control:hover,.hero-autoplay:hover { background:var(--ra-green-100); }
.hero-slider-dots { display:flex; gap:5px; }
.hero-slider-dot { width:7px; height:7px; padding:0; border-radius:50%; background:#bdc8c1; transition:width var(--ra-normal),background var(--ra-normal); }
.hero-slider-dot.is-active { width:22px; border-radius:7px; background:var(--ra-green-700); }

.home-introduction { margin:56px auto 84px; padding:0 8%; }
.home-introduction__layout { margin-top:12px; display:grid; grid-template-columns:minmax(260px,.72fr) minmax(0,1fr); gap:7vw; align-items:start; }
.home-introduction h2 { margin:0; color:var(--ra-green-950); font-size:clamp(28px,3.8vw,48px); line-height:1.55; letter-spacing:-.055em; }
.home-introduction p { max-width:62ch; margin:8px 0 0; color:var(--ra-ink-600); font-size:16px; line-height:2.15; }
.hero-section-divider { margin:0 0 25px; display:flex; align-items:center; gap:18px; color:var(--ra-bronze-700); font-size:11px; font-weight:800; }
.hero-section-divider::before,.hero-section-divider::after { content:""; height:1px; flex:1; background:linear-gradient(90deg,transparent,var(--ra-border-warm)); }
.hero-section-divider::after { background:linear-gradient(90deg,var(--ra-border-warm),transparent); }

/* Featured story */
.hero-card { position:relative; min-height:560px; overflow:hidden; display:none; grid-template-columns:minmax(310px,36%) minmax(0,1fr); grid-template-rows:1fr auto; border:1px solid var(--ra-border); border-radius:var(--ra-radius-xl); background:var(--ra-ivory-050); }
.hero-card.is-active { display:grid; }
.portrait-panel { position:relative; grid-column:1; grid-row:1/3; min-height:560px; padding:42px; display:flex; align-items:flex-end; justify-content:center; background:linear-gradient(155deg,#dfe9e1,#edf1e9 54%,#e1dfd4); }
.portrait-frame { width:min(100%,360px); aspect-ratio:3/4; overflow:hidden; border:1px solid var(--ra-border-warm); border-radius:20px 20px 8px 8px; background:#dddcd4; box-shadow:0 24px 50px rgba(15,50,34,.14); }
.portrait-inner,.martyr-hero__avatar-media { width:100%; height:100%; overflow:hidden; }
.martyr-hero__avatar-img { width:100%; height:100%; display:block; object-fit:cover; object-position:center top; transform:none; }
.quote { position:absolute; z-index:3; right:24px; bottom:26px; left:24px; padding:14px 17px; color:#fff; background:rgba(11,46,36,.78); font-size:11px; line-height:1.9; backdrop-filter:blur(7px); }
.hero-copy { grid-column:2; grid-row:1; padding:68px 7% 28px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.tag { margin-bottom:15px; color:var(--ra-bronze-700); font-size:11px; font-weight:800; }
.hero-person-name { margin:0; color:var(--ra-green-950); font-size:clamp(34px,4vw,54px); line-height:1.5; letter-spacing:-.055em; }
.hero-role { margin:4px 0 16px; color:var(--ra-green-700); font-size:17px; font-weight:700; }
.hero-bio { max-width:62ch; margin:0; color:var(--ra-ink-600); font-size:14px; line-height:2.05; }
.hero-actions { margin-top:28px; display:flex; align-items:center; gap:10px; }
.round-action { width:46px; height:46px; display:grid; place-items:center; border:1px solid var(--ra-border); border-radius:50%; color:var(--ra-green-800); background:transparent; }
.round-action { transition:transform var(--ra-normal) var(--ra-ease),background var(--ra-normal) var(--ra-ease),box-shadow var(--ra-normal) var(--ra-ease); }
.round-action:hover,.round-action:focus-visible { background:var(--ra-green-100); box-shadow:0 8px 18px rgba(18,63,49,.09); transform:translateY(-2px); }
.life-panel { grid-column:2; grid-row:2; margin:0 6% 36px; padding:22px 26px; border-top:1px solid var(--ra-border); }
.life-title { margin:0 0 20px; display:flex; align-items:center; justify-content:space-between; color:var(--ra-green-900); font-size:14px; }
.timeline { position:relative; display:grid; grid-template-columns:repeat(var(--timeline-count),minmax(0,1fr)); gap:15px; }
.timeline::before { content:""; position:absolute; right:8%; left:8%; top:10px; height:1px; background:var(--ra-border-warm); }
.event { position:relative; z-index:1; text-align:center; }
.event::before { content:""; width:9px; height:9px; margin:6px auto 10px; display:block; border:2px solid var(--ra-ivory-050); border-radius:50%; background:var(--ra-bronze-500); box-shadow:0 0 0 1px var(--ra-bronze-500); }
.event-year,.event-text { display:block; }
.event-year { color:var(--ra-green-800); font-size:11px; font-weight:900; }
.event-year i { display:none; }
.event-text { margin-top:5px; color:var(--ra-ink-600); font-size:10px; line-height:1.7; }

/* Archive and supporting content */
.content-row { margin-top:96px; display:grid; grid-template-columns:260px minmax(0,1fr); align-items:start; gap:38px; }
.content-row--full { grid-template-columns:1fr; }
.content-row--sidebar-only { grid-template-columns:minmax(260px,360px); justify-content:center; }
.sidebar { position:sticky; top:92px; display:grid; gap:20px; }
.side-card { position:relative; padding:24px; border-top:2px solid var(--ra-green-800); background:var(--ra-ivory-050); }
.side-heading { margin:0 0 18px; display:flex; justify-content:space-between; color:var(--ra-green-950); font-size:15px; }
.side-heading i { color:var(--ra-bronze-500); }
.category-list { display:grid; gap:5px; list-style:none; }
.category-list a { min-height:42px; padding:0 10px; display:flex; align-items:center; justify-content:space-between; gap:10px; border-radius:7px; color:var(--ra-ink-600); font-size:12px; transition:background var(--ra-fast),color var(--ra-fast),transform var(--ra-fast); }
.category-list a:hover,.category-list a.active { color:var(--ra-green-900); background:var(--ra-green-100); transform:translateX(-2px); }
.category-label { display:flex; align-items:center; gap:8px; }
.count { min-width:24px; text-align:center; color:var(--ra-bronze-700); font-size:10px; }
.audio { color:#fff; border:0; background:var(--ra-green-900); }
.audio-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.audio-head h3 { margin:0; font-size:13px; line-height:1.8; }
.audio-avatar { width:46px; height:46px; overflow:hidden; flex:0 0 auto; border-radius:50%; }
.audio-avatar img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.waveform { height:48px; margin:18px 0; display:flex; align-items:center; gap:2px; overflow:hidden; }
.waveform span { width:2px; flex:0 0 2px; border-radius:3px; background:rgba(255,255,255,.28); }
.waveform span.played { background:var(--ra-bronze-200); }
.audio-controls { display:flex; align-items:center; justify-content:center; gap:10px; }
.audio-controls button,.audio-bottom button { width:30px; height:30px; display:grid; place-items:center; color:#fff; background:transparent; }
.audio-controls .play { width:45px; height:45px; border-radius:50%; color:var(--ra-green-900); background:#fff; }
.audio-time,.audio-bottom { margin-top:12px; display:flex; justify-content:space-between; color:rgba(255,255,255,.7); font-size:9px; }
.progress { height:2px; margin-top:6px; background:rgba(255,255,255,.2); }
.progress span { width:0; height:100%; display:block; background:var(--ra-bronze-200); }
.section-header { min-height:96px; padding:0 0 22px; display:flex; align-items:end; justify-content:space-between; gap:24px; border-bottom:1px solid var(--ra-border-warm); }
.section-header h2,.visual-archive h2,.home-closing h2 { margin:4px 0 0; color:var(--ra-green-950); font-size:clamp(28px,3vw,42px); line-height:1.5; letter-spacing:-.045em; }
.archive-context { color:var(--ra-ink-600); font-size:11px; }
.archive-tools { display:flex; align-items:center; gap:16px; }
.archive-count { color:var(--ra-ink-600); font-size:11px; }
.archive-filter { margin:0 0 28px; border-block:1px solid var(--ra-border-warm); }
.archive-filter summary { min-height:54px; padding:0 2px; display:flex; align-items:center; justify-content:space-between; gap:16px; color:var(--ra-green-900); font-size:12px; font-weight:850; cursor:pointer; list-style:none; }
.archive-filter summary::-webkit-details-marker { display:none; }
.archive-filter summary span { display:flex; align-items:center; gap:8px; }
.archive-filter summary i { color:var(--ra-bronze-700); }
.archive-filter summary small { color:var(--ra-ink-600); font-weight:600; }
.archive-filter__panel { padding:4px 0 24px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px; }
.archive-filter__panel label { min-width:0; display:grid; gap:6px; color:var(--ra-ink-600); font-size:9px; font-weight:750; }
.archive-filter__panel :is(input,select) { width:100%; min-width:0; height:44px; padding:0 11px; border:1px solid var(--ra-border); border-radius:var(--ra-radius-sm); color:var(--ra-ink-800); background:var(--ra-ivory-050); }
.archive-filter__panel :is(input,select):focus { border-color:var(--ra-green-700); }
.archive-filter__search { grid-column:span 2; }
.archive-filter__actions { grid-column:1/-1; display:flex; align-items:center; gap:18px; }
.archive-filter__actions a { color:var(--ra-red-700); font-size:10px; font-weight:800; }
.view-all { color:var(--ra-red-700); font-size:12px; font-weight:800; }
.people-grid { margin-top:28px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.martyr-card { position:relative; min-width:0; overflow:hidden; border:1px solid var(--ra-border); border-radius:16px; background:var(--ra-ivory-050); box-shadow:0 8px 26px rgba(13,48,34,.055); transition:transform 400ms var(--ra-ease),box-shadow 400ms var(--ra-ease),border-color 400ms var(--ra-ease); }
.martyr-card:hover,.martyr-card:focus-within { border-color:rgba(18,63,49,.17); box-shadow:0 22px 48px rgba(13,48,34,.12); transform:translateY(-5px); }
.martyr-card__media { position:relative; width:100%; aspect-ratio:3/4; overflow:hidden; background:#e4e4db; }
.martyr-card__photo,.photo-ring,.person-photo { width:100%; height:100%; display:block; margin:0; padding:0; border:0; border-radius:0; background:transparent; }
.person-photo img,.martyr-card__image { width:100%; height:100%; display:block; object-fit:cover; object-position:center top; transform:scale(1.001); transition:transform 440ms var(--ra-ease),filter 440ms var(--ra-ease); }
.martyr-card:hover .person-photo img,.martyr-card:focus-within .person-photo img { transform:scale(1.026); filter:brightness(1.018) contrast(1.018) saturate(.97); }
.bookmark { position:absolute; z-index:6; top:13px; left:13px; width:34px; height:34px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.54); border-radius:50%; color:var(--ra-green-950); background:rgba(255,254,250,.76); box-shadow:0 7px 18px rgba(7,31,23,.1); backdrop-filter:blur(5px); transition:transform var(--ra-normal) var(--ra-ease),background var(--ra-normal),box-shadow var(--ra-normal); }
.bookmark:hover,.bookmark:focus-visible { background:rgba(255,254,250,.94); box-shadow:0 10px 22px rgba(7,31,23,.14); transform:translateY(-2px) scale(1.045); }
.martyr-card:hover .bookmark,.martyr-card:focus-within .bookmark { transform:translateY(-2px) scale(1.035); }
.photo-zoom-hint { position:absolute; z-index:4; left:14px; bottom:14px; width:34px; height:34px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.42); border-radius:50%; color:#fff; background:rgba(11,46,36,.52); box-shadow:0 7px 18px rgba(7,31,23,.12); opacity:0; transform:translateY(4px) scale(.94); backdrop-filter:blur(4px); transition:opacity var(--ra-normal),transform var(--ra-normal) var(--ra-ease),background var(--ra-normal); }
.martyr-card:hover .photo-zoom-hint,.martyr-card:focus-within .photo-zoom-hint { opacity:1; transform:none; }
.photo-zoom-hint:hover { background:rgba(11,46,36,.72); }
.martyr-card__badges { position:absolute; z-index:4; right:13px; bottom:13px; }
.person-tag { padding:6px 9px; display:block; color:#fff; background:rgba(11,46,36,.78); font-size:9px; backdrop-filter:blur(6px); }
.martyr-card__body { padding:18px 18px 20px; }
.martyr-card__body h3 { margin:0; color:var(--ra-green-950); font-size:16px; font-weight:900; line-height:1.75; }
.martyr-card__body p { margin:7px 0 0; color:var(--ra-ink-600); font-size:11px; line-height:1.9; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.details { position:relative; margin-top:15px; padding-bottom:3px; display:inline-flex; align-items:center; gap:7px; color:var(--ra-red-700); font-size:11px; font-weight:800; transition:color var(--ra-normal) var(--ra-ease); }
.details::after { content:""; position:absolute; right:0; bottom:0; width:100%; height:1px; background:currentColor; transform:scaleX(.22); transform-origin:right; opacity:.52; transition:transform var(--ra-normal) var(--ra-ease),opacity var(--ra-normal); }
.details i { transition:transform var(--ra-normal) var(--ra-ease); }
.details:hover,.details:focus-visible { color:var(--ra-green-800); }
.details:hover::after,.details:focus-visible::after { opacity:.82; transform:scaleX(1); }
.details:hover i,.details:focus-visible i,.martyr-card:hover .details i,.martyr-card:focus-within .details i { transform:translateX(-4px); }
.raviyan-pagination { margin-top:38px; }
.raviyan-pagination .page-numbers { margin:0; padding:0; display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:9px; list-style:none; }
.raviyan-pagination .page-numbers li { margin:0; padding:0; display:flex; align-items:center; }
.raviyan-pagination .page-numbers li > a,
.raviyan-pagination .page-numbers li > span { min-width:42px; height:42px; padding:0 13px; display:inline-flex; align-items:center; justify-content:center; gap:7px; border:1px solid var(--ra-border); border-radius:8px; color:var(--ra-ink-600); background:var(--ra-ivory-050); font-size:11px; line-height:1; white-space:nowrap; box-sizing:border-box; }
.raviyan-pagination .page-numbers li > a:hover,
.raviyan-pagination .page-numbers li > a:focus-visible { border-color:var(--ra-bronze-500); color:var(--ra-green-900); background:var(--ra-ivory-100); }
.raviyan-pagination .page-numbers li > a i { flex:0 0 auto; font-size:11px; line-height:1; }
.raviyan-pagination .page-numbers li > a span { display:inline-block; min-width:0; height:auto; padding:0; border:0; border-radius:0; background:transparent; color:inherit; line-height:1; }
.raviyan-pagination .page-numbers li > .current { color:#fff; border-color:var(--ra-green-900); background:var(--ra-green-900); }
.search-empty { grid-column:1/-1; padding:40px; text-align:center; color:var(--ra-ink-600); }

.visual-archive { margin:112px 0 0; padding:64px 0; border-top:1px solid var(--ra-border-warm); }
.visual-archive__heading { max-width:620px; margin-bottom:28px; }
.visual-archive__heading p { margin:8px 0 0; color:var(--ra-ink-600); line-height:2; }
.visual-archive__strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; max-width:1180px; margin-inline:auto; }
.visual-archive__item { position:relative; overflow:hidden; aspect-ratio:3/4; background:#e4e4db; }
/* Desktop visual archive offset removed: keep museum-style alignment */
.visual-archive__item img { width:100%; height:100%; display:block; object-fit:cover; object-position:center top; transition:transform var(--ra-slow) var(--ra-ease); }
.visual-archive__item::after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,rgba(7,31,23,.82)); }
.visual-archive__item span { position:absolute; z-index:2; right:18px; bottom:17px; left:18px; color:#fff; font-size:13px; font-weight:800; }
.visual-archive__item:hover img { transform:scale(1.025); }
.home-closing { position:relative; overflow:hidden; margin:108px 0 30px; padding:58px 64px; display:flex; align-items:center; justify-content:space-between; gap:32px; color:#fff; background:var(--ra-green-900); }
.home-closing h2 { color:#fff; }
.home-closing p { margin:7px 0 0; color:rgba(255,255,255,.68); line-height:1.9; }
.home-closing .section-kicker { color:var(--ra-bronze-200); }
.home-closing .primary-button { color:var(--ra-green-950); background:var(--ra-ivory-050); }
.home-closing__ornament { position:absolute; left:-45px; width:220px; aspect-ratio:1; background:var(--ra-shamseh) center/contain no-repeat; opacity:.09; }

/* Single martyr editorial */
.profile-hero { position:relative; overflow:hidden; padding:64px 0 72px; border-bottom:1px solid var(--ra-border-warm); background:linear-gradient(118deg,var(--ra-ivory-100) 0 48%,#e8efe8); }
.profile-hero::after { content:""; position:absolute; left:-60px; top:50%; width:300px; aspect-ratio:1; background:var(--ra-shamseh) center/contain no-repeat; opacity:.11; transform:translateY(calc(-50% + var(--ra-parallax,0px))); }
.profile-hero__layout { position:relative; z-index:1; display:grid; grid-template-columns:minmax(300px,430px) minmax(0,1fr); align-items:center; gap:clamp(54px,8vw,110px); }
.profile-hero__copy,.journey-copy,.life-story__copy,.memory-entry,.archive-item__copy,.related-story>div,.testament-text { min-width:0; overflow-wrap:anywhere; }
.profile-hero__portrait { display:flex; justify-content:center; }
body.single-shahid .martyr-portrait-card { position:relative; width:min(100%,410px); aspect-ratio:3/4; padding:7px; border:1px solid rgba(142,112,64,.26); border-radius:22px; overflow:hidden; background:var(--ra-ivory-100); box-shadow:0 16px 40px rgba(13,48,34,.08),0 2px 8px rgba(13,48,34,.04); }
body.single-shahid .martyr-portrait-photo { width:100%; height:100%; overflow:hidden; border-radius:14px; background:#deddd5; }
body.single-shahid .martyr-portrait-photo img { width:100%; height:100%; display:block; border-radius:14px; object-fit:cover; object-position:center top; transform:none; transform-origin:center top; }
.profile-hero__eyebrow { margin-bottom:8px; }
.profile-hero h1 { width:100%; max-width:100%; margin:0; display:flex; flex-wrap:wrap; align-items:baseline; justify-content:flex-start; gap:0 .28em; color:var(--ra-green-950); font-size:clamp(40px,5.2vw,70px); font-weight:900; line-height:1.38; letter-spacing:-.06em; overflow-wrap:normal; word-break:normal; text-wrap:wrap; }
.profile-hero h1.is-single-line { flex-wrap:nowrap; }
.profile-hero h1 .martyr-name__token { display:inline-block; flex:0 0 auto; white-space:nowrap; }
.profile-hero h1 .martyr-name__honorific { color:var(--ra-green-700); }
.profile-hero__subtitle { margin:5px 0 0; color:var(--ra-ink-600); font-size:18px; font-weight:650; }
.profile-hero__quote { max-width:52ch; margin:27px 0 0; padding:0 19px 0 0; border-right:2px solid var(--ra-bronze-500); color:var(--ra-ink-800); font-size:15px; line-height:2; }
.profile-facts { margin:30px 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; border-top:1px solid var(--ra-border); }
.profile-facts>div { min-height:66px; padding:13px 0; display:grid; grid-template-columns:74px minmax(0,1fr); align-items:center; gap:8px; border-bottom:1px solid var(--ra-border); }
.profile-facts dt { color:var(--ra-ink-400); font-size:10px; }
.profile-facts dd { color:var(--ra-green-950); font-size:13px; font-weight:800; }
.memorial-story-nav { position:sticky; z-index:8800; top:var(--raviyan-active-header-height,74px); border-bottom:1px solid var(--ra-border); background:rgba(250,248,241,.94); backdrop-filter:blur(14px); }
.memorial-story-nav__inner { min-height:62px; display:flex; align-items:center; justify-content:center; gap:4px; overflow-x:auto; scrollbar-width:none; }
.memorial-story-nav__inner::-webkit-scrollbar { display:none; }
.memorial-story-nav a { position:relative; min-height:38px; padding:0 14px; display:inline-flex; flex:0 0 auto; align-items:center; gap:7px; color:var(--ra-ink-600); font-size:11px; font-weight:800; transition:color var(--ra-normal) var(--ra-ease); }
.memorial-story-nav a::after { content:""; position:absolute; right:14px; bottom:0; left:14px; height:1px; background:var(--ra-green-700); transform:scaleX(0); transform-origin:right; transition:transform var(--ra-normal) var(--ra-ease); }
.memorial-story-nav a i { color:var(--ra-bronze-700); }
.memorial-story-nav a:hover,.memorial-story-nav a.is-current { color:var(--ra-green-900); }
.memorial-story-nav a:hover::after,.memorial-story-nav a.is-current::after { transform:scaleX(1); }

.story-chapter { scroll-margin-top:calc(var(--raviyan-active-header-height,74px) + 78px); }
.profile-introduction { max-width:760px; padding:0 0 48px; border-bottom:1px solid var(--ra-border-warm); }
.profile-introduction h2 { margin:7px 0 8px; color:var(--ra-green-950); font-size:clamp(26px,3vw,38px); line-height:1.65; }
.profile-introduction p { max-width:64ch; margin:0; color:var(--ra-ink-600); font-size:15px; line-height:2.2; }
.life-journey-section { margin:0; }
.journey-card { padding:34px 38px 38px; border:1px solid var(--raviyan-border-color); border-top:2px solid var(--ra-green-800); border-radius:var(--raviyan-radius-card); background:var(--ra-ivory-050); box-shadow:var(--raviyan-shadow-soft); }
.journey-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; padding-bottom:20px; border-bottom:1px solid var(--ra-border); }
.journey-heading h3 { margin:0; color:var(--ra-green-950); font-size:22px; }
.journey-heading h3 i { color:var(--ra-bronze-500); }
.journey-heading p { margin:0; color:var(--ra-ink-600); font-size:11px; }
.journey-track { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin:0; padding:38px 30px 0; list-style:none; }
.journey-track::before { display:none; }
.journey-event { position:relative; z-index:1; min-width:0; text-align:center; }
.journey-event:not(:last-child)::before,.journey-event:not(:last-child)::after { content:""; position:absolute; z-index:-1; top:32px; right:50%; left:auto; width:calc(100% + 24px); max-width:calc(100% + 24px); height:1px; }
.journey-event:not(:last-child)::before { background:var(--ra-border-warm); }
.journey-event:not(:last-child)::after { background:var(--ra-bronze-500); transform:scaleX(0); transform-origin:right; transition:transform var(--ra-normal) var(--ra-ease); }
.journey-icon { position:relative; width:var(--journey-icon-frame-size,64px); height:var(--journey-icon-frame-size,64px); margin:auto; display:grid; place-items:center; border:var(--journey-icon-border-width,1px) solid var(--journey-icon-border,var(--raviyan-border-color)); border-radius:var(--journey-icon-radius,var(--raviyan-radius-inner)); color:var(--journey-icon-color,var(--ra-bronze-700)); background:var(--journey-icon-bg,var(--ra-ivory-050)); box-shadow:0 8px 20px rgba(13,48,34,.055); overflow:hidden; transition:transform var(--ra-normal) var(--ra-ease),border-color var(--ra-normal),background var(--ra-normal),box-shadow var(--ra-normal); }
.journey-icon .raviyan-event-svg,.journey-icon .raviyan-event-custom-svg svg { width:var(--journey-icon-size,28px); height:var(--journey-icon-size,28px); display:block; transition:transform var(--ra-normal) var(--ra-ease); }
.journey-icon .raviyan-event-image { width:var(--journey-icon-size,34px); height:var(--journey-icon-size,34px); display:block; object-fit:contain; object-position:center; }
.journey-icon .raviyan-event-custom-svg { display:grid; place-items:center; color:inherit; line-height:0; }
.journey-icon .raviyan-event-custom-svg svg * { vector-effect:non-scaling-stroke; }
.journey-event.is-final .journey-icon { color:var(--journey-icon-color,#fff); border-color:var(--journey-icon-border,var(--ra-red-700)); background:var(--journey-icon-bg,var(--ra-red-700)); }
.journey-event.is-final .journey-icon::after { content:""; position:absolute; inset:-1px; border:1px solid rgba(150,54,59,.3); opacity:0; transform:scale(.88); transition:opacity var(--ra-normal),transform var(--ra-normal) var(--ra-ease); }
.journey-copy h4 { margin:14px 0 3px; color:var(--ra-green-950); font-size:14px; }
.journey-year { display:block; color:var(--ra-bronze-700); font-size:12px; font-weight:900; }
.journey-place { display:block; margin-top:5px; color:var(--ra-ink-600); font-size:10px; }
.journey-copy p { max-width:24ch; margin:8px auto 0; color:var(--ra-ink-600); font-size:10px; line-height:1.9; }
.journey-event:hover::after,.journey-event:focus-within::after { transform:scaleX(1); }
.journey-event:hover .journey-icon,.journey-event:focus-within .journey-icon { border-color:var(--ra-bronze-700); background:#fffdf7; box-shadow:var(--raviyan-shadow-hover); transform:translateY(-4px); }
.journey-event:hover .journey-icon .raviyan-event-svg,.journey-event:focus-within .journey-icon .raviyan-event-svg,.journey-event:hover .journey-icon .raviyan-event-custom-svg svg,.journey-event:focus-within .journey-icon .raviyan-event-custom-svg svg { transform:scale(1.07) rotate(2deg); }
.journey-event.is-final:hover .journey-icon,.journey-event.is-final:focus-within .journey-icon { border-color:var(--journey-icon-border,var(--ra-red-700)); background:var(--journey-icon-bg,var(--ra-red-700)); box-shadow:0 10px 22px rgba(150,54,59,.14); }
.journey-event.is-final:hover .journey-icon::after,.journey-event.is-final:focus-within .journey-icon::after { opacity:1; transform:scale(1.24); }

.biography-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; align-items:start; gap:64px; padding-block:72px 96px; }
.biography-narrative { min-width:0; display:grid; gap:72px; }
.chapter-heading { margin-bottom:30px; }
.chapter-heading h2,.testament-section h2,.identity-panel h2,.gallery-panel h2,.related-stories h2 { margin:5px 0 0; color:var(--ra-green-950); font-size:clamp(27px,3vw,40px); line-height:1.6; letter-spacing:-.04em; }
.raviyan-content { max-width:70ch; color:#46564d; font-size:16.25px; line-height:2.4; text-align:justify; }
.raviyan-content>*:first-child { margin-top:0; }
.raviyan-content :is(h2,h3,h4) { margin-top:2em; color:var(--ra-green-950); line-height:1.8; }
.raviyan-content blockquote { margin:38px 0; padding:24px 30px 24px 0; border-right:2px solid var(--ra-bronze-500); color:var(--ra-green-900); font-size:1.08em; }
.life-story { position:relative; display:grid; grid-template-columns:1fr; gap:46px; padding-block:8px 64px; border-bottom:1px solid var(--ra-border-warm); }
.life-story.has-archival-image { grid-template-columns:minmax(250px,38%) minmax(0,1fr); align-items:start; }
.life-story__media { position:sticky; top:158px; min-width:0; }
.life-story__media img { width:100%; max-height:610px; display:block; object-fit:contain; object-position:center; background:var(--ra-ivory-200); box-shadow:0 22px 48px rgba(13,48,34,.1); }
.life-story__media figcaption { margin-top:11px; padding-inline:2px; color:var(--ra-ink-400); font-size:10px; line-height:1.9; }
.life-story__copy { min-width:0; }
.raviyan-content.is-collapsed { position:relative; max-height:34rem; overflow:hidden; }
.raviyan-content.is-collapsed::after { content:""; position:absolute; right:0; bottom:0; left:0; height:9rem; pointer-events:none; background:linear-gradient(transparent,var(--ra-ivory-100)); }
.biography-expand { margin-top:20px; padding:9px 0; display:inline-flex; align-items:center; gap:8px; border-bottom:1px solid var(--ra-bronze-500); color:var(--ra-green-900); background:transparent; font-size:12px; font-weight:850; }
.biography-expand i { transition:transform var(--ra-normal) var(--ra-ease); }
.biography-expand[aria-expanded="true"] i { transform:rotate(180deg); }

.oral-history { padding-block:14px 22px; }
.oral-history__list { display:grid; gap:36px; }
.memory-entry { position:relative; max-width:760px; padding:0 42px 0 0; }
.memory-entry::before { content:"«"; position:absolute; top:-20px; right:0; color:var(--ra-bronze-200); font-family:serif; font-size:70px; line-height:1; }
.memory-entry:not(:last-child) { padding-bottom:36px; border-bottom:1px solid var(--ra-border); }
.memory-entry h3 { margin:0 0 12px; color:var(--ra-green-950); font-size:19px; }
.memory-entry blockquote { color:var(--ra-ink-800); font-size:15px; line-height:2.25; }
.memory-entry blockquote p { margin:0 0 10px; }
.memory-entry figcaption { margin-top:16px; display:flex; align-items:center; gap:9px; color:var(--ra-bronze-700); font-size:11px; }
.memory-entry figcaption span::before { content:"—"; margin-left:9px; color:var(--ra-border-warm); }
.testament-section { position:relative; isolation:isolate; overflow:hidden; padding:72px 9%; border:1px solid rgba(244,229,189,.12); border-radius:var(--raviyan-radius-card); color:var(--ra-ivory-100); text-align:center; background:var(--ra-green-900); box-shadow:0 18px 42px rgba(13,48,34,.12); }
.testament-section::after { content:""; position:absolute; z-index:-1; left:-75px; bottom:-105px; width:260px; aspect-ratio:1; background:var(--ra-shamseh) center/contain no-repeat; opacity:.065; }
.testament-section__mark { position:absolute; top:14px; right:8%; color:var(--ra-bronze-200); font-family:serif; font-size:110px; line-height:1; opacity:.75; }
.testament-section header { position:relative; }
.testament-section header>span { color:var(--ra-bronze-200); }
.testament-section h2 { color:var(--ra-ivory-050); }
.testament-audio { width:42px; height:42px; margin:14px auto 0; display:grid; place-items:center; border:1px solid rgba(244,229,189,.4); border-radius:50%; color:var(--ra-ivory-050); background:transparent; transition:transform var(--ra-normal) var(--ra-ease),background var(--ra-normal) var(--ra-ease); }
.testament-audio:hover,.testament-audio:focus-visible { background:rgba(255,255,255,.08); transform:translateY(-2px); }
.testament-text { position:relative; max-width:64ch; margin:34px auto; color:rgba(255,254,250,.86); font-size:clamp(17px,1.7vw,21px); line-height:2.42; }
.testament-originals { margin:-8px 0 28px; }
.testament-original-button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:46px; padding:0 20px; border:1px solid rgba(244,229,189,.5); border-radius:var(--raviyan-radius-control); color:var(--ra-ivory-050); background:rgba(255,255,255,.08); font-size:12px; font-weight:850; }
.testament-original-button:hover,.testament-original-button:focus-visible { color:var(--ra-ivory-050); background:rgba(255,255,255,.14); transform:translateY(-1px); }
.testament-section footer { color:var(--ra-bronze-200); font-size:11px; font-weight:800; }
.cultural-archive { padding-block:10px 24px; }
.cultural-archive__list { border-top:1px solid var(--ra-border-warm); }
.archive-item { min-width:0; padding:23px 0; display:grid; grid-template-columns:52px minmax(0,1fr); gap:18px; border-bottom:1px solid var(--ra-border); }
.archive-item__icon { width:50px; height:50px; display:grid; place-items:center; border:1px solid var(--raviyan-border-color); border-radius:var(--raviyan-radius-control); color:var(--ra-bronze-700); background:var(--ra-ivory-050); transition:transform var(--ra-normal) var(--ra-ease),border-color var(--ra-normal) var(--ra-ease),box-shadow var(--ra-normal) var(--ra-ease); }
.archive-item:hover .archive-item__icon,.archive-item:focus-within .archive-item__icon { border-color:var(--ra-bronze-500); box-shadow:0 8px 20px rgba(13,48,34,.06); transform:translateY(-2px); }
.archive-item__copy { min-width:0; }
.archive-item h3 { margin:0; color:var(--ra-green-950); font-size:15px; }
.archive-item p { margin:5px 0 12px; color:var(--ra-ink-600); font-size:11px; line-height:1.9; }
.archive-item audio,.archive-item video { width:100%; max-width:560px; margin-top:12px; }
.archive-item video { max-height:420px; background:var(--ra-green-950); }
.archive-item__preview { max-width:560px; margin-top:14px; display:block; }
.archive-item__preview img { width:100%; max-height:480px; display:block; object-fit:contain; object-position:center; border:1px solid var(--raviyan-border-color); border-radius:var(--raviyan-radius-inner); background:var(--ra-ivory-200); }
.archive-item__download { margin-top:11px; display:inline-flex; align-items:center; gap:8px; color:var(--ra-green-800); font-size:11px; font-weight:850; }

.biography-aside { position:sticky; top:158px; display:grid; gap:34px; }
.identity-panel,.operations-panel,.raviyan-social-card,.gallery-panel,.raviyan-biography-download,.raviyan-online-fatiha { padding-top:20px; border-top:1px solid var(--ra-border-warm); }
.identity-panel header { margin-bottom:15px; }
.identity-panel h2,.gallery-panel h2 { font-size:20px; }
.identity-panel dl { display:grid; }
.identity-panel dl>div { padding:11px 0; display:flex; justify-content:space-between; gap:20px; border-bottom:1px solid var(--ra-border); font-size:11px; }
.identity-panel dt { color:var(--ra-ink-600); }
.identity-panel dd { color:var(--ra-green-950); font-weight:800; text-align:left; }
.operations-panel h2,.raviyan-social-card h3,.raviyan-biography-download h3,.raviyan-online-fatiha h3 { margin:0 0 14px; color:var(--ra-green-950); font-size:16px; }
.operations-panel>div { display:flex; flex-wrap:wrap; gap:8px 14px; }
.operations-panel a { color:var(--ra-green-800); font-size:11px; font-weight:800; }
.operations-panel a i { margin-left:5px; color:var(--ra-bronze-500); }
.raviyan-biography-download-head,.raviyan-online-fatiha-head { display:flex; gap:11px; }
.raviyan-biography-download-head p,.raviyan-online-fatiha-head p,.raviyan-social-card header p { margin:3px 0 0; color:var(--ra-ink-600); font-size:10px; }
.raviyan-biography-download-icon,.raviyan-online-fatiha-icon { color:var(--ra-bronze-700); }
.raviyan-biography-download-link,.raviyan-online-fatiha-link { width:100%; margin-top:14px; }
.raviyan-social-card header { display:flex; gap:10px; margin-bottom:14px; }
.raviyan-social-heading-icon { color:var(--ra-bronze-700); }
.raviyan-social-accent { color:var(--ra-bronze-700); }
.raviyan-social-list { display:grid; gap:7px; }
.raviyan-social-link { min-height:52px; display:grid; grid-template-columns:32px minmax(0,1fr) 16px; align-items:center; gap:9px; color:var(--ra-ink-800); border-radius:10px; transition:background-color .15s ease; }
.raviyan-social-link.is-disabled { opacity:.48; }
.raviyan-social-icon { color:var(--ra-green-700); font-size:18px; }
.raviyan-social-icon .raviyan-network-mark { width:22px; height:22px; display:block; }
.raviyan-social-copy strong,.raviyan-social-copy small { display:block; }
.raviyan-social-copy strong { font-size:11px; }
.raviyan-social-copy small { margin-top:2px; color:var(--ra-ink-600); font-size:9px; }
.gallery-panel header { margin-bottom:17px; }
.gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.gallery-panel--story { margin-inline:-28px; padding:44px 28px 48px; border:1px solid var(--raviyan-border-color); border-radius:var(--raviyan-radius-card); background:rgba(239,234,220,.58); box-shadow:var(--raviyan-shadow-soft); }
.gallery-panel--story .gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.gallery-panel--story .raviyan-gallery-link { aspect-ratio:4/3; }
.raviyan-gallery-link { position:relative; overflow:hidden; aspect-ratio:4/3; border:1px solid var(--raviyan-border-color); border-radius:var(--raviyan-radius-inner); background:#dddcd4; box-shadow:0 10px 24px rgba(13,48,34,.055); transition:border-color var(--ra-normal) var(--ra-ease),box-shadow var(--ra-normal) var(--ra-ease),transform var(--ra-normal) var(--ra-ease); }
.raviyan-gallery-link img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; background:var(--ra-ivory-200); transition:transform var(--ra-normal); }
.raviyan-gallery-link:hover,.raviyan-gallery-link:focus-visible { border-color:var(--ra-bronze-500); box-shadow:var(--raviyan-shadow-hover); transform:translateY(-2px); }
.raviyan-gallery-link:hover img { transform:scale(1.018); }
.raviyan-gallery-zoom { position:absolute; inset:0; display:grid; place-items:center; color:#fff; background:rgba(11,46,36,.35); opacity:0; transition:opacity var(--ra-fast); }
.raviyan-gallery-link:hover .raviyan-gallery-zoom,.raviyan-gallery-link:focus-visible .raviyan-gallery-zoom { opacity:1; }

.related-stories { padding-block:58px 24px; border-top:1px solid var(--ra-border-warm); }
.related-stories__head { margin-bottom:28px; display:flex; align-items:end; justify-content:space-between; gap:20px; }
.related-stories__head>a { color:var(--ra-green-800); font-size:11px; font-weight:850; }
.related-stories__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.related-story { min-width:0; display:grid; grid-template-columns:minmax(110px,38%) minmax(0,1fr); align-items:center; gap:18px; border-top:1px solid var(--ra-border-warm); padding-top:14px; }
.related-story__media { aspect-ratio:3/4; overflow:hidden; background:var(--ra-ivory-200); }
.related-story__media img { width:100%; height:100%; display:block; object-fit:cover; object-position:center top; transition:transform var(--ra-normal) var(--ra-ease); }
.related-story:hover .related-story__media img { transform:scale(1.025); }
.related-story>div>span { color:var(--ra-bronze-700); font-size:10px; }
.related-story h3 { margin:4px 0 12px; color:var(--ra-green-950); font-size:15px; line-height:1.8; }
.related-story__link { color:var(--ra-green-700); font-size:10px; font-weight:850; }

/* Modals and optional AI */
.portrait-zoom,.raviyan-gallery-modal { position:fixed; z-index:12000; inset:0; padding:24px; display:grid; place-items:center; background:rgba(5,20,15,.9); }
.portrait-zoom[hidden],.raviyan-gallery-modal[data-open="false"] { display:none; }
.portrait-zoom-dialog,.raviyan-gallery-dialog { position:relative; width:min(920px,100%); max-height:90vh; }
.portrait-zoom-image,.raviyan-gallery-image { width:100%; max-height:82vh; display:block; object-fit:contain; }
.portrait-zoom-caption,.raviyan-gallery-meta { display:flex; justify-content:space-between; padding-top:10px; color:#fff; font-size:12px; }
.portrait-zoom-close,.raviyan-gallery-control { position:absolute; z-index:3; width:42px; height:42px; display:grid; place-items:center; border-radius:50%; color:#fff; background:rgba(255,255,255,.13); }
.portrait-zoom-close,.raviyan-gallery-close { top:18px; left:18px; }
.raviyan-gallery-prev { right:20px; top:50%; }
.raviyan-gallery-next { left:20px; top:50%; }
body.has-portrait-zoom { overflow:hidden; }
body.raviyan-gallery-open { overflow:hidden; }
.raviyan-gallery-modal.is-single :is(.raviyan-gallery-prev,.raviyan-gallery-next) { display:none; }

#ai-chat-widget { position:fixed; z-index:10000; right:24px; bottom:24px; display:flex; flex-direction:column; align-items:flex-end; }
#chat-window { width:min(350px,calc(100vw - 32px)); height:460px; margin-bottom:12px; overflow:hidden; display:flex; flex-direction:column; border:1px solid var(--ra-border); background:var(--ra-ivory-100); box-shadow:var(--ra-shadow-2); }
#chat-window[data-open="false"] { display:none; }
#chat-window .chat-header { padding:14px; display:flex; align-items:center; justify-content:space-between; color:#fff; background:var(--ra-green-900); }
.chat-header>div { display:flex; align-items:center; gap:10px; }
.chat-header span,.chat-header strong,.chat-header small { display:block; }
.chat-header strong { font-size:12px; }
.chat-header small { margin-top:2px; color:rgba(255,255,255,.65); font-size:9px; }
.chat-header button { color:#fff; background:transparent; }
#chat-messages { flex:1; overflow:auto; padding:14px; }
.chat-message { margin-bottom:8px; display:flex; justify-content:flex-start; }
.chat-message.is-user { justify-content:flex-end; }
.chat-bubble { max-width:85%; padding:10px 12px; color:var(--ra-ink-800); background:#fff; font-size:12px; line-height:1.9; }
.chat-message.is-user .chat-bubble { color:#fff; background:var(--ra-green-800); }
.chat-compose { padding:10px; display:flex; gap:7px; border-top:1px solid var(--ra-border); background:#fff; }
#chat-input { min-width:0; flex:1; border:1px solid var(--ra-border); padding:0 12px; }
#send-chat-btn,#chat-toggle-btn { display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--ra-green-900); }
#send-chat-btn { width:42px; height:42px; }
#chat-toggle-btn { width:54px; height:54px; }

/* Footer */
.shared-footer,.raviyan-elementor-footer { position:relative; overflow:hidden; margin-top:78px; color:rgba(255,255,255,.72); background:var(--ra-green-950); }
.shared-footer::before { content:""; position:absolute; inset:0; background:var(--ra-pattern); background-size:210px; opacity:.035; }
.shared-footer::after { content:""; position:absolute; left:-90px; top:50%; width:330px; aspect-ratio:1; background:var(--ra-shamseh) center/contain no-repeat; opacity:.07; transform:translateY(-50%); }
.shared-footer-inner { position:relative; z-index:1; padding-block:70px 24px; }
.footer-accent-line { position:absolute; top:0; right:0; width:72px; height:2px; background:var(--ra-bronze-500); }
.shared-footer-grid { display:grid; grid-template-columns:1.4fr .85fr 1fr 1.15fr; gap:48px; }
.footer-brand-title { display:block; color:#fff; font-size:20px; font-weight:900; }
.footer-brand-subtitle { display:block; margin-top:4px; color:rgba(255,255,255,.55); font-size:10px; }
.footer-copy { max-width:40ch; margin:18px 0 0; font-size:12px; line-height:2; }
.footer-social { margin-top:18px; display:flex; gap:7px; }
.footer-social a { width:34px; height:34px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.18); border-radius:50%; color:var(--ra-bronze-200); }
.footer-heading { margin:0 0 17px; color:#fff; font-size:14px; }
.footer-list { display:grid; gap:10px; list-style:none; }
.footer-list a,.footer-contact>li>span { display:flex; align-items:center; gap:9px; color:rgba(255,255,255,.66); font-size:11px; }
.footer-list a:hover { color:#fff; }
.footer-list i { color:var(--ra-bronze-200); }
.footer-list small { margin-right:auto; }
.footer-categories a { width:fit-content; max-width:100%; }
.footer-categories small { margin-right:0; flex:0 0 auto; color:var(--ra-bronze-200); font-size:10px; }
.footer-bottom { margin-top:50px; padding-top:20px; display:flex; align-items:center; gap:22px; border-top:1px solid rgba(255,255,255,.1); font-size:10px; }
.footer-back-top { margin-right:auto; display:flex; align-items:center; gap:7px; }
.raviyan-elementor-footer { padding:24px; text-align:center; }

body.page:not(.raviyan-home) {
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
body.page:not(.raviyan-home) .raviyan-elementor-page-content {
  flex:1 0 auto;
  width:100%;
}
.raviyan-elementor-page-content { min-height:55vh; }

.raviyan-reading-progress { position:fixed; z-index:10000; top:0; right:0; left:0; height:2px; pointer-events:none; }
.raviyan-reading-progress span { width:var(--raviyan-progress,0%); height:100%; display:block; background:linear-gradient(90deg,var(--ra-bronze-500),var(--ra-green-700)); }


/* Shahid related videos */
.shahid-videos__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.shahid-video-card{overflow:hidden;border:1px solid var(--raviyan-border-color);border-radius:16px;background:var(--ra-ivory-050);padding:0 0 22px;box-shadow:var(--raviyan-shadow-soft);transition:border-color var(--ra-normal) var(--ra-ease),box-shadow var(--ra-normal) var(--ra-ease),transform var(--ra-normal) var(--ra-ease)}
.shahid-video-card:hover,.shahid-video-card:focus-within{border-color:var(--ra-bronze-500);box-shadow:var(--raviyan-shadow-hover);transform:translateY(-2px)}
.shahid-video-card__media{position:relative;width:100%;aspect-ratio:16/9;margin:0;background:#e8e2d4;overflow:hidden}
button.shahid-video-card__media{width:100%;padding:0;border:0;display:block;text-align:inherit;line-height:0;cursor:pointer}
.shahid-video-card__media img{width:100%;height:100%;display:block;object-fit:cover;transition:transform var(--ra-normal) var(--ra-ease)}
.shahid-video-card:hover .shahid-video-card__media img,.shahid-video-card:focus-within .shahid-video-card__media img{transform:scale(1.018)}
.shahid-video-card__play{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--ra-green-900);color:#fff}
.shahid-video-card h3,.shahid-video-card p{padding-inline:22px}
.shahid-video-card h3{margin:18px 0 8px;font-size:18px}
.shahid-video-card p{margin:0;line-height:1.9;color:var(--ra-ink-600)}
.shahid-video-card__fallback{margin:14px 22px 0;display:inline-flex;align-items:center;color:var(--ra-green-800);font-size:11px;font-weight:850}
@media(max-width:900px){.shahid-videos__grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.shahid-videos__grid{grid-template-columns:1fr}}

.raviyan-video-modal{position:fixed;z-index:13000;inset:0;padding:24px;display:none;place-items:center;background:rgba(5,20,15,.86)}
.raviyan-video-modal[data-open="true"]{display:grid}
.raviyan-video-dialog{position:relative;width:min(920px,100%);outline:0}
.raviyan-video-frame{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border:1px solid rgba(244,229,189,.18);border-radius:16px;background:#071610;box-shadow:0 28px 70px rgba(0,0,0,.36)}
.raviyan-video-frame iframe{position:absolute;inset:0;width:100%;height:100%;display:block;border:0}
.raviyan-video-close{position:absolute;z-index:2;top:-18px;left:-18px;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:#fff;background:rgba(18,63,49,.94);box-shadow:0 14px 30px rgba(0,0,0,.24)}
.raviyan-video-fallback{margin-top:12px;display:inline-flex;color:#fff;font-size:12px;font-weight:850}
body.raviyan-video-open{overflow:hidden}
@media(max-width:760px){.raviyan-video-modal{padding:14px}.raviyan-video-frame{border-radius:12px}.raviyan-video-close{top:-12px;left:-10px;width:42px;height:42px}}

/* Grave location and user photo submission */
.grave-location__card,.shahid-photo-form{border:1px solid var(--raviyan-border-color);border-radius:var(--raviyan-radius-card);background:var(--ra-ivory-050);box-shadow:var(--raviyan-shadow-soft)}
.grave-location__card{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:22px;padding:24px}
.grave-location__copy{display:grid;align-content:center;gap:12px}
.grave-location__copy h3{margin:0;color:var(--ra-green-950);font-size:22px}
.grave-location__copy p{margin:0;color:var(--ra-ink-600);line-height:2}
.grave-location__actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px}
.grave-location__actions .primary-button{display:inline-flex;align-items:center;gap:8px}
.grave-location__actions a:not(.primary-button){color:var(--ra-green-800);font-size:13px;font-weight:700}
.grave-location__map{min-height:260px;overflow:hidden;border:1px solid var(--raviyan-border-color);border-radius:var(--raviyan-radius-inner);background:var(--ra-ivory-200)}
.grave-location__map iframe{width:100%;height:100%;min-height:260px;display:block;border:0}
.shahid-photo-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:24px}
.shahid-photo-form label{display:grid;gap:7px;color:var(--ra-green-950);font-weight:800}
.shahid-photo-form label small{color:var(--ra-ink-400);font-weight:500}
.shahid-photo-type{border:0;margin:0;padding:0}
.shahid-photo-type legend{margin-bottom:8px;color:var(--ra-green-950);font-weight:800}
.shahid-photo-type>div{display:flex;gap:8px;flex-wrap:wrap}
.shahid-photo-type label{display:flex;align-items:center;gap:8px;border:1px solid var(--raviyan-border-color);border-radius:var(--raviyan-radius-control);background:#fff;padding:10px 12px;cursor:pointer;transition:border-color var(--ra-normal) var(--ra-ease),background var(--ra-normal) var(--ra-ease),box-shadow var(--ra-normal) var(--ra-ease)}
.shahid-photo-type label:has(input:checked){border-color:var(--ra-green-700);background:var(--ra-green-050);box-shadow:0 8px 18px rgba(13,48,34,.06)}
.shahid-photo-type input{accent-color:var(--ra-green-800)}
.shahid-photo-form [hidden]{display:none!important}
.shahid-photo-form input:not([type="checkbox"]):not([type="file"]),.shahid-photo-form textarea{width:100%;border:1px solid var(--raviyan-border-color);border-radius:var(--raviyan-radius-control);background:#fff;padding:11px 12px;color:var(--ra-ink-800);font:inherit;transition:border-color var(--ra-fast) var(--ra-ease),box-shadow var(--ra-fast) var(--ra-ease)}
.shahid-photo-form input:not([type="checkbox"]):not([type="file"]):focus,.shahid-photo-form textarea:focus{border-color:var(--ra-green-700);box-shadow:0 0 0 3px rgba(35,103,77,.12);outline:0}
.shahid-photo-form input[type="file"]{width:100%;padding:12px;border:1px dashed var(--raviyan-border-color);border-radius:var(--raviyan-radius-control);background:var(--ra-ivory-100)}
.shahid-photo-form__wide,.shahid-photo-form__message,.shahid-photo-form button,.raviyan-hp{grid-column:1/-1}
.shahid-photo-form__accept{display:flex!important;grid-template-columns:auto 1fr;align-items:flex-start;gap:10px;color:var(--ra-ink-600);font-weight:600}
.shahid-photo-form__accept input{margin-top:6px;accent-color:var(--ra-green-800)}
.shahid-photo-form button{justify-self:start;min-width:170px}
.shahid-photo-form button:disabled{opacity:.65;cursor:wait}
.shahid-photo-form__message{min-height:24px;color:var(--ra-ink-600);line-height:1.9}
.shahid-photo-form__message[data-type="success"]{color:var(--ra-green-800);font-weight:800}
.shahid-photo-form__message[data-type="error"]{color:#9b292e;font-weight:800}
.raviyan-hp{position:absolute!important;inline-size:1px;block-size:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media(max-width:760px){.grave-location__card,.shahid-photo-form{grid-template-columns:1fr;padding:18px;border-radius:12px}.grave-location__map,.grave-location__map iframe{min-height:220px}.grave-location__map{border-radius:10px}.grave-location__actions .primary-button,.shahid-photo-form button{width:100%;justify-content:center}.grave-location__actions a:not(.primary-button){padding:8px 0}}

/* User text extends the existing participation form and oral-history component. */
body.single-shahid .shahid-photo-form textarea { direction:rtl; text-align:right; min-height:170px; resize:vertical; line-height:2; }
body.single-shahid .memory-entry__attachment { display:inline-flex; align-items:center; gap:12px; max-width:100%; margin-top:14px; color:var(--ra-green-800); font-size:12px; }
body.single-shahid .memory-entry__attachment img { width:76px; height:96px; object-fit:contain; border-radius:8px; background:var(--ra-ivory-100); }

.raviyan-social-link:hover,.raviyan-social-link:focus-visible { background:rgba(22,62,53,.045); }
.raviyan-social-link:focus-visible { outline:2px solid var(--ra-green-700); outline-offset:2px; }
.raviyan-social-copy { min-width:0; overflow-wrap:break-word; }
@media(prefers-reduced-motion:reduce){.raviyan-social-link{transition:none}}
