/* /assets/r34-fixes.css?v=20261018b */
/* r34-fixes 2026-10-18: scoped consistency fixes from the 2026-10-18 structure + design audits.
   Every rule is scoped by body/page class so only the intended blocks change. */

/* 1. Final CTA: service pages + Privacy/Terms buttons 52px (sitewide final CTA); service-page CTA H2 = sitewide clamp(26px,2.7vw,36px) */
html body.page-svc:not(.page-svc-area):not(.page-svc-hub) #cta.cta-r3 .cta-pair .btn,
html body.p30-plain-light #cta.cta-r3 .cta-pair .btn{height:52px!important;min-height:52px!important}
html body.page-svc:not(.page-svc-area):not(.page-svc-hub) #cta.cta-r3 h2#cta-h{font-size:clamp(26px,2.7vw,36px)!important}

/* 2. Section H2 34px/38px -> 40px standard (svc-r2/brand-r1: 27.3px <768, clamp(26px,2.78vw,40px) >=768), via the existing --type-h2 token */
html body.page-about:not(.page-contact) .ab3,
html body.page-contact:not(.page-res):not(.page-faq) .ab3,
html body.page-svc-hub .ab3,
html body.page-service-area:not(.page-area) .ab3,
html body.page-svc-hub #faq,
html body.page-service-area:not(.page-area) #faq,
html body.page-svc:not(.page-svc-area):not(.page-svc-hub) #faq{--type-h2:27.3px}
html body.page-about:not(.page-contact) #about.about-r5 h2,
html body.page-book .bk-main h2#bk-h{font-size:27.3px!important}
@media (min-width:768px){
 html body.page-about:not(.page-contact) .ab3,
 html body.page-contact:not(.page-res):not(.page-faq) .ab3,
 html body.page-svc-hub .ab3,
 html body.page-service-area:not(.page-area) .ab3,
 html body.page-svc-hub #faq,
 html body.page-service-area:not(.page-area) #faq,
 html body.page-svc:not(.page-svc-area):not(.page-svc-hub) #faq{--type-h2:clamp(26px,2.78vw,40px)}
 html body.page-about:not(.page-contact) #about.about-r5 h2,
 html body.page-book .bk-main h2#bk-h{font-size:clamp(26px,2.78vw,40px)!important}
}

/* 3. Town "Common Repairs" title is now an H2 (Concord/Kleinburg/Maple): keep its previous H3 look */
html body #main#main #common-repairs#common-repairs h2#repairs-h#repairs-h.lf-rep-h.lf-rep-h3v{font-size:clamp(28px,3.4vw,44px)!important;line-height:1.1!important;letter-spacing:-0.038em!important;font-weight:780!important;margin:0!important}

/* 4. Lone last-row tiles at tablet */
@media (min-width:768px) and (max-width:1023px){
 html body.page-brand-v2 #main#main#main #jobs .mk-jgrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 html body:is(.page-svc-range-hood,.page-svc-steam-sauna) #main #problems#problems .sp-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 html body:is(.page-svc-range-hood,.page-svc-steam-sauna) #main #problems#problems .sp-grid>*{grid-column:auto!important}
 html body.page-article #related .bp-grid.bp-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media (min-width:641px) and (max-width:767px){
 html body.page-article #related .bp-grid.bp-grid-3{grid-template-columns:1fr!important}
}
/* Hisense appliance bento: 6th (wide) tile spans the full row so rows balance */
@media (min-width:768px){
 html body.page-brand-hisense #main#main#main#main#main#main #appliances .mk-grid>a.mk-wide:nth-child(6):last-child{grid-column:1/-1!important;justify-self:stretch!important;width:auto!important}
}

/* 5. Sticky phone bar Call: same call-glow-pulse as Home */
@media (prefers-reduced-motion:no-preference){
 html body.page-about .sticky-m.sticky-r1 .btn-call{animation:call-glow-pulse 4.2s ease-in-out infinite!important}
}

/* 6. FAQ block: Call + outlined Book Online pair */
html body #faq .faq-call-actions.r34-pair{gap:10px!important}

/* 7. Deal/checklist kickers: 14px logo mark like the shared eyebrow */
html body .ticket-kicker.has-mark,html body .prep-kicker.has-mark{display:flex;align-items:center;gap:8px}
html body .has-mark .mark-pic{display:inline-flex;flex:none;line-height:0}
html body .has-mark .ico-mark{display:block;width:14px!important;height:14px!important;object-fit:contain}
/* install ticket: the longer kicker must not widen the ticket's left column (it wraps inside the price-row width instead) */
html body #block-deals .ticket-install .ticket-kicker.has-mark{width:0;min-width:100%;align-items:flex-start}
html body #block-deals .ticket-install .ticket-kicker.has-mark .mark-pic{margin-top:2px}

/* ---- r34b (2026-10-18): remaining low items ---- */
/* 8. FAQ page section H2s 34px -> 40px standard (same token values as section 2) */
html body.page-faq .ab3{--type-h2:27.3px}
@media (min-width:768px){html body.page-faq .ab3{--type-h2:clamp(26px,2.78vw,40px)}}

/* 9. Deal/checklist labels get the eyebrow trail like the shared eyebrow.
   Deal tickets (>=768, two-column ticket): the label becomes a full-width top row so the trail never widens the price column */
html body .has-mark .eyebrow-trail.r34-ktrail{display:block!important;flex:none!important;width:clamp(72px,10vw,140px)!important;height:2px!important;align-self:center!important;border-radius:1px;background:linear-gradient(90deg,#63c6c1 0,#63c6c1 28%,rgba(99,198,193,0) 100%)!important;opacity:1!important}
html body #block-deals .ticket .ticket-kicker.has-mark{width:auto!important;min-width:0!important;align-items:center!important}
html body #block-deals .ticket .ticket-kicker.has-mark .mark-pic{margin-top:0!important}
@media (max-width:767px){html body #block-deals .ticket .ticket-kicker.has-mark>span:not(.eyebrow-trail){flex:0 1 auto!important;min-width:0}html body #block-deals .ticket .ticket-kicker.has-mark .eyebrow-trail.r34-ktrail{flex:1 1 0!important;width:auto!important;min-width:0!important;max-width:110px!important}}
@media (min-width:768px){
 html body #block-deals .ticket.ticket-support{grid-template-rows:auto auto auto 1fr!important;row-gap:8px!important;align-items:start!important}
 html body #block-deals .ticket .ticket-kicker.has-mark>span:not(.eyebrow-trail){flex:0 0 auto!important;white-space:nowrap!important}
 html body #block-deals .ticket .ticket-kicker.has-mark .eyebrow-trail.r34-ktrail{flex:0 1 clamp(72px,10vw,140px)!important;min-width:24px!important}
 html body #block-deals .ticket.ticket-support>.ticket-main{display:contents!important}
 html body #block-deals .ticket.ticket-support .ticket-kicker{grid-column:1/-1!important;grid-row:1!important;margin-bottom:2px}
 html body #block-deals .ticket.ticket-support .ticket-main>.price-row{grid-column:1!important;grid-row:2!important;align-self:center!important}
 html body #block-deals .ticket.ticket-support .ticket-main>.save-line{grid-column:1!important;grid-row:3!important}
 html body #block-deals .ticket.ticket-support>p.whisper{grid-column:2!important;grid-row:2/5!important;align-self:start!important;margin-top:0!important}
}
/* 10. 5-card rows (Home why-grid, About standards; the only lf-even data-n=5 grids): equal-size cards, short row centred instead of stretched */
@media (min-width:1024px){
 html body #main#main#main .lf-even[data-n="5"]>*{grid-column:span 2!important}
 html body #main#main#main .lf-even[data-n="5"]>:nth-child(4){grid-column:2/span 2!important}
}
@media (min-width:641px) and (max-width:1023px){
 html body #main#main#main .lf-even[data-n="5"]{grid-template-columns:repeat(4,minmax(0,1fr))!important}
 html body #main#main#main .lf-even[data-n="5"]>*{grid-column:span 2!important}
 html body #main#main#main .lf-even[data-n="5"]>:nth-child(5){grid-column:2/span 2!important}
}
/* 2-column card grids with an odd card count: last card keeps the column width, centred */
@media (min-width:641px){
 html body #before-appointment .prep-items,html body.page-article .bx-cards,html body.page-article .bx-h3grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
 html body #before-appointment .prep-items>*,html body.page-article .bx-cards>*,html body.page-article .bx-h3grid>*{grid-column:span 2!important}
 html body #before-appointment .prep-items>:last-child:nth-child(odd),html body.page-article .bx-cards>:last-child:nth-child(odd),html body.page-article .bx-h3grid>:last-child:nth-child(odd){grid-column:2/span 2!important}
}
/* Book appliance tiles: 5+5 from 768 up (was 6+4 at desktop and 900px) */
@media (min-width:768px){html body.page-book .bk-tiles{grid-template-columns:repeat(5,minmax(0,1fr))!important}}
/* Our Work trust items: 3 across at tablet (was 2+1) */
@media (min-width:641px) and (max-width:1023px){html body .ow2-tk-items{grid-template-columns:repeat(3,minmax(0,1fr))!important}}

/* 11. Brand "codes" tabs: 3 tabs = equal 3-up on phones (was 2+1); 5 tabs = one scrollable row on phones and 5-up on tablet (was 2+2+1 / 3+2) */
@media (max-width:767px){
 html body #codes .x7-tabs:has(>:nth-child(3):last-child){grid-template-columns:repeat(3,minmax(0,1fr))!important}
 html body #codes .x7-tabs:has(>:nth-child(3):last-child)>*{grid-column:auto!important}
 html body #codes .x7-tabs:has(>:nth-child(5):last-child){display:flex!important;flex-wrap:nowrap!important;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}
 html body #codes .x7-tabs:has(>:nth-child(5):last-child)>*{flex:0 0 auto!important;width:auto!important;scroll-snap-align:start;white-space:nowrap}
}
@media (min-width:768px){
 html body #codes .x7-tabs:has(>:nth-child(5):last-child){grid-template-columns:repeat(5,minmax(0,1fr))!important}
 html body #codes .x7-tabs:has(>:nth-child(5):last-child)>*{grid-column:auto!important}
}

/* 12. Service-area card: no decorative rule under the town title */
html body #block-service-area .city-lead{border-bottom:0!important}

/* 13. Panel radius 16px standard (blog related cards, Services hub cards) */
html body .bp-card,html body .hub-tcard2{border-radius:16px!important}

/* 14. Services hub pricing: Call + outlined Book Online pair */
html body .r34-pacts{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
/* 15. Privacy/Terms hero: Call + Book Online pair */
html body .lg-hero .r34-lg-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
html body #main#main .lg-hero .r34-lg-actions a.btn.btn-ghost{color:#fff!important;border:1px solid rgba(255,255,255,.4)!important;background:transparent!important}
@media (max-width:767px){html body #main#main .lg-hero .r34-lg-actions a.btn{height:56px!important;min-height:56px!important;font-size:16.5px!important;font-weight:700!important}}
/* /assets/nav-brands-r35.css?v=20261018-n1 */
/* r35: Brands item in the header nav + mobile drawer. Matches .nav-dd (nav-dd-r1.css / nav-areas-p25) */
.hdr .links .nav-dd>button.nav-dd-btn{-webkit-appearance:none;appearance:none;background:none;border:0;margin:0;font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:48px;padding:12px 4px;white-space:nowrap}
.hdr .links .nav-dd>button.nav-dd-btn::after{content:"";width:6px;height:6px;margin:-3px 0 0 7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .15s}
.hdr .links .nav-dd:hover>button.nav-dd-btn,.hdr .links .nav-dd:focus-within>button.nav-dd-btn,.hdr .links .nav-dd.is-open>button.nav-dd-btn,.hdr .links .nav-dd>button.nav-dd-btn.r35-cur{color:#fff}
.hdr .links .nav-dd:hover>button.nav-dd-btn::after,.hdr .links .nav-dd:focus-within>button.nav-dd-btn::after,.hdr .links .nav-dd.is-open>button.nav-dd-btn::after{transform:translateY(3px) rotate(225deg)}
.hdr .links .nav-dd.is-closed>button.nav-dd-btn::after{transform:rotate(45deg)}
.hdr .links .nav-dd>button.nav-dd-btn.r35-cur{text-decoration-line:underline;text-decoration-color:#63c6c1;text-decoration-thickness:2px;text-underline-offset:4px;text-decoration-skip-ink:none}
.hdr .links .nav-dd-brands .nav-dd-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(8,auto);grid-auto-flow:column;column-gap:4px;min-width:340px}
/* drawer */
.nav-drawer .drawer-main>li>.drawer-brands{max-height:60rem}
.nav-drawer .drawer-brands a[aria-current=page]{color:#63c6c1}
/* fit the extra item on tablet / small laptop without wrapping the nav */
@media (min-width:768px) and (max-width:919px){
  .hdr .links{gap:10px;margin-left:4px}
  .hdr .links>a[href="/"]{display:none}
}
/* same as hdr-phone-r2 (pages still on hdr-phone-r1, e.g. /thank-you/, lack it) */
@media (min-width:768px) and (max-width:859px){.hdr-phone-wrap .hdr-phone-ico{display:none}.hdr-phone-wrap .hdr-phone{gap:0}}
@media (min-width:920px) and (max-width:1179px){
  .hdr .links a,.hdr .links .nav-dd>button.nav-dd-btn{white-space:nowrap}
  .hdr-phone-wrap{display:flex;align-items:center;justify-content:flex-end;gap:0}
  .hdr-phone-wrap .hdr-phone{display:flex;flex-direction:row;align-items:center;gap:12px;min-height:44px;padding:0}
  .hdr-phone-wrap .hdr-phone-text{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
  .hdr-phone-wrap .hdr-phone-num{font-size:16.5px;line-height:1.15}
  .hdr-phone-wrap .hdr-phone-label{margin-top:0;font-size:10.5px;line-height:1.2}
}
@media (min-width:920px) and (max-width:1099px){.hdr .links{gap:14px}}
@media (min-width:920px) and (max-width:999px){.hdr-phone-wrap .hdr-phone-ico{display:none}.hdr-phone-wrap .hdr-phone{gap:0}}
@media (prefers-reduced-motion:reduce){.hdr .links .nav-dd>button.nav-dd-btn::after{transition:none}}
