/* KKE site-wide v2 design layer. Loaded after /css/main.css. Matches homepage + Commercial/HOA design. */
:root{--navy:#00437b;--navy2:#002b52;--red:#c2171c;--lb:#93c5fd;--pale:#eaf2f9;--ink:#0f2233;--acc:#2f80ed}
html,body{overflow-x:clip}
body{font:400 18px/1.6 "Source Sans 3",system-ui,sans-serif;color:var(--ink);background:#fff}
h1,h2,.v2-btn,.btn{font-family:"Big Shoulders Display",Impact,sans-serif;letter-spacing:.01em}
h1,h2{text-transform:uppercase;font-weight:900;color:var(--navy)}
h1{font-size:clamp(40px,6vw,76px);line-height:.95;margin:.1em 0 .3em}
h2{font-size:clamp(32px,4vw,52px);line-height:1;margin:0 0 .4em}
h3{font-family:"Source Sans 3",system-ui,sans-serif;font-weight:700;color:var(--navy);font-size:21px;line-height:1.3}
a{color:var(--navy)}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
/* header */
.hdr{position:sticky;top:0;background:#fff;z-index:50;box-shadow:0 1px 0 #dde7f0}
.hrow{display:flex;align-items:center;gap:16px;height:76px}
.hdr .logo img{height:58px;width:auto;display:block}
.hdr .nav{display:flex;gap:14px;flex:1;justify-content:center;font-weight:700;font-size:15px;white-space:nowrap}
.hdr .nav a{text-decoration:none;color:var(--navy)}.hdr .nav a:hover{color:var(--red)}
.hdr .tel{font:800 22px "Big Shoulders Display",sans-serif;text-decoration:none;color:var(--navy);white-space:nowrap}
.menu{position:relative}.menu summary{list-style:none;cursor:pointer;font:800 15px "Source Sans 3",sans-serif;color:var(--navy);padding:8px 12px;border:2px solid var(--navy);border-radius:999px}
.menu summary::-webkit-details-marker{display:none}
.menu[open] summary{background:var(--navy);color:#fff}
.menu .panel{position:absolute;right:0;top:calc(100% + 10px);width:min(760px,92vw);background:#fff;border-radius:16px;box-shadow:0 20px 50px #00213f40;padding:20px;display:grid;grid-template-columns:repeat(3,1fr);gap:4px 18px;z-index:60}
.menu .panel b{grid-column:1/-1;color:var(--red);font:900 16px "Big Shoulders Display";text-transform:uppercase;margin-top:6px}
.menu .panel a{text-decoration:none;font-size:15px;padding:4px 0;color:var(--ink)}.menu .panel a:hover{color:var(--red)}
/* buttons */
.v2-btn,.btn,.btn-primary{display:inline-block;background:linear-gradient(135deg,var(--acc),var(--navy));color:#fff!important;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;font-weight:900;text-transform:uppercase;text-decoration:none;text-align:center;cursor:pointer}
.v2-btn:hover,.btn:hover{transform:translateY(-3px);box-shadow:0 14px 32px #2f80ed88,0 0 0 4px #93c5fd55}
.v2-btn::after,.btn-primary::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,#ffffff66,transparent);transform:skewX(-20deg);animation:v2shine 3.5s infinite;pointer-events:none}
.hdr .v2-btn{animation:v2pulse 2.6s infinite;white-space:nowrap}
.btn-lg{font-size:23px;padding:15px 32px}
.btn-phone,.btn-secondary{background:transparent;color:var(--navy)!important;border:2px solid var(--navy);box-shadow:none}
.page-hero-photo .btn-phone,.page-hero .btn-phone,.bg-blue-deep .btn-phone,.page-hero-photo .btn-secondary,.page-hero .btn-secondary{color:#fff!important;border-color:#ffffff88}
.btn-phone:hover,.btn-secondary:hover{background:#ffffff18}
@keyframes v2shine{0%,60%{left:-60%}100%{left:130%}}
@keyframes v2pulse{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}}
/* breadcrumbs + hero */
.breadcrumbs{background:var(--pale);font-size:14px;padding:8px 0}.breadcrumbs a{color:var(--navy)}
.page-hero-photo,.page-hero{position:relative;color:#fff;text-align:center;padding:72px 0 80px!important;background-color:var(--navy)!important}
.page-hero-photo::before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,#00437bf0,#002b52d9 60%,#c2171c99)}
.page-hero{background:linear-gradient(160deg,var(--navy),var(--navy2))!important}
.page-hero-photo>.container,.page-hero>.container{position:relative;max-width:980px}
.page-hero-photo h1,.page-hero h1{color:#fff}
.page-hero-photo p,.page-hero p{font-size:20px;color:#e8f1f8;max-width:820px;margin:0 auto 10px}
.hero-ctas{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;margin-top:22px}
.eyebrow,.lp-kicker,.kk-sand-kicker,.kk-restoration-kicker{color:var(--red);font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:14px}
.page-hero .eyebrow,.page-hero-photo .eyebrow{color:var(--lb)}
/* direct answer */
.v2-answer{background:#fff;border-left:6px solid var(--red);border-radius:16px;box-shadow:0 10px 30px #00437b1f;padding:22px 26px;max-width:880px;margin:-40px auto 0;position:relative;z-index:2}
.v2-answer h2{font-size:clamp(24px,3vw,32px);margin:0 0 .3em}
.v2-answer p{margin:0;font-size:19px}
.v2-answer .lbl{display:inline-block;font:900 13px "Big Shoulders Display";letter-spacing:.08em;text-transform:uppercase;color:#fff;background:var(--red);border-radius:999px;padding:3px 12px;margin-bottom:8px}
.page-hero-photo p.v2-direct{background:#ffffff14;border:1px solid #ffffff33;border-radius:14px;padding:16px 20px}
/* trust bar */
.trust-bar{background:var(--pale);padding:22px 0}.trust-item{background:#fff;border-radius:16px;box-shadow:0 4px 14px #00437b14;transition:transform .25s}.trust-item:hover{transform:translateY(-4px)}
.trust-stars{color:#f5b301}
/* sections */
.section{padding:72px 0}.section-sm{padding:44px 0;text-align:center}
.bg-gray{background:var(--pale)!important}.bg-white{background:#fff!important}
.bg-blue-deep{background:linear-gradient(160deg,var(--navy),var(--navy2))!important;color:#fff}.bg-blue-deep h2,.bg-blue-deep h3{color:#fff!important}.bg-blue-deep a{color:#fff}
.section-header{text-align:center;max-width:900px;margin:0 auto 32px}.section-header p{font-size:19px}
.section>.container>h2,.section-sm h3{text-align:center}
.prose{max-width:860px;margin:0 auto}.prose h2{margin-top:1.4em}.prose p{margin:0 0 1em}
.lead{max-width:880px;margin:0 auto}.lead>h2{margin-top:1.3em}.lead>p:first-child{font-size:20px}
/* bullet lists -> spaced cards */
.prose ul,.lead ul,.section .container>ul:not(.dropdown){list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin:18px 0}
.prose ul li,.lead ul li,.section .container>ul:not(.dropdown)>li{background:#fff;border-radius:14px;box-shadow:0 4px 16px #00437b14;padding:14px 18px 14px 44px;position:relative;margin:0}
.prose ul li::before,.lead ul li::before,.section .container>ul:not(.dropdown)>li::before{content:"";position:absolute;left:18px;top:21px;width:10px;height:10px;border-radius:50%;background:var(--red)}
.bg-blue-deep ul li{background:#ffffff12!important;color:#fff}
/* cards */
.grid{display:grid;gap:22px}.grid-3{grid-template-columns:repeat(3,1fr)}
.kk-svc-photo,.blog-card,.t-card,.kk-price-card,.callout,.step,.faq-item{background:#fff;border-radius:18px;box-shadow:0 6px 20px #00437b1a;transition:transform .25s,box-shadow .25s;border:0}
.kk-svc-photo:hover,.blog-card:hover,.kk-price-card:hover{transform:translateY(-6px);box-shadow:0 16px 36px #00437b33}
.kk-svc-photo{overflow:hidden;border-top:5px solid var(--acc)}.kk-svc-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s}.kk-svc-photo:hover img{transform:scale(1.05)}
.kk-svc-photo-body{padding:18px 20px}
.callout{padding:22px 26px;border-left:6px solid var(--red);margin:26px 0}
.steps{display:grid;gap:16px}.step{display:flex;gap:16px;padding:18px 20px;align-items:flex-start}
.step-num,.step-number{flex:0 0 46px;height:46px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--acc),var(--navy));color:#fff;font:900 22px "Big Shoulders Display"}
.step h3{margin:0 0 4px}
.t-card{padding:22px;border-top:4px solid var(--red)}.t-stars{color:#f5b301}
.faq-list{max-width:900px;margin:0 auto;display:grid;gap:12px}.faq-item{padding:4px 20px}
.faq-item summary,.faq-item button{font-weight:700;color:var(--navy);cursor:pointer}
.areas-grid{display:flex!important;flex-wrap:wrap;gap:10px;justify-content:center}
.areas-grid a{background:#fff;border-radius:999px;padding:8px 16px;box-shadow:0 3px 10px #00437b1a;text-decoration:none;font-weight:600;transition:transform .2s}.areas-grid a:hover{transform:translateY(-3px);color:var(--red)}
.bg-blue-deep .areas-grid a{color:var(--navy)}
/* galleries: clean even grid */
.kk-gallery,.kk-svc-photos{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:16px}
.kk-gallery-item{border-radius:16px;overflow:hidden;position:relative;box-shadow:0 6px 18px #00437b22;margin:0}
.kk-gallery-item img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s}.kk-gallery-item:hover img{transform:scale(1.06)}
.kk-gallery-item-cap{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 10px;background:linear-gradient(transparent,#002b52e6);color:#fff;font-weight:700;font-size:15px}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.blog-card{overflow:hidden}.blog-card img{aspect-ratio:16/10;object-fit:cover;width:100%}
/* forms */
.kke-wiz input,.kke-wiz select,.kke-wiz textarea{border-radius:12px!important;min-height:50px;border:2px solid var(--lb)!important;font:inherit}
.kke-wiz{border-radius:20px;box-shadow:0 12px 36px #00437b26}
.kke-chip{border-radius:999px!important}
/* author box */
.v2-author{display:flex;gap:16px;align-items:center;max-width:880px;margin:30px auto;background:var(--pale);border-radius:16px;padding:18px 22px}
.v2-author img{width:64px;height:64px;object-fit:contain;background:#fff;border-radius:50%;padding:6px;flex:0 0 64px}
.v2-author p{margin:0;font-size:16px}
/* footer */
.ftr{background:#001f3d;color:#e8f1f8;padding:52px 0 96px;font-size:15px}
.ftr a{color:#e8f1f8;display:block;text-decoration:none;margin:3px 0}.ftr a:hover{color:#fff;text-decoration:underline}
.ftr p a{display:inline}.fcols{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:24px}
.ftr .fh{color:var(--lb);display:block;margin-bottom:6px;font-weight:700}
.flogo{background:#fff;padding:8px;border-radius:8px;width:220px}.legal{margin-top:26px;border-top:1px solid #ffffff22;padding-top:16px}.legal a{display:inline}
.v2-sticky{display:none}
.sticky-mobile-cta{display:none!important}
/* motion */
.rv{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}.rv.in{opacity:1;transform:none}
@media(max-width:1100px){.hdr .nav{display:none}.hrow{justify-content:space-between}}
@media(max-width:900px){
 .grid-3,.blog-grid{grid-template-columns:repeat(2,1fr)}.kk-gallery,.kk-svc-photos{grid-template-columns:repeat(2,1fr)!important}
 .fcols{grid-template-columns:1fr 1fr}.hdr .tel{display:none}
 .v2-sticky{display:flex;position:fixed;bottom:0;left:0;right:0;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#ffffffee;backdrop-filter:blur(6px);box-shadow:0 -2px 8px #0003;z-index:40}
 .v2-sticky a{flex:1;min-height:50px;display:flex;align-items:center;justify-content:center;font-size:20px}
 .v2-sticky .tel{border:2px solid var(--navy);border-radius:999px;font:800 20px "Big Shoulders Display";color:var(--navy);text-decoration:none}
 .menu .panel{grid-template-columns:1fr 1fr;position:fixed;left:4vw;right:4vw;top:70px;width:auto;max-height:78vh;overflow:auto}
}
@media(max-width:600px){
 body{font-size:17px}h1{font-size:42px}h2{font-size:32px}
 .hdr .hrow{height:64px;gap:8px}.hdr .logo img{height:44px}.hdr .v2-btn{font-size:15px;padding:9px 14px}
 .section{padding:48px 0}.page-hero-photo,.page-hero{padding:44px 0 64px!important}
 .page-hero-photo p,.page-hero p{font-size:18px}
 .hero-ctas{flex-direction:column;align-items:stretch}.hero-ctas .btn{width:100%}
 .grid-3,.blog-grid,.kk-gallery,.kk-svc-photos{grid-template-columns:1fr!important}
 .fcols{grid-template-columns:1fr}.v2-answer{margin:-30px 14px 0;padding:18px}
 .menu .panel{grid-template-columns:1fr}.ftr{padding-bottom:110px}
}
@media(prefers-reduced-motion:reduce){*,*::after{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}
/* fixes r3 */
.callout,.callout p{color:#22313f}.callout h3,.callout h4{color:var(--navy)}
.hdr .nav{gap:12px;font-size:14px}
@media(max-width:1500px){.hdr .tel{display:none}.hdr .nav{gap:11px;font-size:14px}}@media(max-width:1250px){.hdr .nav{display:none}.hrow{justify-content:space-between}}
/* header r4: logo + CTA sizing at all widths */
.hrow{height:84px;gap:14px;min-width:0}
.hdr .logo{flex:0 0 auto;display:block;line-height:0}
.hdr .logo img{height:70px;width:auto;max-width:none;aspect-ratio:1563/487}
.hdr .nav{flex:1 1 auto;min-width:0}
.hdr .menu,.hdr .hcta,.hdr .tel{flex:0 0 auto}
.hdr .hcta{font-size:19px;padding:12px 22px;margin-right:6px}
.menu summary{display:flex;align-items:center;gap:8px}
.menu .bars,.menu .bars::before,.menu .bars::after{display:block;width:18px;height:2px;background:currentColor;border-radius:2px;position:relative}
.menu .bars::before,.menu .bars::after{content:"";position:absolute;left:0}.menu .bars::before{top:-6px}.menu .bars::after{top:6px}
@media(max-width:1500px){.hdr .logo img{height:62px}}
@media(max-width:1250px){.hdr .nav{display:none}.hrow{justify-content:space-between}.hdr .tel{display:inline}}
@media(max-width:900px){.hdr .tel{display:none}}
@media(max-width:600px){.hdr .hrow{height:70px;gap:8px;padding:0 12px}.hdr .logo img{height:50px}.hdr .logo{margin-right:auto}
 .menu summary{padding:10px;border-radius:12px}.menu .mt{display:none}
 .hdr .hcta{font-size:16px;padding:10px 14px;margin-right:2px}.hdr .q1{display:none}}
@media(max-width:360px){.hdr .logo img{height:42px}.hdr .hcta{font-size:15px;padding:9px 11px}}
.hdr .wrap{max-width:1380px}.hdr .nav{gap:10px;font-size:14.5px}
@media(max-width:1250px){.hdr .nav{display:none}}
.hdr .wrap{max-width:1460px}
/* QA r4 fixes */
.trust-bar .trust-item-link{background:linear-gradient(115deg,#002b52,#00437b 60%,#0b5aa0)!important;color:#fff!important;border-color:#ffffff26}
.trust-bar .trust-item-link strong,.trust-bar .trust-item-link small,.trust-bar .trust-item-link span{color:#fff}
.trust-bar .trust-item-link small{color:#dbe9f6}.trust-bar .trust-stars{color:#ffc53d}
.breadcrumb .sep,span.sep{color:#5d7286}
.kk-restoration-kicker,.kk-sand-kicker{color:#fff!important;background:#c2171c!important}
.contact-info h4,.contact h4,h4{color:var(--navy)}
.btn,.v2-btn,.btn-primary{white-space:normal;text-align:center;max-width:100%;overflow-wrap:anywhere}
.hdr .hcta{white-space:nowrap;overflow:visible}
.kk-commercial-capacity-stats{text-align:center;justify-items:center}
h4{color:#00437b!important}.bg-blue-deep h4,.page-hero h4,.page-hero-photo h4,.ftr h4,.trust-item-link h4{color:#fff!important}
.breadcrumb span.sep,nav span.sep,.sep{color:#4f6478!important}
.trust-bar .trust-item-link .trust-arrow,.trust-bar .trust-item-link .trust-arrow *{color:#2a1a00!important}
.trust-bar .trust-item-link .trust-stars{color:#ffc53d!important}
/* even galleries by item count */
.kk-svc-photos{display:flex!important;flex-wrap:wrap;justify-content:center;gap:16px}
.kk-svc-photos>*{flex:0 0 calc((100% - 32px)/3);max-width:calc((100% - 32px)/3)}
.kk-gallery:has(>:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)!important;max-width:980px;margin-inline:auto}
.kk-gallery:has(>:only-child){grid-template-columns:1fr!important;max-width:640px;margin-inline:auto}
@media(max-width:900px){.kk-svc-photos>*{flex-basis:calc((100% - 16px)/2);max-width:calc((100% - 16px)/2)}}
@media(max-width:600px){.kk-svc-photos>*{flex-basis:100%;max-width:100%}.kk-gallery:has(>:nth-child(2):last-child){grid-template-columns:1fr!important}}
