/* Shared public-page visuals, 4 October 2026 */
img{max-width:100%;height:auto}.page-insights main>section.visual-intro{background:linear-gradient(90deg,rgba(16,46,56,.65),rgba(16,46,56,.1)),url('assets/visuals/analyst-city.webp') center/cover;color:white}.page-insights .visual-intro .eyebrow{color:#b8eee3}.page-insights .visual-intro .reports-intro{max-width:570px;color:#e3edf0}.article-image{width:100%;max-height:260px;object-fit:cover;object-position:right center;margin:0 0 28px}.commentary-article{max-width:860px}
.page-gis main>.visual-intro{background:linear-gradient(90deg,rgba(16,46,56,.9),rgba(16,46,56,.74) 45%,rgba(16,46,56,.08)),url('assets/index-visuals-v1/gis-infrastructure.webp') center/cover}.page-gis .hero .wrap{display:block}.page-gis .hero .wrap>div{max-width:680px}.gis-intro-note{background:#edf5f4;padding:28px 0}.gis-intro-note .hero-note{border:0;padding:0;max-width:none;color:#52646c}.gis-intro-note .hero-note strong{color:#102e38}.gis-intro-note p{margin:0}.map-example{margin:24px 0 0}.map-example img{width:100%;height:210px;object-fit:contain;background:#f3f7f8;border:1px solid #d9e2e5}.map-example figcaption{font-size:13px;color:#52646c;line-height:1.5;margin-top:10px}
.page-reports .visual-intro .wrap{display:grid!important;grid-template-columns:1.35fr 1fr;column-gap:64px;align-items:start}.page-reports .visual-intro .eyebrow,.page-reports .visual-intro h1,.page-reports .visual-intro .reports-intro{grid-column:1}.featured-cover{grid-column:2;grid-row:1/4;margin:0;transform:rotate(-3deg);align-self:center}.featured-cover img{box-shadow:0 16px 40px #102e3826;border:1px solid #d9e2e5}.featured-cover figcaption{font-size:13px;text-align:center;color:#52646c;margin-top:12px}.publication-cover{width:100%;aspect-ratio:16/9;object-fit:contain;background:#eff3f5;margin-bottom:22px}.report-grid article{overflow:hidden}
.page-trackers .visual-intro{background:#f3f7f8 url('assets/index-visuals-v1/data-grid.svg') center/cover}.page-trackers .visual-intro .reports-intro{max-width:650px}.category-icon{width:36px;height:36px;color:#00796e;display:block;margin-bottom:18px}.page-fibre .visual-intro{background:#102e38 url('assets/index-visuals-v1/data-grid.svg') center/cover}
@media(max-width:800px){.page-reports .visual-intro .wrap{grid-template-columns:1fr!important}.featured-cover{grid-column:1;grid-row:auto;max-width:430px;margin-top:20px;transform:none}.page-gis .hero .wrap>div{max-width:100%}.page-gis main>.visual-intro{background-image:linear-gradient(rgba(16,46,56,.87),rgba(16,46,56,.87)),url('assets/index-visuals-v1/gis-infrastructure.webp')}.page-insights main>.visual-intro{background-image:linear-gradient(rgba(16,46,56,.83),rgba(16,46,56,.83)),url('assets/visuals/analyst-city.webp')}.map-example img{height:auto;max-height:340px}.article-image{max-height:210px}}
@media(max-width:650px){body{height:auto;display:block;overflow:auto}main{overflow:visible}footer{position:static}header .wrap{padding-top:18px;padding-bottom:18px}.gis-grid{grid-template-columns:1fr!important}}

.cover-stack{position:relative;min-height:245px;transform:none;padding-top:26px}.cover-stack img{position:relative;width:78%;display:block}.cover-stack img:nth-child(1){transform:rotate(-6deg);margin-left:2%}.cover-stack img:nth-child(2){transform:rotate(4deg);margin-top:-29%;margin-left:15%}.cover-stack img:nth-child(3){transform:rotate(-2deg);margin-top:-26%;margin-left:6%}.cover-stack figcaption{position:relative;margin-top:18px}@media(max-width:800px){.cover-stack{width:100%;max-width:430px}}

/* Preview v16: team profiles */
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.team-card{background:white;border:1px solid #d9e2e5;padding:28px;display:flex;flex-direction:column;min-width:0}.team-card h3{font-size:25px;margin-bottom:8px}.team-role{color:#00796e;font-size:15px;font-weight:700;min-height:48px}.team-card>p:not(.team-role){color:#52646c;font-size:16px}.team-contact{border-top:1px solid #d9e2e5;padding-top:20px;margin-top:auto;display:flex;flex-direction:column;gap:8px;font-size:15px;overflow-wrap:anywhere}.team-contact-label{font-size:14px;color:#52646c}@media(max-width:900px){.team-grid{grid-template-columns:1fr}.team-role{min-height:0}.team-card{padding:25px}}

/* Preview v18: FTTH analyst insight */
.ftth-insight{max-width:880px;border:0;padding:0}.ftth-insight h2{font-size:clamp(29px,3.2vw,42px);line-height:1.2}.ftth-insight h3{margin-top:36px;font-size:24px}.insight-lead{font-size:21px;line-height:1.6}.insight-byline{font-size:15px;color:#52646c}.insight-scope{background:#edf5f4;padding:20px 24px;border-left:3px solid #00796e;font-size:15px}.insight-actions{font-size:17px;color:#102e38}.insight-actions li{margin-bottom:16px}.insight-sources{margin-top:40px;border-top:1px solid #d9e2e5;padding-top:10px;color:#52646c;font-size:14px}.insight-sources ol{padding-left:22px}.insight-teaser{border:1px solid #d9e2e5;background:white;max-width:880px}.ftth-insight sup a{font-size:12px}.ftth-insight-section{background:white}
