/*
Theme Name: DGCI Underground
Description: An accessible, responsive website for DG Construction Inc. and its underground utility services.
Version: 1.2.0
Text Domain: dgci-underground
Requires PHP: 7.4
*/
:root{--green:#08751d;--green-dark:#075817;--ink:#181b1b;--muted:#4b5556;--line:#cbd2ce;--paper:#fff;--soft:#f2f5f3;--focus:#005fcc;--max:1328px}
*{box-sizing:border-box}html{font-size:100%;scroll-padding-top:1rem}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:1.125rem;line-height:1.6;-webkit-text-size-adjust:100%}img{max-width:100%;height:auto;display:block}a{color:var(--green-dark);text-decoration-thickness:2px;text-underline-offset:5px}a:hover{text-decoration-thickness:3px}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:5px;box-shadow:0 0 0 2px white}h1,h2,h3{line-height:1.12;letter-spacing:-.035em;margin:0 0 1.25rem;font-weight:750}h1{font-size:clamp(2.4rem,5.4vw,4.8rem)}h2{font-size:clamp(1.9rem,3vw,2.8rem)}h3{font-size:1.5rem;letter-spacing:-.02em}p{margin:0 0 1.4rem}ul{padding-left:1.3rem}li{margin-bottom:.5rem}.wrap{width:min(var(--max),calc(100% - 6rem));margin-inline:auto}.section{padding-block:5rem}.eyebrow{font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--green-dark);font-size:.875rem;margin-bottom:1.3rem}.lead{font-size:1.3rem;line-height:1.6;max-width:65ch;color:var(--muted)}.skip{position:absolute;top:0;left:1rem;z-index:999999;padding:1rem;background:#fff;transform:translateY(-150%)}.skip:focus{transform:translateY(0)}.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.site-header{background:white;border-bottom:1px solid #e5e9e6}.header-inner{display:flex;align-items:center;gap:2.5rem;min-height:106px;padding-block:.5rem}.brand{display:block;flex-shrink:0}.brand img{width:112px;height:89px;object-fit:contain}.nav{margin-left:auto}.nav ul{display:flex;align-items:center;gap:2.25rem;margin:0;padding:0;list-style:none}.nav li{margin:0}.nav a{display:inline-flex;align-items:center;min-height:48px;font-size:1rem;font-weight:700;text-decoration:none;color:var(--ink)}.nav a:hover,.nav a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--green);text-underline-offset:9px}.header-phone{white-space:nowrap;font-size:1.35rem;font-weight:750;min-height:48px;display:flex;align-items:center;text-decoration:none}.menu-toggle{display:none;background:#fff;border:2px solid var(--ink);border-radius:2px;min-height:48px;padding:.45rem 1rem;color:var(--ink)}.hero-photo{width:100%;height:clamp(250px,30vw,460px);object-fit:cover;object-position:50% 52%}.hero-band{background:#222525;color:white;padding:3.2rem 0}.hero-band .wrap{display:grid;grid-template-columns:1.65fr 1fr;gap:3.8rem;align-items:center}.hero-band h1{border-left:5px solid #159729;padding-left:1.75rem;margin:0;line-height:1.04;max-width:16ch}.hero-aside{border-left:1px solid #89928d;padding-left:2.7rem}.hero-aside p{font-size:1.5rem;line-height:1.4;color:#fff;max-width:30ch}.button{display:inline-flex;justify-content:center;align-items:center;min-height:56px;padding:1rem 1.4rem;background:var(--green);color:white;font-size:1.0625rem;font-weight:700;text-decoration:none;border:2px solid var(--green);border-radius:2px;line-height:1.35;text-align:center}.button:hover{background:var(--green-dark);border-color:var(--green-dark);text-decoration:underline}.hero-aside .button{width:100%;max-width:400px}.button.secondary{background:white;color:var(--green-dark);border-color:var(--green-dark)}.service-index{padding-block:2.8rem 3.3rem;border-bottom:1px solid var(--line)}.service-index h2{font-size:clamp(1.6rem,2.7vw,2.4rem);margin-bottom:1.6rem}.service-links{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.service-links a{padding:.6rem 0;min-height:48px;font-size:1.15rem;font-weight:700}.service-links a+a{border-left:1px solid var(--line);padding-left:2rem}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}.prose{max-width:65ch}.prose p{color:var(--muted)}.two-col img{width:100%;aspect-ratio:4/3;object-fit:cover}.text-link{font-weight:700;display:inline-block;padding:.65rem 0;min-height:48px}.soft{background:var(--soft)}.project-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.project-strip a{display:block}.project-strip img{width:100%;aspect-ratio:4/3;object-fit:cover}.project-strip figcaption{font-size:1rem;color:var(--muted);padding-top:.75rem}.project-strip figure{margin:0}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:2rem;margin-bottom:1.6rem}.section-heading h2{margin:0}.quote{border-left:4px solid var(--green);padding-left:1.7rem;margin:0;font-size:1.35rem}.quote cite{font-style:normal;font-weight:700;font-size:1rem;display:block;margin-top:1rem}.cta-band{background:var(--green-dark);color:#fff;padding:3.5rem 0}.cta-band .wrap{display:flex;gap:3rem;align-items:center;justify-content:space-between}.cta-band h2{margin-bottom:.7rem}.cta-band p{margin:0;max-width:55ch}.cta-band .button{background:white;color:var(--green-dark);border-color:white;flex-shrink:0}.site-footer{background:#191e1b;color:#e4ebe6;padding-top:3.5rem}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:3rem;padding-bottom:3rem}.footer-logo{background:#fff;padding:.5rem;width:120px;margin-bottom:1rem}.site-footer h2{font-size:1.05rem;letter-spacing:0}.site-footer a{color:white;display:inline-block;min-height:44px;padding:.45rem 0}.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin:0}.site-footer p{font-size:1rem;max-width:36ch}.site-footer address{font-style:normal;font-size:1rem}.footer-bottom{border-top:1px solid #465349;padding-block:1rem;font-size:.875rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.page-heading{background:var(--soft);padding:3.5rem 0;border-bottom:1px solid var(--line)}.page-heading h1{max-width:19ch}.page-heading .lead{margin-bottom:0}.breadcrumb{font-size:.9375rem;margin-bottom:1.5rem}.service-section{display:grid;grid-template-columns:.7fr 1.3fr;gap:4rem;padding-block:4rem;border-bottom:1px solid var(--line);scroll-margin-top:2rem}.service-section:last-child{border-bottom:0}.service-section h2{max-width:15ch}.service-section ul{display:grid;grid-template-columns:1fr 1fr;gap:.5rem 2.5rem}.service-section li{padding:.35rem 0}.service-section p{color:var(--muted)}.services-intro{margin-top:2rem}.testimonials{display:grid;grid-template-columns:1fr 1fr;gap:3rem}.testimonials blockquote{margin:0;padding:1.75rem 0 1.75rem 1.5rem;border-left:3px solid var(--green);font-size:1.2rem}.testimonials cite{font-size:1rem;display:block;font-style:normal;font-weight:700}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:5rem}.contact-details a{display:inline-flex;align-items:center;min-height:48px}.contact-details address{font-style:normal;margin-bottom:1.5rem}.contact-form label{display:block;font-weight:700;margin-bottom:.6rem}.contact-form input:not([type=submit]):not([type=checkbox]):not([type=hidden]),.contact-form select,.contact-form textarea{width:100%;max-width:100%;padding:.8rem;border:1px solid #737e76;border-radius:2px;background:#fff;color:var(--ink);min-height:48px}.contact-form textarea{min-height:150px}.contact-form input[type=submit]{cursor:pointer;padding:1rem 1.6rem;background:var(--green);color:white;border:2px solid var(--green);min-height:56px;font-weight:700}.contact-form .wpcf7-not-valid-tip{color:#aa1625;font-weight:700;margin-top:.5rem}.contact-form .wpcf7-response-output{margin:1rem 0;padding:1rem;border:2px solid var(--green-dark)}.contact-form .field-note{font-size:.9375rem;color:var(--muted)}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.gallery figure{margin:0}.gallery a{display:block}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;background:var(--soft)}.gallery figcaption{font-size:1rem;margin-top:.5rem}.empty-message{padding:2rem;border:1px solid var(--line)}.generic-content{overflow-wrap:anywhere}.generic-content img{height:auto}.search-form{display:flex;gap:1rem;flex-wrap:wrap}.search-form input{padding:.75rem;border:1px solid #737e76;max-width:100%}
@media(min-width:1600px){.hero-band h1{font-size:5rem}}
@media(max-width:1000px){.wrap{width:calc(100% - 3rem)}.header-inner{gap:1.5rem}.nav ul{gap:1.25rem}.header-phone{font-size:1.1rem}.hero-band .wrap{gap:2rem}.hero-aside{padding-left:2rem}.hero-aside p{font-size:1.2rem}.two-col,.contact-grid{gap:3rem}.hero-band h1{font-size:3.6rem}.footer-grid{gap:2rem}}
@media(max-width:760px){.wrap{width:calc(100% - 2.5rem)}.header-inner{min-height:88px;flex-wrap:wrap;gap:.5rem 1rem;padding-block:.6rem}.brand img{width:84px;height:67px}.header-phone{margin-left:auto;font-size:1rem}.js .menu-toggle{display:block}.nav{width:100%;order:4;margin:0}.nav ul{flex-wrap:wrap;gap:.2rem 1.5rem;padding-block:.6rem}.js .nav:not(.is-open){display:none}.hero-photo{height:240px}.hero-band{padding:2.1rem 0}.hero-band .wrap{grid-template-columns:1fr;gap:1.5rem}.hero-band h1{font-size:clamp(2.2rem,9vw,3.5rem);padding-left:1rem;max-width:18ch}.hero-aside{border:0;padding:0}.hero-aside p{font-size:1.125rem;max-width:40ch}.hero-aside .button{max-width:none}.service-index{padding-block:2rem}.service-links{grid-template-columns:1fr;gap:0}.service-links a,.service-links a+a{border-left:0;border-bottom:1px solid var(--line);padding:1rem 0}.section{padding-block:3rem}.two-col,.contact-grid{grid-template-columns:1fr;gap:2rem}.section-heading{display:block}.section-heading h2{margin-bottom:.6rem}.project-strip{grid-template-columns:1fr;gap:2rem}.project-strip img{max-height:340px}.footer-grid{grid-template-columns:1fr;gap:1.8rem}.footer-bottom{display:block}.cta-band .wrap{display:block}.cta-band .button{margin-top:1.5rem}.page-heading{padding-block:2.5rem}.service-section{grid-template-columns:1fr;gap:.5rem;padding-block:2.5rem}.service-section ul{grid-template-columns:1fr}.testimonials{grid-template-columns:1fr;gap:1.5rem}.gallery{grid-template-columns:1fr 1fr;gap:1rem}.lead{font-size:1.125rem}.quote{font-size:1.2rem}}
@media(max-width:380px){.header-phone{font-size:.875rem}.menu-toggle{padding:.4rem .6rem}.wrap{width:calc(100% - 2rem)}.gallery{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media(forced-colors:active){.button{border:2px solid ButtonText}.hero-band h1,.quote{border-color:CanvasText}a:focus-visible,button:focus-visible{outline-color:Highlight}}

/* Keep the approved two-line headline at desktop widths. */
@media(min-width:761px){.hero-band .wrap{grid-template-columns:2fr 1fr;gap:2.5rem}.hero-band h1{max-width:none;font-size:clamp(2.5rem,4.6vw,4.5rem)}.hero-aside{padding-left:2.5rem}}

/* Photography-led refinement. Solid surfaces keep text contrast predictable. */
:root{--ink:#17201c;--soft:#f4f4ef;--max:1360px}
body{font-family:"Helvetica Neue",Arial,Helvetica,sans-serif}
h1,h2,h3{letter-spacing:-.045em}.eyebrow{letter-spacing:.16em;font-size:.75rem}
.header-inner{min-height:100px}.nav a{font-size:.875rem;letter-spacing:.04em}.header-phone{font-size:1.15rem}
.button{border-radius:0;min-height:58px;padding:1.05rem 1.8rem;letter-spacing:.02em}
.hero-band{padding-block:3.5rem}.hero-aside p{font-size:1.125rem;line-height:1.55}
.services-opening{display:grid;grid-template-columns:1.4fr 1fr;gap:4rem;align-items:end;padding-block:5.5rem 4rem}
.services-opening h1{font-size:clamp(3.2rem,6vw,6.5rem);line-height:.98;margin:0;letter-spacing:-.055em}
.services-opening .lead{font-size:1.15rem;line-height:1.65;margin:0 0 .2rem;max-width:34ch}
.service-stories{width:min(1600px,calc(100% - 4rem));margin:0 auto 5rem;display:grid;gap:1.5rem}
.service-scene{position:relative;isolation:isolate;min-height:560px;display:flex;align-items:flex-end;justify-content:flex-end;padding:3rem;scroll-margin-top:1.5rem;background:#202a24}
.service-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1}
.service-scene-reverse{justify-content:flex-start}.service-scene-reverse .service-photo{object-position:65% 55%}
.service-copy{width:440px;max-width:100%;background:#17231e;color:white;padding:2.6rem 2.8rem 2.3rem;border-top:3px solid #52b862}
.service-number{display:block;color:#b9d2c1;letter-spacing:.14em;font-size:.8125rem;margin-bottom:1.8rem}
.service-copy h2{font-size:clamp(2rem,3vw,3.1rem);margin-bottom:1.8rem;overflow-wrap:normal}
.capability-list{list-style:none;padding:0;margin:0;font-size:1rem;line-height:1.5}.capability-list li{border-top:1px solid #53635a;padding:.75rem 0;margin:0}
.expertise-section{padding-block:5.5rem}.section-heading{align-items:end;margin-bottom:2.5rem}.section-heading h2{max-width:22ch}.section-intro{font-size:1rem;color:var(--muted);margin:0;flex-shrink:0}
.expertise-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.expertise-card{display:block;color:white;background:#17231e;text-decoration:none;overflow:hidden}
.expertise-card img{width:100%;aspect-ratio:1.2;object-fit:cover;transition:transform .3s ease}
.expertise-card:hover img{transform:scale(1.035)}.expertise-card:hover h3{text-decoration:underline;text-underline-offset:6px}
.expertise-card>span{display:block;padding:1.5rem 1.8rem 1.75rem}.expertise-card small{color:#b9d2c1;letter-spacing:.1em;font-size:.75rem}.expertise-card h3{font-size:1.85rem;margin:.65rem 0 .6rem}.expertise-card p{font-size:.9375rem;color:#e1e8e3;margin:0}
.work-feature{position:relative;isolation:isolate;min-height:620px;display:flex;align-items:center;background:#17231e}
.work-feature>img{position:absolute;inset:0;height:100%;width:100%;object-fit:cover;z-index:-1}
.work-feature-copy{margin-left:max(3rem,calc((100vw - 1360px)/2));width:440px;background:#17231e;color:white;padding:3.5rem}
.work-feature-copy .eyebrow{color:#b9d2c1}.work-feature-copy h2{font-size:3.25rem}.work-feature-copy a{color:white}
.testimonial-feature{max-width:1040px;text-align:center;padding-block:5.5rem}.testimonial-feature blockquote{margin:0}.testimonial-feature blockquote p{font-size:clamp(1.6rem,2.3vw,2.2rem);line-height:1.4;letter-spacing:-.025em}.testimonial-feature cite{font-style:normal;font-size:.875rem;font-weight:700}.testimonial-feature>a{font-size:.875rem;margin-top:.75rem}
.cta-band{background:#edf1ea;color:var(--ink);padding-block:4rem}.cta-band h2{font-size:clamp(2rem,3.5vw,3.5rem)}.cta-band p{font-size:1rem;color:var(--muted)}.cta-band .button{background:var(--green-dark);color:white;border-color:var(--green-dark)}
.about-feature{display:grid;grid-template-columns:1.2fr 1fr;background:#17231e;color:white}.about-feature>img{width:100%;height:100%;min-height:500px;object-fit:cover}.about-copy{padding:5rem;align-self:center}.about-copy h2{font-size:clamp(2.2rem,3.3vw,3.5rem)}.about-copy p{color:#e1e8e3;font-size:1.125rem}.about-copy .license-note{font-size:.8125rem;color:#b9d2c1;margin-top:2rem}
.page-heading{background:#f4f4ef;padding-block:4rem}.page-heading h1{font-size:clamp(2.8rem,5vw,5rem)}
.site-footer{background:#17201c}.site-footer p,.site-footer address,.site-footer a{font-size:.9375rem}.footer-grid{padding-bottom:2rem}
@media(min-width:1800px){.service-scene{min-height:640px}}
@media(max-width:1000px){.service-stories{width:calc(100% - 3rem)}.service-scene{padding:2rem;min-height:520px}.service-copy{width:380px;padding:2rem}.services-opening{gap:2rem}.expertise-grid{gap:1rem}.expertise-card>span{padding:1.3rem}.expertise-card h3{font-size:1.5rem}.about-copy{padding:3rem}.work-feature-copy{margin-left:1.5rem}}
@media(max-width:760px){.header-inner{min-height:88px}.header-phone{font-size:1rem}.services-opening{grid-template-columns:1fr;gap:1.6rem;padding-block:3rem 2.5rem}.services-opening h1{font-size:clamp(2.8rem,11vw,4.5rem)}.services-opening .lead{font-size:1rem}.service-stories{width:100%;gap:1.5rem;margin-bottom:2.5rem}.service-scene{display:block;padding:0;min-height:0}.service-photo{position:static;aspect-ratio:4/3;height:auto;width:100%;max-height:380px;object-fit:cover}.service-copy{width:100%;padding:1.8rem 1.5rem;border:0}.service-number{margin-bottom:1rem}.service-copy h2{font-size:2.15rem;margin-bottom:1rem}.capability-list{font-size:1rem}.expertise-section{padding-block:3rem}.expertise-grid{grid-template-columns:1fr;gap:1.4rem}.expertise-card img{aspect-ratio:1.5}.expertise-card>span{padding:1.5rem}.expertise-card h3{font-size:1.8rem}.section-intro{margin-top:1rem}.work-feature{display:block;min-height:0}.work-feature>img{position:static;aspect-ratio:4/3;height:auto}.work-feature-copy{margin:0;width:100%;padding:2rem 1.5rem}.work-feature-copy h2{font-size:2.5rem}.testimonial-feature{padding-block:3rem}.about-feature{grid-template-columns:1fr}.about-feature>img{min-height:0;max-height:380px;aspect-ratio:4/3}.about-copy{padding:2.5rem 1.5rem}.hero-band{padding-block:2.5rem}.cta-band{padding-block:3rem}}
@media(prefers-reduced-motion:reduce){.expertise-card img{transition:none}.expertise-card:hover img{transform:none}}
.news-corner{background:#f2f4f1}.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px}.news-story{border-top:2px solid #166c36;padding-top:24px}.news-story h3{font-size:clamp(1.4rem,2.2vw,2rem);line-height:1.2;margin:12px 0 20px}.news-story h3 a{color:inherit;text-decoration:none}.news-story h3 a:hover{text-decoration:underline}.news-story p{max-width:60ch}.news-source,.news-note{font-size:.875rem;color:#48564e}.news-note{margin-top:32px}@media(max-width:760px){.news-grid{grid-template-columns:1fr;gap:32px}}

.service-copy .text-link{color:#fff;margin-top:1.5rem}.service-detail{display:grid;grid-template-columns:1.2fr 1fr;gap:5rem;align-items:center}.service-detail p{max-width:60ch}.detail-capabilities{list-style:none;padding:0}.detail-capabilities li{padding:1.3rem 0;border-bottom:1px solid #ccd4ce;font-size:1.25rem}.service-job-section{background:#f2f4f1}.service-job-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:2rem}.service-job-grid figure{margin:0}.service-job-grid img{width:100%;height:460px;object-fit:contain;background:#e4e8e2}.service-job-grid figcaption{font-size:.95rem;margin-top:1rem}.service-related>div{display:flex;flex-wrap:wrap;gap:2rem}@media(max-width:760px){.service-detail,.service-job-grid{grid-template-columns:1fr;gap:2rem}.service-job-grid img{height:auto;max-height:520px}.service-detail{padding-block:3rem}}
