/* Homepage design upgrade (matches Commercial & HOA page) */
html,body{overflow-x:clip}
.btn{background:linear-gradient(135deg,#2f80ed,#153e5c);color:#fff;border:0;border-radius:999px;padding:12px 26px;box-shadow:0 8px 22px #2f80ed55;position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s;font-size:20px;text-align:center;white-space:nowrap}
.btn.big{font-size:24px;padding:16px 34px}
.btn:hover{transform:translateY(-3px);box-shadow:0 14px 32px #2f80ed88,0 0 0 4px #93c5fd55}
.btn::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,#ffffff66,transparent);transform:skewX(-20deg);animation:shine 3.5s infinite;pointer-events:none}
.hdr .btn{animation:pulse 2.6s infinite}
@keyframes shine{0%,60%{left:-60%}100%{left:130%}}
@keyframes pulse{0%,100%{box-shadow:0 8px 22px #2f80ed55,0 0 0 0 #2f80ed66}50%{box-shadow:0 8px 22px #2f80ed55,0 0 0 10px #2f80ed00}}
.tel.big{border:2px solid #ffffff55;border-radius:999px;padding:14px 26px;transition:background .25s}.tel.big:hover{background:#ffffff14}
.ba{box-shadow:0 18px 40px #0006}
.proof{padding:30px 0}
.pgrid{display:flex!important;flex-wrap:wrap;justify-content:center;gap:14px;max-width:1100px}
.pgrid div{flex:0 1 190px;background:#fff;border-radius:14px;padding:16px 10px;box-shadow:0 4px 14px #153e5c14;transition:transform .25s;text-align:center}
.pgrid div:hover{transform:translateY(-4px)}
section.sec>.wrap>h2,section.sec>.wrap>.sub{text-align:center;max-width:900px;margin-left:auto;margin-right:auto}
.gal{display:grid!important;grid-template-columns:repeat(6,1fr)!important;gap:16px;margin:28px 0}
.gal figure{grid-column:span 2!important;position:relative;border-radius:16px;overflow:hidden;box-shadow:0 6px 18px #153e5c22}
.gal figure.wide{grid-column:span 3!important}
.gal img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s}
.gal figure:hover img{transform:scale(1.06)}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 14px 12px;background:linear-gradient(transparent,#0c2638e6);font-size:15px}
.badge{position:absolute;top:12px;left:12px;z-index:2;font:900 14px "Big Shoulders Display",sans-serif;text-transform:uppercase;padding:4px 12px;border-radius:999px;background:#2e7d32;color:#fff;box-shadow:0 2px 8px #0004}.badge.ba2{background:linear-gradient(90deg,#c62828 50%,#2e7d32 50%)}
.steps.cards{display:grid;grid-template-columns:1fr;gap:16px;margin:26px 0}
.steps.cards li{display:flex;gap:16px;align-items:flex-start;border:1px solid #ffffff22;background:#ffffff10;border-radius:14px;padding:18px 20px;margin:0;line-height:1.5;transition:transform .25s,background .25s}
.steps.cards li:hover{transform:translateY(-4px);background:#ffffff1a}
.steps.cards b{display:block;color:var(--lb);font-size:19px;margin-bottom:2px}
.steps .ic{flex:0 0 46px;height:46px;display:grid;place-items:center;border-radius:12px;background:#ffffff1f;font-size:24px;font-style:normal}
.svc{gap:20px;text-align:center}
.svc a{border:0;border-radius:18px;background:linear-gradient(160deg,#fff,var(--pale));box-shadow:0 6px 20px #153e5c1f;padding:28px 22px;transition:transform .25s,box-shadow .25s;border-top:5px solid #2f80ed}
.svc a:hover{transform:translateY(-6px);box-shadow:0 16px 36px #153e5c33}
.svc .ic{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,#2f80ed,#153e5c);font-size:30px;font-style:normal;margin-bottom:10px}
.svc b{font-size:28px}.svc span{display:block}
.fgrid img{border-radius:16px;box-shadow:0 10px 28px #153e5c33}
form input,form select{border-radius:12px;min-height:52px}form .btn{width:100%}
.quote .qgrid>div:first-child{text-align:left}
.rv{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}.rv.in{opacity:1;transform:none}
@media(max-width:900px){
 .gal{grid-template-columns:repeat(2,1fr)!important}.gal figure,.gal figure.wide{grid-column:span 1!important}.gal figure.wide{grid-column:span 2!important}
 .svc{grid-template-columns:repeat(2,1fr)}.pgrid div{flex-basis:30%}
 .hcopy,.rgrid>div,.fgrid>div,.quote .qgrid>div:first-child{text-align:center}.ctas{justify-content:center}
 .steps.cards li{text-align:left}
}
@media(max-width:600px){
 body{font-size:17px}.wrap{padding:0 18px}
 h1{font-size:44px;line-height:.95}h2{font-size:34px}
 .lede,.sub{font-size:18px}.eyebrow{font-size:17px}
 .hero{padding:26px 0 34px}.sec{padding:46px 0}
 .ctas{flex-direction:column;align-items:stretch;gap:12px}.ctas .btn,.ctas .tel{width:100%;text-align:center}
 .gal{grid-template-columns:1fr!important;gap:14px}.gal figure,.gal figure.wide{grid-column:auto!important}
 .svc{grid-template-columns:1fr}.svc a{padding:24px 18px}
 .pgrid{gap:10px}.pgrid div{flex:0 1 calc(50% - 5px);padding:14px 6px}.proof b{font-size:38px}
 .hdr .hrow{height:64px}.logo img{height:46px}.hdr .btn{font-size:15px;padding:9px 16px}
 .fgrid .btn{width:100%}
 .sticky{padding:10px 12px calc(10px + env(safe-area-inset-bottom));gap:10px;background:#ffffffee;backdrop-filter:blur(6px)}
 .sticky a{min-height:50px;display:flex!important;align-items:center;justify-content:center;font-size:20px}
 .sticky .tel{border:2px solid var(--navy)!important;border-radius:999px!important}
 .ftr{padding-bottom:110px}
}
@media(prefers-reduced-motion:reduce){*,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rv{opacity:1;transform:none}.gal figure:hover img,.svc a:hover,.btn:hover{transform:none}}
