
/* muted text: same hue, darker, so secondary text passes 4.5:1 on the light grounds */
html.mu{--muted:#4f5c6e}

/* keyboard focus is always visible (UUPM priority 1) */
html.mu :focus-visible{outline:3px solid #366cf6;outline-offset:2px}

/* reduced motion: keep content, drop the travel */
@media (prefers-reduced-motion:reduce){
  html.mu *,html.mu *::before,html.mu *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* header and footer: readable sizes, footer text at 4.5:1 or better */
html.mu .mu-desktop-nav a,html.mu .mu-login{font-size:15px!important}
html.mu .mu-button-sm{font-size:14px!important}
html.mu .mu-footer-grid h2{font-size:14px!important}
html.mu .mu-footer-grid a{font-size:15px!important;color:#4f5c6e}
html.mu .mu-made,html.mu .mu-footer-bottom span,html.mu .mu-footer-bottom a{font-size:13px!important;color:#4f5c6e}

/* public pages: nothing a visitor reads below 13px, running text at 16px, lines under ~70 characters */
html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) :is(.eyebrow,.tag,.pill,.crumb,.crumb a,.fine,.hint,.help,.lbl,.step,.chips li,.s-l,.badges li,.dash-cap,.mu-overline){font-size:13px!important}
html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) :is(.sec-sub,.lede,.lp-card p,.ans,.doc p,.doc li,.biz-copy){font-size:16px!important}
html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) main p{max-width:70ch}
html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) :is(.who-links a,.cta-row .btn,.loc-btn,.cats .cat,.perks span,.addon b,.addon-row b,.addon-row p,.price,.price strong){font-size:14px!important}
html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) .field label,html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) .field label>span{font-size:14px!important}

/* booking page: times, services and the summary are the things people act on */
html.mu body[data-mu-page=booking] .slot{font-size:15px!important;min-height:44px}
html.mu body[data-mu-page=booking] .chip{min-height:44px}
html.mu body[data-mu-page=booking] .chip .dn{font-size:13px!important}
@media (max-width:420px){html.mu body[data-mu-page=booking] .chip .dn{font-size:12px!important}} /* "Today" must fit a 1/7-width day button */
html.mu body[data-mu-page=booking] :is(.svc-meta .dur,.svc-btn span){font-size:13px!important}
html.mu body[data-mu-page=booking] .svc-desc,html.mu body[data-mu-page=booking] .sum-row span{font-size:14px!important}
html.mu body[data-mu-page=booking] :is(.cat-h,table.hours td,#hint span,#hint-btn){font-size:14px!important}
html.mu body[data-mu-page=booking] main nav.mu-booking-progress a{font-size:13px!important}
html.mu body[data-mu-page=booking] main nav.mu-booking-progress a b{font-size:13px!important}

/* homepage: the working demo and search labels */
html.mu body[data-mu-page=home] :is(.svc-meta .dur,.d-n,.days .chip .dn,.kpi span,.appt span,.dash-h span,.dash-bar span){font-size:13px!important}
html.mu body[data-mu-page=home] .mu-example-slots span{color:#4f5c6e}
html.mu body[data-mu-page=home] .s-rem{color:#1f58ea}
html.mu body[data-mu-page=home] .dash-cap{color:#afc1d8}

/* headlines that wrapped to three lines on tablets and phones */
@media (max-width:820px){
  html.mu body[data-mu-page=home] .hero h1{font-size:clamp(34px,8.4vw,44px)}
  html.mu body[data-mu-page=home] #pricing .sec-h{font-size:clamp(28px,5vw,34px)!important}
}
html.mu body[data-mu-page=marketing] .lp-hero h1{max-width:24ch}
@media (max-width:600px){html.mu body[data-mu-page=marketing] .lp-hero h1{font-size:30px!important}}

/* blue-on-pale-blue labels: same blue family, darker, to reach 4.5:1 */
html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) :is(.step,.steps .pill.on,.price strong,.hint .step,#hint-btn,#signup-total){color:#1f58ea}
html.mu body[data-mu-page=booking] :is(nav.mu-booking-progress a,#hint>span){color:#4f5c6e}
html.mu body[data-mu-page=auth] main .card p:not(.fine):not(.hint){font-size:15px!important}

/* sign-up and log-in side panel: the sample-data note must be readable */
html.mu .mu-auth-aside small,html.mu .mu-auth-benefits span{font-size:13px!important;color:#4f5c6e}
/* motion: feedback, selections, hero and scroll entrances. Transform/opacity only, via the individual
   translate/scale properties so existing transforms (the tilted hero card) are kept. */
@media (prefers-reduced-motion:no-preference){
  html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) :is(.btn,.mu-button,.loc-btn,.slot,.chip,.person,.svc,.cat,.shop,.lp-card,.who-links a,.pcard){
    transition:translate .18s cubic-bezier(.2,.7,.2,1),scale .18s cubic-bezier(.2,.7,.2,1),box-shadow .2s,background-color .2s,border-color .2s}
  html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) :is(.btn,.mu-button,.cat,.shop,.lp-card,.svc,.person,.who-links a):hover{translate:0 -2px}
  html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) :is(.slot,.chip):hover{translate:0 -1px}
  html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) :is(.btn,.mu-button,.loc-btn,.slot,.chip,.person,.svc,.cat,.shop):active{translate:0 1px;scale:.98}
  html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) :is(.slot,.chip,.person)[aria-pressed=true],html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) .svc.on{animation:pz-pop .32s cubic-bezier(.2,.7,.2,1)}
  html.mu body[data-mu-page=booking] #modal .ok{animation:pz-tick .55s cubic-bezier(.2,1.4,.4,1) .1s both}
  html.mu body[data-mu-page=home] .mu-appointment{animation:pz-float 7s ease-in-out infinite}
  html.mu body[data-mu-page=home] .mu-appointment :is(.mu-appointment-top,.mu-example-label,h2,.mu-example-service){transition:opacity .3s ease,visibility 0s linear 0s}
  html.mu body[data-mu-page=home] .mu-appointment.pz-swap :is(.mu-appointment-top,.mu-example-label,h2,.mu-example-service){opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s linear .3s}
  html.mu body[data-mu-page=home] .mu-notification{animation:pz-slide .7s cubic-bezier(.2,.7,.2,1) .9s both}
  html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) .pz-in{opacity:0;translate:0 22px;transition:opacity .6s cubic-bezier(.2,.7,.2,1),translate .6s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--pz-i,0)*70ms)}
  html.mu body:is([data-mu-page=home],[data-mu-page=marketing],[data-mu-page=info],[data-mu-page=auth],[data-mu-page=booking],[data-mu-page=customer]) .pz-in.pz-seen{opacity:1;translate:0 0}
}
/* homepage (2026-10-22 nav fix): the floating hero card kept the text on a moving layer, which iOS Safari
   repainted late while scrolling, so old and new headline text showed together. Keep the card still on
   phones and touch screens; the anchor offset follows the measured sticky header (set by POLISH_JS). */
@media (hover:none),(max-width:820px){html.mu body[data-mu-page=home] .mu-appointment{animation:none!important}}
html.mu.pz-home{scroll-padding-top:var(--pz-sp,100px)}
@keyframes pz-pop{0%{scale:1}45%{scale:1.06}100%{scale:1}}
@keyframes pz-tick{from{scale:.4;opacity:0}to{scale:1;opacity:1}}
@keyframes pz-float{0%,100%{translate:0 0}50%{translate:0 -10px}}
@keyframes pz-slide{from{translate:0 18px;opacity:0}to{translate:0 0;opacity:1}}
/* SEO pass 1 (2026-10-22): footer headings as plain text, one H1 on sign-up, business-first homepage hero, and styles for /for/ set-up blocks, /blog and /compare. */
html.mu .mu-footer p.mu-foot-h{font-size:14px;letter-spacing:normal;font-weight:650;line-height:1.16;color:#3a506d;margin:6px 0 22px;max-width:none;text-wrap:balance}
html.mu .mu-footer-grid>div:last-child p.mu-foot-h{width:100%;margin-bottom:2px}
.intro-s2 h2.s2-h{font-size:27px;font-weight:600;line-height:1.16;letter-spacing:-.045em;color:#132339;margin:0 0 12px;text-wrap:balance}
@media(min-width:600px){.intro-s2 h2.s2-h{font-size:29px}}
html.mu body[data-mu-page=home] .hero h1{max-width:560px}
@media(min-width:821px){html.mu body[data-mu-page=home] .hero h1{font-size:44px}}
html.mu body[data-mu-page=home] .hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 4px}
html.mu body[data-mu-page=home] .hero-cta .btn-ghost{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 26px;border-radius:999px;border:1px solid #d9e0e9;background:#fff;color:#132339;font-weight:700;text-decoration:none}
html.mu body[data-mu-page=home] .hero-cta .btn{text-decoration:none}
html.mu body[data-mu-page=home] .hero .chips{flex-wrap:wrap}
html.mu body[data-mu-page=home] .find-sec #find{max-width:760px;margin:0 auto}
html.mu body[data-mu-page=home] .find-sec .find-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 18px;margin:18px auto 0;padding:0;list-style:none}
html.mu body[data-mu-page=home] .find-sec .loc-btn{margin-top:12px}
.lp-list{margin:10px 0 0;padding:0 0 0 18px;display:grid;gap:8px;line-height:1.55}
.lp-list li::marker{color:#366cf6}
.lp-list.lp-x li::marker{color:#8793a4}
.lp-k{margin:14px 0 0;font-weight:650;color:#132339}
.lp-small{display:block;margin-top:12px;font-size:13px;color:#5b6b80;line-height:1.5}
.lp-chooser{margin-top:40px}
.lp-chooser h3{font-size:20px;margin:0}
.lp-chooser .lp-grid{margin-top:16px}
.lp-chooser h4{margin:0 0 6px;font-size:16px;color:#132339}
.lp-chooser a.lp-card,a.hub-card{display:block;color:inherit;text-decoration:none;transition:border-color .2s,box-shadow .2s}
.lp-chooser a.lp-card:hover,a.hub-card:hover{border-color:#366cf6;box-shadow:0 6px 22px #13233914}
.lp-here{border-color:#366cf6!important}
.lp-more{display:inline-block;margin-top:10px;font-weight:650;color:#366cf6}
.lp-related{margin:32px 0 0;line-height:1.7}
.hub-h{font-size:24px;margin:0 0 18px}
.hub-card h3{margin:6px 0 8px}
.post-meta{margin-top:14px;font-size:14px;color:#5b6b80}
.post{max-width:720px;margin:0 auto;font-size:17px;line-height:1.7;color:#24364f}
.post h2{font-size:26px;line-height:1.25;margin:40px 0 12px;color:#132339;letter-spacing:-.02em}
.post h3{font-size:19px;margin:26px 0 8px;color:#132339}
.post p{margin:0 0 16px}
.post ul,.post ol{margin:0 0 18px;padding-left:22px}
.post li{margin:6px 0}
.post a{color:#2456d6;text-decoration:underline;text-underline-offset:2px}
.post .btn{color:#fff;text-decoration:none}
.post-note{background:#f3f6fb;border:1px solid #dbe3ee;border-radius:14px;padding:14px 16px;margin:0 0 24px;font-size:15px;line-height:1.6}
.post-small{font-size:14px;color:#5b6b80}
.post-table-wrap,.post .post-table{overflow-x:auto}
.post table.post-table,.post .post-table table{width:100%;border-collapse:collapse;margin:8px 0 20px;font-size:15px;line-height:1.5}
.post-table th,.post-table td{border:1px solid #dbe3ee;padding:10px 12px;text-align:left;vertical-align:top}
.post-table thead th{background:#f3f6fb;color:#132339}
.post .faq{margin-top:8px}
.post-related{margin-top:36px;padding:18px 20px;border:1px solid #dbe3ee;border-radius:14px}
.post-related h2{margin-top:0;font-size:20px}
.post-related ul{margin-bottom:0}
.post .lp-band{margin-top:40px}
@media(max-width:600px){.post{font-size:16px}.post h2{font-size:22px}.post-table th,.post-table td{padding:8px}}
/* Keep enlarged readable labels from setting a grid's minimum width. */
@media(max-width:820px){
 html.mu body[data-mu-page=home] .hero-grid{grid-template-columns:minmax(0,1fr)}
 html.mu body[data-mu-page=home] .hero-grid>*{min-width:0;max-width:100%}
 html.mu body[data-mu-page=home] .hero .tag{max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.6}
 html.mu body[data-mu-page=home] .hero .tag:before{flex-shrink:0}
 html.mu body[data-mu-page=home] :is(#find,.search,.hero-side,.mu-hero-visual){min-width:0;max-width:100%}
}
@media(max-width:600px){
 html.mu body[data-mu-page=home] .hero-grid{width:calc(100% - 40px)}
 html.mu body[data-mu-page=home] .search{grid-template-columns:minmax(0,1fr)}
 html.mu body[data-mu-page=home] .search .s-field{padding:10px;min-height:62px}
 html.mu body[data-mu-page=home] .search .s-field label{min-width:0;flex:1}
 html.mu body[data-mu-page=home] .search input{font-size:16px}
 html.mu body[data-mu-page=home] .search .s-div{width:100%;height:1px}
 html.mu body[data-mu-page=home] .search .btn{white-space:normal;min-width:0;line-height:1.4}
 html.mu body[data-mu-page=home] .hero .chips{flex-wrap:wrap}
}
@media(max-width:820px){
 html.mu body[data-mu-page=home] .biz-grid{grid-template-columns:minmax(0,1fr)}
 html.mu body[data-mu-page=home] .biz-grid>*,html.mu body[data-mu-page=home] .dash-main{min-width:0}
 html.mu body[data-mu-page=home] .dash-bar span{min-width:0;white-space:normal}
 html.mu body[data-mu-page=home] .dash .kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
 html.mu body[data-mu-page=home] .dash .kpi{min-width:0}
 html.mu body[data-mu-page=home] .dash .kpi span{overflow-wrap:anywhere}
}
