/* Copper & Iron Plumbing. Layout: iron-dark bands for hero and calls to action, galvanized light bands for service detail, real job photos as the proof. */
:root{
  --iron:#141516;       /* darkest ground */
  --iron-2:#1d1f21;     /* raised dark band */
  --steel:#33373b;      /* dark hairlines */
  --galv:#eceeee;       /* light band, galvanized steel */
  --white:#fbfbfa;
  --ink:#17191b;        /* text on light */
  --muted:#5b6166;      /* secondary text on light */
  --mist:#a9adb0;       /* secondary text on dark */
  --brass:#dcae64;      /* logo brass */
  --copper:#c4733c;     /* copper accent */
  --copper-dk:#9a5528;
  --line:#d4d7d8;
  --display:"Big Shoulders Display","Arial Narrow","Roboto Condensed",Impact,sans-serif;
  --body:"Source Sans 3","Segoe UI",system-ui,-apple-system,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Consolas,monospace;
  --gl:max(20px,env(safe-area-inset-left,0px));
  --gr:max(20px,env(safe-area-inset-right,0px));
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--ink);font:400 1.0625rem/1.65 var(--body);-webkit-font-smoothing:antialiased}
img,video{max-width:100%;display:block}
a{color:var(--copper-dk);text-underline-offset:3px}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.wrap{max-width:1180px;margin:0 auto;padding-left:var(--gl);padding-right:var(--gr)}
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:1.02;text-transform:uppercase;letter-spacing:.01em;text-wrap:balance;margin:0}
.eyebrow{font:600 .78rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--copper);margin:0}
.dark{background:var(--iron);color:#e9e7e3}
.dark .eyebrow{color:var(--brass)}
.dark a{color:var(--brass)}

/* top bar + header */
.topbar{background:var(--brass);color:var(--iron);font:600 .82rem/1 var(--mono);letter-spacing:.04em}
.topbar .wrap{display:flex;justify-content:space-between;gap:12px;padding-block:9px;flex-wrap:wrap}
.topbar a{color:var(--iron);text-decoration:none}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(20,21,22,.96);border-bottom:1px solid var(--steel)}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--iron)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:12px}
.brand img{width:150px;height:auto}
.nav{display:flex;align-items:center;gap:26px}
.nav a{color:#d8d6d2;text-decoration:none;font:700 .95rem/1 var(--display);letter-spacing:.08em;text-transform:uppercase;padding-block:6px;border-bottom:2px solid transparent}
.nav a:hover,.nav a[aria-current="page"]{color:var(--brass);border-bottom-color:var(--brass)}
.nav .call{border:0;background:var(--copper);color:#fff;padding:12px 16px;font-family:var(--mono);font-size:.85rem;letter-spacing:.02em;text-transform:none}
.nav .call:hover{background:var(--brass);color:var(--iron)}
.menu-btn{display:none;background:none;border:1px solid var(--steel);color:#fff;font:700 .9rem/1 var(--display);letter-spacing:.1em;text-transform:uppercase;padding:10px 14px;cursor:pointer}

/* buttons */
.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.btn{display:inline-flex;align-items:center;gap:10px;padding:15px 24px;background:var(--copper);color:#fff !important;text-decoration:none;font:800 1.05rem/1 var(--display);letter-spacing:.1em;text-transform:uppercase;border:2px solid var(--copper);transition:background .15s,border-color .15s}
.btn:hover{background:var(--copper-dk);border-color:var(--copper-dk)}
.btn.line{background:transparent;color:inherit !important;border-color:currentColor}
.btn.line:hover{background:rgba(220,174,100,.12)}
.hero .btn.line{color:#fff !important}
.btn .num{font-family:var(--mono);font-weight:600;letter-spacing:0;text-transform:none}

/* hero */
.hero{position:relative;overflow:hidden;background:var(--iron)}
.hero-media{position:absolute;inset:0}
.hero-media img,.hero-media video{width:100%;height:100%;object-fit:cover;opacity:.42}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--iron) 0%,rgba(20,21,22,.82) 45%,rgba(20,21,22,.2) 100%)}
.hero .wrap{position:relative;padding-block:96px 88px}
.hero h1{font-size:clamp(2.7rem,6.6vw,5.4rem);color:#fff;max-width:11em;margin-top:18px}
.hero h1 span{color:var(--brass)}
.hero p.lede{font-size:1.2rem;max-width:34em;margin:22px 0 0;color:#dad7d2}
.creds{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px;padding:0;list-style:none}
.creds li{font:600 .8rem/1 var(--mono);letter-spacing:.04em;padding:9px 12px;border:1px solid rgba(220,174,100,.45);color:var(--brass)}
.pagehero .wrap{padding-block:80px 72px}
.pagehero h1{font-size:clamp(2.6rem,6vw,4.6rem)}

/* sections */
.band{padding-block:96px}
.band.galv{background:var(--galv)}
.band.dark{background:var(--iron)}
.band.dark2{background:var(--iron-2);color:#e9e7e3}
.head{display:grid;gap:14px;max-width:44rem;margin-bottom:52px}
.head h2{font-size:clamp(2.1rem,4.4vw,3.4rem)}
.head p{margin:0;color:var(--muted);font-size:1.1rem}
.dark .head p,.dark2 .head p{color:var(--mist)}

/* services grid */
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--steel);border:1px solid var(--steel);list-style:none;margin:0;padding:0}
.services li{background:var(--iron);padding:34px 30px 36px;display:grid;gap:14px;align-content:start;min-width:0}
.services img{width:64px;height:64px}
.services h3{font-size:1.55rem;color:var(--brass)}
.services p{margin:0;color:#c9c7c2}

/* split feature */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split>*{min-width:0}
.split h2{font-size:clamp(2rem,4vw,3rem);margin:14px 0 20px}
.split p{margin:0 0 1em;max-width:36em}
.split>figure{margin:0;position:relative}
.split>figure img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover}
.split>figure::before{content:"";position:absolute;inset:-14px 14px 14px -14px;border:2px solid var(--copper);z-index:-1}

/* call band */
.callband{background:var(--copper);color:#fff}
.callband .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;padding-block:44px}
.callband h2{font-size:clamp(1.8rem,3.6vw,2.6rem)}
.callband a.big{font:600 clamp(1.6rem,3.6vw,2.4rem)/1 var(--mono);color:#fff;text-decoration:none;border-bottom:2px solid rgba(255,255,255,.5);padding-bottom:4px}
.callband a.big:hover{border-color:#fff}

/* reviews */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;list-style:none;margin:0;padding:0}
.reviews li{background:var(--white);border:1px solid var(--line);padding:30px 28px;display:grid;gap:16px;align-content:start;min-width:0}
.stars{color:var(--copper);letter-spacing:.2em;font-size:1.05rem}
.reviews blockquote{margin:0;font-size:1.02rem}
.reviews cite{font:700 1.05rem/1 var(--display);letter-spacing:.08em;text-transform:uppercase;font-style:normal}

/* lists */
.checks{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.checks li{display:flex;gap:12px;align-items:baseline}
.checks li::before{content:"";flex:0 0 10px;height:10px;background:var(--copper);transform:rotate(45deg) translateY(-2px)}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.twocol>*{min-width:0}
.twocol h3{font-size:1.7rem;margin-bottom:20px}

/* project stories */
.project{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:start;padding-block:56px;border-top:1px solid var(--line)}
.project:first-of-type{border-top:0;padding-top:0}
.project>*{min-width:0}
.project h3{font-size:clamp(1.8rem,3vw,2.4rem);margin:12px 0 16px}
.project p{margin:0;max-width:34em}
.strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0;padding:0;list-style:none}
.strip figure{margin:0}
.strip img{width:100%;aspect-ratio:3/4;object-fit:cover}
.strip.wide img{aspect-ratio:4/3}
.strip figcaption{font:600 .72rem/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:8px}

/* service rows on residential */
.rows{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:2px solid var(--ink)}
.rows li{padding:30px 32px 30px 0;border-bottom:1px solid var(--line);display:grid;gap:10px;align-content:start;min-width:0}
.rows li:nth-child(even){padding-left:32px;padding-right:0;border-left:1px solid var(--line)}
.rows h3{font-size:1.5rem}
.rows p{margin:0;color:var(--muted)}
.compare{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.compare figure{margin:0}
.compare img{width:100%;aspect-ratio:2/3;object-fit:cover}
.compare figcaption{font:600 .75rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-top:10px;color:var(--muted)}

/* contact */
.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:56px}
.contact-grid>*{min-width:0}
form{display:grid;gap:18px}
label{display:grid;gap:6px;font:700 .95rem/1 var(--display);letter-spacing:.08em;text-transform:uppercase}
input,textarea,select{font:inherit;font-family:var(--body);text-transform:none;letter-spacing:0;font-weight:400;padding:14px 14px;border:1px solid #b9bec1;background:#fff;color:var(--ink);border-radius:0;width:100%}
input:focus,textarea:focus,select:focus{outline:2px solid var(--copper);outline-offset:0;border-color:var(--copper)}
textarea{min-height:150px;resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.hp{position:absolute;left:-9999px}
.notice{padding:16px 18px;border-left:4px solid var(--copper);background:var(--galv);font-weight:600}
.facts{display:grid;gap:0;margin:0;border-top:2px solid var(--ink)}
.facts div{padding:18px 0;border-bottom:1px solid var(--line)}
.facts dt{font:600 .75rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.facts dd{margin:8px 0 0;font:800 1.5rem/1.1 var(--display);letter-spacing:.03em}
.facts dd a{color:var(--ink);text-decoration:none}
.faq{display:grid;gap:0;border-top:2px solid var(--ink);max-width:52rem}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:22px 40px 22px 0;position:relative;font:800 1.3rem/1.2 var(--display);letter-spacing:.03em;text-transform:uppercase}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:18px;font:600 1.6rem/1 var(--mono);color:var(--copper)}
.faq details[open] summary::after{content:"\2013"}
.faq p{margin:0 0 24px;max-width:44em;color:var(--muted)}

/* legal */
.legal .wrap{max-width:820px}
.legal h2{font-size:1.6rem;margin:36px 0 10px}

/* footer */
.foot{background:var(--iron);color:#c9c7c2;padding-block:64px 28px;border-top:4px solid var(--brass)}
.foot .grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;padding-bottom:40px;border-bottom:1px solid var(--steel)}
.foot .grid>*{min-width:0}
.foot img{width:170px;height:auto}
.foot h4{font:800 1.1rem/1 var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--brass);margin:0 0 14px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot a{color:#e3e1dc;text-decoration:none}
.foot a:hover{color:var(--brass)}
.foot .mono{font-family:var(--mono);font-size:.9rem}
.foot .base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:22px;font-size:.85rem;color:#8e9296}

/* mobile call bar */
.callbar{display:none}

@media (max-width:900px){
  .services,.reviews{grid-template-columns:1fr 1fr}
  .split,.project,.contact-grid,.twocol{grid-template-columns:1fr;gap:36px}
  .foot .grid{grid-template-columns:1fr 1fr}
  .menu-btn{display:block}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--iron);flex-direction:column;align-items:stretch;gap:0;padding:8px var(--gr) 16px var(--gl);border-bottom:1px solid var(--steel)}
  .nav.open{display:flex}
  .nav a{padding:16px 0;border-bottom:1px solid var(--steel)}
  .nav .call{margin-top:12px;text-align:center}
  .top .wrap{position:relative}
}
@media (max-width:640px){
  .band{padding-block:72px}
  .hero .wrap{padding-block:64px 60px}
  .services,.reviews,.rows,.row2{grid-template-columns:1fr}
  .rows li,.rows li:nth-child(even){padding:26px 0;border-left:0}
  .foot .grid{grid-template-columns:1fr}
  .topbar .area{display:none}
  .callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:25;gap:1px;background:var(--steel);padding-bottom:env(safe-area-inset-bottom,0px)}
  .callbar a{flex:1;text-align:center;padding:16px 8px;background:var(--copper);color:#fff;text-decoration:none;font:800 1rem/1 var(--display);letter-spacing:.1em;text-transform:uppercase}
  .callbar a+a{background:var(--iron)}
  body{padding-bottom:56px}
  .split>figure::before{inset:-10px 10px 10px -10px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
