:root{--navy: #1a2740;--navy-deep: #121a2c;--ink: #1c2433;--muted: #4d5968;--rule: #c9c4b8;--paper: #f4f1ea;--white: #ffffff;--band: #ebe7de;--parchment: #e4dccb;--brass: #8a6a32;--link: #1a4f7a;--link-hover: #123a5a;--font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;--font-sans: "Source Sans 3", "Segoe UI", Tahoma, sans-serif;font-family:var(--font-sans);line-height:1.55;font-weight:400;color:var(--ink);background-color:var(--paper);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:var(--paper)}#root{min-height:100vh}a{color:var(--link)}a:hover{color:var(--link-hover)}.site{min-height:100vh;min-width:0;display:flex;flex-direction:column;background:var(--paper);overflow-x:clip}.band-inner{width:min(1080px,calc(100% - 2.5rem));margin:0 auto}.masthead{background:var(--navy);color:#f3efe6;border-bottom:3px solid var(--brass)}.masthead-inner{width:min(1080px,calc(100% - 2.5rem));margin:0 auto;min-height:4.1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{color:#f6f1e6;text-decoration:none;font-family:var(--font-serif);font-size:1.22rem;font-weight:650;letter-spacing:.02em;display:flex;flex-direction:column;align-items:flex-start;line-height:1.1;flex-shrink:0;gap:.12rem}.brand-by{font-family:var(--font-sans);font-size:.72rem;font-weight:600;letter-spacing:.06em;color:#d4bf8a}.brand:hover{color:#fff}.site-ribbon{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.15rem .9rem;min-width:0;max-width:100%}.site-ribbon-link{color:#d7d2c6;text-decoration:none;font-size:.92rem;font-weight:600;padding:.35rem 0;border-bottom:2px solid transparent}.site-ribbon-link:hover{color:#fff}.site-ribbon-link.active{color:#fff;border-bottom-color:var(--brass)}.hero-band,.page-header-band{background:var(--navy-deep);color:#f4f0e6;padding:2.6rem 0 2.3rem;border-bottom:1px solid #2c3a55;text-align:center}.page-header-band{padding:1.9rem 0 1.7rem}.kicker{margin:0;color:#d4bf8a;letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700}.hero-inner,.page-header-inner{display:flex;flex-direction:column;align-items:center;position:relative}.hero-inner{width:100%;max-width:100%;padding-top:0;container-type:inline-size}.hero-subhead,.hero-fine{max-width:min(40rem,100%)}.hero-inner>*{min-width:0}.hero-band{min-height:0;display:flex;align-items:center;padding:3.4rem 0 3.15rem;background:var(--navy);border-bottom:0}.hero-rule{display:block;width:3.25rem;height:2px;margin:.95rem 0 .15rem;background:var(--brass)}.hero-subhead{margin:.7rem 0 0;color:#f3efe4;font-family:var(--font-serif);font-size:clamp(.95rem,2.1cqi,1.35rem);font-weight:650}.hero-fine{margin:.9rem 0 0;color:#d4bf8a;font-size:.9rem}.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.35rem}.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-weight:700;font-size:.98rem;line-height:1.2;padding:.72rem 1.15rem;border:1px solid transparent}.btn-primary{background:var(--brass);color:#f7f3ea;border-color:var(--brass)}.btn-primary:hover{background:#a07d3c;color:#fff}.btn-secondary{background:transparent;color:#f7f3ea;border-color:#d4bf8a}.btn-secondary:hover{color:#fff;border-color:#fff}.hero-band h1,.page-header-band h1{margin:.5rem 0 0;font-family:var(--font-serif);font-size:clamp(2rem,4.2vw,3.05rem);line-height:1.16;font-weight:650;color:#f7f3ea;text-wrap:balance}.hero-band h1{margin-top:.85rem;max-width:100%;white-space:nowrap;font-size:clamp(1.15rem,5.35cqi,3.65rem);line-height:1.15;letter-spacing:-.02em;color:#f7f3ea}.subtitle{margin:.85rem 0 0;max-width:min(36rem,100%);color:#e4ddd0;font-size:1.12rem;line-height:1.5}.hero-band .subtitle{max-width:100%;white-space:nowrap;font-size:clamp(.95rem,1.7cqi,1.12rem);letter-spacing:-.01em}.subtitle-break{display:none}.page-contents{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:.45rem 1.1rem;position:absolute;top:0;right:0;margin:0;font-size:.88rem}.page-contents a{color:#efe8d8;text-decoration:none;border-bottom:1px solid rgba(212,191,138,.55)}.page-contents a:hover{color:#fff;border-bottom-color:#fff}.site>main{flex:1;display:flex;flex-direction:column}.site>main.content-band,.site>main>.content-band:last-child{flex:1}.content-band{padding:2.4rem 0 2.6rem;background:var(--white);border-bottom:1px solid var(--rule)}.content-band.band-alt{background:var(--band)}#major-works,#work,#construction-details{background:var(--parchment)}#services,#work,#resources,#major-works,#construction-details,#contact{scroll-margin-top:.75rem}.section-heading.solo{grid-template-columns:1fr}.service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.15rem}.service-card{background:var(--white);border:1px solid #c9c4b8;border-top:3px solid var(--navy);padding:1.15rem 1.2rem 1.3rem}.service-card h3{margin:0;font-family:var(--font-serif);font-size:1.18rem;color:var(--navy)}.service-card p{margin:.55rem 0 0;color:#2b3441;line-height:1.55}.service-note{margin:1.15rem 0 0;max-width:48rem;color:#2b3441;line-height:1.6}.work-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.work-figure{margin:0}.work-still{aspect-ratio:4 / 3;display:grid;place-items:center;background:#243044;color:#d4bf8a;border:1px solid #1a2740;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.work-figure figcaption{margin-top:.55rem;color:var(--ink);font-size:.95rem;line-height:1.4}.contact-layout{display:grid;grid-template-columns:minmax(16rem,.85fr) minmax(18rem,1.15fr);gap:1.25rem 2.25rem;align-items:start}.contact-copy p{margin:0;color:#2b3441;line-height:1.65}.contact-copy p+p{margin-top:.75rem}.contact-copy a{font-weight:700;text-decoration:none}.contact-copy a:hover{text-decoration:underline}.contact-panel{width:min(40rem,100%);margin-left:auto}.contact-email{margin:0 0 1rem;color:#2b3441}.contact-email a{font-weight:700;text-decoration:none}.contact-email a:hover{text-decoration:underline}.enquiry-form{display:grid;gap:.8rem;background:#fff;border:1px solid #c9c4b8;border-top:3px solid var(--brass);padding:1.15rem 1.2rem 1.25rem}.enquiry-form label{display:grid;gap:.32rem;font-weight:700;color:var(--navy);font-size:.92rem}.enquiry-form input,.enquiry-form select,.enquiry-form textarea{font:inherit;font-size:1rem;font-weight:400;color:var(--ink);background:#fff;border:1px solid #c3baa8;padding:.55rem .65rem;width:100%}.enquiry-form textarea{min-height:8rem;resize:vertical}.btn:focus-visible,.enquiry-form input:focus-visible,.enquiry-form select:focus-visible,.enquiry-form textarea:focus-visible,.enquiry-submit:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.enquiry-submit{justify-self:start;font:inherit;font-weight:700;font-size:.98rem;background:var(--navy);color:#f6f1e6;border:0;border-bottom:3px solid var(--brass);padding:.72rem 1.2rem;cursor:pointer}.enquiry-submit:hover{background:var(--navy-deep)}.section-heading{display:grid;grid-template-columns:minmax(14rem,.9fr) minmax(16rem,1.1fr);gap:.45rem 2.5rem;align-items:end;margin:0 0 1.25rem;padding-bottom:.85rem;border-bottom:2px solid var(--navy)}.section-heading h2{margin:0;font-family:var(--font-serif);font-size:1.55rem;font-weight:650;color:var(--navy)}.section-heading p{margin:0;color:var(--muted)}.section-heading.heading-split{grid-template-columns:auto minmax(0,1fr)}.section-heading.heading-split p{justify-self:end;text-align:right}.live-map-wrap{border:1px solid #b9b3a6;background:#dfe3e8;overflow:hidden;isolation:isolate}.live-map{width:100%;height:clamp(360px,52vh,540px)}.live-map .leaflet-popup-content-wrapper,.live-map .leaflet-popup-tip{background:var(--white);color:var(--ink);border-radius:0;box-shadow:0 8px 24px #121a2c2e}.live-map .leaflet-popup-content{margin:10px 12px;line-height:1.35;font-family:var(--font-sans)}.live-map .leaflet-popup-content a{color:var(--link);font-weight:600}.live-map .leaflet-popup-content a:hover{color:var(--link-hover)}.live-map .leaflet-control-attribution{background:#ffffffe0;color:#5a6470}.live-map .leaflet-control-attribution a{color:var(--link)}.map-note{margin:.75rem 0 0;font-size:.88rem;color:var(--muted)}.resource-stack{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem}.directory-panel{background:var(--white);border:1px solid #c9c4b8;border-top:3px solid var(--navy);padding:1.15rem 1.2rem 1.25rem}.content-band.band-alt .directory-panel{background:var(--white)}.directory-panel.planning{border-top-color:var(--navy)}.directory-panel.environment{border-top-color:#3d5c4a}.directory-panel.standards{border-top-color:var(--brass)}.directory-panel.topo{border-top-color:#4a5d73}.directory-panel h3{margin:0;font-family:var(--font-serif);font-size:1.18rem;color:var(--navy)}.directory-panel p{margin:.45rem 0 0;color:var(--muted);font-size:.95rem}.directory-panel ul{margin:.9rem 0 0;padding:0;list-style:none}.directory-panel li{border-top:1px solid #e4dfd4;padding:.45rem 0}.directory-panel li:first-child{border-top:0;padding-top:0}.directory-panel a{color:var(--link);text-decoration:none;font-weight:600}.directory-panel a:hover{color:var(--link-hover);text-decoration:underline}.details-groups{display:grid;gap:0;border:1px solid #c3baa8;background:#f3eee2}.details-group{border-bottom:1px solid #c9c4b8;padding:0}.details-group:last-child{border-bottom:0}.details-group summary{cursor:pointer;font-weight:700;color:var(--navy);list-style:none;padding:.85rem 1rem}.details-group summary::-webkit-details-marker{display:none}.details-group summary:before{content:"+";display:inline-block;width:1.1rem;color:var(--brass);font-weight:700}.details-group[open] summary:before{content:"–"}.details-group ul{margin:0;padding:0 1rem .95rem;list-style:none}.details-group li+li{margin-top:.4rem}.details-group a{color:var(--link);text-decoration:none;font-weight:600}.details-group a:hover{text-decoration:underline;color:var(--link-hover)}.empty-note{margin:0;padding:0 1rem .95rem;color:var(--muted);font-size:.92rem}.prose{max-width:42rem;width:100%;margin-inline:auto;padding-bottom:.4rem}.prose h2{margin:1.6rem 0 0;font-family:var(--font-serif);font-size:1.28rem;color:var(--navy);padding-bottom:.35rem;border-bottom:1px solid var(--rule)}.prose h2:first-child{margin-top:0}.prose p{margin:.7rem 0 0;color:#2b3441;line-height:1.65}.back-link{margin-top:1.6rem}.back-link a{color:var(--link);font-weight:700;text-decoration:none}.back-link a:hover{text-decoration:underline;color:var(--link-hover)}.site-footer{margin-top:auto;background:var(--navy);color:#d7d2c6;padding:1.7rem 0 1.8rem;border-top:3px solid var(--brass)}.footer-inner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.55rem 2.25rem;align-items:start}.footer-brand{margin:0;font-family:var(--font-serif);color:#f4f0e6;font-size:1.05rem}.footer-note{margin:0;font-size:.9rem;color:#c4beaf}.footer-links{margin:0;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.85rem 1.15rem}.footer-links a{color:#efe8d8;text-decoration:none;font-weight:600;font-size:.9rem}.footer-links a:hover{color:#fff;text-decoration:underline}@media(max-width:1024px){.resource-stack{grid-template-columns:1fr}.work-grid{grid-template-columns:1fr 1fr}.live-map{height:clamp(300px,46vh,480px)}}@media(max-width:720px){.section-heading,.footer-inner{grid-template-columns:1fr;gap:.75rem}.footer-links{justify-content:flex-start}.page-contents{position:static;justify-content:center;margin-bottom:1rem}.band-inner,.masthead-inner{width:min(1080px,calc(100% - 1.4rem))}.masthead-inner{flex-direction:column;align-items:stretch;padding:.7rem 0 .75rem;min-height:0;gap:.45rem}.site-ribbon{width:100%;justify-content:flex-start;gap:.35rem .85rem}.hero-band,.page-header-band,.content-band{padding-left:0;padding-right:0}.hero-band{min-height:0;padding-top:2.3rem;padding-bottom:2.15rem}.hero-band .subtitle{white-space:normal;font-size:1rem;letter-spacing:0}.subtitle-break{display:block}.service-grid{grid-template-columns:1fr}.section-heading.heading-split p{justify-self:end;text-align:right}.hero-actions{flex-direction:column;width:min(100%,28rem)}.hero-actions .btn,.enquiry-submit{width:100%}.work-grid,.contact-layout{grid-template-columns:1fr}}
