/* PassportLens — server-rendered requirement / audience pages (after landing.css) */
.page-hero{padding-block:56px 40px; background:linear-gradient(180deg,#fff 0%, var(--bg-2) 100%);}
.page-hero h1{font-size:clamp(28px,4.2vw,46px); margin-top:14px; max-width:20ch;}
.page-hero .lead{color:var(--text-2); font-size:18px; max-width:64ch; margin-top:14px;}
.page-hero .hero-cta{margin-top:24px;}
.crumbs{font-size:13px; color:var(--mut); margin-bottom:14px;}
.crumbs a{color:var(--navy); font-weight:600;}
.page-body{padding-block:48px 72px;}
.page-grid{display:grid; grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr); gap:40px; align-items:start;}
.page-body h2{font-size:24px; margin:30px 0 12px;}
.page-body h2:first-child{margin-top:0;}
.page-body p{color:var(--text-2);}
table.spec{width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; font-size:15px;}
table.spec th,table.spec td{padding:12px 16px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top;}
table.spec th{width:38%; color:var(--mut); font-weight:600; background:var(--bg-2);}
table.spec tr:last-child th,table.spec tr:last-child td{border-bottom:0;}
ul.dots{margin:8px 0 0; padding-left:20px; color:var(--text-2); display:grid; gap:6px;}
ol.steps-list{margin:8px 0 0; padding-left:22px; display:grid; gap:10px; color:var(--text-2); font-size:15.5px;}
ol.steps-list b{color:var(--navy);}
ul.sources{margin:8px 0 0; padding-left:20px; color:var(--text-2);}
ul.sources a{color:var(--navy); text-decoration:underline; text-underline-offset:3px;}
.fine{font-size:13px; color:var(--mut); margin-top:24px; padding-top:16px; border-top:1px solid var(--line);}
.side-card{background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:22px; box-shadow:var(--shadow-sm); margin-bottom:18px; position:sticky; top:90px;}
.side-card + .side-card{position:static;}
.side-card h3{font-size:18px; margin-bottom:8px;}
.side-card p{font-size:14.5px; margin-bottom:14px;}
.side-card .btn{margin-bottom:8px;}
.rel-list{display:grid; gap:8px;}
.rel{display:flex; flex-direction:column; gap:2px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--bg-2); font-size:13.5px; color:var(--text-2);}
.rel b{color:var(--navy);}
.rel:hover{border-color:var(--gold);}
.req-group .req-links{display:grid; gap:6px; margin-top:12px;}
.req-links a{display:flex; justify-content:space-between; gap:12px; padding:9px 12px; background:#fff; border:1px solid var(--line-2); border-radius:10px; font-size:14px; font-weight:600; color:var(--navy);}
.req-links a span{color:var(--mut); font-weight:400; font-size:12.5px; white-space:nowrap;}
.req-links a:hover{border-color:var(--gold);}
@media (max-width:860px){ .page-grid{grid-template-columns:1fr;} .side-card{position:static;} }

.city-programmes,.city-index{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));}
.rel b{color:var(--navy); font-family:var(--font-head);}
.trust-grid.city-steps{grid-template-columns:repeat(3,minmax(0,1fr));}
@media (max-width:720px){.trust-grid.city-steps{grid-template-columns:1fr;}}
