:root{--primary:#147abd;--dark:#10263b;--muted:#64748b;--soft:#f3f7fb;--accent:#70441f}
*{box-sizing:border-box}body{font-family:'Be Vietnam Pro',sans-serif;color:#172033;background:#fff}.topbar{background:#0c1d31;color:#dbe8f6}.topbar a{color:#fff;text-decoration:none}.brand{font-weight:800;letter-spacing:-.4px;color:#0c1d31}.brand-lockup{display:flex;align-items:center;gap:10px}.brand-logo{width:42px;height:52px;object-fit:contain}.brand-copy{display:flex;flex-direction:column;line-height:1}.brand-copy strong{font-size:1.06rem;color:#17324c;letter-spacing:.4px}.brand-copy small{margin-top:5px;font-size:.61rem;letter-spacing:1.1px;color:#70441f}.admin-brand-logo{width:30px;height:38px;object-fit:contain;margin-right:9px;vertical-align:middle}.navbar .nav-link{font-weight:600;color:#344258}.navbar .nav-link:hover{color:#0b6efd}.btn{border-radius:10px;font-weight:700}.hero{background:radial-gradient(circle at 85% 20%,rgba(112,68,31,.25),transparent 28%),linear-gradient(135deg,#081a2b 0%,#114a73 68%,#70441f 140%);color:white;min-height:610px;display:flex;align-items:center;overflow:hidden}.eyebrow{display:inline-block;padding:.4rem .75rem;border-radius:999px;background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.18);font-size:.8rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.hero h1{font-size:clamp(2.35rem,5vw,4.7rem);font-weight:800;line-height:1.05;letter-spacing:-2px}.hero p{font-size:1.1rem;color:#d7e7f5;max-width:690px}.hero-visual{position:relative;min-height:430px}.hvac-box{position:absolute;border-radius:28px;background:linear-gradient(160deg,#ffffff,#ddebfa);box-shadow:0 30px 80px rgba(0,0,0,.25)}.hvac-main{width:78%;height:300px;right:4%;top:55px;padding:28px}.vent{height:100%;border-radius:20px;background:repeating-linear-gradient(90deg,#a7bad0 0 5px,#dbe7f2 5px 16px);border:14px solid #c6d5e6}.pipe{position:absolute;background:#91a8bd;border-radius:999px}.pipe-a{width:180px;height:58px;left:2%;top:35px;transform:rotate(-8deg)}.pipe-b{width:210px;height:62px;right:2%;bottom:40px;transform:rotate(6deg)}.badge-float{position:absolute;left:3%;bottom:75px;background:white;color:#142238;padding:16px 20px;border-radius:16px;box-shadow:0 20px 40px rgba(0,0,0,.18);font-weight:700}.section{padding:90px 0}.section-soft{background:var(--soft)}.section-title{font-weight:800;letter-spacing:-1px;color:#10223a}.section-sub{color:var(--muted);max-width:720px}.service-card,.project-card,.post-card,.metric-card{border:0;border-radius:18px;background:#fff;box-shadow:0 12px 30px rgba(31,60,89,.08);height:100%;transition:.25s}.service-card:hover,.project-card:hover,.post-card:hover{transform:translateY(-5px);box-shadow:0 18px 42px rgba(31,60,89,.14)}.icon-box{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:#eaf3ff;color:#0b6efd;font-size:1.3rem;font-weight:800}.project-thumb,.post-thumb{height:220px;object-fit:cover;width:100%;background:linear-gradient(135deg,#dce9f6,#eef5fb)}.image-placeholder{height:220px;display:grid;place-items:center;background:linear-gradient(135deg,#dce9f6,#eef5fb);color:#567;letter-spacing:.3px}.metric{font-size:2rem;font-weight:800;color:#0b6efd}.cta{background:linear-gradient(135deg,#147abd,#70441f);border-radius:28px;color:white;padding:42px}.footer{background:#081625;color:white}.footer a{display:block;color:#b8c8d8;text-decoration:none;margin:.45rem 0}.footer a:hover{color:white}.page-hero{padding:80px 0;background:linear-gradient(135deg,#0c1d31,#0c3159);color:white}.content-body{line-height:1.85}.content-body img{max-width:100%;height:auto}.admin-shell{min-height:100vh;background:#f4f7fb}.admin-sidebar{width:260px;background:#0c1d31;color:white;min-height:100vh;position:fixed;left:0;top:0;padding:24px 18px}.admin-sidebar a{display:block;color:#c7d5e4;text-decoration:none;padding:11px 13px;border-radius:10px;margin-bottom:5px}.admin-sidebar a:hover,.admin-sidebar a.active{background:#16324f;color:white}.admin-main{margin-left:260px;padding:32px}.admin-card{background:#fff;border:0;border-radius:16px;box-shadow:0 8px 25px rgba(25,46,70,.07)}.table img{width:72px;height:50px;object-fit:cover;border-radius:8px}.login-page{min-height:100vh;background:linear-gradient(135deg,#071627,#147abd);display:grid;place-items:center}.login-card{width:min(430px,92vw);background:#fff;border-radius:22px;padding:34px;box-shadow:0 28px 90px rgba(0,0,0,.3)}@media(max-width:991px){.hero{min-height:auto;padding:80px 0}.hero-visual{min-height:360px;margin-top:20px}.admin-sidebar{position:static;width:100%;min-height:auto}.admin-main{margin-left:0}.admin-sidebar .nav-wrap{display:flex;gap:6px;overflow-x:auto}.admin-sidebar a{white-space:nowrap}.hero h1{letter-spacing:-1px}}@media(max-width:576px){.section{padding:65px 0}.hero-visual{min-height:300px}.hvac-main{height:220px;top:40px}.badge-float{bottom:30px}.cta{padding:28px}}

.hero-logo-card{position:absolute;right:13%;top:72px;z-index:3;width:118px;height:154px;border-radius:22px;background:rgba(255,255,255,.96);display:grid;place-items:center;padding:12px;box-shadow:0 22px 55px rgba(0,0,0,.22)}.hero-logo-card img{max-width:100%;max-height:100%;object-fit:contain}.footer-logo{width:86px;height:128px;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,.14))}@media(max-width:991px){.hero-logo-card{right:11%;top:55px;width:92px;height:120px}}@media(max-width:576px){.brand-copy small{display:none}.brand-logo{width:35px;height:44px}.hero-logo-card{right:8%;top:46px;width:72px;height:94px}.footer-logo{width:68px;height:102px}}

/* Continuous image marquee - configurable from Admin */
.project-marquee{--marquee-card-w:240px;--marquee-card-h:150px;--marquee-mobile-w:190px;--marquee-mobile-h:118px;--marquee-speed:42s;--marquee-gap:18px;--marquee-radius:16px;padding:56px 0 18px;background:#fff;overflow:hidden}
.marquee-heading{position:relative;z-index:2}
.marquee-viewport{width:100%;overflow:hidden;mask-image:linear-gradient(to right,transparent 0,#000 5%,#000 95%,transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,#000 5%,#000 95%,transparent 100%)}
.marquee-track{display:flex;width:max-content;animation:hmtech-marquee var(--marquee-speed) linear infinite;will-change:transform}
.marquee-right .marquee-track{animation-direction:reverse}
.marquee-group{display:flex;gap:var(--marquee-gap);padding-right:var(--marquee-gap);flex-shrink:0}
.marquee-card{position:relative;display:block;width:var(--marquee-card-w);height:var(--marquee-card-h);border-radius:var(--marquee-radius);overflow:hidden;flex:0 0 var(--marquee-card-w);background:#e9f1f8;box-shadow:0 10px 24px rgba(31,60,89,.11);text-decoration:none;color:#fff}
.marquee-card img{display:block;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover;transition:transform .45s ease}
.marquee-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(4,18,32,.86) 0%,rgba(4,18,32,.18) 58%,rgba(4,18,32,0) 100%)}
.marquee-card:hover img{transform:scale(1.055)}
.marquee-caption{position:absolute;left:18px;right:18px;bottom:15px;z-index:2;display:flex;flex-direction:column;gap:2px;text-shadow:0 2px 10px rgba(0,0,0,.25)}
.marquee-caption strong{font-size:.98rem;line-height:1.35}.marquee-caption small{color:rgba(255,255,255,.78)}
.marquee-no-caption .marquee-caption{display:none}.marquee-no-caption .marquee-card::after{display:none}
.marquee-placeholder{background:linear-gradient(135deg,#eef6fb,#d7eaf7)}
.marquee-placeholder img{object-fit:contain!important;padding:12% 26% 28%!important;filter:drop-shadow(0 8px 14px rgba(0,0,0,.08))}
.marquee-placeholder::after{background:linear-gradient(to top,rgba(8,35,58,.92) 0%,rgba(20,122,189,.14) 62%,rgba(255,255,255,0) 100%)}
.marquee-pause-hover .marquee-viewport:hover .marquee-track{animation-play-state:paused}
@keyframes hmtech-marquee{from{transform:translate3d(0,0,0)}to{transform:translate3d(-50%,0,0)}}
@media(max-width:768px){.project-marquee{padding-top:42px}.marquee-card{width:var(--marquee-mobile-w);height:var(--marquee-mobile-h);flex-basis:var(--marquee-mobile-w)}.marquee-caption{left:11px;right:11px;bottom:9px}.marquee-caption strong{font-size:.78rem}.marquee-caption small{font-size:.68rem}}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none}.marquee-viewport{overflow-x:auto;mask-image:none;-webkit-mask-image:none}.marquee-group[aria-hidden="true"]{display:none}}

/* Homepage hero background slider - managed from Admin */
.hero{position:relative;isolation:isolate}
.hero>.container{position:relative;z-index:3}
.hero-bg-slider{position:absolute;inset:0;z-index:0;overflow:hidden;background:#0b2840}
.hero-bg-slide{position:absolute;inset:-2%;background-repeat:no-repeat;background-size:cover;opacity:0;transform:scale(1.025);transition:opacity var(--hero-transition,1200ms) ease;will-change:opacity,transform}
.hero-bg-slide.active{opacity:1}
.hero-bg-overlay{position:absolute;inset:0;z-index:1;background:rgba(4,18,32,var(--hero-overlay,.62));pointer-events:none}
.hero-slider-zoom .hero-bg-slide.active{animation:hmtech-hero-zoom var(--hero-interval,6s) linear forwards}
@keyframes hmtech-hero-zoom{from{transform:scale(1.025)}to{transform:scale(1.085)}}
@media(prefers-reduced-motion:reduce){.hero-bg-slide{transition:none;animation:none!important;transform:scale(1.025)!important}.hero-bg-slide:not(:first-child){display:none}}

/* Multi-image galleries: Admin + public Service/Project detail */
.admin-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.admin-gallery-item{border:1px solid #e3eaf2;border-radius:12px;overflow:hidden;background:#f8fafc}.admin-gallery-item>img{display:block;width:100%;height:118px;object-fit:cover;background:#eaf0f6}.content-gallery{position:relative;border-radius:20px;overflow:hidden;background:#e9f0f7;box-shadow:0 12px 30px rgba(31,60,89,.1)}.content-gallery .carousel-item img{display:block;width:100%;height:520px;object-fit:cover}.content-gallery .carousel-control-prev,.content-gallery .carousel-control-next{width:10%}.gallery-counter{position:absolute;right:16px;bottom:16px;z-index:3;background:rgba(8,22,37,.78);color:#fff;padding:7px 11px;border-radius:999px;font-size:.78rem;font-weight:700;backdrop-filter:blur(5px)}.content-gallery-thumbs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.content-gallery-thumbs button{border:2px solid transparent;border-radius:10px;overflow:hidden;padding:0;background:#eef3f8;opacity:.72;transition:.2s}.content-gallery-thumbs button:hover,.content-gallery-thumbs button.active{border-color:#0b6efd;opacity:1}.content-gallery-thumbs img{display:block;width:100%;height:88px;object-fit:cover}@media(max-width:991px){.admin-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-gallery .carousel-item img{height:390px}}@media(max-width:576px){.admin-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-gallery-item>img{height:96px}.content-gallery .carousel-item img{height:260px}.content-gallery-thumbs{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.content-gallery-thumbs img{height:62px}}

/* Hero typography managed from Admin */
.hero .hero-eyebrow-custom{font-size:clamp(.68rem,1vw,var(--hero-eyebrow-size,13px))}
.hero .hero-title-custom{font-size:clamp(2.35rem,5vw,var(--hero-title-size,75px))}
.hero .hero-description-custom{font-size:clamp(.95rem,1.55vw,var(--hero-description-size,18px))}
.hero .hero-primary-button-custom{font-size:clamp(.95rem,1.35vw,var(--hero-primary-button-size,20px))}
.hero .hero-secondary-button-custom{font-size:clamp(.95rem,1.35vw,var(--hero-secondary-button-size,20px))}
.hero .hero-badge-custom{font-size:clamp(.82rem,1.15vw,var(--hero-badge-size,16px))}
