
:root{
  --navy:#071426; --navy2:#0d2038; --red:#e21d2d; --red2:#b90f1d;
  --white:#fff; --ink:#101722; --muted:#617086; --line:#dfe5ec; --soft:#f5f7fa;
  --shadow:0 18px 50px rgba(7,20,38,.12); --radius:22px;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:#fff;line-height:1.6}
a{text-decoration:none;color:inherit}.container{width:min(1160px,92%);margin:auto}
.topbar{background:var(--navy);color:#fff;font-size:14px}.topbar .container{display:flex;justify-content:space-between;gap:20px;padding:9px 0}
nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.navin{display:flex;align-items:center;justify-content:space-between;min-height:78px;gap:24px}
.logo{font-weight:950;letter-spacing:-1.5px;font-size:25px;color:var(--navy)}.logo span{color:var(--red)}
.menu{display:flex;gap:25px;font-weight:800;font-size:14px}.menu a:hover{color:var(--red)}
.btn{display:inline-flex;align-items:center;justify-content:center;border-radius:12px;padding:13px 19px;font-weight:900;letter-spacing:.1px;border:2px solid transparent}
.btn-red{background:var(--red);color:#fff;box-shadow:0 10px 24px rgba(226,29,45,.22)}.btn-red:hover{background:var(--red2)}
.btn-dark{background:var(--navy);color:#fff}.btn-light{background:#fff;color:var(--navy);border-color:#fff}
.hero{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;inset:auto -10% -50% 45%;height:500px;background:radial-gradient(circle,#e21d2d55,transparent 65%)}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:42px;align-items:center;padding:72px 0}
.kicker{color:#ff4553;text-transform:uppercase;font-weight:950;letter-spacing:2px;font-size:13px}
h1{font-size:clamp(45px,6vw,76px);line-height:.98;letter-spacing:-3px;margin:14px 0 20px}
h2{font-size:clamp(32px,4vw,48px);line-height:1.05;letter-spacing:-1.8px;margin:0 0 15px}
h3{line-height:1.15;margin:0 0 8px}.lead{font-size:20px;color:#d5dfeb;max-width:650px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hero-photo{border-radius:28px;overflow:hidden;box-shadow:0 25px 80px #0008;border:1px solid #ffffff22;background:#0a1525}.hero-photo img{width:100%;display:block;aspect-ratio:2.68/1;object-fit:cover}
.trust{background:var(--red);color:#fff}.trust .container{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:19px 0;font-weight:900;text-align:center}
.section{padding:78px 0}
.page-hero{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;padding:78px 0 70px;position:relative;overflow:hidden}.page-hero:after{content:"";position:absolute;width:520px;height:520px;right:-180px;top:-220px;border-radius:50%;background:radial-gradient(circle,#e21d2d55,transparent 68%)}.page-hero h1{max-width:900px;margin-left:auto;margin-right:auto}.page-hero .sub{color:#d5dfeb}.area-card{min-height:250px}.soft{background:var(--soft)}
.center{text-align:center}.sub{color:var(--muted);max-width:720px;margin:0 auto 36px;font-size:18px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:0 8px 30px rgba(7,20,38,.05)}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow);transition:.2s}
.service-icon{width:46px;height:46px;border-radius:12px;background:#fff0f1;color:var(--red);display:grid;place-items:center;font-weight:950;margin-bottom:17px}
.project{border-radius:24px;overflow:visible;background:#fff;border:1px solid var(--line);box-shadow:0 8px 30px rgba(7,20,38,.07);position:relative;transition:.2s}.project:hover{z-index:20;box-shadow:var(--shadow)}
.project img{width:100%;aspect-ratio:16/10;object-fit:contain;background:#eef2f6;display:block;border-radius:24px 24px 0 0;transition:transform .2s,box-shadow .2s;cursor:zoom-in}.project:hover img{position:relative;transform:scale(1.04);box-shadow:0 20px 45px rgba(7,20,38,.22);z-index:30}.project-body{padding:23px}.tag{font-size:12px;font-weight:950;color:var(--red);text-transform:uppercase;letter-spacing:1.3px}
.band{background:var(--navy);color:#fff;border-radius:30px;padding:48px}.band p{color:#d5dfeb}.split{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center}
.story-list{display:grid;gap:14px}.story-item{display:flex;gap:15px}.num{flex:0 0 38px;height:38px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-weight:950}
.team-card{overflow:hidden;padding:0}.team-card img{width:100%;aspect-ratio:4/4.8;object-fit:cover;display:block;background:#eef2f6}.team-body{padding:22px}.team-role{color:var(--red);font-size:12px;text-transform:uppercase;font-weight:950;letter-spacing:1px}
.quote{background:#fff;border-left:5px solid var(--red);padding:22px 25px;border-radius:0 15px 15px 0;box-shadow:var(--shadow);font-size:18px}
.footer{background:#050d18;color:#d5dfeb;padding:50px 0 25px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}.footer h3{color:#fff}.footer a:hover{color:#fff}.fine{border-top:1px solid #ffffff18;margin-top:35px;padding-top:18px;font-size:13px;color:#8ea0b6}
.contactbox{background:var(--navy);color:#fff;border-radius:28px;padding:40px}.contactbox input,.contactbox textarea{width:100%;border:1px solid #ffffff22;background:#fff;color:#111;border-radius:10px;padding:13px;margin:6px 0 13px;font:inherit}.contactbox textarea{min-height:130px}
.note{font-size:13px;color:#7c8da3}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:#eef2f7;padding:8px 11px;border-radius:999px;font-size:13px;font-weight:800}
.mobile{display:none}
@media(max-width:850px){
 .menu{display:none}.mobile{display:block}.hero-grid,.split,.grid3,.grid2,.footer-grid{grid-template-columns:1fr}.hero-grid{padding:48px 0}.trust .container{grid-template-columns:1fr}.hero-photo{order:-1}
 h1{font-size:49px}.section{padding:58px 0}.band{padding:30px}.topbar .container{flex-direction:column;gap:2px}
}

.project:has(img:hover)::after{content:"Hover to enlarge • full photo";position:absolute;left:50%;top:calc(16/10 * 50%);transform:translate(-50%,-50%);padding:7px 10px;border-radius:999px;background:rgba(7,20,38,.82);color:#fff;font-size:11px;font-weight:800;letter-spacing:.3px;pointer-events:none;opacity:.95;z-index:40}
@media(max-width:850px){.hero-photo img{aspect-ratio:16/9}.project:hover img{transform:none}.project:has(img:hover)::after{display:none}}

/* Reviews */
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:32px}.review-card{background:#fff;border:1px solid #e6e9ee;border-radius:20px;padding:26px;box-shadow:var(--shadow);position:relative}.review-stars{color:#e21d2d;letter-spacing:2px;font-size:18px;margin-bottom:12px}.review-card blockquote{margin:0 0 16px;font-size:17px;line-height:1.65;color:#182337}.review-name{font-weight:800;color:#071426}.review-source{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#738099;margin-top:4px}.review-highlight{background:var(--navy);color:#fff;border-radius:24px;padding:38px}.review-highlight blockquote{font-size:22px;line-height:1.55;margin:0 0 18px}.review-highlight .review-name{color:#fff}.review-highlight .review-source{color:#aebbd0}.review-filter{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.review-pill{border:1px solid #d8dee7;border-radius:999px;padding:8px 13px;font-size:13px;font-weight:700;color:#39465b;background:#fff}.review-card.compact blockquote{font-size:16px}.review-note{font-size:14px;color:#68758a}.quote-mark{font-size:42px;line-height:.7;color:#e21d2d;font-weight:900;margin-bottom:12px}
@media(max-width:900px){.review-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.review-grid{grid-template-columns:1fr}.review-highlight{padding:28px}.review-highlight blockquote{font-size:19px}}

/* Showcase gallery */
.custom-feature-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:22px;align-items:stretch}.custom-feature-card{height:100%}.custom-feature-copy{display:flex;flex-direction:column;justify-content:center}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.gallery-item{margin:0;border-radius:22px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:0 8px 30px rgba(7,20,38,.07)}.gallery-item img{width:100%;height:320px;object-fit:contain;background:#eef2f6;display:block}.gallery-item figcaption{padding:16px 18px;font-weight:800}.feature-photo{width:100%;max-height:560px;object-fit:contain;background:#eef2f6;border-radius:24px;display:block;box-shadow:var(--shadow)}.showcase-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.showcase-grid img{width:100%;height:100%;min-height:320px;object-fit:cover;border-radius:24px;display:block}.project-meta{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.project-meta span{background:#eef2f7;padding:8px 12px;border-radius:999px;font-size:13px;font-weight:800}.price-note{background:#fff7f7;border-left:4px solid var(--red);padding:16px 18px;border-radius:0 14px 14px 0}.service-cta{margin-top:22px}
@media(max-width:850px){.gallery-grid,.showcase-grid,.custom-feature-grid{grid-template-columns:1fr}.gallery-item img{height:240px}}

.footer-logo-wrap{margin-bottom:16px}.footer-logo{display:block;width:132px;height:132px;object-fit:contain;background:#fff;border-radius:16px;padding:8px;box-shadow:0 10px 30px rgba(0,0,0,.18)}

/* Doors, Windows & Siding service showcase */
.service-feature{grid-column:1/-1;background:#fff;border:1px solid var(--line);border-radius:24px;padding:30px;box-shadow:var(--shadow);margin-top:2px}
.service-feature-head{display:flex;justify-content:space-between;gap:30px;align-items:flex-start;margin-bottom:26px}
.service-feature-head h2{margin:0 0 10px;color:var(--navy);font-size:30px}
.service-feature-head p{max-width:760px;margin:0;color:#5e6b80;line-height:1.7}
.service-feature-list{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:430px;padding-top:6px}
.service-feature-list span{background:#f2f5f8;border:1px solid #e0e6ed;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800;color:#334156;white-space:nowrap}
.service-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.service-photo-grid figure{margin:0;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#f3f5f7}
.service-photo-grid figure:first-child,.service-photo-grid figure:nth-child(6){grid-column:span 2}
.service-photo-grid img{width:100%;height:260px;object-fit:contain;display:block;background:#eef2f6}
.service-photo-grid figcaption{padding:12px 14px;font-weight:800;font-size:14px;color:#1d2a3d;background:#fff}
@media(max-width:900px){.service-feature-head{flex-direction:column}.service-feature-list{justify-content:flex-start;max-width:none}.service-photo-grid{grid-template-columns:repeat(2,1fr)}.service-photo-grid figure:first-child,.service-photo-grid figure:nth-child(6){grid-column:span 2}}
@media(max-width:560px){.service-feature{padding:20px}.service-photo-grid{grid-template-columns:1fr}.service-photo-grid figure:first-child,.service-photo-grid figure:nth-child(6){grid-column:span 1}.service-photo-grid img{height:300px}}


/* Service page image sizing fixes */
.dedicated-hero-photo{margin:0;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 8px 30px rgba(7,20,38,.06)}
.dedicated-hero-photo img{width:100%;height:420px;object-fit:contain;background:#eef2f6;display:block}
.dedicated-hero-photo figcaption{padding:13px 15px;font-weight:800;color:var(--navy)}
.plumbing-showcase{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;align-items:stretch}
.plumbing-hero-photo,.plumbing-support-grid figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 8px 30px rgba(7,20,38,.06)}
.plumbing-hero-photo img{width:100%;height:390px;object-fit:contain;background:#eef2f6;display:block}
.plumbing-hero-photo figcaption,.plumbing-support-grid figcaption{padding:13px 15px;font-weight:800;color:var(--navy)}
.plumbing-support-grid{display:grid;grid-template-columns:1fr;gap:18px}
.plumbing-support-grid figure{display:grid;grid-template-columns:170px 1fr;align-items:center}
.plumbing-support-grid img{width:100%;height:120px;object-fit:contain;background:#eef2f6;display:block}
.cleanout-hero{background:var(--navy);color:#fff;padding:66px 0 74px;position:relative;overflow:hidden}
.cleanout-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:34px;align-items:center}
.cleanout-hero-photo{width:100%;height:auto;max-height:430px;object-fit:contain;background:#eef2f6;border-radius:24px;display:block;box-shadow:var(--shadow)}
.cleanout-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:30px}
.cleanout-gallery figure{margin:0;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 8px 30px rgba(7,20,38,.06)}
.cleanout-gallery img{width:100%;height:300px;object-fit:contain;background:#eef2f6;display:block}
.cleanout-gallery figcaption{padding:14px 16px;font-weight:800;color:var(--navy)}
@media(max-width:850px){.plumbing-showcase{grid-template-columns:1fr}.plumbing-hero-photo img{height:340px}.plumbing-support-grid{grid-template-columns:1fr 1fr}.plumbing-support-grid figure{display:block}.plumbing-support-grid img{height:180px}.cleanout-hero-grid,.cleanout-gallery{grid-template-columns:1fr}.cleanout-hero-photo{max-height:340px}.cleanout-gallery img{height:280px}}
@media(max-width:600px){.plumbing-support-grid{grid-template-columns:1fr}.plumbing-support-grid figure{display:grid;grid-template-columns:130px 1fr}.plumbing-support-grid img{height:120px}}


/* Deck page photo sizing fix */
.deck-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}
.deck-gallery-card{margin:0;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 8px 30px rgba(7,20,38,.06)}
.deck-gallery-card img{display:block;width:100%;height:260px;object-fit:contain;background:#eef2f6}
.deck-gallery-card figcaption{padding:14px 16px}
.deck-gallery-card figcaption strong{display:block;margin-bottom:6px}
.deck-gallery-card figcaption span{display:block;color:var(--muted);font-size:14px;line-height:1.5}
.deck-photo-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:24px}
.deck-photo-row figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden}
.deck-photo-row img{display:block;width:100%;height:300px;object-fit:contain;background:#eef2f6}
.deck-photo-row figcaption{padding:13px 15px;color:var(--muted);font-size:14px}
.deck-feature-main{display:block;width:100%;height:420px;object-fit:contain;background:#eef2f6;border-radius:20px}
@media(max-width:900px){.deck-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.deck-gallery-card img{height:250px}.deck-feature-main{height:360px}}
@media(max-width:620px){.deck-gallery,.deck-photo-row{grid-template-columns:1fr}.deck-gallery-card img{height:230px}.deck-photo-row img{height:260px}.deck-feature-main{height:300px}}

/* Service area map */
.service-map-section{background:#f4f6f9}
.service-map-wrap{position:relative;border-radius:22px;overflow:hidden;border:1px solid #dbe2ea;background:#e9eef3;box-shadow:0 18px 45px rgba(7,22,40,.10)}
.service-map{height:520px;width:100%;z-index:1;background:#dfe6ed}
.service-map .leaflet-control-attribution{font-size:10px}
.map-legend{position:absolute;z-index:500;left:18px;bottom:18px;background:rgba(7,22,40,.94);color:#fff;border-radius:14px;padding:14px 16px;display:flex;gap:18px;align-items:center;box-shadow:0 10px 28px rgba(0,0,0,.18);font-size:12px;line-height:1.35}
.map-legend strong{font-size:12px}.map-legend span:not(.legend-dot):not(.legend-area){color:#c8d2df}
.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px;background:#f4f6f9;border:2px solid #e21d2d;vertical-align:middle}
.legend-dot.home{background:#e21d2d;border:2px solid #fff;width:12px;height:12px}.legend-dot.town{background:#e21d2d;border:2px solid #fff}
.legend-area{display:inline-block;width:18px;height:10px;border:1px solid #e21d2d;background:rgba(226,29,45,.25);margin-right:7px;vertical-align:middle}
.map-note{text-align:center;margin:18px auto 0;max-width:760px;color:#58677a}
.hh-marker-wrap{background:transparent!important;border:0!important}.hh-marker{box-sizing:border-box;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:8px;font-family:Arial,sans-serif}.home-marker{width:34px;height:34px;background:#e21d2d;color:#fff;border:3px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.35)}.town-marker{width:12px;height:12px;background:#e21d2d;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.hh-tooltip{font-weight:700;color:#071628;border:0;box-shadow:0 3px 12px rgba(0,0,0,.15)}
@media(max-width:700px){.service-map{height:420px}.map-legend{left:10px;right:10px;bottom:10px;display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}.map-legend>div:first-child{grid-column:1/-1}}

/* Social links */
.social-link, .social-nav { font-weight: 700; }
.social-link:hover, .social-nav:hover { color: #e21d2d; }
@media (max-width: 900px) {
  .social-nav { display: inline-block; }
}

/* =========================================================
   HANDY HANDS — OUR WORK / PROJECT GALLERY
   ========================================================= */
.gallery-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#071426 0%,#0d2038 62%,#111c2a 100%);color:#fff;padding:82px 0 76px;border-bottom:1px solid rgba(255,255,255,.08)}
.gallery-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 0 42%,rgba(226,29,45,.12) 42.2%,transparent 43%),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:auto,54px 54px;opacity:.55;pointer-events:none}
.gallery-hero:after{content:"";position:absolute;width:460px;height:460px;border:1px solid rgba(255,255,255,.08);border-radius:50%;right:-170px;top:-180px;box-shadow:0 0 0 55px rgba(255,255,255,.02),0 0 0 110px rgba(255,255,255,.015)}
.gallery-hero-inner{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;gap:40px}
.gallery-hero h1{font-size:clamp(48px,7vw,94px);line-height:.88;letter-spacing:-.055em;margin:12px 0 26px;font-weight:950;text-transform:uppercase}
.gallery-hero h1 span{color:#e21d2d}
.gallery-hero .lead{max-width:760px;color:#c8d3e2;font-size:18px;line-height:1.65;margin:0}
.gallery-hero-pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}.gallery-hero-pills span{border:1px solid rgba(255,255,255,.17);border-radius:999px;padding:8px 13px;font-size:11px;font-weight:900;letter-spacing:.12em;color:#eef3f8;background:rgba(255,255,255,.04)}
.gallery-hero-mark{min-width:145px;text-align:right;padding-bottom:5px}.gallery-hero-number{font-size:72px;line-height:.8;font-weight:950;letter-spacing:-.07em;color:rgba(255,255,255,.11)}.gallery-hero-rule{height:3px;background:#e21d2d;width:100%;margin:18px 0 13px}.gallery-hero-note{font-size:11px;font-weight:900;letter-spacing:.15em;line-height:1.5;color:#9eafc3}
.gallery-section{padding:72px 0 92px;background:#f6f7f9}
.gallery-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:34px}.gallery-toolbar h2{margin:7px 0 0;font-size:clamp(30px,4vw,48px);letter-spacing:-.035em;line-height:1}.gallery-filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.gallery-filter{border:1px solid #d9dee6;background:#fff;color:#34445a;border-radius:999px;padding:10px 15px;font:inherit;font-size:12px;font-weight:900;cursor:pointer;transition:.2s ease;box-shadow:0 4px 16px rgba(7,20,38,.04)}.gallery-filter:hover{transform:translateY(-1px);border-color:#b7c1ce}.gallery-filter.is-active{background:#0b1422;color:#fff;border-color:#0b1422;box-shadow:0 8px 22px rgba(7,20,38,.16)}
.gallery-masonry{columns:3 280px;column-gap:20px}.gallery-card{display:inline-block;width:100%;break-inside:avoid;margin:0 0 20px;background:#fff;border:1px solid #e1e5eb;border-radius:20px;overflow:hidden;box-shadow:0 8px 28px rgba(7,20,38,.065);vertical-align:top;transition:transform .22s ease,box-shadow .22s ease}.gallery-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(7,20,38,.13)}.gallery-open{display:block;width:100%;padding:0;border:0;background:#0b1422;position:relative;cursor:zoom-in;overflow:hidden}.gallery-open img{display:block;width:100%;height:auto;max-height:620px;object-fit:cover;transition:transform .45s ease,filter .3s ease}.gallery-card-tall .gallery-open img{max-height:720px}.gallery-card-wide .gallery-open img{max-height:460px}.gallery-card:hover .gallery-open img{transform:scale(1.025);filter:saturate(1.05)}
.gallery-card figcaption{padding:15px 17px 17px}.gallery-card figcaption strong{display:block;color:#0b1422;font-size:16px;line-height:1.2;margin-bottom:5px}.gallery-card figcaption span{display:block;color:#69788b;font-size:13px;line-height:1.45}.zoom-hint{position:absolute;right:12px;bottom:12px;background:rgba(7,20,38,.86);color:#fff;border-radius:999px;padding:8px 11px;font-size:10px;font-weight:900;letter-spacing:.08em;opacity:0;transform:translateY(5px);transition:.22s ease}.gallery-card:hover .zoom-hint{opacity:1;transform:none}.featured-sticker{position:absolute;left:13px;top:13px;background:#e21d2d;color:#fff;padding:9px 12px;border-radius:5px;font-size:10px;font-weight:950;letter-spacing:.1em;box-shadow:0 8px 22px rgba(0,0,0,.22);transform:rotate(-2deg)}
.video-open{cursor:pointer}.video-open:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(0,0,0,.5));pointer-events:none}.video-play{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:#e21d2d;color:#fff;font-size:27px;padding-left:4px;box-shadow:0 12px 35px rgba(0,0,0,.35);transition:.2s ease}.video-open:hover .video-play{transform:translate(-50%,-50%) scale(1.08)}.video-label{position:absolute;z-index:2;left:15px;bottom:14px;color:#fff;font-size:11px;font-weight:950;letter-spacing:.14em}.gallery-cta{background:#0b1422;color:#fff;padding:72px 0}.gallery-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:30px;border:1px solid rgba(255,255,255,.09);border-radius:26px;padding:38px 42px;background:linear-gradient(135deg,rgba(255,255,255,.035),rgba(255,255,255,.015))}.gallery-cta h2{margin:7px 0 8px;font-size:clamp(30px,4vw,48px);letter-spacing:-.04em}.gallery-cta p{margin:0;color:#aebbd0;max-width:650px}
.lightbox{position:fixed;inset:0;z-index:9999;background:rgba(2,7,14,.94);display:none;align-items:center;justify-content:center;padding:70px 80px 80px}.lightbox.is-open{display:flex}.lightbox-stage{width:min(1200px,90vw);height:min(78vh,850px);display:grid;place-items:center}.lightbox-stage img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;box-shadow:0 20px 70px rgba(0,0,0,.45);border-radius:10px}.lightbox-stage iframe{width:min(100%,1000px);height:min(76vh,760px);border:0;border-radius:14px;box-shadow:0 20px 70px rgba(0,0,0,.45);background:#000}.lightbox-close,.lightbox-prev,.lightbox-next{position:fixed;border:0;background:rgba(255,255,255,.09);color:#fff;cursor:pointer;z-index:10001;transition:.2s ease}.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:#e21d2d}.lightbox-close{right:24px;top:18px;width:48px;height:48px;border-radius:50%;font-size:34px;line-height:1}.lightbox-prev,.lightbox-next{top:50%;transform:translateY(-50%);width:52px;height:64px;border-radius:14px;font-size:48px;line-height:.8}.lightbox-prev{left:20px}.lightbox-next{right:20px}.lightbox-caption{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);max-width:80vw;text-align:center;color:#fff;font-weight:800;font-size:14px;background:rgba(7,20,38,.86);padding:10px 16px;border-radius:999px}.lightbox-open{overflow:hidden}
@media(max-width:900px){.gallery-hero-inner,.gallery-toolbar,.gallery-cta-inner{align-items:flex-start;flex-direction:column}.gallery-hero-mark{display:none}.gallery-filters{justify-content:flex-start}.gallery-section{padding-top:55px}.gallery-masonry{columns:2 240px}.lightbox{padding:60px 48px 70px}.lightbox-prev{left:8px}.lightbox-next{right:8px}}
@media(max-width:620px){.gallery-hero{padding:58px 0}.gallery-hero h1{font-size:54px}.gallery-masonry{columns:1}.gallery-card{border-radius:16px}.gallery-cta-inner{padding:28px 24px}.lightbox{padding:60px 12px 70px}.lightbox-stage{width:96vw;height:72vh}.lightbox-prev,.lightbox-next{width:42px;height:52px;font-size:38px}.lightbox-close{right:12px}.lightbox-caption{max-width:88vw;font-size:12px}}

/* Keep the service list semantic at H2 while retaining the existing card scale. */
.service-card-title{font-size:20px;line-height:1.15;letter-spacing:0;margin:0 0 8px}

/* Custom Creations hub and category pages */
.custom-hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.custom-hub-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:0 8px 30px rgba(7,20,38,.06);transition:transform .2s,box-shadow .2s}
.custom-hub-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.custom-hub-image{height:205px;background:#eef2f6;overflow:hidden}
.custom-hub-image img{width:100%;height:100%;object-fit:cover;display:block}
.custom-hub-card-body{padding:22px;display:flex;flex:1;flex-direction:column}
.custom-hub-label{color:var(--red);font-size:12px;font-weight:950;letter-spacing:1.2px;text-transform:uppercase}
.custom-hub-card h2{font-size:25px;line-height:1.1;letter-spacing:-.8px;margin:9px 0}
.custom-hub-card p{color:var(--muted);font-size:15px;margin:0 0 18px}
.custom-hub-link{font-weight:900;color:var(--navy);margin-top:auto}
.custom-detail-grid{display:grid;grid-template-columns:1fr .9fr;gap:44px;align-items:center}
.custom-detail-photo{margin:0}.custom-detail-photo img{width:100%;max-height:460px;object-fit:cover;border-radius:22px;display:block;box-shadow:var(--shadow)}.custom-detail-photo figcaption{font-size:13px;color:var(--muted);margin-top:8px}
.custom-idea-list{padding-left:22px;margin:16px 0 0}.custom-idea-list li{margin:0 0 13px}
@media(max-width:900px){.custom-hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.custom-detail-grid{grid-template-columns:1fr}.custom-detail-photo{order:-1}}
@media(max-width:600px){.custom-hub-grid{grid-template-columns:1fr}.custom-hub-image{height:220px}}

/* Custom laser engraving preview */
.engraving-hero{background-image:linear-gradient(110deg,rgba(5,18,35,.92),rgba(7,20,38,.78)),url('/assets/custom-engraving/deck-sign.png');background-size:cover;background-position:center}
.engraving-intro .split{align-items:center}
.engraving-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:32px}
.engraving-category{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--navy);font-weight:850;box-shadow:0 6px 20px rgba(7,20,38,.04)}
.engraving-category:hover{border-color:var(--red);transform:translateY(-2px)}
.engraving-category b{color:var(--red);font-size:22px}
.engraving-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:32px}
.engraving-gallery-card{display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:10px 10px 14px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--navy);box-shadow:0 6px 20px rgba(7,20,38,.05)}
.engraving-gallery-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.engraving-gallery-card span{font-weight:850;padding:2px 4px 0}
.engraving-gallery-card small{color:var(--muted);padding:0 4px}
.engraving-note{font-size:14px;color:var(--muted);border-left:3px solid var(--red);padding:10px 14px;background:#f5f7fa}
@media(max-width:900px){.engraving-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.engraving-category-grid,.engraving-gallery{grid-template-columns:1fr}}

/* Custom laser engraving preview */
.engraving-hero{background-image:linear-gradient(110deg,rgba(5,18,35,.92),rgba(7,20,38,.78)),url('/assets/custom-engraving/deck-sign.png');background-size:cover;background-position:center}
.engraving-intro .split{align-items:center}
.engraving-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:32px}
.engraving-category{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--navy);font-weight:850;box-shadow:0 6px 20px rgba(7,20,38,.04)}
.engraving-category:hover{border-color:var(--red);transform:translateY(-2px)}
.engraving-category b{color:var(--red);font-size:22px}
.engraving-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:32px}
.engraving-gallery-card{display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:10px 10px 14px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--navy);box-shadow:0 6px 20px rgba(7,20,38,.05)}
.engraving-gallery-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.engraving-gallery-card span{font-weight:850;padding:2px 4px 0}
.engraving-gallery-card small{color:var(--muted);padding:0 4px}
.engraving-note{font-size:14px;color:var(--muted);border-left:3px solid var(--red);padding:10px 14px;background:#f5f7fa}
@media(max-width:900px){.engraving-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.engraving-category-grid,.engraving-gallery{grid-template-columns:1fr}}

/* Custom laser engraving preview */
.engraving-hero{background-image:linear-gradient(110deg,rgba(5,18,35,.92),rgba(7,20,38,.78)),url('/assets/custom-engraving/deck-sign.png');background-size:cover;background-position:center}
.engraving-intro .split{align-items:center}
.engraving-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:32px}
.engraving-category{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--navy);font-weight:850;box-shadow:0 6px 20px rgba(7,20,38,.04)}
.engraving-category:hover{border-color:var(--red);transform:translateY(-2px)}
.engraving-category b{color:var(--red);font-size:22px}
.engraving-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:32px}
.engraving-gallery-card{display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:10px 10px 14px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--navy);box-shadow:0 6px 20px rgba(7,20,38,.05)}
.engraving-gallery-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px}
.engraving-gallery-card span{font-weight:850;padding:2px 4px 0}
.engraving-gallery-card small{color:var(--muted);padding:0 4px}
.engraving-note{font-size:14px;color:var(--muted);border-left:3px solid var(--red);padding:10px 14px;background:#f5f7fa}
@media(max-width:900px){.engraving-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.engraving-category-grid,.engraving-gallery{grid-template-columns:1fr}}
