:root { color-scheme: dark; --ink:#0d1012; --ink2:#151a1d; --orange:#e34c3d; --blue:#61bed7; --cream:#f3f0ed; --muted:#bac2c2; --line:rgba(255,255,255,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:85px; }
body { margin:0; font:400 1rem/1.55 Arial,Helvetica,sans-serif; background:var(--ink); color:var(--cream); }
a { color:inherit; } img { display:block; max-width:100%; } button { font:inherit; }
.wrap { width:min(100% - 48px,1200px); margin-inline:auto; }
.skip-link { position:absolute; z-index:20; top:-80px; left:16px; padding:10px 14px; background:var(--orange); color:var(--ink); }
.skip-link:focus { top:16px; }
a:focus-visible,button:focus-visible { outline:3px solid #fff; outline-offset:4px; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:Impact,'Arial Narrow',Arial,sans-serif; font-weight:900; text-transform:uppercase; letter-spacing:.015em; line-height:.98; }
h1 { font-size:clamp(4.2rem,8vw,8.3rem); margin-bottom:24px; }
h2 { font-size:clamp(3.25rem,6vw,6rem); margin-bottom:24px; }
h3 { font-size:2rem; }
.eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 18px; color:var(--orange); font-size:.83rem; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.eyebrow::before { content:''; width:28px; height:2px; background:var(--blue); flex:none; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:56px; padding:15px 24px; border:1px solid var(--orange); background:var(--orange); color:#101819; text-decoration:none; font-weight:900; font-size:.9rem; letter-spacing:.04em; text-transform:uppercase; transition:background .2s,transform .2s; }
.button:hover { background:#ff6c5c; transform:translateY(-2px); }
.button.ghost { background:transparent; border-color:rgba(255,255,255,.65); color:#fff; }
.button.ghost:hover { background:rgba(255,255,255,.12); }
.topline { background:var(--orange); color:var(--ink); font-size:.78rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase; }
.topline .wrap { display:flex; justify-content:space-between; gap:16px; padding:9px 0; }
.site-header { position:relative; z-index:10; background:var(--ink); border-bottom:1px solid var(--line); }
.header-inner { min-height:82px; display:flex; align-items:center; justify-content:space-between; gap:26px; }
.brand { display:inline-flex; align-items:center; text-decoration:none; flex-shrink:0; }
.brand-name { font:900 1.82rem/.91 Impact,'Arial Narrow',Arial,sans-serif; text-transform:uppercase; letter-spacing:.035em; }
.brand-name small { display:block; margin-top:7px; color:var(--orange); font:900 .69rem/1 Arial,Helvetica,sans-serif; letter-spacing:.11em; }
.brand-spark { color:var(--blue); font-size:.77rem; padding:0 3px; }
.site-nav { display:flex; align-items:center; gap:22px; }
.site-nav a,.site-nav button { text-decoration:none; text-transform:uppercase; white-space:nowrap; font-size:.78rem; font-weight:900; letter-spacing:.08em; }
.site-nav a:not(.nav-contact):hover { color:var(--orange); }
.site-nav .nav-contact { padding:13px 18px; border:0; background:var(--orange); color:var(--ink); cursor:pointer; }
.site-nav .nav-contact:hover { background:#ff6c5c; }
.menu-button { display:none; border:1px solid var(--line); background:transparent; color:#fff; padding:10px 12px; cursor:pointer; font-weight:900; text-transform:uppercase; letter-spacing:.05em; }
.hero { position:relative; overflow:hidden; isolation:isolate; background:radial-gradient(circle at 76% 43%,#25262a 0%,#181c1f 36%,#0b0e10 78%); }
.hero::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(7,9,11,.73),transparent 72%),repeating-linear-gradient(90deg,transparent 0 119px,rgba(255,255,255,.017) 120px 121px); }
.hero::after { content:''; position:absolute; width:240px; height:240px; border:1px solid rgba(255,255,255,.13); right:-65px; top:-115px; transform:rotate(45deg); pointer-events:none; }
.hero-inner { min-height:690px; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); align-items:center; gap:12px; }
.hero-content { position:relative; z-index:2; padding:88px 0 90px; }
.hero h1 { max-width:850px; font-size:clamp(3.25rem,5.1vw,5.4rem); line-height:1.02; }
.hero h1 span { color:var(--orange); }
.hero-lede { max-width:550px; margin-bottom:31px; color:#e5e8e6; font-size:1.18rem; line-height:1.63; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.hero-tag { margin:49px 0 0; display:flex; align-items:center; gap:13px; color:#e2e2de; font-size:.79rem; text-transform:uppercase; letter-spacing:.12em; font-weight:900; }
.hero-tag span { width:39px; border-top:2px solid var(--blue); flex:none; }
.hero-art { align-self:stretch; display:grid; place-items:center; position:relative; margin-right:-35px; }
.hero-art::before { content:''; position:absolute; width:min(88%,480px); aspect-ratio:1; border:1px solid rgba(97,190,215,.25); transform:rotate(45deg); }
.hero-art img { position:relative; width:min(100%,470px); max-height:640px; object-fit:contain; filter:drop-shadow(0 26px 28px rgba(0,0,0,.48)); }
.spark-field { position:absolute; inset:0; z-index:1; overflow:hidden; pointer-events:none; }
.spark-field i { position:absolute; width:3px; height:16px; border-radius:2px; background:#ffc89c; box-shadow:0 0 8px 2px rgba(227,76,61,.6); opacity:0; transform:rotate(35deg); animation:spark-flight 4.3s ease-out infinite; }
.spark-field i:nth-child(3n) { width:2px; height:10px; background:#a8e7f6; box-shadow:0 0 8px 2px rgba(97,190,215,.7); }
.spark-field i:nth-child(1) { left:18%; top:37%; --dx:-46px; --dy:-72px; animation-delay:-.2s; }
.spark-field i:nth-child(2) { left:20%; top:38%; --dx:-88px; --dy:-18px; animation-delay:-.1s; }
.spark-field i:nth-child(3) { left:19%; top:36%; --dx:-25px; --dy:-110px; animation-delay:0s; }
.spark-field i:nth-child(4) { left:22%; top:39%; --dx:48px; --dy:-80px; animation-delay:.13s; }
.spark-field i:nth-child(5) { left:17%; top:38%; --dx:-70px; --dy:45px; animation-delay:.3s; }
.spark-field i:nth-child(6) { left:21%; top:37%; --dx:70px; --dy:-42px; animation-delay:.42s; }
.spark-field i:nth-child(7) { left:82%; top:37%; --dx:52px; --dy:-82px; animation-delay:-2.15s; }
.spark-field i:nth-child(8) { left:80%; top:38%; --dx:96px; --dy:-12px; animation-delay:-2s; }
.spark-field i:nth-child(9) { left:81%; top:36%; --dx:28px; --dy:-111px; animation-delay:-1.85s; }
.spark-field i:nth-child(10) { left:79%; top:39%; --dx:-45px; --dy:-75px; animation-delay:-1.72s; }
.spark-field i:nth-child(11) { left:83%; top:38%; --dx:65px; --dy:44px; animation-delay:-1.55s; }
.spark-field i:nth-child(12) { left:80%; top:37%; --dx:-70px; --dy:-40px; animation-delay:-1.43s; }
@keyframes spark-flight { 0%,100% { opacity:0; transform:translate(0,0) rotate(35deg) scale(.5); } 8% { opacity:.95; } 28% { opacity:.9; } 52% { opacity:0; transform:translate(var(--dx),var(--dy)) rotate(35deg) scale(.15); } }
.band { overflow:hidden; background:#a51c2b; color:#fff; border-block:1px solid #ed6659; }
.band-track { display:flex; width:max-content; animation:band-scroll 52s linear infinite; }
.band:hover .band-track { animation-play-state:paused; }
.band-track span { flex:none; padding:19px 42px 19px 0; font:800 1.03rem/1.3 Arial,Helvetica,sans-serif; letter-spacing:.055em; text-transform:uppercase; white-space:nowrap; text-shadow:0 1px 1px rgba(0,0,0,.25); }
.band-track b { margin:0 19px; color:#a8dce9; font-family:Arial,Helvetica,sans-serif; font-size:.85em; }
@keyframes band-scroll { to { transform:translateX(-50%); } }
.services { padding:105px 0 115px; background:#23282b; color:var(--cream); }
.section-intro { display:flex; justify-content:space-between; align-items:end; gap:48px; margin-bottom:42px; }
.section-intro h2 { max-width:630px; margin:0; }
.section-intro > p { max-width:340px; margin:0 0 6px; color:#c3cbcb; font-size:1.03rem; }
.section-intro > .intro-statement { position:relative; max-width:410px; margin:0 0 3px; padding:23px 0 0; color:#e8efee; font-family:Arial,Helvetica,sans-serif; font-size:clamp(1.18rem,1.55vw,1.33rem); font-weight:400; letter-spacing:0; line-height:1.5; }
.intro-statement::before { content:''; position:absolute; top:0; left:0; width:68px; height:3px; background:var(--blue); }
.work .intro-statement::before { background:var(--orange); }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid #555e61; }
.service-card { min-height:355px; display:flex; flex-direction:column; padding:38px 33px; border-right:1px solid #555e61; }
.service-card:last-child { border-right:0; }
.service-num { color:#b7c1c3; font-size:.79rem; font-weight:900; letter-spacing:.12em; }
.service-mark { display:block; margin:25px 0 14px; color:var(--orange); font:900 3.4rem/.9 Impact,'Arial Narrow',Arial,sans-serif; }
.service-card:nth-child(3) .service-mark { color:var(--blue); }
.service-card h3 { margin-bottom:15px; }
.service-card p { max-width:300px; margin:0; color:#c2cbcc; font-size:.98rem; }
.materials { display:grid; grid-template-columns:210px 1fr; gap:28px; align-items:center; margin-top:20px; padding:24px 30px; border:1px solid #555e61; border-left:3px solid var(--blue); background:#1a2023; }
.materials-label { margin:0; color:var(--blue); font-size:.8rem; font-weight:900; letter-spacing:.12em; line-height:1.35; text-transform:uppercase; }
.materials ul { display:flex; flex-wrap:wrap; gap:9px; margin:0; padding:0; list-style:none; }
.materials li { padding:9px 13px; border:1px solid rgba(255,255,255,.3); color:#f3f8f7; font-size:1rem; font-weight:700; }
.work { padding:105px 0 115px; background:#101719; border-top:1px solid var(--line); }
.commercial-note { display:grid; grid-template-columns:240px 1fr; gap:30px; align-items:center; margin-bottom:40px; padding:30px 32px; border:1px solid #69747a; border-left:5px solid var(--orange); background:linear-gradient(105deg,#28333a,#1c2529 65%); box-shadow:0 8px 30px rgba(0,0,0,.16); }
.commercial-note strong { color:var(--blue); font-size:1.06rem; font-weight:900; letter-spacing:.075em; line-height:1.3; text-transform:uppercase; }
.commercial-note p { max-width:800px; margin:0; color:#f2f6f5; font-size:1.16rem; line-height:1.5; }
.work-group + .work-group { margin-top:72px; }
.work-group-heading { display:flex; align-items:center; gap:17px; max-width:1080px; margin:0 auto 22px; }
.work-group-heading span { color:var(--blue); font:900 .82rem/1 Arial,Helvetica,sans-serif; letter-spacing:.13em; }
.work-group-heading h3 { flex:none; margin:0; font-size:clamp(1.75rem,2.8vw,2.5rem); }
.work-group-heading i { flex:1; height:1px; background:#4c575b; }
.work-group + .work-group .work-group-heading span { color:var(--orange); }
.work-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; max-width:1080px; margin-inline:auto; }
.work-card { min-width:0; margin:0; border:1px solid #4c575b; background:#20282b; }
.work-card img { width:100%; height:365px; object-fit:cover; }
.work-grid:not(.work-grid-small) > .work-card:nth-child(2) img { object-position:center 62%; }
.work-grid:not(.work-grid-small) > .work-card:nth-child(3) img { object-position:center 34%; }
.work-grid:not(.work-grid-small) > .work-card:nth-child(4) img { object-position:center 13%; }
.work-grid-small > .work-card:nth-child(4) img { object-position:center 50%; }
.work-card figcaption { padding:25px 29px 29px; border-top:3px solid var(--orange); }
.work-card figcaption span { display:block; margin-bottom:10px; color:var(--blue); font-size:.75rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.work-card h3 { margin:0 0 9px; font-size:clamp(1.7rem,2.8vw,2.8rem); }
.work-card p { max-width:480px; margin:0; color:#cad2d0; font-size:.98rem; }
.work-feature { grid-column:1/-1; display:grid; grid-template-columns:1.15fr .85fr; }
.work-feature img { height:430px; object-position:center 36%; }
.work-feature figcaption { display:flex; flex-direction:column; justify-content:center; border-top:0; border-left:4px solid var(--orange); padding:45px; }
.work-feature h3 { font-size:clamp(2.7rem,4.6vw,4.8rem); max-width:460px; }
.work-grid-small { grid-template-columns:repeat(6,minmax(0,1fr)); }
.work-grid-small > .work-card { grid-column:span 2; }
.work-grid-small > .work-card:nth-last-child(-n+2) { grid-column:span 3; }
.work-grid-small .work-card img { height:290px; }
.work-grid-small > .work-card:nth-last-child(-n+2) img { height:400px; object-position:center 30%; }
.work-grid-small .work-card h3 { font-size:clamp(1.55rem,2.2vw,2.2rem); }
.trailer-project { max-width:1080px; margin:18px auto 0; }
.trailer-project-photos { display:grid; grid-template-columns:1.45fr 1fr; gap:4px; background:#101416; }
.trailer-project-photos img { width:100%; height:420px; object-fit:cover; }
.trailer-project-photos img:first-child { object-position:center 48%; }
.trailer-project-photos img:last-child { object-position:center 43%; }
.trailer-project figcaption { padding:24px 29px 27px; border-top-color:var(--blue); }
.trailer-project h3 { font-size:clamp(1.8rem,2.8vw,2.8rem); }
.paired-photo { display:grid; grid-template-columns:1fr 1fr; min-width:0; }
.paired-photo img { min-width:0; height:430px; object-fit:cover; }
.paired-photo img:first-child { object-position:center 57%; }
.paired-photo img:last-child { object-position:center; }
.field-feature figcaption { border-left-color:var(--blue); }
.field-feature figcaption span { color:var(--orange); }
.story { background:var(--ink2); padding:94px 0 104px; }
.story-heading { display:grid; grid-template-columns:1.1fr .9fr; align-items:end; gap:70px; max-width:1080px; margin:0 auto 44px; }
.story h2 { max-width:640px; margin:0; font-size:clamp(3rem,4.25vw,4.3rem); line-height:1.02; }
.story-lede { max-width:460px; margin:0 0 5px; color:#d3dbd9; font-size:1.09rem; line-height:1.65; }
.story-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); max-width:1080px; margin:0 auto 28px; border-block:1px solid var(--line); }
.fact { display:flex; flex-direction:column; gap:9px; min-width:0; padding:24px 22px; border-right:1px solid var(--line); }
.fact:first-child { padding-left:0; }
.fact:last-child { border-right:0; }
.fact strong { color:var(--orange); font:900 clamp(2rem,2.7vw,2.7rem)/1 Impact,'Arial Narrow',Arial,sans-serif; text-transform:uppercase; white-space:nowrap; }
.fact span { color:#c5cecc; font-size:.95rem; }
.story-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; max-width:880px; margin-inline:auto; }
.story-weld-photo,.story-photo { min-width:0; margin:0; padding:7px; border:1px solid #657176; background:#0c1113; }
.story-weld-photo { border-left:4px solid var(--blue); }
.story-photo { border-left:4px solid var(--orange); }
.story-weld-photo img,.story-photo img { display:block; width:100%; height:340px; object-fit:cover; }
.story-weld-photo img { object-position:center 45%; }
.story-photo img { object-position:center 53%; }
.equipment { padding:95px 0; background:#202528; border-top:1px solid var(--line); }
.equipment-grid,.about-grid { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:90px; }
.equipment p:not(.eyebrow),.about p:not(.eyebrow) { max-width:530px; color:#d4dcda; font-size:1.08rem; }
.equipment-tags { display:flex; flex-wrap:wrap; gap:10px; margin-top:27px; }
.equipment-tags span { padding:7px 12px; border:1px solid rgba(97,190,215,.55); color:var(--blue); font-size:.78rem; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.equipment-plasma { display:grid; grid-template-columns:1fr 1fr; max-width:1080px; margin:46px auto 0; border:1px solid #657176; border-left:4px solid var(--blue); background:#151b1e; box-shadow:10px 10px 0 rgba(97,190,215,.12); }
.equipment-plasma img { width:100%; height:370px; object-fit:cover; object-position:center 44%; }
.equipment-plasma figcaption { display:flex; flex-direction:column; justify-content:center; padding:42px; }
.equipment-plasma figcaption span { color:var(--orange); font-size:.76rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.equipment-plasma h3 { margin:15px 0; font-size:clamp(2.2rem,4.2vw,4rem); }
.equipment-plasma p { margin:0; }
.section-photo { position:relative; min-width:0; margin:0; padding:8px; border:1px solid #657176; border-left:4px solid var(--orange); background:#11181b; box-shadow:10px 10px 0 rgba(227,76,61,.15); }
.section-photo::before { content:''; position:absolute; z-index:1; top:-2px; right:-2px; width:62px; height:4px; background:var(--blue); }
.section-photo img { display:block; width:100%; height:auto; }
.about { padding:95px 0; background:#101416; border-top:1px solid var(--line); }
.about-photo img { max-height:660px; object-fit:cover; object-position:center 42%; }
.about-grid > div:last-child { border-left:2px solid var(--orange); padding-left:30px; }
.about p:last-child { margin-bottom:0; }
.contact { background:#282d30; color:var(--cream); padding:100px 0; }
.contact-box { display:grid; grid-template-columns:1.12fr .88fr; background:#0e1214; color:#fff; box-shadow:18px 18px 0 var(--orange); }
.contact-copy { padding:68px 64px; }
.contact-copy h2 { font-size:clamp(3.4rem,5.5vw,6rem); }
.contact-copy > p:not(.eyebrow) { max-width:480px; color:#c5cecc; font-size:1.08rem; }
.contact-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:31px; }
.contact-details { display:flex; flex-direction:column; justify-content:center; gap:29px; padding:68px 55px; background:#1b2124; }
.detail { padding-bottom:25px; border-bottom:1px solid var(--line); }
.detail:last-child { border:0; padding:0; }
.detail small { display:block; margin-bottom:8px; color:var(--orange); font-size:.78rem; font-weight:900; text-transform:uppercase; letter-spacing:.13em; }
.detail a,.detail span { font-size:1.15rem; font-weight:700; text-decoration:none; overflow-wrap:anywhere; }
.detail a:hover { text-decoration:underline; }
.site-footer { padding:34px 0; background:#080a0b; color:#adb8b7; font-size:.85rem; }
.site-footer .wrap { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.site-footer strong { color:#fff; text-transform:uppercase; letter-spacing:.08em; }
.site-footer .footer-credit { display:block; margin-top:22px; padding-top:15px; border-top:1px solid rgba(255,255,255,.1); color:#8e999b; font-size:.72rem; letter-spacing:.035em; text-align:right; }
.reviews { padding:94px 0 100px; background:#22282b; border-top:1px solid var(--line); }
.review-head { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:34px; }
.review-head h2 { margin:0; }
.review-score { display:flex; align-items:center; gap:17px; flex:none; }
.review-score > strong { color:#fff; font:900 4.7rem/.85 Impact,'Arial Narrow',Arial,sans-serif; }
.review-score > span { display:grid; gap:5px; }
.review-stars { color:#ffbc6b; font-size:1.28rem; letter-spacing:.08em; white-space:nowrap; }
.review-score small { color:#c5cecc; font-size:.83rem; }
.review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.review-card { display:flex; flex-direction:column; min-height:245px; margin:0; padding:28px 30px; background:#141a1d; border:1px solid #4a5559; border-top:3px solid var(--orange); }
.review-card:nth-child(2) { border-top-color:var(--blue); }
.review-card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.review-card-top .review-stars { font-size:1.02rem; }
.review-card-top small { color:#aeb9ba; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.review-card blockquote { margin:29px 0 30px; color:#f1f3f2; font-size:clamp(1.1rem,1.45vw,1.3rem); line-height:1.5; }
.review-card figcaption { margin-top:auto; color:#fff; font-size:.94rem; font-weight:800; }
.review-card figcaption span { color:#aeb9ba; font-weight:400; }
.review-note { display:flex; justify-content:space-between; gap:25px; margin:21px 0 0; color:#b6c1c1; font-size:.84rem; }
.review-note a,.text-link { color:#a4d9e7; text-decoration:underline; text-underline-offset:4px; }
.review-note a:hover,.text-link:hover { color:#fff; }
.review-live { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-bottom:24px; padding:24px 27px; border:1px solid #526066; background:#141b1e; }
.review-live strong { display:block; margin-bottom:4px; font-size:1.05rem; }
.review-live p { max-width:630px; margin:0; color:#c5d1d1; font-size:.92rem; }
.review-live .button { flex:none; }
.service-area { padding:100px 0 105px; background:#191f22; border-top:1px solid var(--line); }
.area-heading { display:flex; justify-content:space-between; align-items:end; gap:50px; margin-bottom:34px; }
.area-heading h2 { margin:0; }
.area-heading > p { max-width:370px; margin:0 0 5px; color:#d0d9d8; font-size:1.06rem; }
.area-map { border:1px solid #667279; border-left:4px solid var(--orange); background:repeating-linear-gradient(90deg,transparent 0 38px,rgba(255,255,255,.018) 39px 40px),linear-gradient(135deg,#1c262b,#111719); box-shadow:12px 12px 0 rgba(227,76,61,.12); }
.map-header,.map-footer { display:flex; justify-content:space-between; gap:25px; padding:17px 29px; color:#b9c7ca; font-size:.72rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase; }
.map-header { border-bottom:1px solid #49565d; }
.map-header span:first-child,.map-footer span:last-child { color:var(--blue); }
.map-footer { border-top:1px solid #49565d; letter-spacing:.055em; text-transform:none; }
.map-footer span:last-child { flex:none; letter-spacing:.12em; text-transform:uppercase; }
.map-swipe-hint { display:none; }
.map-canvas { overflow-x:auto; background:radial-gradient(circle at 34% 56%,rgba(227,76,61,.12),transparent 39%),#11191c; scrollbar-color:#62747c #172126; }
.map-canvas svg { display:block; width:100%; min-width:720px; height:auto; }
.county-label { fill:#a8b8bc; font:900 29px Impact,'Arial Narrow',Arial,sans-serif; letter-spacing:4px; opacity:.64; }
.map-place circle { fill:#e34c3d; stroke:#171b1d; stroke-width:4; }
.map-place text { fill:#f3f0ed; font:800 16px Arial,Helvetica,sans-serif; letter-spacing:1.2px; paint-order:stroke; stroke:#12191c; stroke-width:5px; stroke-linejoin:round; }
.map-place-north circle { fill:#61bed7; }
.map-caption { fill:#9acbd6; font:800 13px Arial,Helvetica,sans-serif; letter-spacing:2px; }
.faq { padding:100px 0 108px; background:#242a2d; border-top:1px solid var(--line); }
.faq-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:90px; }
.faq-grid h2 { max-width:500px; }
.faq-grid > div:first-child > p:not(.eyebrow) { max-width:350px; color:#c7d0d0; }
.faq-list { border-top:1px solid #59656a; }
.faq-list details { border-bottom:1px solid #59656a; }
.faq-list summary { position:relative; padding:22px 45px 22px 0; color:#f3f5f4; font-size:1.09rem; font-weight:700; cursor:pointer; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:'+'; position:absolute; right:8px; top:16px; color:var(--orange); font-size:1.5rem; font-weight:400; }
.faq-list details[open] summary::after { content:'−'; }
.faq-list details p { max-width:680px; margin:0; padding:0 32px 24px 0; color:#c7d0d0; }
.quote-dialog { width:min(94vw,640px); max-height:min(90vh,850px); padding:0; border:1px solid #5b676c; background:#13191c; color:#f4f5f3; box-shadow:0 28px 80px #000b; }
.quote-dialog::backdrop { background:rgba(4,8,10,.82); }
.quote-dialog form { padding:30px 32px 26px; }
.quote-top { display:flex; align-items:start; justify-content:space-between; gap:25px; }
.quote-kicker { margin:0 0 8px; color:var(--orange); font-size:.74rem; font-weight:900; letter-spacing:.11em; text-transform:uppercase; }
.quote-top h2 { margin:0 0 22px; font-size:2.4rem; }
.quote-close { flex:none; border:0; padding:0 4px; background:none; color:#c7d0d1; font-size:1.75rem; line-height:1; cursor:pointer; }
.quote-close:hover { color:#fff; }
.quote-progress { display:flex; justify-content:space-between; margin-bottom:7px; color:#aeb8bb; font-size:.77rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.quote-dialog progress { display:block; width:100%; height:7px; margin-bottom:28px; border:0; accent-color:var(--orange); background:#2e373b; }
.quote-dialog progress::-webkit-progress-bar { background:#2e373b; }
.quote-dialog progress::-webkit-progress-value { background:var(--orange); }
.quote-dialog progress::-moz-progress-bar { background:var(--orange); }
.quote-step fieldset { min-width:0; margin:0; padding:0; border:0; }
.quote-step legend { margin-bottom:20px; padding:0; font:900 clamp(1.6rem,3vw,2.15rem)/1.08 Impact,'Arial Narrow',Arial,sans-serif; text-transform:uppercase; }
.quote-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.quote-options label { position:relative; display:flex; min-height:62px; align-items:center; border:1px solid #48565c; cursor:pointer; }
.quote-options input { position:absolute; width:1px; height:1px; opacity:0; }
.quote-options span { display:flex; width:100%; min-height:62px; align-items:center; padding:12px 16px; color:#e8eceb; font-weight:700; line-height:1.3; }
.quote-options label:hover { border-color:#93a5a9; }
.quote-options input:checked + span { background:#3b2024; box-shadow:inset 3px 0 var(--orange); color:#fff; }
.quote-options input:focus-visible + span { outline:3px solid var(--blue); outline-offset:3px; }
.quote-field { display:grid; gap:7px; margin-top:17px; color:#d8e0df; font-size:.88rem; font-weight:800; }
.quote-field input,.quote-field textarea { width:100%; border:1px solid #637075; border-radius:0; padding:13px 14px; background:#0d1214; color:#fff; font:400 1rem/1.45 Arial,Helvetica,sans-serif; }
.quote-field input:focus-visible,.quote-field textarea:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.quote-field textarea { resize:vertical; }
.quote-fields { display:grid; grid-template-columns:1fr 1fr; column-gap:14px; }
.quote-fields .quote-field:first-child { grid-column:1/-1; }
.quote-hint { margin:15px 0 0; color:#aeb9ba; font-size:.86rem; }
.quote-hint strong { color:#e8f0ef; overflow-wrap:anywhere; }
.quote-error { margin:18px 0 0; color:#ffb4a8; font-size:.89rem; }
.quote-actions { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:31px; }
.quote-call { display:grid; gap:2px; color:#c8d9dc; font-size:.86rem; line-height:1.3; text-decoration:none; }
.quote-call span { text-decoration:underline; text-underline-offset:3px; }
.quote-call strong { color:#fff; font-size:1.02rem; }
.quote-call:hover strong { color:var(--blue); }
.quote-actions > div { display:flex; align-items:center; gap:13px; }
.quote-back { border:0; background:none; color:#d9e2e1; font-weight:800; cursor:pointer; }
.quote-next,.quote-send { min-height:48px; padding:12px 20px; }
[hidden] { display:none !important; }
.services,.work,.reviews,.story,.equipment,.about,.service-area,.faq,.contact { position:relative; isolation:isolate; overflow:hidden; }
.hero > .wrap,.services > .wrap,.work > .wrap,.reviews > .wrap,.story > .wrap,.equipment > .wrap,.about > .wrap,.service-area > .wrap,.faq > .wrap,.contact > .wrap { position:relative; z-index:1; }
.ambient-embers { position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; }
.ambient-ember {
  position:absolute; left:var(--x); top:var(--y); width:2px; height:9px;
  border-radius:1px; background:linear-gradient(to top,transparent 0%,#e4513e 48%,#ffd0a0 100%);
  box-shadow:0 0 5px rgba(235,83,58,.72); opacity:0;
  animation:ember-rise var(--duration) linear var(--delay) infinite;
}
.ambient-ember:nth-child(7n) { height:6px; background:linear-gradient(to top,transparent,#8acde0); box-shadow:0 0 5px rgba(97,190,215,.55); }
.ambient-ember:nth-child(4n) { width:3px; height:7px; }
@keyframes ember-rise {
  0% { opacity:0; transform:translate3d(0,35px,0) rotate(-12deg) scale(.55); }
  12% { opacity:.82; }
  46% { opacity:.9; transform:translate3d(var(--mid-sway),-62px,0) rotate(8deg) scale(1); }
  78% { opacity:.58; }
  100% { opacity:0; transform:translate3d(var(--sway),var(--rise),0) rotate(-8deg) scale(.45); }
}
@keyframes ember-rise-mobile {
  0% { opacity:0; transform:translate3d(0,28px,0) rotate(-12deg) scale(.55); }
  18% { opacity:.48; }
  65% { opacity:.36; }
  100% { opacity:0; transform:translate3d(var(--sway),var(--rise),0) rotate(8deg) scale(.55); }
}
@media(max-width:1050px) { .hero h1 { font-size:clamp(4rem,7.2vw,7rem); } .story-heading,.equipment-grid,.about-grid { gap:50px; } .contact-copy,.contact-details { padding:50px 36px; } }
@media(max-width:1180px) { .menu-button { display:block; } .site-nav { display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:0; padding:12px 24px 22px; background:var(--ink); border-bottom:1px solid var(--line); box-shadow:0 20px 35px rgba(0,0,0,.28); } .site-nav.open { display:flex; } .site-nav a:not(.nav-contact) { padding:15px 4px; border-bottom:1px solid var(--line); } .site-nav .nav-contact { margin-top:15px; text-align:center; } .hero-inner { min-height:610px; } .hero h1 { font-size:clamp(3rem,5.3vw,5.2rem); } .hero-art { margin-right:0; } .hero-lede { font-size:1.04rem; } .hero-tag { font-size:.68rem; } }
@media(min-width:681px) and (max-width:1080px) { .review-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .review-card:last-child { grid-column:1/-1; } }
@media(min-width:681px) and (max-width:850px) { .work-grid-small { grid-template-columns:repeat(2,minmax(0,1fr)); } .work-grid-small > .work-card { grid-column:span 1; } .work-grid-small > .work-card:last-child { grid-column:1/-1; } }
@media(max-width:680px) {
  .wrap { width:min(100% - 36px,1200px); }
  .topline { font-size:.65rem; letter-spacing:.05em; } .topline .wrap { padding:7px 0; } .topline span:last-child { display:none; }
  .header-inner { min-height:70px; } .brand-name { font-size:1.5rem; } .brand-name small { font-size:.57rem; }
  .hero-inner { display:flex; flex-direction:column; align-items:stretch; min-height:0; gap:0; }
  .hero-content { padding:70px 0 22px; } .hero h1 { font-size:clamp(2.65rem,10.5vw,4.3rem); line-height:.98; }
  .hero-lede { max-width:530px; font-size:1rem; line-height:1.55; }
  .hero-tag { margin-top:34px; line-height:1.45; }
  .hero-art { height:400px; margin:0; overflow:hidden; } .hero-art::before { width:300px; } .hero-art img { width:min(100%,350px); max-height:390px; }
  .band-track span { padding-block:15px; font-size:.96rem; }
  .services,.work,.reviews,.story,.equipment,.about,.service-area,.faq,.contact { padding:73px 0; }
  .section-intro { display:block; margin-bottom:32px; } .section-intro > p { max-width:500px; margin-top:18px; }
  h2 { font-size:clamp(3rem,11vw,4.5rem); }
  .service-grid { grid-template-columns:1fr; } .service-card { min-height:0; padding:29px; border-right:0; border-bottom:1px solid #555e61; } .service-card:last-child { border-bottom:0; } .service-mark { margin:17px 0 12px; font-size:2.8rem; } .service-card h3 { font-size:1.8rem; }
  .materials { grid-template-columns:1fr; gap:14px; padding:22px; }
  .commercial-note { grid-template-columns:1fr; gap:10px; padding:22px; }
  .work-group + .work-group { margin-top:55px; } .work-group-heading { gap:12px; } .work-group-heading h3 { font-size:clamp(1.6rem,7vw,2rem); }
  .work-grid,.work-grid-small { grid-template-columns:1fr; gap:18px; } .work-grid-small > .work-card,.work-grid-small > .work-card:nth-last-child(-n+2) { grid-column:auto; } .work-feature { grid-column:auto; display:block; } .work-feature img { height:420px; } .work-feature figcaption { border-left:0; border-top:3px solid var(--orange); padding:25px 29px 29px; } .work-feature h3 { font-size:2.8rem; }
  .paired-photo img { height:300px; } .field-feature figcaption { border-top-color:var(--blue); }
  .work-card img,.work-grid-small .work-card img { height:min(88vw,390px); } .paired-photo img { height:300px; }
  .trailer-project { margin-top:18px; }
  .trailer-project-photos { grid-template-columns:1fr; }
  .trailer-project-photos img:first-child { height:auto; aspect-ratio:4/3; }
  .trailer-project-photos img:last-child { height:auto; aspect-ratio:3/4; }
  .story-heading,.equipment-grid,.about-grid,.contact-box,.faq-grid { grid-template-columns:1fr; gap:30px; }
  .story-heading { margin-bottom:30px; } .story h2 { font-size:clamp(3rem,10vw,4.3rem); } .story-lede { max-width:590px; }
  .story-facts { grid-template-columns:1fr; margin-bottom:24px; } .fact,.fact:first-child { flex-direction:row; align-items:center; gap:20px; padding:15px 0; border-right:0; border-bottom:1px solid var(--line); } .fact:last-child { border-bottom:0; } .fact strong { min-width:130px; font-size:2.25rem; }
  .story-gallery { grid-template-columns:1fr; gap:15px; max-width:440px; margin-inline:auto; } .story-weld-photo,.story-photo { padding:4px; } .story-weld-photo img,.story-photo img { height:290px; }
  .about-grid > div:last-child { padding-left:20px; }
  .about-photo img { max-height:520px; }
  .equipment-plasma { grid-template-columns:1fr; margin:29px 9px 0 0; }
  .equipment-plasma img { height:min(92vw,420px); }
  .equipment-plasma figcaption { padding:25px 27px 28px; }
  .equipment-plasma h3 { font-size:2.4rem; margin:9px 0; }
  .review-head,.area-heading { display:block; } .review-score { margin-top:25px; } .review-grid { grid-template-columns:1fr; } .review-card { min-height:0; } .review-note { display:block; } .review-note a { display:block; margin-top:8px; }
  .review-live { align-items:stretch; flex-direction:column; } .review-live .button { align-self:flex-start; }
  .area-heading > p { margin-top:18px; } .map-header,.map-footer { flex-wrap:wrap; gap:9px; padding-inline:18px; }
  .map-swipe-hint { display:block; margin:0; padding:9px 18px; color:#a8cbd2; font-size:.76rem; letter-spacing:.03em; }
  .ambient-ember { width:2px; height:8px; box-shadow:0 0 4px rgba(235,83,58,.5); animation-name:ember-rise-mobile; }
  .faq-grid { gap:30px; } .faq-grid h2 { margin-bottom:18px; }
  .contact-box { gap:0; box-shadow:9px 9px 0 var(--orange); } .contact-copy { padding:39px 29px 25px; } .contact-details { padding:32px 29px 40px; } .contact-actions .button { width:100%; }
  .site-footer .wrap { align-items:start; flex-direction:column; gap:12px; }
  .site-footer .footer-credit { display:block; margin-top:21px; text-align:left; }
}
@media(max-width:500px) { .quote-dialog form { padding:22px 18px; } .quote-top h2 { font-size:2rem; } .quote-options { gap:8px; } .quote-options span { padding:10px; font-size:.86rem; } .quote-fields { grid-template-columns:1fr; } .quote-fields .quote-field:first-child { grid-column:auto; } .quote-actions { gap:9px; } .quote-actions > div { gap:5px; } .quote-actions .button { padding:12px 14px; font-size:.78rem; } .quote-call strong { font-size:.87rem; } }
@media(max-width:380px) { .brand-name { font-size:1.35rem; } .brand-name small { font-size:.5rem; } .hero-actions .button { width:100%; } .hero h1 { font-size:2.55rem; } .quote-actions { flex-wrap:wrap; } .quote-actions > div { margin-left:auto; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .button { transition:none; } .spark-field { display:none; } .ambient-embers { display:none; } .band-track { animation:none; } }
