/* Local review: original labels/background; retained copy, factory panel and contact access. */
.project-approach{justify-content:center;gap:22px;padding:34px}
.project-approach>h2{font-size:clamp(25px,2.3vw,34px);letter-spacing:-.03em;line-height:1.2}
.approach-points{margin:0;display:grid;gap:18px}
.approach-points>div{padding-top:16px;border-top:1px solid var(--line)}
.approach-points dt{font-size:13px;font-weight:600;margin-bottom:6px}
.approach-points dd{margin:0;color:var(--muted);font-size:12px;line-height:1.8}
.project-approach .stage-location{margin-top:0}
.project-approach .stage-location>svg{margin-left:auto}
.factory-overview{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:0;align-items:stretch}
.factory-overview .factory-lead-image{box-shadow:none}
.factory-overview .factory-lead-image>a,.factory-overview .factory-lead-image .visual{height:100%;min-height:460px;aspect-ratio:auto}
.factory-overview .factory-editorial{display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:28px;padding:40px;border:1px solid var(--line);border-left:0;background:var(--fx-metal);text-align:left}
.factory-editorial-heading{width:100%}.factory-editorial-heading>.eyebrow{display:flex;align-items:center;gap:9px;font-size:10px;color:var(--muted)}
.factory-editorial h2{font-size:clamp(30px,2.8vw,40px);line-height:1.15;letter-spacing:-.03em;max-width:12ch;margin:18px 0 0}
.factory-editorial-copy{max-width:42ch}.factory-editorial-copy p{margin:0;font-size:14px;line-height:1.85;color:var(--muted)}.factory-editorial-copy p+p{margin-top:16px}
.factory-editorial-bottom{width:100%;margin-top:auto;padding-top:24px;border-top:1px solid var(--line)}.factory-editorial .alt-factory-motto{margin:0!important;padding-left:0;border-left:0;font-size:23px!important;line-height:1.4}.factory-capabilities{font-size:11px;color:var(--link);margin-top:14px;line-height:1.7}
.quick-contact{position:fixed;right:24px;bottom:calc(24px + env(safe-area-inset-bottom));z-index:35;color:var(--ink)}
.quick-contact>summary{display:flex;align-items:center;gap:10px;min-height:46px;padding:10px 18px;list-style:none;cursor:pointer;position:relative;isolation:isolate;background:var(--fx-metal);color:var(--ink);font-size:12px;font-weight:500;border:1px solid var(--control);box-shadow:inset 0 1px 0 rgb(255 255 255 / .16),0 6px 18px var(--fx-shadow),0 0 12px rgb(74 143 232 / .07);transition:box-shadow 220ms ease,border-color 220ms ease}
.quick-contact>summary::-webkit-details-marker{display:none}
.quick-contact svg{width:20px;height:20px;flex-shrink:0}
.quick-contact>summary:focus-visible,.quick-contact-panel a:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.quick-contact-panel{position:absolute;right:0;bottom:calc(100% + 12px);width:min(300px,calc(100vw - 32px));padding:20px;isolation:isolate;color:var(--ink);background:radial-gradient(ellipse at 100% 0%,var(--fx-blue),transparent 68%),var(--fx-metal);border:1px solid var(--control);box-shadow:inset 0 1px 0 rgb(255 255 255 / .12),0 12px 32px var(--fx-deep-shadow)}
.quick-contact-panel>p{margin:0 0 14px;font-size:13px;font-weight:500}
.quick-contact-panel>a{display:flex;align-items:center;gap:12px;min-height:62px;padding:12px 0;border-top:1px solid var(--line);font-size:14px}
.quick-contact-panel>a>svg:last-child{margin-left:auto;width:16px}
.quick-contact-panel small{display:block;margin-top:4px;font-size:10px;color:var(--muted);overflow-wrap:anywhere}
.quick-contact-panel>a:hover{color:var(--link)}
body:has(dialog[open]) .quick-contact{visibility:hidden}
.site-footer{padding-bottom:78px}
.map-frame{position:relative}



.quick-contact>summary::before{content:'';position:absolute;left:12%;right:12%;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--fx-ice),var(--accent),transparent);opacity:.45;pointer-events:none}
.quick-contact>summary::after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 25%,rgb(255 255 255 / .045) 50%,transparent 75%);opacity:.5}

.quick-contact>summary:hover,.quick-contact[open]>summary{border-color:var(--link);box-shadow:inset 0 1px 0 rgb(255 255 255 / .2),0 7px 20px var(--fx-shadow),0 0 14px rgb(74 143 232 / .13)}
.quick-contact>summary>svg{color:var(--link)}

@media(max-width:1100px){.project-approach{padding:26px}.approach-points{gap:12px}.factory-overview{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}.factory-overview .factory-editorial{padding:30px}}
@media(max-width:900px){.factory-overview{grid-template-columns:1fr}.factory-overview .factory-lead-image>a{height:auto;min-height:0}.factory-overview .factory-lead-image .visual{min-height:0;height:auto;aspect-ratio:1.6}.factory-overview .factory-editorial{border-left:1px solid var(--line);border-top:0}.factory-editorial h2{max-width:none}.factory-editorial-bottom{margin-top:0}}
@media(max-width:600px){.project-approach{gap:22px;padding:26px 22px}.project-approach>h2{font-size:29px}.project-approach>p{font-size:14px}.approach-points dt{font-size:14px}.approach-points dd{font-size:13px}.factory-overview .factory-editorial{padding:28px 22px;gap:22px}.factory-editorial h2{font-size:32px}.factory-editorial-copy p{font-size:14px}.factory-editorial-bottom{padding-top:20px}.quick-contact{right:16px;bottom:calc(16px + env(safe-area-inset-bottom))}.quick-contact>summary{padding:11px 14px;font-size:11px;gap:9px}}
@media(prefers-reduced-motion:reduce){.quick-contact>summary::before{animation:none!important}.quick-contact>summary{transition:none}}
@media print{.quick-contact{display:none!important}.site-footer{padding-bottom:0}}

/* Seamless light falloff: an angular halo masked to the border, without dash caps. */
@property --contact-light-angle{syntax:"<angle>";initial-value:0deg;inherits:false}
.quick-contact>summary>.contact-border-light{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);padding:1.5px;box-sizing:border-box;pointer-events:none;background:conic-gradient(from var(--contact-light-angle),transparent 0deg 240deg,rgb(57 143 255 / .035) 260deg,rgb(73 157 255 / .16) 278deg,rgb(105 181 255 / .48) 296deg,rgb(157 211 255 / .8) 310deg,rgb(105 181 255 / .48) 324deg,rgb(73 157 255 / .16) 342deg,transparent 360deg);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;filter:drop-shadow(0 0 2px rgb(57 143 255 / .25))}
.contact-border-light rect{display:none}
:root[data-motion=full] .contact-border-light{animation:contact-border-halo 8s linear infinite}
@keyframes contact-border-halo{to{--contact-light-angle:360deg}}
#alt-fabrication-services .fabrication-services-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:600px){#alt-fabrication-services .fabrication-services-grid{grid-template-columns:1fr;gap:28px}#alt-fabrication-services .alt-extra-service p{margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){.contact-border-light{animation:none!important}}

/* The disclosure uses the same restrained steel and blue-light surface as the site. */

.quick-contact-panel::after{content:'';position:absolute;left:0;right:0;top:-1px;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--fx-ice),var(--link),transparent);opacity:.65}

