/* Site chrome shared by warranty + booking pages: matches zlmservices.com (Squarespace/Halstead design). */
:root { --o:#DC5F2B; --o2:#c24f1f; --char:#2E2F2F; --ink:#000; --text:#2E2F2F; --muted:#6a6b6b; --line:#e3e3e3; --soft:#f5f5f4;
  --f:"Jost", "Helvetica Neue", Arial, sans-serif; }
.wrap { max-width:1140px; margin:0 auto; padding:0 6vw; }
@media (min-width:1300px) { .wrap { padding:0 3vw; } }
/* ---------- header (matches site) ---------- */
.site-header { position:absolute; top:0; left:0; right:0; z-index:50; padding:22px 0; }
.site-header .wrap { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; max-width:none; padding:0 4.5vw; }
.site-logo img { height:78px; width:auto; display:block; }
.site-nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px 26px; max-width:520px; margin-top:6px; }
.site-nav > div { position:relative; }
.site-nav a.top, .site-nav button.top { font:300 16.96px/1.6 var(--f); letter-spacing:1.02px; text-transform:uppercase; color:#eef2f4; text-decoration:none; background:none; border:0; padding:2px 0; cursor:pointer; }
.site-nav a.top:hover, .site-nav button.top:hover { opacity:.75; }
.site-nav a.top.cta { color:var(--o); font-weight:700; }
.site-nav .sub { display:none; position:absolute; top:100%; left:50%; transform:translateX(-50%); padding-top:10px; min-width:230px; z-index:60; }
.site-nav .sub div { background:var(--char); padding:12px 0; box-shadow:0 10px 30px rgba(0,0,0,.25); }
.site-nav .sub a { display:block; color:#eef2f4; text-decoration:none; font-size:15px; letter-spacing:.5px; padding:6px 20px; text-align:center; }
.site-nav .sub a:hover { color:var(--o); }
.site-nav > div:hover .sub, .site-nav > div:focus-within .sub { display:block; }
.burger { display:none; background:none; border:0; width:44px; height:44px; cursor:pointer; padding:10px 6px; }
.burger span { display:block; height:2px; background:#fff; margin:6px 0; }
.mnav { display:none; position:fixed; inset:0; background:var(--char); z-index:100; padding:100px 8vw 40px; overflow:auto; }
.mnav.open { display:block; }
.mnav a { display:block; color:#fff; text-decoration:none; font:300 26px/1.3 var(--f); text-transform:uppercase; letter-spacing:2px; padding:10px 0; }
.mnav a.cta { color:var(--o); font-weight:700; }
.mnav .x { position:absolute; top:24px; right:6vw; background:none; border:0; color:#fff; font-size:40px; cursor:pointer; }
@media (max-width:900px) { .site-nav { display:none; } .burger { display:block; } .site-logo img { height:58px; } }

/* side "call us" tab */
.call-tab { position:fixed; right:0; top:50%; transform:translateY(-50%); z-index:40; background:var(--o); color:#fff; text-decoration:none;
  writing-mode:vertical-rl; font:400 13px/1 var(--f); letter-spacing:3px; text-transform:uppercase; padding:18px 14px; box-shadow:0 4px 14px rgba(0,0,0,.25); }
.call-tab:hover { background:var(--o2); }
@media (max-width:640px) { .call-tab { display:none; } }

/* ---------- hero ---------- */
.hero { position:relative; color:#eef2f4; background:var(--char) center/cover no-repeat; padding:190px 0 150px;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 70px),50% 100%,0 calc(100% - 70px)); }
.hero.photo::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.68),rgba(0,0,0,.35) 60%,rgba(0,0,0,.2)),linear-gradient(180deg,rgba(0,0,0,.45),transparent 30%); }
.hero > .wrap { position:relative; }
.hero h1 { font:300 clamp(34px,5vw,58px)/1.08 var(--f); letter-spacing:2px; text-transform:uppercase; margin:0 0 18px; color:#eef2f4; }
.hero h1 b { font-weight:700; display:block; }
.hero p { max-width:640px; font-size:18px; color:#eef2f4; margin:0 0 26px; }
.text-cta { display:inline-flex; align-items:center; gap:14px; font:700 21.8px/1.1 var(--f); text-transform:uppercase; color:var(--o); text-decoration:none; letter-spacing:.5px; }
.text-cta span.arrow { font-size:26px; }
.hero .phone { display:inline-block; margin-left:28px; color:#eef2f4; font-weight:400; text-decoration:none; letter-spacing:1px; }
.hero.dark { padding-bottom:130px; }

.eyebrow { font:300 17px/1.3 var(--f); text-transform:uppercase; letter-spacing:.5px; margin:0 0 6px; color:inherit; }
/* ---------- footer (matches site) ---------- */
.site-footer { background:var(--char); color:#fff; padding:110px 0 30px; margin-top:60px; clip-path:polygon(0 60px,50% 0,100% 60px,100% 100%,0 100%); font-size:14.7px; }
.site-footer .grid { display:grid; grid-template-columns:1.1fr 1fr 1fr 1fr; gap:36px; }
.site-footer h5 { font:700 16.96px/1.3 var(--f); color:var(--o); text-transform:uppercase; letter-spacing:1px; margin:0 0 12px; }
.site-footer a { color:#fff; text-decoration:none; display:block; margin:0 0 4px; }
.site-footer a:hover { color:var(--o); }
.site-footer .lbl { color:var(--o); font-weight:700; text-transform:uppercase; margin:16px 0 0; }
.site-footer .num { font-weight:700; }
.site-footer .foot-logo img { height:70px; width:auto; }
.site-footer .hours { text-align:center; border-top:1px solid rgba(255,255,255,.12); margin-top:40px; padding-top:30px; }
.site-footer .hours h5 { margin-bottom:8px; }
.site-footer .legal { text-align:center; margin-top:22px; color:#d8d8d8; }
.site-footer .legal a { display:inline; }
@media (max-width:860px) { .site-footer .grid { grid-template-columns:1fr 1fr; } }
@media (max-width:760px) { .hero { padding:150px 0 120px; } .hero .phone { display:block; margin:18px 0 0; } }
