/* No Excuses Pool — shared mobile layer (Nov 2026)
   Loaded on every public page AFTER the page's own styles.
   Everything that changes layout lives inside @media (max-width:768px),
   so desktop rendering is untouched. Page markup only gains data-m / data-mk
   attributes and .nxm-only / .nxd-only copy variants.

   data-m="hide"   -> removed from the mobile layout
   data-m="fold"   -> collapsed with a "Read more" button on mobile (content stays in the page)
   data-mo="N"     -> mobile display order inside a .nxm-flow container (default 50)
   data-mk="key"   -> section key used by the template rules below
*/

/* Mobile-only pieces are invisible on desktop */
.nxm-only,.nxm-menu-btn,.nxm-drawer,.nxm-fold-btn,.nxm-msb{display:none!important}
.nxm-nav-end{display:contents}

@media (max-width:768px){
  /* ---------- copy variants & primitives ---------- */
  .nxm-only{display:block!important}
  span.nxm-only,b.nxm-only,strong.nxm-only{display:inline!important}
  .nxd-only{display:none!important}
  [data-m~="hide"]{display:none!important}

  .nxm-flow{display:flex!important;flex-direction:column}
  .nxm-flow>*{order:50;width:100%;margin-left:0!important;margin-right:0!important}
  .nxm-flow>nav,.nxm-flow>.msb,.nxm-flow>.nxm-drawer{width:auto}
  .nxm-flow>[data-mo="1"]{order:1}.nxm-flow>[data-mo="2"]{order:2}.nxm-flow>[data-mo="3"]{order:3}
  .nxm-flow>[data-mo="4"]{order:4}.nxm-flow>[data-mo="5"]{order:5}.nxm-flow>[data-mo="6"]{order:6}
  .nxm-flow>[data-mo="7"]{order:7}.nxm-flow>[data-mo="8"]{order:8}.nxm-flow>[data-mo="9"]{order:9}
  .nxm-flow>[data-mo="10"]{order:10}.nxm-flow>[data-mo="11"]{order:11}.nxm-flow>[data-mo="12"]{order:12}
  .nxm-flow>[data-mo="13"]{order:13}.nxm-flow>[data-mo="14"]{order:14}.nxm-flow>[data-mo="15"]{order:15}
  .nxm-flow>[data-mo="90"]{order:90}.nxm-flow>[data-mo="95"]{order:95}.nxm-flow>footer,.nxm-flow>[data-mo="99"]{order:99}

  /* ---------- fold ("Read more") ---------- */
  html.nxm-js [data-m~="fold"]:not(.nxm-open){max-height:var(--nxm-fold-h,420px);overflow:hidden!important;position:relative!important}
  html.nxm-js [data-m~="fold"]:not(.nxm-open)>.nxm-fold-btn{display:flex!important}
  .nxm-fold-btn{position:absolute;left:0;right:0;bottom:0;height:130px;z-index:5;align-items:flex-end;justify-content:center;padding:0 0 22px;border:0;cursor:pointer;
    background:linear-gradient(to bottom,rgba(255,255,255,0),var(--nxm-fold-bg,#fff) 62%);font:inherit}
  .nxm-fold-btn>span{display:inline-flex;align-items:center;gap:6px;background:#fff;color:#F16127;border:1.5px solid rgba(241,97,39,.45);border-radius:100px;
    padding:10px 20px;font-family:'Inter',sans-serif;font-size:14px;font-weight:700;box-shadow:0 4px 14px rgba(0,0,0,.08)}

  /* ---------- header + menu (all pages) ---------- */
  nav{padding:10px 14px!important;gap:8px}
  nav .nav-logo img{height:34px!important}
  nav .nav-phone{display:none!important}
  nav .nav-cta{padding:9px 14px!important;font-size:13px!important}
  nav .nav-right{gap:8px}
  .nxm-menu-btn{display:inline-flex!important;align-items:center;justify-content:center;width:42px;height:42px;flex:0 0 42px;margin-left:6px;border-radius:8px;
    border:1.5px solid rgba(255,255,255,.22);background:transparent;color:#fff;cursor:pointer;padding:0}
  .nxm-menu-btn svg{width:22px;height:22px}
  .nxm-menu-btn .nxm-x{display:none}
  .nxm-menu-open .nxm-menu-btn .nxm-x{display:block}
  .nxm-menu-open .nxm-menu-btn .nxm-bars{display:none}
  nav .nxm-nav-end{display:flex;align-items:center;margin-left:auto}
  .nxm-drawer{position:fixed;left:0;right:0;top:var(--nxm-nav-h,62px);bottom:0;z-index:10000;background:#0a0a0a;overflow-y:auto;-webkit-overflow-scrolling:touch;
    padding:8px 20px 28px;border-top:1px solid rgba(255,255,255,.08)}
  .nxm-menu-open .nxm-drawer{display:block!important}
  .nxm-menu-open{overflow:hidden}
  .nxm-drawer .nxm-group{padding:14px 0 6px;border-bottom:1px solid rgba(255,255,255,.08)}
  .nxm-drawer .nxm-group-h{font-family:'Inter',sans-serif;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:rgba(255,255,255,.45);margin:0 0 4px}
  .nxm-drawer .nxm-links{display:grid;grid-template-columns:1fr 1fr;column-gap:12px}
  .nxm-drawer .nxm-links.nxm-one{grid-template-columns:1fr}
  .nxm-drawer a.nxm-link{display:flex;align-items:center;min-height:46px;color:#fff;text-decoration:none;font-family:'Inter',sans-serif;font-size:16px;font-weight:600}
  .nxm-drawer a.nxm-link[aria-current="page"]{color:#F68E1F}
  .nxm-drawer .nxm-actions{display:grid;gap:10px;padding-top:18px}
  .nxm-drawer .nxm-actions a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;border-radius:10px;font-family:'Inter',sans-serif;font-weight:700;font-size:16px;text-decoration:none}
  .nxm-drawer .nxm-call{background:#fff;color:#0a0a0a}
  .nxm-drawer .nxm-quote{background:linear-gradient(135deg,#F16127,#F68E1F);color:#fff}
  .nxm-drawer .nxm-areas-note{font-family:'Inter',sans-serif;color:rgba(255,255,255,.5);font-size:13px;line-height:1.5;margin:14px 0 0;text-align:center}

  /* Winter offer bar: off on mobile (the offer still shows in each page's form) */
  .summer-banner{display:none!important}
  .summer-banner+*{margin-top:var(--nav-h,62px)!important}

  /* ---------- sticky call/quote bar ---------- */
  .nxm-msb{display:grid!important;position:fixed;bottom:0;left:0;right:0;z-index:9999;background:#0a0a0a;border-top:1px solid rgba(255,255,255,.12);grid-template-columns:1fr 1fr}
  .nxm-msb a{display:flex;align-items:center;justify-content:center;gap:8px;padding:15px 10px;color:#fff;text-decoration:none;font-family:'Inter',sans-serif;font-weight:700;font-size:14px}
  .nxm-msb a+a{background:linear-gradient(135deg,#F16127,#F68E1F);font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:16px;letter-spacing:.5px}
  body.nxm-has-msb{padding-bottom:56px}

  /* ---------- quote forms (shared nx-lead.js markup) ---------- */
  form[data-nx-quote-form] .form-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
  form[data-nx-quote-form] .form-group{margin-bottom:12px!important}
  form[data-nx-quote-form] .form-group label{font-size:11px!important;margin-bottom:4px!important;letter-spacing:.3px!important}
  form[data-nx-quote-form] input:not([type=hidden]),form[data-nx-quote-form] select{font-size:16px!important;padding:11px 12px!important;min-height:46px}
  form[data-nx-quote-form] .btn-submit{min-height:54px;font-size:16px!important}
  form[data-nx-quote-form] .offer-terms{font-size:10.5px!important;margin-top:8px!important}
  .quote-card{padding:24px 18px!important}
  .quote-card-header{margin-bottom:16px!important}
  /* Repair pages: the weekly-service winter offer doesn't apply, so don't show it next to a repair form */
  body[data-nxm~="repair"] .nx-promo-note,body[data-nxm~="repair"] .offer-terms{display:none!important}

  /* ---------- shared bits added by this layer ---------- */
  .nxm-kicker{font-family:'Inter',sans-serif;font-size:11.5px!important;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#F68E1F!important;margin:0 0 10px!important;line-height:1.45}
  .nxm-sub{font-size:16px!important;line-height:1.55!important;color:rgba(255,255,255,.82)!important;margin:0 0 18px!important;max-width:none!important}
  .nxm-ctas{display:flex!important;flex-direction:column;gap:10px;margin:0 0 14px}
  .nxm-ctas a{display:flex!important;align-items:center;justify-content:center;gap:8px;min-height:52px;border-radius:10px;font-family:'Inter',sans-serif;font-size:16px;font-weight:700;text-decoration:none;padding:0 16px!important;margin:0!important;width:100%;box-shadow:none!important}
  .nxm-ctas .nxm-btn-primary{background:linear-gradient(135deg,#F16127,#F68E1F)!important;color:#fff!important;border:0!important}
  .nxm-ctas .nxm-btn-call{background:transparent!important;color:#fff!important;border:1.5px solid rgba(255,255,255,.35)!important}
  .nxm-ctas .nxm-btn-call.nxm-light{color:#0a0a0a!important;border-color:#d9d9d9!important}
  .nxm-note{font-size:13px!important;line-height:1.5!important;color:rgba(255,255,255,.6)!important;margin:0 0 6px!important}
  .nxm-proof{background:#fff;padding:28px 18px 8px}
  .nxm-proof.nxm-dark{background:#0a0a0a}
  .nxm-proof-h{font-family:'Barlow Condensed',sans-serif;font-size:26px;font-weight:900;line-height:1.05;color:#0a0a0a;margin:0 0 14px}
  .nxm-dark .nxm-proof-h{color:#fff}
  .nxm-review{background:#f8f9fb;border:1px solid #ececec;border-radius:12px;padding:16px;margin:0 0 12px}
  .nxm-dark .nxm-review{background:#141414;border-color:rgba(255,255,255,.08)}
  .nxm-review .nxm-stars{color:#F6B21F!important;font-size:14px!important;letter-spacing:2px;margin:0 0 6px!important}
  .nxm-review p{font-size:15px!important;line-height:1.55!important;color:#222!important;margin:0 0 8px!important;font-style:normal}
  .nxm-dark .nxm-review p{color:rgba(255,255,255,.88)!important}
  .nxm-review .nxm-by{font-size:12.5px!important;font-weight:700;color:#666!important;margin:0!important}
  .nxm-dark .nxm-review .nxm-by{color:rgba(255,255,255,.55)!important}
  .nxm-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
  .nxm-chips a{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:100px;border:1.5px solid #e3e3e3;background:#fff;color:#0a0a0a;
    font-family:'Inter',sans-serif;font-size:14px;font-weight:600;text-decoration:none}

  /* Badges / chips: keep them on one or two lines */
  .badge{font-size:12px!important;padding:6px 12px!important}
  .svc-hero-badges,.city-hero-badges{gap:8px!important;margin-bottom:20px!important}

  /* ---------- "Other services" cards -> compact link chips (service + weekly pages) ---------- */
  .other-svcs{padding:36px 18px!important}
  .other-svcs h2{font-size:24px!important;margin-bottom:14px!important;text-align:left!important}
  .other-svcs .svc-cards{display:flex!important;flex-wrap:wrap;gap:8px!important}
  .other-svcs .svc-card{padding:10px 14px!important;border-radius:100px!important;background:#fff!important}
  .other-svcs .svc-card h3{font-size:15px!important;margin:0!important;font-family:'Inter',sans-serif!important;font-weight:700!important}
  .other-svcs .svc-card p{display:none!important}

  /* ---------- photo grids -> one swipeable row ---------- */
  .photo-grid{padding:36px 0 28px!important}
  .photo-grid .photo-grid-inner>.section-tag,.photo-grid .photo-grid-inner>h2,.photo-grid .photo-grid-inner>p{padding-left:18px;padding-right:18px}
  .photo-grid .photo-grid-inner>.section-tag{margin-left:18px!important;padding-left:14px!important;padding-right:14px!important}
  .photo-grid h2{font-size:26px!important}
  .photo-tiles{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px!important;padding:4px 18px 8px!important;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .photo-tiles::-webkit-scrollbar{display:none}
  .photo-tile{flex:0 0 72%;scroll-snap-align:start;aspect-ratio:4/5!important}

  /* ---------- service pages (.svc-*) ---------- */
  .svc-hero{padding:96px 18px 34px!important}
  .svc-hero h1{font-size:40px!important;margin-bottom:12px!important}
  .svc-hero .section-tag{margin-bottom:10px!important}
  .svc-content{padding:36px 18px!important}
  .svc-content h2{font-size:26px!important}
  .svc-quote{padding:36px 14px!important}
  .svc-quote .svc-quote-text{display:none!important}
  .brands-bar{display:none!important}
  .svc-hero-badges .badge:nth-child(n+4){display:none!important}
  .svc-hero .hero-btns{display:flex;flex-direction:column;gap:10px}
  .svc-hero .hero-btns a{text-align:center;justify-content:center}

  .green-hero{padding:96px 18px 34px!important}
  .green-hero h1{font-size:40px!important}

  /* ---------- city pages ---------- */
  .city-hero{padding:96px 18px 34px!important}
  .city-hero h1{font-size:42px!important;margin-bottom:12px!important}
  .city-hero-sub{font-size:16px!important;margin-bottom:16px!important}
  .city-why{padding:36px 18px!important}
  .city-why>div:first-child{margin-bottom:16px!important;text-align:left!important}
  .city-why h2{font-size:28px!important}
  .why-grid{gap:10px!important}
  .city-why .why-card{padding:16px!important;display:grid;grid-template-columns:40px 1fr;column-gap:12px;align-items:start}
  .city-why .why-card .why-icon{width:40px!important;height:40px!important;margin:0!important;grid-row:span 2}
  .city-why .why-card h3{font-size:17px!important;margin:0 0 4px!important}
  .city-why .why-card p{font-size:14px!important;margin:0!important}
  .city-quote{padding:36px 14px!important}
  .city-quote .city-quote-text,.city-quote-inner>div:first-child:not(.quote-card){display:none!important}
  .areas-section{padding:32px 18px!important}
  .other-cities{padding:24px 18px 32px!important}
  .city-intro{padding:36px 18px!important}
  [data-mk="city-content"]{padding:40px 18px!important}
  [data-mk="city-faq"]{padding:40px 18px!important}

  /* ---------- homepage ---------- */
  [data-mk="home-hero"] .hero-content{padding-top:20px!important}
  [data-mk="home-hero"] .hero-text{padding:22px 18px 20px!important}
  [data-mk="home-hero"] .hero-text h1{font-size:40px!important;margin-bottom:12px!important}
  [data-mk="home-hero"] .hero-areas{margin-top:4px!important;font-size:13px!important}
  .why-us{padding:40px 18px!important}
  .why-us .why-grid,.why-us [class*="grid"]{gap:10px!important}
  .why-us [class*="card"]{padding:16px!important}
  .why-us [class*="icon"]{display:none!important}
  .why-us h3{font-size:18px!important;margin:0 0 6px!important}
  .why-us p{font-size:14.5px!important}
  .why-us .section-header,.why-us>div:first-child{margin-bottom:18px!important}
  .social-proof{padding:36px 18px!important}
  .social-proof .section-header,.social-proof>div:first-child{margin-bottom:16px!important}
  .social-proof [class*="review-card"]{padding:18px!important}
  [data-mk="home-faq"],#faq{padding:40px 18px!important}
  [data-mk="team"]{padding:32px 18px 28px!important}

  /* ---------- weekly service page ---------- */
  [data-mk="wk-hero"] .hero-text{padding:22px 18px 20px!important}
  [data-mk="wk-hero"] .hero-text h1{font-size:36px!important}
  [data-mk="wk-familiar"]{padding:40px 18px!important}
  [data-mk="wk-familiar"]>div>div:nth-child(2){display:none!important} /* the 4 quote tiles repeat the 5 problem/fix cards */
  [data-mk="wk-familiar"]>div>div:first-child{margin-bottom:18px!important}
  [data-mk="wk-familiar"] h2{font-size:30px!important}
  [data-mk="wk-familiar"]>div>p{font-size:17px!important;margin-bottom:18px!important}
  .nxs{padding:40px 18px!important}
  .included{padding:40px 18px!important}
  [data-mk="wk-steps"] .check-item{padding:14px!important;gap:12px!important}
  [data-mk="wk-steps"] .check-item h3{font-size:16px!important;margin-bottom:2px!important}
  [data-mk="wk-steps"] .check-item p{font-size:13.5px!important;line-height:1.5!important}
  [data-mk="wk-steps"] .steps-grid{gap:10px!important;margin-bottom:16px!important}
  [data-mk="wk-local"] img{display:none!important}
  [data-mk="wk-reviews"]>div>div:nth-child(2)>div:nth-child(4){display:none!important}
  .pricing{padding:40px 18px!important}
  [data-mk="wk-reviews"]{padding:36px 18px!important}
  [data-mk="wk-local"],[data-mk="wk-switch"]{padding:40px 18px!important}
  [data-mk="wk-final"]{padding:36px 18px!important}

  .chem-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}

  /* ---------- about ---------- */
  .about-hero{min-height:440px!important}
  .story,.mission,.values{padding-top:40px!important;padding-bottom:40px!important}
  .values [class*="card"] p,.values [class*="value"] p{font-size:14px!important}

  /* ---------- blog ---------- */
  .blog-hero{padding-bottom:20px!important}
  .related{padding:32px 18px!important}
  .blog-cta{padding:36px 18px!important}

  /* equipment repair hub: pick-your-problem list */
  [data-mk="hub"]{padding:36px 18px!important}
  [data-mk="hub"]>div>div:first-child{margin-bottom:16px!important;text-align:left!important}
  [data-mk="hub"]>div>div:nth-child(2){gap:8px!important}
  [data-mk="hub"] .hub-card{padding:14px 16px!important;flex-direction:row!important;align-items:center;gap:12px!important}
  [data-mk="hub"] .hub-icon{width:38px!important;height:38px!important;margin:0!important;flex:0 0 38px;border-radius:10px!important}
  [data-mk="hub"] .hub-icon svg{width:20px;height:20px}
  [data-mk="hub"] .hub-card h3{font-size:19px!important;flex:1;margin:0!important}
  [data-mk="hub"] .hub-card p{display:none!important}
  [data-mk="hub"] .hub-link{font-size:0!important}
  [data-mk="hub"] .hub-link::after{content:'→';font-size:18px;color:#F16127}

  /* blog index */
  .nxm-scrollrow{flex-wrap:nowrap!important;overflow-x:auto;justify-content:flex-start!important;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:6px}
  .nxm-scrollrow::-webkit-scrollbar{display:none}
  .nxm-scrollrow>*{flex:0 0 auto;white-space:nowrap}
  .post-card-body{padding:18px!important}
  .post-card-body p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .post-card h2{font-size:19px!important}
  .posts-grid .cta-card{display:none!important} /* repeats the CTA band right below it */

  /* thank-you: keep the number on one line */
  .call-btn{padding:18px 20px!important}
  .call-number{white-space:nowrap;font-size:26px!important}

  /* ---------- footer: tighter on phones ---------- */
  footer{padding-top:36px!important;padding-bottom:24px!important}
  footer .footer-inner{gap:22px!important}
  footer .footer-brand img{height:40px!important;margin-bottom:6px!important}
  footer .footer-links{gap:18px 12px!important}
  footer .footer-col a{display:block;padding:7px 0!important;margin:0!important;font-size:14px!important;line-height:1.3!important}
  footer .footer-col strong{margin-bottom:4px!important}
  footer .footer-bottom{margin-top:18px!important;padding-top:16px!important}
}

@media (max-width:380px){
  nav .nav-logo img{height:30px!important}
  nav .nav-cta{padding:9px 11px!important;font-size:12.5px!important}
  .svc-hero h1,.city-hero h1{font-size:36px!important}
  [data-mk="home-hero"] .hero-text h1{font-size:36px!important}
  form[data-nx-quote-form] .form-group label{font-size:10.5px!important;letter-spacing:0!important}
}

/* Standard footer for pages whose own CSS has no footer columns (shared, all widths) */
footer.nxm-footer{background:#000;padding:60px 32px 24px;text-align:left;color:inherit}
.nxm-footer,.nxm-footer *{font-family:'Inter',sans-serif!important;letter-spacing:normal}
.nxm-footer .footer-col strong{letter-spacing:1px!important}
.nxm-footer .footer-inner{max-width:1100px;margin:0 auto 40px;display:grid;grid-template-columns:1fr 2fr;gap:60px}
.nxm-footer .footer-brand p{font-size:13px;color:rgba(255,255,255,.4);margin-top:4px}
.nxm-footer .footer-links{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.nxm-footer .footer-col{display:flex;flex-direction:column;gap:10px}
.nxm-footer .footer-col strong{font-size:12px;font-weight:700;color:rgba(255,255,255,.5);letter-spacing:1px;text-transform:uppercase;margin-bottom:4px}
.nxm-footer .footer-col a{font-size:13px;color:rgba(255,255,255,.65);text-decoration:none}
.nxm-footer .footer-col a:hover{color:#fff}
.nxm-footer .footer-bottom{border-top:1px solid rgba(255,255,255,.07);padding-top:24px;text-align:center}
.nxm-footer .footer-bottom p{font-size:12px;color:rgba(255,255,255,.25)}
@media (max-width:768px){.nxm-footer .footer-inner{grid-template-columns:1fr;gap:22px}.nxm-footer .footer-links{grid-template-columns:1fr 1fr}}

/* Footer phone + copyright were 25-40% white on black (hard to read) — all widths */
footer .footer-bottom p,footer .footer-bottom span{color:rgba(255,255,255,.6)!important}
footer .footer-brand a[href^="tel:"],footer .footer-bottom a[href^="tel:"],footer>p a[href^="tel:"]{color:rgba(255,255,255,.92)!important;font-weight:600;white-space:nowrap}
footer>p{color:rgba(255,255,255,.6)!important}
footer .footer-bottom a:not([href^="tel:"]),footer>p a:not([href^="tel:"]){color:rgba(255,255,255,.75)!important}
@media (max-width:768px){
  footer .footer-brand a[href^="tel:"]{display:inline-block;font-size:16px;padding:6px 0}
  footer .footer-bottom{text-align:left!important;display:block!important}
  footer .footer-bottom span{display:block;margin:0 0 4px}
  footer .footer-bottom p,footer .footer-bottom span{font-size:12.5px!important;line-height:1.6!important}
  /* keep the last lines of the page clear of the sticky call/quote bar */
  body:has(>.msb),body:has(>.nxm-msb),body.nxm-has-msb{padding-bottom:66px!important}
}

/* Phone numbers never break across lines (all widths) */
a[href^="tel:"]{white-space:nowrap}
.blog-cta a[href^="tel:"]{color:rgba(255,255,255,.9)!important}

@media (max-width:768px){
  /* Blog closing CTA: button + phone stacked as two full-width buttons */
  .blog-cta{padding:40px 18px!important}
  .blog-cta .btn-orange{display:flex!important;align-items:center;justify-content:center;width:100%;max-width:360px;min-height:54px;margin:0 auto 10px!important;padding:0 16px!important}
  .blog-cta a[href^="tel:"]{display:flex!important;align-items:center;justify-content:center;width:100%;max-width:360px;min-height:52px;margin:0 auto;border:1.5px solid rgba(255,255,255,.35);border-radius:10px;font-size:16px!important;font-weight:700!important;color:#fff!important}
  .blog-cta a[href^="tel:"]::before{content:"Call\00a0"}
}
