/*
Theme Name: R.L. McCoy
Theme URI: https://www.rlmccoy.net/
Author: R.L. McCoy Inc.
Description: Modern custom theme for R.L. McCoy bridge construction and concrete pumping.
Version: 1.4.2
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: rlmccoy
*/

:root { --ink:#111417; --paper:#f2efe8; --orange:#ef5a29; --muted:#787b7d; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial, Helvetica, sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }

.site-header { height:94px; padding:0 4vw; display:flex; align-items:center; justify-content:space-between; background:rgba(17,20,23,.96); color:#fff; position:absolute; inset:0 0 auto; z-index:10; border-bottom:1px solid rgba(255,255,255,.16); }
.brand { display:block; }
.brand img { width:210px; filter:drop-shadow(1px 0 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 1px 0 #fff) drop-shadow(0 -1px 0 #fff); }
nav { display:flex; gap:36px; font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.13em; }
nav a { padding:38px 0 34px; border-bottom:3px solid transparent; }
nav a:hover { border-color:var(--orange); }
.header-call { font-family:var(--font-geist-mono); font-size:16px; font-weight:700; padding-left:30px; border-left:1px solid #555; }
.header-call span { display:block; color:#aaa; font-family:Arial; font-size:9px; letter-spacing:.16em; text-transform:uppercase; margin-bottom:4px; }
.mobile-menu { display:none; }

.hero { min-height:850px; height:100vh; max-height:1000px; position:relative; display:flex; align-items:center; overflow:hidden; color:#fff; background:#171a1d; }
.hero-media { position:absolute; inset:0; background-position:center; background-size:cover; }
.hero-grid { position:absolute; inset:94px 0 0; opacity:.12; background-image:linear-gradient(rgba(255,255,255,.3) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.3) 1px,transparent 1px); background-size:80px 80px; }
.hero-content { position:relative; z-index:1; width:64%; padding:100px 4vw 80px; }
.eyebrow,.section-label { font-size:11px; text-transform:uppercase; letter-spacing:.22em; font-weight:800; display:flex; gap:12px; align-items:center; }
.eyebrow span { width:35px; height:3px; background:var(--orange); }
.hero h1 { font-size:clamp(64px,7.4vw,126px); line-height:.84; letter-spacing:-.065em; text-transform:uppercase; margin:36px 0 34px; max-width:1000px; font-family:Impact, "Arial Narrow", sans-serif; font-weight:500; }
.hero h1 em { color:var(--orange); font-style:normal; }
.hero-copy { max-width:580px; color:#d3d5d6; font-size:20px; line-height:1.55; }
.hero-actions { display:flex; align-items:center; gap:38px; margin-top:45px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:30px; min-width:260px; padding:20px 24px; font-size:11px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; transition:.2s; }
.primary { background:var(--orange); color:#fff; }
.primary:hover { background:#ff6a37; transform:translateY(-2px); }
.button b,.text-link span { font-size:17px; }
.text-link { font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; border-bottom:1px solid #777; padding:12px 0; }
.text-link span { margin-left:18px; color:var(--orange); }
.hero-foot { position:absolute; right:4vw; bottom:44px; z-index:2; display:flex; background:rgba(17,20,23,.85); backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.15); }
.hero-foot div { padding:20px 28px; min-width:150px; border-right:1px solid rgba(255,255,255,.15); }
.hero-foot div:last-child { border:0; }
.hero-foot b { display:block; font-size:26px; }
.hero-foot span { display:block; margin-top:4px; color:#aaa; text-transform:uppercase; font-size:9px; letter-spacing:.12em; }

.intro { padding:130px 5vw 70px; display:grid; grid-template-columns:25% 1fr; }
.section-label { color:var(--orange); }
.intro > div { display:flex; align-items:flex-end; justify-content:space-between; gap:60px; }
.intro h2,.fleet-content h2,.about-copy h2,.contact-section h2 { margin:0; font-family:Impact,"Arial Narrow",sans-serif; font-size:clamp(55px,6vw,100px); line-height:.9; letter-spacing:-.045em; text-transform:uppercase; font-weight:500; }
.intro h2 span,.fleet-content h2 span { color:#a2a19d; }
.intro > div p { width:420px; margin:0 0 5px; color:#5b5f61; font-size:17px; line-height:1.7; }

.service-grid { display:grid; grid-template-columns:repeat(3,1fr); padding:0 5vw 130px; }
.service-card { border:1px solid #d3d0c8; border-right:0; background:#f7f4ed; }
.service-card:last-child { border-right:1px solid #d3d0c8; }
.service-image { height:285px; position:relative; overflow:hidden; }
.service-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.7); transition:.5s; }
.service-card:hover .service-image img { transform:scale(1.04); filter:saturate(1); }
.service-image span { position:absolute; left:0; bottom:0; background:var(--orange); color:#fff; padding:10px 14px; font-size:9px; font-weight:900; letter-spacing:.14em; }
.service-body { padding:34px; min-height:330px; position:relative; }
.service-number { font-family:var(--font-geist-mono); color:var(--orange); font-size:12px; }
.service-body h3 { font-family:Impact,"Arial Narrow",sans-serif; font-weight:500; text-transform:uppercase; font-size:36px; margin:28px 0 18px; letter-spacing:-.02em; }
.service-body p { color:#626567; line-height:1.65; font-size:15px; }
.service-body a { position:absolute; bottom:28px; left:34px; right:34px; display:flex; justify-content:space-between; padding-top:15px; border-top:1px solid #cbc8c0; font-size:10px; text-transform:uppercase; letter-spacing:.12em; font-weight:900; }

.fleet-section { background:var(--ink); color:#fff; display:grid; grid-template-columns:52% 48%; min-height:800px; }
.fleet-image { position:relative; min-height:720px; overflow:hidden; }
.fleet-image img { width:100%; height:100%; object-fit:cover; }
.fleet-image:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent 60%,var(--ink)); }
.reach-mark { position:absolute; left:7%; bottom:7%; z-index:2; background:var(--orange); padding:20px 26px; }
.reach-mark b { font-family:Impact,sans-serif; display:block; font-size:52px; font-weight:500; line-height:1; }
.reach-mark span { font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.fleet-content { padding:100px 7vw 80px 6vw; }
.section-label.light { color:#aaa; }
.fleet-content h2 { margin:30px 0; font-size:clamp(58px,5.2vw,90px); }
.fleet-content > p:not(.section-label) { color:#a9abad; line-height:1.7; max-width:530px; }
.fleet-list { display:grid; grid-template-columns:1fr 1fr; margin:35px 0; border-top:1px solid #3c4042; }
.fleet-list div { padding:16px 0; border-bottom:1px solid #3c4042; }
.fleet-list div:nth-child(odd) { border-right:1px solid #3c4042; padding-right:20px; }
.fleet-list div:nth-child(even) { padding-left:20px; }
.fleet-list b { display:block; font-size:14px; }
.fleet-list span { display:block; color:#777c7f; font-size:10px; margin-top:4px; }
.light-button { background:#fff; color:#15181a; }
.light-button:hover { background:var(--orange); color:#fff; }

.equipment-overview { padding:130px 5vw; background:#f2efe8; }
.equipment-overview-heading { display:grid; grid-template-columns:25% 1fr; margin-bottom:58px; }
.equipment-overview-heading > div { display:flex; align-items:end; justify-content:space-between; gap:60px; }
.equipment-overview-heading h2 { margin:0; font-family:Impact,"Arial Narrow",sans-serif; font-size:clamp(58px,6vw,100px); line-height:.88; letter-spacing:-.045em; text-transform:uppercase; font-weight:500; }
.equipment-overview-heading h2 span { color:#9c9b96; }
.equipment-overview-heading > div > p { width:430px; margin:0 0 5px; color:#5b5f61; font-size:17px; line-height:1.7; }
.equipment-groups { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid #cbc7be; border-left:1px solid #cbc7be; }
.equipment-group { display:grid; grid-template-columns:42% 58%; min-height:430px; border-right:1px solid #cbc7be; border-bottom:1px solid #cbc7be; background:#f8f5ee; }
.equipment-group-image { position:relative; min-height:100%; overflow:hidden; background:#ddd8cf; }
.equipment-group-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.72); transition:.4s; }
.equipment-group:hover .equipment-group-image img { transform:scale(1.035); filter:saturate(1); }
.equipment-group-image span { position:absolute; left:0; top:0; padding:12px 15px; background:var(--orange); color:#fff; font-family:monospace; font-size:11px; font-weight:800; }
.equipment-group-body { padding:34px; display:flex; flex-direction:column; }
.equipment-group h3 { margin:0; font-family:Impact,"Arial Narrow",sans-serif; font-size:34px; line-height:1; text-transform:uppercase; letter-spacing:-.01em; font-weight:500; }
.equipment-group p { margin:18px 0; color:#65686a; font-size:14px; line-height:1.6; }
.equipment-group ul { list-style:none; columns:2; column-gap:22px; margin:0 0 25px; padding:18px 0 0; border-top:1px solid #d3cfc6; }
.equipment-group li { break-inside:avoid; padding:5px 0; font-size:11px; font-weight:700; }
.equipment-group li:before { content:"—"; margin-right:8px; color:var(--orange); }
.equipment-group a { margin-top:auto; display:flex; justify-content:space-between; padding-top:14px; border-top:1px solid #d3cfc6; font-size:9px; text-transform:uppercase; letter-spacing:.12em; font-weight:900; }

.pump-catalog { padding:130px 5vw; background:#e8e4da; }
.pump-catalog-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:8vw; align-items:end; margin-bottom:55px; }
.pump-catalog-heading h2 { margin:28px 0 0; font-family:Impact,"Arial Narrow",sans-serif; font-size:clamp(58px,6vw,100px); line-height:.88; letter-spacing:-.045em; text-transform:uppercase; font-weight:500; }
.pump-catalog-heading h2 span { color:#9c9b96; }
.pump-catalog-heading > div:last-child p { color:#5b5f61; line-height:1.7; font-size:17px; max-width:520px; }
.pump-catalog-heading a { display:inline-flex; gap:35px; align-items:center; margin-top:16px; padding-bottom:10px; border-bottom:2px solid var(--ink); font-size:10px; text-transform:uppercase; letter-spacing:.12em; font-weight:900; }
.pump-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid #bbb7ae; border-left:1px solid #bbb7ae; }
.pump-grid article { padding:24px; border-right:1px solid #bbb7ae; border-bottom:1px solid #bbb7ae; background:rgba(255,255,255,.32); transition:.2s; display:flex; flex-direction:column; }
.pump-grid article:hover { background:var(--ink); color:#fff; transform:translateY(-3px); }
.pump-diagrams { height:300px; margin:-8px -8px 24px; background:#fff; overflow:hidden; }
.pump-diagrams a { display:block; width:100%; height:100%; }
.pump-diagrams img { width:100%; height:100%; object-fit:contain; padding:12px; }
.pump-diagrams-two { display:grid; grid-template-rows:2fr 1fr; }
.pump-diagrams-two a { min-height:0; }
.pump-title { display:grid; grid-template-columns:40px 1fr; gap:8px; align-items:start; }
.pump-title > span { color:var(--orange); font-family:var(--font-geist-mono); font-size:10px; margin-top:7px; }
.pump-grid h3 { margin:0; font-family:Impact,"Arial Narrow",sans-serif; text-transform:uppercase; font-size:27px; letter-spacing:.01em; font-weight:500; }
.pump-title em { color:#777b7d; display:block; font-size:9px; font-style:normal; text-transform:uppercase; letter-spacing:.12em; margin-top:5px; }
.pump-grid dl { display:grid; grid-template-columns:repeat(3,1fr); margin:35px 0 0 48px; border-top:1px solid currentColor; }
.pump-grid dl div { display:block; padding:14px 10px 0 0; border-right:1px solid #bbb7ae; }
.pump-grid dl div + div { padding-left:14px; }
.pump-grid dl div:last-child { border:0; }
.pump-grid dt { color:#777b7d; font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.pump-grid dd { margin:7px 0 0; font-family:var(--font-geist-mono); font-size:15px; font-weight:700; }
.pump-grid article:hover em { color:#b6b9ba; }
.pump-grid article:hover dt { color:#b6b9ba; }
.open-diagram { margin:20px 0 0 48px; padding-top:12px; border-top:1px solid #bbb7ae; font-size:8px; text-transform:uppercase; letter-spacing:.12em; font-weight:900; }
.placing-row { display:grid; grid-template-columns:1.2fr repeat(4,1fr); gap:0; background:var(--orange); }
.placing-row > * { margin:0; padding:22px 24px; border-right:1px solid rgba(17,20,23,.3); }
.placing-row p { font-size:9px; text-transform:uppercase; letter-spacing:.13em; font-weight:900; }
.placing-row b,.placing-row span { display:block; }
.placing-row b { font-size:12px; }
.placing-row span { font-size:9px; margin-top:4px; }

.about-section { padding:140px 5vw; display:grid; grid-template-columns:1fr 1fr; gap:9vw; align-items:center; }
.about-copy h2 { margin:34px 0; font-size:clamp(58px,5.5vw,94px); }
.about-copy h2 em { color:var(--orange); font-style:normal; }
.about-copy > p:not(.section-label) { max-width:560px; color:#5c5f61; font-size:17px; line-height:1.75; }
blockquote { border-left:3px solid var(--orange); margin:40px 0 0; padding:8px 0 8px 24px; font-size:19px; font-weight:700; }
.about-image { position:relative; }
.about-image img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.about-image div { position:absolute; left:-40px; bottom:40px; background:#fff; padding:24px 34px; box-shadow:0 15px 40px rgba(0,0,0,.15); text-transform:uppercase; }
.about-image b,.about-image span { display:block; }
.about-image b { font-family:Impact,sans-serif; font-size:27px; font-weight:500; }
.about-image span { color:var(--orange); font-size:10px; letter-spacing:.16em; margin-top:4px; }
.home-gallery { padding:110px 5vw; background:#dedad0; display:grid; grid-template-columns:30% 1fr; gap:5vw; }
.home-gallery h2,.quote-preview h2 { font-family:Impact,"Arial Narrow",sans-serif; font-size:clamp(50px,5vw,78px); line-height:.9; text-transform:uppercase; font-weight:500; }
.home-gallery h2 span { color:#92918d; }
.home-gallery-grid { display:grid; grid-template-columns:1.3fr 1fr; grid-template-rows:1fr 1fr; gap:12px; }
.home-gallery figure { margin:0; position:relative; min-height:220px; overflow:hidden; }
.home-gallery figure:first-child { grid-row:1/3; }
.home-gallery img { width:100%; height:100%; object-fit:cover; }
.home-gallery figcaption { position:absolute; inset:auto 0 0; padding:35px 16px 15px; color:#fff; background:linear-gradient(transparent,rgba(0,0,0,.85)); font-size:11px; font-weight:800; text-transform:uppercase; }
.quote-preview { padding:100px 5vw; display:grid; grid-template-columns:.75fr 1.25fr; gap:8vw; }
.quote-preview>div>p:last-child { color:#5b5f61; line-height:1.7; }
.quote-preview form { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:34px; background:#fff; border:1px solid #d4d0c7; }
.quote-preview label { display:grid; gap:8px; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.quote-preview input,.quote-preview textarea,.quote-preview select { width:100%; padding:14px; border:1px solid #aaa69d; background:#fff; font:16px Arial,sans-serif; }
.quote-preview .full { grid-column:1/-1; }
.quote-preview button { border:0; padding:17px; background:var(--orange); color:#fff; font-weight:900; text-transform:uppercase; letter-spacing:.1em; cursor:pointer; }
.quote-preview button:hover { background:#d94a1b; }
.form-trap { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.form-message { margin:0; padding:14px 16px; border-left:4px solid; font-size:14px; font-weight:700; text-transform:none; letter-spacing:0; }
.form-message.success { background:#e7f5ea; border-color:#26863b; color:#195b29; }
.form-message.error { background:#fff0eb; border-color:#c63d20; color:#8a2815; }
.quote-page-hero { min-height:650px; position:relative; display:flex; align-items:center; padding:170px 5vw 80px; overflow:hidden; background:#111417; color:#fff; }
.quote-page-media { position:absolute; inset:0; background:linear-gradient(90deg,rgba(13,15,17,.95),rgba(13,15,17,.58) 55%,rgba(13,15,17,.15)),url("assets/gallery/31m-bridge-pour-rotated.jpg") center/cover; }
.quote-page-hero>div:last-child { position:relative; z-index:1; max-width:900px; }
.quote-page-hero h1 { margin:35px 0 25px; font:500 clamp(66px,8vw,125px)/.84 Impact,"Arial Narrow",sans-serif; letter-spacing:-.055em; text-transform:uppercase; }
.quote-page-hero h1 em { color:var(--orange); font-style:normal; }
.quote-page-hero>div>p:last-child { max-width:620px; color:#d1d3d4; font-size:18px; line-height:1.65; }
.quote-page-layout { padding:100px 7vw; display:grid; grid-template-columns:.72fr 1.28fr; gap:8vw; align-items:start; }
.quote-page-layout aside { position:sticky; top:30px; }
.quote-page-layout aside h2 { margin:28px 0; font:500 clamp(48px,5vw,76px)/.9 Impact,"Arial Narrow",sans-serif; text-transform:uppercase; }
.quote-page-layout aside ul { list-style:none; margin:30px 0; padding:0; border-top:1px solid #bbb7ae; }
.quote-page-layout aside li { padding:16px 0 16px 25px; border-bottom:1px solid #bbb7ae; position:relative; color:#4f5355; line-height:1.45; }
.quote-page-layout aside li:before { content:"—"; position:absolute; left:0; color:var(--orange); font-weight:900; }
.quote-page-layout aside>p:last-child { color:#5b5f61; line-height:1.7; }
.quote-page-layout aside>p:last-child a { font-weight:800; border-bottom:1px solid; }
.quote-page-layout form { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:40px; background:#fff; border:1px solid #d4d0c7; }
.quote-page-layout form label { display:grid; gap:8px; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.quote-page-layout input,.quote-page-layout textarea,.quote-page-layout select { width:100%; padding:14px; border:1px solid #aaa69d; background:#fff; font:16px Arial,sans-serif; }
.quote-page-layout input:focus,.quote-page-layout textarea:focus,.quote-page-layout select:focus { outline:3px solid rgba(239,90,41,.25); border-color:var(--orange); }
.quote-page-layout .full { grid-column:1/-1; }
.quote-page-layout button { border:0; padding:18px; background:var(--orange); color:#fff; font-weight:900; text-transform:uppercase; letter-spacing:.1em; cursor:pointer; }
.form-privacy { margin:0; color:#777; font-size:11px; text-align:center; }
.recognition-section { padding:110px 5vw; }
.recognition-heading { display:grid; grid-template-columns:25% 1fr; margin-bottom:50px; }
.recognition-heading>div { display:flex; align-items:end; justify-content:space-between; gap:7vw; }
.recognition-heading h2 { margin:0; font:500 clamp(58px,6vw,98px)/.88 Impact,"Arial Narrow",sans-serif; text-transform:uppercase; }
.recognition-heading h2 span { color:#9c9b96; }
.recognition-heading>div p { width:470px; color:#5b5f61; line-height:1.7; }
.recognition-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #bbb7ae; border-left:1px solid #bbb7ae; }
.recognition-grid article { padding:30px; min-height:265px; border-right:1px solid #bbb7ae; border-bottom:1px solid #bbb7ae; display:flex; flex-direction:column; background:#f8f5ee; }
.recognition-grid .recognition-feature { grid-row:span 2; min-height:530px; background:#111417; color:#fff; }
.recognition-grid span { color:var(--orange); font-size:9px; text-transform:uppercase; letter-spacing:.14em; font-weight:900; }
.recognition-grid h3 { margin:25px 0 15px; font:500 32px/1 Impact,"Arial Narrow",sans-serif; text-transform:uppercase; }
.recognition-grid p { color:#6b6e70; line-height:1.65; }
.recognition-feature p { color:#afb2b3; }
.recognition-feature div { margin-top:auto; border-top:1px solid #444; padding-top:25px; }
.recognition-feature b,.recognition-feature small { display:block; }
.recognition-feature b { color:var(--orange); font:500 58px/1 Impact,sans-serif; }
.source-link,.social-link { display:inline-block; margin-top:25px; padding:10px 0; border-bottom:1px solid currentColor; font-size:9px; text-transform:uppercase; letter-spacing:.12em; font-weight:900; }

.contact-section { padding:110px 5vw; background:var(--orange); display:grid; grid-template-columns:1fr 1fr; gap:8vw; }
.eyebrow.dark span { background:#111; }
.contact-section h2 { margin-top:28px; font-size:clamp(65px,7vw,112px); }
.contact-options { border-top:2px solid rgba(17,20,23,.65); }
.contact-options a { display:grid; grid-template-columns:135px 1fr auto; align-items:center; gap:15px; border-bottom:1px solid rgba(17,20,23,.45); padding:23px 0; }
.contact-options span { text-transform:uppercase; font-size:9px; letter-spacing:.13em; }
.contact-options b { font-size:18px; }
.contact-options em { font-style:normal; font-size:9px; text-transform:uppercase; letter-spacing:.12em; font-weight:900; }

footer { background:#0d0f11; color:#fff; padding:70px 5vw 28px; display:grid; grid-template-columns:2fr 1fr 1fr; gap:7vw; }
footer img { width:230px; filter:drop-shadow(1px 0 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 1px 0 #fff) drop-shadow(0 -1px 0 #fff); }
footer b { font-size:11px; text-transform:uppercase; letter-spacing:.13em; }
footer p { color:#8c9092; line-height:1.7; font-size:13px; }
.footer-brand p { max-width:380px; }
.footer-bottom { grid-column:1/-1; border-top:1px solid #303335; padding-top:24px; display:flex; justify-content:space-between; color:#6f7375; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }

@media (max-width: 900px) {
  .site-header { height:78px; padding:0 22px; }
  .brand img { width:170px; }
  nav { display:none; }
  .header-call { font-size:13px; padding-left:16px; }
  .mobile-menu { display:block; margin-left:12px; }
  .mobile-menu summary { list-style:none; width:42px; height:42px; display:grid; align-content:center; gap:5px; cursor:pointer; padding:9px; border:1px solid #666; }
  .mobile-menu summary::-webkit-details-marker { display:none; }
  .mobile-menu summary span { height:2px; background:#fff; display:block; }
  .mobile-menu nav { position:absolute; left:0; right:0; top:78px; background:#111417; padding:15px 24px 28px; display:grid; }
  .mobile-menu nav a { padding:15px 0; border-bottom:1px solid #373a3c; font-size:12px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }
  .hero { min-height:760px; max-height:none; height:100svh; }
  .hero-grid { inset:78px 0 0; }
  .hero-content { width:100%; padding:80px 24px 150px; }
  .hero h1 { font-size:clamp(56px,18vw,94px); }
  .hero-copy { font-size:17px; max-width:500px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:14px; }
  .hero-foot { left:24px; right:24px; bottom:18px; }
  .hero-foot div { flex:1; min-width:0; padding:15px 10px; }
  .hero-foot b { font-size:20px; }
  .hero-foot span { font-size:7px; }
  .intro { padding:90px 24px 45px; display:block; }
  .intro > div { display:block; margin-top:30px; }
  .intro > div p { width:auto; margin-top:30px; }
  .service-grid { grid-template-columns:1fr; padding:0 24px 90px; gap:18px; }
  .service-card { border-right:1px solid #d3d0c8; }
  .fleet-section { grid-template-columns:1fr; }
  .fleet-image { min-height:480px; }
  .fleet-image:after { background:linear-gradient(0deg,var(--ink),transparent 45%); }
  .fleet-content { padding:70px 24px; }
  .equipment-overview { padding:90px 24px; }
  .equipment-overview-heading { grid-template-columns:1fr; gap:28px; }
  .equipment-overview-heading > div { display:block; }
  .equipment-overview-heading > div > p { width:auto; margin-top:28px; }
  .equipment-groups { grid-template-columns:1fr; }
  .pump-catalog { padding:90px 24px; }
  .pump-catalog-heading { grid-template-columns:1fr; gap:25px; }
  .pump-grid { grid-template-columns:1fr; }
  .placing-row { grid-template-columns:1fr; }
  .placing-row > * { border-right:0; border-bottom:1px solid rgba(17,20,23,.3); }
  .about-section { grid-template-columns:1fr; padding:90px 24px; }
  .about-image div { left:-10px; }
  .contact-section { grid-template-columns:1fr; padding:80px 24px; }
  .contact-options a { grid-template-columns:100px 1fr; }
  .contact-options em { display:none; }
  footer { grid-template-columns:1fr 1fr; padding:60px 24px 24px; }
  .footer-brand { grid-column:1/-1; }
  .home-gallery,.quote-preview { grid-template-columns:1fr; padding:80px 24px; }
  .recognition-section { padding:80px 24px; }
  .recognition-heading { grid-template-columns:1fr; gap:28px; }
  .recognition-heading>div { display:block; }
  .recognition-heading>div p { width:auto; }
  .recognition-grid { grid-template-columns:1fr 1fr; }
  .quote-page-hero { min-height:560px; padding:145px 24px 70px; }
  .quote-page-layout { grid-template-columns:1fr; padding:75px 24px; }
  .quote-page-layout aside { position:static; }
}

@media (max-width: 520px) {
  .header-call span { display:none; }
  .header-call { display:none; }
  .hero-content { padding-top:110px; }
  .hero h1 { letter-spacing:-.045em; }
  .fleet-list { grid-template-columns:1fr; }
  .fleet-list div:nth-child(odd) { border-right:0; padding-right:0; }
  .fleet-list div:nth-child(even) { padding-left:0; }
  .equipment-group { grid-template-columns:1fr; }
  .equipment-group-image { min-height:260px; }
  .equipment-group ul { columns:1; }
  .pump-grid article { min-height:180px; }
  .pump-diagrams { height:250px; }
  .pump-grid dl { margin-left:0; }
  .open-diagram { margin-left:0; }
  .contact-options a { grid-template-columns:1fr; gap:5px; }
  footer { grid-template-columns:1fr; }
  .footer-brand,.footer-bottom { grid-column:1; }
  .home-gallery-grid { display:block; }
  .home-gallery figure { min-height:260px; margin-bottom:12px; }
  .quote-preview form { grid-template-columns:1fr; padding:24px; }
  .quote-preview .full { grid-column:1; }
  .recognition-grid { grid-template-columns:1fr; }
  .quote-page-layout form { grid-template-columns:1fr; padding:24px; }
  .quote-page-layout .full { grid-column:1; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  * { transition:none !important; }
}

.admin-bar .site-header { top:32px; }
@media (max-width:782px) {
  .admin-bar .site-header { top:46px; }
}
