/* Luxe – additions on top of the generated design CSS (framer.css) */
:root {
  /* colours and fonts: see luxe-theme.css */
}
html.lx-menu-open body, html.lx-notice-lock body { overflow: hidden; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
a { -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }

/* -------- buttons used by overlays and booking pages -------- */
.lx-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 26px; height: 52px;
  border-radius: 100px; font: 500 15px/1 var(--lx-sans); text-decoration: none; cursor: pointer; border: 1px solid transparent;
  transition: background-color .3s, color .3s, border-color .3s, transform .3s; }
.lx-btn-dark { background: var(--lx-slate); color: #fff; }
.lx-btn-dark:hover { background: #3b4953; }
.lx-btn-light { background: #fff; color: var(--lx-ink); }
.lx-btn-light:hover { background: var(--lx-cream); }
.lx-btn-ghost { background: transparent; color: var(--lx-ink); border-color: rgba(26,26,26,.18); }
.lx-btn-ghost:hover { border-color: var(--lx-ink); }

/* -------- language switcher (header) -------- */
.lx-lang { position: relative; z-index: 5; align-self: center; margin-right: 6px; }
.lx-lang-btn { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px; border-radius: 100px;
  border: 1px solid rgba(255,255,255,.28); background: transparent; color: #fff; font: 500 14px/1 var(--lx-sans); cursor: pointer;
  transition: background-color .3s, border-color .3s; }
.lx-lang-btn:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.5); }
.lx-lang-list { position: absolute; right: 0; top: calc(100% + 10px); min-width: 150px; margin: 0; padding: 8px; list-style: none;
  background: #fff; border-radius: 18px; box-shadow: 0 18px 50px rgba(26,26,26,.18); opacity: 0; transform: translateY(-6px);
  pointer-events: none; transition: opacity .25s, transform .25s; }
.lx-lang.open .lx-lang-list { opacity: 1; transform: none; pointer-events: auto; }
.lx-lang-list button { display: block; width: 100%; text-align: left; padding: 10px 14px; border: 0; border-radius: 12px; background: transparent;
  color: var(--lx-ink); font: 500 15px/1.2 var(--lx-sans); cursor: pointer; }
.lx-lang-list button:hover, .lx-lang-list button[aria-current] { background: var(--lx-cream); }

/* -------- call menu (header): one button, one entry per number -------- */
.lx-call { position: relative; z-index: 5; }
.lx-call-list { position: absolute; right: 0; top: calc(100% + 10px); min-width: 230px; margin: 0; padding: 8px; list-style: none;
  background: var(--lx-white); border-radius: 18px; box-shadow: 0 18px 50px rgb(var(--lx-ink-rgb) / .18); opacity: 0; visibility: hidden;
  transform: translateY(-6px); pointer-events: none; transition: opacity .25s, transform .25s, visibility .25s; }
.lx-call.open .lx-call-list { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }
.lx-call-list a { display: flex; flex-direction: column; gap: 4px; padding: 10px 14px; border-radius: 12px; color: var(--lx-ink); text-decoration: none; }
.lx-call-list a:hover, .lx-call-list a:focus-visible { background: var(--lx-cream); }
.lx-call-label { font: 400 13px/1.2 var(--lx-sans); color: var(--lx-muted); }
.lx-call-number { font: 500 16px/1.2 var(--lx-sans); white-space: nowrap; }

/* -------- floating WhatsApp buttons (bottom right, one per number) -------- */
.lx-wa { position: fixed; z-index: 996; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.lx-wa-btn { display: inline-flex; align-items: center; gap: 10px; padding: 5px 18px 5px 5px; border-radius: 100px; background: var(--lx-white); color: var(--lx-ink);
  text-decoration: none; box-shadow: 0 8px 26px rgb(var(--lx-ink-rgb) / .22); transition: transform .25s, box-shadow .25s; }
.lx-wa-btn:hover, .lx-wa-btn:focus-visible { transform: translateY(-2px); box-shadow: 0 12px 32px rgb(var(--lx-ink-rgb) / .28); }
.lx-wa-icon { position: relative; flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--lx-whatsapp); color: var(--lx-white); }
.lx-wa-icon::before { content: ""; position: absolute; inset: 9px; background: currentColor;
  -webkit-mask: url(../icons/site-whatsapp.svg) center / contain no-repeat; mask: url(../icons/site-whatsapp.svg) center / contain no-repeat; }
.lx-wa-text { display: flex; flex-direction: column; gap: 3px; font-family: var(--lx-sans); text-align: left; }
.lx-wa-text small { font-size: 11px; line-height: 1; color: var(--lx-muted); }
.lx-wa-text b { font-size: 14px; line-height: 1.1; font-weight: 600; white-space: nowrap; }
html.lx-menu-open .lx-wa { display: none; }
@media (max-width: 809.98px) {
  .lx-wa { right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); gap: 8px; }
  .lx-wa-icon { width: 38px; height: 38px; }
  .lx-wa-icon::before { inset: 8px; }
  .lx-wa-btn { padding-right: 14px; }
}
@media print { .lx-wa { display: none; } }

/* -------- explore dropdown -------- */
.lx-explore { position: fixed; z-index: 1000; transform: translate(-50%, -6px); min-width: 190px; padding: 8px; background: #fff;
  border-radius: 20px; box-shadow: 0 18px 50px rgba(26,26,26,.18); opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s; }
.lx-explore.open { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.lx-explore a { display: block; padding: 11px 16px; border-radius: 12px; color: var(--lx-ink); text-decoration: none; font: 500 15px/1.3 var(--lx-sans); }
.lx-explore a:hover { background: var(--lx-cream); }

/* -------- mobile menu -------- */
.lx-menu { position: fixed; inset: 0; z-index: 990; background: var(--lx-slate); color: #fff; opacity: 0; visibility: hidden;
  transition: opacity .4s, visibility .4s; overflow-y: auto; }
.lx-menu.open { opacity: 1; visibility: visible; }
.lx-menu-inner { min-height: 100%; display: flex; flex-direction: column; justify-content: space-between; gap: 32px; padding: 120px 28px 36px; box-sizing: border-box; }
.lx-menu-nav { display: flex; flex-direction: column; gap: 6px; }
.lx-menu-nav a { color: #fff; text-decoration: none; font: 400 38px/1.25 var(--lx-serif); transform: translateY(14px); opacity: 0;
  transition: transform .6s cubic-bezier(.22,.61,.36,1), opacity .6s, color .3s; }
.lx-menu.open .lx-menu-nav a { transform: none; opacity: 1; }
.lx-menu.open .lx-menu-nav a:nth-child(2) { transition-delay: .05s } .lx-menu.open .lx-menu-nav a:nth-child(3) { transition-delay: .1s }
.lx-menu.open .lx-menu-nav a:nth-child(4) { transition-delay: .15s } .lx-menu.open .lx-menu-nav a:nth-child(5) { transition-delay: .2s }
.lx-menu.open .lx-menu-nav a:nth-child(6) { transition-delay: .25s } .lx-menu.open .lx-menu-nav a:nth-child(7) { transition-delay: .3s }
.lx-menu-nav a[aria-current] { color: var(--lx-rose); }
.lx-menu-foot { display: flex; flex-direction: column; gap: 18px; align-items: flex-start; }
.lx-menu-langs { display: flex; gap: 8px; }
.lx-menu-langs button { height: 40px; min-width: 48px; padding: 0 14px; border-radius: 100px; border: 1px solid rgba(255,255,255,.3); background: transparent; color: #fff; font: 500 14px/1 var(--lx-sans); cursor: pointer; }
.lx-menu-langs button[aria-current] { background: #fff; color: var(--lx-ink); }
.lx-menu-phones { display: flex; flex-direction: column; gap: 14px; }
.lx-menu-phone { display: flex; flex-direction: column; gap: 5px; color: #fff; font: 500 18px/1 var(--lx-sans); text-decoration: none; }
.lx-menu-phone small { font: 400 13px/1 var(--lx-sans); opacity: .7; }
[data-framer-name="Mobile"] { z-index: 995; }

/* -------- cookie notice -------- */
.lx-notice { position: fixed; inset: 0; z-index: 2147483000; display: none; align-items: flex-end; justify-content: center; padding: 20px;
  background: rgba(26,26,26,.45); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.lx-notice-card { width: 100%; max-width: 560px; padding: 36px; background: #fff; border-radius: 24px; box-shadow: 0 30px 80px rgba(26,26,26,.25);
  animation: lxNoticeIn .6s cubic-bezier(.16,1,.3,1) both; }
.lx-notice-card h2 { margin: 0 0 12px; font: 400 30px/1.2 var(--lx-serif); color: var(--lx-ink); }
.lx-notice-card p { margin: 0 0 14px; font: 400 15px/1.7 var(--lx-sans); color: #4d4d4d; }
.lx-notice-card a { color: var(--lx-ink); text-decoration: underline; text-underline-offset: 3px; }
.lx-notice-warn { padding: 12px 16px; border-radius: 14px; background: var(--lx-cream); color: #7a5c36 !important; }
.lx-notice-card { max-height: calc(100vh - 40px); max-height: calc(100dvh - 40px); overflow-y: auto; }
.lx-notice-card:focus { outline: none; }
.lx-notice-card .lx-notice-view-settings, .lx-notice-card .lx-notice-actions-settings { display: none; }
.lx-notice-card.is-settings .lx-notice-view-summary, .lx-notice-card.is-settings .lx-notice-actions-summary { display: none; }
.lx-notice-card.is-settings .lx-notice-view-settings { display: block; }
.lx-notice-card.is-settings .lx-notice-actions-settings { display: flex; }
.lx-notice-cat { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; margin: 0 0 10px;
  border: 1px solid rgba(26,26,26,.1); border-radius: 16px; }
.lx-notice-cat-text { flex: 1; min-width: 0; }
.lx-notice-cat-text strong { display: block; margin-bottom: 4px; font: 500 15px/1.4 var(--lx-sans); color: var(--lx-ink); }
.lx-notice-cat-text span { display: block; font: 400 13px/1.6 var(--lx-sans); color: #5d5d5d; }
.lx-notice-always { flex-shrink: 0; padding: 4px 10px; border-radius: 100px; background: var(--lx-cream); color: #7a5c36; font: 500 12px/1.4 var(--lx-sans); }
.lx-notice-switch { position: relative; display: inline-block; flex-shrink: 0; width: 46px; height: 26px; cursor: pointer; }
.lx-notice-switch input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.lx-notice-track { position: absolute; inset: 0; border-radius: 100px; background: #cfcfcf; transition: background-color .25s; pointer-events: none; }
.lx-notice-track::before { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; transition: transform .25s; }
.lx-notice-switch input:checked + .lx-notice-track { background: var(--lx-slate); }
.lx-notice-switch input:checked + .lx-notice-track::before { transform: translateX(20px); }
.lx-notice-switch input:focus-visible + .lx-notice-track { box-shadow: 0 0 0 3px rgba(76,92,104,.35); }
.lx-notice-adnote { margin: 14px 0 0 !important; font-size: 13px !important; line-height: 1.6 !important; opacity: .85; }
.lx-notice-link { align-self: center; padding: 8px 4px; border: 0; background: none; color: var(--lx-ink); font: 500 14px/1.2 var(--lx-sans);
  text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
[data-notice-category][hidden] { display: none !important; }
.lx-map-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; width: 100%; height: 100%; min-height: 320px;
  padding: 28px 20px; background: var(--lx-cream); text-align: center; font: 400 15px/1.6 var(--lx-sans); color: #4d4d4d; }
.lx-map-placeholder p { max-width: 520px; margin: 0; }
.lx-map-placeholder label { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; }
.lx-notice-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 18px; }
@keyframes lxNoticeIn { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }

/* -------- announcement popup -------- */
.popup-overlay { position: fixed; inset: 0; z-index: 2147482000; display: flex; align-items: center; justify-content: center; padding: 20px;
  background: rgba(26,26,26,.5); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); transition: opacity .4s, visibility .4s; }
.popup-overlay.popup-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.popup-content { position: relative; width: 100%; max-width: 880px; background: #fff; border-radius: 28px; overflow: hidden;
  box-shadow: 0 30px 80px rgba(26,26,26,.3); }
.popup-close { position: absolute; top: 16px; right: 16px; z-index: 3; width: 42px; height: 42px; border-radius: 50%; border: 0; background: rgba(255,255,255,.92);
  color: var(--lx-ink); cursor: pointer; display: grid; place-items: center; transition: background-color .3s; }
.popup-close:hover { background: var(--lx-cream); }
.popup-close svg { width: 18px; height: 18px; }
.popup-inner { display: grid; grid-template-columns: 1fr 1fr; min-height: 360px; }
.popup-image-side { position: relative; background: var(--lx-cream); }
.popup-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.popup-text-side { display: flex; flex-direction: column; justify-content: center; padding: 44px 40px; }
.popup-heading { margin: 0 0 14px; font: 400 32px/1.2 var(--lx-serif); color: var(--lx-ink); }
.popup-subtext { margin: 0 0 26px; font: 400 16px/1.7 var(--lx-sans); color: #4d4d4d; }
.popup-link { align-self: flex-start; display: inline-flex; align-items: center; height: 52px; padding: 0 28px; border-radius: 100px; background: var(--lx-slate);
  color: #fff; text-decoration: none; font: 500 15px/1 var(--lx-sans); transition: background-color .3s; }
.popup-link:hover { background: #3b4953; }
@media (max-width: 720px) {
  .popup-inner { grid-template-columns: 1fr; } .popup-image-side { height: 180px; } .popup-text-side { padding: 28px 24px 30px; }
  .popup-heading { font-size: 26px; }
  .lx-notice-card { padding: 26px 22px; }
}

/* -------- footer language row -------- */
.lx-footer-langs { display: flex; gap: 14px; justify-content: center; padding: 0 0 16px; font: 400 14px/1 var(--lx-sans); }

/* ---- slides (hero + promises): only the active slide is shown */
.lx-slide:not(.is-active) { display: none !important; }
.lx-slide.lx-fade-in { animation: lx-fade .6s ease-out both; }
@keyframes lx-fade { from { opacity: 0; } to { opacity: 1; } }

/* ---- tabs */
[data-lx-panel][data-lx-hidden="1"] { display: none !important; }
[data-lx-tab] { cursor: pointer; }

/* ---- faq */
[data-lx-faq] { cursor: pointer; }
.lx-js [data-lx-faq]:not(.is-open) .lx-faq-a { height: 0; overflow: hidden; opacity: 0; }
.lx-faq-a { transition: height .35s cubic-bezier(.25,1,.5,1), opacity .3s ease; }

/* ---- logo / category ticker words */
.lx-word { font-family: "Fraunces", serif; font-size: 28px; letter-spacing: -.01em; color: var(--lx-slate); white-space: nowrap; }

/* ---- slideshow (services) */
.framer-slideshow ul { will-change: transform; }
.lx-js .framer-slideshow { cursor: grab; touch-action: pan-y; }
.lx-js .framer-slideshow.is-drag { cursor: grabbing; }
.framer-slideshow a, .framer-slideshow img { -webkit-user-drag: none; user-drag: none; }

/* ---- team grid (home): cards always fit the screen.
   Fluid grid: as many columns as fit (min 220px each, max 4), cards centred when the last row is short.
   The Framer card has a fixed 338px width / 315px photo, so those are made fluid here. */
.framer-15oxnzx {
  display: flex !important; flex-flow: row wrap !important; justify-content: center !important;
  align-items: stretch !important; gap: 20px !important; width: 100% !important; overflow: visible !important;
}
.framer-15oxnzx .framer-1hjobm0-container {
  flex: 0 0 calc((100% - 60px) / 4) !important; width: calc((100% - 60px) / 4) !important;
  min-width: 0 !important; max-width: 100% !important; place-self: auto !important;
}
.framer-15oxnzx .framer-tdRcs.framer-107gm8p { width: 100% !important; min-width: 0 !important; }
.framer-15oxnzx .framer-tdRcs .framer-1pi8iwz { height: auto !important; aspect-ratio: 4 / 5; }
.framer-15oxnzx .framer-tdRcs .framer-1pjgq92 { width: 100% !important; height: 100% !important; aspect-ratio: auto; }
.framer-15oxnzx .framer-tdRcs .framer-9hzuh9 { padding: 0 8px; box-sizing: border-box; max-width: 100%; }
.framer-15oxnzx .framer-tdRcs .framer-e86m6,
.framer-15oxnzx .framer-tdRcs .framer-1ekjm6 { white-space: normal !important; max-width: 100%; text-align: center; overflow-wrap: anywhere; }
@media (max-width: 1199.98px) {   /* tablet: 3 per row */
  .framer-15oxnzx .framer-1hjobm0-container { flex-basis: calc((100% - 40px) / 3) !important; width: calc((100% - 40px) / 3) !important; }
}
@media (max-width: 809.98px) {    /* phone: 2 per row, never a single long column */
  .framer-15oxnzx { gap: 14px !important; }
  .framer-15oxnzx .framer-1hjobm0-container { flex-basis: calc((100% - 14px) / 2) !important; width: calc((100% - 14px) / 2) !important; }
}
@media (max-width: 359.98px) {    /* very small phones: keep cards readable */
  .framer-15oxnzx .framer-1hjobm0-container { flex-basis: 100% !important; width: 100% !important; max-width: 320px; }
}

/* ---- service detail: only the specialists assigned to the service group are listed, whatever their number */
@media (min-width: 1200px) {
  .framer-w3pxj1 .framer-1e6y904 { flex-wrap: wrap; justify-content: center; }
  .framer-w3pxj1 .framer-1e6y904 .framer-1qoopja-container { flex: 0 1 calc((100% - 60px) / 4); width: auto; }
}

/* ---- footer booking pill */
.lx-pill-text { display: flex; align-items: center; height: 100%; padding: 0 24px; font: 400 15px/1 "Figtree", sans-serif; color: #fff; letter-spacing: 0; }
.lx-pill-text, a.framer-1aqv1v2 { text-decoration: none; }

/* ---- form messages */
.lx-form-msg { margin: 0 0 16px; padding: 14px 18px; border-radius: 12px; font: 400 15px/1.5 "Figtree", sans-serif; }
.lx-form-msg.ok { background: #ecf5f4; color: #1a1a1a; }
.lx-form-msg.err { background: #fbe9e9; color: #8a2d2d; }

/* ---- process steps */
.lx-js [data-lx-step]:not(.is-open) .lx-step-a { height: 0; overflow: hidden; opacity: 0; }
.lx-step-a { transition: height .35s cubic-bezier(.25,1,.5,1), opacity .3s ease; }

/* price lists: rows size to their content however many services there are */
[data-lx-panel], #prices .framer-zrdjbg { grid-auto-rows: auto !important; height: auto !important; align-content: start; }
#prices { height: auto !important; overflow: visible !important; }
#prices > div { height: auto !important; }
#prices > div { flex-wrap: nowrap !important; align-content: flex-start !important; justify-content: flex-start !important; }


/* ==========================================================================
   Header: white bar with dark text once the page is scrolled
   (colours: --lx-nav-scrolled-* in luxe-theme.css)
   ========================================================================== */
.framer-7kps2m-container nav.framer-1kkaR {
  transition: background-color .35s ease, border-color .35s ease, box-shadow .35s ease;
}
html.lx-scrolled .framer-7kps2m-container nav.framer-1kkaR {
  background-color: var(--lx-nav-scrolled-bg) !important;
  --border-color: var(--lx-nav-scrolled-border) !important;
  box-shadow: 0 10px 30px rgb(var(--lx-ink-rgb) / .10);
}
/* menu links, logo text, phone number */
html.lx-scrolled .framer-7kps2m-container nav .framer-text { --framer-text-color: var(--lx-nav-scrolled-fg) !important; }
/* hover underline of the menu links, burger lines */
html.lx-scrolled .framer-7kps2m-container nav [data-framer-name="border"],
html.lx-scrolled .framer-7kps2m-container nav [data-framer-name="Line"] { background-color: var(--lx-ink) !important; }
/* phone icon (white artwork) turns dark */
html.lx-scrolled .framer-7kps2m-container nav .framer-1cep3jo-container svg { filter: invert(.9); }
/* language switcher */
html.lx-scrolled .lx-lang-btn { color: var(--lx-nav-scrolled-fg); border-color: rgb(var(--lx-ink-rgb) / .28); }
html.lx-scrolled .lx-lang-btn:hover { background: rgb(var(--lx-ink-rgb) / .06); border-color: rgb(var(--lx-ink-rgb) / .5); }
/* "Book your appointment": white pill becomes a dark pill so it stays visible on the white bar */
html.lx-scrolled .framer-7kps2m-container nav .framer-17ced58-container a { background-color: var(--lx-ink) !important; }
html.lx-scrolled .framer-7kps2m-container nav .framer-17ced58-container .framer-text { --framer-text-color: var(--lx-white) !important; }
html.lx-scrolled .framer-7kps2m-container nav .framer-17ced58-container svg { filter: invert(1) brightness(1.1); }

/* Mobile header: the visible bar is the rounded pill (.framer-19ej5rf) inside a square <nav>.
   Once scrolled, the white background and shadow go on the pill, so its 120px corners are kept. */
@media (max-width: 809.98px) {
  .framer-7kps2m-container nav[data-framer-name="Mobile"] .framer-19ej5rf {
    transition: background-color .35s ease, border-color .35s ease, box-shadow .35s ease;
  }
  html.lx-scrolled .framer-7kps2m-container nav.framer-1kkaR[data-framer-name="Mobile"] {
    background-color: transparent !important;
    box-shadow: none;
  }
  html.lx-scrolled .framer-7kps2m-container nav[data-framer-name="Mobile"] .framer-19ej5rf {
    background-color: var(--lx-nav-scrolled-bg) !important;
    --border-color: var(--lx-nav-scrolled-border) !important;
    box-shadow: 0 10px 30px rgb(var(--lx-ink-rgb) / .10);
  }
}

/* Open mobile menu: lift the header above the full-screen menu (z-index 990) so the Menu button stays
   visible and can close it again. The header container is its own stacking context, so the z-index
   on the nav alone is not enough. */
html.lx-menu-open .framer-ko69M .framer-7kps2m-container { z-index: 995; }

/* ==========================================================================
   Home: "Treatments Crafted for Every Need" carousel stays inside the page margins (left = right)
   ========================================================================== */
.framer-4qEBk .framer-191gsyx-container { width: 100%; max-width: 100%; }
.framer-4qEBk section.framer-slideshow ul > li > .framer-1tyxp2i-container { width: calc((100% - 60px) / 4); }
@media (max-width: 1199.98px) {
  .framer-4qEBk section.framer-slideshow ul > li > .framer-1tyxp2i-container { width: calc((100% - 40px) / 3); }
}
@media (max-width: 809.98px) {
  .framer-4qEBk section.framer-slideshow ul > li > .framer-1tyxp2i-container { width: calc((100% - 20px) / 1.3); }
}

/* ==========================================================================
   No-JavaScript fallback (html keeps the lx-js-off class when scripts are disabled)
   ========================================================================== */
html.lx-js-off [data-lx-o0]:not(.lx-keep-hidden),
html.lx-js-off .lx-c:not(.lx-keep-hidden),
html.lx-js-off .lx-w:not(.lx-keep-hidden) { opacity: 1 !important; transform: none !important; filter: none !important; }
html.lx-js-off .lx-slide:not(.is-active) { display: none !important; }

/* ==========================================================================
   Announcement popup – special banner (themes)
   ========================================================================== */
.special-banner { position: relative; padding: 20px 24px; border-radius: 12px; margin-bottom: 20px; overflow: hidden; text-align: center; animation: specialPulse 3s ease-in-out infinite; }
.special-banner-glow { position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(255,255,255,.15) 0%, transparent 70%); animation: glowRotate 8s linear infinite; pointer-events: none; }
.special-banner-content { position: relative; z-index: 2; }
.special-banner-icon { font-size: 2rem; margin-bottom: 8px; animation: iconBounce 2s ease-in-out infinite; }
.special-banner-title { font-size: 1.15rem; font-weight: 700; margin-bottom: 6px; letter-spacing: .5px; }
.special-banner-text { font-size: .9rem; line-height: 1.5; opacity: .92; }
.special-theme-gold   { background: linear-gradient(135deg, #92702c, #d4a84b, #92702c); color: #fff; }
.special-theme-red    { background: linear-gradient(135deg, #9b1c31, #e63946, #9b1c31); color: #fff; }
.special-theme-green  { background: linear-gradient(135deg, #1b6b3a, #40916c, #1b6b3a); color: #fff; }
.special-theme-blue   { background: linear-gradient(135deg, #1e3a5f, #457b9d, #1e3a5f); color: #fff; }
.special-theme-purple { background: linear-gradient(135deg, #4a1a6b, #7b2cbf, #4a1a6b); color: #fff; }
@keyframes specialPulse { 0%, 100% { box-shadow: 0 0 15px rgba(255,255,255,.1); } 50% { box-shadow: 0 0 30px rgba(255,255,255,.25); } }
@keyframes glowRotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes iconBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.popup-has-special .popup-text-side { display: flex; flex-direction: column; justify-content: center; gap: 0; }

/* ==========================================================================
   Price rows (home, pricing, service detail): description may wrap onto two lines
   ========================================================================== */
.framer-fane8 .framer-1vtzayo { max-height: none; overflow: visible; }

/* Secondary follow link (Facebook) beside the Instagram button */
.lx-follow-alt{margin-left:20px;font:500 16px/1.4 "Figtree",sans-serif;color:#1a1a1a;text-decoration:underline;text-underline-offset:4px;white-space:nowrap;align-self:center}
.lx-follow-alt:hover{opacity:.7}

/* Footer: wrap the tagline, align the treatments column with the other columns */
.framer-TpfMm .framer-1p1twgc{white-space:normal;width:100%;max-width:420px;word-break:break-word}
.framer-TpfMm .framer-17k1q60{align-self:flex-start;align-items:flex-start;text-align:left}
.framer-TpfMm .framer-17k1q60 .framer-qtp46j,.framer-TpfMm .framer-1qfqctd{align-self:flex-start;text-align:left}
.framer-TpfMm .framer-1qfqctd{gap:10px}
.framer-TpfMm :has(> .framer-urcgfz),.framer-TpfMm :has(> .framer-urcgfz) > *{align-items:flex-start}
.framer-TpfMm :has(> .framer-urcgfz) > .framer-urcgfz,.framer-TpfMm :has(> .framer-urcgfz) > .framer-j09nja,.framer-TpfMm :has(> .framer-urcgfz) > .framer-17k1q60{align-self:flex-start}

/* ==========================================================================
   Split-text reveal (markup from the lx_chars / lx_words template tags).
   Hidden start state; luxe.js animates opacity/transform/filter inline afterwards.
   ========================================================================== */
.lx-c:not(#lx), .lx-w:not(#lx) {
  display: inline-block; opacity: 0.001;
  transform: translateX(0px) translateY(10px) scale(1) rotate(0deg) skewX(0deg) skewY(0deg);
}
.lx-c:not(#lx) { filter: blur(10px); }
.lx-nw { white-space: nowrap; }

/* will-change hint carried by animated Framer elements; luxe.js removes the class when the animation has finished */
.lx-wc:not(#lx) { will-change: transform; }
.lx-wc-auto:not(#lx) { will-change: auto; }

/* ---- home "Our Services & Prices": one tab per service group, icon per group (mask, so it takes the text colour) */
.lx-tabs-bar.framer-dksj8p:not(#lx) { flex-wrap: wrap; width: auto; max-width: 100%; justify-content: center; gap: 4px; border-radius: 36px; }
.lx-tabs-bar .framer-Zu2OU.framer-11vy7qp:not(#lx) { padding: 0 20px; border-radius: 60px; transition: background-color .25s ease, color .25s ease; }
.lx-tabs-bar .framer-Zu2OU .framer-w64dm4 { white-space: nowrap; }
.lx-tabs-bar .framer-Zu2OU h6 { color: rgb(var(--lx-ink-rgb)); transition: color .25s ease; }
.lx-tabs-bar .framer-Zu2OU.framer-v-zf7wou:not(#lx) { background-color: rgb(var(--lx-slate-rgb)); }
.lx-tabs-bar .framer-Zu2OU.framer-v-zf7wou h6 { color: rgb(var(--lx-white-rgb)); }
.lx-tab-icon { display: block; width: 24px; height: 24px; background-color: rgb(var(--lx-gold-rgb)); transition: background-color .25s ease;
  -webkit-mask: var(--lx-tab-icon, url("../icons/home-tab-icon-default.svg")) center / contain no-repeat;
          mask: var(--lx-tab-icon, url("../icons/home-tab-icon-default.svg")) center / contain no-repeat; }
.framer-v-zf7wou .lx-tab-icon { background-color: rgb(var(--lx-white-rgb)); }
.lx-tab-icon[data-lx-icon="heren-kids"] { --lx-tab-icon: url("../icons/home-tab-icon-heren-kids.svg"); }
.lx-tab-icon[data-lx-icon="dames-haar"] { --lx-tab-icon: url("../icons/home-tab-icon-dames-haar.svg"); }
.lx-tab-icon[data-lx-icon="kleuring"] { --lx-tab-icon: url("../icons/home-tab-icon-kleuring.svg"); }
.lx-tab-icon[data-lx-icon="dames-laser"] { --lx-tab-icon: url("../icons/home-tab-icon-dames-laser.svg"); }
.lx-tab-icon[data-lx-icon="dames-behandelingen-styling"] { --lx-tab-icon: url("../icons/home-tab-icon-dames-behandelingen-styling.svg"); }
.lx-tab-icon[data-lx-icon="japanese-head-spa"] { --lx-tab-icon: url("../icons/home-tab-icon-japanese-head-spa.svg"); }
.lx-tab-icon[data-lx-icon="bruidsservice"] { --lx-tab-icon: url("../icons/home-tab-icon-bruidsservice.svg"); }
.lx-tab-icon[data-lx-icon="dames-wax"] { --lx-tab-icon: url("../icons/home-tab-icon-dames-wax.svg"); }
.lx-tab-icon[data-lx-icon="gezichtsverzorging"] { --lx-tab-icon: url("../icons/home-tab-icon-gezichtsverzorging.svg"); }
.lx-tab-icon[data-lx-icon="massage-enkel-voor-dames"] { --lx-tab-icon: url("../icons/home-tab-icon-massage-enkel-voor-dames.svg"); }
.lx-tab-icon[data-lx-icon="wimperextensions"] { --lx-tab-icon: url("../icons/home-tab-icon-wimperextensions.svg"); }
.lx-tab-icon[data-lx-icon="lifting-brows"] { --lx-tab-icon: url("../icons/home-tab-icon-lifting-brows.svg"); }
@media (max-width: 809.98px) {
  .lx-tabs-bar .framer-Zu2OU.framer-11vy7qp:not(#lx) { padding: 0 14px; height: 46px; }
  .lx-tabs-bar .framer-gqahdv-container { height: 46px; }
}

/* ---- home "Our Services & Prices" on phones: tabs wrap as pills, rows never clip or overlap */
@media (max-width: 809.98px) {
  .lx-tabs-bar.framer-dksj8p:not(#lx) { display: flex; flex-wrap: wrap; justify-content: center; align-items: stretch; width: 100%; max-width: 100%; padding: 8px; gap: 6px; box-sizing: border-box; }
  .lx-tabs-bar .framer-gqahdv-container { flex: 0 1 auto; width: auto; max-width: 100%; min-width: 0; height: auto; }
  .lx-tabs-bar .framer-Zu2OU.framer-11vy7qp:not(#lx) { width: auto; max-width: 100%; height: auto; min-height: 44px; padding: 8px 14px; box-sizing: border-box; }
  .lx-tabs-bar .framer-Zu2OU .framer-1ggkvau { flex: none; }
  .lx-tabs-bar .framer-Zu2OU .framer-w64dm4 { white-space: normal; min-width: 0; text-align: left; overflow-wrap: anywhere; }

  .framer-1ftq0de .framer-1awuu1w { grid-template-columns: minmax(0, 1fr); }
  .framer-1ftq0de .framer-p67qe5, .framer-1ftq0de .framer-6rgzgj-container { min-width: 0; max-width: 100%; }
  .framer-1ftq0de .framer-fane8.framer-v-znncq2.framer-pui9if { flex-direction: row; align-items: flex-start; gap: 14px; max-width: 100%; overflow: visible; }
  .framer-1ftq0de .framer-fane8 .framer-1obeq5p { flex: none; width: 64px; height: 64px; }
  .framer-1ftq0de .framer-fane8.framer-v-znncq2 .framer-t24fzk { flex: 1 1 0; width: auto; min-width: 0; }
  .framer-1ftq0de .framer-fane8 .framer-nva802 { justify-content: space-between; align-items: flex-start; gap: 12px; }
  .framer-1ftq0de .framer-fane8 .framer-uizzlo { display: none; }
  .framer-1ftq0de .framer-fane8 .framer-l5fyu0 { flex: 0 1 auto; min-width: 0; white-space: normal; overflow-wrap: anywhere; }
  .framer-1ftq0de .framer-fane8 .framer-1ixsdgo { flex: none; white-space: nowrap; }
  .framer-1ftq0de .framer-fane8 .framer-rc2pfj { flex-wrap: wrap; }
}

/* Service rows (home price tabs): an SVG icon replaces the per-service photo */
.svc-icon-wrap { color: rgb(var(--lx-gold-rgb)); }
.svc-icon { display: block; flex: none; width: 40px; height: 40px; color: inherit; overflow: visible; }

/* Social follow buttons (About > Life at Luxe) */
.lx-social{display:flex;flex-wrap:wrap;gap:16px;margin-top:18px}
.lx-social-btn{position:relative;display:inline-flex;align-items:center;gap:14px;padding:12px 22px 12px 14px;border-radius:999px;color:#fff;text-decoration:none;font-family:"Figtree",sans-serif;box-shadow:0 8px 20px rgba(0,0,0,.14);transition:transform .25s ease,box-shadow .25s ease}
.lx-social-btn--instagram{background:linear-gradient(45deg,#f09433 0%,#e6683c 25%,#dc2743 50%,#cc2366 75%,#bc1888 100%)}
.lx-social-btn--facebook{background:linear-gradient(135deg,#1877f2 0%,#0b57c9 100%)}
.lx-social-btn__icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.2);backdrop-filter:blur(4px)}
.lx-social-btn__text{display:flex;flex-direction:column;line-height:1.15;text-align:left}
.lx-social-btn__text small{font-size:12px;font-weight:500;opacity:.85;letter-spacing:.02em}
.lx-social-btn__text strong{font-size:17px;font-weight:600}
.lx-social-btn__arrow{margin-left:6px;transition:transform .25s ease}
.lx-social-btn:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(0,0,0,.22);color:#fff}
.lx-social-btn:hover .lx-social-btn__arrow{transform:translateX(4px)}
.lx-social-btn:focus-visible{outline:3px solid #1a1a1a;outline-offset:3px}
@media (max-width:809.98px){.lx-social{flex-direction:column;width:100%}.lx-social-btn{justify-content:flex-start}.lx-social-btn__arrow{margin-left:auto}}

/* about page: centre the Instagram / follow-us block */
.framer-12u8489 .framer-1ruaewo{align-items:center;text-align:center}
.framer-12u8489 .framer-1ruaewo :is(h2,h3,h4,p){text-align:center}
.framer-12u8489 .lx-social{justify-content:center}
@media (max-width:809.98px){.framer-12u8489 .lx-social-btn{justify-content:center}.framer-12u8489 .lx-social-btn__arrow{margin-left:6px}}

/* home page: centre the Instagram / follow-us block */
.framer-tf1o3j .framer-12melda{align-items:center;text-align:center}
.framer-tf1o3j .framer-12melda :is(h2,h3,h4,p){text-align:center}
.framer-tf1o3j .lx-social{justify-content:center}
@media (max-width:809.98px){.framer-tf1o3j .lx-social-btn{justify-content:center}.framer-tf1o3j .lx-social-btn__arrow{margin-left:6px}}

/* footer: copyright centred (no social icons) */
.framer-TpfMm .framer-8xe728{justify-content:center;text-align:center}
.framer-TpfMm .framer-m78t9u{text-align:center}
.framer-TpfMm .framer-m78t9u p{text-align:center}

/* contact page: centre the Instagram / follow-us block */
.framer-18xt4jx .framer-1l57rs8{align-items:center;text-align:center}
.framer-18xt4jx .framer-1l57rs8 :is(h2,h3,h4,p){text-align:center}
.framer-18xt4jx .lx-social{justify-content:center}
@media (max-width:809.98px){.framer-18xt4jx .lx-social-btn{justify-content:center}.framer-18xt4jx .lx-social-btn__arrow{margin-left:6px}}
