.customer-reviews{padding:72px 0;background:#edf5fb;overflow:hidden}
.customer-reviews[hidden]{display:none}
.reviews-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px}
.reviews-heading h2{margin-bottom:0}.reviews-pause{border:1px solid #b6cbdd;background:#fff;color:#15324f;border-radius:24px;padding:11px 18px;font:inherit;font-size:12px;white-space:nowrap;cursor:pointer}
.reviews-pause:focus-visible{outline:3px solid #0d8cff;outline-offset:4px}
.reviews-window{overflow-x:auto;overflow-y:hidden;scroll-behavior:auto;overflow-anchor:none;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab;overscroll-behavior-x:contain;mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent)}
.reviews-track{display:flex;width:max-content;align-items:flex-start}
.reviews-group{display:flex;flex:0 0 auto;gap:28px;padding-right:28px;align-items:flex-start}
.review-card{display:flex;flex-direction:column;flex-shrink:0;width:360px;height:auto;padding:6px 4px 10px;background:transparent;border:0;border-radius:0;box-shadow:none}
.review-bubble{display:flex;flex-direction:column;position:relative;margin:0;padding:18px 20px 16px;background:#fff;border:1px solid #d4e8f7;border-radius:20px;box-shadow:0 6px 18px #15324f0a;font-size:14px;line-height:1.75;color:#15324f;flex:0 0 auto;height:auto}
.review-stars{color:#b47b22;font-size:15px;letter-spacing:2px;margin:0 0 10px}
.review-text{margin:0 0 14px;flex:0 0 auto}
.review-person{display:flex;align-items:flex-start;gap:10px;margin:0;padding-top:12px;border-top:1px solid #e4eef6}
.review-identity{display:flex;flex-direction:column;gap:2px}.review-identity strong{font-size:13px;color:#15324f;font-weight:700}.review-identity span{font-size:11px;line-height:1.5;color:#64798a}
.review-profile{font-size:12px;font-weight:600;color:#0868bd;line-height:1.7;text-decoration:underline;text-underline-offset:3px;margin-top:2px}.review-profile:focus-visible{outline:2px solid #0d8cff;outline-offset:3px}
.reviews-window::-webkit-scrollbar{display:none}.reviews-window.is-dragging{cursor:grabbing;user-select:none}.reviews-window:focus-visible{outline:2px solid #0d8cff;outline-offset:-2px}
@media(max-width:700px){.customer-reviews{padding:48px 0}.reviews-heading{align-items:flex-start;flex-direction:column;gap:16px}.review-card{width:300px;padding:4px 2px 8px}.review-bubble{font-size:13px;line-height:1.7;padding:16px 17px 14px;border-radius:18px}.reviews-group{gap:18px;padding-right:18px}.reviews-window{mask-image:none}}
@media(prefers-reduced-motion:reduce){.reviews-pause{display:none}}
/* Light brand-blue band, deeper than the pale FAQ (#f0f7fd) and distinct from the white steps section. */
.customer-reviews{background:#dcecf9;color:#15324f;border-top:1px solid #c6dcee;border-bottom:1px solid #c6dcee}
.reviews-heading h2{color:#15324f;font-size:clamp(30px,4vw,42px);line-height:1.2;letter-spacing:-1px;margin:8px 0 0}
.reviews-heading .eyebrow{color:#0868bd;font-size:11px;letter-spacing:1.3px;margin:0}
.reviews-heading>div{min-width:0}
/* Homepage only: clamp long reviews so the band fits a typical review; Read more expands the card as an overlay. */
.customer-reviews .review-card{position:relative}
.customer-reviews .review-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;line-clamp:5;overflow:hidden;margin-bottom:8px}
.customer-reviews .review-more{align-self:flex-start;margin:0 0 12px;padding:4px 0;border:0;background:none;color:#0868bd;font:inherit;font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:32px}
.customer-reviews .review-more[hidden]{display:none}
.customer-reviews .review-more:focus-visible{outline:2px solid #0d8cff;outline-offset:3px}
.customer-reviews .review-card.is-expanded .review-bubble{position:absolute;top:6px;left:4px;right:4px;z-index:3;overflow-y:auto;box-shadow:0 14px 36px #15324f2e}
.customer-reviews .review-card.is-expanded .review-text{display:block;-webkit-line-clamp:unset;line-clamp:unset;overflow:visible}
.customer-reviews .reviews-window{padding-bottom:4px}
/* Keep the expanded review scrollbar visible (Android overlay scrollbars hide when idle). */
.customer-reviews .review-card.is-expanded .review-bubble{overflow-y:scroll}
/* Firefox only: Chrome ignores ::-webkit-scrollbar styles when scrollbar-color is set. */
@supports not selector(::-webkit-scrollbar){.customer-reviews .review-card.is-expanded .review-bubble{scrollbar-width:thin;scrollbar-color:#0868bd #e4eef6}}
.customer-reviews .review-card.is-expanded .review-bubble::-webkit-scrollbar{width:8px;-webkit-appearance:none}
.customer-reviews .review-card.is-expanded .review-bubble::-webkit-scrollbar-track{background:#e4eef6;border-radius:8px;margin:14px 0}
.customer-reviews .review-card.is-expanded .review-bubble::-webkit-scrollbar-thumb{background:#0868bd;border-radius:8px;min-height:32px}
/* Homepage announcement bar: NY/NJ tap-to-call numbers. */
.announcement .announcement-phones{display:inline-flex;gap:16px;margin-left:26px;white-space:nowrap;vertical-align:baseline}
.announcement-phones a{color:var(--on-brand);font-weight:700;text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.announcement-phones a:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:2px}
@media(max-width:700px){.has-rug-counter .announcement .announcement-phones{display:flex;margin:6px 0 0;gap:18px;font-size:11px;line-height:1.2}.announcement-phones a{display:inline-block;padding:4px 0}}
/* Polished phone links: icon, no underline until hover/focus, divider between NY and NJ. */
.announcement .announcement-phones{display:inline-flex;align-items:center;gap:0;letter-spacing:.3px}
.announcement .announcement-phones a{display:inline-flex;align-items:center;gap:5px;min-height:28px;padding:2px 2px;color:var(--on-brand);font-weight:500;text-decoration:none;transition:opacity .15s}
.announcement .announcement-phones a+a{margin-left:12px;padding-left:13px;border-left:1px solid rgba(255,255,255,.35)}
.announcement .announcement-phones a:hover .ph-num,.announcement .announcement-phones a:focus-visible .ph-num{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.announcement .announcement-phones a:active{opacity:.75}
.announcement .announcement-phones .ph-icon{width:12px;height:12px;flex:0 0 auto;opacity:.9}
.announcement .announcement-phones .ph-label{font-size:.85em;font-weight:500;opacity:.78;letter-spacing:.6px}
.announcement .announcement-phones .ph-num{font-variant-numeric:tabular-nums}
@media(max-width:700px){.announcement .announcement-phones a{min-height:32px}.announcement .announcement-phones a+a{margin-left:10px;padding-left:11px}}
.announcement .announcement-phones a+a{border-left:0;margin-left:0;padding-left:0}
.announcement .announcement-phones a+a::before{content:"";display:block;width:1px;height:14px;background:rgba(255,255,255,.4);margin:0 12px 0 10px}
@media(max-width:700px){.announcement .announcement-phones a+a::before{margin:0 10px 0 8px}}
@media(max-width:700px){.has-rug-counter .announcement .announcement-phones{gap:0;margin:4px -130px 0 -2px}.has-rug-counter .announcement .rug-counter{top:10px;transform:none}}
/* Plain-text phone links: light-blue label + white number, spacing only (no icons, underlines or dividers). */
.announcement .announcement-phones{flex-wrap:wrap;gap:2px 22px;letter-spacing:.2px}
.announcement .announcement-phones a,.announcement .announcement-phones a+a{gap:6px;margin:0;padding:2px 0;border:0;white-space:nowrap}
.announcement .announcement-phones a+a::before{content:none;display:none}
.announcement .announcement-phones .ph-label{color:#bfe0ff;font-size:1em;font-weight:400;opacity:1;letter-spacing:.2px}
.announcement .announcement-phones .ph-num{color:#fff;font-weight:600}
.announcement .announcement-phones a:hover .ph-num,.announcement .announcement-phones a:focus-visible .ph-num{text-decoration:none}
.announcement .announcement-phones a:hover,.announcement .announcement-phones a:focus-visible{opacity:.85}
@media(max-width:700px){.announcement .announcement-phones{gap:0 18px}.announcement .announcement-phones a,.announcement .announcement-phones a+a{min-height:30px}}
@media(max-width:700px){.has-rug-counter .announcement .announcement-phones{gap:0 18px}}
/* Tighter, even announcement bar. */
.announcement .announcement-phones a,.announcement .announcement-phones a+a{min-height:24px;padding:0}
@media(min-width:701px){.has-rug-counter .announcement{padding-top:8px;padding-bottom:8px}}
@media(max-width:700px){.has-rug-counter .announcement{padding-top:7px;padding-bottom:7px;line-height:1.35;min-height:0}.has-rug-counter .announcement .announcement-phones{margin:3px -130px 0 -2px}.has-rug-counter .announcement .announcement-phones a,.has-rug-counter .announcement .announcement-phones a+a{min-height:24px;padding:0}.has-rug-counter .announcement .rug-counter{top:7px}}
@media(max-width:700px){.has-rug-counter .announcement{padding-bottom:4px}}
/* Sticky announcement bar + header pinned together (heights published by inline ResizeObserver as --bar-h / --stick-h). */
body.home-v3-checkout{overflow-x:clip}
body>.announcement{position:sticky;top:0;z-index:31}
body>header.header{position:sticky;top:var(--bar-h,0px);z-index:30;isolation:isolate}
body>header.header::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);background:#fff;border-bottom:1px solid #e2eaf0}
html{scroll-padding-top:calc(var(--stick-h,0px) + 16px)}
.home-v3-checkout :is(.order-confirmation,.clean-checkout,.clean-booking){scroll-margin-top:0}
body.has-rug-counter>.announcement{position:sticky;top:0;z-index:31}
/* Checkout hides bar+header: keep last measured --stick-h but drop the offset while hidden. */
html:has(body.home-v3-checkout :is(#booking-form.details-step:not([hidden]),#payment-panel:not([hidden]))){scroll-padding-top:16px}
