.services,.projects,.drawings,.coverage,.contact{padding:44px 3vw}
.section-code{font-size:.875rem}
.service-intro,.drawing-head{padding:28px 0;gap:32px}
.service-intro h2,.drawing-head h2,.coverage h2,.contact h2{font-size:clamp(2rem,4vw,3.5rem);line-height:1;margin-bottom:0}
.service-intro p,.drawing-head p{font-size:1.05rem;margin-bottom:0}
.coverage-copy{margin:28px 0}.coverage-copy h2{margin-bottom:18px}
.contact h2{margin:28px 0}
.hero{height:560px;min-height:0}.hero-title{padding:48px 4vw 24px}.hero h1{font-size:clamp(3rem,6vw,6.5rem)}
.hero-note{padding:48px 32px;gap:22px}.hero-note span{font-size:1.125rem}
.browse-rail{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 32px)/3);grid-auto-rows:auto;gap:16px;align-items:stretch;min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--signal) #657580;padding-bottom:10px}
.browse-rail>*{min-width:0;scroll-snap-align:start}
.browse-rail:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
.browse-rail::-webkit-scrollbar{height:5px}.browse-rail::-webkit-scrollbar-thumb{background:var(--signal)}
.browse-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;color:var(--navy)}
.browse-controls[hidden]{display:none}
.browse-controls p{margin:0;font-size:.875rem;line-height:1.4;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}
.browse-count{font:700 .875rem/1.4 monospace;font-variant-numeric:tabular-nums;color:inherit;opacity:.8}
.browse-buttons{display:flex;gap:8px;flex-shrink:0}
.browse-buttons button{min-height:44px;padding:10px 14px;border:1px solid currentColor;background:transparent;color:inherit;font:700 .875rem/1.3 monospace;cursor:pointer}
.browse-buttons button:hover:not(:disabled),.browse-buttons button:focus-visible{background:var(--signal);border-color:var(--signal);color:var(--navy);outline:2px solid var(--signal);outline-offset:2px}
.browse-buttons button:disabled{opacity:.35;cursor:default}
.projects .browse-controls,.contact .browse-controls{color:#c4ced5}
.service-register{border:0}.service-register article{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:16px;padding:28px;border:1px solid var(--line);background:white;min-height:210px}
.service-register article:hover{transform:none}.service-register article>span{font-size:.875rem;color:var(--signal)}.service-register h3{font-size:1.5rem}.service-register article p{font-size:1rem;line-height:1.5}
.project-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;margin:24px 0 14px;scrollbar-width:thin;scrollbar-color:var(--signal) #475e70}
.project-tabs button{flex:0 0 auto;border:1px solid #66798a;padding:13px 18px;background:transparent;color:white;font:700 .875rem/1.3 Arial,Helvetica,sans-serif;cursor:pointer;white-space:nowrap}
.project-tabs button[aria-selected="true"]{background:var(--signal);border-color:var(--signal);color:var(--navy)}
.project-tabs button:focus-visible{outline:2px solid white;outline-offset:2px}
.project-panel[hidden]{display:none}.project-panel{min-width:0}.project-feature{margin-top:0}.project-image{height:460px}.project-data{padding:30px}
.project-data h2{font-size:clamp(1.75rem,3vw,3rem);margin:28px 0 8px}.project-data dl{margin-top:30px;margin-bottom:0}.project-data>p{font-size:.875rem}.project-data dt{font-size:.875rem}
.visual-register.browse-rail{margin:0;background:transparent;padding-right:0}
.visual-register.browse-rail article,.visual-register.browse-rail article.wide,.visual-register.browse-rail article.tall{grid-column:auto;grid-row:auto;height:340px;min-height:0}
.visual-register article>span{font-size:.875rem}.visual-register small{font-size:.875rem}
.project-panel .archive-head{display:none}.archive-reel.browse-rail{background:transparent}.archive-reel article{border:1px solid #475e70}.archive-reel span{font-size:.875rem;line-height:1.3}.archive-reel small{font-size:.875rem}
.project-table.browse-rail{margin-top:0}.project-table .row{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:14px;padding:28px;border:1px solid #475e70;background:#0b2032;min-height:260px}
.project-table .row:hover{transform:none}.project-table .row b{font-size:1.35rem;line-height:1.2;text-transform:uppercase}
#register-rail .row>*{display:block;grid-column:auto;grid-row:auto;font-size:1rem}#register-rail .row>b{font-size:1.35rem}#register-rail .row>span:first-child{font:700 .875rem/1.4 monospace;color:var(--signal)}
.drawing-grid.browse-rail{border:0;background:transparent}.drawing-card{border:1px solid var(--navy)}.drawing-card img{height:240px;aspect-ratio:auto;object-fit:contain;background:white}.drawing-card span,.drawing-card small{font-size:.875rem}
.coverage-map{display:block}.coverage-map .map-shell{border:0;min-height:0}.map-shell:after{display:none}
.map-view-switch{display:flex;flex-wrap:wrap;gap:8px;padding:14px 0}
.map-view-switch button{min-height:44px;border:1px solid var(--navy);background:white;color:var(--navy);padding:11px 14px;font:700 .875rem/1.3 monospace;cursor:pointer}
.map-view-switch button[aria-pressed="true"]{background:var(--navy);color:white}
.map-view-switch button:hover,.map-view-switch button:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
.map-rail.browse-rail{grid-auto-columns:100%;gap:0;padding:0;scrollbar-width:none}.map-rail::-webkit-scrollbar{display:none}
.map-view{height:550px;min-width:0;overflow:hidden}.map-view--uk{position:relative}.map-view--uk .uk-map{height:100%;width:100%;max-height:none;margin:0}
.map-shell>.browse-controls{padding:14px 20px;background:var(--paper);border-bottom:1px solid var(--line)}
.london-map-panel.map-view{margin:0;border:0;display:flex;flex-direction:column}.london-map-panel .london-map{flex:1;min-height:0;height:100%;max-height:none}.london-map-heading,.london-map-note,.map-attribution{flex-shrink:0}
.map-view--locations{padding:0 20px}.map-view--locations .browse-controls{padding:16px 0}
.location-register.browse-rail{max-height:none;overflow-x:auto;overflow-y:hidden;display:grid;flex-direction:initial}.project-location{height:440px;overflow-y:auto;overscroll-behavior-y:contain;border:1px solid var(--line);padding:20px;position:relative}.project-location summary b{font-size:1.1rem}.project-location summary span{font-size:.875rem}
.coverage-regions{margin-top:12px;display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;padding:16px}.coverage-regions b{margin:0;font-size:.875rem}.coverage-regions span{font-size:.875rem}
.enquiry-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(230px,.7fr);gap:32px;align-items:start}.enquiry-form{margin:0;max-width:none}
.enquiry-layout .contact-grid{display:grid;grid-template-columns:1fr;grid-auto-flow:row;grid-auto-columns:auto;overflow:visible;border:0;padding:0;gap:0}
.enquiry-layout .contact-grid>*{padding:22px 0;border-bottom:1px solid #6e8190;min-width:0}.enquiry-layout .contact-grid address b{font-size:.875rem}
@media(max-width:1000px){.browse-rail{grid-auto-columns:calc((100% - 16px)/2)}}
@media(max-width:900px){.hero{height:auto;grid-template-rows:auto 260px auto}.hero-title{padding:40px 5vw 26px}.hero h1{font-size:clamp(3rem,10vw,4.5rem)}.hero figure{height:260px}.hero-note{min-height:0;padding:24px 5vw;gap:16px}.hero-note span{max-width:none;font-size:1rem}.hero-note a{margin-top:0;padding-top:14px}
.project-image{height:300px}.project-data{padding:22px}.project-data h2{margin:14px 0 6px;font-size:1.8rem}.project-data h3{margin-bottom:0}.project-data dl{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:18px}.project-data dl div{padding:10px 0}.project-data>p{margin-bottom:12px}
.enquiry-layout{display:block}.enquiry-layout .contact-grid.browse-rail{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc((100% - 16px)/2);gap:16px;overflow-x:auto;overflow-y:hidden;padding-bottom:10px}.enquiry-layout .contact-grid>*{padding:22px;border:1px solid #6e8190;min-height:185px}
.map-rail.browse-rail{grid-auto-columns:100%}.map-view{height:500px}.project-location{height:390px}}
@media(max-width:560px){.services,.projects,.drawings,.coverage,.contact{padding:32px 5vw}.service-intro,.drawing-head{padding:24px 0;gap:20px}.service-intro h2,.drawing-head h2,.coverage h2,.contact h2{font-size:2.1rem}
.browse-rail{grid-auto-columns:86%;gap:12px}.browse-controls{align-items:flex-start;flex-wrap:wrap;gap:10px}.browse-controls p{flex:1;min-width:150px}.browse-buttons button{padding:10px 12px}
.service-register article{min-height:200px;padding:24px}.visual-register.browse-rail article,.visual-register.browse-rail article.wide,.visual-register.browse-rail article.tall{height:310px}
.project-tabs{margin-top:18px}.project-tabs button{padding:12px 14px}.project-image{height:270px}.project-data dl{gap:14px}.drawing-card img{height:220px}
.map-rail.browse-rail{grid-auto-columns:100%;gap:0}.map-shell>.browse-controls{padding:14px}.map-view--locations{padding:0 12px}.map-view{height:500px}.location-register.browse-rail{grid-auto-columns:94%}.project-location{height:370px;padding:18px}
.enquiry-layout .contact-grid.browse-rail{grid-auto-columns:86%}.form-field label{font-size:.875rem}.contact h2{margin:24px 0}.coverage-copy{margin:24px 0}}
@media(prefers-reduced-motion:reduce){.browse-rail{scroll-behavior:auto}}
