*{box-sizing:border-box}body{margin:0;background:#09182d;color:#f4f7fc;font:16px/1.65 Arial,sans-serif}a{color:inherit}header{position:sticky;top:0;z-index:5;background:#09182df5;border-bottom:1px solid #ffffff26}.nav{max-width:1150px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:16px 22px}.brand{font-weight:800;color:#f5f7fc;text-decoration:none;letter-spacing:.06em}.brand span{color:#d00b36}nav{display:flex;gap:23px;flex-wrap:wrap}nav a{text-decoration:none;font-weight:600}nav a:hover,nav a[aria-current=page]{color:#ff4169}.hero{min-height:600px;background:linear-gradient(90deg,#07172ddd,#07172d55),url('hero.png') center/cover;display:flex;align-items:center}.hero .inner{max-width:1150px;margin:auto;padding:70px 24px;width:100%}.eyebrow{color:#ff6b89;letter-spacing:.16em;text-transform:uppercase;font-weight:bold;font-size:13px}h1{font-size:clamp(36px,5.7vw,70px);line-height:1.1;max-width:780px;margin:12px 0 18px}h2{font-size:clamp(27px,3vw,42px);line-height:1.2;margin:0 0 15px}h3{margin:0 0 10px;font-size:21px}p{max-width:760px}.lead{font-size:20px;max-width:650px}.btn{display:inline-block;background:#c90034;color:white;text-decoration:none;padding:13px 24px;border-radius:6px;font-weight:700;margin:16px 12px 0 0}.btn.alt{background:transparent;border:1px solid #e1e8f5}.section{max-width:1150px;margin:auto;padding:72px 24px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:30px}.card{background:#112846;border:1px solid #ffffff20;border-radius:12px;padding:25px}.muted{color:#bfccde}.banner{background:#102744;padding:38px 24px;text-align:center}.banner p{margin:0 auto}footer{border-top:1px solid #ffffff2a;padding:30px 24px;color:#b6c5da;text-align:center}.pagehead{background:linear-gradient(120deg,#102e51,#07172d);padding:75px 24px}.pagehead>div{max-width:1100px;margin:auto}.pagehead h1{font-size:clamp(34px,5vw,56px)}.placeholder{background:#0a203a;border:2px dashed #4e6682;border-radius:12px;padding:42px;text-align:center;color:#c5d4e5}.contact a{color:#fff}.small{font-size:13px;color:#acbed3}@media(max-width:700px){.nav{align-items:flex-start;flex-direction:column}nav{gap:15px;font-size:14px}.hero{min-height:520px;background-position:40% center}.cards{grid-template-columns:1fr}.section{padding:50px 20px}}
.form-panel{background:#112846;border:1px solid #ffffff30;border-radius:12px;padding:26px;margin:25px 0;max-width:780px}.form-panel label{display:block;margin:0 0 16px;font-weight:700}.form-panel input,.form-panel select,.form-panel textarea{display:block;width:100%;margin-top:6px;padding:12px;background:#f6f8fc;color:#12253f;border:1px solid #8799b1;border-radius:5px;font:inherit}.form-panel .btn{border:0;cursor:pointer}.notice{border:1px solid #ffb86a;background:#3d2a1e;padding:20px;border-radius:10px;margin-bottom:36px}.notice p{margin-bottom:0}

/* Official company logo in the site header */
.brand{display:inline-flex;align-items:center;gap:12px;min-width:0}
.brand-logo{width:66px;height:66px;object-fit:contain;flex-shrink:0}
.brand-text{display:inline-block;line-height:1.3}
@media(max-width:650px){.nav{flex-wrap:wrap}.brand-logo{width:48px;height:48px}.brand-text{font-size:13px}nav{gap:12px}}

/* Invoice portal */
.portal-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:22px;align-items:start}.portal-grid .form-panel{margin:0;max-width:none}.portal-grid .card{margin-bottom:16px}.invoice-details>div{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid #ffffff30}.invoice-details dd{margin:0;font-weight:700}.invoice-details dt{color:#bfccde}#invoice-result{margin-top:22px;padding-top:22px;border-top:1px solid #ffffff40}.form-panel button.btn{font:inherit}.form-panel button:disabled{opacity:.65;cursor:wait}@media(max-width:800px){.portal-grid{grid-template-columns:1fr}}

/* Brand-rich page headers, responsive and accessible */
.pagehead{position:relative;overflow:hidden;isolation:isolate;min-height:330px;display:flex;align-items:center}
.pagehead>div{position:relative;z-index:1;width:100%}
.pagehead::after{content:"";position:absolute;right:max(3%,calc((100vw - 1220px)/2));top:50%;transform:translateY(-50%);width:clamp(210px,29vw,430px);aspect-ratio:1;background:url('logo.png') center/contain no-repeat;opacity:.35;pointer-events:none;filter:drop-shadow(0 10px 20px #0007)}
.pagehead h1,.pagehead .lead{max-width:65%}
@media(max-width:750px){.pagehead{min-height:260px;padding:52px 20px}.pagehead::after{width:205px;right:-55px;opacity:.16}.pagehead h1,.pagehead .lead{max-width:100%}}
/* Interactive services */
.service-card{padding:0;overflow:hidden;transition:border-color .2s,transform .2s,box-shadow .2s}
.service-card:hover{border-color:#ff6b89;transform:translateY(-3px);box-shadow:0 12px 28px #0004}
.service-card summary{cursor:pointer;padding:26px;list-style:none;position:relative;padding-right:53px}
.service-card summary::-webkit-details-marker{display:none}
.service-card summary::after{content:'+';position:absolute;right:22px;top:20px;font-size:32px;color:#ff6b89}
.service-card[open] summary::after{content:'−'}
.service-card summary:focus-visible{outline:3px solid #ff6b89;outline-offset:-3px}
.service-card .service-more{border-top:1px solid #ffffff25;padding:2px 26px 26px;background:#0e223e}
.service-card .service-more ul{padding-left:20px;color:#d4e1f1}
.service-card .service-more .btn{margin-top:6px}
.service-hint{color:#ff9cb0;font-size:13px;font-weight:700;margin:0 0 8px}


/* Square website payment page: preserves existing site style */
.payment-section{padding-top:48px}
.payment-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:22px;align-items:start}
.payment-primary{background:#112846;border:1px solid #ffffff35;border-radius:14px;padding:clamp(24px,3vw,38px)}
.payment-primary h2{font-size:clamp(27px,3vw,36px)}
.payment-primary>p{color:#d9e4f3}
.pay-eyebrow{display:flex;align-items:center;gap:9px;color:#93d5ff;font-weight:700;font-size:12px;letter-spacing:.14em;margin-bottom:16px}
.payment-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#43c9a7}
.payment-cta{font-size:17px;line-height:1.4;max-width:100%;text-align:center;margin:14px 0 4px;padding:17px 22px}
.payment-cta:focus-visible,.btn:focus-visible{outline:3px solid #f6c15b;outline-offset:4px}
.payment-primary .small{line-height:1.55}
.pay-instructions{border-top:1px solid #ffffff30;margin-top:27px;padding-top:25px}
.pay-instructions h3{font-size:20px}
.pay-instructions ol{padding-left:22px;color:#dce8f7}
.pay-instructions li{padding:6px 0}
.payment-secondary .card{margin-bottom:17px}
.payment-help p{color:#d1ddee}
.payment-help .small{color:#bacce1}
.payment-help .btn{font-size:14px;margin-top:7px;padding:12px 17px}
.payment-contact a{color:#fff;font-weight:700}
.payment-note{border-left:4px solid #8eb7eb;background:#102744;padding:19px 22px;margin-top:30px;border-radius:6px;color:#dce5f0}
.legacy-lookup{background:#0e213c;border:1px solid #ffffff35;border-radius:12px;margin-top:34px;padding:22px 25px}
.legacy-lookup summary{cursor:pointer;font-size:18px;font-weight:700}
.legacy-lookup summary:focus-visible{outline:3px solid #ff7494;outline-offset:6px}
.legacy-lookup .form-panel{margin:18px 0 0}
@media(max-width:800px){.payment-layout{grid-template-columns:1fr}.payment-cta{display:block;margin-right:0}.payment-section{padding-top:32px}}

/* Invoice-number-first Square portal (October 2026) */
.invoice-first-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:22px;align-items:start}
.invoice-first-form{max-width:none;margin:19px 0 12px;padding:0;border:0;background:transparent}
.invoice-first-form label{margin-bottom:14px;color:#fff}
.invoice-first-form input{margin-top:8px;font-size:18px;padding:14px 16px}
.invoice-first-form input:focus-visible{outline:3px solid #67bfff;outline-offset:2px}
.form-hint{color:#b9cee6;font-size:13px;line-height:1.6;margin:-7px 0 21px}
.lookup-submit{border:0;font:inherit;cursor:pointer;margin:6px 0 0}
.lookup-status{min-height:22px;margin-top:16px}
.invoice-found{background:#0a1e38;border:1px solid #ffffff4d;border-radius:10px;padding:24px;margin-top:20px}
.invoice-found[hidden],#square-pay[hidden]{display:none!important}
.invoice-found .payment-cta{margin:14px 0 0}
.invoice-first-grid .payment-secondary .card{margin-bottom:18px}
.manual-payment-option{margin-top:25px;padding:18px 24px;border:1px solid #ffffff33;border-radius:10px;background:#0f223c}
.manual-payment-option summary{font-weight:700;cursor:pointer}
.manual-payment-option summary:focus-visible{outline:3px solid #ffd06d;outline-offset:5px}
.manual-payment-inner{padding-top:12px;color:#d5e1f1}
@media(max-width:800px){.invoice-first-grid{grid-template-columns:1fr}.invoice-first-form input{font-size:16px}}

/* Multiple-service quote request checklist */
.service-selector{border:1px solid #6580a4;border-radius:10px;margin:0 0 16px;padding:18px;background:#0c2039}
.service-selector legend{font-weight:800;padding:0 7px;color:#fff;font-size:17px}
.service-selector .small{margin:2px 0 13px}
.service-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.form-panel .service-check{display:flex;align-items:center;gap:12px;margin:0;padding:12px;background:#173552;border:1px solid #547296;border-radius:8px;font-weight:600;cursor:pointer;line-height:1.4}
.form-panel .service-check:hover{border-color:#ff7b97;background:#203d60}
.form-panel .service-check:has(input:checked){border-color:#ff7693;background:#372d4b}
.form-panel .service-check input{appearance:auto;width:18px;height:18px;min-width:18px;flex:0 0 18px;margin:0;accent-color:#e42c58;cursor:pointer}
.form-panel .service-check input:focus-visible{outline:3px solid #f6c15b;outline-offset:3px}
.service-addons{margin-top:16px}
.service-addons summary{font-weight:700;cursor:pointer;padding:9px 0;color:#dceafa}
.service-addons .service-options{margin-top:8px}
#services-message:not(:empty){color:#ffd2d2;font-weight:700}
@media(max-width:620px){.service-options{grid-template-columns:1fr}}

/* Lone Star Overwatch - compact portfolio gallery */
.portfolio-intro{max-width:800px;margin-bottom:24px}.portfolio-intro h2{margin:8px 0 12px}.lso-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.lso-gallery figure{margin:0;background:#102a43;border:1px solid rgba(255,255,255,.15);border-radius:12px;overflow:hidden}.gallery-thumb{cursor:zoom-in;display:block;width:100%;padding:0;border:0;background:#081e32}.gallery-thumb img{width:100%;height:195px;object-fit:cover;display:block;transition:transform .2s}.gallery-thumb:hover img{transform:scale(1.03)}.gallery-thumb:focus-visible{outline:3px solid #df3540;outline-offset:-3px}.lso-gallery figcaption{padding:14px 12px;color:white;font-weight:700;font-size:.92rem}.lso-lightbox{border:0;border-radius:12px;padding:12px;background:#061828;color:white;width:min(96vw,1250px);max-height:94vh;box-shadow:0 15px 75px #000b}.lso-lightbox::backdrop{background:#000d}.lso-lightbox img{display:block;max-width:100%;max-height:78vh;margin:auto;object-fit:contain}.lso-lightbox p{text-align:center;margin:12px}.lso-lightbox form{text-align:right}.lightbox-close{border:0;background:#ca2534;color:white;padding:2px 13px;font-size:29px;cursor:pointer;border-radius:6px}@media(max-width:760px){.lso-gallery{grid-template-columns:1fr}.gallery-thumb img{height:215px}}

/* Interactive mapping examples */
.viewer-section{padding-top:34px}.viewer-panel{position:relative;background:#061324;border:1px solid #42607c;border-radius:14px;overflow:hidden}.viewer-panel canvas{display:block;width:100%;height:min(65vh,600px);touch-action:none;cursor:grab}.viewer-panel canvas:active{cursor:grabbing}#viewer-status{position:absolute;bottom:8px;left:14px;pointer-events:none;color:#b9cee6;font-size:13px;background:#041221b0;padding:4px 9px;border-radius:4px}.viewer-tools{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin:8px 0 20px}.viewer-tools .btn{margin:0;cursor:pointer;border:0}.control-row{color:#e2ebf6;display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}.control-row input[type=range]{accent-color:#df3540;width:190px}.control-row input[type=checkbox]{accent-color:#df3540}.feature-links{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}.feature-links .btn{margin:0}.portfolio-examples{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:24px}.portfolio-examples .card p{color:#becde0}.portfolio-examples .card h3{margin-bottom:8px}@media(max-width:700px){.portfolio-examples{grid-template-columns:1fr}.viewer-panel canvas{height:55vh}}

/* LSO client portal navigation */
nav{align-items:center}
nav .client-login{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;padding:8px 14px;border:1px solid #df3540;border-radius:6px;background:#c90034;color:#fff;line-height:1.3}
nav .client-login:hover{color:#fff;background:#e1264d}
nav .client-login:focus-visible{outline:3px solid #f6c15b;outline-offset:4px}

/* Stockpile PDF sample */
.sample-report-grid{grid-template-columns:minmax(0,1fr);max-width:640px}.sample-report-grid h3{margin-top:12px}.sample-report-tag{display:inline-block;border:1px solid #587ba0;background:#173653;color:#b6dcff;border-radius:5px;padding:3px 9px;font-size:12px;letter-spacing:.12em;font-weight:700}.sample-report-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.sample-report-actions .btn{margin:8px 0 0}
