/* Retained from the previous stylesheet: mobile drawer and bottom navigation only.
   Every rule for the retired floating header and the retired full-screen treatment
   panel was removed in v4.7.1 — those selectors match no markup and were fighting
   the current styles through the cascade. */

body.clinic-drawer-open{overflow:hidden}
/* .clinic-mega was removed from this rule in v4.7.1: inset:0 stretched the panel over the
   whole viewport and z-index:150 put it above the bar itself, so the open panel swallowed
   the pointer and the menu looked dead. The drawer legitimately is a full-screen overlay. */
.clinic-drawer{position:fixed;z-index:150;inset:0;display:block;overflow:auto;background:var(--c-paper);color:var(--c-ink);pointer-events:auto}.clinic-drawer[hidden]{display:none!important}.clinic-mega-open .mobile-bottom-nav,.clinic-drawer-open .mobile-bottom-nav{opacity:0;pointer-events:none}
.clinic-overlay-close{position:fixed;z-index:160;top:24px;left:24px;display:grid;width:46px;height:46px;place-items:center;padding:0;border:0;border-radius:50%;background:rgba(var(--c-ink-rgb),.06);color:rgba(var(--c-ink-rgb),.76);cursor:pointer;transition:background .2s,transform .25s var(--ease-out)}.clinic-overlay-close:hover{background:rgba(var(--c-ink-rgb),.12);transform:rotate(5deg)}.clinic-overlay-close svg{width:20px;height:20px}.clinic-mega__appointment,.clinic-drawer__appointment{display:flex;min-height:46px;align-items:center;gap:20px;padding:0 23px;border-radius:999px;background:var(--c-night);color:#fff;font-size:12px;font-weight:650}.clinic-mega__appointment svg,.clinic-drawer__appointment svg{width:17px}
.clinic-drawer{animation:loroOverlayIn .38s var(--ease-out) both}.clinic-drawer__shell{display:flex;width:min(980px,calc(100% - 64px));min-height:100%;margin:auto;flex-direction:column;justify-content:space-between;padding:92px 0 34px}.clinic-drawer__primary{display:flex;flex:1;flex-direction:column;justify-content:center}.clinic-drawer__eyebrow{margin-bottom:24px;color:rgba(var(--c-ink-rgb),.3);font-family:var(--font-num);font-size:12px;letter-spacing:.08em}.clinic-drawer__links{counter-reset:mainnav;width:min(700px,100%);margin:0;padding:0;list-style:none}.clinic-drawer__links li{counter-increment:mainnav;animation:loroItemIn .48s var(--ease-out) both}.clinic-drawer__links li:nth-child(2){animation-delay:.04s}.clinic-drawer__links li:nth-child(3){animation-delay:.08s}.clinic-drawer__links li:nth-child(4){animation-delay:.12s}.clinic-drawer__links li:nth-child(5){animation-delay:.16s}.clinic-drawer__links li:nth-child(6){animation-delay:.2s}.clinic-drawer__links a{display:grid;grid-template-columns:32px minmax(0,1fr);gap:16px;align-items:baseline;min-height:64px;color:rgba(var(--c-ink-rgb),.74);font-size:clamp(30px,4.4vw,56px);font-weight:430;line-height:1.2;transition:color .2s,transform .3s var(--ease-out)}.clinic-drawer__links a:before{content:counter(mainnav,decimal-leading-zero);color:rgba(var(--c-ink-rgb),.2);font-family:var(--font-num);font-size:10px;font-weight:400}.clinic-drawer__links a:hover,.clinic-drawer__links a:focus-visible{color:var(--c-ink);transform:translateX(-8px)}.clinic-drawer__treatment-trigger{display:flex;align-items:center;gap:18px;width:max-content;margin:22px 48px 0 0;padding:8px 0;border:0;border-bottom:1px solid currentColor;background:transparent;color:var(--c-ink);font-size:12px;cursor:pointer}.clinic-drawer__treatment-trigger svg{width:17px}.clinic-drawer__footer{display:flex;align-items:end;justify-content:space-between;gap:30px;padding-top:22px;border-top:1px solid rgba(var(--c-ink-rgb),.12);animation:loroItemIn .45s .18s var(--ease-out) both}.clinic-drawer__footer>div{display:flex;flex-direction:column;color:rgba(var(--c-ink-rgb),.65);font-size:12px}.clinic-drawer__footer>div a[dir=ltr]{font-family:var(--font-num)}@media(max-width:720px){.clinic-overlay-close{top:16px;left:16px}.clinic-mega__shell,.clinic-drawer__shell{width:calc(100% - 40px);padding-top:76px;padding-bottom:24px}.clinic-drawer__shell{padding-top:74px}.clinic-drawer__eyebrow{margin-bottom:18px}.clinic-drawer__links a{min-height:58px;font-size:clamp(29px,10vw,42px)}.clinic-drawer__footer{align-items:center}.clinic-drawer__footer>div a:first-child{font-size:11px}.clinic-drawer__footer>div a[dir=ltr]{display:none}.clinic-drawer__appointment{min-height:44px;padding:0 18px}.clinic-drawer__treatment-trigger{margin-right:48px}}@media(max-width:400px){.clinic-drawer__links a{font-size:30px}.clinic-drawer__footer{gap:10px}}@media(prefers-reduced-motion:reduce){.clinic-header__frame,.clinic-header__mark,.clinic-header__round,.clinic-mega,.clinic-drawer,.clinic-mega__service,.clinic-mega__preview,.clinic-drawer__links li,.clinic-drawer__footer{animation:none!important;transition:none!important}}.clinic-drawer__links a:focus-visible{outline:0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:7px}
/* ============================================================
   Treatment panel — v4.7.1, rebuilt.

   Opening is CSS-first. The trigger and the panel share one hover group, so
   :hover and :focus-within open it with no scripting; JS only sets data-open
   for click and keyboard. Nothing here depends on a class toggled on <body>,
   and the panel never carries the `hidden` attribute — a stylesheet that fails
   to arrive leaves a plain visible menu instead of an invisible one.
   ============================================================ */
.clinic-bar__treatments{position:static}
.clinic-mega{
  position:fixed;top:var(--bar-h);left:0;right:0;
  z-index:var(--z-menu,90);
  visibility:hidden;opacity:0;pointer-events:none;
  transform:translateY(-6px);
  transition:opacity .22s var(--ease-out),transform .22s var(--ease-out),visibility 0s linear .22s;
}
.clinic-bar__treatments:hover .clinic-mega,
.clinic-bar__treatments:focus-within .clinic-mega,
.clinic-mega[data-open="true"]{
  visibility:visible;opacity:1;pointer-events:auto;transform:none;
  transition:opacity .22s var(--ease-out),transform .22s var(--ease-out),visibility 0s;
}
/* A touch device fires a synthetic hover on tap; there the click handler owns it. */
@media (hover:none){
  .clinic-bar__treatments:hover .clinic-mega{visibility:hidden;opacity:0;pointer-events:none}
  .clinic-mega[data-open="true"]{visibility:visible;opacity:1;pointer-events:auto}
}

/* Sixteen treatments made this taller than a short laptop window, and the foot -- phone
   number and booking button -- went off the bottom. Cap it and let the sheet scroll. */
.clinic-mega__sheet{
  max-width:1440px;margin:0 auto;max-height:calc(100vh - var(--bar-h) - 24px);overflow-y:auto;
  padding:clamp(22px,2.6vw,34px) var(--gutter) clamp(18px,2vw,26px);
  background:var(--c-paper);
  border-bottom:1px solid var(--c-line);
  box-shadow:0 22px 54px rgba(var(--c-ink-rgb),.14);
}
.clinic-mega__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:14px;padding-bottom:16px;border-bottom:1px solid var(--c-line)}
.clinic-mega__head h2{margin:0;font-size:18px;font-weight:400;letter-spacing:-.012em;color:var(--c-ink)}
.clinic-mega__all{display:inline-flex;align-items:center;gap:8px;color:rgba(var(--c-ink-rgb),.75);font-size:13px;border-bottom:1px solid var(--c-brass);padding-bottom:2px;transition:color .2s,gap .22s var(--ease-out)}
.clinic-mega__all:hover{color:var(--c-ink);gap:13px}
.clinic-mega__all svg{width:15px;height:15px;stroke-width:1.5;fill:none;stroke:currentColor}

/* Four columns of groups rather than sixteen loose cards. Each column is a section with
   its own heading, so a patient reads one label and then four items, not sixteen. */
.clinic-mega__groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 20px;margin-top:20px}
.clinic-mega__group h3{margin:0 0 12px;padding-bottom:9px;border-bottom:1px solid var(--c-line);color:var(--c-brass);font-size:11px;font-weight:500;letter-spacing:.08em}
.clinic-mega__group ul{display:grid;gap:2px;padding:0;margin:0;list-style:none}
.clinic-mega__group a{display:flex;align-items:center;gap:10px;padding:6px;border:1px solid transparent;transition:background .2s var(--ease-out),border-color .2s var(--ease-out)}
.clinic-mega__group a:hover,.clinic-mega__group a:focus-visible{background:var(--c-white);border-color:var(--c-line)}
.clinic-mega__thumb{flex:0 0 auto;width:44px;height:44px;overflow:hidden;background:var(--c-mist)}
.clinic-mega__thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease-out)}
.clinic-mega__group a:hover .clinic-mega__thumb img{transform:scale(1.06)}
.clinic-mega__label{display:flex;flex-direction:column;gap:3px;min-width:0}
.clinic-mega__label strong{color:var(--c-ink);font-size:13px;font-weight:500;line-height:1.5}
.clinic-mega__label small{color:rgba(var(--c-ink-rgb),.6);font-size:12px}

.clinic-mega__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:20px;padding-top:16px;border-top:1px solid var(--c-line)}
.clinic-mega__foot p{max-width:52ch;margin:0;color:rgba(var(--c-ink-rgb),.68);font-size:13px;line-height:1.8}
.clinic-mega__foot>div{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.clinic-mega__call{display:inline-flex;align-items:center;height:42px;padding:0 16px;color:var(--c-ink);font-family:var(--font-num);font-size:16px;border:1px solid var(--c-line);transition:border-color .2s}
.clinic-mega__call:hover{border-color:var(--c-ink)}
.clinic-mega__book{display:inline-flex;align-items:center;gap:9px;height:42px;padding:0 20px;background:var(--c-ink);color:var(--c-white);font-size:14px;font-weight:500;transition:background .22s var(--ease-out),gap .22s var(--ease-out)}
.clinic-mega__book:hover{background:var(--c-deep);gap:14px}
.clinic-mega__book svg{width:15px;height:15px;stroke-width:1.5;fill:none;stroke:currentColor}

@media(max-width:1200px){.clinic-mega__groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.clinic-mega__groups{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}}
@media(max-width:900px){.clinic-mega{display:none}}
@media(prefers-reduced-motion:reduce){
  .clinic-mega,.clinic-mega__thumb img,.clinic-mega__group a{transition:none}
  .clinic-bar__treatments:hover .clinic-mega,.clinic-mega[data-open="true"]{transform:none}
}

/* Progressive enhancement handover. Without JS the :hover rule above is the whole
   mechanism. Once mega-menu.js initialises it stamps .js-mega on <html> and takes
   ownership, so an explicit close (click, Escape, outside-click) can win against a
   pointer that is still resting on the trigger — which pure :hover cannot express. */
.js-mega .clinic-bar__treatments:hover .clinic-mega[data-open="false"],
.js-mega .clinic-bar__treatments:focus-within .clinic-mega[data-open="false"]{
  visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-6px);
}

/* Fewer columns means more room per row, so the thumbnails can breathe again. */
.clinic-mega__thumb{width:56px;height:56px;flex:0 0 56px}
.clinic-mega__group a{gap:14px;padding:9px}
