:root{--accent:#253d93;--accent-dark:#1c2f73;--ink:#202023;--muted:#69696c;--paper:#fff;--line:#dedee0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);scroll-behavior:smooth;scroll-padding-top:24px}
*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #eb9c20;outline-offset:4px}.container{width:min(1200px,88%);margin-inline:auto}.skip{position:absolute;left:16px;top:-80px;padding:14px;background:white;z-index:10}.skip:focus{top:16px}.topbar{background:var(--accent);color:white;font-size:12px}.topbar .container{display:flex;justify-content:space-between;padding-block:11px}.header{display:flex;align-items:center;justify-content:space-between;padding-block:26px;gap:25px}.brand{display:flex;align-items:center;gap:13px;font-weight:900;font-size:20px;letter-spacing:.5px;line-height:1.05}.brand small{display:block;color:var(--accent);font-size:15px;letter-spacing:5px;margin-top:6px}.brand-mark{font-size:30px;letter-spacing:-3px;color:var(--accent);border-right:1px solid var(--line);padding-right:16px}.brand-mark span{color:var(--ink)}nav{display:flex;align-items:center;gap:30px;font-size:14px;font-weight:700}nav a:hover,.text-link:hover{color:var(--accent)}nav .nav-contact{background:var(--accent);color:white;padding:14px 20px}.menu-toggle{display:none}.hero{background:#232326;color:white;overflow:hidden}.hero-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:center;padding-block:72px 52px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;margin:0 0 22px}.hero .eyebrow{color:#aebfff}h1{font-size:clamp(42px,5vw,72px);font-weight:800;line-height:1.06;letter-spacing:-2.5px;margin:0 0 26px}h1 em{font-style:normal;color:#8ea9ff}.intro{font-size:17px;color:#d0d0d3;line-height:1.8;max-width:450px}.actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin-top:30px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:32px;padding:17px 23px;background:var(--accent);color:white;font-weight:700;font-size:14px;border:0;cursor:pointer}.button:hover,.nav-contact:hover{background:var(--accent-dark)}.text-link{font-size:14px;font-weight:700}.draft-note{font-size:11px;color:#a8a8ad;margin-top:25px}.photo-slot{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:12px;padding:25px;background:repeating-linear-gradient(135deg,transparent,transparent 30px,#ffffff08 30px,#ffffff08 31px),#e9e9eb;color:#65656b;border:1px dashed #acacb1;min-height:220px;position:relative;overflow:hidden}.photo-slot strong{font-size:17px;line-height:1.5}.photo-slot>span:not(.photo-icon){font-size:13px;line-height:1.5}.photo-icon{font-size:38px;font-weight:400;opacity:.6}.hero-photo{min-height:420px;background:repeating-linear-gradient(135deg,transparent,transparent 30px,#ffffff08 30px,#ffffff08 31px),#36363b;color:#d2d2d7;border-color:#67676d;border-bottom:5px solid var(--accent)}.hero-photo small{position:absolute;bottom:20px;left:22px;letter-spacing:2px;font-size:10px}.hero-bottom{display:flex;gap:42px;align-items:center;padding-block:22px;border-top:1px solid #48484c;font-size:10px;letter-spacing:1.5px;color:#b5b5bd}.hero-bottom a{margin-left:auto;font-size:23px;color:white}.section{padding-block:88px}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:40px}.section .eyebrow{color:var(--accent)}h2{font-size:clamp(32px,3.6vw,48px);font-weight:800;line-height:1.12;letter-spacing:-1.5px;margin:0}p{line-height:1.75}.section-heading>p{font-size:15px;color:var(--muted);max-width:400px;margin:0 0 4px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.service-card{border:1px solid var(--line)}.service-card .photo-slot{border:0;border-bottom:1px dashed #acacb1}.card-copy{padding:25px}.number{color:var(--accent);font-size:11px;font-weight:700;letter-spacing:1px}h3{font-size:22px;letter-spacing:-.5px;margin:13px 0 12px}.card-copy p{font-size:14px;color:var(--muted);margin-bottom:24px}.card-copy a{font-size:12px;font-weight:700;color:var(--accent)}.card-copy a:hover{text-decoration:underline}.equipment{background:#f3f3f4}.equipment-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}.equipment-photo{min-height:310px;background-color:#e2e2e5}.equipment-caption{display:flex;justify-content:space-between;gap:20px;padding-top:10px}.equipment-caption h3{font-size:20px}.equipment-caption p{font-size:14px;color:var(--muted);margin:0}.equipment-caption>span{font-size:36px;color:#bcbcc2;margin-top:12px}.about{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.about-photo{min-height:440px}.accent{color:var(--accent)}.about-lead{font-size:19px;font-weight:700;margin-top:28px}.about p:not(.eyebrow):not(.about-lead){font-size:15px;color:var(--muted)}.about .text-link{display:inline-block;margin-top:15px;color:var(--accent)}.contact{background:var(--accent);color:white}.contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:75px}.contact .eyebrow{color:#d4deff}.contact-copy>p:not(.eyebrow){color:#e1e8ff;max-width:330px;margin-top:25px}dl{margin-top:36px}dl div{padding-block:17px;border-top:1px solid #ffffff40}dt{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:#d4deff}dd{margin:9px 0 0;font-size:16px}form{background:white;color:var(--ink);padding:35px}form h3{margin-top:0;font-size:25px}.form-note{color:var(--muted);font-size:12px;margin-bottom:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-size:12px;font-weight:700;margin-bottom:20px}label span{color:var(--accent)}input,select,textarea{display:block;width:100%;margin-top:9px;padding:13px;background:#f7f7f8;border:1px solid #d8d8db;border-radius:0;color:var(--ink);font-size:14px}textarea{resize:vertical;min-height:120px}#form-status{font-size:13px;color:var(--accent-dark);margin-bottom:0}#form-status:empty{display:none}footer{padding-block:35px;display:flex;align-items:center;justify-content:space-between;gap:25px}footer p,footer>a:last-child{font-size:11px;color:var(--muted)}.footer-brand{font-weight:900;font-size:14px}.footer-brand span{color:var(--accent)}
@media(max-width:1000px){nav{gap:18px}.hero-layout{gap:30px}.hero-photo{min-height:360px}.contact-layout,.about,.section-heading{gap:35px}.card-copy{padding:20px}.brand{font-size:17px}}
@media(max-width:760px){.container{width:88%}.topbar .container{gap:15px;font-size:10px}.header{flex-wrap:wrap;padding-block:20px}.menu-toggle{display:flex;gap:12px;background:white;border:1px solid var(--line);padding:10px;font-size:13px}nav{width:100%;display:none;flex-direction:column;align-items:stretch;gap:0}nav.is-open{display:flex}nav a{padding:15px 0;border-top:1px solid var(--line)}nav .nav-contact{margin-top:8px;text-align:center}.hero-layout,.section-heading,.about,.contact-layout{grid-template-columns:1fr}.hero-layout{padding-block:48px 35px;gap:35px}h1{letter-spacing:-1.5px}.hero-photo{min-height:300px}.hero-bottom{gap:18px;font-size:8px;letter-spacing:.8px}.section{padding-block:55px}.section-heading{gap:22px;margin-bottom:28px}.cards{grid-template-columns:1fr}.service-card .photo-slot{min-height:240px}.equipment-grid{grid-template-columns:1fr;gap:35px}.equipment-photo{min-height:270px}.about-photo{min-height:320px}.contact-layout{gap:35px}form{padding:25px}.form-grid{grid-template-columns:1fr;gap:0}footer{flex-wrap:wrap;gap:10px}footer p{width:100%;order:3;margin:5px 0}footer>a:last-child{margin-left:auto}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}

/* Original company logo, converted from the supplied PDF. */
.brand-logo{display:block;width:clamp(220px,30vw,360px);height:auto}.footer-brand img{display:block;width:230px;height:auto}@media(max-width:760px){.brand-logo{width:clamp(190px,58vw,300px)}.footer-brand img{width:210px}}

/* Published content and uploaded images. */
h1,h2,.intro,.card-copy p,.equipment-caption p{white-space:pre-line}.photo-slot.has-image{padding:0;border:0}.photo-slot.has-image img{display:block;width:100%;height:100%;position:absolute;inset:0;object-fit:cover}.hero-photo.has-image{border-bottom:5px solid var(--accent)}

/* Mobile edition of the same website: shared content, separate layout. */
.mobile-contact{display:none}
@media(max-width:760px){
  :root{scroll-padding-top:100px}
  body{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}
  .container{width:90%}
  .topbar .container{justify-content:center;padding-block:9px}
  .topbar .container>span{display:none}
  .topbar a{font-size:11px}
  .header{position:sticky;top:0;z-index:20;width:100%;padding:19px 5%;background:white;border-bottom:1px solid var(--line);gap:14px;box-shadow:0 3px 15px #00000008}
  .brand{min-width:0}
  .brand-logo{width:clamp(180px,57vw,290px);max-width:100%}
  .menu-toggle{min-height:44px;align-items:center;border-radius:4px;font-weight:700}
  nav a{min-height:48px;padding:17px 4px;font-size:15px}
  nav .nav-contact{padding:16px}
  .hero-layout{padding-top:38px;gap:28px}
  .hero h1{font-size:clamp(36px,9.5vw,58px);line-height:1.1;letter-spacing:-1.5px;overflow-wrap:break-word}
  .hero .eyebrow{margin-bottom:18px}
  .intro{font-size:16px;line-height:1.7}
  .actions{gap:18px;margin-top:24px;align-items:stretch;flex-direction:column}
  .actions .button{min-height:52px;width:100%}
  .actions .text-link{display:flex;align-items:center;min-height:44px}
  .draft-note{margin-top:14px}
  .hero-photo{min-height:230px;aspect-ratio:4/3}
  .hero-bottom{padding-block:16px;gap:16px;font-size:9px;letter-spacing:.3px}
  .section{padding-block:48px}
  h2{font-size:clamp(30px,8vw,42px);letter-spacing:-1px;overflow-wrap:break-word}
  .section-heading>p{font-size:15px}
  .cards{gap:24px}
  .service-card .photo-slot{min-height:0;aspect-ratio:4/3}
  .card-copy{padding:24px}
  .card-copy p{font-size:15px}
  .card-copy a{display:inline-flex;align-items:center;min-height:44px;font-size:13px}
  .equipment-photo{min-height:0;aspect-ratio:4/3}
  .equipment-caption h3{font-size:21px}
  .equipment-caption p{font-size:15px}
  .about{gap:28px}
  .about-photo{min-height:0;aspect-ratio:4/3}
  .contact-layout{gap:24px}
  .contact-copy>p:not(.eyebrow){max-width:none}
  .contact dl{margin-top:24px}
  .contact dd{overflow-wrap:anywhere}
  .contact form{padding:24px 20px}
  .contact input,.contact select,.contact textarea{font-size:16px;min-height:48px}
  .contact form>.button{width:100%;min-height:52px}
  .mobile-contact{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:25;justify-content:space-between;align-items:center;gap:12px;padding:12px 5% calc(12px + env(safe-area-inset-bottom,0px));background:white;border-top:1px solid var(--line);box-shadow:0 -4px 20px #0000000b}
  .mobile-contact>span{font-size:12px;font-weight:700}
  .mobile-contact>a{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:46px;background:var(--accent);color:white;padding:12px 18px;font-size:13px;font-weight:700}
  footer{padding-block:28px}
  footer>a:last-child{display:flex;align-items:center;min-height:44px}
}
@media(min-width:761px) and (max-width:1050px){.header{flex-wrap:wrap;gap:20px}nav{flex-wrap:wrap;gap:24px}.cards{gap:16px}.card-copy{padding:18px}}

/* Front-page carousel uses manual navigation, including mobile swipes. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hero-carousel{min-width:0}.carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0 0}.carousel-controls button{display:grid;place-items:center;border:1px solid #77777d;color:white;background:#36363b;min-width:44px;min-height:44px;cursor:pointer;font-size:20px}.carousel-controls button:disabled{opacity:.4;cursor:default}#carousel-dots{display:flex;justify-content:center;flex-wrap:wrap;gap:0}#carousel-dots button{background:transparent;border:0;font-size:0;min-width:28px;min-height:44px}#carousel-dots button:before{content:'';width:7px;height:7px;border-radius:50%;background:#98989f}#carousel-dots button[aria-pressed=true]:before{background:#8ea9ff;width:9px;height:9px}.carousel-controls>button:hover:not(:disabled){background:var(--accent)}.hero-carousel .hero-photo{touch-action:pan-y}

/* Christmas decorations do not intercept links, scrolling or form controls. */
.christmas-mode .brand,.christmas-mode .footer-brand{position:relative}
.christmas-mode .brand::after,.christmas-mode .footer-brand::after{content:"";position:absolute;left:-12px;top:-24px;width:clamp(48px,6vw,72px);aspect-ratio:1.2;background:url('assets/christmas-hat.svg') center/contain no-repeat;transform:rotate(-22deg);pointer-events:none}
.christmas-snow{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:50}
.christmas-snow span{position:absolute;top:-30px;left:var(--left);font-size:var(--size);color:white;text-shadow:0 1px 3px #304359;opacity:.8;animation:christmas-fall var(--duration) var(--delay) linear infinite;user-select:none}
@keyframes christmas-fall{to{transform:translate3d(var(--drift),calc(100vh + 60px),0) rotate(180deg)}}
@media(prefers-reduced-motion:reduce){.christmas-snow{display:none}}

.new-year-fireworks{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:50}
@media(prefers-reduced-motion:reduce){.new-year-fireworks{display:none}}

/* Show the full service photo, including tall cranes and vehicles. */
.service-card .photo-slot.has-image img{object-fit:contain;object-position:center}

/* Keep the entire front-page photo visible at every screen size. */
.hero-photo.has-image img{object-fit:contain;object-position:center}

.contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
#contact-form button:disabled{opacity:.6;cursor:wait}
