/* Форма/календарь записи. Наследует токены seo.css (--acid, --line, --pad). */
.booking-hero h1{margin-bottom:.3em}
.booking-wrap{max-width:760px;margin:0 auto}
.booking-form[hidden],.bf-addon[hidden],.bf-step[hidden],.bf-done[hidden],.bf-waitlist-form[hidden]{display:none!important}
.bf-steplabel{font:600 11px/1 'Manrope',sans-serif;text-transform:uppercase;letter-spacing:.14em;color:rgba(43,34,40,.72);margin:0 0 20px}

/* Календарь */
.bf-calendar{display:flex;flex-direction:column;gap:26px}
.bf-waitlist{margin-top:18px;border:1.5px solid rgba(35,29,33,.34);border-radius:16px;background:rgba(255,255,255,.3);overflow:hidden}
.bf-waitlist-toggle{width:100%;min-height:58px;border:0;background:transparent;color:inherit;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:left;font:500 14px/1.35 'Manrope',sans-serif;cursor:pointer;transition:background .2s}
.bf-waitlist-toggle:hover,.bf-waitlist-toggle.is-open{background:rgba(255,255,255,.55)}
.bf-waitlist-toggle:focus-visible{outline:3px solid #4c293f;outline-offset:-4px}
.bf-waitlist-toggle i{width:28px;height:28px;border:1px solid rgba(35,29,33,.4);border-radius:50%;display:grid;place-items:center;font:400 18px/1 'Inter',sans-serif;flex:none}
.bf-waitlist-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:18px;border-top:1px solid rgba(35,29,33,.25)}
.bf-waitlist-hint{grid-column:1/-1;margin:0 0 2px;font-size:13px;line-height:1.45;opacity:.72}
.bf-waitlist-form .bf-field:first-of-type{grid-column:1/-1}
.bf-waitlist-form .bf-field{display:flex;flex-direction:column;gap:8px}
.bf-waitlist-form button[type=submit]{width:max-content;min-height:46px;background:transparent;cursor:pointer}
.bf-waitlist-form .bf-status{grid-column:1/-1}
.bf-loading,.bf-empty{opacity:.7;font-size:15px}
.bf-day-date{font:500 15px/1 'Manrope',sans-serif;text-transform:capitalize;margin-bottom:12px;opacity:.85}
.bf-times{display:flex;flex-wrap:wrap;gap:10px}
.bf-time{min-height:44px;background:rgba(255,255,255,.42);border:1.5px solid rgba(35,29,33,.38);color:inherit;
  box-shadow:0 1px 0 rgba(255,255,255,.55),0 2px 8px rgba(35,29,33,.05);
  font:500 16px/1 'Inter',sans-serif;padding:12px 18px;border-radius:10px;cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s,transform .1s}
.bf-time:hover{border-color:rgba(35,29,33,.7);background:rgba(255,255,255,.7);box-shadow:0 3px 12px rgba(35,29,33,.09)}
.bf-time:active{transform:scale(.96)}
.bf-time:focus-visible{outline:3px solid var(--acid,#d9ff78);outline-offset:3px;border-color:#272126;background:rgba(255,255,255,.75)}

/* Форма деталей */
.booking-form{display:flex;flex-direction:column;gap:32px}
.bf-chosen{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid var(--acid,#d9ff78);border-radius:12px;background:rgba(217,255,120,.06)}
.bf-chosen span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;opacity:.7}
.bf-chosen b{font:500 20px/1 'Manrope',sans-serif}
.bf-group{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}
.bf-group legend{font:600 11px/1 'Manrope',sans-serif;text-transform:uppercase;letter-spacing:.14em;opacity:.7;padding:0 0 4px}
.bf-field{display:flex;flex-direction:column;gap:8px}
.bf-field>span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;opacity:.7}
.bf-field input,.bf-field select,.bf-contact input,.bf-contact select{
  width:100%;box-sizing:border-box;background:rgba(255,255,255,.5);border:1.5px solid rgba(35,29,33,.5);
  box-shadow:0 1px 0 rgba(255,255,255,.55),0 2px 8px rgba(35,29,33,.05);
  color:inherit;font:400 16px/1.4 'Inter',sans-serif;padding:14px 16px;border-radius:12px;transition:border-color .2s,background .2s,box-shadow .2s}
.bf-field input:hover,.bf-field select:hover,.bf-contact input:hover,.bf-contact select:hover{border-color:rgba(35,29,33,.82);background:rgba(255,255,255,.76);box-shadow:0 3px 12px rgba(35,29,33,.09)}
.bf-field input:focus,.bf-field select:focus,.bf-contact input:focus,.bf-contact select:focus{outline:none;border-color:#272126;background:rgba(255,255,255,.75);box-shadow:0 0 0 3px var(--acid,#d9ff78),0 3px 12px rgba(35,29,33,.09)}
.bf-field input:focus:not(:focus-visible),.bf-field select:focus:not(:focus-visible),.bf-contact input:focus:not(:focus-visible),.bf-contact select:focus:not(:focus-visible){box-shadow:0 3px 12px rgba(35,29,33,.09)}
.bf-field input:focus-visible,.bf-field select:focus-visible,.bf-contact input:focus-visible,.bf-contact select:focus-visible{outline:3px solid #4c293f;outline-offset:3px;box-shadow:0 3px 12px rgba(35,29,33,.09)}
.bf-contact{display:flex;gap:12px}
.bf-contact select{flex:0 0 140px}
.bf-contact input{flex:1 1 auto}

.bf-services{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.bf-service{position:relative;display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1.5px solid rgba(35,29,33,.42);border-radius:14px;background:rgba(255,255,255,.28);cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s}
.bf-service input{position:absolute;opacity:0;pointer-events:none}
.bf-service b{font:500 17px/1.1 'Manrope',sans-serif}
.bf-service span{font-size:13px;opacity:.65}
.bf-service:hover{border-color:rgba(35,29,33,.78);background:rgba(255,255,255,.7);box-shadow:0 3px 12px rgba(35,29,33,.08)}
.bf-service:has(input:checked){border-color:#272126;background:rgba(217,255,120,.18);box-shadow:inset 0 0 0 2px var(--acid,#d9ff78)}
.bf-service:has(input:focus-visible){outline:3px solid #4c293f;outline-offset:3px}

/* Месячный календарь: доступны только дни со свободными окнами. */
.bf-cal-toolbar{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;margin-bottom:18px}.bf-cal-toolbar strong{text-align:center;font:500 clamp(20px,4vw,30px)/1 'Manrope',sans-serif}.bf-cal-toolbar button{min-height:42px;border:1.5px solid rgba(35,29,33,.42);border-radius:999px;background:rgba(255,255,255,.28);color:inherit;padding:0 15px;cursor:pointer;transition:border-color .2s,background .2s}.bf-cal-toolbar button:hover{border-color:rgba(35,29,33,.78);background:rgba(255,255,255,.7)}.bf-cal-toolbar button:focus-visible{outline:3px solid #4c293f;outline-offset:3px}.bf-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.bf-weekday{text-align:center;padding:5px;font:600 10px/1 'Manrope',sans-serif;text-transform:uppercase;opacity:.55}.bf-cal-day{min-height:68px;border:1px solid transparent;border-radius:12px;background:transparent;color:inherit;display:flex;align-items:flex-start;justify-content:space-between;padding:9px;opacity:.25}.bf-cal-day:disabled{cursor:default}.bf-cal-day.is-outside{opacity:.12}.bf-cal-day.is-available{opacity:1;cursor:pointer;border:1.5px solid rgba(35,29,33,.5);background:rgba(255,255,255,.5);box-shadow:0 1px 0 rgba(255,255,255,.5),0 2px 8px rgba(35,29,33,.04)}.bf-cal-day.is-available:hover{border-color:rgba(35,29,33,.82);background:rgba(255,255,255,.76);box-shadow:0 3px 12px rgba(35,29,33,.08)}.bf-cal-day.is-waitlist-date{opacity:.48;cursor:pointer;border:1px dashed rgba(35,29,33,.3)}.bf-cal-day.is-waitlist-date:hover{opacity:.82;border-color:#4c293f;background:rgba(255,255,255,.4)}.bf-cal-day.is-selected{border-color:#272126;background:rgba(217,255,120,.2);box-shadow:inset 0 0 0 2px var(--acid,#d9ff78),0 3px 12px rgba(35,29,33,.08)}.bf-cal-day:focus-visible{outline:3px solid #4c293f;outline-offset:3px}.bf-cal-day.is-today b{text-decoration:underline;text-decoration-color:#4c293f;text-underline-offset:4px}.bf-cal-day i{width:19px;height:19px;border-radius:50%;display:grid;place-items:center;background:var(--acid,#d9ff78);color:#111;font:700 9px/1 'Inter',sans-serif}.bf-calendar-times{margin-top:22px;padding-top:20px;border-top:1px solid rgba(35,29,33,.35)}

/* Дополнения и итоговая цена. */
.bf-addons{display:grid;gap:10px}.bf-addon{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1.5px solid rgba(35,29,33,.42);border-radius:13px;background:rgba(255,255,255,.28);cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s}.bf-addon:hover{border-color:rgba(35,29,33,.78);background:rgba(255,255,255,.7);box-shadow:0 3px 12px rgba(35,29,33,.08)}.bf-addon input{width:19px;height:19px;accent-color:#4c293f;flex:none}.bf-addon>span{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%}.bf-addon b{font:500 15px/1.2 'Manrope',sans-serif}.bf-addon small{opacity:.7}.bf-addon:has(input:checked){border-color:#272126;background:rgba(217,255,120,.18);box-shadow:inset 0 0 0 2px var(--acid,#d9ff78)}.bf-addon:has(input:focus-visible){outline:3px solid #4c293f;outline-offset:3px}.bf-addon-group.is-standalone-removal legend,.bf-addon-group.is-standalone-removal .bf-addons{display:none}.bf-total{border-top:1px solid rgba(35,29,33,.35);padding-top:16px;display:flex;align-items:center;justify-content:space-between;text-transform:uppercase;letter-spacing:.1em;font-size:11px}.bf-total strong{font:500 25px/1 'Manrope',sans-serif;letter-spacing:-.03em}

.bf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.bf-consent{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.5}
.bf-consent input{margin-top:3px;accent-color:var(--acid,#d9ff78);width:18px;height:18px;flex:0 0 auto}
/* Салатовый --acid рассчитан на тёмный фон сайта (17,5:1), но форма стоит на
   светлом — там он давал 1,06:1, то есть ссылка была фактически невидима.
   Это ссылка на политику в согласии RODO, её обязательно должно быть видно. */
.bf-consent a{color:#2b2228;text-decoration:underline;text-underline-offset:2px}
.bf-consent a:hover,.bf-consent a:focus-visible{text-decoration-thickness:2px}

.bf-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.bf-back{background:none;border:0;cursor:pointer;font:inherit;color:inherit;opacity:.7;padding:0}
.bf-back:hover{opacity:1}
.bf-submit{border:0;cursor:pointer;font:inherit}
.bf-submit:disabled{opacity:.6;cursor:progress}
.bf-status{min-height:1.2em;font-size:14px;margin:0}
.bf-status.is-error{color:#ff6b6b}

.bf-done{max-width:640px;margin:0 auto;text-align:center;padding:20px 0}
.bf-done h2{font:500 clamp(34px,6vw,64px)/.92 'Manrope',sans-serif;letter-spacing:-.03em;margin:0 0 20px}
.bf-done .bf-pending{font-size:18px}
/* Номер заявки и дата: салатовый на светлом фоне давал 1,06:1 — клиент не мог
   прочитать собственный номер записи. */
.bf-done b{color:#2b2228}
.bf-done .bf-pending b{font-family:inherit}
.bf-done #bf-pid{font-family:monospace;letter-spacing:.08em}
.bf-done-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:26px}

@media(max-width:560px){/* RU/UK «конфиденциальности» — одно длинное слово: при 58px оно не влезало   в 360px и обрезалось. PL «prywatności» короче и помещался. */.legal-main .seo-hero h1{font-size:clamp(28px,9vw,58px);overflow-wrap:break-word;hyphens:auto}/* пальцевые размеры: минимум 44–48px */.bf-time{min-height:48px}.bf-cal-toolbar button{min-height:48px}.booking-form{gap:26px}.bf-contact{flex-direction:column}.bf-contact select{flex-basis:auto}.bf-cal-toolbar{grid-template-columns:auto 1fr auto}.bf-cal-toolbar [data-cal-today]{grid-column:1/-1}.bf-month-grid{gap:3px}.bf-cal-day{min-height:52px;border-radius:8px;padding:6px;font-size:12px}.bf-cal-day i{width:16px;height:16px;font-size:8px}.bf-addon>span{align-items:flex-start;flex-direction:column;gap:4px}.bf-waitlist-form{grid-template-columns:1fr;padding:16px}.bf-waitlist-form .bf-field:first-of-type,.bf-waitlist-hint,.bf-waitlist-form .bf-status{grid-column:auto}.bf-waitlist-form button[type=submit]{width:100%;min-height:48px}.bf-waitlist-toggle{min-height:62px;padding:14px 15px}}

/* Юридический документ (политика конфиденциальности) */
.legal-main .seo-hero h1{margin-bottom:.3em}
.legal-doc{max-width:760px;margin:0 auto 40px;font-size:16px;line-height:1.65}
.legal-doc .legal-updated{opacity:.6;font-size:13px;margin:0 0 30px}
.legal-doc h2{font:500 22px/1.2 'Manrope',sans-serif;margin:34px 0 12px}
.legal-doc p{margin:0 0 14px}
.legal-doc ul{margin:0 0 14px;padding-left:22px}
.legal-doc li{margin:0 0 8px}
/* Тот же случай: на светлом фоне политики салатовый нечитаем, а здесь среди
   ссылок — email для RODO-запросов, он обязан быть виден. */
.legal-doc a{color:#2b2228;text-decoration:underline;text-underline-offset:2px}
.legal-doc .legal-note{margin-top:34px;padding:16px 18px;border:1px solid var(--line,rgba(255,255,255,.16));border-radius:12px;font-size:14px;opacity:.85}
