/* Public company/specialist profile only. Both routes share this presentation. */
body.public-profile-v16 { font-size:16px; line-height:1.5; background:#fafafa; }
.public-profile-v16 > .header .header__inner { width:100%; max-width:1200px; height:64px; gap:24px; padding-inline:24px; justify-content:flex-start; }
.public-profile-v16 .header__logo { flex:0 0 148px; width:148px; }
.public-profile-v16 .header__logo-img { width:148px; height:40px; object-fit:contain; }
.public-profile-v16 .home-search--header { flex:1; max-width:650px; height:46px; min-height:46px; margin:0; padding:4px 4px 4px 14px; gap:10px; border-radius:13px; }
.public-profile-v16 .home-search__input { min-height:36px; padding:0; font-size:14px; border:0; background:transparent; }
.public-profile-v16 .home-search__prefix svg { width:20px; height:20px; }
.public-profile-v16 .home-search__submit { flex:0 0 36px; width:36px; min-width:36px; height:36px; min-height:36px; padding:0 8px; border:0; color:#6b7280; background:transparent; }
.public-profile-v16 .home-search__submit svg { width:20px; height:20px; }
.public-profile-v16 .header__cta { display:contents; }
.public-profile-v16 .header__cta > .header-account-link { width:40px; height:40px; min-width:40px; min-height:40px; flex:0 0 40px; display:grid; place-items:center; border:0; border-radius:0; padding:0; gap:normal; color:#1a1a1a; background:transparent; box-shadow:none; font-size:16px; font-weight:400; line-height:24px; }
.public-profile-v16 .header-account-link svg { width:20px; height:20px; }
.public-profile-v16 .header__cta > .btn:not(.header-account-link) { width:170px; height:46px; min-height:46px; padding:11px 18px; font-size:14px; line-height:1.35; border:1px solid #dedfe2; border-radius:11px; background:#fff; color:#31343a; }
.public-profile-language { float:right; }
.public-profile-v16 .main--company-profile { padding-top:24px; }
.public-profile-v16 .main--company-profile > .container { width:100%; max-width:808px; padding-inline:24px; }
.public-profile-v16 .catalog-card-detail--company { max-width:760px; }
.public-profile-v16 .back-btn { display:inline-flex; align-items:center; min-height:44px; padding:0; margin:0 0 14px; gap:6px; color:#6b7280; font-size:14px; font-weight:500; line-height:1.5; }
.public-profile-v16 .back-btn svg { width:22px; height:22px; }
.public-profile-v16 .company-profile__header .company-profile__avatar { background:#e9ebee; color:#626872; font-size:22px; font-weight:500; line-height:1.5; }
.public-profile-v16 .company-avatar__initials { color:inherit; line-height:1.5; }
.public-profile-v16 .company-profile__title { font-size:26px; }
.public-profile-v16 .company-profile__header .company-profile__favorite { border:1px solid #dedfe2; background:#fff; border-radius:11px; padding:0; color:#31343a; font-size:14px; line-height:1.35; }
.public-profile-v16 .company-profile__favorite svg { display:block; width:22px; height:22px; fill:none; }
.public-profile-v16 .company-profile__favorite.active svg { fill:currentColor; }
.public-profile-v16 .company-profile__address { margin-top:18px; font-size:14px; }
.public-profile-v16 .company-profile__address-link { display:inline; min-height:0; padding:0; }
.public-profile-v16 .company-profile__address-link svg { display:none; }
.public-profile-v16 .company-profile__directions { margin-top:16px; }
.public-profile-v16 .company-profile__directions-label { margin:0; font-size:13px; line-height:1.5; }
.public-profile-v16 .company-profile__directions-list { margin-top:8px; padding:2px 0 7px; }
.public-profile-v16 .company-profile__direction { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:40px; font-size:13px; font-weight:500; line-height:1.3; }
.public-profile-v16 .company-profile__description { font-size:15px; line-height:1.65; margin-top:18px; display:block; overflow:visible; }
.public-profile-v16 .company-profile__description .expandable-text__toggle:not([hidden]) { display:inline-flex; }
.public-profile-v16 .company-profile__description .expandable-text__toggle[hidden] { display:none; }
.public-profile-v16 .company-profile__more { display:inline-flex; align-items:center; min-height:40px; background:transparent; border:0; padding:4px 0; color:#6b7280; font-size:14px; font-weight:500; line-height:1.5; text-align:left; }
.public-profile-v16 #company-profile-extra[hidden] { display:none; }
.public-profile-v16 .catalog-card-hero.company-profile { margin-bottom:0; }
.public-profile-v16 .public-detail-actions > [data-detail-action] { border-radius:11px; line-height:1.35; }
.public-profile-v16 .public-detail-actions > .btn-secondary { border-color:#dedfe2; color:#31343a; background:#fff; }
.public-profile-v16 .public-detail-actions > [data-detail-action="contacts"] { flex:0 0 auto; padding-inline:18px; }
.public-profile-v16 .public-detail-actions > [data-detail-action="booking"] { padding-inline:18px; }
.public-profile-v16 .public-detail-actions > [data-detail-action="share"] { flex-basis:46px; width:46px; padding:0; }
.public-profile-v16 .public-detail-actions:not(:has([data-detail-action="booking"])) > [data-detail-action="contacts"] { flex:1; }
.public-profile-v16 .public-profile-booking-unavailable { font-size:13px; line-height:1.5; color:#6b7280; margin-top:16px; }
.public-services-empty { max-width:500px; padding:40px 20px; margin:auto; text-align:center; }
.public-services-empty > svg { width:34px; height:34px; color:#767b84; margin-bottom:18px; }
.public-services-empty > h2 { font-size:20px; font-weight:600; letter-spacing:-.025em; margin:0 0 10px; }
.public-services-empty > p { color:#6b7280; font-size:14px; line-height:1.5; }
.public-profile-v16 .public-profile-tabs { margin-top:28px; }
.public-profile-v16 .public-profile-tabs__panel { padding-top:0; min-height:180px; }
.public-profile-v16 .public-booking-service { display:grid; grid-template-columns:minmax(0,1fr) auto auto; padding:18px 0; gap:16px; border-color:#e5e7eb; }
.public-profile-v16 .public-booking-service h3 { font-size:16px; font-weight:700; line-height:1.5; letter-spacing:0; }
.public-profile-v16 .public-booking-service p { margin:4px 0 0; font-size:13px; line-height:1.5; }
.public-profile-v16 .public-booking-service__price { font-size:15px; font-weight:600; line-height:1.5; }
.public-profile-v16 .public-booking-service__action { min-height:38px; font-size:13px; line-height:1.35; }
.public-profile-v16 .public-profile-more-services { display:flex; align-items:center; justify-content:flex-start; gap:5px; width:100%; min-height:44px; margin-top:12px; padding:16px 0; border:0; border-radius:0; background:transparent; color:#59616c; font-size:14px; font-weight:500; line-height:1.5; }
.public-profile-v16 .public-profile-more-services svg { width:16px; height:16px; }
.public-profile-v16 .public-profile-photos__caption { margin-top:8px; font-size:13px; color:#6b7280; }
.public-profile-v16 .catalog-card-offers { margin-top:32px; }
.public-profile-v16 .catalog-card-offers > .section-header { display:block; margin-bottom:16px; }
.public-profile-v16 .catalog-card-offers h2 { width:100%; font-size:21px; font-weight:600; line-height:1.3; letter-spacing:-.025em; }
.public-profile-v16 .catalog-card-offers__grid--listings { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 18px; }
@media(min-width:1024px) { .public-profile-v16 .catalog-card-offers__grid--listings { grid-template-columns:repeat(3,minmax(0,1fr)); } }
.public-profile-v16 .catalog-card-offers__empty { margin:0; font-size:14px; line-height:1.6; color:#858b94; }
.public-profile-v16 .catalog-card-offers .listing-card__photo { background-color:#eceef1; }
.public-profile-v16 .company-profile .contacts-modal__sheet { width:540px; max-width:calc(100vw - 32px); border-radius:20px; }
.public-profile-v16 .company-profile .contacts-modal__title { font-size:21px; font-weight:600; }
.public-profile-v16 .company-profile .contacts-modal__header { padding:20px 22px; }
.public-profile-v16 .company-profile .contacts-modal__body { padding-inline:22px; }
.public-services-dialog { width:min(540px,calc(100% - 32px)); max-height:90dvh; overflow:auto; padding:22px; border:1px solid #e9e9e9; border-radius:20px; background:#fff; color:#1a1a1a; box-shadow:0 24px 80px #15202b24; }
.public-services-dialog::backdrop { background:#18202b45; backdrop-filter:blur(3px); }
.public-services-dialog__header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:20px; }
.public-services-dialog__header h2 { font-size:21px; font-weight:600; line-height:1.3; letter-spacing:-.025em; margin:0; }
.public-services-dialog__close { flex:0 0 44px; height:44px; border:0; background:transparent; font-size:28px; }
.public-services-dialog__service + .public-services-dialog__service { margin-top:22px; padding-top:22px; border-top:1px solid #e5e7eb; }
.public-services-dialog__service h3 { font-size:18px; font-weight:600; }
.public-services-dialog__description { font-size:13px; color:#6b7280; line-height:1.5; margin:8px 0 16px; }
.public-services-dialog__offering { display:flex; align-items:center; gap:16px; padding:16px; margin-top:10px; border:1px solid #e5e7eb; border-radius:12px; }
.public-services-dialog__offering > div { min-width:0; flex:1; }
.public-services-dialog__offering strong { font-size:15px; font-weight:500; }
.public-services-dialog__offering p { font-size:13px; color:#6b7280; margin-top:5px; overflow-wrap:anywhere; }
/* The four steps show the existing real draft and preserve native form fields. */
body.gb-in-flow .catalog-card-detail,body.gb-in-flow #back-btn,body.gb-in-flow .account-bottom-nav { display:none; }
body.gb-in-flow #guest-entry { max-width:780px; padding:0; }
body.gb-in-flow .main.main--catalog { padding-top:0; padding-bottom:115px; }
body.gb-in-flow .main--company-profile > .container { max-width:828px; }
body.gb-in-flow > .header { position:static; height:40px; margin:12px 0 8px; background:transparent; }
body.gb-in-flow > .header .header__inner { width:calc(100% - 100px); max-width:1380px; height:40px; padding:0; justify-content:space-between; gap:0; }
body.gb-in-flow .home-search,body.gb-in-flow .header__cta > .header-account-link { display:none; }
body.gb-in-flow .header__logo { display:inline-flex; align-items:center; gap:7px; width:auto; flex:0 0 auto; min-height:40px; font-size:14px; line-height:1.5; color:#626973; }
body.gb-in-flow .header__logo svg { width:17px; height:17px; }
body.gb-in-flow .header__cta > .btn:not(.header-account-link) { display:inline-flex; align-items:center; gap:7px; width:auto; height:40px; min-height:40px; padding:0; border:0; background:transparent; color:#626973; font-size:14px; line-height:1.5; }
body.gb-in-flow .header__cta > .btn svg { width:17px; height:17px; }
body.gb-in-flow #booking-platform-brand { padding-bottom:100px; }
body.gb-in-flow #guest-change-service { display:none; }
.gb-flow-back { display:inline-flex; align-items:center; gap:6px; min-height:44px; border:0; background:transparent; padding:0; margin:0 0 14px; color:#6b7280; font-size:14px; font-weight:500; }
.gb-flow-back svg { width:20px; height:20px; }
.gb-page #guest-flow-meta { margin:0; color:#6b7280; font-size:13px; line-height:1.5; }
.gb-flow-progress { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:5px; margin:12px 0 25px; }
.gb-flow-progress span { height:3px; border-radius:10px; background:#e6e8eb; }
.gb-flow-progress .done { background:#111; }
.gb-page #guest-flow-title { margin:0 0 24px; font-size:28px; font-weight:600; line-height:1.18; letter-spacing:-.025em; }
.gb-page #guest-offering-step h3 { margin:24px 0 12px; font-size:18px; font-weight:600; }
.gb-page #guest-offering-step h3:first-child { margin-top:0; }
.gb-flow-choice { display:block; border:1px solid #e5e7eb; border-radius:12px; background:#fff; color:#1a1a1a; padding:16px; margin:10px 0; text-decoration:none; }
.gb-flow-choice.selected { border-color:#111; }
.gb-flow-choice:focus-visible { outline:2px solid #111; outline-offset:3px; }
.gb-flow-choice strong { font-size:15px; font-weight:500; }
.gb-page .gb-flow-choice p { margin:5px 0 0; font-size:13px; color:#6b7280; }
.gb-page #guest-booking-calendar { max-width:520px; }
.gb-booking-month-head { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:16px; }
.gb-page .gb-booking-month-head h2 { font-size:20px; margin:0; }
.gb-calendar-arrow { width:46px; height:44px; padding:9px 14px; display:grid; place-items:center; background:#fff; border:1px solid #e6e7e9; border-radius:10px; font-size:13px; font-weight:500; line-height:1.3; }
.gb-calendar-arrow svg { width:16px; height:16px; }
.gb-booking-weekdays,.gb-booking-month-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; }
.gb-booking-weekdays { margin-bottom:8px; }
.gb-booking-weekdays span { text-align:center; font-size:12px; line-height:18px; color:#6b7280; padding:0; }
.gb-page .gb-booking-month-days button { height:44px; min-height:44px; min-width:0; padding:1px 6px; border:1px solid transparent; border-radius:10px; color:#3b414a; background:transparent; font-size:14px; font-weight:500; line-height:21px; }
.gb-page .gb-booking-month-days button.selected { background:#202329; color:#fff; }
.gb-page .gb-booking-month-days button:disabled { color:#9ca3af; opacity:.45; }
.gb-page .gb-booking-horizon { margin:12px 0 0; font-size:13px; line-height:1.5; color:#6b7280; }
.gb-date-fallback { float:right; margin:24px 0 0 8px; font-size:13px; color:#6b7280; }
.gb-date-fallback summary { cursor:pointer; width:max-content; min-height:24px; }
.gb-page .gb-selected-date { margin:24px 0 8px; font-size:16px; line-height:24px; font-weight:600; }
.gb-page #guest-timezone { margin:0; line-height:1.5; }
.gb-page #guest-time-step > .form-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.gb-page #guest-time-step .gb-slots { max-width:520px; grid-template-columns:repeat(4,minmax(0,1fr)); margin:16px 0 0; }
.gb-page .gb-flow-footer { position:fixed; left:50%; bottom:0; transform:translateX(-50%); width:780px; max-width:calc(100% - 48px); z-index:2; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 0; margin:0; border-top:1px solid #e5e7eb; background:#fafafa; }
.gb-page .gb-flow-footer > span { font-size:13px; font-weight:400; color:#6b7280; }
.gb-page .gb-flow-footer .btn { min-height:44px; padding:9px 14px; border-radius:10px; font-size:13px; font-weight:500; line-height:1.3; }
.gb-page #guest-review-step .gb-summary { padding:0 0 18px; border:0; border-bottom:1px solid #e5e7eb; border-radius:0; background:transparent; }
.public-profile-v16 .publication-report-dialog[open] { width:min(540px,calc(100vw - 32px)); border-radius:20px; box-shadow:0 24px 80px #15202b24; }
.public-profile-v16 .publication-report-form h2 { font-size:21px; font-weight:600; line-height:1.3; letter-spacing:-.025em; }
.public-profile-v16 .publication-report-dialog::backdrop { background:#18202b45; backdrop-filter:blur(3px); }
@media(max-width:768px) {
  .public-profile-v16 .account-bottom-nav { left:12px; right:12px; width:calc(100% - 24px); max-width:440px; margin-inline:auto; transform:none; grid-template-columns:repeat(5,minmax(0,1fr)); }
  .public-profile-v16 .account-bottom-nav__item { min-width:0; padding-inline:2px; }
  .public-profile-v16 .account-bottom-nav__item svg { width:23px; height:23px; }
  .public-profile-v16 .account-bottom-nav__item span { font-size:9px; }
  .public-profile-header-account { display:none; }
  .public-profile-v16 .main.main--catalog { padding:18px 0 42px; }
  .public-profile-v16 .main--company-profile > .container { padding-inline:16px; }
  .public-profile-v16 .main--catalog > .container > .back-btn { margin-bottom:14px; }
  .public-profile-v16 .company-profile__title { font-size:24px; }
  .public-profile-v16 .public-profile-tabs { margin-top:24px; }
  .public-profile-v16 .public-booking-service { grid-template-columns:minmax(0,1fr) auto; gap:9px; }
  .public-profile-v16 .public-booking-service__price { font-size:14px; font-weight:500; }
  .public-profile-v16 .catalog-card-detail .public-detail-actions { gap:10px; }
  .public-profile-v16 .public-detail-actions > [data-detail-action="contacts"],.public-profile-v16 .public-detail-actions > [data-detail-action="booking"] { padding-inline:12px; }
  .public-profile-v16 .company-profile .contacts-modal__sheet { top:auto; left:0; right:0; bottom:0; width:100%; max-width:100%; border-radius:20px 20px 0 0; transform:translateY(100%); }
  .public-profile-v16 .company-profile .contacts-modal.active .contacts-modal__sheet { transform:translateY(0); }
  .public-profile-v16 .company-profile .contacts-modal__header { padding:18px; }
  .public-profile-v16 .company-profile .contacts-modal__body { padding-inline:18px; }
  .public-profile-v16 .publication-report-dialog[open] { inset:auto 0 var(--bridge-keyboard-inset,0px); margin:0; transform:none; width:100%; max-width:100%; max-height:calc(var(--bridge-viewport-height,100dvh) - 12px); padding:16px 18px calc(20px + env(safe-area-inset-bottom,0px)); border-radius:20px 20px 0 0; }
  .public-profile-v16 .catalog-card-offers h2 { font-size:21px; }
  .public-profile-v16 .catalog-card-offers__grid--listings { gap:22px 12px; }
  .public-services-dialog { width:100%; max-width:100%; max-height:92dvh; margin:auto 0 0; border-radius:20px 20px 0 0; padding:20px 18px calc(20px + env(safe-area-inset-bottom)); }
  .gb-page #guest-flow-title { font-size:25px; }
  body.gb-in-flow > .header { display:none; }
  body.gb-in-flow .main.main--catalog { padding:12px 0 115px; }
  body.gb-in-flow .main--company-profile > .container { max-width:none; padding-inline:14px; }
  .gb-page .gb-booking-month-head h2 { font-size:17px; }
  .gb-page .gb-flow-footer { left:0; right:0; transform:none; width:100%; max-width:none; margin:0; padding:14px 16px calc(20px + env(safe-area-inset-bottom)); }
  .gb-page .gb-flow-footer .btn { min-height:48px; font-size:16px; }
}
@media(max-width:359px) {
  .public-profile-v16 .main--company-profile > .container { padding-inline:14px; }
  .public-profile-v16 .company-profile__title { font-size:21px; }
  .public-profile-v16 .company-profile__header { grid-template-columns:64px minmax(0,1fr) 40px; }
  .public-profile-v16 .company-profile__header .company-profile__favorite { width:40px; height:44px; min-width:40px; }
  .public-profile-v16 .company-profile__header .company-profile__avatar { font-size:22px; }
  .public-profile-v16 .catalog-card-detail .public-detail-actions { gap:7px; }
  .public-profile-v16 .public-detail-actions > [data-detail-action="contacts"],.public-profile-v16 .public-detail-actions > [data-detail-action="booking"] { padding-inline:10px; }
}

.public-profile-v16 .company-profile__addresses { margin-top:14px; font-size:13px; color:#626b77; }
.public-profile-v16 .company-profile__addresses > summary { display:flex; align-items:center; gap:7px; width:fit-content; max-width:100%; padding:3px 0; cursor:pointer; list-style:none; border:0; background:transparent; box-shadow:none; }
.public-profile-v16 .company-profile__addresses > summary::-webkit-details-marker { display:none; }
.public-profile-v16 .company-profile__addresses > summary span { min-width:0; overflow-wrap:anywhere; }
.public-profile-v16 .company-profile__addresses > summary svg { display:block; width:16px; height:16px; flex:none; }
.public-profile-v16 .company-profile__addresses[open] > summary svg { transform:rotate(180deg); }
.public-profile-v16 .company-profile__addresses > div { display:grid; gap:9px; margin-top:10px; }
.public-profile-v16 .company-profile__addresses > div > div { display:flex; align-items:baseline; gap:10px; min-width:0; }
.public-profile-v16 .company-profile__addresses small { flex:0 0 auto; color:#8a9099; font-size:12px; }
.public-profile-v16 .company-profile__addresses a { min-width:0; overflow-wrap:anywhere; color:#626b77; text-decoration:none; }
.public-profile-v16 .company-profile__addresses a svg { display:none; }
.public-profile-salons { display:grid; gap:10px; margin:12px 0; }
.public-profile-salon { display:flex; flex-direction:column; gap:3px; color:#7a828c; font-size:13px; }
.public-profile-salon > strong { color:#434b55; font-size:13px; font-weight:500; }
.public-profile-salon summary { display:flex; align-items:center; gap:8px; list-style:none; cursor:pointer; }
.public-profile-salon summary::-webkit-details-marker { display:none; }
.public-profile-salon summary svg { width:15px; height:15px; flex:none; }
.public-profile-salon p { margin:5px 0; }

.company-profile__address[hidden],.company-profile__addresses[hidden],.public-profile-salons[hidden]{display:none!important}
