:root { --catalog-green:#002c1b; --catalog-deep:#001b11; --catalog-leaf:#0b5839; --catalog-paper:#fffef5; --catalog-cream:#fffbe0; --catalog-orange:#e35b11; --catalog-gold:#cca46c; }
html { scroll-behavior:smooth; }
body.catalog-body { margin:0; background:#e9ebe5; color:#172019; font-family:'Vazirmatn',sans-serif; font-size:14px; }
.catalog-body button,.catalog-body a { font-family:inherit; }
.catalog-toolbar { position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:22px; min-height:67px; padding:10px max(20px,calc((100vw - 210mm)/2)); background:var(--catalog-deep); color:#fff; box-shadow:0 6px 28px #001b1140; }
.catalog-toolbar-brand { display:flex; align-items:center; gap:8px; color:#fff; text-decoration:none; direction:ltr; font-size:16px; font-weight:900; white-space:nowrap; }
.catalog-toolbar-brand small { display:block; font-size:9px; letter-spacing:.08em; color:var(--catalog-gold); line-height:1; }
.catalog-toolbar-note { margin-inline-start:auto; color:#e6ebdf; font-size:11px; }
.catalog-toolbar-actions { display:flex; gap:9px; align-items:center; white-space:nowrap; }
.catalog-toolbar-actions a,.catalog-toolbar-actions button { border:1px solid #ffffff55; border-radius:8px; padding:8px 12px; background:transparent; color:#fff; font-size:11px; text-decoration:none; cursor:pointer; }
.catalog-toolbar-actions button { border-color:var(--catalog-orange); background:var(--catalog-orange); font-weight:800; }
.catalog-toolbar-actions a:hover,.catalog-toolbar-actions button:hover { filter:brightness(1.15); }
.catalog { padding:26px 0 46px; }
.catalog-page { position:relative; display:flex; flex-direction:column; width:210mm; height:297mm; margin:0 auto 22px; padding:17mm 17mm 13mm; overflow:hidden; background:var(--catalog-paper); box-shadow:0 24px 58px #001b1128; isolation:isolate; }
.catalog-page:nth-child(2n) { background:#faf8ec; }
.catalog-page h1,.catalog-page h2,.catalog-page h3,.catalog-page p { margin-top:0; }
.catalog-page h2 { color:var(--catalog-green); font-size:31px; line-height:1.42; letter-spacing:-.04em; margin-bottom:10px; }
.catalog-page h3 { font-size:16px; line-height:1.45; margin-bottom:4px; }
.catalog-page p { line-height:1.9; }
.page-head,.page-foot { display:flex; align-items:center; justify-content:space-between; }
.page-head { padding-bottom:12px; border-bottom:1px solid #d9d5b9; color:var(--catalog-leaf); font-size:11px; font-weight:800; letter-spacing:.025em; }
.page-head b { direction:ltr; color:#818b7c; font-size:10px; font-weight:700; }
.page-head .page-number { display:inline-flex; flex-direction:row; align-items:center; gap:4px; direction:rtl; unicode-bidi:isolate; }
.page-number span { display:inline-block; direction:ltr; unicode-bidi:isolate; }
.page-foot { margin-top:auto; padding-top:13px; border-top:1px solid #d9d5b9; color:#748075; font-size:10px; }
.page-foot span:first-child { direction:ltr; }
.eyebrow { display:flex; align-items:center; gap:8px; color:var(--catalog-orange); font-size:11px; font-weight:900; margin-bottom:13px; }
.eyebrow:before { content:""; width:18px; height:3px; border-radius:3px; background:currentColor; }
.eyebrow.light { color:var(--catalog-gold); }
.section-title { padding:27px 0 20px; }
.section-title>p:last-child { max-width:580px; color:#5f685f; font-size:13px; }
.catalog-mark { display:flex; gap:10px; align-items:center; direction:ltr; text-align:left; color:#fff; }
.catalog-mark strong { display:block; font-size:26px; line-height:1.05; letter-spacing:-.04em; }
.catalog-mark small { display:block; color:var(--catalog-gold); font-size:9px; font-weight:900; letter-spacing:.2em; }

/* 1 — full-bleed cover */
.cover-page { padding:0; background:var(--catalog-deep); color:#fff; }
.cover-photo,.cover-wash { position:absolute; inset:0; }
.cover-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 50%; filter:saturate(.88); }
.cover-wash { background:linear-gradient(90deg,#001b11d9 4%,#002c1b99 48%,#001b1133 100%),linear-gradient(0deg,#001b11c9,transparent 35%); }
.cover-page:after { content:""; position:absolute; inset:0; z-index:0; pointer-events:none; background-image:linear-gradient(#ffffff12 1px,transparent 1px),linear-gradient(90deg,#ffffff12 1px,transparent 1px); background-size:36px 36px; mask-image:linear-gradient(90deg,#000,transparent 70%); }
.cover-top,.cover-content,.cover-bottom { position:relative; z-index:1; }
.cover-top { display:flex; justify-content:flex-end; align-items:flex-start; padding:18mm 17mm; }
.cover-content { margin:auto 17mm 42mm; max-width:580px; }
.cover-content h1 { font-size:60px; line-height:1.34; color:#fff; letter-spacing:-.05em; margin-bottom:22px; }
.cover-content h1 em,.closing-title h2 em { color:var(--catalog-gold); font-style:normal; }
.cover-content>p:not(.eyebrow) { max-width:470px; color:#e6eee6; font-size:17px; line-height:2; }
.cover-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:27px; }
.cover-tags span { padding:7px 12px; border-radius:100px; background:#ffffff1a; border:1px solid #ffffff44; font-size:10px; }
.cover-bottom { display:flex; justify-content:space-between; padding:0 17mm 16mm; color:#ffffffb8; font-size:10px; }

/* 2 — narrative + system map */
.story-intro { padding-top:41px; max-width:650px; }
.story-intro h2 { font-size:36px; }
.story-intro>p:last-child { color:#5f685f; font-size:14px; max-width:580px; }
.story-diagram { display:grid; grid-template-columns:1fr 16px 1fr 16px 1fr 16px 1fr; gap:5px; align-items:center; margin-top:39px; padding:24px 13px; border-radius:18px; background:var(--catalog-green); color:#fff; }
.story-node { min-height:152px; padding:14px 9px 10px; border:1px solid #ffffff30; border-radius:13px; background:#ffffff12; text-align:center; }
.story-node .node-icon { display:grid; place-items:center; width:36px; height:36px; margin:0 auto 8px; border-radius:10px; background:var(--catalog-gold); color:var(--catalog-deep); font-size:21px; font-weight:900; }
.story-node small,.story-node strong,.story-node p { display:block; }
.story-node small { color:#d8e3d8; font-size:9px; }
.story-node strong { font-size:12px; line-height:1.5; }
.story-node p { margin:5px 0 0; color:#cbd8cf; font-size:9px; line-height:1.5; }
.story-node.core-node { border-color:var(--catalog-gold); }
.diagram-connector { width:16px; height:2px; background:var(--catalog-gold); position:relative; }
.diagram-connector:after { content:""; position:absolute; left:0; top:-3px; width:7px; height:7px; border:solid var(--catalog-gold); border-width:0 0 2px 2px; transform:rotate(45deg); }
.story-foot { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:31px; }
.story-foot>div { padding:18px 13px; border:1px solid #dadccf; border-radius:12px; background:#fff; }
.story-foot strong,.story-foot span { display:block; }.story-foot strong { color:var(--catalog-green); font-size:12px; }.story-foot span { color:#6d766d; font-size:10px; margin-top:6px; }

/* 3 — foundation */
.foundation-grid { display:grid; grid-template-columns:43% 1fr; gap:24px; min-height:570px; }
.foundation-visual { position:relative; overflow:hidden; border-radius:18px; background:#244b39; }
.foundation-visual img { width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
.foundation-visual:after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,#001b11d9); }
.photo-label { position:absolute; z-index:1; right:20px; bottom:24px; color:#fff; }.photo-label span,.photo-label b { display:block; }.photo-label span { color:var(--catalog-gold); font-size:10px; }.photo-label b { font-size:21px; }
.foundation-copy { display:flex; flex-direction:column; justify-content:space-between; }
.foundation-copy article { display:flex; gap:14px; padding:17px 0; border-bottom:1px solid #dedecf; }.foundation-copy article:last-child { border:0; }
.mini-index { display:grid; place-items:center; flex:0 0 30px; height:30px; border-radius:9px; background:var(--catalog-green); color:#fff; font-size:11px; font-weight:800; }
.foundation-copy h3 { color:var(--catalog-green); }.foundation-copy p { color:#5f685f; font-size:11px; margin:0; }
.unit-equation { display:flex; align-items:center; gap:8px; margin-top:11px; }.unit-equation span { padding:9px 10px; background:#e5efdf; border-radius:9px; color:var(--catalog-green); font-size:11px; font-weight:800; }.unit-equation b { color:var(--catalog-orange); font-size:13px; }
.foundation-note { margin-top:16px; padding:13px 16px; border-right:4px solid var(--catalog-orange); border-radius:8px; background:#f6f0ce; color:#3f4d42; font-size:10px; }

/* 4 — operation */
.flow-layout { display:grid; grid-template-columns:1.1fr .9fr; gap:19px; height:610px; }
.flow-steps { position:relative; padding:13px 25px 13px 4px; border-radius:17px; background:#fff; border:1px solid #dfe1d5; }
.flow-steps:before { content:""; position:absolute; top:39px; bottom:42px; right:35px; width:2px; background:#b7d1b9; }
.flow-steps article { display:flex; position:relative; z-index:1; gap:16px; align-items:center; height:20%; }.flow-steps article b { display:grid; flex:0 0 25px; place-items:center; width:25px; height:25px; border-radius:50%; background:var(--catalog-green); color:#fff; font-size:10px; }.flow-steps article h3 { font-size:14px; color:var(--catalog-green); }.flow-steps article p { margin:0; color:#657066; font-size:10px; }
.flow-photo { position:relative; overflow:hidden; border-radius:17px; background:#234b39; }.flow-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 48%; }.flow-photo:after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(transparent,#001b11f2); }.flow-photo-caption { position:absolute; z-index:1; right:20px; left:20px; bottom:20px; color:#fff; }.flow-photo-caption strong { display:block; font-size:20px; }.flow-photo-caption span { display:block; font-size:11px; line-height:1.8; color:#e5ece5; }
.flow-ribbon { display:flex; justify-content:space-between; gap:20px; margin-top:18px; padding:14px 18px; border-radius:11px; background:var(--catalog-green); color:#fff; font-size:10px; }.flow-ribbon span:first-child { font-weight:800; }

/* 5 — control */
.control-composition { display:grid; grid-template-columns:1.25fr .75fr; gap:16px; height:440px; }.control-board { padding:16px; border-radius:18px; border:1px solid #dfe3d5; background:#fff; box-shadow:0 14px 30px #002c1b12; }.board-header { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:11px; font-weight:900; color:var(--catalog-green); }.board-header i { display:inline-block; width:7px; height:7px; margin-left:4px; border-radius:50%; background:#34a56a; }.board-header small { color:#828c80; font-size:8px; font-weight:500; }
.board-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-top:16px; }.board-kpis div { padding:10px; border:1px solid #e5e6dd; border-radius:10px; background:#fafbf6; }.board-kpis small { display:block; color:#728072; font-size:9px; }.board-kpis strong { color:var(--catalog-green); font-size:23px; }
.board-graphic { display:grid; gap:14px; margin:25px 4px 0; }.board-graphic>div { display:grid; grid-template-columns:65px 1fr; gap:9px; align-items:center; color:#4e6252; font-size:10px; }.board-graphic i { display:block; height:13px; border-radius:20px; background:linear-gradient(270deg,var(--catalog-leaf) var(--bar),#e5ebdf var(--bar)); }.board-graphic .bar-1 { --bar:66%; }.board-graphic .bar-2 { --bar:84%; }.board-graphic .bar-3 { --bar:52%; }.board-graphic .bar-4 { --bar:71%; }
.control-board>p { margin:20px 0 0; color:#879087; font-size:9px; }
.control-side { position:relative; overflow:hidden; border-radius:18px; background:var(--catalog-green); color:#fff; }.control-side img { width:100%; height:100%; object-fit:cover; }.control-side:after { content:""; position:absolute; inset:25% 0 0; background:linear-gradient(transparent,#001b11f5); }.control-side>div { position:absolute; z-index:1; bottom:18px; right:17px; left:17px; }.control-side h3 { color:#fff; }.control-side p { margin:0; color:#e8efe8; font-size:10px; }
.control-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:11px; margin-top:18px; }.control-cards article { border-top:3px solid var(--catalog-gold); border-radius:8px; padding:15px 13px; background:#eaf0e8; }.control-cards article>span { color:var(--catalog-orange); font-size:19px; }.control-cards h3 { color:var(--catalog-green); font-size:13px; margin-top:8px; }.control-cards p { color:#647063; font-size:10px; margin:0; }

/* 6 — planning */
.planning-chart { padding:18px; border:1px solid #d9dfd4; border-radius:18px; background:#fff; }.chart-head { display:flex; justify-content:space-between; align-items:center; }.chart-head strong { color:var(--catalog-green); font-size:12px; }.chart-head span { color:#809080; font-size:9px; }.planning-chart svg { display:block; width:100%; height:205px; margin-top:10px; }.gridline { fill:none; stroke:#e7ece2; stroke-width:1; }.uncertainty { fill:url(#forecastFill); }.forecast-line { fill:none; stroke:var(--catalog-leaf); stroke-width:4; stroke-linecap:round; }.planning-chart circle { fill:var(--catalog-orange); }.chart-axis { display:flex; justify-content:space-between; color:#869085; font-size:9px; }
.planning-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:16px; }.planning-grid article { min-height:116px; padding:14px 15px; border-radius:12px; background:#e9efe6; }.planning-grid article:nth-child(2),.planning-grid article:nth-child(3) { background:#f4ecd8; }.planning-grid small { color:var(--catalog-orange); font-size:9px; font-weight:900; }.planning-grid h3 { color:var(--catalog-green); font-size:13px; margin:2px 0 4px; }.planning-grid p { color:#5e685e; font-size:10px; margin:0; }
.planning-note { margin-top:14px; padding:12px 14px; border-right:4px solid var(--catalog-orange); border-radius:9px; background:#fff4e8; color:#536154; font-size:10px; }.planning-note b { color:var(--catalog-orange); }

/* 7 — expansion */
.expansion-hero { position:relative; height:310px; overflow:hidden; border-radius:18px; background:var(--catalog-green); }.expansion-hero img { width:100%; height:100%; object-fit:cover; }.expansion-hero:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#001b11ec,#001b1188 58%,transparent); }.expansion-hero>div { position:absolute; z-index:1; top:54px; right:34px; width:320px; color:#fff; }.expansion-hero h3 { margin:16px 0 6px; color:#fff; font-size:25px; }.expansion-hero p { color:#e7efe7; font-size:12px; }.status-pill { display:inline-block; padding:6px 10px; border-radius:50px; background:var(--catalog-gold); color:var(--catalog-green); font-size:9px; font-weight:900; }
.expansion-map { display:grid; grid-template-columns:1fr 20px 1fr 20px 1fr; gap:8px; align-items:center; margin-top:24px; }.expansion-map>div { min-height:102px; padding:13px; border:1px solid #d8ddcf; border-radius:12px; background:#fff; }.expansion-map>div span,.expansion-map>div strong,.expansion-map>div small { display:block; }.expansion-map>div span { color:var(--catalog-orange); font-size:10px; font-weight:900; }.expansion-map>div strong { color:var(--catalog-green); font-size:12px; margin-top:5px; }.expansion-map>div small { color:#687368; font-size:9px; margin-top:5px; }.expansion-map>i { width:20px; height:2px; background:var(--catalog-gold); }
.expansion-split { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:20px; }.expansion-split article { padding:17px; border-right:3px solid var(--catalog-green); background:#e9efe6; border-radius:10px; }.expansion-split article:last-child { border-color:var(--catalog-orange); background:#f5ede0; }.expansion-split h3 { color:var(--catalog-green); font-size:13px; }.expansion-split p { margin:0; font-size:10px; color:#5f685f; }

/* 8 — close */
.closing-page { background:var(--catalog-deep)!important; color:#fff; }.closing-page:before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 10% 7%,#24533b 0,transparent 35%),linear-gradient(135deg,#001b11,#002c1b); z-index:-1; }
.closing-top { display:flex; align-items:flex-start; justify-content:space-between; }.closing-top>b { font-size:10px; color:#ffffff9e; }.closing-title { padding-top:65px; max-width:600px; }.closing-title h2 { color:#fff; font-size:39px; line-height:1.46; }.closing-title p:last-child { color:#d4e2d6; max-width:550px; font-size:13px; }
.closing-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:33px; }.closing-steps>div { min-height:124px; padding:13px; border:1px solid #ffffff34; border-radius:11px; background:#ffffff0d; }.closing-steps b { display:block; color:var(--catalog-gold); font-size:19px; }.closing-steps strong { display:block; font-size:11px; }.closing-steps span { display:block; margin-top:7px; color:#c4d4c8; font-size:9px; line-height:1.7; }
.closing-contact { display:grid; grid-template-columns:1fr 40%; height:220px; margin-top:34px; overflow:hidden; border-radius:16px; background:var(--catalog-cream); color:var(--catalog-green); }.closing-contact>div { display:flex; flex-direction:column; justify-content:center; padding:25px; }.closing-contact small { color:#6f7868; font-size:10px; }.closing-contact a { display:block; width:max-content; margin-top:5px; color:var(--catalog-green); font-size:21px; font-weight:900; text-decoration:none; }.closing-contact a.contact-email { direction:ltr; color:var(--catalog-orange); font-size:11px; margin-top:13px; }.closing-contact img { width:100%; height:100%; object-fit:cover; }
.closing-disclaimer { margin-top:20px; color:#c1d0c5; font-size:9px; line-height:1.9; }.closing-bottom { display:flex; justify-content:space-between; align-items:end; margin-top:auto; padding-top:17px; border-top:1px solid #ffffff43; color:#ffffffad; font-size:10px; direction:ltr; }

@media (max-width:820px) { .catalog-toolbar { flex-wrap:wrap; gap:8px 14px; padding:10px 16px; }.catalog-toolbar-note { display:none; }.catalog-toolbar-actions { margin-inline-start:auto; }.catalog-page { width:100%; height:auto; min-height:0; margin-bottom:12px; padding:24px 20px; }.cover-page { min-height:760px; padding:0; }.cover-top { padding:24px 20px; }.cover-content { margin:auto 20px 90px; }.cover-content h1 { font-size:clamp(38px,8vw,58px); }.cover-bottom { padding:0 20px 23px; }.story-diagram { grid-template-columns:1fr 1fr; }.story-diagram .diagram-connector { display:none; }.foundation-grid,.flow-layout,.control-composition { height:auto; min-height:0; }.foundation-visual { min-height:340px; }.flow-photo { min-height:450px; }.control-side { min-height:420px; }.page-foot { margin-top:35px; }.closing-page { min-height:760px; }.closing-title { padding-top:40px; } }
@media (max-width:590px) { .catalog-toolbar-brand { font-size:12px; }.catalog-toolbar-actions a { display:none; }.catalog-page h2 { font-size:27px; }.story-intro h2 { font-size:29px; }.story-foot,.control-cards,.expansion-split { grid-template-columns:1fr; }.foundation-grid,.flow-layout,.control-composition { grid-template-columns:1fr; }.foundation-visual { min-height:360px; }.foundation-copy article { padding:12px 0; }.flow-photo { min-height:350px; }.flow-ribbon { display:block; }.flow-ribbon span { display:block; }.planning-grid { grid-template-columns:1fr; }.expansion-map { grid-template-columns:1fr; }.expansion-map>i { display:none; }.expansion-hero>div { width:auto; top:auto; right:20px; left:20px; bottom:15px; }.closing-steps { grid-template-columns:1fr 1fr; }.closing-contact { grid-template-columns:1fr; height:auto; }.closing-contact img { height:170px; }.closing-title h2 { font-size:31px; } }

@page { size:A4; margin:0; }
@media print {
  html,body.catalog-body { width:210mm; margin:0!important; padding:0!important; background:#fff!important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .catalog-toolbar,.skip-link { display:none!important; }
  .catalog { padding:0!important; }
  .catalog-page { width:210mm!important; height:297mm!important; min-height:297mm!important; margin:0!important; padding:17mm 17mm 13mm!important; box-shadow:none!important; break-after:page; page-break-after:always; break-inside:avoid; page-break-inside:avoid; }
  .page-foot { margin-top:auto!important; flex-shrink:0; }
  .catalog-page:last-child { break-after:auto; page-break-after:auto; }
  .cover-page { padding:0!important; background:var(--catalog-deep)!important; }
  .cover-page:after { display:none!important; }
  .cover-photo { display:block!important; position:relative!important; inset:auto!important; flex:none; width:210mm; height:297mm; margin:0; overflow:hidden; border-radius:0; z-index:0; }
  .cover-photo img { display:block; width:auto!important; max-width:none!important; height:297mm!important; margin-left:-117.75mm; object-fit:fill!important; filter:none!important; break-inside:auto!important; page-break-inside:auto!important; }
  .cover-wash { display:block!important; z-index:1; }
  .cover-top,.cover-content,.cover-bottom { position:absolute!important; z-index:2; right:0; left:0; }
  .cover-top { top:0; padding:18mm 17mm!important; }
  .cover-content { bottom:38mm; right:17mm; left:17mm; margin:0!important; }
  .cover-bottom { bottom:0; padding:0 17mm 16mm!important; }
  .foundation-grid { min-height:0; }
  .foundation-visual,.flow-photo,.control-side { display:flex; flex-direction:column; overflow:hidden; }
  .foundation-visual img,.flow-photo img,.control-side img { display:block; flex:none; width:100%; height:auto!important; object-fit:contain!important; }
  .foundation-visual:after,.flow-photo:after,.control-side:after { display:none!important; }
  .photo-label,.flow-photo-caption,.control-side>div { position:static!important; padding:14px 17px; margin-top:auto; }
  .flow-layout { height:570px; }
  .control-composition { height:465px; }
  .expansion-hero { display:grid; grid-template-columns:1fr 1fr; align-items:center; height:auto; min-height:245px; }
  .expansion-hero img { display:block; width:100%; height:auto!important; object-fit:contain!important; }
  .expansion-hero:after { display:none!important; }
  .expansion-hero>div { position:static!important; width:auto; padding:18px; }
  .expansion-hero h3 { font-size:19px; }
  .closing-contact img { display:block; width:100%!important; max-width:none; height:100%!important; justify-self:stretch; object-fit:cover!important; }
  .catalog-page h2,.catalog-page h3,.catalog-page p,.catalog-page article,.catalog-page img { break-inside:avoid; page-break-inside:avoid; }
  .catalog-page a { color:inherit; text-decoration:none; }
}
