/* گزارش عملکرد موکب امام رضا علیه‌السلام — طراحی مستقل و آفلاین */
:root {
  --green-950: #062d24;
  --green-900: #083f31;
  --green-800: #0d5842;
  --green-700: #187052;
  --gold-500: #bd9348;
  --gold-300: #d8bd82;
  --paper: #f6f4ee;
  --paper-deep: #ece8de;
  --white: #ffffff;
  --ink: #17221e;
  --muted: #64716b;
  --line: rgba(9, 63, 49, .14);
  --shadow: 0 18px 55px rgba(17, 36, 29, .11);
  --radius-lg: 28px;
  --radius-md: 18px;
  --content: 1180px;
  color-scheme: light;
}

@font-face { font-family: "Peyda"; src: url("fonts/PeydaWeb-Thin.woff2") format("woff2"); font-weight: 100; font-style: normal; font-display: swap; }
@font-face { font-family: "Peyda"; src: url("fonts/peydaWeb-extralight.woff2") format("woff2"); font-weight: 200; font-style: normal; font-display: swap; }
@font-face { font-family: "Peyda"; src: url("fonts/peydaWeb-light.woff2") format("woff2"); font-weight: 300; font-style: normal; font-display: swap; }
@font-face { font-family: "Peyda"; src: url("fonts/PeydaWeb-Regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Peyda"; src: url("fonts/PeydaWeb-SemiBold.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Peyda"; src: url("fonts/PeydaWeb-Bold.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Peyda"; src: url("fonts/PeydaWeb-ExtraBold.woff2") format("woff2"); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Peyda"; src: url("fonts/PeydaWeb-Black.woff2") format("woff2"); font-weight: 900; font-style: normal; font-display: swap; }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 1.25rem; overflow-x: hidden; touch-action: pan-x pan-y; }
body {
  margin: 0;
  min-width: 320px;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 8% 4%, rgba(189, 147, 72, .09), transparent 24rem),
    linear-gradient(180deg, #fbfaf7 0, var(--paper) 38rem, #f8f7f2 100%);
  color: var(--ink);
  font-family: "Peyda", sans-serif !important;
  font-size: 1rem;
  line-height: 1.9;
  -webkit-font-smoothing: antialiased;
}
body.toc-is-open, body.lightbox-is-open { overflow: hidden; }
img { display: block; max-width: 100%; }
button, a { font: inherit; }
a { color: inherit; }
button { color: inherit; }
svg { fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 1rem;
  right: 1rem;
  padding: .7rem 1rem;
  border-radius: .75rem;
  background: var(--white);
  color: var(--green-900);
  transform: translateY(-180%);
  transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }
.reading-progress { position: fixed; z-index: 800; inset: 0 0 auto; height: 3px; background: rgba(255,255,255,.12); }
.reading-progress span { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--gold-300), var(--gold-500)); }

.hero {
  position: relative;
  isolation: isolate;
  min-height: min(900px, 100vh);
  min-height: min(900px, 100svh);
  overflow: hidden;
  background: var(--green-950);
  color: var(--white);
}
.hero-image { position: absolute; z-index: -4; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 45%; }
.hero-shade {
  position: absolute;
  z-index: -3;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(3, 25, 20, .58), rgba(3, 25, 20, .18) 44%, rgba(3, 25, 20, .78)),
    linear-gradient(0deg, rgba(3, 25, 20, .94), transparent 54%, rgba(3, 25, 20, .42));
}
.hero-pattern {
  position: absolute;
  z-index: -2;
  inset: 0;
  opacity: .17;
  background-image:
    linear-gradient(30deg, transparent 45%, rgba(255,255,255,.22) 46%, rgba(255,255,255,.22) 48%, transparent 49%),
    linear-gradient(-30deg, transparent 45%, rgba(255,255,255,.18) 46%, rgba(255,255,255,.18) 48%, transparent 49%);
  background-size: 72px 42px;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 70%);
  mask-image: linear-gradient(90deg, transparent 0, #000 70%);
}
.hero::after { content: ""; position: absolute; z-index: -1; inset: auto -5% -8rem; height: 13rem; background: var(--paper); transform: rotate(-2deg); transform-origin: left bottom; }
.hero-inner { width: min(calc(100% - 3rem), var(--content)); min-height: min(900px, 100vh); min-height: min(900px, 100svh); margin: auto; padding: 2rem 0 7rem; display: flex; flex-direction: column; justify-content: flex-end; }
.hero-topline { display: flex; align-items: center; justify-content: space-between; gap: 2rem; color: rgba(255,255,255,.84); font-size: .86rem; letter-spacing: .01em; }
.edition { display: inline-flex; align-items: center; gap: .55rem; }
.edition::before { content: ""; width: 1.8rem; height: 1px; background: var(--gold-300); }
.hero-content { width: min(780px, 76%); margin-bottom: 3.2rem; }
.hero-mark { display: flex; align-items: center; justify-content: center; width: 9rem; height: 9rem; margin-bottom: 1.45rem; padding: .7rem; border: 1px solid rgba(216,189,130,.62); border-radius: 50% 50% 12px 12px; }
.hero-mark img { width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 2px 6px rgba(0,0,0,.25)); }
.hero-kicker { margin: 0 0 .8rem; color: var(--gold-300); font-size: clamp(.84rem, 1.3vw, 1rem); font-weight: 700; letter-spacing: .04em; }
.hero h1 { max-width: 560px; margin: 0; font-size: clamp(1.9rem, 4.4vw, 3.6rem); font-weight: 800; line-height: 1.28; text-wrap: balance; text-shadow: 0 5px 30px rgba(0,0,0,.28); }
.hero-organization { margin: 1rem 0 .3rem; font-size: clamp(1rem, 2vw, 1.32rem); color: rgba(255,255,255,.9); }
.hero-place { margin: 0; color: rgba(255,255,255,.68); font-size: .94rem; }
.scroll-cue { display: inline-flex; align-items: center; gap: .55rem; align-self: flex-start; margin-top: 1.3rem; color: rgba(255,255,255,.72); font-size: .82rem; text-decoration: none; }
.scroll-cue svg { width: 1rem; animation: cue 1.8s ease-in-out infinite; }
@keyframes cue { 50% { transform: translateY(5px); } }

.mobile-report-bar { display: none; }
.report-layout { width: min(calc(100% - 3rem), var(--content)); margin: -2rem auto 0; display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.toc { position: sticky; top: 1.25rem; z-index: 20; direction: rtl; }
.toc-card { overflow: hidden; border: 1px solid rgba(255,255,255,.8); border-radius: 22px; background: rgba(255,255,255,.82); box-shadow: var(--shadow); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px); }
.toc-heading { padding: 1.2rem 1.15rem .9rem; border-bottom: 1px solid var(--line); }
.toc-heading > div span, .toc-heading > div strong { display: block; }
.toc-heading > div span { color: var(--gold-500); font-size: .72rem; font-weight: 700; }
.toc-heading > div strong { margin-top: .1rem; color: var(--green-950); font-size: .9rem; }
.toc-close { display: none; }
.toc nav { max-height: calc(100svh - 12.5rem); overflow: auto; scrollbar-width: thin; scrollbar-color: rgba(13,88,66,.25) transparent; }
.toc ol { margin: 0; padding: .55rem; list-style: none; }
.toc li + li { margin-top: .1rem; }
.toc a { display: flex; align-items: center; gap: .7rem; padding: .58rem .6rem; border-radius: 11px; color: #43514b; font-size: .76rem; line-height: 1.5; text-decoration: none; transition: color .2s ease, background .2s ease, transform .2s ease; }
.toc a:hover { color: var(--green-900); background: rgba(13,88,66,.07); }
.toc a.is-active { color: var(--green-900); background: rgba(13,88,66,.1); font-weight: 700; }
.toc-number { display: grid; flex: 0 0 1.7rem; width: 1.7rem; height: 1.7rem; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--gold-500); font-size: .65rem; }
.toc a.is-active .toc-number { background: var(--green-900); border-color: var(--green-900); color: #fff; }
.toc-top { justify-content: space-between !important; margin: .2rem .55rem .55rem; border-top: 1px solid var(--line); border-radius: 0 !important; color: var(--muted) !important; }
.toc-top svg { width: .9rem; }

main { min-width: 0; padding-bottom: 7rem; }
.report-section { padding: clamp(4.5rem, 8vw, 7.2rem) 0; scroll-margin-top: 1rem; }
.report-section + .report-section { border-top: 1px solid var(--line); }
.section-header { position: relative; margin-bottom: 2rem; }
.section-order { display: inline-block; margin-bottom: .45rem; color: var(--gold-500); font-size: .77rem; font-weight: 700; letter-spacing: .03em; }
.section-header h2 { max-width: 850px; margin: 0; color: var(--green-950); font-size: clamp(1.75rem, 4vw, 3.15rem); line-height: 1.45; text-wrap: balance; }
.section-rule { display: block; width: 5.5rem; height: 3px; margin-top: 1.2rem; border-radius: 999px; background: linear-gradient(90deg, var(--gold-500), rgba(189,147,72,.08)); }
.section-copy { max-width: 830px; }
.section-copy > p { margin: 0 0 1.15rem; color: #2b3833; font-size: 1.02rem; line-height: 2.12; text-align: justify; text-justify: inter-word; }
.section-copy a { color: var(--green-700); font-weight: 700; text-underline-offset: .25rem; }
.opening-prayer { position: relative; margin-bottom: 2rem !important; padding: 1.2rem 1.4rem 1.2rem 3rem; border-right: 3px solid var(--gold-500); background: linear-gradient(90deg, transparent, rgba(189,147,72,.08)); color: var(--green-900) !important; font-weight: 700; }
.source-note { display: inline-block; padding: .55rem 1rem; border: 1px dashed rgba(189,147,72,.58); border-radius: 12px; background: rgba(255,255,255,.6); color: #80662f !important; font-size: .88rem !important; }
.fact-row { display: grid; grid-template-columns: minmax(120px, .7fr) 2fr; gap: 1rem; max-width: 760px; padding: .75rem 0; border-bottom: 1px solid var(--line); }
.fact-label { color: var(--green-800); font-weight: 700; }
.fact-value { color: #34423c; }
.report-list { max-width: 800px; margin: 1.25rem 0 1.8rem; padding: 0; list-style: none; }
.report-list li { position: relative; padding: .68rem 2rem .68rem 0; color: #2f3e38; line-height: 1.9; }
.report-list li::before { content: ""; position: absolute; top: 1.38rem; right: .2rem; width: .55rem; height: .55rem; border: 2px solid var(--gold-500); transform: rotate(45deg); }
.service-path { padding: 1.35rem 1.5rem; border: 1px solid var(--line); border-radius: var(--radius-md); background: rgba(255,255,255,.72); box-shadow: 0 8px 30px rgba(10,52,39,.06); color: var(--green-950) !important; font-weight: 700; }
.achievement-card { display: grid; grid-template-columns: minmax(210px, .75fr) 1.6fr; gap: 1.2rem; max-width: 850px; margin: 0 0 .7rem; padding: 1.1rem 1.25rem; border: 1px solid var(--green-700); border-radius: 14px; background: linear-gradient(135deg, var(--green-800), var(--green-950)); }
.achievement-card h3 { margin: 0; color: var(--gold-300); font-size: .96rem; line-height: 1.9; }
.achievement-card h3 span { color: #fff; }
.achievement-card p { margin: 0; color: #f2efe6; font-size: .91rem; line-height: 1.9; }
.supporter-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; max-width: 850px; margin: 1.25rem 0 1.8rem; padding: 0; list-style: none; }
.supporter-list li { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 4rem; padding: .8rem 1.1rem; border: 1px solid rgba(189,147,72,.35); border-radius: 13px; background: linear-gradient(135deg, var(--gold-300), var(--gold-500)); color: var(--green-950); font-weight: 600; font-size: 1rem; line-height: 1.7; }
.supporter-list li:last-child { grid-column: 1 / -1; }
.closing-prayer { font-weight: 800; color: var(--green-900); }
.closing-meta { margin: .35rem 0 !important; color: var(--green-800) !important; text-align: center !important; font-weight: 700; }

.gallery-block { margin-top: 3.2rem; }
.gallery-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.gallery-eyebrow { display: block; color: var(--gold-500); font-size: .72rem; font-weight: 700; }
.gallery-heading h3 { margin: .08rem 0 0; color: var(--green-950); font-size: 1.18rem; }
.image-count { display: inline-flex; align-items: center; min-height: 2rem; padding: .2rem .75rem; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); background: rgba(255,255,255,.6); font-size: .73rem; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-flow: dense; gap: .7rem; }
.gallery-item { position: relative; min-width: 0; height: 210px; margin: 0; overflow: hidden; border-radius: 15px; background: var(--paper-deep); box-shadow: 0 8px 24px rgba(16,42,33,.08); }
.gallery-item.is-feature { grid-column: span 2; grid-row: span 2; height: auto; min-height: 430px; }
.gallery-item.is-portrait:not(.is-feature) { grid-row: span 2; height: 430px; }
.gallery-grid.is-collapsed .gallery-item:nth-child(n+9) { display: none; }
.image-button { position: relative; width: 100%; height: 100%; padding: 0; overflow: hidden; border: 0; background: transparent; cursor: zoom-in; }
.image-button img { width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.7,.2,1), filter .4s ease; }
.image-button:hover img, .image-button:focus-visible img { transform: scale(1.035); filter: saturate(1.05) contrast(1.02); }
.image-button:focus-visible { outline: 3px solid var(--gold-500); outline-offset: -4px; }
.image-overlay { position: absolute; inset: auto .65rem .65rem; display: flex; align-items: center; gap: .45rem; width: max-content; max-width: calc(100% - 1.3rem); padding: .38rem .62rem; border: 1px solid rgba(255,255,255,.28); border-radius: 999px; background: rgba(5,31,24,.7); color: #fff; font-size: .7rem; opacity: 0; transform: translateY(.4rem); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); transition: opacity .25s ease, transform .25s ease; }
.image-overlay svg { width: .9rem; }
.image-button:hover .image-overlay, .image-button:focus-visible .image-overlay { opacity: 1; transform: translateY(0); }
.gallery-toggle { display: flex; align-items: center; justify-content: center; gap: .55rem; min-width: 13rem; margin: 1rem auto 0; padding: .68rem 1.1rem; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: var(--green-800); cursor: pointer; transition: background .2s ease, transform .2s ease; }
.gallery-toggle:hover { background: rgba(13,88,66,.06); transform: translateY(-1px); }
.gallery-toggle svg { width: 1rem; transition: transform .25s ease; }
.gallery-toggle.is-open svg { transform: rotate(180deg); }

.report-footer { position: relative; overflow: hidden; padding: 6rem 1.5rem 3rem; background: var(--green-950); color: #fff; text-align: center; }
.report-footer::before { content: ""; position: absolute; inset: 0; opacity: .12; background-image: linear-gradient(30deg, transparent 45%, rgba(255,255,255,.3) 46%, rgba(255,255,255,.3) 48%, transparent 49%), linear-gradient(-30deg, transparent 45%, rgba(255,255,255,.3) 46%, rgba(255,255,255,.3) 48%, transparent 49%); background-size: 72px 42px; }
.report-footer p, .report-footer > span { position: relative; z-index: 1; }
.report-footer p { margin: .7rem 0 0; font-size: 1.05rem; font-weight: 700; }
.report-footer > span { display: block; color: rgba(255,255,255,.6); font-size: .82rem; }
.footer-logos { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: 1.4rem; margin: 0 auto 1.3rem; }
.footer-logo { height: 4.6rem; width: auto; object-fit: contain; }
.footer-logo-divider { width: 1px; height: 3rem; background: rgba(216,189,130,.4); }
@media (max-width: 480px) {
  .footer-logos { gap: .9rem; }
  .footer-logo { height: 3.6rem; }
}

.lightbox { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; padding: 1.25rem; opacity: 0; transition: opacity .25s ease; }
.lightbox[hidden] { display: none; }
.lightbox.is-open { opacity: 1; }
.lightbox-backdrop { position: absolute; inset: 0; background: rgba(2, 16, 12, .92); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.lightbox-panel { position: relative; z-index: 1; width: min(96vw, 1500px); height: min(92vh, 960px); height: min(92svh, 960px); display: flex; flex-direction: column; }
.lightbox-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 3.5rem; color: #fff; }
.lightbox-toolbar p { margin: 0; color: rgba(255,255,255,.82); font-size: .86rem; }
.lightbox-close { display: grid; flex: 0 0 2.5rem; width: 2.5rem; height: 2.5rem; padding: .65rem; place-items: center; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; background: rgba(255,255,255,.08); color: #fff; cursor: pointer; }
.lightbox-stage { min-height: 0; flex: 1; display: grid; grid-template-columns: 3rem minmax(0, 1fr) 3rem; align-items: center; gap: 1rem; }
.lightbox-stage figure { min-width: 0; height: 100%; display: flex; flex-direction: column; justify-content: center; margin: 0; }
.lightbox-stage img { width: 100%; height: calc(100% - 2rem); object-fit: contain; }
.lightbox-stage figcaption { height: 2rem; padding-top: .45rem; color: rgba(255,255,255,.44); direction: ltr; font-size: .72rem; text-align: center; }
.lightbox-nav { display: grid; width: 3rem; height: 3rem; padding: .75rem; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(255,255,255,.07); color: #fff; cursor: pointer; }
.lightbox-nav:hover, .lightbox-close:hover { background: rgba(255,255,255,.15); }

.reveal-ready .reveal { opacity: 0; transform: translateY(18px); transition: opacity .85s cubic-bezier(.16,.84,.44,1), transform .85s cubic-bezier(.16,.84,.44,1); }
.reveal-ready .reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1020px) {
  .hero-content { width: min(720px, 92%); }
  .mobile-report-bar { position: sticky; z-index: 100; top: 0; display: flex; align-items: center; justify-content: space-between; min-height: 3.75rem; padding: .65rem 1.25rem; border-bottom: 1px solid rgba(255,255,255,.78); background: rgba(250,249,245,.97); }
  .mobile-brand { color: var(--green-950); font-size: .84rem; font-weight: 700; text-decoration: none; }
  .toc-toggle { display: flex; align-items: center; gap: .45rem; padding: .45rem .65rem; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--green-900); cursor: pointer; font-size: .78rem; }
  .toc-toggle svg { width: 1.05rem; }
  .report-layout { display: block; width: min(calc(100% - 2.5rem), 850px); margin-top: 0; }
  .toc { position: fixed; z-index: 920; top: 0; right: 0; width: min(88vw, 340px); height: 100vh; height: 100svh; padding: 1rem; transform: translateX(105%); transition: transform .3s cubic-bezier(.2,.7,.2,1); }
  body.toc-is-open .toc { transform: translateX(0); }
  .toc-card { height: 100%; display: flex; flex-direction: column; background: rgba(255,255,255,.97); }
  .toc-heading { display: flex; align-items: center; justify-content: space-between; }
  .toc-close { display: grid; width: 2.35rem; height: 2.35rem; padding: .62rem; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: #fff; cursor: pointer; }
  .toc nav { max-height: none; flex: 1; }
  .toc-backdrop { position: fixed; z-index: 910; inset: 0; background: rgba(3,24,18,.55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
  .toc-backdrop:not([hidden]) { display: block; }
  main { padding-bottom: 4rem; }
}

@media (max-width: 720px) {
  body { font-size: .98rem; }
  .hero { min-height: 700px; }
  .hero::after { bottom: -9rem; }
  .hero-inner { width: min(calc(100% - 2rem), 620px); min-height: 700px; padding: 1.4rem 0 2.4rem; justify-content: flex-start; }
  .hero-topline { align-items: flex-start; gap: 1rem; font-size: .72rem; }
  .edition { text-align: left; }
  .hero-content { width: 100%; margin-top: 3.4rem; margin-bottom: 0; }
  .hero-mark { width: 6rem; height: 6rem; }
  .hero h1 { font-size: clamp(1.8rem, 8vw, 2.6rem); line-height: 1.38; }
  .hero-organization { font-size: .98rem; }
  .scroll-cue { display: none; }
  .report-layout { width: min(calc(100% - 2rem), 620px); }
  .report-section { padding: 4.4rem 0; }
  .section-header { margin-bottom: 1.5rem; }
  .section-copy > p { font-size: 1rem; line-height: 2; text-align: start; }
  .fact-row { grid-template-columns: 1fr; gap: .1rem; }
  .achievement-card { grid-template-columns: 1fr; gap: .35rem; }
  .supporter-list { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .5rem; }
  .supporter-list li { min-height: 0; padding: .7rem .8rem; font-size: .92rem; line-height: 1.5; }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
  .gallery-item { height: 145px; border-radius: 11px; }
  .gallery-item.is-feature { min-height: 296px; }
  .gallery-item.is-portrait:not(.is-feature) { height: 296px; }
  .image-overlay { opacity: 1; transform: none; inset: auto .45rem .45rem; padding: .25rem .45rem; background: rgba(5,31,24,.62); }
  .gallery-heading { align-items: center; }
  .lightbox { padding: .75rem; }
  .lightbox-panel { width: 100%; height: 94vh; height: 94svh; }
  .lightbox-stage { position: relative; display: block; }
  .lightbox-stage figure { height: 100%; }
  .lightbox-stage img { height: calc(100% - 2.5rem); }
  .lightbox-nav { position: absolute; z-index: 2; top: 50%; width: 2.7rem; height: 2.7rem; background: rgba(4,28,21,.65); transform: translateY(-50%); }
  .lightbox-next { right: .25rem; }
  .lightbox-prev { left: .25rem; }
}

@media (max-width: 420px) {
  .hero { min-height: 640px; }
  .hero-inner { min-height: 640px; }
  .hero-topline .edition::before { display: none; }
  .mobile-report-bar { padding-inline: .85rem; }
  .gallery-item { height: 118px; }
  .gallery-item.is-feature, .gallery-item.is-portrait:not(.is-feature) { min-height: 244px; height: 244px; }
  .image-overlay span { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal-ready .reveal { opacity: 1; transform: none; }
}

@media print {
  @page { size: A4; margin: 18mm 15mm; }
  body { background: #fff; color: #000; font-family: "Peyda", sans-serif !important; }
  .reading-progress, .mobile-report-bar, .toc, .gallery-toggle, .image-overlay, .scroll-cue, .lightbox, .float-actions, .splash, .meal-chart { display: none !important; }
  .hero-topline { color: #000 !important; }
  .doc-badge { background: none !important; border: 1px solid #000 !important; color: #000 !important; }
  .sign-block { break-inside: avoid; }
  .hero { min-height: 255mm; break-after: page; }
  .hero-inner { min-height: 255mm; padding: 15mm 0; }
  .hero::after { display: none; }
  .report-layout { display: block; width: 100%; margin: 0; }
  .report-section { padding: 13mm 0; break-before: page; border-top: 0 !important; }
  .report-section:first-child { break-before: auto; }
  .section-header h2 { font-size: 22pt; }
  .section-copy > p { color: #111; font-size: 10.5pt; line-height: 1.85; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-grid.is-collapsed .gallery-item:nth-child(n+9) { display: block; }
  .gallery-item, .gallery-item.is-feature, .gallery-item.is-portrait:not(.is-feature) { grid-column: auto; grid-row: auto; height: 52mm; min-height: 0; break-inside: avoid; }
  .reveal-ready .reveal { opacity: 1; transform: none; }
  .report-footer { break-before: page; }
}


/* Modern image slider redesign */
.modern-slider-block { margin-top: 2rem; }
.modern-slider-block .gallery-heading h3 { font-size:1.05rem; margin:.25rem 0 0; }
.image-slider-shell {
  background: rgba(255,255,255,.75);
  border:1px solid rgba(9,63,49,.12);
  border-radius:28px;
  padding:18px;
  box-shadow:0 20px 60px rgba(17,36,29,.12);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.image-slider-main {
  position:relative;
  aspect-ratio: var(--slider-ratio, 16 / 10);
  min-height:160px;
  max-height:min(70vh,650px);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-radius:22px;
  background:
    radial-gradient(circle at center,rgba(189,147,72,.12),transparent 55%),
    #eeeae1;
  cursor:zoom-in;
}
.slider-image {
  width:100%;
  height:100%;
  object-fit:contain !important;
  object-position:center;
  transition:opacity .25s ease, transform .35s ease;
}
.image-slider-main button {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.7);
  background:rgba(6,45,36,.72);
  color:white;
  cursor:pointer;
  font-size:30px;
  line-height:1;
  display:grid;
  place-items:center;
  z-index:2;
}
.image-slider-main .slider-prev { right:18px; }
.image-slider-main .slider-next { left:18px; }
.image-slider-main:hover .slider-image { transform:scale(1.015); }
.image-thumbnails {
  display:flex;
  gap:10px;
  overflow-x:auto;
  padding:16px 4px 4px;
  scrollbar-width:thin;
}
.thumb {
  flex:0 0 88px;
  height:72px;
  padding:0;
  border-radius:14px;
  overflow:hidden;
  border:2px solid transparent;
  background:#ddd;
  cursor:pointer;
  opacity:.7;
  transition:.25s;
}
.thumb img {
  width:100%;
  height:100%;
  object-fit:cover;
}
.thumb.active,.thumb:hover {
  opacity:1;
  border-color:var(--gold-500);
  transform:translateY(-3px);
}
@media(max-width:600px){
 .image-slider-shell{padding:10px;border-radius:20px}
 .image-slider-main{max-height:min(60vh,420px);border-radius:16px}
 .thumb{flex-basis:70px;height:58px}
}


/* ===== Compact annual report refinement ===== */
.report-section{padding-block:clamp(28px,4vw,54px)}
.section-header{margin-bottom:18px}
.section-header h2{font-size:clamp(1.35rem,2vw,1.9rem);line-height:1.5}
.section-copy{line-height:1.9}
.section-copy p{margin-bottom:14px}

/* Modern timeline */
.timeline-modern{
 position:relative;
 display:grid;
 grid-template-columns:repeat(5,minmax(0,1fr));
 gap:8px;
 margin:22px 0;
}
.timeline-modern:before{
 display:none;
}
.timeline-item{
 position:relative;
 display:flex;
 flex-direction:column;
 align-items:center;
 text-align:center;
 gap:.35rem;
 background:linear-gradient(135deg, var(--gold-300), var(--gold-500));
 color:var(--green-950);
 border-radius:14px;
 padding:.9rem .9rem;
 box-shadow:0 8px 25px rgba(0,0,0,.08);
}
.timeline-icon{
 position:static;
 flex:0 0 auto;
 width:auto;height:auto;
 border-radius:0;
 display:flex;align-items:center;justify-content:center;
 font-size:1rem;
 font-weight:700;
 line-height:1;
 background:none;
 color:var(--green-800);
 opacity:.5;
 margin-bottom:.1rem;
}
.timeline-item > div{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;min-width:0;width:100%}
.timeline-item strong{font-size:.92rem;font-weight:700;color:var(--green-800);opacity:1}
.timeline-item h3{margin:0;font-size:1.05rem;line-height:1.35;color:var(--green-950)}
.timeline-item p{margin:1px 0 0;font-size:.72rem;line-height:1.35;color:var(--green-900)}

/* statistic cards */
.compact-stats,.stats-cards{
 display:grid;
 grid-template-columns:repeat(3,minmax(0,1fr));
 gap:14px;
 margin:22px 0;
}
.stat-card{
 padding:18px 14px;
 text-align:center;
 border-radius:20px;
 background:#fff;
 box-shadow:0 10px 30px rgba(0,0,0,.06);
}
.stat-card b{
 display:block;
 font-size:2rem;
 line-height:1.2;
 font-weight:800;
}
.stat-card span{display:block;font-weight:700;margin-top:8px}
.stat-card small{display:block;opacity:.7;margin-top:4px}

@media(max-width:700px){
 .stats-cards{grid-template-columns:1fr}
 .compact-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0}
 .compact-stats .stat-card{padding:10px 6px;border-radius:14px}
 .compact-stats .stat-card b{font-size:1.3rem}
 .compact-stats .stat-card span{font-size:.78rem;margin-top:4px}
 .compact-stats .stat-card small{font-size:.68rem;margin-top:2px;line-height:1.3}
 .timeline-modern{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 .timeline-item{padding:.7rem .5rem}
 .timeline-item p{display:none}
 .report-section{padding-block:24px}
 .section-header h2{font-size:1.3rem}
}

@media(max-width:420px){
 .timeline-modern{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Luxury annual report refinement v2 */
:root{
 --report-gap:clamp(22px,3vw,42px);
}
.report-section{
 padding-block:clamp(28px,3vw,48px);
}
.section-header{
 margin-bottom:18px;
}
.section-header h2{
 letter-spacing:-.03em;
 line-height:1.5;
 max-width:900px;
 font-weight:800;
}
.section-copy{
 max-width:900px;
 margin-inline:auto;
 line-height:2;
}
.section-copy p{
 margin-bottom:14px;
}
.modern-slider-block{
 margin-top:22px!important;
}
.gallery-heading{
 margin-bottom:12px!important;
}
.image-slider-shell{
 border-radius:24px!important;
 overflow:hidden;
 box-shadow:0 18px 50px rgba(0,0,0,.10);
}
.image-slider-main{
 min-height:160px;
 background:#f4f1e8;
}
.slider-image{
 object-fit:contain!important;
 width:100%;
 height:100%;
}
.image-thumbnails{
 padding:12px!important;
 gap:8px!important;
}
.thumb{
 border-radius:12px!important;
 overflow:hidden;
}

/* better mobile density */
@media(max-width:700px){
 .image-slider-main{min-height:140px;max-height:min(60vh,420px)}
 .section-copy{line-height:1.9}
 .report-section{padding-block:22px}
 .section-header{margin-bottom:12px}
}

/* Luxury annual report enhancements */
.section-header h2{font-size:clamp(1.55rem,3vw,2.55rem);letter-spacing:-.02em}
.section-header::after{content:"گزارش عملکرد و دستاوردهای سال ۱۴۰۵";display:block;color:var(--muted);font-size:.86rem;margin-top:.45rem}
.report-section{padding:clamp(2.3rem,4.4vw,3.6rem) 0}
.section-copy > p{line-height:1.85;margin-bottom:.75rem}
.timeline-modern{margin-top:.85rem}
.timeline-item{background:linear-gradient(135deg, var(--gold-300), var(--gold-500));color:var(--green-950);margin-bottom:0;transition:transform .3s cubic-bezier(.16,.84,.44,1),box-shadow .3s ease}
.timeline-item:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(10,52,39,.16)}
.stats-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.15rem 0}
.stat-card{padding:1.1rem;border:1px solid var(--green-700);border-radius:20px;background:linear-gradient(160deg, var(--green-800), var(--green-950));text-align:center;box-shadow:0 8px 25px rgba(10,52,39,.14);transition:transform .3s cubic-bezier(.16,.84,.44,1),box-shadow .3s ease}
.stat-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(10,52,39,.2)}
.stat-card b{display:block;font-size:2.2rem;color:var(--gold-300);line-height:1.2}
.stat-card span{display:block;font-weight:800;color:#fff}
.stat-card small{color:rgba(255,255,255,.72)}
.achievement-card{padding:1rem 1.2rem!important;border-radius:18px!important;box-shadow:none!important}
.gallery-block{margin-top:1.4rem!important}
@media(max-width:720px){.stats-cards{grid-template-columns:1fr}.section-header::after{font-size:.78rem}}
.stats-cards.compact-stats{grid-template-columns:repeat(3,minmax(0,1fr))}

/* ============================================================
   LUXURY ANNUAL REPORT — Cover, KPI Dashboard, Visual TOC,
   Achievement cards, Parallax & Motion system
   ============================================================ */

:root {
  --cream: #f8f4e9;
  --gold-grad: linear-gradient(135deg, #efd39c 0%, var(--gold-500) 52%, #9c7830 100%);
  --emerald-grad: linear-gradient(145deg, var(--green-800), var(--green-950));
  --card-glass: rgba(255,255,255,.66);
  --stagger: 70ms;
}

/* ---- Reveal system: fade / slide-up with stagger + hover lift ---- */
.reveal { transition-delay: calc(var(--i, 0) * var(--stagger)); }
.reveal-ready .reveal.reveal-fade { transform: none; }
.hover-lift { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease; }
.hover-lift:hover, .hover-lift:focus-visible { transform: translateY(-6px); }

/* ---- Cover refinements: gold foil title + corner ornaments ---- */
.hero h1 { background: linear-gradient(180deg, #fff 32%, var(--gold-300) 130%); -webkit-background-clip: text; background-clip: text; }
@supports (-webkit-background-clip: text) {
  .hero h1 { -webkit-text-fill-color: transparent; }
}
.hero::before {
  content: ""; position: absolute; z-index: 2; inset: 1.4rem 1.4rem auto auto;
  width: 4.6rem; height: 4.6rem; border-top: 1px solid rgba(216,189,130,.55); border-right: 1px solid rgba(216,189,130,.55);
  pointer-events: none;
}
.hero-image { will-change: transform; }
.hero-mark { position: relative; overflow: hidden; }
.hero-mark::after {
  content: ""; position: absolute; inset: -40% -40%; background: conic-gradient(from 0deg, transparent, rgba(216,189,130,.55), transparent 32%);
  animation: rotate-shine 5.5s linear infinite;
}
@keyframes rotate-shine { to { transform: rotate(360deg); } }

/* ---- KPI dashboard ("گزارش در یک نگاه") ---- */
.kpi-dashboard { position: relative; padding: clamp(2.6rem, 6vw, 4.2rem) 0; background: var(--emerald-grad); color: #fff; overflow: hidden; }
.kpi-dashboard::before {
  content: ""; position: absolute; inset: 0; opacity: .10; pointer-events: none;
  background-image: linear-gradient(30deg, transparent 45%, rgba(255,255,255,.3) 46%, rgba(255,255,255,.3) 48%, transparent 49%), linear-gradient(-30deg, transparent 45%, rgba(255,255,255,.3) 46%, rgba(255,255,255,.3) 48%, transparent 49%);
  background-size: 64px 38px;
}
.kpi-inner { position: relative; width: min(calc(100% - 3rem), var(--content)); margin: 0 auto; }
.kpi-heading { margin-bottom: 1.8rem; text-align: center; }
.kpi-eyebrow { display: inline-block; margin-bottom: .5rem; color: var(--gold-300); font-size: .78rem; font-weight: 800; letter-spacing: .09em; }
.kpi-heading h2 { margin: 0; font-size: clamp(1.35rem, 2.6vw, 2rem); font-weight: 800; color: #fff; }
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
.kpi-card {
  position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: .35rem;
  padding: 1.5rem 1rem 1.3rem; border-radius: 20px; border: 1px solid rgba(255,255,255,.14);
  background: linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.03));
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  transition: transform .4s cubic-bezier(.2,.7,.2,1), border-color .4s ease, background .4s ease;
}
.kpi-card:hover { transform: translateY(-7px); border-color: rgba(216,189,130,.6); background: linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.04)); }
.kpi-icon { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; margin-bottom: .15rem; border-radius: 50%; background: rgba(216,189,130,.16); color: var(--gold-300); }
.stat-icon-svg { width: 1.3rem; height: 1.3rem; stroke: currentColor; fill: none; stroke-width: 1.7; }
.kpi-chart { position: absolute; top: .7rem; left: .7rem; width: 2rem; height: 2rem; opacity: .85; }
.kpi-ring { width: 100%; height: 100%; transform: rotate(-90deg); }
.kpi-ring-track { fill: none; stroke: rgba(255,255,255,.15); stroke-width: 3; }
.kpi-ring-fill { fill: none; stroke: var(--gold-300); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 97.4; stroke-dashoffset: 97.4; }
.kpi-value { font-size: clamp(1.5rem, 2.6vw, 2rem); font-weight: 800; color: #fff; letter-spacing: -.01em; }
.kpi-label { font-size: .84rem; font-weight: 700; color: var(--gold-300); }
.kpi-note { font-size: .74rem; color: rgba(255,255,255,.58); line-height: 1.6; }

/* ---- Premium visual table of contents ---- */
.visual-toc { padding: clamp(3rem, 6vw, 4.5rem) 0 clamp(2.2rem, 5vw, 3.5rem); background: linear-gradient(180deg, #fbfaf7, var(--paper)); }
.visual-toc-inner { width: min(calc(100% - 3rem), var(--content)); margin: 0 auto; }
.visual-toc-heading { margin-bottom: 1.8rem; text-align: center; }
.visual-toc-heading h2 { margin: .3rem 0 0; color: var(--green-950); font-size: clamp(1.35rem, 2.6vw, 2rem); font-weight: 800; }
.visual-toc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1.1rem; }
.vtoc-card {
  position: relative; display: flex; flex-direction: column; overflow: hidden; text-decoration: none; color: inherit;
  border-radius: 20px; background: var(--card-glass); border: 1px solid var(--line); box-shadow: 0 14px 34px rgba(16,42,33,.08);
  transition: transform .4s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease, border-color .4s ease;
}
.vtoc-card:hover, .vtoc-card:focus-visible { transform: translateY(-7px); box-shadow: 0 24px 48px rgba(16,42,33,.16); border-color: rgba(189,147,72,.5); }
.vtoc-card-media { position: relative; display: block; height: 132px; overflow: hidden; background: var(--paper-deep); }
.vtoc-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.vtoc-card:hover .vtoc-card-media img { transform: scale(1.08); }
.vtoc-card.no-image .vtoc-card-media { display: grid; place-items: center; background: var(--emerald-grad); }
.vtoc-card-mark { width: 2.6rem; height: 2.6rem; border: 1px solid rgba(216,189,130,.6); border-radius: 50% 50% 10px 10px; }
.vtoc-card-mark::after { content:""; display:block; width: 1rem; height: 1rem; margin: .7rem auto 0; border: 1px solid var(--gold-300); transform: rotate(45deg); }
.vtoc-card-body { display: flex; align-items: center; gap: .65rem; padding: .8rem .95rem; }
.vtoc-card-number { flex: 0 0 auto; color: var(--gold-500); font-size: .78rem; font-weight: 800; }
.vtoc-card-title { flex: 1; color: var(--green-950); font-size: .86rem; font-weight: 700; line-height: 1.5; }
.vtoc-card-arrow { position: absolute; bottom: .85rem; left: .9rem; display: grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%; background: rgba(9,63,49,.07); color: var(--green-800); opacity: 0; transform: translateX(6px); transition: opacity .3s ease, transform .3s ease; }
.vtoc-card-arrow svg { width: .85rem; height: .85rem; }
.vtoc-card:hover .vtoc-card-arrow { opacity: 1; transform: translateX(0); }

/* ---- Achievement / KPI-style cards (section 12) ---- */
#section-12 .section-copy { max-width: none; }
#section-12 .achievement-card {
  position: relative; display: block; grid-template-columns: none; max-width: none;
  padding: 1.5rem 1.35rem 1.3rem; border-radius: 20px; background: linear-gradient(160deg, var(--green-800), var(--green-950));
  box-shadow: 0 10px 30px rgba(10,52,39,.18);
}
.achievement-card { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease; }
.achievement-card:hover { transform: translateY(-6px); box-shadow: 0 20px 42px rgba(10,52,39,.12); }
.achv-index { position: absolute; top: 1.1rem; left: 1.2rem; color: rgba(255,255,255,.16); font-size: 1.6rem; font-weight: 800; }
.achv-icon { display: grid; place-items: center; width: 3rem; height: 3rem; margin-bottom: .9rem; border-radius: 14px; background: linear-gradient(150deg, rgba(216,189,130,.32), rgba(189,147,72,.14)); color: var(--gold-500); }
.achv-icon .stat-icon-svg { width: 1.5rem; height: 1.5rem; color: var(--gold-300); }
.achv-title { margin: 0 0 .5rem; color: var(--gold-300); font-size: 1.02rem; font-weight: 800; line-height: 1.6; }
.achv-desc { margin: 0; color: #f2efe6; font-size: .91rem; line-height: 1.85; }
#section-12 .gallery-block .achievement-card { transform: none; box-shadow: none; }
@media (min-width: 640px) {
  #section-12 > .section-copy { display: grid; grid-template-columns: 1fr; }
  #section-12 .achievement-card + .achievement-card { margin-top: 0; }
}
#section-12 .section-copy { display: block; }
#section-12 .section-copy p:first-child + .achievement-card,
#section-12 .achievement-card { }
.achievement-grid-wrap { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; margin-top: 1.2rem; }

@media (max-width: 700px) {
  .kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .visual-toc-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .kpi-card { padding: 1.2rem .75rem 1rem; }
  .achievement-grid-wrap { grid-template-columns: repeat(2, minmax(0,1fr)); gap: .7rem; }
  #section-12 .achievement-card { padding: 1.1rem .9rem 1rem !important; border-radius: 16px !important; }
  .achv-index { top: .8rem; left: .85rem; font-size: 1.2rem; }
  .achv-icon { width: 2.3rem; height: 2.3rem; margin-bottom: .6rem; border-radius: 11px; }
  .achv-icon .stat-icon-svg { width: 1.15rem; height: 1.15rem; }
  .achv-title { font-size: .88rem; line-height: 1.5; margin-bottom: .35rem; }
  .achv-desc { font-size: .8rem; line-height: 1.65; }
}

@media (max-width: 360px) {
  .achievement-grid-wrap { grid-template-columns: 1fr; }
}

@media print {
  .kpi-dashboard, .visual-toc { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-mark::after { animation: none; }
  .kpi-card, .toc-card, .vtoc-card, .achievement-card, .hover-lift { transition: none !important; }
}

/* ================= افزوده‌های نسخه رسمی/پویا ================= */

/* --- Splash loader --- */
.splash {
  position: fixed; inset: 0; z-index: 9999;
  display: grid; place-items: center;
  background: var(--green-950);
  transition: opacity .5s ease, visibility .5s ease;
}
.splash-mark { position: relative; overflow: hidden; width: 4.6rem; height: 4.6rem; border: 1px solid rgba(216,189,130,.6); border-radius: 50% 50% 12px 12px; }
.splash-mark span { display: block; width: 1.8rem; height: 1.8rem; margin: 1.35rem auto 0; border: 1px solid var(--gold-300); transform: rotate(45deg); }
.splash-mark::after {
  content: ""; position: absolute; inset: -40% -40%;
  background: conic-gradient(from 0deg, transparent, rgba(216,189,130,.6), transparent 32%);
  animation: rotate-shine 1.4s linear infinite;
}
.splash.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
@media (prefers-reduced-motion: reduce) { .splash { transition: none; } .splash-mark::after { animation: none; } }

/* --- Official document strip in hero --- */
.hero-topline {
  display: flex; flex-wrap: wrap; align-items: center; gap: .6rem .9rem;
  margin-bottom: 1.4rem; color: rgba(255,255,255,.82); font-size: .78rem;
}
.doc-badge {
  display: inline-flex; align-items: center; gap: .4rem; padding: .38rem .85rem;
  border: 1px solid rgba(216,189,130,.55); border-radius: 999px;
  background: rgba(216,189,130,.12); color: var(--gold-300); font-weight: 700; letter-spacing: .02em;
}
.doc-meta { font-weight: 300; color: rgba(255,255,255,.62); }

/* --- Meal comparison chart (dynamic) --- */
.meal-chart { padding: clamp(2.4rem, 5vw, 3.4rem) 0; background: var(--paper); }
.meal-chart-inner { width: min(calc(100% - 3rem), var(--content)); margin: 0 auto; }
.meal-chart-heading { margin-bottom: 1.8rem; text-align: center; }
.meal-chart-heading h2 { margin: .3rem 0 0; color: var(--green-950); font-size: clamp(1.2rem, 2.4vw, 1.6rem); font-weight: 800; }
.meal-bars { display: flex; flex-direction: column; gap: 1.1rem; max-width: 760px; margin: 0 auto; }
.meal-bar-row { display: grid; grid-template-columns: 5rem 1fr 5.5rem; align-items: center; gap: 1rem; }
.meal-bar-label { color: var(--green-900); font-weight: 700; font-size: .92rem; }
.meal-bar-track { position: relative; height: .85rem; border-radius: 999px; background: var(--paper-deep); overflow: hidden; box-shadow: inset 0 1px 3px rgba(9,63,49,.12); }
.meal-bar-fill {
  position: absolute; inset: 0; width: 0%; border-radius: inherit;
  background: linear-gradient(90deg, var(--green-700), var(--gold-500));
  transition: width 1.4s cubic-bezier(.2,.7,.2,1);
}
.meal-chart.is-visible .meal-bar-fill { width: calc(var(--val, 0) * 1%); }
.meal-bar-value { color: var(--muted); font-size: .84rem; font-weight: 600; text-align: left; }
@media (max-width: 560px) {
  .meal-bar-row { grid-template-columns: 3.6rem 1fr 4.4rem; gap: .6rem; }
}

/* --- Signature & official seal block (closing section) --- */
.sign-block {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1.4rem;
  width: min(720px, 100%); margin: 2.4rem auto 0; padding-top: 1.6rem;
  border-top: 1px dashed var(--line);
}
.sign-cell { display: flex; flex-direction: column; align-items: center; gap: .5rem; text-align: center; }
.sign-label { color: var(--gold-500); font-size: .74rem; font-weight: 700; letter-spacing: .03em; }
.sign-line { width: 80%; height: 1px; margin-top: .9rem; background: var(--line); }
.sign-name { color: var(--muted); font-size: .78rem; font-weight: 300; line-height: 1.6; }
.sign-seal { width: 5.2rem; height: 5.2rem; color: var(--gold-500); opacity: .82; }
.sign-seal svg { width: 100%; height: 100%; stroke: currentColor; stroke-width: 1.3; }
.sign-seal text { font-size: 13px; fill: currentColor; stroke: none; font-family: "Peyda", sans-serif; font-weight: 700; }
@media (max-width: 560px) {
  .sign-block { grid-template-columns: 1fr; }
  .sign-seal { margin: .2rem auto; }
}

/* --- Floating action buttons (dynamic) --- */
.float-actions {
  position: fixed; z-index: 500; bottom: 1.4rem; left: 1.4rem;
  display: flex; flex-direction: column; gap: .65rem;
  opacity: 0; transform: translateY(14px); pointer-events: none;
  transition: opacity .35s ease, transform .35s ease;
}
.float-actions.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.float-btn {
  display: grid; place-items: center; width: 3rem; height: 3rem; border: 0; border-radius: 50%;
  background: var(--green-900); color: var(--gold-300); box-shadow: 0 12px 28px rgba(6,45,36,.28);
  cursor: pointer; transition: transform .25s ease, background .25s ease;
}
.float-btn:hover { transform: translateY(-3px); background: var(--green-800); }
.float-btn svg { width: 1.2rem; height: 1.2rem; }
@media print { .float-actions { display: none !important; } }

/* --- Subtle gold corner ornament on section headers (beauty) --- */
.section-header { position: relative; }
.section-header::after {
  content: ""; position: absolute; top: -.3rem; left: 0; width: 1.5rem; height: 1.5rem;
  border-top: 1px solid rgba(189,147,72,.55); border-left: 1px solid rgba(189,147,72,.55);
  opacity: .8; pointer-events: none;
}

@media (prefers-reduced-motion: reduce) {
  .meal-bar-fill { transition: none; }
  .float-actions { transition: none; }
}

/* ============================================================
   باکس نمایش تصاویر — نسخه ارتقایافته و شیک‌تر
   ============================================================ */
.image-slider-shell {
  position: relative;
  background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(246,244,238,.88));
  border: 1px solid rgba(189,147,72,.28);
  box-shadow:
    0 30px 70px rgba(6,45,36,.16),
    inset 0 1px 0 rgba(255,255,255,.7),
    inset 0 0 0 1px rgba(189,147,72,.08);
}
.image-slider-shell::before,
.image-slider-shell::after {
  content: "";
  position: absolute;
  width: 26px;
  height: 26px;
  border: 2px solid rgba(189,147,72,.55);
  pointer-events: none;
  opacity: .85;
}
.image-slider-shell::before { top: 10px; right: 10px; border-left: 0; border-bottom: 0; border-radius: 0 10px 0 0; }
.image-slider-shell::after { bottom: 10px; left: 10px; border-right: 0; border-top: 0; border-radius: 0 0 0 10px; }

.image-slider-main {
  position: relative;
  background:
    radial-gradient(circle at center, rgba(189,147,72,.16), transparent 60%),
    linear-gradient(160deg, #efece3, #e2ddce);
  box-shadow: inset 0 0 0 1px rgba(9,63,49,.08), inset 0 18px 40px rgba(6,45,36,.07);
}
.image-slider-main::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.2), transparent 32%);
  pointer-events: none;
}

.image-slider-main button {
  border: 1px solid rgba(255,255,255,.35);
  background: linear-gradient(150deg, rgba(8,63,49,.85), rgba(6,32,26,.92));
  box-shadow: 0 10px 24px rgba(6,45,36,.35);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  font-family: Georgia, "Times New Roman", serif;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
}
.image-slider-main button:hover {
  transform: translateY(-50%) scale(1.08);
  background: linear-gradient(150deg, var(--gold-500), #9c7830);
  box-shadow: 0 14px 30px rgba(189,147,72,.4);
  color: var(--green-950);
}
.image-slider-main button:active { transform: translateY(-50%) scale(.94); }

.slider-counter {
  position: absolute;
  left: 50%;
  bottom: 14px;
  transform: translateX(-50%);
  z-index: 3;
  padding: .32rem .9rem;
  border-radius: 999px;
  background: rgba(6,32,26,.72);
  color: var(--gold-300);
  font-size: .74rem;
  letter-spacing: .02em;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  border: 1px solid rgba(216,189,130,.35);
  pointer-events: none;
}

.slider-dots { display: flex; align-items: center; justify-content: center; gap: .4rem; margin: 14px 0 2px; }
.slider-dot { width: 7px; height: 7px; padding: 0; border: none; border-radius: 999px; background: rgba(9,63,49,.22); cursor: pointer; transition: width .3s ease, background .3s ease; }
.slider-dot.active { width: 22px; background: var(--gold-500); }
.slider-dot:hover { background: rgba(189,147,72,.6); }

.image-thumbnails {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 20px, #000 calc(100% - 20px), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 20px, #000 calc(100% - 20px), transparent 100%);
  scroll-snap-type: x proximity;
}
.thumb { scroll-snap-align: center; box-shadow: 0 6px 14px rgba(17,36,29,.08); }
.thumb.active { box-shadow: 0 8px 20px rgba(189,147,72,.35); }
.thumb.active, .thumb:hover { transform: translateY(-3px) scale(1.04); }

.image-count {
  border-color: rgba(189,147,72,.35) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.85), rgba(246,238,222,.7)) !important;
}

@media (max-width:600px) {
  .image-slider-shell { padding: 12px; }
  .image-slider-shell::before, .image-slider-shell::after { width: 18px; height: 18px; }
  .slider-counter { font-size: .68rem; padding: .26rem .7rem; bottom: 10px; }
}

@media print {
  .slider-dots, .slider-counter, .image-slider-main button { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .thumb, .slider-dot, .image-slider-main button { transition: none; }
}

/* ============================================================
   بهبودهای پیشنهادی: رنگ‌بندی، خوانایی، رسمیت و پویایی
   ============================================================ */

/* --- رنگ سوم (گرم) برای تنوع بصری و کنتراست بهتر متن خنثی --- */
:root {
  --accent-warm: #8a4a2f;
  --accent-warm-light: #b9744f;
  --muted: #4b5a54; /* تیره‌تر از قبل برای کنتراست بهتر روی --paper */
}

/* --- خوانایی: یکدست‌سازی چینش متن (به‌جای justify که با فونت فارسی وب فاصله‌های نامنظم می‌سازد) --- */
.section-copy > p { text-align: start; text-justify: auto; }

/* --- خوانایی: کاهش طول خط در صفحه‌های بزرگ و کمی بزرگ‌تر کردن برچسب‌های فرعی --- */
@media (min-width: 900px) {
  .section-copy { max-width: 700px; }
}
.fact-label, .section-order { font-size: .82rem; }
.opening-prayer { border-right-color: var(--accent-warm); }

/* --- تنوع رنگی: کارت دستاورد با گرادیان گرم‌تر، متمایز از کارت‌های KPI سبز خالص --- */
#section-12 .achievement-card,
.achievement-card {
  background: linear-gradient(160deg, var(--green-800) 0%, var(--green-950) 72%, #2b1a12 130%);
}
.achv-icon { background: linear-gradient(150deg, rgba(216,189,130,.32), rgba(138,74,47,.22)); }

/* --- فهرست مطالب: آیکون کوچک برای هر بخش --- */
.toc a { gap: .55rem; }
.toc-icon { display: flex; align-items: center; justify-content: center; flex: 0 0 1.05rem; width: 1.05rem; height: 1.05rem; color: var(--gold-500); opacity: .8; }
.toc-icon svg { width: 100%; height: 100%; stroke-width: 1.9; }
.toc a:hover .toc-icon, .toc a.is-active .toc-icon { color: var(--green-900); opacity: 1; }
.toc-number-summary { font-size: .85rem; color: var(--gold-500); }
.toc a.is-active .toc-number-summary { background: var(--green-900); border-color: var(--green-900); color: #fff; }

/* --- خلاصه مدیریتی: کمی متمایز از بقیه بخش‌ها --- */
.exec-summary { background: linear-gradient(180deg, rgba(189,147,72,.05), transparent 60%); }
.exec-summary .section-copy .stats-cards { margin-top: 1.4rem; }

/* --- نمودار حلقه‌ای KPI: نمایش عدد درصد در مرکز حلقه --- */
.kpi-chart { width: 2.5rem; height: 2.5rem; }
.kpi-pct-num {
  position: absolute; inset: 0; display: grid; place-items: center;
  font-size: .58rem; font-weight: 800; color: var(--gold-300); letter-spacing: -.02em;
}

/* --- اسلایدر تصاویر: انتقال نرم‌تر بین تصاویر (مکمل جلوه‌های JS) --- */
.slider-image { will-change: transform, opacity; }

@media (prefers-reduced-motion: reduce) {
  .kpi-pct-num { transition: none; }
}

/* --- بخش «مدت و مسیر خدمت‌رسانی» در موبایل: ردیف آخر (آیتم پنجم) که
   تنها می‌ماند و جای خالی کنارش دیده می‌شود، به‌اندازه دو باکس عریض می‌شود
   و کل محتوایش در یک ردیف افقی قرار می‌گیرد؛ هم کوتاه‌تر می‌شود هم عریض‌تر. */
@media (max-width: 700px) {
  .timeline-item:last-child {
    grid-column: 1 / -1;
  }
}


/* --- بخش ۱۰: لوگوهای بله و ایتا پیش از گالری تصاویر --- */
.section-social-links {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.1rem;
  margin: -.2rem 0 1.1rem;
}
.section-social-links::before,
.section-social-links::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: rgba(10, 52, 39, .18);
}
.section-social-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  transition: transform .2s ease, opacity .2s ease;
}
.section-social-links a:hover, .section-social-links a:focus-visible {
  transform: translateY(-2px);
  opacity: .85;
}
.section-social-links img {
  width: 2.8rem;
  height: 2.8rem;
  object-fit: contain;
  display: block;
}


/* --- موبایل: دوبرابر کردن اندازه لوگوهای بله/ایتا نسبت به حالت پایه --- */
@media (max-width: 700px) {
  .section-social-links img {
    width: 3rem;
    height: 3rem;
  }
}
