/* Visual refinement: shared rhythm, clearer hierarchy and image framing. */
body { background: #fafbf9; }
.site-header { height: 78px; padding-inline: max(5vw,24px); }
.brand { font-size: 1.85rem; }
.button { border-radius: 7px; transition: background .2s, box-shadow .2s; }
.button:hover { box-shadow: 0 5px 18px #102b3820; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline: 3px solid #57a89c; outline-offset: 4px; }
section[id] { scroll-margin-top: 24px; }
.hero { display:block; min-height:650px; padding:88px max(7vw,24px) 64px; background-position:center; }
.hero-copy { max-width:720px; }
.hero h1 { font-size:clamp(2.5rem,4.8vw,4.65rem); line-height:1.09; max-width:700px; letter-spacing:-.055em; }
.hero .lead { max-width:560px; font-size:1.08rem; }
.hero .reassurance { max-width:520px; font-size:.8rem; }
.hero-panel { display:none; }
.hero-tags { gap:10px; }
.hero-tags span { border:0; border-radius:0; padding:0 12px 0 0; border-right:1px solid #b8ddc966; background:none; font-weight:500; }
.hero-tags span:last-child { border:0; }
.hero .button { background:#b8ddc9; color:#102b38; padding:17px 23px; }
.hero .button:hover { background:#d4efdf; }
.section,.experience-section,.project-visual,.technical-section,.contact-section { padding:76px max(7vw,24px); }
.intro { max-width:none; display:grid; grid-template-columns:1.15fr 1fr; gap:0 70px; align-items:center; }
.intro .eyebrow { grid-column:1/-1; }
.intro h2 { font-size:clamp(1.9rem,3vw,2.75rem); margin-bottom:0; }
.intro p:last-child { margin-bottom:0; font-size:1rem; }
.experience-section { margin:0 max(7vw,24px) 64px; padding:40px; grid-template-columns:180px 1fr; gap:44px; border:1px solid #d8e3db; border-radius:12px; background:#edf3ee; }
.experience-number { font-size:8rem; letter-spacing:-.09em; }
.experience-number span { margin-left:25px; }
.experience-section h2 { font-size:clamp(1.8rem,2.8vw,2.5rem); }
.experience-section p:not(.eyebrow) { font-size:.96rem; }
.project-visual { grid-template-columns:1fr 1fr; gap:70px; }
.project-image-wrap { max-width:100%; }
.project-image-wrap img { aspect-ratio:5/4; object-position:center top; border-radius:9px; }
.project-image-wrap:after,.coverage-dot { display:none; }
.project-copy h2 { font-size:clamp(1.9rem,3.1vw,2.9rem); }
.project-stat { margin-top:22px; }
.signal-band>div { padding:25px max(3vw,24px); }
.signal-band { padding-inline:4vw; background:#f8faf8; }
.section-heading { display:block; }
.section-heading h2 { margin-bottom:0; }
.cards { gap:18px; }
.cards article { border:1px solid #dce3dd; border-radius:10px; padding:28px 23px; }
.cards .number { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:9px; background:#eaf3ed; margin-bottom:24px; }
.cards h3 { font-size:1.15rem; line-height:1.3; letter-spacing:-.025em; }
.technical-section { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:55px; background:#fff; }
.technical-heading h2 { font-size:clamp(1.9rem,3vw,2.8rem); }
.technical-grid-single { display:block; margin:0; min-width:0; }
.technical-card { margin:0; min-height:0; border-radius:10px; }
.technical-card img { width:100%; height:auto; }
.technical-label { left:14px; bottom:14px; font-size:.8rem; }
.steps { gap:28px; }
.steps>div { border-top:1px solid #c9d9d0; padding-top:22px; }
.steps b { font-size:1.45rem; }
.local { background:#dfece3; }
.local h2 { max-width:750px; font-size:clamp(1.9rem,3vw,2.8rem); }
.local p:last-child { max-width:670px; margin-bottom:0; }
.contact-form { border:1px solid #d9e2db; border-radius:12px; box-shadow:0 14px 45px #183c2910; }
.contact-form input:not([type=checkbox]),.contact-form select,.contact-form textarea { border-radius:5px; }
footer { flex-wrap:wrap; gap:18px 30px; padding:32px max(7vw,24px); }
footer p { flex-basis:45%; }
/* Content remains readable when animation support or JavaScript is unavailable. */
.reveal { opacity:1; transform:none; }
@media(min-width:851px) { .reveal.is-visible { animation:enter .55s ease both; } }
@keyframes enter { from { opacity:.4; transform:translateY(12px); } to { opacity:1; transform:none; } }
@media(max-width:1050px) { .cards { grid-template-columns:repeat(2,minmax(0,1fr)); } .header-phone { display:none; } }
@media(max-width:850px) {
 .hero { min-height:590px; background-position:65% center; }
 .hero-copy { max-width:620px; }
 .intro,.project-visual,.technical-section,.contact-section { grid-template-columns:1fr; gap:28px; }
 .experience-section { grid-template-columns:120px 1fr; gap:24px; padding:28px; }
 .experience-number { font-size:6rem; }
 .project-image-wrap { max-width:580px; }
 .signal-band { padding:0; }
 .section,.project-visual,.technical-section,.contact-section { padding-block:54px; }
}
@media(max-width:520px) {
 .hero { padding-top:54px; min-height:0; }
 .hero h1 { font-size:2.6rem; }
 .hero-tags { gap:8px; line-height:1.7; }
 .hero-tags span { font-size:.72rem; }
 .experience-section { grid-template-columns:1fr; margin-bottom:40px; }
 .experience-number { font-size:5rem; }
 .experience-number span { display:inline; margin-left:14px; }
 .cards { grid-template-columns:1fr; }
 .contact-form { padding:22px; }
 .technical-label { position:static; }
 footer p { flex-basis:auto; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }
