:root{--ink:#1E2124;--steel:#2E3236;--concrete:#ECE9E4;--light:#ECE9E4;--card:#F6F5F2;--accent:#810014;--accent-dk:#5e000f;--mid:#8A8F94;--white:#fff;--hf:'Barlow Condensed',Arial,sans-serif;--bf:'Source Sans 3',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:400 18px/1.6 var(--bf);color:var(--ink);background:var(--light);overflow-x:hidden}
h1,h2,h3{font-family:var(--hf);font-weight:700;line-height:1.15;text-transform:uppercase;letter-spacing:.02em;margin:0 0 .5em}
h1{font-size:clamp(2rem,6vw,3.6rem)}h2{font-size:clamp(1.6rem,4vw,2.4rem)}h3{font-size:1.2rem}
a{color:inherit}.wrap{max-width:1180px;margin:0 auto;padding:0 20px}.narrow{max-width:800px}
.btn{display:inline-block;min-height:48px;padding:12px 22px;background:var(--accent);color:var(--white);font:600 1rem var(--hf);text-transform:uppercase;text-decoration:none;border-radius:2px;transition:background .2s,transform .2s;margin:4px 6px 4px 0}
.btn:hover{background:var(--accent-dk);transform:translateY(-2px)}.btn-ghost{background:transparent;border:2px solid var(--white)}
.hdr{background:var(--steel);color:var(--white);position:sticky;top:0;z-index:10}.hdr-in{display:flex;align-items:center;justify-content:space-between;min-height:68px}
.logo{font:700 1.4rem var(--hf);text-transform:uppercase;text-decoration:none;color:var(--white)}.logo span{color:#C9C6C0}
.nav ul{list-style:none;margin:0;padding:0}.nav>ul{display:flex;align-items:center;gap:18px}.nav a{text-decoration:none;font-weight:600}
.dd{position:relative}.sub{display:none;position:absolute;top:100%;left:0;background:var(--steel);padding:10px 0;min-width:220px}.sub a{display:block;padding:8px 16px}.dd:hover .sub,.dd:focus-within .sub{display:block}
.menu-btn{display:none;min-height:44px;min-width:64px;background:var(--accent);color:var(--white);border:0;font:600 1rem var(--hf);text-transform:uppercase;border-radius:2px}
.hero{display:grid;grid-template-columns:1fr 1fr;background:var(--steel);color:var(--white);min-height:520px}.hero-txt{display:flex;align-items:center}
.hero-in{padding:60px 40px;max-width:620px;margin-left:auto}.lead{font-size:1.25rem;max-width:620px}
.ph{background:#C9C6C0;color:var(--ink);display:flex;align-items:center;justify-content:center;text-align:center;font-weight:600;min-height:240px;padding:12px;border:1px solid var(--mid)}
.ph-hero{min-height:360px;border:0}.ph-sm{min-height:160px}
.trust{background:var(--accent);color:var(--white)}.trust-in{display:flex;flex-wrap:wrap;gap:8px 28px;justify-content:center;padding:14px 20px;font-weight:600}.trust p{margin:0}
.sec{padding:64px 0}.alt{background:var(--concrete)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px}.g3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.card{background:var(--card);border-top:4px solid var(--accent);transition:transform .2s,box-shadow .2s}.card:hover{transform:translateY(-4px);box-shadow:0 8px 20px rgba(0,0,0,.12)}.card h3,.card p{padding:0 16px}.card h3{margin-top:14px}.card h3 a{text-decoration:none}
.two{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;counter-reset:s}.steps li{background:var(--white);padding:20px;counter-increment:s}.steps li::before{content:counter(s);font:700 2rem var(--hf);color:var(--accent)}
details{background:var(--white);margin:0 0 10px;padding:14px 18px;border-left:4px solid var(--accent)}summary{font-weight:600;cursor:pointer;min-height:28px}
.cta{background:var(--ink);color:var(--white)}.form-slot{min-height:200px}
.ftr{background:#15181a;color:#d6d4cf;padding:48px 0 20px}.fgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px}.ftr ul{list-style:none;padding:0;margin:0}.ftr li{padding:3px 0}.ftr h3{color:var(--white)}.legal{margin-top:30px;font-size:.9rem}
@keyframes settle{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media (max-width:900px){.menu-btn{display:block}.nav{display:none;position:absolute;top:68px;left:0;right:0;background:var(--ink);max-height:calc(100vh - 68px);overflow-y:auto}.nav.open{display:block}.nav>ul{flex-direction:column;align-items:stretch;gap:0;padding:10px 20px 20px}.nav a{display:block;padding:10px 0;min-height:44px}.sub{display:block;position:static;padding:0 0 0 16px;min-width:0}.two,.fgrid{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.dark{background:var(--steel);color:var(--white)}.dark .steps li{background:#3a3f44}.trust .slot,.slot{opacity:.85;font-style:italic}.slotbox{outline:1px dashed var(--mid)}
.steps h3::before{content:none}.cta{background:var(--steel)}.ftr{background:var(--ink)}.trust{background:var(--accent)}
.fx{opacity:1}.hero-in{animation:rise .4s ease-out both}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (max-width:900px){.hero{grid-template-columns:1fr}.ph-hero{order:-1;min-height:220px}.hero-in{padding:32px 20px;margin:0}.hero .btn{display:block;text-align:center}}
.logo{display:flex;align-items:center;gap:10px}.logo img{width:48px;height:48px;display:block}
.hero-img{width:100%;height:100%;min-height:360px;object-fit:cover;display:block}
.tile-img{width:100%;height:200px;object-fit:cover;display:block}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.gal-img{width:100%;height:260px;object-fit:cover;display:block;transition:transform .2s}.gal-img:hover{transform:scale(1.02)}
@media (max-width:900px){.hero-img{order:-1;min-height:0;height:240px}}
/* full build v1 */
.sub.mega{display:none;grid-template-columns:repeat(3,minmax(200px,1fr));gap:4px 18px;min-width:720px;padding:14px 16px;left:-220px}.dd:hover .sub.mega,.dd:focus-within .sub.mega{display:grid}
.grp{padding-bottom:8px}.grp-l{color:#ff9aa8;text-transform:uppercase;font-family:var(--hf);letter-spacing:.03em}.grp ul{padding:0}.grp ul a{padding:4px 0 4px 8px;font-weight:400;font-size:.95rem}.sub a:hover{text-decoration:underline}
.dd>.sub:not(.mega){max-height:70vh;overflow:auto}
.phead{background:var(--steel);color:var(--white);padding:48px 0 40px}.phead a{color:var(--white)}.bc{font-size:.95rem;opacity:.9;margin:0 0 10px}
.revs{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin:20px 0}.rev{background:var(--card);margin:0;padding:20px;border-top:4px solid var(--accent)}.rev blockquote{margin:8px 0 12px;font-size:1.02rem}.rev figcaption{font-weight:600;font-size:.95rem}.stars{color:#b45a12;font-size:1.25rem;letter-spacing:2px}
.chips{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 28px}.chips a{display:inline-block;min-height:44px;padding:10px 14px;background:var(--card);border:1px solid #c9c6c0;text-decoration:none;font-weight:600}.chips a:hover{border-color:var(--accent);color:var(--accent)}
.ticks{padding-left:1.2em}.ticks li{margin:4px 0}.svc-img{width:100%;height:auto;max-height:520px;object-fit:cover;display:block}
.hubcard ul{padding:0 16px 16px 34px;margin:0}.hubcard li{padding:2px 0}.more{color:var(--accent);font-weight:600}
.btn-dark{background:var(--steel)}.phead .btn,.cta .btn{color:var(--white)}.cta a{color:var(--white)}
.fnap{margin-bottom:26px}.ftr .fgrid{grid-template-columns:repeat(4,1fr)}.ftr a{text-decoration:none}.ftr a:hover{text-decoration:underline}.ftr h3 a{color:var(--white)}
.two:has(.form-slot:empty){grid-template-columns:1fr}
@media (max-width:900px){.sub.mega{display:block;min-width:0;padding:0 0 0 16px}.grp-l{color:#ff9aa8}.ftr .fgrid{grid-template-columns:1fr 1fr}.dd>.sub:not(.mega){max-height:none}}
@media (max-width:480px){.ftr .fgrid{grid-template-columns:1fr}.sub.mega{display:block}}
.grid{grid-template-columns:repeat(auto-fill,minmax(min(250px,100%),1fr))}.revs{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr))}.steps{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}.gallery{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}
img,iframe{max-width:100%}body{overflow-wrap:anywhere}
@media (max-width:300px){.logo-txt{display:none}.wrap{padding:0 14px}h1{font-size:1.7rem}.btn{padding:12px 14px}}

/* Maps Machine lead form (mm-lead-form) */
.mm-lead-form{display:grid;gap:6px;text-align:left;max-width:36rem;position:relative}
.mm-lead-form label{font-weight:600;font-size:.95rem;margin-top:6px}
.mm-lead-form input,.mm-lead-form select,.mm-lead-form textarea{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--mid);border-radius:4px;background:#fff;color:var(--ink);box-sizing:border-box}
.mm-lead-form input:focus,.mm-lead-form select:focus,.mm-lead-form textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
.mm-lead-form .btn{margin-top:12px;width:100%}
.mm-lead-form .mm-status{min-height:1.2em;margin:4px 0 0;font-size:.95rem}
