/*
Theme Name: Innovative Engineering & Consulting
Theme URI: https://innovativeeci.com/
Author: The Web Guys
Author URI: https://www.the-web-guys.com/
Description: Custom theme for Innovative Engineering & Consulting, built by The Web Guys from the approved Stage 7 design. Business values: Settings → Site Settings. Forms: Settings → Site Forms.
Version: 0.4.31
Requires PHP: 7.4
Text Domain: innovative-engineering
*/
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:500;font-display:swap;src:url(assets/fonts/barlow-condensed-500.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(assets/fonts/barlow-condensed-600.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/barlow-condensed-700.woff2) format('woff2')}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400 700;font-display:swap;src:url(assets/fonts/source-sans-3.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('LiberationSans-Bold');size-adjust:73%;ascent-override:137%;descent-override:27.4%;line-gap-override:0%}
@font-face{font-family:'Source Sans 3 Fallback';font-weight:400;src:local('Arial'),local('ArialMT'),local('Liberation Sans'),local('LiberationSans');size-adjust:94.9%;ascent-override:107.9%;descent-override:42.1%;line-gap-override:0%}
@font-face{font-family:'Source Sans 3 Fallback';font-weight:700;src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('LiberationSans-Bold');size-adjust:82.0%;ascent-override:124.9%;descent-override:48.8%;line-gap-override:0%}

/* ===== Stage 7 site.css ===== */
/* Innovative Engineering & Consulting — staging build. Plain CSS, one file. */
:root{
  --orange:#E68F1A; --orange-tx:#9A5800; --onyx:#141414; --ink:#2a2a2a; --mute:#5c5c5c;
  --silver:#A9A9A9; --smoke:#F2F2F2; --white:#fff; --line:#dedede;
  --hd:"Barlow Condensed","Barlow Condensed Fallback","Arial Narrow",Arial,sans-serif; --bd:"Source Sans 3","Source Sans 3 Fallback","Segoe UI",Arial,sans-serif;
  --wrap:1200px; --r:6px; --sh:0 10px 30px rgba(20,20,20,.08);
  --topo-onyx:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='640' viewBox='0 0 640 640'%3E%3Cg fill='none' stroke='%23141414' stroke-opacity='.09' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M65 253L65 253' stroke-width='1.9'/%3E%3Cpath d='M120 135L117 140L117 145L119 150L125 154L127 150L126 140L121 135'/%3E%3Cpath d='M60 243L60 243'/%3E%3Cpath d='M125 104L125 104'/%3E%3Cpath d='M158 -10L158 5L153 30L142 65L132 80L100 102L91 115L89 135L102 190L102 205L95 215L65 224L45 233L35 245L33 255L36 280L49 305L90 348L107 375L114 390L122 400L130 405L140 407L150 407L165 403L175 391L176 370L166 320L166 300L174 285L195 267L200 260L202 250L201 240L197 230L175 200L164 180L160 165L159 140L163 120L169 110L199 85L203 75L203 65L194 25L196 5L203 -10'/%3E%3Cpath d='M65 439L65 439'/%3E%3Cpath d='M175 584L170 585L165 589L158 600L157 650'/%3E%3Cpath d='M195 651L196 645L205 625L207 615L206 605L201 595L196 590L190 586L175 584'/%3E%3Cpath d='M138 -10L140 15L132 55L120 74L90 97L82 110L80 120L81 135L90 180L88 200L75 212L50 222L40 228L30 240L27 250L27 265L34 290L52 320L85 358L93 375L96 390L95 400L91 405L85 407L70 407L35 400L25 402L16 410L13 420L16 435L55 479L61 490L66 505L64 515L40 540L36 550L35 560L39 570L49 580L60 585L70 586L85 585L100 579L107 570L107 560L101 540L98 520L106 485L114 435L117 430L130 422L160 416L170 412L180 405L183 400L185 385L175 330L175 315L177 305L182 295L200 277L209 265L211 245L204 225L175 180L170 160L170 145L174 130L180 121L215 97L220 91L222 85L222 70L216 50L212 25L219 -10'/%3E%3Cpath d='M150 569L136 575L131 580L129 590L139 635L140 650'/%3E%3Cpath d='M214 650L221 615L220 605L210 586L200 577L185 570L165 567L150 569'/%3E%3Cpath d='M122 -10L128 15L128 25L126 40L121 55L115 64L105 74L80 94L74 105L73 125L82 175L80 190L75 200L70 204L45 217L30 228L25 235L22 245L22 265L27 285L38 310L71 360L74 375L72 380L65 384L30 384L15 389L1 405L-3 420L-3 430L-1 440L5 450L27 475L35 489L36 500L34 510L23 530L19 545L19 560L23 575L30 585L45 595L95 605L105 609L115 618L122 630L127 650' stroke-width='1.9'/%3E%3Cpath d='M650 393L641 405L637 420L639 440L649 455' stroke-width='1.9'/%3E%3Cpath d='M228 650L231 630L231 615L228 600L221 585L212 575L200 566L180 558L155 552L145 548L135 541L126 530L122 520L119 490L124 455L132 440L140 433L180 418L185 415L192 405L193 390L183 340L182 325L187 305L213 275L219 255L214 230L183 175L180 150L183 140L190 130L205 120L220 114L234 105L242 90L239 70L233 55L227 30L227 15L231 -10' stroke-width='1.9'/%3E%3Cpath d='M105 -11L116 10L118 25L116 40L106 60L70 89L66 95L64 105L65 120L74 165L73 185L71 190L62 200L30 219L21 230L17 240L16 250L18 270L22 285L29 305L47 345L49 355L47 360L42 365L20 373L5 383L-5 395L-12 410'/%3E%3Cpath d='M-10 455L5 480L11 495L11 510L6 540L6 560L9 575L17 590L25 598L35 604L50 609L79 615L100 624L109 635L116 650'/%3E%3Cpath d='M650 379L640 388L632 400L628 410L625 435L632 460L645 480L651 495L651 510L646 540L646 560L651 580'/%3E%3Cpath d='M240 650L240 615L237 600L227 580L220 571L205 560L165 544L145 531L137 520L133 510L130 495L130 475L135 456L143 445L159 435L190 424L200 415L202 400L191 355L189 325L197 305L215 285L221 275L225 260L225 250L222 235L214 215L193 175L191 155L192 150L199 140L210 132L235 122L245 116L255 105L257 100L259 85L256 70L245 45L241 30L241 -10'/%3E%3Cpath d='M85 -11L90 -8L102 5L107 20L107 35L104 45L97 55L85 65L60 80L55 89L54 100L66 150L68 170L66 180L61 190L56 195L50 200L31 210L20 219L14 230L11 245L12 260L17 285L29 320L32 345L26 355L6 370L-11 390'/%3E%3Cpath d='M-10 490L-6 510L-5 565L-1 585L5 599L15 609L30 616L70 624L85 629L98 640L104 650'/%3E%3Cpath d='M652 240L652 255'/%3E%3Cpath d='M650 367L636 380L623 400L619 410L615 430L615 444L618 460L630 490L634 510L635 565L639 585L645 599L650 605'/%3E%3Cpath d='M251 650L245 600L233 575L220 561L195 547L175 539L155 526L146 515L139 490L140 470L150 451L169 440L205 430L210 426L213 420L213 410L199 365L196 350L195 330L200 315L206 305L226 280L231 265L231 250L228 235L206 185L202 165L204 155L213 145L254 125L264 115L273 95L271 70L253 25L249 -10'/%3E%3Cpath d='M-5 -10L0 -1L5 2L24 -5L40 -8L60 -7L75 -3L90 9L95 19L96 30L94 40L91 45L80 55L65 61L40 65L35 69L36 80L56 135L61 160L61 170L58 180L51 190L20 209L11 220L7 230L6 250L8 265L17 300L22 325L22 335L21 340L15 350L-10 375'/%3E%3Cpath d='M-11 615L-8 625L0 639L5 642L24 635L50 632L75 637L90 649'/%3E%3Cpath d='M635 -10L640 -1L645 2L650 1'/%3E%3Cpath d='M651 220L647 230L646 250L652 280'/%3E%3Cpath d='M650 355L630 375L623 385L610 415L606 435L606 450L623 520L624 590L627 610L632 625L640 639L645 642L650 641'/%3E%3Cpath d='M261 650L255 610L251 595L240 571L220 552L180 533L165 523L155 512L148 495L147 485L149 470L159 455L180 445L210 443L230 450L265 489L280 499L285 499L290 496L292 490L289 465L280 450L265 440L240 429L227 415L216 395L206 370L201 345L201 335L205 320L211 310L228 290L235 275L237 260L232 230L217 190L214 175L215 165L217 160L229 150L255 137L269 125L279 110L285 90L284 70L279 55L265 25L258 -10'/%3E%3Cpath d='M-11 55L-1 70L20 88L35 105L45 124L51 140L54 155L54 165L52 175L49 180L40 189L15 203L5 215L3 220L1 245L14 315L14 330L7 345L-10 364'/%3E%3Cpath d='M610 -10L629 55L639 70L650 80'/%3E%3Cpath d='M650 208L643 220L641 245L651 300'/%3E%3Cpath d='M650 340L630 364L613 390L601 420L598 435L599 460L607 490L614 530L612 565L605 605L616 650'/%3E%3Cpath d='M271 650L259 595L247 565L230 548L175 521L161 505L156 490L156 480L159 470L168 460L175 456L185 453L200 453L215 457L230 468L260 505L275 519L330 551L335 551L334 545L321 525L313 505L304 465L294 440L280 430L250 419L240 413L221 390L212 370L208 355L207 340L210 325L235 291L240 280L242 270L242 255L236 225L228 200L225 175L230 165L235 160L265 141L275 132L290 110L296 90L296 80L292 60L274 20L266 -10'/%3E%3Cpath d='M55 9L55 9'/%3E%3Cpath d='M55 649L65 650'/%3E%3Cpath d='M50 651L55 649'/%3E%3Cpath d='M-10 84L15 100L30 114L40 130L47 155L45 170L38 180L5 199L-3 210L-5 220L-5 240L7 305L7 325L3 335L-10 354' stroke-width='1.9'/%3E%3Cpath d='M596 -10L604 10L615 55L622 75L635 88L650 97' stroke-width='1.9'/%3E%3Cpath d='M651 195L640 204L635 220L635 240L647 305L647 325L637 345L621 365L604 395L596 415L591 435L591 455L604 515L604 545L599 565L589 590L588 600L594 625L604 650' stroke-width='1.9'/%3E%3Cpath d='M280 650L274 630L266 585L259 560L254 550L240 539L195 523L182 515L172 505L166 490L169 475L172 470L179 465L190 462L205 464L220 473L230 484L255 525L264 535L330 574L345 580L355 580L360 578L365 571L362 555L332 515L322 495L316 470L315 441L317 430L320 425L339 410L341 400L336 390L325 386L320 389L310 404L300 413L290 415L265 413L246 405L235 396L223 380L214 355L213 345L216 330L221 320L240 296L245 285L248 270L246 245L235 200L235 180L237 175L245 166L270 148L287 130L297 115L305 90L304 70L301 60L278 5L274 -10' stroke-width='1.9'/%3E%3Cpath d='M570 108L570 108' stroke-width='1.9'/%3E%3Cpath d='M-10 108L0 108L15 114L20 118L33 135L38 150L37 165L30 174L21 180L0 186L-10 192'/%3E%3Cpath d='M-12 225L1 300L-1 325L-12 345'/%3E%3Cpath d='M585 -11L598 20L600 29L604 50L603 75L601 80L590 88L560 93L550 98L546 110L554 130L569 150L580 160L595 168L605 170L610 169L615 160L621 115L625 110L630 108L640 108L650 112'/%3E%3Cpath d='M650 183L635 188L630 192L627 200L629 235L641 300L639 325L632 340L617 360L600 390L591 410L585 434L584 445L586 465L595 505L596 535L588 560L575 585L574 600L594 650'/%3E%3Cpath d='M289 650L285 640L278 600L279 580L280 576L285 571L290 570L300 572L335 588L355 592L370 588L376 580L377 570L370 551L335 500L328 480L327 465L333 445L355 426L361 415L360 401L353 385L335 366L320 363L310 369L295 389L285 398L270 402L260 401L245 394L231 380L222 360L220 350L224 330L245 302L251 290L253 280L252 250L243 205L244 185L250 175L260 165L280 150L294 135L309 110L313 95L312 70L285 0L283 -10'/%3E%3Cpath d='M380 239L380 239'/%3E%3Cpath d='M190 475L190 475'/%3E%3Cpath d='M-11 260L-5 295L-5 310L-11 330'/%3E%3Cpath d='M575 -12L585 9L592 30L594 45L592 60L587 70L580 75L570 79L545 83L535 88L531 95L531 100L542 125L568 160L605 190L613 200L620 220L635 295L635 310L629 330L596 385L581 420L579 430L578 445L580 465L588 505L588 530L582 550L566 575L562 585L562 595L568 615L585 649'/%3E%3Cpath d='M297 650L290 620L290 605L294 595L305 590L349 600L370 599L379 595L383 590L386 575L378 550L345 500L339 480L340 465L345 455L349 450L369 435L373 430L376 420L372 400L355 370L347 360L330 348L320 347L310 349L302 355L280 384L265 390L250 386L240 378L235 372L230 361L228 350L231 335L253 305L259 285L260 275L258 255L250 210L252 190L262 175L285 156L304 135L316 115L321 100L322 90L318 65L297 10L292 -10'/%3E%3Cpath d='M0 130L-0 130'/%3E%3Cpath d='M640 130L645 128L650 129'/%3E%3Cpath d='M650 168L641 165L635 156L634 140L640 130'/%3E%3Cpath d='M375 223L375 223'/%3E%3Cpath d='M567 -10L581 20L584 35L584 45L581 55L575 63L560 70L520 74L515 77L513 85L514 90L534 125L548 145L564 165L600 200L607 210L614 225L620 245L629 290L629 305L626 320L580 405L573 430L573 455L580 490L582 510L581 525L574 545L554 575L551 590L556 610L577 650'/%3E%3Cpath d='M305 650L302 635L302 620L306 610L310 607L320 605L350 608L365 608L379 605L390 597L393 590L394 580L391 565L385 550L360 510L353 495L350 480L352 470L355 465L365 455L380 445L389 430L388 415L382 400L372 380L353 350L345 341L336 335L320 331L310 332L295 339L273 370L265 375L255 375L245 368L240 360L238 350L243 335L263 310L267 295L266 270L258 220L260 195L270 180L295 158L310 141L325 116L329 100L329 85L326 70L305 10L302 -10'/%3E%3Cpath d='M375 209L375 209'/%3E%3Cpath d='M558 -10L564 0L572 20L574 40L570 50L560 58L545 61L510 57L500 58L495 60L491 70L494 80L500 90L541 145L569 180L597 210L606 225L612 240L621 275L623 295L618 320L578 395L570 415L567 430L567 450L575 495L574 525L565 544L546 570L542 585L544 600L552 620L568 650'/%3E%3Cpath d='M314 650L312 640L313 630L319 620L330 616L370 615L380 613L395 605L400 596L401 580L396 560L387 540L367 505L363 485L365 476L369 470L394 450L400 440L401 425L397 410L365 350L358 330L358 325L359 320L365 316L410 306L430 296L441 280L443 260L438 240L421 210L405 195L390 191L380 193L370 197L355 208L346 220L342 230L338 250L341 305L337 310L325 314L300 316L290 314L285 311L281 305L266 235L266 205L270 196L278 185L305 161L325 136L332 125L338 105L338 95L334 75L315 16L312 0L313 -10'/%3E%3Cpath d='M549 -10L555 0L563 20L563 35L557 45L545 50L535 50L500 42L490 42L481 45L477 50L475 60L477 70L484 85L530 138L560 179L594 220L600 230L610 255L615 280L616 295L612 315L566 405L561 425L561 445L569 490L568 520L559 540L537 570L534 580L537 605L559 650' stroke-width='1.9'/%3E%3Cpath d='M322 650L324 635L328 630L335 626L345 623L375 621L390 618L400 613L406 605L408 585L405 571L396 545L379 510L376 500L376 490L377 485L384 475L405 456L410 446L412 430L407 410L380 360L376 340L380 330L390 323L420 315L445 303L455 291L460 275L455 250L442 225L423 195L405 177L390 172L380 174L365 182L345 200L338 210L334 220L329 245L325 280L320 290L310 296L301 295L295 292L286 280L279 260L273 230L275 210L283 195L310 172L338 140L344 130L348 115L344 85L323 20L322 5L324 -5L328 -10' stroke-width='1.9'/%3E%3Cpath d='M540 -10L549 10L551 20L549 30L545 34L530 37L495 29L485 28L475 30L470 32L465 38L463 55L466 70L477 90L525 140L587 225L598 245L606 270L607 295L604 310L582 360L560 400L554 425L564 495L561 520L553 535L537 555L527 575L526 590L529 605L549 650'/%3E%3Cpath d='M331 650L335 640L345 632L394 625L405 621L410 617L414 610L416 595L411 570L390 515L388 500L390 491L412 465L418 455L422 440L422 430L415 405L398 375L392 360L390 350L393 340L409 330L450 322L460 318L470 311L500 281L504 275L502 270L497 265L481 255L465 240L453 225L426 180L415 165L405 155L395 149L375 141L370 137L366 130L338 50L331 20L332 5L340 -5L345 -8L365 -12'/%3E%3Cpath d='M315 195L315 195'/%3E%3Cpath d='M529 -10L534 5L533 15L530 19L525 21L515 21L480 15L465 16L455 22L452 30L452 45L458 75L466 90L480 105L509 130L537 165L588 250L592 260L596 280L595 300L587 325L573 360L553 395L547 415L548 435L558 485L558 505L556 515L552 525L525 560L519 580L519 595L522 610L531 635L534 650'/%3E%3Cpath d='M341 650L344 645L355 638L375 634L410 631L420 625L423 620L425 610L420 580L399 515L399 505L402 495L424 465L431 440L430 415L427 405L408 365L407 360L410 350L415 346L425 343L455 346L470 346L475 344L502 315L535 292L540 287L545 275L544 265L537 255L520 247L505 244L480 235L465 223L451 205L420 150L405 135L380 117L370 105L354 75L344 50L339 30L339 15L344 5L355 -2L375 -6L405 -8L415 -11'/%3E%3Cpath d='M515 -10L513 0L505 4L480 3L455 -2L445 -8'/%3E%3Cpath d='M365 3L365 3'/%3E%3Cpath d='M550 310L555 308L565 309L570 315L571 320L568 345L562 360L542 390L538 405L538 415L552 480L552 505L544 525L520 554L515 564L511 580L511 600L514 615L515 635L513 640L505 644L480 643L455 638L445 632L436 615L413 540L409 520L409 510L412 500L425 481L437 455L441 430L440 390L443 380L455 376L475 376L490 371L500 360L515 331L525 322L549 310'/%3E%3Cpath d='M365 643L375 641L405 641L420 643L430 648'/%3E%3Cpath d='M353 650L365 643'/%3E%3Cpath d='M375 9L375 9'/%3E%3Cpath d='M495 395L495 395'/%3E%3Cpath d='M375 649L390 648L405 651'/%3E%3Cpath d='M370 651L375 649'/%3E%3Cpath d='M375 19L385 17L400 19L410 24L419 35L424 45L427 60L426 80L420 89L415 91L400 89L386 80L376 70L370 60L364 40L367 25L373 20' stroke-width='1.9'/%3E%3Cpath d='M470 135L470 135' stroke-width='1.9'/%3E%3Cpath d='M480 413L480 413' stroke-width='1.9'/%3E%3Cpath d='M385 29L385 29'/%3E%3Cpath d='M480 155L480 155'/%3E%3Cpath d='M490 425L490 425'/%3E%3Cpath d='M485 440L495 437L500 438L510 443L515 448L520 455L526 470L528 490L525 500L519 510L490 534L472 555L465 560L460 558L455 550L452 535L453 525L469 460L474 450L484 440'/%3E%3Cpath d='M490 453L490 453'/%3E%3C/g%3E%3C/svg%3E"); /* texture A (Peyton 10-12), onyx lines for the orange closing */
  --topo:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600' viewBox='0 0 600 600'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.07' stroke-width='1.2'%3E%3Cpath d='M-20 120c90-60 170 40 260 0s150-90 240-40 140 60 160 40'/%3E%3Cpath d='M-20 160c90-60 170 40 260 0s150-90 240-40 140 60 160 40'/%3E%3Cpath d='M-20 200c100-50 160 50 260 10s160-80 240-30 140 50 160 30'/%3E%3Cpath d='M-20 300c80 40 180-50 280-10s150 90 230 40 120-40 150-20'/%3E%3Cpath d='M-20 340c80 40 180-50 280-10s150 90 230 40 120-40 150-20'/%3E%3Cpath d='M-20 380c90 30 170-40 270 0s160 80 240 30 130-30 150-10'/%3E%3Cpath d='M-20 480c110-40 170 30 270 0s150-70 250-20 120 40 140 20'/%3E%3Cpath d='M-20 520c110-40 170 30 270 0s150-70 250-20 120 40 140 20'/%3E%3Cellipse cx='460' cy='290' rx='60' ry='36'/%3E%3Cellipse cx='460' cy='290' rx='34' ry='18'/%3E%3C/g%3E%3C/svg%3E");
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font:400 17px/1.65 var(--bd);color:var(--ink);background:#fff;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--orange-tx)}
a:hover{color:var(--onyx)}
h1,h2,h3{font-family:var(--hd);color:var(--onyx);line-height:1.1;margin:0 0 .5em;letter-spacing:.2px}
h1{font-size:clamp(30px,3.4vw,44px);font-weight:700}
h2{font-size:clamp(30px,3.3vw,44px);font-weight:700}
h3{font-size:24px;font-weight:600}
p{margin:0 0 1em}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-999px;top:0;background:var(--onyx);color:#fff;padding:10px 14px;z-index:999}
.skip:focus{left:10px}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font:700 16px/1 var(--bd);letter-spacing:.4px;text-transform:uppercase;text-decoration:none;padding:14px 22px;border-radius:var(--r);border:2px solid transparent;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s}
.btn--lg{padding:17px 28px;font-size:17px}
.btn--orange{background:var(--orange);color:var(--onyx)}
.btn--orange:hover{background:var(--onyx);color:#fff}
.btn--dark{background:var(--onyx);color:#fff}
.btn--dark:hover{background:var(--orange);color:var(--onyx)}
.btn--ghost{border-color:var(--onyx);color:var(--onyx);background:transparent}
.btn--ghost:hover{background:var(--onyx);color:#fff}
.btn--light{background:#fff;color:var(--onyx)}
.btn--light:hover{background:var(--orange);color:var(--onyx)}
.btn--line{border-color:var(--onyx);color:var(--onyx)}
.btn--line:hover{background:var(--onyx);color:#fff}

/* eyebrow: single left dash; centred = dash both sides */
.eyebrow{display:inline-flex;align-items:center;gap:12px;font:700 15px/1 var(--bd);letter-spacing:2px;text-transform:uppercase;color:var(--orange-tx);margin:0 0 14px}
.eyebrow::before{content:"";width:34px;height:3px;background:var(--orange)}
.eyebrow--c::after{content:"";width:34px;height:3px;background:var(--orange)}
.dark .eyebrow,.hero .eyebrow{color:var(--orange)}

/* topbar + header — Innovative (Peyton 10-12): logo sits inside the bar at one fixed size, no bump, no resize on scroll */
.topbar{background:var(--onyx);color:#d6d6d6;font-size:14px}
.topbar-in{display:flex;justify-content:space-between;align-items:center;min-height:38px;gap:16px}
.topbar i{color:var(--orange);margin-right:4px}
.tb-right{display:flex;gap:22px;align-items:center}
.tb-soc{display:flex;gap:14px}
.tb-phone{color:#fff;font-weight:700;text-decoration:none}
.tb-phone:hover{color:var(--orange)}
.tb-soc a{color:#d6d6d6}
.tb-soc a:hover{color:var(--orange)}
.tb-soc i{color:inherit;margin:0}
.site-header{position:sticky;top:0;z-index:50;background:#fff;box-shadow:0 1px 0 var(--line)}
.hdr-in{display:flex;align-items:center;gap:28px;height:84px;position:relative}
.logo{display:block;flex:none;line-height:0}
.logo img{height:58px;width:auto}
.site-header{transition:box-shadow .2s}
.site-header.is-stuck{box-shadow:0 6px 18px rgba(20,20,20,.08)}
.nav{margin-left:auto}
.menu{list-style:none;display:flex;gap:2px;margin:0;padding:0}
.menu>li{position:relative}
.nav-top{display:flex;align-items:center;gap:7px;font:600 18px/1 var(--bd);color:var(--onyx);background:none;border:0;padding:14px 13px;white-space:nowrap;cursor:pointer;text-decoration:none}
.nav-top i{font-size:11px;color:var(--orange-tx)}
.nav-top:hover{color:var(--orange-tx)}
.sub{list-style:none;margin:0;padding:10px 0;position:absolute;top:100%;left:0;min-width:250px;background:#fff;border-top:3px solid var(--orange);box-shadow:var(--sh);opacity:0;visibility:hidden;transform:translateY(6px);transition:all .18s}
.has-sub:hover .sub,.has-sub:focus-within .sub,.has-sub.open .sub{opacity:1;visibility:visible;transform:none}
.sub a{display:block;padding:9px 20px;color:var(--ink);text-decoration:none;font-size:16px}
.sub a:hover{background:var(--smoke);color:var(--orange-tx)}
.hdr-cta{display:flex;gap:10px}
.burger{display:none;margin-left:auto;background:none;border:0;width:44px;height:44px;cursor:pointer;padding:10px}
.burger span{display:block;height:3px;background:var(--onyx);margin:5px 0;border-radius:2px}
.mob-cta{display:none}
.mnav{background:#fff;border-top:1px solid var(--line);padding:12px 24px 22px}
.mnav a{display:block;padding:9px 0;color:var(--onyx);text-decoration:none;border-bottom:1px solid var(--smoke)}
.mnav-h{font:700 13px/1 var(--bd);letter-spacing:2px;text-transform:uppercase;color:var(--orange-tx);margin:16px 0 4px}
.mnav-contact{font-weight:700}

/* hero */
.hero{position:relative;background:var(--onyx);color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:var(--topo) repeat,radial-gradient(1200px 500px at 85% 20%,#2a2a2a,transparent);opacity:1}
.hero::after{content:"";position:absolute;right:-8%;bottom:-40%;width:55%;height:140%;background:var(--orange);transform:skewX(-14deg);opacity:.08}
.hero-in{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;padding:86px 24px 90px}
.plate{display:inline-block;background:var(--orange);color:var(--onyx);font:700 clamp(17px,1.6vw,22px)/1 var(--hd);letter-spacing:1.5px;text-transform:uppercase;padding:11px 16px 10px;margin:0 0 22px}
.hero-line{font:700 clamp(40px,5vw,66px)/1.02 var(--hd);color:#fff;margin:0 0 20px;letter-spacing:.3px}
.hero-sub{font-size:19px;color:#d9d9d9;max-width:560px;margin:0 0 30px}
.hero-btns{display:flex;flex-wrap:wrap;gap:12px}
.hero-fig{margin:0;position:relative}
.hero-fig::before{content:"";position:absolute;inset:18px -18px -18px 18px;border:3px solid var(--orange);border-radius:var(--r)}
.hero-fig img{position:relative;border-radius:var(--r);aspect-ratio:5/4;object-fit:cover;width:100%;box-shadow:0 25px 50px rgba(0,0,0,.45)}
.hero-fig figcaption{position:absolute;left:16px;bottom:16px;background:rgba(20,20,20,.82);color:#eee;font-size:13px;padding:6px 10px;border-radius:4px}

/* sections */
.sec{padding:92px 0}
.bg-smoke{background:var(--smoke)}
.dark{background:var(--onyx) var(--topo) repeat;color:#d9d9d9}
.dark h2,.dark h3{color:#fff}
.sec-head{max-width:760px;margin:0 0 46px}
.sec-head.c{text-align:center;margin-left:auto;margin-right:auto}
.sec-head.row{max-width:none;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.sec-head p{font-size:18px;color:var(--mute)}
.dark .sec-head p{color:#cfcfcf}

/* intro */
.intro-in{display:grid;grid-template-columns:1.3fr 1fr;gap:64px;align-items:center}
.lead{font-size:19px}
.stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:18px}
.stats li{background:var(--smoke);border-left:5px solid var(--orange);padding:22px 20px;border-radius:0 var(--r) var(--r) 0}
.stats strong{display:block;font:700 40px/1 var(--hd);color:var(--onyx);margin-bottom:6px}
.stats span{font-size:15px;color:var(--mute);line-height:1.3;display:block}

/* service cards */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.card{display:flex;flex-direction:column;background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(20,20,20,.14);color:var(--ink)}
.card-img{aspect-ratio:16/10;overflow:hidden;border-bottom:4px solid var(--orange)}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.card:hover .card-img img{transform:scale(1.05)}
.card-b{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1}
.card-b p{color:var(--mute);font-size:16px;flex:1}
.more{font:700 15px/1 var(--bd);letter-spacing:.8px;text-transform:uppercase;color:var(--orange-tx);display:inline-flex;gap:8px;align-items:center}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;background:#fff}
.split-img img{width:100%;height:100%;object-fit:cover;min-height:420px}
.split-copy{padding:80px clamp(24px,6vw,96px) 80px clamp(24px,5vw,72px);max-width:680px;align-self:center}
.split-copy .btn{margin-top:10px}

/* process */
/* Peyton 11-05 UX: Home "How We Work" steps use the full viewport width (heading stays centred at 760px) */
.process>.wrap{max-width:none;padding-left:clamp(24px,3vw,64px);padding-right:clamp(24px,3vw,64px)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:22px;counter-reset:s}
.steps li{position:relative;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-top:4px solid var(--orange);border-radius:var(--r);padding:26px 22px}
.num{display:block;font:700 46px/1 var(--hd);color:var(--orange);margin-bottom:12px}
.steps h3{font-size:24px}
.steps h3 a{color:#fff;text-decoration:underline;text-decoration-color:var(--orange);text-underline-offset:4px}
.steps p{font-size:15.5px;color:#cfcfcf;margin:0}

/* markets */
.mcards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.mcard{position:relative;display:flex;flex-direction:column;border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);transition:box-shadow .2s,transform .2s}
.mcard:hover{box-shadow:var(--sh);transform:translateY(-4px);color:var(--ink)}
.mcard img{height:210px;width:100%;object-fit:cover}
.mcard-b{padding:24px;flex:1;display:flex;flex-direction:column}
.mcard-b p{font-size:16px;color:var(--mute);flex:1}
.also{margin-top:34px;display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap}
.also span{font:700 15px/1 var(--bd);letter-spacing:1.6px;text-transform:uppercase;color:var(--onyx)}
.also ul{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0}
.also li{background:var(--smoke);border:1px solid var(--line);border-radius:40px;padding:7px 16px;font-size:15px}

/* renderings gallery */
.render-in{display:grid;grid-template-columns:1fr 1.4fr;gap:20px 56px;align-items:center}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.g-tile{padding:0;border:0;border-radius:var(--r);overflow:hidden;cursor:zoom-in;background:#fff;aspect-ratio:4/3;box-shadow:var(--sh)}
.g-tile img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.g-tile:hover img{transform:scale(1.05)}
.g-more{display:none}
.gallery.show-all .g-more{display:block}
.g-actions{margin-top:8px}
.lb{position:fixed;inset:0;background:rgba(10,10,10,.92);display:flex;align-items:center;justify-content:center;z-index:100;padding:40px}
.lb img{max-height:86vh;max-width:92vw;width:auto;border-radius:4px}
.lb button{position:absolute;background:none;border:0;color:#fff;font-size:34px;cursor:pointer;padding:12px}
.lb .lb-x{top:10px;right:16px}.lb .lb-p{left:10px}.lb .lb-n{right:10px}

/* why */
.why-in{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:center}
.acc details{border:1px solid var(--line);border-radius:var(--r);margin-bottom:12px;background:#fff}
.acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:17px 20px;font:600 21px/1.2 var(--hd);color:var(--onyx)}
.acc summary::-webkit-details-marker{display:none}
.acc summary i{color:var(--orange-tx);font-size:15px;transition:transform .2s}
.acc details[open] summary{border-bottom:1px solid var(--line)}
.acc details[open] summary i{transform:rotate(45deg)}
.acc details p{padding:16px 20px 4px;margin:0 0 12px;color:var(--mute);font-size:16.5px}
.why .acc details[open]{border-left:4px solid var(--orange)}
.why-img{position:relative}
.why-img img{border-radius:var(--r);width:100%;aspect-ratio:4/3.4;object-fit:cover}
.why-badge{position:absolute;left:-26px;bottom:-26px;background:var(--orange);color:var(--onyx);padding:20px 24px;border-radius:var(--r);max-width:220px;box-shadow:var(--sh)}
.why-badge strong{display:block;font:700 46px/1 var(--hd)}
.why-badge span{font-size:15px;font-weight:600;line-height:1.3;display:block}

/* service area */
.area-in{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.area a{color:var(--orange)}
.area a:hover{color:#fff}
.towns{list-style:none;margin:20px 0 0;padding:0;columns:3;column-gap:20px}
.towns li{padding:4px 0 4px 16px;position:relative;font-size:15.5px;break-inside:avoid}
.towns li::before{content:"";position:absolute;left:0;top:13px;width:7px;height:7px;background:var(--orange);transform:rotate(45deg)}
.towns a{font-weight:700}
.area-map iframe,.slot--map{width:100%;height:460px;border:0;border-radius:var(--r)}
.slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:2px dashed rgba(255,255,255,.35);color:#eee;text-align:center;font-weight:700;background:rgba(255,255,255,.04)}
.slot small{font-weight:400;color:#bbb}
.slot i{color:var(--orange)}

/* faq */
.faq-in .acc{max-width:880px;margin:0 auto}

/* blog */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.post{background:#fff;border:1px solid var(--line);border-top:4px solid var(--orange);border-radius:var(--r);padding:26px}
.post-date{font-size:14px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--mute);margin-bottom:8px}
.post h3{font-size:25px}
.post h3 a{color:var(--onyx);text-decoration:none}
.post h3 a:hover{color:var(--orange-tx)}
.post p{color:var(--mute);font-size:16px;margin:0}

/* closing */
.closing{background:var(--orange);position:relative;overflow:hidden}
.closing::before{content:"";position:absolute;inset:0;background:var(--topo-onyx) repeat;background-size:640px 640px;pointer-events:none}
.closing-in{position:relative;display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center;padding:70px 24px}
.closing h2{color:var(--onyx)}
.closing p{color:var(--onyx);font-size:18px;margin:0}
.closing a.tel{color:var(--onyx);font-weight:700}
.closing-btns{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}
a.tel{white-space:nowrap}

/* footer */
.site-footer{background:var(--onyx);color:#cfcfcf;font-size:16px}
.f-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:40px;padding:70px 24px 50px}
.f-logo img{width:240px;height:auto}
.f-tag{font:700 20px/1.2 var(--hd);color:#fff;margin:18px 0 6px;letter-spacing:.5px}
.f-group{font-size:15px}
.site-footer a{color:#e8e8e8;text-decoration:none}
.site-footer a:hover{color:var(--orange)}
.f-group a{color:var(--orange)}
.f-soc{display:flex;gap:10px;flex-wrap:wrap}
.f-soc a{width:38px;height:38px;border-radius:50%;background:#262626;display:flex;align-items:center;justify-content:center}
.f-soc a:hover{background:var(--orange);color:var(--onyx)}
.f-h{font:700 20px/1 var(--hd);color:#fff;letter-spacing:1px;text-transform:uppercase;margin:6px 0 18px}
.f-links{list-style:none;margin:0;padding:0}
.f-links li{margin-bottom:8px}
.f-contact p{display:flex;gap:12px;margin:0 0 10px}
.f-contact i{color:var(--orange);margin-top:5px;width:16px}
.f-hours{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px solid #2c2c2c;font-size:15px}
.f-hours li{display:flex;justify-content:space-between;gap:10px;margin-bottom:4px}
.f-bottom{border-top:1px solid #2c2c2c;padding:20px 0;font-size:14px;text-align:center}
.f-bottom p{margin:4px 0}
.f-bottom a{margin:0 6px;text-decoration:underline}
.twg a{margin:0}

/* responsive */
@media (max-width:1100px){
  .steps{grid-template-columns:repeat(3,1fr)}
  .f-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:980px){
  .nav,.hdr-cta{display:none}
  .burger{display:block}
  .tb-hours{display:none}
  .hero-in,.intro-in,.why-in,.area-in,.render-in,.closing-in{grid-template-columns:1fr}
  .hero-in{padding:60px 24px 70px;gap:44px}
  .hero-fig{max-width:620px}
  .cards,.mcards,.posts{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr}
  .split-img img{min-height:0;aspect-ratio:16/9}
  .split-copy{max-width:none;padding:60px 24px}
  .render-in{row-gap:0}
  .render-copy{display:contents}
  .render-copy .g-actions{order:2;margin-top:18px}
  .gallery{order:1;margin-top:10px}
  .closing-btns{justify-content:flex-start}
  .why-badge{left:16px;bottom:16px}
}
@media (max-width:767px){
  body{font-size:16.5px}
  .sec{padding:64px 0}
  .topbar-in>span:first-child{font-size:13px}
  .tb-right{display:none}
  .hdr-in{height:72px}
  .logo img{height:48px}
  .mob-cta{display:flex;flex-direction:column;gap:8px;padding-top:4px;padding-bottom:12px}
  .mob-cta .btn{width:100%}
  .cards,.mcards,.posts,.steps,.stats{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr}
  .stats strong{font-size:32px}
  .towns{columns:2}
  .sec-head.row{flex-direction:column;align-items:flex-start}
  .gallery{grid-template-columns:1fr 1fr;gap:10px}
  .area-map iframe,.slot--map{height:340px}
  .f-grid{grid-template-columns:1fr;padding:56px 24px 40px}
  .hero-fig::before{inset:12px -10px -12px 12px}
  .why-badge{position:static;margin-top:16px;max-width:none}
}
@media (max-width:380px){ .stats{grid-template-columns:1fr} .towns{columns:1} .btn--lg{padding:15px 18px;font-size:16px} }

/* Service-area My Map (Peyton 10-12) — Geek pattern: crop the 67px My Maps title bar, click-to-activate shield */
.mymap{position:relative;overflow:hidden;height:540px;border-radius:var(--r);background:#2a2a2a;box-shadow:var(--sh)}
.mymap iframe{position:absolute;left:0;right:0;top:-67px;width:100%;height:calc(100% + 67px);border:0;pointer-events:none}
.mymap.is-active iframe{pointer-events:auto}
.map-shield{position:absolute;inset:0;z-index:2;display:flex;align-items:flex-start;justify-content:center;padding:14px;margin:0;border:0;background:transparent;cursor:pointer;font:inherit}
.mymap.is-active .map-shield{display:none}
.map-hint{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:var(--onyx);color:#fff;font-size:.86rem;font-weight:600;line-height:1.2;box-shadow:var(--sh);opacity:.92;transition:opacity .2s}
.map-shield:hover .map-hint,.map-shield:focus-visible .map-hint{opacity:1}
.map-shield:focus-visible{outline:3px solid var(--orange);outline-offset:-3px;border-radius:var(--r)}
@media (max-width:640px){.mymap{height:340px}}

/* Photo-gap brand panel (Peyton 10-12: photos, not illustrations; Hearn pattern until a real/stock photo arrives) */
.ph-panel{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:210px;background:var(--onyx) radial-gradient(circle at 30% 20%,rgba(230,143,26,.18),transparent 60%);color:var(--orange);font-size:64px}
.mcard .ph-panel{height:210px;border-bottom:4px solid var(--orange)}

/* Links on black backgrounds (Peyton 10-12): bright brand orange, underlined; the dark-orange #9A5800 is for light backgrounds only */
.dark p a:not(.btn),.dark li a:not(.btn),.hero p a:not(.btn){color:#F5A43A;text-decoration:underline;text-underline-offset:3px}
.dark p a:not(.btn):hover,.dark li a:not(.btn):hover,.hero p a:not(.btn):hover{color:#fff}

/* ===== Stage 7 full site (v0.2, 2026-10-20): interior templates ===== */
a.tel{font-weight:700}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.crumbs{display:flex;gap:8px;flex-wrap:wrap;font-size:14.5px;color:#cfcfcf;margin:0 0 18px}
.crumbs a{color:#F5A43A;text-decoration:underline;text-underline-offset:3px}
.crumbs a:hover{color:#fff}
/* photo hero (service, market, area, hub, about) */
.phero{position:relative;background:var(--onyx);color:#fff;overflow:hidden}
.phero-bg{position:absolute;inset:0}
.phero-bg img{width:100%;height:100%;object-fit:cover}
.phero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(20,20,20,.94) 0%,rgba(20,20,20,.86) 42%,rgba(20,20,20,.45) 100%)}
.phero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:var(--orange);z-index:2}
.phero-in{position:relative;z-index:2;padding:78px 24px 88px;max-width:var(--wrap)}
.phero-in>*{max-width:700px}
.phero .hero-line{font-size:clamp(36px,4.4vw,58px)}
.phero .hero-sub a{color:#F5A43A;text-decoration:underline;text-underline-offset:3px}
.phero .hero-sub a:hover{color:#fff}
/* band hero (form, faq, legal, blog, thanks) */
.bhero{background:var(--onyx) var(--topo) repeat;color:#d9d9d9;border-bottom:6px solid var(--orange)}
.bhero-in{padding:64px 24px 66px}
.bhero h1{color:#fff;font-size:clamp(36px,4.2vw,56px);margin:0 0 12px}
.bhero .hero-sub{margin:0 0 6px;max-width:760px}
.bhero .hero-sub a,.bhero-p a:not(.btn){color:#F5A43A}
.bhero-p p{font-size:19px;max-width:760px}
.bhero .hero-btns{margin-top:22px}
/* intro (H1 + opening copy) */
.intro2-in{display:grid;grid-template-columns:1.5fr 1fr;gap:56px;align-items:start}
.intro2--map{grid-template-columns:1.15fr 1fr;align-items:center}
.intro2 h1{font-size:clamp(32px,3.2vw,44px)}
.intro2 p{font-size:18px}
.ccard{background:var(--smoke);border-top:5px solid var(--orange);border-radius:var(--r);padding:28px 28px 30px;box-shadow:var(--sh)}
.ccard-h{font:700 26px/1.1 var(--hd);color:var(--onyx);margin:0 0 12px}
.ccard-tel{font-size:22px;margin:0 0 12px}
.ccard-tel i{color:var(--orange-tx);margin-right:6px}
.ccard .f-hours{margin:0 0 20px;color:var(--ink)}
.ccard .f-hours li{border-color:var(--line)}
/* content sections */
.wtext h2,.split2-copy h2{margin-bottom:.45em}
.wtext h3,.split2-copy h3{margin-top:1.1em}
.wtext>p,.wtext>ul,.wtext>ol,.wtext>h3{max-width:none}
.narrow{max-width:860px}
.split2{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center}
.split2--rev .split2-copy{order:2}
.split2-fig{display:grid;gap:18px}
.sfig{margin:0;position:relative}
.sfig img{width:100%;border-radius:var(--r);aspect-ratio:4/3;object-fit:cover;box-shadow:var(--sh)}
.sfig--tall img{aspect-ratio:3/4;max-height:640px}
.split2-fig .sfig:first-child::before{content:"";position:absolute;inset:14px -14px -14px 14px;border:3px solid var(--orange);border-radius:var(--r);z-index:-1}
.split2--rev .split2-fig .sfig:first-child::before{inset:14px 14px -14px -14px}
.split2-fig{position:relative;z-index:0}
.split2-fig .sfig+.sfig img{aspect-ratio:16/9}
.checks{list-style:none;margin:0 0 1.2em;padding:0;display:grid;gap:10px}
.checks--2{grid-template-columns:1fr 1fr;column-gap:28px}
.checks li{position:relative;padding:12px 16px 12px 46px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--orange);border-radius:var(--r);line-height:1.45}
.bg-smoke .checks li{background:#fff}
.sec:not(.bg-smoke) .checks li{background:var(--smoke);border-color:#e6e6e6;border-left-color:var(--orange)}
.checks li::before{content:"";position:absolute;left:17px;top:15px;width:13px;height:14px;background:var(--orange-tx);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M434.8 70.1c14.3 10.4 17.5 30.4 7.1 44.7l-256 352c-5.5 7.6-14 12.3-23.4 13.1s-18.5-2.7-25.1-9.3l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l101.5 101.5 234-321.7c10.4-14.3 30.4-17.5 44.7-7.1z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M434.8 70.1c14.3 10.4 17.5 30.4 7.1 44.7l-256 352c-5.5 7.6-14 12.3-23.4 13.1s-18.5-2.7-25.1-9.3l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l101.5 101.5 234-321.7c10.4-14.3 30.4-17.5 44.7-7.1z'/%3E%3C/svg%3E") center/contain no-repeat}
.isteps{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.isteps li{display:flex;gap:18px;align-items:flex-start;background:#fff;border-radius:var(--r);padding:18px 20px;box-shadow:var(--sh)}
.isteps .num{font:700 30px/1 var(--hd);color:var(--orange-tx)}
.tcards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.tcards li{background:#fff;border-top:4px solid var(--orange);border-radius:var(--r);padding:22px;box-shadow:var(--sh)}
.cards--4{grid-template-columns:repeat(4,1fr);gap:22px}
.cards--4 .card-b{padding:20px}
.cards--4 h3{font-size:22px}
.callout{background:var(--onyx);color:#eee;border-left:5px solid var(--orange);padding:20px 24px;border-radius:var(--r);margin:0 0 1em}
/* global Why block */
.why-cards{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.why-cards li{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-top:4px solid var(--orange);border-radius:var(--r);padding:26px 24px}
.why-cards h3{color:#fff;font-size:23px;margin:12px 0 8px}
.why-cards p{margin:0;font-size:16px;color:#cfcfcf}
.why-ic{display:inline-flex;width:48px;height:48px;align-items:center;justify-content:center;border-radius:50%;background:var(--orange);color:var(--onyx);font-size:20px}
.why-more{text-align:center;margin:34px 0 0}
/* light map section (hub) */
.s-area .towns li{color:var(--ink)}
.s-area .area-in{align-items:center}
/* FAQ page */
.pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.pills a{display:inline-block;padding:9px 16px;border:2px solid rgba(255,255,255,.35);border-radius:999px;color:#fff;text-decoration:none;font-weight:600;font-size:15px;transition:background .2s,border-color .2s,color .2s}
.pills a:hover{background:var(--orange);border-color:var(--orange);color:var(--onyx)}
.faq-grp{scroll-margin-top:110px}
.faq-grp .sec-head{margin-bottom:26px}
/* forms */
.form-s{background:#fff}
.cgrid{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:start}
.gform{background:var(--smoke);border-radius:var(--r);padding:32px;border-top:5px solid var(--orange)}
.form-note{font-size:14px;color:var(--mute);background:#fff;border:1px dashed var(--silver);padding:10px 12px;border-radius:4px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px;margin:0 0 22px}
.fld{display:flex;flex-direction:column;gap:6px}
.fld--full{grid-column:1/-1}
.fld label{font-weight:600;font-size:15.5px;color:var(--onyx)}
.req{color:#b3261e}
.fld input,.fld select,.fld textarea{font:inherit;font-size:16px;padding:12px 13px;border:1px solid #bdbdbd;border-radius:4px;background:#fff;color:var(--ink);width:100%}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:3px solid var(--orange);outline-offset:0;border-color:var(--onyx)}
.dob{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:10px}
.cinfo{background:var(--onyx);color:#d9d9d9;border-radius:var(--r);padding:30px}
.cinfo .ccard-h{color:#fff}
.cinfo p,.cinfo .ch{display:flex;gap:14px;align-items:flex-start;margin:0 0 16px}
.cinfo i{color:var(--orange);margin-top:5px;width:18px;text-align:center}
.cinfo strong{color:#fff}
.cinfo a.tel{color:#F5A43A}
.cinfo a.tel:hover{color:#fff}
.cinfo .ch>span{flex:1}
.cinfo .f-hours{margin:6px 0 0}
.cmap iframe{width:100%;height:260px;border:0;border-radius:var(--r);margin-top:6px}
.legal h2{font-size:30px;margin-top:1.2em}
.legal ul{padding-left:1.2em}
/* gallery (home, 4 tiles) */
.gallery--4{grid-template-columns:repeat(4,1fr)}
/* blog */
.bgrid{display:grid;grid-template-columns:1fr 320px;gap:48px;align-items:start}
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.pcard{background:#fff;border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;display:flex;flex-direction:column}
.pcard-img{display:block;aspect-ratio:16/8;background:var(--onyx) var(--topo) repeat;border-bottom:4px solid var(--orange)}
.pfallback{display:flex;height:100%;align-items:center;justify-content:center}
.pfallback img{width:46%;opacity:.95}
.pcard-b{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1}
.pcard-b p{color:var(--mute);font-size:16px}
.pcard-b .more{margin-top:auto}
.h3{font:600 24px/1.15 var(--hd);margin:0 0 10px}
.h3 a{color:var(--onyx);text-decoration:none}
.h3 a:hover{color:var(--orange-tx)}
.pmeta{font-size:13.5px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--orange-tx);margin:0 0 8px}
.pmeta--hero{color:#F5A43A;margin-top:4px}
.bside{display:grid;gap:20px;position:sticky;top:110px}
.bbox{background:var(--smoke);border-radius:var(--r);padding:20px 22px;border-top:4px solid var(--orange)}
.bbox-h{font:700 22px/1.1 var(--hd);color:var(--onyx);margin:0 0 12px}
.bsearch{display:flex}
.bsearch input{flex:1;font:inherit;font-size:16px;padding:10px 12px;border:1px solid #bdbdbd;border-right:0;border-radius:4px 0 0 4px;min-width:0}
.bsearch button{border:0;background:var(--onyx);color:#fff;padding:0 14px;border-radius:0 4px 4px 0;cursor:pointer}
.bsearch button:hover{background:var(--orange);color:var(--onyx)}
.bcat{width:100%;font:inherit;font-size:16px;padding:10px 12px;border:1px solid #bdbdbd;border-radius:4px;background:#fff}
.brecent{list-style:none;margin:0;padding:0}
.brecent li{padding:8px 0;border-bottom:1px solid var(--line);font-size:15.5px;line-height:1.35}
.brecent a{color:var(--ink);text-decoration:none}
.brecent a:hover{color:var(--orange-tx);text-decoration:underline}
.bcta{background:var(--onyx);color:#d9d9d9}
.bcta .bbox-h{color:#fff}
.bcta a.tel{color:#F5A43A}
.bcta a.tel:hover{color:#fff}
.post-body{font-size:18px;min-width:0}
.post-body h2{font-size:clamp(26px,2.6vw,34px);margin-top:1.3em}
.post-body img{border-radius:var(--r)}
.post-back{margin-top:2em;font-weight:700}
.more{transition:color .2s,gap .2s}
.more:hover{color:var(--onyx)}
.f-links a:hover,.f-bottom a:hover{color:var(--orange)}
.sub a[aria-current]{color:var(--orange-tx);font-weight:700}
@media (max-width:1100px){ .cards--4{grid-template-columns:repeat(2,1fr)} .why-cards{grid-template-columns:1fr 1fr} }
@media (max-width:980px){
  .intro2-in,.intro2--map,.split2,.cgrid,.bgrid{grid-template-columns:1fr;gap:36px}
  .split2--rev .split2-copy{order:0}
  .split2-fig{max-width:640px}
  .bside{position:static}
  .gallery--4{grid-template-columns:1fr 1fr}
}
@media (max-width:700px){
  .phero-in{padding:52px 20px 62px}
  .phero::before{background:linear-gradient(180deg,rgba(20,20,20,.9),rgba(20,20,20,.82))}
  .bhero-in{padding:46px 20px 50px}
  .checks--2,.fgrid,.pgrid,.why-cards,.cards--4{grid-template-columns:1fr}
  .gform{padding:22px 18px}
  .cinfo{padding:24px 20px}
  .split2-fig .sfig:first-child::before{display:none}
  .sfig--tall img{aspect-ratio:4/3}
  .dob{grid-template-columns:1fr 1fr 1fr;gap:6px}
}
.closing p a:not(.btn){color:var(--onyx);text-decoration:underline;text-underline-offset:3px;font-weight:600}
.closing p a:not(.btn):hover{color:#fff}
.split2{align-items:start}
.split2-fig{position:sticky;top:120px}
@media (max-width:980px){.split2-fig{position:relative;top:auto}}
.split2--short{align-items:center}
.split2--short .split2-fig{position:relative;top:auto}
.tcols{display:grid;gap:40px}
.tcols--2{grid-template-columns:1fr 1fr}
.tcols--3{grid-template-columns:repeat(3,1fr)}
.tcol{border-top:4px solid var(--orange);padding-top:22px}
.tcols h2{font-size:clamp(26px,2.4vw,32px)}
.cards--4{display:flex;flex-wrap:wrap;justify-content:center}
.cards--4>.card{flex:0 1 calc(25% - 17px)}
@media (max-width:1100px){.cards--4>.card{flex-basis:calc(50% - 11px)}}
@media (max-width:700px){.cards--4>.card{flex-basis:100%}}
@media (max-width:980px){.tcols--2,.tcols--3{grid-template-columns:1fr;gap:30px}}
.pager{display:flex;gap:8px;flex-wrap:wrap;margin-top:34px}
.pager a{display:inline-flex;min-width:44px;height:44px;align-items:center;justify-content:center;border:2px solid var(--onyx);border-radius:var(--r);color:var(--onyx);text-decoration:none;font-weight:700}
.pager a:hover,.pager a[aria-current]{background:var(--onyx);color:#fff}
.relsvc{padding:44px 0}
.relsvc-in{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px}
.relsvc-h{font:700 24px/1.1 var(--hd);color:var(--onyx);margin:0}
.relsvc-links{display:flex;flex-wrap:wrap;gap:10px}
.relsvc-links a{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:2px solid var(--onyx);border-radius:999px;color:var(--onyx);text-decoration:none;font-weight:700;font-size:15.5px;transition:background .2s,color .2s}
.relsvc-links a:hover{background:var(--onyx);color:#fff}
.relsvc-links i{font-size:12px;color:var(--orange-tx)}
.relsvc-links a:hover i{color:var(--orange)}
.pcard{position:relative;transition:transform .2s,box-shadow .2s}
.pcard:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(20,20,20,.14)}
.pcard-link::after{content:"";position:absolute;inset:0}
.pcard:focus-within{outline:3px solid var(--orange);outline-offset:2px}
.bgrid>*,.pgrid>*{min-width:0}
.pcard h2,.post-body{overflow-wrap:anywhere}
.bside>*{min-width:0}
.bsearch input{width:100%}
/* ===== Stage 10 round 1 (Brooke + Peyton, 2026-10-22) ===== */
/* service pages: H1 + opening paragraph in the hero */
.phero--h1 .phero-in>*{max-width:780px}
.phero--h1 h1{color:#fff;font-size:clamp(38px,4.4vw,60px);line-height:1.04;margin:0 0 18px}
.phero--h1 .hero-intro p{font-size:18.5px;line-height:1.6;color:#e6e6e6;margin:0 0 12px}
.phero--h1 .hero-intro a:not(.btn){color:#F5A43A;text-decoration:underline;text-underline-offset:3px}
.phero--h1 .hero-intro a:not(.btn):hover{color:#fff}
.phero--h1 .hero-intro a.tel{color:#fff}
.phero--h1 .hero-btns{margin-top:24px}
@media (max-width:700px){.phero--h1 .hero-intro p{font-size:17px}}
/* no orange offset frame on photos, site-wide */
.hero-fig::before,.split2-fig .sfig:first-child::before{display:none!important}
/* text-only sections centered */
.wtext--c{text-align:center;max-width:900px}
.wtext--c>p{margin-left:auto;margin-right:auto}
/* every split: photo stays put while the copy scrolls (desktop) */
.split2,.split2--short{align-items:start}
.split2-copy{align-self:center}
.split2-fig,.split2--short .split2-fig{position:sticky;top:120px}
@media (max-width:980px){.split2-fig,.split2--short .split2-fig{position:relative;top:auto}}
/* market-page project lists */
.proj .sec-head{margin-bottom:30px}
.proj-panels{display:grid;gap:26px;margin:0 0 30px}
.proj-panels--2{grid-template-columns:1fr 1fr}
.proj-panels--1 .checks{grid-template-columns:1fr 1fr;column-gap:22px}
.proj-panel{background:#fff;border-top:4px solid var(--orange);border-radius:var(--r);padding:26px 26px 14px;box-shadow:var(--sh)}
.sec:not(.bg-smoke) .proj-panel{background:var(--smoke);box-shadow:none}
.proj-panel h3{font-size:24px;margin:0 0 16px}
.proj-figs{display:grid;gap:22px}
.proj-figs--2{grid-template-columns:1fr 1fr}
.proj-figs--3{grid-template-columns:repeat(3,1fr)}
.proj-figs .sfig img{aspect-ratio:3/2}
.proj-tail{text-align:center;margin-top:26px}
.proj-tail p{margin:0}
@media (max-width:980px){.proj-panels--2,.proj-panels--1 .checks{grid-template-columns:1fr}}
@media (max-width:700px){.proj-figs--2,.proj-figs--3{grid-template-columns:1fr}.proj-panel{padding:22px 18px 8px}}
/* Carmel-style highlight paragraph */
.callout{font-size:18px;line-height:1.6;padding:22px 26px;margin:6px 0 1em}
.callout strong{color:#fff}
.callout a{color:#F5A43A;text-decoration:underline;text-underline-offset:3px}
.callout a:hover{color:#fff}
/* contact links match the bold phone links in body copy */
main p a[href="/contact/"]:not(.btn){font-weight:700}
/* ===== Stage 10 round 2 (Brooke + Peyton picks 10-22) ===== */
/* Photo 3: Home hero = full-width photo behind the copy with a dark overlay */
.hero{border-bottom:6px solid var(--orange)}
.hero-bg,.hero::after{display:none}
.hero-fig{position:absolute;inset:0;margin:0;z-index:0;max-width:none}
.hero-fig img{width:100%;height:100%;aspect-ratio:auto;border-radius:0;box-shadow:none;object-fit:cover}
.hero-fig::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,20,20,.94) 0%,rgba(20,20,20,.84) 45%,rgba(20,20,20,.35) 100%)}
.hero-fig figcaption{display:none}
.hero-in{position:static;display:block;padding:120px 24px 130px}
.hero-copy{position:relative;z-index:2;max-width:640px}
@media (max-width:980px){.hero-fig{max-width:none}.hero-in{padding:80px 24px 90px}.hero-fig::after{background:linear-gradient(180deg,rgba(20,20,20,.86),rgba(20,20,20,.9))}}
/* Lists 3: one checklist panel, Carrot Orange chevrons instead of check marks */
.checks{background:#fff;border-top:4px solid var(--orange);border-radius:var(--r);padding:20px 26px;box-shadow:var(--sh);gap:2px 30px}
.sec:not(.bg-smoke) .checks{background:var(--smoke);box-shadow:none}
.checks li,.bg-smoke .checks li,.sec:not(.bg-smoke) .checks li{background:none;border:0;border-radius:0;box-shadow:none;padding:9px 4px 9px 28px}
.checks li::before{left:4px;top:14px;width:8px;height:12px;background:var(--orange);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M311.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L243.2 256 73.9 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath d='M311.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L243.2 256 73.9 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z'/%3E%3C/svg%3E") center/contain no-repeat}
.proj-panel .checks{box-shadow:none;border-top:0;padding:0;background:none}
@media (max-width:700px){.checks{padding:16px 18px}}
/* Why 1: same contour lines, much softer */
.why-g{background:linear-gradient(rgba(20,20,20,.72),rgba(20,20,20,.72)),var(--topo) repeat,var(--onyx);background-size:auto,1000px 1000px}
/* Why A (Brooke 10-22): her speckle texture, LIGHTER (alpha x0.5 of the file she sent; "more opaque" = fainter); replaces Why 1 */
.why-g{background:url(assets/tex/speckle.png?v=3) repeat,var(--onyx);background-size:466px 349px}
/* Closing B (Brooke 10-22): AdobeStock_2085774256 contours as white lines at 15% (she asked 30% -> 15%); replaces --topo-onyx */
.closing::before{background:#fff;-webkit-mask:url(assets/tex/topo-adobe.webp?v=1) center/cover no-repeat;mask:url(assets/tex/topo-adobe.webp?v=1) center/cover no-repeat;opacity:.15}
/* ===== Stage 10 round 3 (Peyton staging doc 10-22) ===== */
/* Whitestown Q1: project list without the panel (no background, no orange top edge); project names bold */
.checks.checks--plain,.sec:not(.bg-smoke) .checks.checks--plain{background:none;border-top:0;box-shadow:none;padding:0;border-radius:0}
.checks--plain strong{color:var(--onyx)}
/* area pages: service-area map beside the first section (moved out of the old intro) */
.split2--map .area-map .mymap{height:480px}
.split2--map{align-items:start}
/* process infographic (Civil "Our Project Approach"); option A = numbered path (default), B-D in stage10/make_options.py */
.proc{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px 46px;counter-reset:p}
.proc-step{position:relative;display:flex;align-items:center;gap:16px;background:#fff;border-radius:var(--r);padding:18px 20px;box-shadow:var(--sh);min-height:88px}
.sec:not(.bg-smoke) .proc-step{background:var(--smoke);box-shadow:none}
.proc-num{flex:0 0 52px;height:52px;border-radius:50%;background:var(--orange);color:var(--onyx);display:flex;align-items:center;justify-content:center;font:700 22px/1 var(--hd)}
.proc-t{font-weight:600;font-size:17px;line-height:1.35;color:var(--ink)}
.proc-t a{color:var(--orange-tx)}
.proc-step:not(:last-child)::after{content:"";position:absolute;right:-31px;top:50%;width:14px;height:14px;margin-top:-7px;border-top:4px solid var(--orange);border-right:4px solid var(--orange);transform:rotate(45deg)}
.proc-step:nth-child(3n)::after{display:none}
@media (max-width:980px){.proc{grid-template-columns:1fr;gap:20px;max-width:560px;margin-left:auto;margin-right:auto}
  .proc-step:not(:last-child)::after,.proc-step:nth-child(3n)::after{display:block;right:50%;top:auto;bottom:-17px;margin:0 -6px 0 0;width:10px;height:10px;transform:rotate(135deg);border-width:3px}}
/* service + market pages: "More of Our Services" slider after Why (3 cards visible, arrows + swipe) */
.ss-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:26px}
.ss-head h2{margin:0}
.ss-nav{display:flex;gap:10px}
.ss-btn{width:48px;height:48px;border-radius:50%;border:2px solid var(--onyx);background:#fff;color:var(--onyx);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s}
.ss-btn:hover:not(:disabled){background:var(--onyx);color:#fff}
.ss-btn:disabled{opacity:.35;cursor:default}
.ss-btn .ico{width:16px;height:16px;fill:currentColor}
.ss-track{list-style:none;margin:0;padding:6px 4px 30px;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 52px)/3);gap:26px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none}
.ss-track::-webkit-scrollbar{display:none}
.ss-item{scroll-snap-align:start;display:flex}
.ss-item .card{width:100%}
.ss-track:focus-visible{outline:3px solid var(--orange);outline-offset:4px}
@media (max-width:980px){.ss-track{grid-auto-columns:calc((100% - 26px)/2)}}
@media (max-width:640px){.ss-track{grid-auto-columns:86%;gap:16px}.ss-head{align-items:center}.ss-btn{width:42px;height:42px}}
/* footer: 3 columns, Services links in 2 columns, contact info under the brand column */
.f-grid{grid-template-columns:1.25fr 1.35fr .8fr;gap:48px}
.f-links--2{columns:2;column-gap:28px}
.f-links--2 li{break-inside:avoid}
.f-brand .f-soc{margin-bottom:22px}
.f-brand .f-contact{max-width:330px}
.twg{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px}
.twg .twg-logo{display:inline-flex;margin:0}
.twg img{width:30px;height:auto;display:block}
.twg span a{margin:0}
@media (max-width:1100px){.f-grid{grid-template-columns:1fr 1fr}.f-brand{grid-column:1 / -1}}
@media (max-width:700px){.f-grid{grid-template-columns:1fr}.f-links--2{columns:2}}

/* Process style J — three phases (Peyton picked 10-22: gaps between phase arrows, no carets). Overrides the base .proc rules above. */
.proc{grid-auto-flow:column;grid-template-rows:repeat(3,auto);gap:22px 30px;padding-top:76px}
.proc-step,.sec:not(.bg-smoke) .proc-step{background:#fff;box-shadow:var(--sh);border-left:4px solid var(--orange);border-radius:0 var(--r) var(--r) 0;min-height:76px}
.sec:not(.bg-smoke) .proc-step{background:var(--smoke);box-shadow:none}
.proc-num{flex:0 0 44px;height:44px;font-size:19px}
.proc-step:nth-child(3n+1)::before{position:absolute;top:-76px;left:-4px;right:0;height:52px;display:flex;align-items:center;padding:0 40px 0 20px;background:var(--onyx);color:#fff;font:700 19px/1 var(--hd);letter-spacing:.6px;text-transform:uppercase;clip-path:polygon(0 0,calc(100% - 26px) 0,100% 50%,calc(100% - 26px) 100%,0 100%)}
.proc-step:nth-child(1)::before{content:"Phase 1 \00B7  Consult"}
.proc-step:nth-child(4)::before{content:"Phase 2 \00B7  Investigate & Design"}
.proc-step:nth-child(7)::before{content:"Phase 3 \00B7  Finalize & Bid"}
.proc-step::after,.proc-step:not(:last-child)::after,.proc-step:nth-child(3n)::after{display:none!important}
@media (max-width:980px){.proc{grid-auto-flow:row;grid-template-rows:none;padding-top:0;row-gap:14px}
 .proc-step:nth-child(3n+1){margin-top:68px}.proc-step:nth-child(3n+1)::before{top:-64px;right:0}.proc-step:first-child{margin-top:64px}}
/* ===== Markup R1 (Brooke 10-22) ===== */
/* Lists: no boxes site-wide. Open list, orange chevron in a soft orange circle; project panels lose their card too */
.checks,.sec:not(.bg-smoke) .checks,.proj-panels--1 .checks{background:none;box-shadow:none;border:0;border-radius:0;padding:0;gap:4px 34px}
.checks li,.bg-smoke .checks li,.sec:not(.bg-smoke) .checks li{padding:8px 4px 8px 38px}
.checks li::after{content:"";position:absolute;left:2px;top:9px;width:24px;height:24px;border-radius:50%;background:rgba(230,143,26,.18)}
.checks li::before{left:11px;top:15px;width:7px;height:12px;z-index:1;background:var(--orange-tx)}
.dark .checks li::after{background:rgba(230,143,26,.28)}.dark .checks li::before{background:var(--orange)}
.proj-panel,.sec:not(.bg-smoke) .proj-panel{background:none;box-shadow:none;border:0;border-radius:0;padding:0}
.proj-panel h3{display:inline-block;padding-bottom:8px;border-bottom:3px solid var(--orange)}
@media (max-width:700px){.checks{padding:0}.proj-panel{padding:0}}
/* "We also design": plain text with orange separators, nothing that looks clickable */
.also{gap:6px 14px}
.also ul{gap:4px 0}
.also li{background:none;border:0;border-radius:0;padding:0;font-size:17px;color:var(--ink)}
.also li+li::before{content:"";display:inline-block;width:6px;height:6px;background:var(--orange);transform:rotate(45deg);margin:0 14px 3px}
.also span::after{content:":"}
/* in-copy links bold, like the phone number */
main :is(p,li,td) a:not(.btn):not(.more):not(.tel){font-weight:700}
.crumbs a,.pcard a,.brecent a,.pager a,.relsvc-links a{font-weight:inherit}
/* gallery captions */
.g-fig{margin:0;display:flex;flex-direction:column;gap:10px}
.g-fig .g-tile{width:100%}
.g-fig figcaption{font-size:15px;line-height:1.35;color:var(--mute)}
.g-fig figcaption strong{display:block;font:700 18px/1.2 var(--hd);color:var(--onyx);letter-spacing:.2px}
/* footer: hours move under About Us (still 3 columns, Peyton R3); more room around the tagline + social icons */
.f-grid{grid-template-columns:1.25fr 1.35fr .8fr;gap:48px}
.f-tag{margin:22px 0 20px}
.f-brand .f-soc{gap:12px;margin-bottom:28px;flex-wrap:nowrap}
.f-brand .f-contact p{margin-bottom:14px}
@media (max-width:1100px){.f-grid{grid-template-columns:1fr 1fr}.f-brand{grid-column:1 / -1}}
@media (max-width:700px){.f-grid{grid-template-columns:1fr}}
.f-hrs{margin-top:30px}
.f-hrs .f-hours{margin:0;padding:0;border:0;font-size:16px}
.f-hrs .f-h{margin-bottom:14px}
.f-hrs .f-hours li{display:block;margin:0 0 10px;line-height:1.35}
.f-hrs .f-hours li span{display:block}
.f-hrs .f-hours li span:first-child{color:#fff;font-weight:600}
.f-hrs .f-hours li span+span{color:#bdbdbd}
/* FAQ topics as tabs */
.faq-tabs{display:grid;grid-template-columns:270px 1fr;gap:48px;align-items:start}
.faq-nav{position:sticky;top:100px;display:flex;flex-direction:column;border-left:3px solid var(--line)}
.faq-nav-h{font:700 14px/1 var(--bd);letter-spacing:1.6px;text-transform:uppercase;color:var(--orange-tx);margin:0 0 10px;padding-left:18px}
.faq-tab{display:block;padding:9px 12px 9px 18px;margin-left:-3px;border-left:3px solid transparent;color:var(--ink);text-decoration:none;font-weight:600;font-size:16px;line-height:1.3}
.faq-tab:hover{color:var(--orange-tx)}
.faq-tab.is-on{border-left-color:var(--orange);color:var(--onyx);font-weight:700;background:#fff}
.faq-panel+.faq-panel{margin-top:56px}
.faq-panel h2{margin:0 0 22px}
.faq-panel .acc{max-width:none;margin:0}
.js-tabs .faq-panel{display:none}
.js-tabs .faq-panel.is-on{display:block;margin-top:0}
@media (max-width:900px){.faq-tabs{grid-template-columns:1fr;gap:26px}
 .faq-nav{position:static;flex-direction:row;flex-wrap:wrap;gap:8px;border-left:0}
 .faq-nav-h{width:100%;padding:0;margin-bottom:4px}
 .faq-tab{margin:0;border:2px solid var(--line);border-radius:999px;padding:7px 14px;font-size:15px;background:#fff}
 .faq-tab.is-on{border-color:var(--orange);background:var(--orange);color:var(--onyx)}}
@media (max-width:700px){.also ul{justify-content:center;gap:6px 18px}.also li::before,.also li+li::before{content:"";display:inline-block;width:6px;height:6px;background:var(--orange);transform:rotate(45deg);margin:0 9px 3px 0}}

/* ===== Markup R2 (Brooke 10-22) ===== */
/* pin 14: links in the photo heroes = bold white, orange on hover (underline kept in orange so they still read as links) */
.phero--h1 .hero-intro a:not(.btn),.phero--h1 .hero-intro a.tel{color:#fff;font-weight:700;text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:2px;text-underline-offset:4px;transition:color .15s}
.phero--h1 .hero-intro a:not(.btn):hover,.phero--h1 .hero-intro a:not(.btn):focus-visible{color:#F5A43A}
/* pins 15 + 17: project lists as their own card section (bold name, detail underneath) */
.pc-grid{display:block}
.pcards{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:22px}
.pcards li{flex:0 1 calc((100% - 44px)/3);background:#fff;border-top:4px solid var(--orange);border-radius:var(--r);padding:24px 24px 20px;box-shadow:var(--sh)}
.sec:not(.bg-smoke) .pcards li{background:var(--smoke);box-shadow:none}
.pcards h3{font:700 22px/1.2 var(--hd);color:var(--onyx);margin:0 0 8px}
.pcards p{margin:0;color:var(--mute);font-size:16px;line-height:1.55}
.pc-grid--fig{display:grid;grid-template-columns:1fr 2fr;gap:26px;align-items:stretch}
.pc-grid--fig .sfig{height:100%}
.pc-grid--fig .sfig img{height:100%;aspect-ratio:auto;min-height:320px}
.pc-grid--fig .pcards li{flex-basis:calc((100% - 22px)/2)}
.pc-tail{text-align:center;margin-top:28px}
.pc-tail p{margin:0}
/* pin 16: commercial project groups stacked, one readable column */
.proj-panels--2{grid-template-columns:1fr;max-width:880px;margin-left:auto;margin-right:auto;gap:34px}
@media (max-width:980px){.pcards li{flex-basis:calc((100% - 22px)/2)}.pc-grid--fig{grid-template-columns:1fr}.pc-grid--fig .sfig img{aspect-ratio:16/9;min-height:0;height:auto}}
@media (max-width:640px){.pcards li,.pc-grid--fig .pcards li{flex-basis:100%}.pcards li{padding:20px 18px 16px}}
/* ---- Markup R3 (Brooke 10-22 pins 18-19): FAQ intro in hero; white section + grey accordions ---- */
.bhero-p--faq{margin-top:14px}
.bhero-p--faq p{color:#e6e6e6;margin:0;max-width:820px}
.bhero-p--faq a:not(.btn){color:#fff;font-weight:700;text-decoration:underline;text-decoration-color:var(--orange);text-decoration-thickness:2px;text-underline-offset:4px}
.bhero-p--faq a:not(.btn):hover{color:#F5A43A}
.faq-tabs-s{background:#fff}
.faq-tabs-s .acc details{background:var(--smoke);border-color:var(--smoke)}
.faq-tabs-s .acc details[open] summary{border-bottom-color:var(--line)}
.faq-tabs-s .faq-tab.is-on{background:var(--smoke)}
@media (max-width:900px){.faq-tabs-s .faq-tab{background:#fff}.faq-tabs-s .faq-tab.is-on{background:var(--orange)}}

/* Markup R4 (Brooke 10-23 #20): mobile menu scrolls inside the screen */
.mnav{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;max-height:calc(100vh - 190px);max-height:calc(100dvh - 190px)}
html.mnav-open{overflow:hidden}
html.mnav-open body{overflow:visible}
@media (min-width:981px){html.mnav-open{overflow:visible}html.mnav-open body{overflow-x:hidden}.mnav{display:none}}

/* ---- Markup R5 (Peyton 11-05) ---- */
/* #3/#7 mobile Call Now / Contact Us sit under the sticky header and scroll off with the page */
.mob-cta{background:#fff}
@media (max-width:767px){
  /* #4/#11 logo a touch larger on phones and small tablets; R5 follow-up: 56px is now all artwork (tight SVG), 12px above/below */
  .hdr-in{height:80px}
  .logo img{height:56px}
  /* #6 wrapped footer links read as one item */
  .f-links li{line-height:1.3;margin-bottom:12px}
}
/* #16 logo larger on desktop/tablet (bar height unchanged). R5 follow-up 11-05: tight-cropped SVG, 62px artwork = 11px above/below in the 84px bar */
@media (min-width:768px){.logo img{height:62px}}
/* #9 closing band: dark button stays visible on hover (white, orange text) */
.closing .btn--dark:hover,.closing .btn--dark:focus-visible{background:#fff;color:var(--orange-tx)}
/* #8 town list in three columns on small tablets; #5 phones show only the map on Home */
@media (min-width:481px) and (max-width:767px){.towns{columns:3;column-gap:16px}}
@media (max-width:480px){.towns--home{display:none}}
/* #10 About links + Office Hours side by side when the footer is one column */
@media (min-width:481px) and (max-width:700px){
  .f-abt{display:grid;grid-template-columns:1fr 1fr;column-gap:28px;align-items:start}
  .f-abt>.f-h,.f-abt>.f-links{grid-column:1}
  .f-abt>.f-hrs{grid-column:2;grid-row:1 / span 2;margin-top:0}
}
/* #13 Who We Are service cards: three across, trailing line centred */
.s-cards .cards--svc+p{text-align:center;margin:30px 0 0}

/* Peyton 11-05: the tiled --topo SVG showed seams on black sections. Dark bands (process, area, band heroes) now use the closing band's
   Adobe contour texture (one image, center/cover, no tiling) as white lines at 4.5% (Peyton: "more see-through", all dark bands). why-g keeps its speckle. */
.dark:not(.why-g),.bhero{background:var(--onyx);position:relative;isolation:isolate}
.dark:not(.why-g)::before,.bhero::before{content:"";position:absolute;inset:0;z-index:-1;background:#fff;-webkit-mask:url(assets/tex/topo-adobe.webp?v=1) center/cover no-repeat;mask:url(assets/tex/topo-adobe.webp?v=1) center/cover no-repeat;opacity:.045;pointer-events:none}

/* Peyton 11-05: per-project gallery lightbox (Home Project Gallery) */
.g-tile{position:relative}
.g-count{position:absolute;right:10px;bottom:10px;display:inline-flex;align-items:center;gap:6px;background:rgba(20,20,20,.78);color:#fff;font:600 13px/1 var(--bd);letter-spacing:.4px;padding:7px 10px;border-radius:40px;pointer-events:none}
.g-count .ico{width:14px;height:14px;fill:currentColor}
.lb{flex-direction:column}
.lb-f{margin:0;display:flex;flex-direction:column;align-items:center;gap:12px;max-width:92vw}
.lb-f img{max-height:80vh;max-width:min(92vw,1600px);width:auto;height:auto;border-radius:4px;background:#222}
.lb-c{display:flex;gap:16px;align-items:baseline;color:#fff;font:400 16px/1.3 var(--bd)}
.lb-t{font-weight:700}
.lb-n-of{color:#cfcfcf;font-size:14px;letter-spacing:.6px}
.lb .lb-p,.lb .lb-n{top:50%;transform:translateY(-50%);width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;line-height:1}
.lb .lb-p:hover,.lb .lb-n:hover,.lb .lb-p:focus-visible,.lb .lb-n:focus-visible{background:#E68F1A;color:#141414}
.lb--one .lb-p,.lb--one .lb-n{display:none}
@media (max-width:700px){.lb{padding:16px}.lb .lb-p,.lb .lb-n{top:auto;bottom:18px;transform:none;width:48px;height:48px}.lb .lb-p{left:calc(50% - 64px)}.lb .lb-n{right:calc(50% - 64px)}.lb-f img{max-height:70vh}.lb-c{flex-direction:column;align-items:center;gap:4px;font-size:15px}}

/* Peyton 11-05: Our Work top-level link in the mobile menu (between Who We Serve and About Us) */
.mnav a.mnav-top{font:700 13px/1 var(--bd);letter-spacing:2px;text-transform:uppercase;color:var(--orange-tx);margin:16px 0 4px;padding:9px 0}
.mnav a.mnav-top::after{content:"\2192";margin-left:8px;font-size:15px;letter-spacing:0}

/* Peyton 11-05: Project Gallery buttons - "View More" (-> /our-work/) and "Load More" (Our Work, 8 per click) */
.gal-actions{text-align:center;margin-top:40px}
.g-fig[hidden]{display:none}
/* preview contact form checkboxes (WP uses Gravity Forms) */
.gform .checks-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 28px}.gform .chk{display:flex;gap:8px;align-items:center;font-weight:400}@media(max-width:599px){.gform .checks-2{grid-template-columns:1fr}}

/* Peyton 11-06: Careers hero styled like the closing bands (orange, Adobe contours white 15%, onyx text, dark button) */
.bhero.bhero--closing{background:var(--orange);color:var(--onyx);border-bottom:0}
.bhero.bhero--closing::before{opacity:.15}
.bhero--closing h1,.bhero--closing .bhero-p--faq p{color:var(--onyx)}
.bhero--closing .crumbs{color:var(--onyx)}
.bhero--closing .crumbs a,.bhero--closing .bhero-p--faq a:not(.btn){color:var(--onyx);text-decoration-color:var(--onyx)}
.bhero--closing .crumbs a:hover,.bhero--closing .bhero-p--faq a:not(.btn):hover{color:#fff;text-decoration-color:#fff}
.bhero--closing .btn--dark:hover,.bhero--closing .btn--dark:focus-visible{background:#fff;color:var(--orange-tx)}

/* ===== theme extra ===== */
/* Inline Font Awesome SVGs (no webfont/CDN): the <i class="fa-…"> wrappers stay so Stage 7 selectors keep working. */
i[class*="fa-"]{display:inline-block;font-style:normal;line-height:1;vertical-align:-.125em}
i[class*="fa-"] > svg.ico{display:block;height:1em;width:auto;fill:currentColor;overflow:visible}
/* WP admin bar (logged-in editors): keep the sticky header below it */
.admin-bar .site-header{top:32px}
@media (max-width:782px){.admin-bar .site-header{top:46px}}
@media (max-width:600px){.admin-bar .site-header{top:0}}
/* fallback templates (page.php / index.php / 404) */
.iec-prose{max-width:860px}
.iec-prose img{max-width:100%;height:auto}
/* Gravity Forms (v0.2.2): the form sits in the Stage 7 form panel; Orbital vars + pinned button (GF 2.9/3.x per-form vars win otherwise) */
.iec-form{background:var(--smoke);border-radius:var(--r);padding:32px;border-top:5px solid var(--orange)}
.narrow .iec-form{margin-top:26px}
@media (max-width:700px){.iec-form{padding:22px 18px}}
.iec-form .gform_wrapper.gform-theme{--gf-color-primary:#E68F1A;--gf-color-primary-rgb:230,143,26;--gf-color-primary-contrast:#141414;--gf-color-primary-darker:#141414;--gf-ctrl-border-color:#bdbdbd;--gf-ctrl-label-color-primary:#141414;--gf-ctrl-btn-bg-color-primary:#E68F1A;--gf-ctrl-btn-color-primary:#141414;--gf-ctrl-btn-bg-color-hover-primary:#141414;--gf-ctrl-btn-color-hover-primary:#fff;--gf-ctrl-font-size:16px;--gf-ctrl-size:46px}
.iec-form .gform_wrapper.gform-theme .gfield_label,.iec-form .gform_wrapper.gform-theme .gform-field-label--type-legend{color:var(--onyx)!important;font-weight:600!important;font-size:15.5px!important}
.iec-form .gform_wrapper.gform-theme .gform-field-label--type-sub{color:#555!important;font-size:13.5px!important}
.iec-form .gform_wrapper.gform-theme .gfield_required{color:#b3261e!important}
.iec-form .gform_wrapper.gform-theme input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]),.iec-form .gform_wrapper.gform-theme select,.iec-form .gform_wrapper.gform-theme textarea{background-color:#fff!important;border-radius:4px!important}
.iec-form .gform_wrapper.gform-theme input:focus,.iec-form .gform_wrapper.gform-theme select:focus,.iec-form .gform_wrapper.gform-theme textarea:focus{outline:3px solid var(--orange)!important;outline-offset:0!important;border-color:var(--onyx)!important;box-shadow:none!important}
.iec-form .gform_wrapper.gform-theme .gform_footer button,.iec-form .gform_wrapper.gform-theme .gform_footer input[type=submit]{background:var(--orange)!important;color:var(--onyx)!important;border:0!important;border-radius:var(--r)!important;font:700 16px/1 "Source Sans 3",Arial,sans-serif!important;letter-spacing:.04em!important;text-transform:uppercase!important;padding:17px 30px!important;min-height:52px!important;cursor:pointer}
.iec-form .gform_wrapper.gform-theme .gform_footer button:hover,.iec-form .gform_wrapper.gform-theme .gform_footer input[type=submit]:hover,.iec-form .gform_wrapper.gform-theme .gform_footer input[type=submit]:focus-visible{background:var(--onyx)!important;color:#fff!important}
.iec-form--missing{font-size:18px}
.gform_anchor,[id^="gf_"]{scroll-margin-top:110px}
/* Contact: Services of Interest checkboxes (Peyton 11-05) in 2 columns from 600px */
@media (min-width:600px){.iec-form .iec-services-checks .gfield_checkbox{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px}}
.iec-form .iec-services-checks .gchoice label{font-size:16px!important;color:var(--onyx)!important}
/* GF prints its own --gf-color-primary (#204ce5) with ID specificity, so colour the checkmark directly */
.iec-form .gform_wrapper.gform-theme input[type=checkbox]::before{color:var(--onyx)!important}.iec-form .gform_wrapper.gform-theme input[type=checkbox]:checked{border-color:var(--onyx)!important}
/* Post-launch 11-09 (Brooke OK): AudioEye hosted accessibility statement on /accessibility/, centered in the .wrap.narrow.legal container */
.legal .iec-a11y-frame{display:block;width:100%;height:2300px;border:0;margin:24px auto 0}
/* Footer bottom: Termageddon links + Privacy Settings wrap cleanly on small screens */
.f-bottom #usercentrics-psl{cursor:pointer}
