:root { --graphite:#2b2e31; --red:#e53935; --red-dark:#bd2525; --white:#fff; --gray:#e6e8eb; --soft:#f5f6f7; --muted:#687078; --line:#d9dcdf; --max:1180px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--graphite); background:var(--white); font:400 16px/1.55 Inter,system-ui,sans-serif; }
a { color:inherit; }
img { display:block; width:100%; height:100%; object-fit:cover; }
figure { margin:0; }
.shell { width:min(calc(100% - 40px),var(--max)); margin-inline:auto; }
.skip-link { position:absolute; left:-999px; top:8px; z-index:100; padding:10px; background:#fff; }
.skip-link:focus { left:8px; }
.site-header { position:sticky; top:0; z-index:20; border-bottom:1px solid var(--line); background:rgba(255,255,255,.95); backdrop-filter:blur(12px); }
.header-inner { min-height:76px; display:flex; align-items:center; gap:30px; }
.brand-image { width:190px; height:48px; overflow:hidden; flex:0 0 190px; background:#fff; }
.brand-image img { object-fit:cover; object-position:center; }
nav { margin-left:auto; display:flex; gap:28px; }
nav a { color:#4e545a; text-decoration:none; font-size:.86rem; font-weight:700; }
nav a:hover, nav a:focus-visible { color:var(--red); }
.button { min-height:48px; padding:0 23px; display:inline-flex; align-items:center; justify-content:center; border:0; border-radius:2px; color:#fff; background:var(--red); font:800 .86rem/1 Montserrat,sans-serif; text-decoration:none; cursor:pointer; transition:background .2s,transform .2s; }
.button:hover,.button:focus-visible { background:var(--red-dark); transform:translateY(-2px); }
.button-small { min-height:40px; padding-inline:17px; font-size:.75rem; }
.text-link { width:fit-content; padding-bottom:3px; border-bottom:1px solid currentColor; font-weight:800; text-decoration:none; }
.text-link:hover { color:var(--red); }
.eyebrow { margin:0 0 14px; color:var(--red); font-size:.74rem; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
h1,h2,h3 { margin-top:0; font-family:Montserrat,sans-serif; line-height:1.06; letter-spacing:-.04em; }
.hero { overflow:hidden; }
.hero-grid { min-height:590px; display:grid; grid-template-columns:.9fr 1.1fr; gap:64px; align-items:center; padding-block:58px; }
h1 { max-width:610px; margin-bottom:22px; font-size:clamp(3.15rem,5.4vw,5.6rem); font-weight:900; }
.hero-lead { max-width:590px; margin:0; color:var(--muted); font-size:clamp(1rem,1.4vw,1.18rem); }
.hero-actions { margin-top:30px; display:flex; align-items:center; gap:25px; }
.technical-line { margin:36px 0 0; color:#596067; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.technical-line span { margin-inline:10px; color:var(--red); }
.hero-photo { position:relative; height:470px; box-shadow:20px 20px 0 var(--gray); }
.hero-photo::before { content:""; position:absolute; inset:0 auto 0 0; z-index:1; width:6px; background:var(--red); }
.hero-photo figcaption,.field-grid figcaption { position:absolute; inset:auto 0 0 0; padding:22px; color:#fff; background:linear-gradient(transparent,rgba(25,27,29,.86)); font-size:.82rem; font-weight:700; }
.section { padding-block:78px; }
.section-heading { margin-bottom:34px; }
.section-heading h2,.field-copy h2,.contact h2 { margin-bottom:0; font-size:clamp(2.1rem,3.7vw,3.7rem); }
.services { background:var(--soft); }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.service-grid article { min-height:145px; display:grid; align-content:space-between; gap:22px; padding:23px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#fff; }
.service-grid span { color:var(--red); font:800 .72rem/1 Montserrat,sans-serif; }
.service-grid h3 { max-width:290px; margin:0; font-size:1.05rem; letter-spacing:-.02em; }
.service-note { max-width:780px; margin:25px 0 0; color:var(--muted); }
.field-grid { display:grid; grid-template-columns:.8fr 1.05fr .75fr; grid-template-rows:400px; gap:20px; align-items:stretch; }
.field-copy { display:flex; flex-direction:column; justify-content:center; padding-right:28px; }
.field-copy p:not(.eyebrow) { margin:20px 0 26px; color:var(--muted); }
.field-grid figure { position:relative; overflow:hidden; background:var(--gray); }
.photo-main img { object-position:center 44%; }
.photo-secondary img { object-position:center 50%; }
.contact { color:#fff; background:var(--graphite); }
.contact-grid { display:grid; grid-template-columns:1fr .86fr; gap:80px; align-items:center; }
.coverage { max-width:640px; margin:22px 0 0; color:#c6c9cc; }
.contact-lines { margin-top:30px; display:grid; grid-template-columns:1fr 1fr; gap:16px 24px; }
.contact-lines a { display:flex; flex-direction:column; font-weight:700; text-decoration:none; }
.contact-lines a:hover { color:#ff6f6b; }
.contact-lines small { margin-bottom:2px; color:#969ca2; font-size:.7rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.quote-form { padding:28px; border-top:5px solid var(--red); color:var(--graphite); background:#fff; }
.quote-form h3 { margin-bottom:22px; font-size:1.45rem; }
.quote-form label { margin-bottom:13px; display:grid; gap:5px; font-size:.78rem; font-weight:700; }
input,select,textarea { width:100%; padding:11px 12px; border:1px solid #ccd0d3; border-radius:0; color:var(--graphite); background:#fafafa; font:500 1rem/1.4 Inter,sans-serif; }
textarea { resize:vertical; }
input:focus,select:focus,textarea:focus { outline:2px solid rgba(229,57,53,.22); border-color:var(--red); }
.quote-form .button { width:100%; margin-top:4px; }
.quote-form>p { margin:10px 0 0; color:var(--muted); font-size:.72rem; text-align:center; }
footer { border-top:1px solid var(--line); }
.footer-inner { min-height:110px; display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:40px; }
.footer-logo { width:175px; height:45px; flex-basis:175px; }
.footer-inner p { margin:0; color:var(--muted); font-size:.73rem; }
.floating-wa { position:fixed; right:20px; bottom:20px; z-index:30; width:54px; height:54px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--red); box-shadow:0 10px 28px rgba(0,0,0,.25); font-size:.72rem; font-weight:800; text-decoration:none; }
@media (max-width:980px) { nav{display:none}.header-inner{justify-content:space-between}.hero-grid{grid-template-columns:1fr;gap:42px}.hero-photo{height:430px}.field-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto 380px}.field-copy{grid-column:1/3;padding:0 0 12px}.contact-grid{grid-template-columns:1fr;gap:45px} }
@media (max-width:680px) { .shell{width:min(calc(100% - 28px),var(--max))}.header-inner{min-height:68px}.brand-image{width:170px;height:43px;flex-basis:170px}.header-inner .button{display:none}.hero-grid{min-height:auto;padding-block:46px 58px}h1{font-size:clamp(2.65rem,13vw,4rem)}.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.technical-line{font-size:.67rem;line-height:1.8}.hero-photo{height:330px;box-shadow:11px 11px 0 var(--gray)}.section{padding-block:58px}.service-grid{grid-template-columns:1fr 1fr}.service-grid article{min-height:150px;padding:19px}.service-grid h3{font-size:.94rem}.field-grid{grid-template-columns:1fr;grid-template-rows:auto 410px 300px}.field-copy{grid-column:auto}.contact-lines{grid-template-columns:1fr}.quote-form{padding:23px 18px}.footer-inner{min-height:160px;grid-template-columns:1fr;gap:7px;align-content:center} }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto}*,*::before,*::after{transition:none!important} }

.project { border-bottom:1px solid var(--line); }
.project-intro { max-width:780px; margin:16px 0 0; color:var(--muted); }
.project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.project-grid figure { min-width:0; border:1px solid var(--line); background:#fff; }
.project-grid figure>a { display:block; padding:10px; background:#fafafa; border-bottom:1px solid var(--line); }
.project-grid img { width:100%; height:220px; object-fit:contain; }
.project-grid figcaption { padding:18px; }
.project-grid h3 { margin:0 0 10px; font-size:1.125rem; line-height:1.25; letter-spacing:-.02em; }
.project-grid figcaption p { margin:0; color:var(--muted); }
.project-note { margin:18px 0 0; max-width:960px; font-size:.875rem; color:var(--muted); }
@media (max-width:680px) { .project-grid { grid-template-columns:1fr; gap:16px; } .project-grid img { height:220px; } }

/* Clearer hierarchy, retaining the established compact page. */
section[id] { scroll-margin-top:90px; }
:focus-visible { outline:3px solid var(--red-dark); outline-offset:4px; }
.hero-local { margin:0 0 14px; font-weight:700; font-size:1.0625rem; }
.case-grid,.experience-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.case-grid article { border-top:3px solid var(--red); padding:24px; background:var(--soft); }
.case-grid h3 { font-size:1.35rem; line-height:1.25; letter-spacing:-.02em; }
.case-grid p { margin:0 0 16px; }
.case-grid .case-data { font:700 1.8rem/1.25 Montserrat,sans-serif; margin-bottom:6px; }
.case-data span { display:block; font:400 1rem/1.5 Inter,sans-serif; color:var(--muted); margin-top:6px; }
.case-grid .case-detail { font-size:.875rem; margin-bottom:0; }
.experience { background:var(--soft); }
.experience h2 { font-size:clamp(1.8rem,2.7vw,2.5rem); line-height:1.16; font-weight:700; letter-spacing:-.025em; margin:0; }
.experience-grid > div > p:first-child { margin-top:0; }
@media(max-width:680px) { .case-grid,.experience-grid { grid-template-columns:1fr; gap:22px; } }
.hero-grid { min-height:0; padding-block:46px; gap:42px; grid-template-columns:1fr 1.15fr; }
.hero-grid > *, .field-grid > *, .contact-grid > * { min-width:0; }
h1 { font-size:clamp(2.2rem,4vw,3.6rem); font-weight:700; line-height:1.13; letter-spacing:-.035em; }
.hero-lead { font-size:1.0625rem; }
.hero-actions { margin-top:25px; flex-wrap:wrap; gap:20px; }
.technical-line { margin-top:24px; font-size:.8125rem; letter-spacing:.035em; text-transform:none; }
.hero-photo { height:410px; box-shadow:12px 12px 0 var(--gray); }
.hero-photo img { object-position:37% center; }
.eyebrow { font-size:.875rem; letter-spacing:.06em; margin-bottom:12px; }
nav a { font-size:.875rem; }
.button { background:var(--red-dark); font-weight:700; line-height:1.3; padding-block:12px; text-align:center; }
.button-small { font-size:.875rem; min-height:44px; }
.section { padding-block:54px; }
.section-heading h2,.field-copy h2,.contact h2 { font-size:clamp(1.8rem,2.7vw,2.5rem); line-height:1.16; font-weight:700; letter-spacing:-.025em; }
.service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.service-grid article { min-height:0; align-content:start; gap:12px; padding:23px; }
.service-grid span { font-size:.8125rem; }
.service-grid h3 { max-width:none; font-size:1.125rem; line-height:1.25; }
.service-grid p { margin:0; color:var(--muted); font-size:1rem; line-height:1.55; }
.service-note { margin-top:20px; }
.field-grid { grid-template-columns:.85fr .75fr 1.2fr; grid-template-rows:350px; }
.field-copy { padding-right:12px; }
.photo-main img { object-position:center 38%; }
.photo-secondary img { object-position:center; }
.contact-grid { gap:50px; }
.contact-lines a { overflow-wrap:anywhere; }
.contact-lines small { font-size:.8125rem; letter-spacing:.04em; }
.quote-form label { font-size:.875rem; }
.quote-form>p,.footer-inner p { font-size:.8125rem; }
.floating-wa { width:auto; height:auto; min-height:50px; display:flex; gap:9px; padding:12px 18px; border-radius:28px; background:#166534; font-size:.875rem; bottom:max(18px,env(safe-area-inset-bottom)); }
.floating-wa svg { flex-shrink:0; }
.footer-inner { padding-bottom:60px; }
@media (max-width:980px) {
  .hero-grid { grid-template-columns:1fr; gap:28px; }
  .hero-photo { height:340px; }
  .field-grid { grid-template-columns:1fr 1.35fr; grid-template-rows:auto 320px; }
  .field-copy { grid-column:1/3; padding:0; }
  .contact-grid { gap:30px; }
}
@media (max-width:680px) {
  .floating-wa { width:54px; height:54px; min-height:54px; padding:0; gap:0; border-radius:50%; justify-content:center; }
  .floating-wa span { display:none; }
  .header-inner { gap:10px; }
  .header-inner .brand-image { width:150px; height:42px; flex-basis:150px; }
  .header-inner .button { display:inline-flex; padding:10px 14px; }
  .hero-grid { padding-block:32px 40px; }
  h1 { font-size:clamp(2rem,8.5vw,2.75rem); }
  .hero-actions { flex-direction:row; align-items:center; gap:18px; }
  .hero-photo { height:250px; box-shadow:7px 7px 0 var(--gray); }
  .technical-line { font-size:.8125rem; }
  .technical-line span { margin-inline:5px; }
  .section { padding-block:38px; }
  .section-heading { margin-bottom:24px; }
  .service-grid { grid-template-columns:1fr; }
  .service-grid article { min-height:0; padding:20px; }
  .service-grid h3 { font-size:1.125rem; }
  .field-grid { grid-template-columns:1fr; grid-template-rows:auto 300px 230px; gap:14px; }
  .field-copy { grid-column:auto; }
  .field-copy p:not(.eyebrow) { margin:15px 0 18px; }
  .footer-inner { padding-block:25px 85px; gap:10px; }
}
