/* Shared refinement for the four-page local-service starter. */
.blog-eyebrow{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.blog-card{background:white;border:1px solid var(--line);border-radius:8px;overflow:hidden;box-shadow:var(--elevation-card)}
.blog-image{display:block;aspect-ratio:16/10;overflow:hidden}.blog-image img{width:100%;height:100%;object-fit:cover}
.blog-card-body{padding:26px}.blog-card h2{font-size:24px;line-height:1.3}.blog-card h2 a{color:var(--brand-primary)}
.blog-card .btn,.article-note .btn{background:var(--brand-primary);color:white}
.blog-back{display:inline-block;color:white;margin-bottom:24px}.blog-back:hover{color:white}
.article-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(220px,1fr);gap:56px;align-items:start}
.article-copy{min-width:0}.article-cover{width:100%;height:auto;border-radius:8px;margin-bottom:30px}.article-copy p{line-height:1.8;margin-bottom:24px}
.article-lead{font-size:20px}.article-copy h2{font-size:28px;margin:36px 0 14px;scroll-margin-top:110px}
.article-sidebar nav{display:grid;gap:14px}.article-sidebar h2{font-size:22px}.article-sidebar hr{margin:24px 0;border:0;border-top:1px solid var(--line)}
.article-note{background:var(--bg-alt);padding:28px;border-radius:8px;margin:36px 0}.article-note h2{margin-top:0}
@media(max-width:960px){.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.article-layout{grid-template-columns:1fr}.article-sidebar{order:-1}}
@media(max-width:620px){.blog-grid{grid-template-columns:1fr}.article-lead{font-size:18px}}
/* Modular service gallery. */
.service-list.service-image-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.service-image-grid .service-detail { padding:0; border:1px solid #dce1de; overflow:hidden; display:flex; flex-direction:column; }
.service-image-grid .service-detail-body { padding:26px; display:flex; flex-direction:column; flex:1; }
.service-image-grid h2 { font-size:24px; line-height:1.25; }
.service-image-grid .check-list { grid-template-columns:1fr; }
.service-image-grid .btn { margin-top:auto; background:var(--brand-primary); color:#fff; }
.service-image { position:relative; display:block; width:100%; border:0; padding:0; cursor:zoom-in; background:#002046; aspect-ratio:16/10; overflow:hidden; }
.service-image img { display:block; width:100%; height:100%; object-fit:cover; }
.service-image--icon img { object-fit:contain; padding:42px; }
.service-image span { position:absolute; bottom:12px; right:12px; background:#002046; color:white; padding:6px 10px; border-radius:4px; font-size:12px; }
.service-image:focus-visible { outline:3px solid #ff5722; outline-offset:-4px; }
.service-lightbox { margin:auto; width:min(900px,92vw); max-height:90vh; overflow:auto; border:1px solid #526478; border-radius:12px; padding:20px; background:#002046; color:white; box-shadow:0 24px 80px #0008; }
.service-lightbox::backdrop { background:rgba(0,15,35,.8); backdrop-filter:blur(3px); }
.service-lightbox img { display:block; width:100%; height: min(55vh,500px); object-fit:contain; }
.service-lightbox button { background:white; color:#002046; border:0; border-radius:5px; padding:12px 18px; cursor:pointer; font:inherit; }
.service-lightbox button:disabled { opacity:.4; cursor:default; }
.lightbox-close { display:block; margin-left:auto; margin-bottom:12px; }
.lightbox-caption { text-align:center; margin:16px 0; color:white; }
.lightbox-controls { display:flex; justify-content:space-between; gap:16px; }
@media(max-width:1000px) { .service-list.service-image-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) { .service-list.service-image-grid { grid-template-columns:1fr; } }
/* Orange action surfaces always use white labels, including navigation states. */
:root { --action-label: #fff; }
.btn.btn-primary, .btn.btn-accent, .primary-nav .btn.btn-header-cta,
.primary-nav .btn.btn-header-cta:hover, a.mobile-call-cta,
a.mobile-call-cta:hover {
  color: var(--action-label);
}
.btn.btn-primary:hover, .btn.btn-accent:hover,
.btn.btn-primary:focus-visible, .btn.btn-accent:focus-visible,
.primary-nav .btn.btn-header-cta:focus-visible,
a.mobile-call-cta:focus-visible {
  color: var(--action-label);
}
:root{--bg:#fafaf7;--bg-alt:#f0f2ed;--ink:#002046;--ink-soft:#3d4b58;--line:#dce1de;--radius:6px;--radius-sm:4px;--shadow:none;--shadow-sm:none;--bg-dark:#002046;--container:1200px}body{font-size:16px}.header-inner{min-height:88px}.site-header{background:#fff;backdrop-filter:none}.brand-name{font-size:21px;letter-spacing:-.7px}.brand-mark{border-radius:4px;background:#002046;border-bottom:4px solid #ff5722;width:46px;height:46px}.btn{border-radius:4px;padding:16px 23px;line-height:1.2}.btn-primary,.btn-header-cta{background:var(--brand-accent);color:#002046}.primary-nav .btn-header-cta,.primary-nav .btn-header-cta:hover{color:#002046}.primary-nav a[aria-current=page]{text-decoration:underline;text-decoration-color:#ff5722;text-underline-offset:8px;text-decoration-thickness:3px}.hero{position:relative;background:#002046 url('../img/hero.svg') center/cover no-repeat;color:white;padding:96px 0;overflow:hidden}.hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,32,70,.95) 0%,rgba(0,32,70,.78) 45%,rgba(0,32,70,.45) 100%);pointer-events:none}.hero:after{content:'IPP';position:absolute;right:4%;bottom:-70px;font-size:clamp(150px,27vw,430px);font-weight:900;letter-spacing:-20px;color:#ffffff07;line-height:1;pointer-events:none}.hero-inner{max-width:1200px;position:relative;z-index:1}.hero-title{font-size:clamp(44px,6vw,76px);max-width:760px;letter-spacing:-3px;line-height:1.04}.hero-eyebrow{color:#ff946f;font-size:12px;max-width:650px;letter-spacing:1.4px}.hero-subhead{font-size:19px;max-width:580px;margin-block:26px 30px}.hero-badges{font-size:13px;margin-top:35px;color:#e1e8ef}.hero-badges li:before{color:#ff946f}.value-props{padding:40px 0;border-bottom:1px solid #dce1de}.value-card{border:0;border-right:1px solid #dce1de;border-radius:0;padding:12px 25px;background:transparent;box-shadow:none}.value-card:last-child{border-right:0}.value-icon{font-size:13px;color:#a63a15;background:transparent;width:auto;height:auto;display:block;margin-bottom:15px}.value-title{font-size:21px}.section-head{text-align:left;margin-left:0;max-width:690px}.section-head h2{font-size:38px;letter-spacing:-1.2px}.service-card{border:1px solid #dce1de;border-top:3px solid #002046;box-shadow:none;padding:28px;background:white}.service-card:hover{transform:none;box-shadow:none;border-top-color:#ff5722}.service-card h3{font-size:23px;letter-spacing:-.5px}.service-card .link-arrow{display:inline-block;margin-top:12px}.section .center{text-align:left;margin-top:28px}.step{border-top:1px solid #9caeb8;padding-top:22px}.step>span,.kicker{font-size:12px;font-weight:700;letter-spacing:1.5px;color:#8c3519}.step h3{margin-top:20px}.cta-banner{background:#e9eee8;color:#002046}.cta-banner h2,.cta-banner p{color:#002046}.cta-banner .btn-light{background:#002046;color:white}.cta-banner .btn-ghost-light{color:#002046;border-color:#002046}.page-header{background:#002046;padding:65px 0}.page-header h1{color:white;font-size:52px}.service-detail{box-shadow:none;border-left-width:3px}.fact-box{background:#f0f2ed;color:#002046}.fact-box p{margin-block:16px}.contact-form-wrap{border:1px solid #dce1de;border-radius:6px;box-shadow:none}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:3px solid #a33d1b;outline-offset:3px}.site-footer{font-size:14px}.footer-tagline{color:#cad5df}.mobile-call-cta{color:#002046}.mobile-call-cta:hover{color:#002046}.hero-home{min-height:600px;display:flex;align-items:center}.hero-home .hero-inner{width:100%}.hero-home .hero-title{max-width:700px}.hero-home .hero-subhead{max-width:620px}.hero-cta .btn-primary span{font-size:24px;line-height:.8;margin-left:5px}@media(max-width:860px){.primary-nav{top:88px}.hero{padding:60px 0}.hero-home{min-height:540px}.hero-title{font-size:52px}.header-inner .brand-name{font-size:19px}}@media(max-width:620px){.hero-title{font-size:43px;letter-spacing:-1.8px}.hero-cta .btn{width:100%;white-space:normal}.hero-badges{display:grid;gap:10px}.value-card{border-right:0;border-bottom:1px solid #dce1de;padding:15px 0}.value-card:last-child{border-bottom:0}.section-head h2{font-size:30px}.page-header h1{font-size:36px}.btn{white-space:normal}.hero:after{display:none}.cta-actions{width:100%}.cta-actions .btn{width:100%}}

.brand-logo{width:245px;height:76px;object-fit:contain}@media(max-width:620px){.brand-logo{width:210px;height:70px}}

/* Selected existing hero: preserve the person on the right and copy on the left. */
.hero-home{background-image:url('../img/home-hero-technician.jpg');background-position:center 38%;min-height:570px;padding:76px 0}
.hero-home:before{background:linear-gradient(90deg,rgba(0,32,70,.70) 0%,rgba(0,32,70,.48) 42%,rgba(0,32,70,.06) 70%,rgba(0,32,70,.02) 100%)}
.hero-home:after{display:none}
.hero-home .hero-title{max-width:590px;font-size:56px;line-height:1.15;letter-spacing:-1.8px;font-weight:900}
.hero-home .hero-eyebrow{max-width:550px;color:#ffad91;line-height:1.6}
.hero-home .hero-subhead{max-width:520px;font-size:18px;line-height:1.6}
.hero-home .hero-badges{max-width:530px;gap:10px 20px;font-size:14px}
@media(min-width:1600px){.hero-home{background-position:center 35%;min-height:640px}.hero-home:before{background:linear-gradient(90deg,rgba(0,32,70,.8),rgba(0,32,70,.55) 44%,rgba(0,32,70,.05) 72%)}}
@media(max-width:860px){.hero-home{background-position:60% center;min-height:560px;padding:60px 0}.hero-home .hero-title{max-width:470px;font-size:46px}.hero-home .hero-subhead{max-width:440px}.hero-home:before{background:linear-gradient(90deg,rgba(0,32,70,.86),rgba(0,32,70,.65) 55%,rgba(0,32,70,.2))}}
@media(max-width:620px){.hero-home{background-position:68% top;background-size:auto 320px;background-color:#002046;background-repeat:no-repeat;padding:290px 0 38px;min-height:0}.hero-home:before{background:linear-gradient(180deg,rgba(0,32,70,.05) 0px,rgba(0,32,70,.1) 170px,#002046 310px)}.hero-home .hero-title{font-size:36px;line-height:1.15;letter-spacing:-1px;max-width:100%}.hero-home .hero-eyebrow{font-size:11px}.hero-home .hero-subhead{font-size:16px;margin:18px 0 24px}.hero-home .hero-badges{font-size:13px;margin-top:24px}}

/* Wider reference framing: show the whole composition instead of cover cropping. */
@media(min-width:861px){.hero-home{background-size:100% auto;background-position:center center;min-height:0;padding:clamp(52px,5.5vw,88px) 0}.hero-home .hero-title{font-size:clamp(44px,3.7vw,56px);max-width:560px}.hero-home .hero-subhead{max-width:510px}}
@media(min-width:621px) and (max-width:860px){.hero-home{background-size:auto 100%;background-position:right center}}

/* Shared elevation: subtle navy-tinted shadows across the client pages. */
:root {
  --elevation-button: 0 2px 4px rgba(0,32,70,.10), 0 5px 12px rgba(0,32,70,.12);
  --elevation-card: 0 2px 4px rgba(0,32,70,.04), 0 10px 24px rgba(0,32,70,.07);
  --elevation-raised: 0 4px 8px rgba(0,32,70,.05), 0 16px 36px rgba(0,32,70,.11);
  --shadow-sm: var(--elevation-button);
  --shadow: var(--elevation-raised);
}
.site-header { box-shadow: 0 3px 14px rgba(0,32,70,.08); }
.service-card, .service-detail, .fact-box {
  box-shadow: var(--elevation-card);
}
.contact-form-wrap { box-shadow: var(--elevation-raised); }
.btn-primary, .btn-accent, .btn-header-cta, .btn-light {
  box-shadow: var(--elevation-button);
}
.btn-primary:hover, .btn-accent:hover, .btn-header-cta:hover, .btn-light:hover {
  box-shadow: var(--elevation-raised);
}
.mobile-call-cta { box-shadow: 0 -4px 18px rgba(0,32,70,.16); }
@media (hover: hover) {
  .service-card:hover { box-shadow: var(--elevation-raised); }
}
