/* Generated from pricing.css by npm run build:page-css. Edit the sources, then run it again. */
/* Keep the existing FBH pricing-page typography, spacing and treatment cards. */
/* fonts/poppins.css */
/* Poppins (OFL, see OFL.txt) as WOFF2 with every character but Devanagari: scripts/subset-fonts.py. */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(fonts/poppins-0.woff2?v=db54131c3c) format('woff2');
  unicode-range: U+0000, U+000D, U+0020-007E, U+00A0-0107, U+010A-011B, U+011E-0123, U+0128-0131, U+0136-0137, U+0139-0148, U+014C-015B, U+015E-0165, U+0168-017E, U+018F, U+0192, U+01FC-01FD, U+0218-021B, U+0259, U+02BC, U+02C6-02C7, U+02C9, U+02D8-02DD, U+03C0, U+1E80-1E85, U+1EBC-1EBD, U+1EF2-1EF3, U+1EF8-1EF9, U+200C-200D, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20A8, U+20AC, U+20B9-20BA, U+20BD, U+2113, U+2122, U+2126, U+212E, U+2202, U+2206, U+220F, U+2211-2212, U+2215, U+2219-221A, U+221E, U+222B, U+2248, U+2260, U+2264-2265, U+25CA, U+25CC, U+FB01-FB02;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/poppins-1.woff2?v=051cfa4dbf) format('woff2');
  unicode-range: U+0000, U+000D, U+0020-007E, U+00A0-0107, U+010A-011B, U+011E-0123, U+0128-0131, U+0136-0137, U+0139-0148, U+014C-015B, U+015E-0165, U+0168-017E, U+018F, U+0192, U+01FC-01FD, U+0218-021B, U+0259, U+02BC, U+02C6-02C7, U+02C9, U+02D8-02DD, U+03C0, U+1E80-1E85, U+1EBC-1EBD, U+1EF2-1EF3, U+1EF8-1EF9, U+200C-200D, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20A8, U+20AC, U+20B9-20BA, U+20BD, U+2113, U+2122, U+2126, U+212E, U+2202, U+2206, U+220F, U+2211-2212, U+2215, U+2219-221A, U+221E, U+222B, U+2248, U+2260, U+2264-2265, U+25CA, U+25CC, U+FB01-FB02;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/poppins-2.woff2?v=5dc849ec9f) format('woff2');
  unicode-range: U+0000, U+000D, U+0020-007E, U+00A0-0107, U+010A-011B, U+011E-0123, U+0128-0131, U+0136-0137, U+0139-0148, U+014C-015B, U+015E-0165, U+0168-017E, U+018F, U+0192, U+01FC-01FD, U+0218-021B, U+0259, U+02BC, U+02C6-02C7, U+02C9, U+02D8-02DD, U+03C0, U+1E80-1E85, U+1EBC-1EBD, U+1EF2-1EF3, U+1EF8-1EF9, U+200C-200D, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20A8, U+20AC, U+20B9-20BA, U+20BD, U+2113, U+2122, U+2126, U+212E, U+2202, U+2206, U+220F, U+2211-2212, U+2215, U+2219-221A, U+221E, U+222B, U+2248, U+2260, U+2264-2265, U+25CA, U+25CC, U+FB01-FB02;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(fonts/poppins-3.woff2?v=b2c0d8df7b) format('woff2');
  unicode-range: U+0000, U+000D, U+0020-007E, U+00A0-0107, U+010A-011B, U+011E-0123, U+0128-0131, U+0136-0137, U+0139-0148, U+014C-015B, U+015E-0165, U+0168-017E, U+018F, U+0192, U+01FC-01FD, U+0218-021B, U+0259, U+02BC, U+02C6-02C7, U+02C9, U+02D8-02DD, U+03C0, U+1E80-1E85, U+1EBC-1EBD, U+1EF2-1EF3, U+1EF8-1EF9, U+200C-200D, U+2013-2014, U+2018-201A, U+201C-201E, U+2020-2022, U+2026, U+2030, U+2039-203A, U+2044, U+20A8, U+20AC, U+20B9-20BA, U+20BD, U+2113, U+2122, U+2126, U+212E, U+2202, U+2206, U+220F, U+2211-2212, U+2215, U+2219-221A, U+221E, U+222B, U+2248, U+2260, U+2264-2265, U+25CA, U+25CC, U+FB01-FB02;
}
/* additions.css */
html {
  overflow-x: hidden;
}

body {
  margin: 0;
  padding-bottom: 100px !important;
  background: #fff;
}

body,
.elPageContent {
  max-width: 600px;
  margin-left: auto !important;
  margin-right: auto !important;
}

img {
  max-width: 100%;
}

[data-show-only='desktop'] {
  display: none !important;
}

[data-show-only='mobile'] {
  display: block !important;
}

.addons {
  font-family: Poppins, sans-serif;
}

.addons a {
  display: flex;
  align-items: center;
  border-top: 1px solid #d6d6d6;
  text-decoration: none;
  color: #080808;
}

.addons i {
  color: #7dafae;
  font-size: 24px;
  width: 28px;
  flex-shrink: 0;
}

.addons span {
  flex: 1;
}

.addons strong {
  line-height: 1.3;
  display: block;
}

.addons small {
  display: block;
  color: #757575;
  font-size: 12px;
  margin-top: 5px;
  line-height: 1.6;
}

.addons b {
  font-size: 32px;
  font-weight: 500;
}

.new-page {
  font-family: Poppins, sans-serif;
  color: #111;
  line-height: 1.6;
}

.new-page header {
  padding: 12px 18px;
  border-bottom: 1px solid #eee;
}

.new-page header img {
  width: 100%;
  height: auto;
}

.new-page main {
  padding: 26px 18px 20px;
}

.new-page h1 {
  font-size: 26px;
  line-height: 1.25;
  letter-spacing: -0.6px;
  font-weight: 600;
  margin: 0 0 10px;
}

.intro {
  font-size: 13px;
  color: #777;
  margin: 0 0 26px;
}

.category-picker {
  font-size: 12px;
  color: #777;
  display: block;
  margin-bottom: 30px;
}

.category-picker select {
  font-family: inherit;
  background: #f6f9f8;
  width: 100%;
  padding: 13px 10px;
  border: 1px solid #d8e4e1;
  border-radius: 5px;
  margin-top: 7px;
  color: #222;
  font-size: 13px;
}

.category {
  margin-bottom: 36px;
}

.category h2 {
  font-size: 18px;
  font-weight: 600;
  line-height: 1.4;
  border-bottom: 2px solid #8cadaa;
  padding-bottom: 13px;
  margin: 0;
}

.treatment {
  border-bottom: 1px solid #e5e5e5;
  padding: 18px 0;
}

.treatment summary {
  list-style: none;
  cursor: pointer;
}

.treatment summary::-webkit-details-marker {
  display: none;
}

.treatment-name {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.6;
  display: block;
}

.meta {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: baseline;
  margin-top: 9px;
  color: #8a8a8a;
  font-size: 12px;
}

.meta strong {
  font-size: 17px;
  font-weight: 600;
  color: #648e8b;
  white-space: nowrap;
}

.meta del {
  font-size: 12px;
  margin-right: 8px;
}

.expand {
  font-size: 11px;
  color: #7e9998;
  display: flex;
  justify-content: space-between;
  margin-top: 12px;
  align-items: center;
}

.expand b {
  font-size: 21px;
  font-weight: 400;
  line-height: 1;
}

.treatment[open] .expand b {
  font-size: 0;
}

.treatment[open] .expand b:after {
  content: '−';
  font-size: 21px;
}

.description {
  font-size: 13px;
  line-height: 1.85;
  color: #555;
  margin-top: 18px;
  overflow-wrap: anywhere;
}

.booking {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  max-width: 600px;
  margin: auto;
  padding: 12px 15px calc(12px + env(safe-area-inset-bottom));
  z-index: 20;
}

.booking a {
  display: flex;
  justify-content: center;
  gap: 14px;
  border-radius: 4px;
  background: #7185ab;
  padding: 13px 8px;
  color: white;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

.staff {
  margin: 0 0 22px;
  overflow: hidden;
  border: 1px solid #e7e7e7;
  border-radius: 6px;
}

.staff > img {
  display: block;
  object-fit: cover;
  object-position: center 25%;
}

.staff h2 {
  font-weight: 600;
  margin: 0;
}

.staff p {
  font-size: 12px;
  color: #888;
  margin: 3px 0 0;
}

.contact {
  font-size: 13px;
  color: #777;
  line-height: 2.2;
}

.contact a {
  color: #648e8b;
  text-decoration: none;
}

a,
summary,
select {
  -webkit-tap-highlight-color: transparent;
}

a:focus-visible,
summary:focus-visible {
  outline: 2px solid #7dafae;
  outline-offset: 4px;
}

@media (max-width: 350px) {
  .addons strong {
    font-size: 17px;
  }
  .addons small {
    font-size: 11px;
  }
  .new-page h1 {
    font-size: 24px;
  }
}

body {
  height: auto !important;
  min-height: 100vh;
}

.id-6Z-aq5AwB-475 {
  padding-bottom: 0 !important;
}

.new-page .expand {
  width: 100% !important;
  max-width: none !important;
}

.staff {
  display: flex;
  align-items: center;
}

.staff > img {
  width: 120px;
  height: 150px;
  aspect-ratio: auto;
  flex-shrink: 0;
}

.staff > div {
  padding: 15px;
}

.staff h2 {
  font-size: 16px;
}

.elAccordionItemHeader {
  cursor: pointer;
}

.elAccordionItemBody {
  display: none !important;
}

[data-expanded='true'] > .elAccordionItemBody {
  display: block !important;
  height: auto !important;
  max-height: none !important;
  opacity: 1 !important;
}

[data-expanded='true'] .elAccordionItemHeaderAfterIcon {
  transform: rotate(90deg);
}

.addons {
  margin: 0 10px 24px;
}

.addons a {
  box-sizing: border-box;
  min-height: 94px;
  padding: 20px 4px;
  gap: 14px;
}

.addons a:first-child {
  border-top: 0;
}

.addons a > i:first-child {
  width: 28px;
  text-align: center;
  font-size: 24px;
}

.addons strong {
  font-size: 20px;
  font-weight: 600;
}

.addons .nav-chevron {
  width: 16px;
  flex: 0 0 16px;
  margin: 0 0 0 auto;
  color: #080808;
  font-size: 24px;
  text-align: center;
}

.staff-profile {
  border: 1px solid #e4e9e8;
  border-radius: 6px;
  margin-bottom: 16px;
  overflow: hidden;
}

.staff-profile summary {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr) 16px;
  gap: 14px;
  align-items: center;
  padding: 14px;
  cursor: pointer;
  list-style: none;
}

.staff-profile summary::-webkit-details-marker {
  display: none;
}

.staff-profile summary > img {
  width: 88px;
  height: 116px;
  object-fit: cover;
  object-position: center 20%;
  margin: 0 !important;
  border-radius: 3px;
}

.staff-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.staff-info > strong {
  font-size: 19px;
  font-weight: 600;
  line-height: 1.3;
  color: #222;
}

.staff-role {
  font-size: 11px;
  color: #668c8a;
  line-height: 1.6;
  margin-top: 5px;
}

.staff-experience {
  font-size: 11px;
  color: #777;
  line-height: 1.6;
  margin-top: 5px;
}

.staff-more {
  font-size: 11px;
  color: #7185ab;
  font-weight: 500;
  margin-top: 9px;
}

.staff-arrow {
  color: #7185ab;
  font-size: 13px;
  transition: transform 0.15s;
}

.staff-profile[open] .staff-arrow {
  transform: rotate(180deg);
}

.staff-bio {
  padding: 0 17px 16px;
  font-size: 13px;
  line-height: 1.85;
  color: #555;
  border-top: 1px solid #edf0ef;
}

.staff-bio p {
  margin: 16px 0 0;
}

.staff-profile summary:focus-visible {
  outline: 2px solid #7dafae;
  outline-offset: -3px;
}

@media (max-width: 360px) {
  .staff-profile summary {
    grid-template-columns: 72px minmax(0, 1fr) 12px;
    gap: 10px;
    padding: 12px;
  }
  .staff-profile summary > img {
    width: 72px;
    height: 105px;
  }
  .staff-info > strong {
    font-size: 17px;
  }
}

.new-page .treatment summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 18px;
  column-gap: 16px;
  row-gap: 10px;
  padding: 4px 0;
  min-height: 56px;
  align-items: start;
}

.new-page .treatment-name {
  grid-column: 1;
  grid-row: 1;
  padding: 0;
  font-size: 14px;
  line-height: 1.65;
}

.new-page .treatment-chevron {
  grid-column: 2;
  grid-row: 1;
  color: #7185ab;
  font-size: 13px;
  margin-top: 5px;
  transition: transform 0.15s;
}

.new-page .treatment[open] .treatment-chevron {
  transform: rotate(180deg);
}

.new-page .treatment .meta {
  grid-column: 1;
  grid-row: 2;
  display: flex;
  justify-content: flex-start;
  align-items: baseline;
  gap: 0;
  margin: 0;
  flex-wrap: wrap;
}

.new-page .treatment .meta > span:last-child {
  order: 0;
}

.new-page .treatment .treatment-duration {
  order: 1;
  color: #454545;
  white-space: nowrap;
}

.new-page .treatment-duration:before {
  content: '·';
  margin: 0 9px;
  color: #9a9a9a;
}

.new-page .treatment .meta strong {
  color: #7185ab;
  font-weight: 600;
}

.new-page .treatment .meta del {
  color: #999;
  margin-right: 6px;
}

.new-page .treatment .description {
  color: #696969;
}

.new-page .treatment.plain {
  padding: 22px 0;
}

.new-page .treatment.plain .meta {
  margin-top: 9px;
}

.new-page .treatment.plain .treatment-name {
  padding-right: 34px;
}

.treatment-help {
  background: #f6f9f8;
  border: 1px solid #e0e8e6;
  border-radius: 6px;
  padding: 16px;
  margin: 0 0 24px;
}

.treatment-help p {
  font-size: 13px;
  font-weight: 500;
  color: #333;
  line-height: 1.7;
  margin: 0 0 5px;
}

.treatment-help > span {
  display: block;
  font-size: 12px;
  line-height: 1.8;
  color: #737373;
}

.treatment-help > a {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 44px;
  margin-top: 7px;
  font-size: 15px;
  font-weight: 600;
  color: #7185ab;
  text-decoration: none;
}

.treatment-help i {
  font-size: 13px;
}

.treatment-filters {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  scrollbar-width: none;
  padding: 2px 1px 8px;
  -webkit-overflow-scrolling: touch;
}

.treatment-filters::-webkit-scrollbar {
  display: none;
}

.treatment-filters button {
  font-family: inherit;
  font-size: 12px;
  font-weight: 500;
  min-height: 44px;
  padding: 9px 14px;
  border: 1px solid #e0e7e5;
  border-radius: 24px;
  background: #f6f9f8;
  color: #545454;
  white-space: nowrap;
  cursor: pointer;
  flex-shrink: 0;
}

.treatment-filters button[aria-pressed='true'] {
  background: #7185ab;
  border-color: #7185ab;
  color: white;
}

.treatment-filters button:focus-visible {
  outline: 2px solid #7dafae;
  outline-offset: 2px;
}

.filter-status {
  margin: 6px 0 22px;
  font-size: 11px;
  color: #8a8a8a;
}

.category[hidden],
.treatment[hidden] {
  display: none !important;
}

.ask-price {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: 9px;
  margin-top: 6px;
  color: #7185ab;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

.ask-price i {
  font-size: 11px;
}

.unverified-info {
  font-size: 11px;
  color: #888;
  line-height: 1.7;
  margin: 0;
}

.category {
  scroll-margin-top: 16px;
}

.brand-jumps {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin: 2px 0 0;
}

.brand-jumps a {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  min-height: 40px;
  color: #668b89;
  font-size: 11px;
  font-weight: 500;
  text-decoration: none;
}

.brand-jumps a span {
  font-size: 14px;
}

.brand-jumps a:focus-visible {
  outline: 2px solid #7dafae;
  outline-offset: 3px;
}

.brand-jumps[hidden],
.brand-jumps a[hidden] {
  display: none !important;
}

.new-page .brand-jumps {
  justify-content: flex-start !important;
  align-items: center;
  padding: 0;
}

.new-page .brand-jumps a {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box;
  text-align: left !important;
  justify-content: flex-start !important;
}

.new-page .brand-jumps a:active {
  background: #f4e2e3;
}

.new-page .brand-jumps a:focus-visible {
  outline-color: #bf8690;
}

.new-page .brand-jumps a {
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: #a96570;
  text-decoration: underline;
  text-decoration-color: #e1c5cb;
  text-underline-offset: 4px;
  letter-spacing: 0;
}

.brand-description {
  font-size: 12px;
  line-height: 1.8;
  color: #818181;
  margin: 10px 0 2px;
  font-weight: 400;
}

.new-page .brand-jumps {
  margin: 12px 0 26px !important;
}

.new-page .brand-jumps a {
  padding: 6px 0 !important;
}

.new-page .treatment .meta strong {
  font-size: 17.6px;
}

.new-page .treatment .meta del {
  font-size: 13.2px;
}

.new-page .treatment .treatment-duration {
  font-size: 13.2px;
}

.new-page .brand-jumps a {
  font-size: 14px;
  min-height: 44px;
  font-weight: 500;
}

.new-page .brand-jumps {
  gap: 28px !important;
}

/* Space for the phone status bar: the app shifts the page up by about its height when scrolling */
body {
  padding-top: 50px !important;
}

/* Keep space above the first heading when the brand links row is hidden (Jumestus, Koolitused) */
.new-page .brand-jumps[hidden] {
  display: block !important;
  visibility: hidden;
  height: 0;
  overflow: hidden;
  margin: 0 0 26px !important;
}

/* Space between the page title and the help box under it */
.new-page h1 + .treatment-help {
  margin-top: 26px;
}

/* Package cards: small round arrow in the corner and a slight press effect, so it is clear they open */
.card-link {
  position: relative;
}

.card-link img {
  transition: transform 0.15s ease;
}

.card-link:active img {
  transform: scale(0.98);
}

.card-link:after {
  content: '';
  position: absolute;
  right: 12px;
  bottom: 12px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #7185ab
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E")
    center/16px no-repeat;
  pointer-events: none;
}

/* Bottom bar: light background and booking button moved right, so the app's own round back button (bottom left) has its own space and stays visible */
.stickyBottom {
  background: #fff !important;
  box-shadow:
    0 -1px 0 #ececec,
    0 -6px 18px rgba(0, 0, 0, 0.05);
}

.stickyBottom .elBTN {
  margin-left: 52px !important;
}

.booking {
  background: #fff !important;
  box-shadow:
    0 -1px 0 #ececec,
    0 -6px 18px rgba(0, 0, 0, 0.05);
  padding-left: 67px !important;
}

/* Booking button: thinner (40px) and lifted so it lines up with the app's back button */
.stickyBottom {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.stickyBottom .row {
  padding-top: 6px !important;
  padding-bottom: 21px !important;
}

.stickyBottom .elBTN {
  margin-top: 0 !important;
}

.stickyBottom .elButton {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  height: 40px;
  display: flex !important;
  align-items: center;
  justify-content: center;
}

.stickyBottom .elButton .elButtonText {
  font-size: 15px !important;
}

.booking {
  padding-top: 6px !important;
  padding-bottom: calc(21px + env(safe-area-inset-bottom)) !important;
}

.booking a {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  height: 40px;
  align-items: center;
  box-sizing: border-box;
}

/* Smaller logo at the top */
img[src='assets/0.png'] {
  width: 180px !important;
  height: auto !important;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* Package overview: logo links back to the homepage. */
.package-header {
  padding: 12px 18px 16px;
  border-bottom: 1px solid #eee;
}

.package-header a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
}

.package-header a:focus-visible {
  outline: 2px solid #7dafae;
  outline-offset: 4px;
}

/* Loading feedback for links, menu rows and image cards. */
.loading-control {
  position: relative;
}

.navigation-spinner {
  display: none;
  position: absolute;
  right: 14px;
  top: 50%;
  width: 20px;
  height: 20px;
  margin-top: -10px;
  border: 2px solid #d9e0ec;
  border-top-color: #7185ab;
  border-radius: 50%;
  box-sizing: border-box;
  animation: button-spin 0.7s linear infinite;
  pointer-events: none;
  z-index: 2;
}

.is-opening > .navigation-spinner {
  display: block;
}

.addons a.is-opening {
  background: #f5f7fb;
  border-radius: 6px;
}

.addons a.is-opening > b,
.is-opening .fa_appended {
  visibility: hidden;
}

.elButton > .navigation-spinner,
.booking a > .navigation-spinner {
  border-color: rgba(255, 255, 255, 0.4);
  border-top-color: #fff;
}

.loading-card > .navigation-spinner {
  top: auto;
  bottom: 17px;
  right: 17px;
  margin: 0;
  background: #f5f7fb;
  box-shadow: 0 0 0 6px #f5f7fb;
}

.card-link.is-opening:after {
  visibility: hidden;
}

.loading-card.is-opening > img {
  opacity: 0.9;
}

.loading-control:focus-visible {
  outline-offset: 3px;
}

@keyframes button-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .navigation-spinner {
    animation-duration: 1.8s;
  }
  .card-link img {
    transition: none;
  }
}

/* Keep menu loading feedback comfortably left of the chevron. */
.addons a > .navigation-spinner {
  right: 44px;
}
/* identity.css */
/* Shared identity styles, used by both page types. */
.home-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  text-decoration: none;
  color: inherit;
  gap: 12px;
}

.home-logo img {
  display: block;
  width: 180px;
  height: auto;
  max-height: 100px;
  object-fit: contain;
}

.home-logo.square img {
  width: 76px;
  height: 76px;
}

.home-logo.mark img {
  width: 52px;
  height: 52px;
}

.home-logo.mark span {
  font-size: 18px;
  font-weight: 500;
}

.home-logo {
  max-width: 100%;
}

.home-logo img {
  flex-shrink: 0;
}

.home-logo span {
  min-width: 0;
}

.home-logo.with-name {
  flex-direction: column;
  gap: 10px;
}

.home-logo.with-name span {
  font-size: 15.5px;
  font-weight: 500;
}

.home-logo.mark.with-name {
  flex-direction: row;
}

.home-logo.square.logo-left {
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  text-align: left;
  gap: 12px;
}

.home-logo.square.logo-left img {
  width: 52px;
  height: 52px;
  flex-shrink: 0;
}

/* Keep the approved header rhythm explicit across local and hosted rendering. */
.home-logo.with-name span {
  line-height: 1.4;
}
body.new-page {
  font-family: Poppins, sans-serif;
  font-size: 14px;
  padding-top: 50px;
  overflow-wrap: anywhere;
}

.treatment-chevron {
  width: 16px;
  height: 16px;
  display: block;
}

.new-page .treatment.has-thumb summary,
.plain-summary:has(.treatment-thumb) {
  grid-template-columns: 48px minmax(0, 1fr) 18px;
  column-gap: 12px;
}

.new-page .treatment.has-thumb .treatment-name,
.treatment.has-thumb .meta {
  grid-column: 2;
}

.new-page .treatment.has-thumb .treatment-chevron {
  grid-column: 3;
}

.treatment-thumb {
  grid-column: 1;
  grid-row: 1/3;
  width: 48px;
  height: 48px;
  border-radius: 5px;
  object-fit: cover;
  margin-top: 2px;
}

.plain-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 18px;
  gap: 10px 16px;
  align-items: start;
  min-height: 56px;
  padding: 4px 0;
}

.new-page .treatment.plain .meta {
  margin-top: 0;
}

.new-page .treatment.plain .treatment-name {
  padding: 0;
}

.new-page .treatment .meta strong {
  color: var(--pricing-accent, #7185ab);
}

.booking a {
  background: var(--pricing-accent, #7185ab);
}

.pricing-subcategory {
  margin-top: 20px;
}

.pricing-subcategory h3 {
  font-size: 15px;
  font-weight: 600;
  margin: 0;
  padding-bottom: 8px;
  border-bottom: 1px solid #e5e5e5;
}

.description p {
  margin: 0 0 12px;
}

.description ul,
.description ol {
  padding-left: 22px;
  margin: 12px 0;
}

.description a {
  color: #648e8b;
  text-decoration: underline;
}

.pricing-business {
  font-size: 16px;
  font-weight: 500;
}

.pricing-empty {
  font-size: 13px;
  color: #999;
  padding: 15px 0;
}

[data-inactive='true'] {
  opacity: 0.48;
}

.new-page .booking {
  padding-left: 67px;
}

[hidden] {
  display: none !important;
}

/* Shared identity rules come from Navigation; page content retains Pricing spacing. */
.new-page header.pricing-identity {
  display: block;
  text-align: center;
  height: auto;
  padding: 12px 18px 20px;
  margin: 0;
  border: 0;
  background: transparent;
}

.new-page .pricing-identity .home-logo img {
  max-width: none;
}

.new-page .pricing-identity .home-logo img {
  width: 180px !important;
  height: auto !important;
  margin: 0;
  object-fit: contain;
}

.new-page .pricing-identity .home-logo.square img {
  width: 76px !important;
  height: 76px !important;
}

.new-page .pricing-identity .home-logo.square.logo-left img,
.new-page .pricing-identity .home-logo.mark img {
  width: 52px !important;
  height: 52px !important;
}

.description h2 {
  font-size: 20px;
  line-height: 1.4;
  border: 0;
  margin: 16px 0 10px;
}

.description h3 {
  font-size: 17px;
  margin: 14px 0 8px;
}

.description h4 {
  font-size: 15px;
  margin: 12px 0 8px;
}

/* One sticky block measures its actual height, including long names and text zoom. */
.new-page .pricing-navigation {
  position: sticky;
  top: 0;
  z-index: 14;
  margin: 0 -18px 28px;
  background: #fff;
  box-shadow: 0 5px 12px #24352b08;
}
.new-page .treatment-filters,
.new-page .brand-jumps,
.new-page .subcategory-jumps {
  display: flex;
  flex-wrap: nowrap;
  gap: 18px;
  overflow-x: auto;
  scrollbar-width: none;
  scroll-padding-inline: 18px;
  padding: 10px 18px !important;
  margin: 0 !important;
  border: 0;
  white-space: nowrap;
}
.new-page .treatment-filters {
  gap: 7px;
}
.new-page .brand-jumps {
  padding-block: 0 !important;
}
.new-page .brand-jumps a,
.new-page .subcategory-jumps a {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  min-width: 44px;
  padding: 0 !important;
  margin: 0;
  color: #727876;
  text-decoration: none;
  border-bottom: 2px solid transparent;
  font-size: 14px;
  font-weight: 600;
}
.new-page .treatment-filters button,
.new-page .brand-jumps a,
.new-page .subcategory-jumps a {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
}
.new-page .brand-jumps a[aria-current] {
  color: #252e29;
  border-color: var(--pricing-accent);
  font-weight: 700;
}
.new-page .brand-jumps a,
.new-page .subcategory-jumps a {
  min-width: 44px;
}
.new-page .subcategory-jumps {
  padding-block: 0 !important;
  background: #fff;
}
.new-page .subcategory-jumps a {
  font-size: 12px;
  font-weight: 400;
}
.new-page .subcategory-jumps a[aria-current] {
  color: #252e29;
  border-color: #8b9d95;
  font-weight: 500;
}

.new-page [data-editor-target],
.new-page [data-subcategory] {
  scroll-margin-top: calc(var(--pricing-nav-height, 160px) + 14px);
}
.new-page .category > h2 {
  position: static;
  border-bottom: 2px solid #9bb5ac;
}
.new-page .pricing-subcategory > h3 {
  position: static;
  padding: 6px 0 6px 10px;
  border: 0;
  border-left: 2px solid #b9c9c1;
  font-size: 14px;
}
.new-page .category > .brand-description,
.new-page .pricing-subcategory > .brand-description {
  font-size: 12px;
  line-height: 1.7;
  color: #7b8580;
}
.new-page .category > .brand-description {
  padding-left: 0;
  border-left: 0;
}
/* The heading and description share a continuous rule, including their visual gap. */
.new-page .pricing-subcategory > h3 + .brand-description {
  margin-top: 0;
  padding: 10px 0 0 10px;
  border-left: 2px solid #b9c9c1;
}
/* Duration belongs to the name, including linked extras; price has its own row. */
.new-page .treatment .treatment-duration,
.related-duration,
.detail-duration {
  display: block;
  white-space: nowrap;
  overflow-x: auto;
  max-width: 100%;
  font-size: 12px;
  line-height: 1.6;
  color: #7b827e;
  font-weight: 400;
  margin-top: 4px;
  scrollbar-width: none;
}
.new-page .treatment-duration::before {
  content: none;
}
.new-page .treatment .meta {
  grid-row: 2;
}
.pricing-item-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  margin: 16px 0 4px;
  font-size: 12px;
}
.pricing-more {
  display: inline-block;
  padding: 5px 10px;
  border-radius: 18px;
  border: 1px solid var(--link-color, #69776e);
  background: transparent;
  color: var(--link-color, #69776e);
  font-size: 11px;
  font-weight: 500;
  text-decoration: none;
}
.pricing-book {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-height: 44px;
  min-width: 168px;
  max-width: 100%;
  box-sizing: border-box;
  padding: 11px 16px;
  border: 1px solid var(--link-color, #69776e);
  color: var(--link-ink, #fff);
  border-radius: 6px;
  font-size: 13px;
  font-weight: 600;
  text-align: left;
  text-decoration: none;
  background: var(--link-color, #69776e);
}
.pricing-book > span:first-child {
  overflow-wrap: anywhere;
}
.pricing-book > span:last-child {
  flex: 0 0 auto;
}
.new-page .description .pricing-more {
  color: var(--link-color, #69776e);
  text-decoration: none;
}
.new-page .description .pricing-book {
  color: var(--link-ink, #fff);
  text-decoration: none;
}
.booking a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.booking .studio-symbol,
.booking-icon {
  width: 18px;
  height: 18px;
  object-fit: contain;
  flex: 0 0 auto;
}
.pricing-item-actions button {
  font-family: inherit;
  opacity: 1;
  cursor: default;
}
.new-page .related-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  margin: 0;
  padding: 12px 0;
  border-bottom: 1px solid #edf0ed;
}
.related-name {
  display: block;
  color: #4b514e;
  font-size: 13px;
  text-decoration: none;
}
.related-price {
  white-space: nowrap;
  font-size: 12px;
}
.related-price del {
  display: block;
  font-size: 10px;
}
.related-item .pricing-more {
  margin-top: 6px;
}
.pricing-preview-placeholder {
  border: 1.5px dashed #b6c4aa;
  border-radius: 7px;
  background: #f7f9f4;
  color: #8a977f;
  min-height: 90px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 8px;
  text-align: center;
  padding: 18px;
  margin: 15px 0;
  font-size: 12px;
  scroll-margin-top: 125px;
}

.pricing-preview-placeholder strong {
  font-weight: 500;
}

.pricing-preview-placeholder span {
  font-size: 11px;
  max-width: 260px;
}

.treatment-filters .pricing-preview-placeholder {
  flex: 0 0 220px;
  min-height: 44px;
  padding: 8px 14px;
  margin: 0;
}

.treatment-filters:has(.pricing-preview-placeholder) {
  align-items: center;
}

.treatment-filters .pricing-preview-placeholder span {
  display: none;
}

.preview-scroll-anchor {
  display: block;
  height: 0;
  pointer-events: none;
  scroll-margin-top: 0;
}

html,
body {
  overscroll-behavior-y: contain;
}

.help-contacts > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
}

.treatment-help .help-contacts a {
  color: var(--contact-color);
  font-size: var(--contact-size);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.help-contacts .contact-action {
  border: 1px solid currentColor;
  border-radius: 7px;
  padding: 6px 10px;
  white-space: nowrap;
  font-size: 12px !important;
}

.treatment-addons {
  border-top: 1px solid #e5e9e6;
  margin-top: 16px;
  padding-top: 10px;
}

.treatment-addons h4 {
  font-size: 13px;
}

.help-contacts .contact-symbol {
  width: 1.1em;
  height: 1.1em;
  vertical-align: -0.16em;
  margin-right: 0.2em;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

/* Fill the chosen filter; outline the scroll context while browsing All. */
.new-page .treatment-filters button {
  background: transparent;
}
.new-page .treatment-filters button[aria-pressed='true'] {
  background: var(--filter-color, var(--pricing-accent));
  border-color: var(--filter-color, var(--pricing-accent));
  color: var(--filter-ink, #fff);
  box-shadow: none;
}
.new-page .treatment-filters button[data-in-view]:not([aria-pressed='true']) {
  background: transparent;
  border-color: var(--filter-color, var(--pricing-accent));
  color: var(--filter-color, var(--pricing-accent));
  box-shadow: inset 0 0 0 1px var(--filter-color, var(--pricing-accent));
}
.pricing-more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.pricing-video-dialog {
  position: fixed;
  width: min(92vw, 680px);
  max-width: calc(100vw - 24px);
  max-height: calc(100dvh - 32px);
  overflow: auto;
  border: 1px solid #dce4df;
  border-radius: 12px;
  padding: 40px 14px 16px;
  background: #fff;
  color: #454e48;
  box-sizing: border-box;
}
.pricing-video-dialog::backdrop {
  background: #101913a8;
}
.pricing-video-dialog iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  border: 0;
  background: #111;
  margin-bottom: 14px;
}
.pricing-video-close {
  position: absolute;
  top: 7px;
  right: 10px;
  border: 0;
  background: none;
  color: inherit;
  font-size: 25px;
  cursor: pointer;
  padding: 0 8px;
}

/* The general booking slot follows the treatment being read. Native app back space stays free. */
.booking.is-treatment-booking {
  display: flex;
  align-items: center;
  gap: 12px;
}
.booking-context {
  flex: 1;
  min-width: 0;
  text-align: left;
}
.booking-context strong {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.35;
  color: #252d29;
}
.booking-context small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
  line-height: 1.5;
  color: #737b76;
}
.booking .booking-context-action {
  flex: 0 1 auto;
  min-width: 112px;
  max-width: 48%;
  height: auto;
  min-height: 44px;
  margin: 0;
  padding-left: 12px;
  padding-right: 12px;
  justify-content: space-between;
  gap: 12px;
  text-align: left;
  font-size: 12px;
  border-radius: 6px;
}
.booking-context-action > span:last-child {
  flex: none;
}

/* ---- Studio additions: everything above is Kirill's Codex file (303cf35) as it is. ---- */

/* No scroll anchoring on the price list. When the sticky block grows or shrinks by the subcategory
   row, Chrome and Firefox would move the page by the same amount to keep the text in place; the
   reading position then crossed the category boundary back and the row flipped forever (Tester 2,
   #88). Safari never anchors, so every browser now behaves the same. */
html,
body {
  overflow-anchor: none;
}

/* A very long category name is cut with "…" inside its row instead of widening the page on a phone:
   additions.css sets max-width: none !important on these links, which Codex's own rule loses to. */
.new-page .treatment-filters button,
.new-page .brand-jumps a,
.new-page .subcategory-jumps a {
  max-width: 100% !important;
}

/* Older Safari ignores scrollbar-width: the sideways rows stay without a scrollbar there too. */
.new-page .treatment-filters::-webkit-scrollbar,
.new-page .brand-jumps::-webkit-scrollbar,
.new-page .subcategory-jumps::-webkit-scrollbar,
.new-page .treatment .treatment-duration::-webkit-scrollbar {
  display: none;
}

/* A treatment's add-on rows (name and duration left, price right) until linked rows (F08) arrive. */
.treatment-addons > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: 10px 0;
  font-size: 13px;
}

.new-page .treatment-addons > div > span:first-child {
  min-width: 0;
}

.new-page .treatment-addons > div > span:last-child {
  flex-shrink: 0;
  white-space: nowrap;
}

/* A shared treatment link (?service=…) briefly marks the treatment it opened. */
.new-page .treatment.is-shared {
  border-radius: 6px;
  animation: shared-treatment 2.4s ease-out;
}

@keyframes shared-treatment {
  0%,
  50% {
    box-shadow: 0 0 0 3px var(--pricing-accent, #7185ab);
  }
  100% {
    box-shadow: 0 0 0 3px transparent;
  }
}

@media (prefers-reduced-motion: reduce) {
  .new-page .treatment.is-shared {
    animation: none;
    box-shadow: 0 0 0 3px var(--pricing-accent, #7185ab);
  }
}

/* The note a shared link shows when its treatment is no longer on the list. */
.new-page .pricing-notice {
  margin: 0 0 16px;
  padding: 10px 14px;
  border-radius: 8px;
  background: #f7f9f4;
  color: #5f6b57;
  font-size: 14px;
  line-height: 1.4;
}

/* Kirill, 12 Nov 2026 (F07 look only; Codex's show/hide rules are unchanged): the slot is one fixed,
   opaque bar of one height in both states, flush with the bottom edge; the native app's back-button
   space (left) and the phone's safe area (bottom) sit inside it as padding, so no text is ever
   visible below it; a soft top edge; an opaque apron below it and its own compositor layer, so the
   scaled preview frame never shows text under it for a frame. Hiding and showing is a 200 ms slide
   down and up (a transform, no layout change), never a pop or a gap. */
.new-page .booking {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  min-height: 76px;
  padding-bottom: calc(21px + env(safe-area-inset-bottom, 0px)) !important;
  background: #fff !important;
  box-shadow:
    0 -1px 0 #ececec,
    0 -6px 18px rgba(0, 0, 0, 0.05);
  transform: translateY(0);
  will-change: transform;
  transition:
    transform 0.2s ease,
    visibility 0s linear 0s;
}
.new-page .booking.is-off {
  transform: translateY(110%);
  visibility: hidden;
  transition:
    transform 0.2s ease,
    visibility 0s linear 0.2s;
}
@media (prefers-reduced-motion: reduce) {
  .new-page .booking,
  .new-page .booking.is-off {
    transition: none;
  }
}
.new-page .booking > a {
  flex: 1 1 auto;
}
.new-page .booking::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  height: 120px;
  background: #fff;
}
.new-page .booking.is-treatment-booking > .booking-context {
  flex: 1 1 auto;
}
.new-page .booking.is-treatment-booking > .booking-context-action {
  flex: 0 1 auto;
}
