/* Fonts are served from this site (no third-party font service sees our readers). SIL Open Font License: see fonts/LICENSE-*.txt */
@font-face{font-family:"Newsreader"; font-style:normal; font-weight:500; font-display:swap; src:url(/static/fonts/newsreader-latin-500-normal.woff2) format("woff2");}
@font-face{font-family:"Newsreader"; font-style:normal; font-weight:700; font-display:swap; src:url(/static/fonts/newsreader-latin-700-normal.woff2) format("woff2");}
@font-face{font-family:"Inter"; font-style:normal; font-weight:400; font-display:swap; src:url(/static/fonts/inter-latin-400-normal.woff2) format("woff2");}
@font-face{font-family:"Inter"; font-style:normal; font-weight:500; font-display:swap; src:url(/static/fonts/inter-latin-500-normal.woff2) format("woff2");}
@font-face{font-family:"Inter"; font-style:normal; font-weight:600; font-display:swap; src:url(/static/fonts/inter-latin-600-normal.woff2) format("woff2");}
@font-face{font-family:"Vazirmatn"; font-style:normal; font-weight:400; font-display:swap; src:url(/static/fonts/vazirmatn-arabic-400-normal.woff2) format("woff2"); unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;}
@font-face{font-family:"Vazirmatn"; font-style:normal; font-weight:600; font-display:swap; src:url(/static/fonts/vazirmatn-arabic-600-normal.woff2) format("woff2"); unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;}
@font-face{font-family:"Vazirmatn"; font-style:normal; font-weight:800; font-display:swap; src:url(/static/fonts/vazirmatn-arabic-800-normal.woff2) format("woff2"); unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0898-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC;}
:root{
  --ink:#16181b; --ink-2:#4a4f57; --ink-3:#5f656e; --rule:#e3e1dc; --paper:#fbfaf7; --card:#ffffff;
  --accent:#9e1b1b; --accent-ink:#ffffff; --btn:#9e1b1b; --field:#b8b4ab; --ok:#2c7a3f; --accent-small:#9e1b1b; --navy:#12324a; --tint:#f3efe7;
  --serif:"Newsreader", Georgia, "Times New Roman", serif;
  --sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --gap:24px; --wrap:1180px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#ecebe8; --ink-2:#bdbab4; --ink-3:#a19e98; --rule:#2c2f33; --paper:#121416; --card:#181b1e;
    --accent:#e0574f; --navy:#9cc4e4; --tint:#1d2024; --btn:#b8322b; --ok:#5cc27a; --field:#6b6f75; --accent-small:#ec7a71;
  }
}
:root[data-theme="dark"]{
  --ink:#ecebe8; --ink-2:#bdbab4; --ink-3:#a19e98; --rule:#2c2f33; --paper:#121416; --card:#181b1e;
  --accent:#e0574f; --navy:#9cc4e4; --tint:#1d2024; --btn:#b8322b; --ok:#5cc27a; --field:#6b6f75; --accent-small:#ec7a71;
}
html[dir="rtl"]{ --serif:"Vazirmatn", Tahoma, sans-serif; --sans:"Vazirmatn", Tahoma, sans-serif; }

*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--paper); color:var(--ink); font:16px/1.6 var(--sans); -webkit-font-smoothing:antialiased}
a{color:inherit; text-decoration:none}
a:hover{color:var(--accent)}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 16px}

/* masthead */
.masthead{background:var(--card); border-bottom:1px solid var(--rule)}
.topbar{display:flex; justify-content:space-between; align-items:center; font-size:13px; color:var(--ink-3); padding-top:10px; padding-bottom:6px}
.lang a{font-weight:600; color:var(--navy); display:inline-block; padding:6px 0}
.brandrow{text-align:center; padding-top:14px; padding-bottom:16px; border-bottom:3px double var(--ink)}
.brand{font-family:var(--serif); font-weight:700; font-size:clamp(34px,6vw,58px); line-height:1.05; letter-spacing:-.5px; display:block}
html[dir="rtl"] .brand{font-weight:800; letter-spacing:0}
.brand.small{font-size:24px; margin-bottom:8px}
.tagline{margin:6px 0 0; color:var(--ink-2); font-size:14px; letter-spacing:.2px}
.citynav{border-bottom:1px solid var(--rule)}
.citynav-inner{display:flex; gap:22px; overflow-x:auto; scrollbar-width:none; padding-top:12px; padding-bottom:12px; justify-content:center}
.citynav-inner::-webkit-scrollbar{display:none}
.citynav a{white-space:nowrap; font-size:14px; font-weight:600; color:var(--ink-2); padding-bottom:2px; border-bottom:2px solid transparent}
.citynav a.on{color:var(--ink); border-bottom-color:var(--accent)}

main.wrap{padding-top:28px; padding-bottom:48px}

/* shared bits */
.kicker{display:flex; flex-wrap:wrap; gap:2px 10px; align-items:center; font-size:12px; text-transform:uppercase; letter-spacing:.8px; margin-bottom:8px}
html[dir="rtl"] .kicker{text-transform:none; letter-spacing:0; font-size:13px}
.cat{color:var(--accent); font-weight:700}
.where{color:var(--ink-3); font-weight:600}
time{display:block; font-size:13px; color:var(--ink-3); margin-top:8px}
.dek{color:var(--ink-2); margin:6px 0 0}
.dek.big{font-size:19px; line-height:1.5}
.section-label{font:700 13px/1 var(--sans); text-transform:uppercase; letter-spacing:1px; color:var(--ink); margin:0 0 4px; padding-bottom:10px; border-bottom:2px solid var(--ink)}
html[dir="rtl"] .section-label{text-transform:none; letter-spacing:0; font-size:15px}

/* front page */
.front{display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:var(--gap) 40px; padding-bottom:28px; border-bottom:1px solid var(--rule)}
.lead-story h1, .lead-story .lead-h{font-family:var(--serif); font-size:clamp(30px,4.2vw,48px); line-height:1.1; margin:0; letter-spacing:-.3px}
html[dir="rtl"] .lead-story h1, html[dir="rtl"] .lead-story .lead-h{line-height:1.45; letter-spacing:0}
.lead-story{padding-inline-end:40px; border-inline-end:1px solid var(--rule)}
.latest .card{border:0; border-bottom:1px solid var(--rule); padding:14px 0; background:none; box-shadow:none; border-radius:0}
.latest .card:last-child{border-bottom:0}
.front.solo{grid-template-columns:1fr}
.front.solo .lead-story{padding-inline-end:0; border-inline-end:0}

.city-block{padding-top:28px}
.section-head{display:flex; justify-content:space-between; align-items:baseline; border-bottom:2px solid var(--ink); margin-bottom:var(--gap); padding-bottom:8px}
.section-head h2{font-family:var(--serif); font-size:26px; margin:0}
.more{font-size:14px; font-weight:600; color:var(--navy)}
html[dir="rtl"] .more{direction:rtl}

/* cards: grid always fills the row, never leaves holes */
.grid{display:flex; flex-wrap:wrap; gap:var(--gap)}
.grid > .card{flex:1 1 260px; min-width:0}
.grid > .empty{flex:1 1 100%}
.card{background:var(--card); border:1px solid var(--rule); border-radius:6px; padding:18px 18px 16px; display:flex; flex-direction:column}
.card h3{font-family:var(--serif); font-size:21px; line-height:1.25; margin:0}
html[dir="rtl"] .card h3{line-height:1.6; font-weight:600}
.card .dek{font-size:15px; flex:1}
.card.compact h3{font-size:17px}

/* city page + story layout */
.city-hero{padding-bottom:20px; margin-bottom:var(--gap); border-bottom:2px solid var(--ink)}
.city-hero h1{font-family:var(--serif); font-size:clamp(32px,5vw,48px); margin:0; line-height:1.1}
.leadbox h4, .leadbox .h4{margin:0 0 10px; font-size:16px}
.srclist{margin:0; padding-inline-start:18px; font-size:14px; color:var(--ink-2)}
.srclist li{margin:4px 0}

.leadbox{background:var(--navy); color:#fff; border-radius:6px; padding:20px}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .leadbox{background:#1c3a52} }
.leadbox p{margin:0 0 14px; color:#dce6ee; font-size:14px}
.btn{display:inline-block; border:0; font-family:inherit; cursor:pointer; background:var(--btn); color:var(--accent-ink); font-weight:600; padding:10px 16px; border-radius:4px; font-size:15px}
.btn:hover{color:#fff; filter:brightness(1.08)}

.leadform{display:flex; flex-direction:column; gap:10px}
.leadform label{display:flex; flex-direction:column; gap:4px; font-size:13px}
.leadform input, .leadform textarea{font:inherit; padding:9px 10px; border:1px solid var(--field); border-radius:4px; background:#fff; color:#16181b}
.leadform .consent{flex-direction:row; align-items:flex-start; gap:8px; font-size:12px}
.leadform .consent input{margin-top:3px}
.leadform button{font:600 15px var(--sans); background:var(--btn); color:#fff; border:0; border-radius:4px; padding:11px; cursor:pointer}
.leadform.wide{max-width:520px; margin-top:20px}

/* story */
.story h1{font-family:var(--serif); font-size:clamp(30px,4.4vw,46px); line-height:1.12; margin:0 0 10px; letter-spacing:-.3px}
html[dir="rtl"] .story h1{line-height:1.5; letter-spacing:0}
.byline{font-size:14px; color:var(--ink-3); padding:14px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); margin:18px 0 22px; display:flex; gap:6px; flex-wrap:wrap}
.byline time{display:inline; margin:0}
.body p{font-family:var(--serif); font-size:20px; line-height:1.65; margin:0 0 20px}
html[dir="rtl"] .body p{font-size:18px; line-height:2}
.whyit{background:var(--tint); border-inline-start:4px solid var(--accent); padding:14px 18px; margin:8px 0 24px; font-size:16px}
.sources{border-top:2px solid var(--ink); padding-top:14px}
.sources h4, .sources .h4{margin:0 0 8px}
.sources ul{margin:0 0 12px; padding-inline-start:18px; color:var(--ink-2)}
.sources a{color:var(--navy); text-decoration:underline; text-underline-offset:2px}
.method{font-size:13px; color:var(--ink-3)}
.method a{color:var(--navy)}

.page{max-width:720px}
.page h1{font-family:var(--serif); font-size:40px; margin:0 0 18px}
.page p{font-size:17px}
.empty{color:var(--ink-3); padding:40px 0}

/* footer */
.footer{background:var(--card); border-top:3px double var(--ink); padding:36px 0 20px}
.footer-grid{display:grid; grid-template-columns:2fr 1fr 1fr; gap:32px}
.footer-grid p{color:var(--ink-2); font-size:14px; margin:0}
.footer h4, .footer .h4{margin:0 0 10px; font-size:13px; text-transform:uppercase; letter-spacing:.8px}
html[dir="rtl"] .footer h4, html[dir="rtl"] .footer .h4{text-transform:none; letter-spacing:0}
.footer-grid a{display:block; font-size:14px; color:var(--ink-2); margin:4px 0}
.fineprint{font-size:12px; color:var(--ink-3); margin-top:24px; padding-top:14px; border-top:1px solid var(--rule)}

@media (max-width: 900px){
  .front{grid-template-columns:1fr}
  .lead-story{padding-inline-end:0; border-inline-end:0; padding-bottom:20px; border-bottom:1px solid var(--rule)}
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-grid > div:first-child{grid-column:1 / -1}
  .citynav-inner{justify-content:flex-start}
}
@media (max-width: 520px){
  .body p{font-size:18px}
}

.hp{position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; opacity:0}

.seconds{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--gap); margin-top:24px; padding-top:24px; border-top:1px solid var(--rule)}
.seconds .card{background:none; border:0; padding:0; border-radius:0}
@media (max-width: 520px){ .seconds{grid-template-columns:minmax(0,1fr)} }

.related{margin-top:36px}
.related .grid{margin-top:16px}
.srclist.flow{display:flex; flex-wrap:wrap; gap:6px 28px; list-style:none; padding:0; margin:14px 0 0}
.srclist.flow li{margin:0}
.srclist.flow li::before{content:'›'; margin-inline-end:6px; color:var(--accent)}
html[dir="rtl"] .brand{line-height:1.45}
html[dir="rtl"] .tagline{margin-top:2px}

.story-layout{max-width:780px; margin:0 auto}
.story-layout .leadbox{margin:32px 0 0; display:grid; grid-template-columns:1fr auto; gap:6px 24px; align-items:center}
.story-layout .leadbox h4, .story-layout .leadbox .h4, .story-layout .leadbox p{grid-column:1}
.story-layout .leadbox p{margin:0}
.story-layout .leadbox .btn{grid-column:2; grid-row:2 / span 2}
.story-layout .leadbox form{grid-column:1 / -1}
.grid > .leadbox{flex:1 1 260px; min-width:0; display:flex; flex-direction:column; justify-content:center}
@media (max-width:600px){ .story-layout .leadbox{grid-template-columns:1fr} .story-layout .leadbox .btn{grid-column:1; grid-row:auto; justify-self:start; margin-top:8px} }

.sharebar{display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 26px}
.share-label{font-size:14px; font-weight:600; margin-inline-end:4px}
.sh{font:600 13px var(--sans); color:var(--ink); background:var(--card); border:1px solid var(--rule); border-radius:999px; padding:7px 14px; cursor:pointer; line-height:1.2}
.sh:hover{border-color:var(--accent); color:var(--accent)}
.sh.native{padding:7px 12px}

.leadbox .sponsor{display:inline-block; font-size:11px; letter-spacing:.8px; text-transform:uppercase; color:#b9c7d3; margin-bottom:6px}
.story-layout .leadbox .sponsor{grid-column:1 / -1; margin-bottom:0}

.photo{margin:0 0 24px}
.photo img, .lead-photo img{display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; border-radius:4px; background:var(--tint)}
.photo figcaption{font-size:12px; color:var(--ink-3); margin-top:6px}
.photo figcaption a{text-decoration:underline; text-underline-offset:2px}
.lead-photo{display:block; margin-bottom:16px}

.newsbox{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:16px 32px; align-items:center; background:var(--tint); border:1px solid var(--rule); border-radius:6px; padding:22px 24px; margin:32px 0 0}
.newsbox h3{font-family:var(--serif); font-size:24px; margin:0 0 4px}
.newsbox p{margin:0; color:var(--ink-2); font-size:15px}
.nb-row{display:flex; gap:8px}
.nb-row input{flex:1; min-width:0; font:inherit; padding:10px 12px; border:1px solid var(--field); border-radius:4px; background:#fff; color:#16181b}
.nb-row button{font:600 15px var(--sans); background:var(--btn); color:#fff; border:0; border-radius:4px; padding:10px 18px; cursor:pointer}
.nb-form .consent{display:flex; gap:8px; align-items:flex-start; font-size:12px; color:var(--ink-2); margin-top:8px}
.nb-form .consent input{margin-top:3px}
.story-layout .newsbox{grid-template-columns:minmax(0,1fr)}
.newsbox > *{min-width:0}
.nb-row input{width:100%}
@media (max-width:760px){ .newsbox{grid-template-columns:minmax(0,1fr); padding:20px 16px} }

/* city sub-navigation: News · Projects · Map · Events */
.subnav{display:flex; flex-wrap:wrap; gap:6px 8px; margin-top:16px}
.subnav a{font:600 13px/1 var(--sans); padding:8px 14px; border:1px solid var(--rule); border-radius:999px; background:var(--card); color:var(--ink-2)}
.subnav a.on{background:var(--ink); border-color:var(--ink); color:var(--paper)}
.subnav a:hover{border-color:var(--accent)}

/* project status labels */
.pstatus{font-weight:700; color:var(--navy)}
.pstatus[class*="approv"], .pstatus[class*="issued"], .pstatus[class*="complete"]{color:#2c7a3f}
.pstatus[class*="withdr"], .pstatus[class*="refus"], .pstatus[class*="cancel"], .pstatus[class*="denied"]{color:var(--ink-3)}
.project-card .pmeta{display:flex; flex-wrap:wrap; gap:4px 14px; align-items:baseline; margin-top:8px; font-size:13px; color:var(--ink-3)}
.project-card .pmeta span{font-weight:600; color:var(--ink-2)}
.project-card .pmeta time{margin:0}
.project-card .dek:empty{display:none}
.project-card .pmeta{margin-top:auto; padding-top:8px}

/* filter chips */
.chips{display:flex; flex-wrap:wrap; gap:8px; margin:0 0 var(--gap)}
.chip{font:600 13px/1 var(--sans); padding:8px 14px; border:1px solid var(--rule); border-radius:999px; background:var(--card); color:var(--ink-2); cursor:pointer}
.chip span{color:var(--ink-3); font-weight:500; margin-inline-start:4px}
.chip.on{background:var(--btn); border-color:var(--btn); color:#fff}
.chip.on span{color:#fff}

/* project page */
.project h1{font-family:var(--serif); font-size:clamp(30px,4.4vw,46px); line-height:1.12; margin:0 0 10px; letter-spacing:-.3px}
html[dir="rtl"] .project h1{line-height:1.5; letter-spacing:0}
.project > .subnav{margin:14px 0 0}
.pfacts{display:grid; grid-template-columns:minmax(0,1fr); gap:var(--gap); margin:22px 0 26px; padding:18px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule)}
.pfacts.has-map{grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:stretch}
.pfacts dl{margin:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:14px 20px; align-content:start}
.pfacts dt{font-size:12px; text-transform:uppercase; letter-spacing:.8px; color:var(--ink-3); font-weight:600}
html[dir="rtl"] .pfacts dt{text-transform:none; letter-spacing:0}
.pfacts dd{margin:2px 0 0; font-weight:600; overflow-wrap:anywhere}
.pfacts dd time{display:inline; margin:0; font-size:inherit; color:inherit}
.pmap{min-height:240px; height:100%; border-radius:6px; border:1px solid var(--rule); background:var(--tint); z-index:0}
.timeline-wrap{margin:8px 0 24px}
.timeline{list-style:none; margin:14px 0 0; padding:0; position:relative}
.timeline li{position:relative; padding:0 0 16px; padding-inline-start:26px; display:flex; flex-wrap:wrap; gap:2px 14px; align-items:baseline}
.timeline li::before{content:''; position:absolute; inset-inline-start:4px; top:7px; width:10px; height:10px; border-radius:50%; background:var(--accent)}
.timeline li::after{content:''; position:absolute; inset-inline-start:8px; top:19px; bottom:-5px; width:2px; background:var(--rule)}
.timeline li:last-child{padding-bottom:0}
.timeline li:last-child::after{display:none}
.timeline time{margin:0; min-width:130px}
.timeline span{font-weight:600}
.official{margin:0 0 8px}

/* development map */
.map-head{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:8px 24px; padding-bottom:16px; margin-bottom:16px; border-bottom:2px solid var(--ink)}
.map-head h1{font-family:var(--serif); font-size:clamp(28px,4vw,40px); margin:0; line-height:1.1}
.map-head .dek{margin-top:4px}
.map-head .subnav{margin-top:0}
.devmap{height:calc(100vh - 330px); min-height:420px; border:1px solid var(--rule); border-radius:6px; background:var(--tint); z-index:0}
.map-pop{font:14px/1.4 var(--sans); min-width:160px}
.map-pop a:first-child{display:block; font-weight:700; font-size:15px; color:#16181b}
.map-pop div{color:#4a4f57; margin:2px 0 6px}
.map-pop .map-go{color:#9e1b1b; font-weight:600}

/* events */
.days{columns:3 300px; column-gap:40px}
.day{margin:0 0 28px}
.day .section-label{break-after:avoid}
.evlist li{break-inside:avoid}
.day:last-child{margin-bottom:0}
.day .section-label time{display:inline; margin:0; font-size:inherit; color:inherit}
.evlist{list-style:none; margin:0; padding:0}
.evlist li{display:grid; grid-template-columns:92px minmax(0,1fr); gap:12px; padding:12px 0; border-bottom:1px solid var(--rule)}
.evlist li:last-child{border-bottom:0}
.ev-time{font-size:13px; font-weight:600; color:var(--accent-small); padding-top:2px}
.ev-main{display:flex; flex-direction:column; min-width:0}
.ev-title{font-family:var(--serif); font-size:18px; line-height:1.3; font-weight:500; overflow-wrap:anywhere}
.ev-loc{font-size:14px; color:var(--ink-3); margin-top:2px}
.grid > .eventsbox{flex:1 1 260px; min-width:0; display:flex; flex-direction:column}
.eventsbox{background:var(--tint); border:1px solid var(--rule); border-radius:6px; padding:18px}
.eventsbox h4, .eventsbox .h4{margin:0 0 6px; font-size:13px; text-transform:uppercase; letter-spacing:1px}
html[dir="rtl"] .eventsbox h4, html[dir="rtl"] .eventsbox .h4{text-transform:none; letter-spacing:0; font-size:15px}
.eventsbox ul{list-style:none; margin:0 0 10px; padding:0; flex:1}
.eventsbox li{padding:8px 0; border-bottom:1px solid var(--rule); display:flex; flex-direction:column}
.eventsbox li:last-child{border-bottom:0}
.ev-when{font-size:12px; color:var(--accent-small); font-weight:600}
.eventsbox li a, .eventsbox .ev-title{font-family:var(--serif); font-size:16px; line-height:1.3; font-weight:500}

/* story: project link + corrections */
.projbox{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px 20px; margin:20px 0 0; padding:14px 18px; background:var(--card); border:1px solid var(--rule); border-inline-start:4px solid var(--navy); border-radius:6px}
.projbox + .projbox{margin-top:10px}
.pb-text{display:flex; flex-direction:column; min-width:0}
.pb-k{font-size:13px; color:var(--ink-3)}
.pb-text strong{font-family:var(--serif); font-size:18px; font-weight:600}
.pb-go{font-weight:600; color:var(--navy); white-space:nowrap}
.projbox:hover .pb-go{color:var(--accent)}
.correction{background:var(--tint); border-inline-start:4px solid var(--navy); padding:12px 18px; margin:0 0 16px; font-size:15px}
.correction time{display:inline; margin:0; font-size:inherit; color:inherit}
.corrlist{list-style:none; margin:24px 0 0; padding:0}
.corrlist li{padding:16px 0; border-top:1px solid var(--rule)}
.corrlist time{margin:0}
.corrlist h3, .corrlist .h3{font-family:var(--serif); font-size:21px; line-height:1.3; margin:4px 0 6px}
.corrlist p{margin:0; font-size:16px; color:var(--ink-2)}

@media (max-width:760px){
  .pfacts.has-map{grid-template-columns:minmax(0,1fr)}
  .pmap{height:240px}
  .map-head{align-items:flex-start}
  .devmap{height:calc(100vh - 420px)}
  .evlist li{grid-template-columns:76px minmax(0,1fr)}
}

/* short pages: footer sits at the bottom of the window, never a blank band under it */
body{min-height:100vh; display:flex; flex-direction:column}
body > main{flex:1 0 auto; width:100%}
body > .masthead, body > .footer{flex:none}
/* status + application number never break mid-word */
.project-card .kicker, .project .kicker{flex-wrap:wrap; row-gap:2px}
.project-card .kicker .where{white-space:nowrap}

.lead-story.photo-wide .lead-photo img{aspect-ratio:21/9}
.lead-story.photo-off .lead-photo{display:none}

/* long words and links never push the page wider than the screen */
h1, h2, h3, .dek, .body p, .sources li, .whyit, .correction, .card{overflow-wrap:anywhere}
.grid > .leadbox .btn{align-self:flex-start}
/* Latest column: cards spread evenly over the lead column's height, so no blank band is left under either side */
.latest{display:flex; flex-direction:column}
.latest .cards{display:flex; flex-direction:column; justify-content:space-between; flex:1}
.skip{position:absolute; inset-inline-start:12px; top:-80px; background:var(--card); color:var(--ink); padding:8px 14px; z-index:10}
.skip:focus{top:12px}
.pstatus[class*="approv"], .pstatus[class*="issued"], .pstatus[class*="complet"]{color:var(--ok)}
.visually-hidden{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
.pager{display:flex; justify-content:space-between; gap:16px; margin:28px 0 0; padding-top:18px; border-top:1px solid var(--rule); font-weight:600}
.h4{font-family:var(--sans); font-size:16px; font-weight:700; line-height:1.3}
.footer .h4{font-size:13px}
.leadbox .h4{color:#fff}
.leadbox .sponsor-line{font-size:13px; color:#b9c7d3; margin:-6px 0 14px}
.eventsbox .h4{font-size:13px}
.more-front[hidden]{display:none}
.latest .card:not(.with-dek) .dek, .card.compact:not(.with-dek) .dek{display:none}
.latest .card .dek{font-size:14px; margin:4px 0 0}
.nb-label{display:block; font-size:13px; font-weight:600; margin:0 0 6px}
/* dates line up at the bottom of every card in a row */
.card time{margin-top:auto; padding-top:8px}
/* headlines that mix Persian and English keep their own reading order */
h1, h2, h3, .dek{unicode-bidi:plaintext}
.page .srclist a{display:inline-block; padding:6px 0}
.front.solo .lead-photo img{aspect-ratio:21/9}
.h3{font-family:var(--serif); font-size:20px; line-height:1.3; margin:0 0 6px}
.story .orig{font-size:15px; color:var(--ink-2); margin:6px 0 14px}
.byline .upd{white-space:nowrap}
.story .orig a{color:inherit; text-decoration:underline; text-underline-offset:2px}
/* advertising: clearly labelled, card-sized in grids, full width under a story */
.grid > .adslot{flex:1 1 260px; min-width:0}
.adslot{position:relative; border:1px solid var(--rule); border-radius:6px; background:var(--card); padding:10px 10px 12px; display:flex; flex-direction:column}
.adslot a{color:inherit; text-decoration:none; display:flex; flex-direction:column; gap:6px; flex:1}
.adslot img{width:100%; height:auto; aspect-ratio:1200/628; object-fit:cover; border-radius:4px; display:block}
.ad-label{font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-3); margin-bottom:6px}
.ad-text{font-size:15px; line-height:1.4}
.ad-by{font-size:13px; color:var(--ink-3)}
.story-layout .adslot.wide{margin:32px 0 0}
.packages{display:flex; flex-wrap:wrap; gap:16px; margin:20px 0}
.package{flex:1 1 220px; min-width:0; border:1px solid var(--rule); border-radius:6px; padding:16px}
.package .price{font-size:20px; font-weight:700; margin:4px 0 8px}
.package ul{margin:0; padding-left:18px}
