/* Periwinkle Lounge — base.css. Shared by mockup and theme. Tokens come from tokens.css / theme.json. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--wp--preset--color--paper);color:var(--wp--preset--color--ink);font-family:var(--wp--preset--font-family--outfit);font-size:var(--wp--preset--font-size--body);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{max-width:100%;height:auto;display:block}
a{color:var(--wp--preset--color--plum);text-decoration:none}
a:hover{color:var(--wp--preset--color--plum-deep)}
p a,li a,td a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}
:focus-visible{outline:2px solid var(--wp--preset--color--plum);outline-offset:3px;border-radius:4px}
.skip-link{position:absolute;left:-999px;top:8px;background:var(--wp--preset--color--ink);color:var(--wp--preset--color--white);padding:8px 16px;z-index:100}
.skip-link:focus{left:8px}
::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--wp--preset--color--paper)}::-webkit-scrollbar-thumb{background:var(--wp--preset--color--blush);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--wp--preset--color--champagne)}
/* type */
h1,h2,h3,h4,.wp-block-heading{font-family:var(--wp--preset--font-family--playfair);color:var(--wp--preset--color--ink);margin:0 0 var(--wp--preset--spacing--40)}
h1{font-size:var(--wp--preset--font-size--h-1);font-weight:700;line-height:1.1;letter-spacing:-.02em}
h2{font-size:var(--wp--preset--font-size--h-2);font-weight:700;line-height:1.15;letter-spacing:-.01em}
h3{font-size:var(--wp--preset--font-size--h-3);font-weight:600;line-height:1.3}
p{margin:0 0 var(--wp--preset--spacing--30)}
.has-h-1-font-size{font-size:var(--wp--preset--font-size--h-1)!important}.has-h-2-font-size{font-size:var(--wp--preset--font-size--h-2)!important}
.has-h-2-soft-font-size{font-size:var(--wp--preset--font-size--h-2-soft)!important;font-weight:600!important;letter-spacing:.02em!important}
.has-h-3-font-size{font-size:var(--wp--preset--font-size--h-3)!important}.has-stat-font-size{font-size:var(--wp--preset--font-size--stat)!important}
.has-body-lg-font-size{font-size:var(--wp--preset--font-size--body-lg)!important}.has-small-font-size{font-size:var(--wp--preset--font-size--small)!important}
.has-label-font-size,.pw-label{font-size:var(--wp--preset--font-size--label)!important;font-weight:600;text-transform:uppercase;letter-spacing:.05em;line-height:1.4}
.has-ink-soft-color{color:var(--wp--preset--color--ink-soft)!important}.has-plum-color{color:var(--wp--preset--color--plum)!important}
.has-blush-wash-background-color{background-color:var(--wp--preset--color--blush-wash)!important}.has-white-background-color{background-color:var(--wp--preset--color--white)!important}
.pw-eyebrow{font-size:var(--wp--preset--font-size--label);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--wp--preset--color--plum);margin-bottom:var(--wp--preset--spacing--30)}
.pw-lead{font-size:var(--wp--preset--font-size--body-lg);color:var(--wp--preset--color--ink-soft);max-width:60ch}
.pw-center{text-align:center}.pw-center .pw-lead{margin-inline:auto}
.pw-client{color:var(--wp--preset--color--ink-soft);font-size:var(--wp--preset--font-size--small)}
/* layout */
.pw-wrap{max-width:1280px;margin-inline:auto;padding-inline:clamp(20px,5vw,48px)}
.pw-wrap--mid{max-width:1024px}.pw-wrap--narrow{max-width:896px}.pw-wrap--wide{max-width:1440px}
.alignfull{width:100%}
.pw-section{padding-block:clamp(64px,8vw,128px);border-top:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 30%,transparent)}
.pw-section--tint{background:var(--wp--preset--color--blush-wash)}
.pw-section--tight{padding-block:clamp(40px,5vw,64px)}
.pw-section__head{text-align:center;max-width:640px;margin:0 auto var(--wp--preset--spacing--70)}
.pw-section__head p{color:var(--wp--preset--color--ink-soft);font-size:var(--wp--preset--font-size--small);margin:8px 0 0}
.pw-grid-2,.pw-grid-3,.pw-grid-12{display:grid;gap:var(--wp--preset--spacing--50)}
@media (min-width:768px){.pw-grid-2{grid-template-columns:1fr 1fr}.pw-grid-3{grid-template-columns:repeat(3,1fr)}}
@media (min-width:1024px){.pw-grid-12{grid-template-columns:repeat(12,1fr);align-items:center}.pw-col-7{grid-column:span 7}.pw-col-5{grid-column:span 5}}
/* cards + shadows */
.pw-card{background:var(--wp--preset--color--white);border:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 20%,transparent);border-radius:16px;padding:var(--wp--preset--spacing--50);box-shadow:var(--wp--preset--shadow--sm)}
.pw-card--tint{background:color-mix(in srgb,var(--wp--preset--color--blush) 20%,var(--wp--preset--color--white));border-color:color-mix(in srgb,var(--wp--preset--color--plum) 20%,transparent)}
.pw-card--flush{padding:0;overflow:hidden}
.pw-card--flush .pw-card__body{padding:var(--wp--preset--spacing--40)}
.pw-card__media{margin:0;height:280px;overflow:hidden}
.pw-card__media img{width:100%;height:100%;object-fit:cover}
.pw-card__foot{margin-top:var(--wp--preset--spacing--50);padding-top:var(--wp--preset--spacing--30);border-top:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 20%,transparent)}
.pw-card p,.pw-card li{font-size:var(--wp--preset--font-size--small);color:color-mix(in srgb,var(--wp--preset--color--ink) 80%,var(--wp--preset--color--white))}
.pw-check{list-style:none;margin:0;padding:0}
.pw-check li{display:flex;gap:8px;margin-bottom:12px}
.pw-check li::before{content:"✓";color:var(--wp--preset--color--plum);font-weight:700;flex:0 0 auto}
.pw-textlink{font-size:var(--wp--preset--font-size--label);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--wp--preset--color--plum);text-decoration:none}
.pw-textlink:hover{text-decoration:underline}
.pw-textlink span{margin-left:.3em}
/* buttons */
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:var(--wp--preset--spacing--30);align-items:center}
.wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 32px;border-radius:999px;font-family:var(--wp--preset--font-family--outfit);font-size:var(--wp--preset--font-size--label);font-weight:600;text-transform:uppercase;letter-spacing:.05em;line-height:1;background:var(--wp--preset--color--plum);color:var(--wp--preset--color--white);border:1px solid transparent;text-decoration:none;box-shadow:var(--wp--preset--shadow--md)}
.wp-block-button__link:hover{background:var(--wp--preset--color--plum-deep);color:var(--wp--preset--color--white)}
.is-style-outline .wp-block-button__link{background:transparent;color:var(--wp--preset--color--plum);border-color:color-mix(in srgb,var(--wp--preset--color--plum) 30%,transparent);box-shadow:none}
.is-style-outline .wp-block-button__link:hover{background:color-mix(in srgb,var(--wp--preset--color--plum) 5%,transparent);color:var(--wp--preset--color--plum)}
.is-style-header .wp-block-button__link{min-height:44px;padding:0 24px;box-shadow:none}
.pw-btn-block .wp-block-button,.pw-btn-block .wp-block-button__link{width:100%}
@media (prefers-reduced-motion:no-preference){.wp-block-button__link{transition:transform .2s ease,background-color .2s ease}.wp-block-button__link:hover{transform:scale(1.02)}.wp-block-button__link:active{transform:scale(.98)}}
/* header */
.pw-header{position:sticky;top:0;z-index:60;background:color-mix(in srgb,var(--wp--preset--color--paper) 95%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 20%,transparent)}
.pw-header__row{display:flex;align-items:center;justify-content:space-between;gap:var(--wp--preset--spacing--40);min-height:72px}
.pw-logo img,.custom-logo{width:200px;height:auto}
.pw-nav .wp-block-navigation__container{display:flex;gap:var(--wp--preset--spacing--50);list-style:none;margin:0;padding:0}
.pw-nav a{color:color-mix(in srgb,var(--wp--preset--color--ink) 80%,var(--wp--preset--color--white));font-size:var(--wp--preset--font-size--small);font-weight:500;text-decoration:none}
.pw-nav a:hover,.pw-nav .current-menu-item a{color:var(--wp--preset--color--plum)}
@media (max-width:1023px){.pw-nav .wp-block-navigation__container{display:none}.pw-header__cta{display:none}}
.wp-block-navigation__responsive-container.is-menu-open{background:var(--wp--preset--color--paper);padding:var(--wp--preset--spacing--70) var(--wp--preset--spacing--50)}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{display:flex;flex-direction:column;gap:var(--wp--preset--spacing--40)}
.wp-block-navigation__responsive-container.is-menu-open a{font-size:18px}
/* hero (Plus One split hero) */
.pw-hero{padding-block:var(--wp--preset--spacing--60) var(--wp--preset--spacing--70);border-top:0}
.pw-hero__media{margin:0;border-radius:16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 20%,transparent);box-shadow:var(--wp--preset--shadow--lg);height:400px}
.pw-hero__media img{width:100%;height:100%;object-fit:cover}
.pw-hero__title{max-width:20ch;margin-bottom:var(--wp--preset--spacing--40)}
.pw-hero__sub{font-size:var(--wp--preset--font-size--body-lg);max-width:50ch;color:color-mix(in srgb,var(--wp--preset--color--ink) 80%,var(--wp--preset--color--white));margin-bottom:var(--wp--preset--spacing--50)}
.pw-hero__actions{gap:var(--wp--preset--spacing--30)}
.pw-hero__note{font-size:var(--wp--preset--font-size--small);color:var(--wp--preset--color--ink-soft);margin-top:var(--wp--preset--spacing--30)}
@media (max-width:1023px){.pw-hero .pw-grid-12{display:flex;flex-direction:column}.pw-hero__media{order:-1;height:auto;aspect-ratio:4/5;max-height:70vh}.pw-hero__actions .wp-block-button,.pw-hero__actions .wp-block-button__link{width:100%}}
@media (min-width:1024px){.pw-hero{min-height:90dvh;display:flex;align-items:center}.pw-hero__media{height:500px}.pw-hero__note{display:none}}
/* intro + quote */
.pw-intro p{font-size:var(--wp--preset--font-size--body-lg);color:color-mix(in srgb,var(--wp--preset--color--ink) 80%,var(--wp--preset--color--white))}
.pw-quote{border-left:2px solid color-mix(in srgb,var(--wp--preset--color--plum) 40%,transparent);padding:8px 0 8px var(--wp--preset--spacing--40)}
.pw-quote blockquote{margin:0 0 var(--wp--preset--spacing--30);font-family:var(--wp--preset--font-family--playfair);font-style:italic;font-size:var(--wp--preset--font-size--body-lg);line-height:1.6}
.pw-quote__name{display:block;font-size:var(--wp--preset--font-size--label);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--wp--preset--color--plum)}
.pw-quote__role{display:block;font-size:var(--wp--preset--font-size--label);color:var(--wp--preset--color--ink-soft);text-transform:none;letter-spacing:0}
/* statistics strip */
.pw-stats{padding-block:var(--wp--preset--spacing--60)}
.pw-stats__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--wp--preset--spacing--50);text-align:center}
@media (min-width:768px){.pw-stats__grid{grid-template-columns:repeat(4,1fr)}}
.pw-stat__value{display:block;font-family:var(--wp--preset--font-family--playfair);font-size:var(--wp--preset--font-size--stat);font-weight:700;line-height:1;color:var(--wp--preset--color--plum)}
.pw-stat__label{display:block;margin-top:6px;font-size:var(--wp--preset--font-size--label);font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--wp--preset--color--ink-soft)}
/* comparison table */
.pw-compare{border:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 30%,transparent);border-radius:16px;overflow:auto;background:var(--wp--preset--color--white);box-shadow:var(--wp--preset--shadow--sm)}
.wp-block-table.is-style-comparison{margin:0}
.is-style-comparison table{width:100%;border-collapse:collapse;font-size:var(--wp--preset--font-size--small)}
.is-style-comparison thead{border-bottom:0}
.is-style-comparison th{text-align:left;padding:20px;border:0;font-family:var(--wp--preset--font-family--playfair);font-weight:700;font-size:var(--wp--preset--font-size--small);letter-spacing:.05em;background:color-mix(in srgb,var(--wp--preset--color--blush) 10%,var(--wp--preset--color--white));border-bottom:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 20%,transparent)}
.is-style-comparison th:nth-child(2){color:var(--wp--preset--color--plum)}.is-style-comparison th:nth-child(3){color:var(--wp--preset--color--ink-soft)}
.is-style-comparison td{padding:20px;vertical-align:top;border:0;border-bottom:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 10%,transparent)}
.is-style-comparison td:first-child{font-weight:600}.is-style-comparison td:nth-child(2){color:var(--wp--preset--color--plum);font-weight:500}.is-style-comparison td:nth-child(3){color:var(--wp--preset--color--ink-soft)}
.is-style-comparison tr:hover td{background:color-mix(in srgb,var(--wp--preset--color--blush) 5%,var(--wp--preset--color--white))}
/* reviews slideshow (CSS scroll-snap, no JS) */
.pw-reviews{display:flex;gap:var(--wp--preset--spacing--40);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.pw-review{flex:0 0 min(100%,720px);scroll-snap-align:center;text-align:center}
.pw-review blockquote{margin:var(--wp--preset--spacing--30) 0;font-family:var(--wp--preset--font-family--playfair);font-style:italic;font-size:18px;line-height:1.6}
.pw-stars{color:var(--wp--preset--color--champagne);letter-spacing:.2em;font-size:18px}
.pw-review__meta{font-size:var(--wp--preset--font-size--label);text-transform:uppercase;letter-spacing:.05em;color:var(--wp--preset--color--ink-soft)}
.pw-review__meta strong{color:var(--wp--preset--color--plum)}
.pw-dots{display:flex;justify-content:center;margin-top:var(--wp--preset--spacing--30);list-style:none;padding:0}
.pw-dots a{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:0;color:transparent}
.pw-dots a::before{content:"";display:block;width:10px;height:10px;border-radius:50%;background:color-mix(in srgb,var(--wp--preset--color--plum) 30%,transparent)}
.pw-dots a:hover::before,.pw-dots a:focus-visible::before{background:var(--wp--preset--color--plum)}
/* FAQ */
.pw-faq{display:grid;gap:var(--wp--preset--spacing--40)}
.pw-faq__item{background:var(--wp--preset--color--blush-wash);border:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 20%,transparent);border-radius:16px;padding:var(--wp--preset--spacing--40)}
.pw-faq__item h3{margin-bottom:12px}.pw-faq__item p{margin:0;font-size:var(--wp--preset--font-size--small);color:color-mix(in srgb,var(--wp--preset--color--ink) 80%,var(--wp--preset--color--white))}
/* services page */
.pw-quote-form{text-align:left;max-width:720px;margin-inline:auto}
.pw-services-grid{display:grid;gap:var(--wp--preset--spacing--50)}
@media (min-width:768px){.pw-services-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1024px){.pw-services-grid{grid-template-columns:repeat(3,1fr)}}
.pw-service-card h2{font-size:var(--wp--preset--font-size--h-3);font-weight:600;padding-bottom:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--40);border-bottom:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 20%,transparent)}
.wp-block-table{margin:0}
.wp-block-table table{width:100%;border-collapse:collapse}
.is-style-price-list td{padding:10px 0;border:0;border-bottom:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 15%,transparent);font-size:var(--wp--preset--font-size--small);vertical-align:top}
.is-style-price-list tr:last-child td{border-bottom:0}
.is-style-price-list td:first-child{color:color-mix(in srgb,var(--wp--preset--color--ink) 80%,var(--wp--preset--color--white))}
.is-style-price-list td:last-child{text-align:right;white-space:nowrap;font-weight:600;color:var(--wp--preset--color--plum)}
.is-style-hours td{padding:6px 0;border:0;font-size:var(--wp--preset--font-size--small)}
.is-style-hours td:first-child{padding-right:var(--wp--preset--spacing--40);color:var(--wp--preset--color--ink-soft);min-width:9em}
/* promo (gift cards) */
.pw-promo{border:1.5px solid var(--wp--preset--color--champagne);border-radius:16px;padding:clamp(24px,4vw,40px);background:var(--wp--preset--color--white);margin-bottom:var(--wp--preset--spacing--60)}
/* gift cards */
.pw-chips{display:flex;flex-wrap:wrap;gap:12px;margin:var(--wp--preset--spacing--40) 0}
.pw-chips span{display:inline-block;padding:10px 20px;border-radius:999px;background:color-mix(in srgb,var(--wp--preset--color--champagne) 30%,var(--wp--preset--color--white));font-family:var(--wp--preset--font-family--playfair);font-weight:700;font-size:var(--wp--preset--font-size--h-3)}
/* sanitation grid */
.pw-sanitation{display:grid;gap:var(--wp--preset--spacing--40)}
@media (min-width:768px){.pw-sanitation{grid-template-columns:1fr 1fr}}
/* contact page */
.pw-map{border-radius:16px;overflow:hidden;background:var(--wp--preset--color--blush-wash);aspect-ratio:4/3;border:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 20%,transparent)}
.pw-map iframe{width:100%;height:100%;border:0;display:block}
/* NAP rows */
.pw-nap__row{display:flex;gap:10px;align-items:flex-start;font-size:var(--wp--preset--font-size--small);margin-bottom:12px}
.pw-nap__row a{color:inherit;text-decoration:none}.pw-nap__row a:hover{color:var(--wp--preset--color--plum)}
.pw-icon{width:18px;height:18px;flex:0 0 auto;margin-top:2px;color:var(--wp--preset--color--plum)}
/* forms (Fluent Forms + mockup stand-in) */
.pw-form .ff-el-group,.fluentform .ff-el-group{margin-bottom:var(--wp--preset--spacing--30)}
.pw-form__row{display:grid;gap:var(--wp--preset--spacing--30)}
@media (min-width:640px){.pw-form__row{grid-template-columns:1fr 1fr}}
.ff-el-input--label,.fluentform label{display:block;margin-bottom:6px;font-size:var(--wp--preset--font-size--label);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.ff-el-form-control,.fluentform input[type=text],.fluentform input[type=email],.fluentform textarea{width:100%;font:inherit;font-size:var(--wp--preset--font-size--small);padding:12px 14px;border:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 30%,transparent);border-radius:12px;background:var(--wp--preset--color--paper)}
.ff-el-form-control:focus{border-color:var(--wp--preset--color--plum)}
.pw-upload{border:1px dashed color-mix(in srgb,var(--wp--preset--color--blush) 60%,transparent);border-radius:12px;padding:var(--wp--preset--spacing--40);text-align:center;background:var(--wp--preset--color--paper)}
.pw-upload__hint{display:block;margin-top:8px;font-size:var(--wp--preset--font-size--label);color:var(--wp--preset--color--ink-soft);text-transform:none;letter-spacing:0}
.ff-btn-submit,.fluentform .ff-btn-submit{width:100%;min-height:48px;font-family:var(--wp--preset--font-family--outfit);font-size:var(--wp--preset--font-size--label);font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;border:0;background:var(--wp--preset--color--plum);color:var(--wp--preset--color--white);cursor:pointer;box-shadow:var(--wp--preset--shadow--md)}
.ff-btn-submit:hover{background:var(--wp--preset--color--plum-deep)}
/* #B3261E is an error red used only for form validation states; 6.15:1 on paper (#FBF7F9), well over WCAG AA's 4.5:1 */
.ff-el-is-error .ff-el-form-control{border-color:#B3261E}
.ff-el-is-error .error,.ff-errors-in-stack .error{color:#B3261E;font-size:var(--wp--preset--font-size--small);margin-top:6px}
.ff-message-success{background:var(--wp--preset--color--blush-wash);border:1px solid color-mix(in srgb,var(--wp--preset--color--plum) 30%,transparent);border-radius:12px;padding:12px 14px;font-size:var(--wp--preset--font-size--small)}
/* footer */
.pw-footer{padding-block:var(--wp--preset--spacing--80) var(--wp--preset--spacing--50);border-top:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 20%,transparent)}
.pw-footer__grid{display:grid;gap:var(--wp--preset--spacing--70)}
@media (min-width:1024px){.pw-footer__grid{grid-template-columns:5fr 7fr}}
.pw-footer__logo{margin:0 0 var(--wp--preset--spacing--50)}
/* R28: the wordmark is a plain core/image block (no width attribute — core/image's save()
   turns one into an inline style plus an is-resized class), so its size lives here. */
.pw-footer__logo img{width:220px;height:auto}
.pw-footer__hours-title{margin-top:var(--wp--preset--spacing--60)}
.pw-footer__form{padding:var(--wp--preset--spacing--50)}
.pw-footer__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--wp--preset--spacing--30);margin-top:var(--wp--preset--spacing--70);padding-top:var(--wp--preset--spacing--40);border-top:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 20%,transparent);color:var(--wp--preset--color--ink-soft)}
.pw-footer__legal p{margin:0;text-transform:none;letter-spacing:0;font-weight:400}
.pw-footer__links a{color:inherit;margin-left:var(--wp--preset--spacing--40);display:inline-flex;align-items:center;min-height:44px;padding:0 2px}.pw-footer__links a:first-child{margin-left:0}.pw-footer__links a:hover{color:var(--wp--preset--color--plum)}
/* mobile bar */
.pw-mobile-bar{position:sticky;bottom:0;z-index:50;background:color-mix(in srgb,var(--wp--preset--color--paper) 95%,transparent);backdrop-filter:blur(8px);border-top:1px solid color-mix(in srgb,var(--wp--preset--color--blush) 30%,transparent);padding:10px clamp(12px,4vw,20px) calc(10px + env(safe-area-inset-bottom))}
.pw-mobile-bar__row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pw-mobile-bar .wp-block-button,.pw-mobile-bar .wp-block-button__link{width:100%;text-align:center;padding-inline:12px}
.pw-mobile-bar .wp-block-button__link{padding-inline:8px;white-space:nowrap;font-size:11px}
@media (min-width:768px){.pw-mobile-bar{display:none}}
/* legal + policy pages */
.pw-policy{max-width:68ch}
.pw-policy h2{margin-top:var(--wp--preset--spacing--60)}
.is-style-hidden-until-needed{display:none}
/* gallery (draft page, mosaic) */
.wp-block-gallery.is-style-mosaic{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-flow:dense;gap:var(--wp--preset--spacing--30)}
@media (min-width:768px){.wp-block-gallery.is-style-mosaic{grid-template-columns:repeat(3,1fr)}}
.wp-block-gallery.is-style-mosaic figure{margin:0}
.wp-block-gallery.is-style-mosaic img{width:100%;height:100%;aspect-ratio:4/5;object-fit:cover;border-radius:16px}
.wp-block-gallery.is-style-mosaic figure:nth-child(6n+1),.wp-block-gallery.is-style-mosaic figure:nth-child(6n+6){grid-column:span 2}
.wp-block-gallery.is-style-mosaic figure:nth-child(6n+1) img,.wp-block-gallery.is-style-mosaic figure:nth-child(6n+6) img{aspect-ratio:3/2}
/* 404 */
.pw-404{text-align:center;padding-block:clamp(96px,16vw,200px)}
/* motion (spec §3.4) */
@media (prefers-reduced-motion:no-preference){
  main{animation:pw-fade-in .4s cubic-bezier(.16,1,.3,1) both}
  .pw-hero__media img{animation:pw-hero-img .9s ease-out both;transition:transform .7s ease-out}
  .pw-hero__media img:hover,.pw-card__media img:hover{transform:scale(1.05)}
  .pw-card__media img{transition:transform .7s ease-out}
}
@keyframes pw-fade-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes pw-hero-img{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}
/* R28 block-gap guard. Every layout wrapper below is a real core/group block now (so the block
   editor can validate the page), which means WordPress's flow-layout rules
   `:root :where(.is-layout-flow) > *|:first-child|:last-child` apply to its children and would
   replace the margins this file sets — headings, paragraphs and un-classed block children only,
   since every `.pw-*` margin rule here already outranks the `> *` rule. These re-state exactly
   the spacing the approved mockup shows, one specificity step higher. `.pw-stack` is a no-op
   marker for a wrapper that needs to be a block but carries no styling of its own. */
:is(.pw-wrap,.pw-col-7,.pw-section__head,.pw-card__body,.pw-card__foot,.pw-grid-2,.pw-grid-3,.pw-grid-12,.pw-sanitation,.pw-services-grid,.pw-faq,.pw-reviews,.pw-compare,.pw-stats__grid,.pw-map,.pw-footer__grid,.pw-footer__brand,.pw-footer__legal,.pw-header__row,.pw-stack).wp-block-group>*{margin-block:0}
:is(.pw-wrap,.pw-col-7,.pw-section__head,.pw-card__body,.pw-card__foot,.pw-grid-2,.pw-grid-3,.pw-grid-12,.pw-sanitation,.pw-services-grid,.pw-faq,.pw-reviews,.pw-compare,.pw-stats__grid,.pw-map,.pw-footer__grid,.pw-footer__brand,.pw-footer__legal,.pw-header__row,.pw-stack).wp-block-group>:is(h1,h2,h3,h4){margin-block:0 var(--wp--preset--spacing--40)}
:is(.pw-wrap,.pw-col-7,.pw-section__head,.pw-card__body,.pw-card__foot,.pw-grid-2,.pw-grid-3,.pw-grid-12,.pw-sanitation,.pw-services-grid,.pw-faq,.pw-reviews,.pw-compare,.pw-stats__grid,.pw-map,.pw-footer__grid,.pw-footer__brand,.pw-footer__legal,.pw-header__row,.pw-stack).wp-block-group>p{margin-block:0 var(--wp--preset--spacing--30)}
.wp-block-group>.pw-section__head{margin-block:0 var(--wp--preset--spacing--70)}
.wp-block-group>.pw-promo{margin-block:0 var(--wp--preset--spacing--60)}
.wp-block-group>.pw-dots{margin-block:var(--wp--preset--spacing--30) 0}
.wp-block-group>.pw-footer__logo{margin-block:0 var(--wp--preset--spacing--50)}
.wp-block-group>.pw-footer__legal{margin-block:var(--wp--preset--spacing--70) 0}
.wp-block-group.pw-section__head>p{margin-block:8px 0}
.wp-block-group.pw-footer__legal>p{margin-block:0}
.wp-block-group.pw-policy>h2{margin-block:var(--wp--preset--spacing--60) var(--wp--preset--spacing--40)}
.wp-block-group.pw-policy>h2:first-child{margin-block-start:0}
.wp-block-group>h3.pw-footer__hours-title{margin-block:var(--wp--preset--spacing--60) var(--wp--preset--spacing--40)}
.wp-block-group>p.pw-hero__sub{margin-block:0 var(--wp--preset--spacing--50)}
.wp-block-group>p.pw-hero__note{margin-block:var(--wp--preset--spacing--30) 0}
.wp-block-group>p.pw-chips{margin-block:var(--wp--preset--spacing--40)}
/* editor-only notes never render on the front end */
.is-placeholder-note{display:none}
