

/* Start:/local/components/mrlexndr/bazi.order.form/templates/.default/style.css?179247119311444*/
/* Бланк заказа — service.html (HO 3.4). Поля, отметки, ошибки, капча, .alert, .notice,
   .fs__legend, .fgrid, .trio, .person, .sexes, .after-pay — components.css (X-1). */

.orderform { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--gap) 48px; align-items: start; padding: 40px 0 112px; }
.orderform__title { grid-column: 1 / -1; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; border-bottom: 4px solid var(--rule); padding-bottom: 18px; }
.orderform__title .orderform__h { font: 600 var(--fs-56)/1.05 var(--f-text); letter-spacing: -.015em; text-wrap: balance; margin: 0; }
.orderform__main { min-width: 0; }
/* Колонка сводки — во всю высоту бланка, иначе липкому заказ-наряду некуда прилипать (критика 14.10.2026).
   overflow-x: hidden у body (base.css) делает body прокручиваемым блоком, и sticky внутри не срабатывает;
   clip режет так же, но прокручиваемого блока не создаёт. Только на странице с заказ-нарядом. */
.orderform__aside { align-self: stretch; }
/* Отзывы «на полях» сразу под «Оплатить» (вид «Поля гранки», 19.10.2026). */
.orderform .fs > .reviews { margin-top: var(--s-12); max-width: 640px; }
body:has(.side-ticket) { overflow-x: clip; }
.service-order .orderform { padding-bottom: 0; }

/* Поля, подписи, ошибки — общий вид .form-boxed (components.css), класс стоит на форме. */

/* Узкая колонка бланка (окно 1024–1250 px): город и пол — каждый во всю строку (сегмент не шире 360 px),
   дата и время — парой, «Откуда известно время» — строкой ниже. На телефоне всё в столбик (components.css). */
.orderform__main { container-type: inline-size; }
@container (max-width: 760px) {
  .orderform .fgrid > .c-4, .orderform .fgrid > .sexes { grid-column: 1 / -1; }
  .orderform .seg__row { max-width: 360px; }
}
@container (min-width: 480px) and (max-width: 760px) {
  .orderform .trio { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .orderform .trio > .field:last-child { grid-column: 1 / -1; }
}

/* Пол — общий сегмент сайта (.seg, components.css). */

/* Кто видит данные — строка с замком, как у пробы, без цветной полосы слева. */
.order-privacy { display: flex; gap: 12px; align-items: flex-start; max-width: 640px; margin-top: 24px; color: var(--ink-2); }
.order-privacy__lock { flex: none; margin-top: 3px; color: var(--ink); }
.order-privacy p { margin: 0; font-size: var(--fs-14); line-height: 1.45; }
.order-privacy .order-privacy__k { margin-bottom: 2px; font: 600 var(--fs-17)/1.3 var(--f-text); color: var(--ink); }

.order-alert:empty { display: none; }
.order-alert .alert { margin: 0 0 32px; }
.order-alert .alert p + p { margin-top: 8px; }

.fs { padding: 30px 0 34px; border-bottom: 1px solid var(--rule); }
.fs--last { border-bottom: 0; }
.orderform .fs__legend { font-weight: 400; font-size: var(--fs-36); line-height: 1.1; font-family: var(--f-text); }

.kind-fixed { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; margin: 0 0 22px; padding: 16px 18px; border: 1.5px solid var(--ink); background: var(--plate); box-shadow: 4px 4px 0 var(--ink); max-width: 560px; }
.kind-fixed b { font: 600 var(--fs-17)/1.2 var(--f-text); }
.kind-fixed .num { font: 400 var(--fs-17)/1.2 var(--f-text); font-feature-settings: "tnum"; }
.kind-fixed small { flex-basis: 100%; font-size: var(--fs-14); color: var(--ink); }

.orderform .sexes.is-error legend { color: var(--err); }

.order-probe { margin: 0 0 8px; }

/* место рождения: «Нет моего места» и координаты (Б-21, places.js) */
.hint.place-src { font-size: var(--fs-14); }
.btn-link.place-more { align-self: flex-start; padding: 0; font-size: var(--fs-17); }
.place-panel { margin-top: 2px; }
.place-panel[hidden] { display: none; }
.place-panel > .hint:first-child { margin-top: 0; }
.place-coords { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; margin-top: 10px; }
.place-near:empty { display: none; }
.place-near { color: var(--ink); }
.orderform .person { padding: 4px 0 0; }
.fgrid .hint--time { margin: 0; }
.fgrid .hint--time[hidden] { display: none; }

.order-captcha { margin: 30px 0 0; }
.order-captcha[hidden] { display: none; }
.order-captcha .captcha__img { display: block; background: var(--sheet); object-fit: contain; }
.order-captcha .err { grid-column: 1 / -1; }

.consents { display: grid; gap: 4px; max-width: 760px; }
.consents [hidden] { display: none; }
.consents .check a { position: relative; z-index: 1; }
/* Рассылка — по желанию: отделена от двух обязательных отметок и тише их. */
.consents .check--opt { margin-top: 6px; padding-top: 16px; border-top: 1px dashed var(--hair); color: var(--ink-2); }

.sendto { margin: 26px 0 8px; padding: 16px 20px; background: var(--sheet); border: 1.5px solid var(--ink); font: 400 var(--fs-17)/1.45 var(--f-text); max-width: 640px; }
.sendto[hidden] { display: none; }
.sendto b { font-weight: 600; overflow-wrap: anywhere; }
.sendto .btn-link { display: inline; min-height: 0; padding: 0; font-size: var(--fs-17); vertical-align: baseline; }
.sendto span { font-size: var(--fs-17); }
.pay-row { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 24px; }
.pay-row .sum { margin: 0; font: 400 var(--fs-36)/1 var(--f-text); font-feature-settings: "tnum"; }
.pay-row .sum small { display: block; font: 400 var(--fs-14)/1.3 var(--f-text); color: var(--ink-2); margin-bottom: 6px; }
.pay-row .btn { min-width: 240px; }
/* .paylogos.pay-via: chrome.css грузится позже и обнуляет margin у .paylogos. */
.paylogos.pay-via { margin: 22px 0 0; }
.paylogos.pay-via li { min-width: 0; padding: 8px 12px; font-size: var(--fs-14); }

.pay-sum { display: none; }
.pay-ticket { display: none; }

/* Заказ-наряд — лист с чернильной тенью, как бланк пробы на главной. top — под липкой шапкой (.stickybar 60 px +
   граница, chrome.css) и зазор 24 px; если лист выше окна (ноутбук 720–768 px), он прокручивается внутри,
   а не обрезается снизу. */
.side-ticket {
  position: sticky; top: 86px; max-height: calc(100vh - 110px); overflow-y: auto; overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: var(--ink-3) transparent;
  background: var(--sheet); border: 1.5px solid var(--ink); box-shadow: var(--sh-card-ink);
}
.side-ticket__head { padding: 12px 18px; border-bottom: 3px double var(--rule); font: 600 var(--fs-14)/1.3 var(--f-text); display: flex; justify-content: space-between; }
.side-ticket__body { padding: 18px; }
.side-ticket__kind { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 12px; margin: 0; }
.side-ticket__kind b { font: 600 var(--fs-17)/1.3 var(--f-text); color: var(--ink); }
.side-ticket__kind span { font-size: var(--fs-14); color: var(--ink-2); }
:is(.side-ticket, .pay-ticket) .big { display: block; margin: 12px 0 16px; padding: 14px 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); font: 400 var(--fs-36)/1 var(--f-text); font-feature-settings: "tnum"; text-align: right; }
.side-ticket__k { margin: 0 0 8px; font: 600 var(--fs-14)/1.3 var(--f-text); color: var(--ink); }
/* Что дальше — три шага с номерами-оттисками, как у разделов бланка. */
.side-ticket__steps { list-style: none; counter-reset: step; display: grid; gap: 8px; margin: 0 0 16px; padding: 0 0 16px; border-bottom: 1px solid var(--rule); }
.side-ticket__steps li { counter-increment: step; position: relative; padding-left: 32px; font-size: var(--fs-14); line-height: 1.45; color: var(--ink); }
.side-ticket__steps li::before { content: counter(step); position: absolute; left: 0; top: 0; display: grid; place-items: center; width: 22px; height: 22px; background: var(--plate); color: var(--ink); font: 600 var(--fs-14)/1 var(--f-text); font-feature-settings: "tnum"; transform: rotate(-3deg); }
.side-ticket__steps .nobr { white-space: nowrap; }
.side-ticket__links { margin: 0; font-size: var(--fs-14); color: var(--ink-2); }
.side-ticket__links a { display: inline-flex; align-items: center; min-height: 44px; }

@media (max-width: 1023px) {
  .orderform { grid-template-columns: 1fr; }
  .orderform__aside { display: none; }
  /* Заказ-наряд у цены (Р-6): те же сведения, что в колонке справа, без повтора цены — она в строке оплаты ниже. */
  .pay-ticket { display: block; max-width: 640px; margin: 28px 0 0; padding: 18px; background: var(--sheet); border: 1.5px solid var(--ink); box-shadow: var(--sh-card-ink); }
  .pay-ticket .big { display: none; }
  .pay-ticket .side-ticket__kind { margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--rule); }
  .pay-ticket + .sendto { margin-top: 24px; }
  .pay-sum { display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 28px 0 0; border-top: 3px double var(--rule); border-bottom: 1px solid var(--rule); }
  .pay-sum > div { padding: 12px 0; border-bottom: 1px solid var(--hair); }
  .pay-sum > div:nth-child(odd) { padding-right: 12px; }
  .pay-sum > div:nth-last-child(-n+2) { border-bottom: 0; }
  .pay-sum dt { font: 400 var(--fs-14)/1.3 var(--f-text); color: var(--ink-2); margin-bottom: 4px; }
  .pay-sum dd { margin: 0; font-weight: 600; font-size: var(--fs-17); line-height: 1.3; }
  .pay-sum + .sendto { margin-top: 20px; }
}
@media (max-width: 767px) {
  .orderform { padding-top: 48px; padding-bottom: 72px; }
  .orderform__title { flex-direction: column; align-items: flex-start; padding-bottom: 14px; }
  .orderform .fs__legend { font-size: var(--fs-36); }
  .sendto { padding: 16px; }
  .pay-row .btn { width: 100%; min-width: 0; }
}

/* Тестовый заказ: отметка администратора и тестовый режим браузера (07.10.2026) */
.order-test { margin: 0 0 20px; max-width: none; }
/* .notice — сетка «значок 28 px | текст»: все абзацы — во второй колонке, иначе второй уходит под значок. */
.order-test > p, .order-test > div { grid-column: 2; }
.order-test__issue { margin-top: 12px; }
.order-test__issue p { margin: 0 0 8px; }
.order-test__link { overflow-wrap: anywhere; user-select: all; font-size: var(--fs-14); }

/* ST 3 и ST 5 у цены в сводке (страница услуги без прайс-листа, 12.10.2026): раскрыты, не мельче 14 px */
.side-ticket__legal { margin: 0 0 8px; font-size: var(--fs-14); line-height: 1.45; color: var(--ink-2); }
.side-ticket__legal b { color: var(--ink); }
.service-order { padding-top: 8px; padding-bottom: var(--sec-y); }

/* End */


/* Start:/local/components/mrlexndr/bazi.reviews/templates/.default/style.css?17924711934915*/
/* Отзывы рядом с кнопкой заказа — «Поля гранки» (impeccable, 19.10.2026): заметки на полях у кнопки заказа.
   Волосяная линейка тушью слева, ромб-маркер у каждой заметки; коралла нет, «Ещё отзывы» — контурная.
   Токены и кнопки — tokens.css, components.css; блок живёт в колонке страницы и сам ширину не задаёт.
   Селекторы с .reviews впереди: сбросы страниц (html.home-v2 h2, p, ul) не должны перебивать вид блока. */
.reviews { --rv-rule: var(--s-8); position: relative; padding-left: var(--rv-rule); border-left: 1px solid var(--ink); }
.reviews > .reviews__h { margin: 0 0 var(--s-2); font: var(--w-semi) var(--fs-22)/1.3 var(--f-text); text-wrap: balance; }
.reviews > .reviews__lead { margin: 0; max-width: 46ch; font: var(--w-reg) var(--fs-14)/1.45 var(--f-text); color: var(--ink-2); }
.reviews > .reviews__list { list-style: none; margin: var(--s-6) 0 0; padding: 0; display: grid; gap: var(--s-6); }
.reviews .reviews__item { position: relative; scroll-margin-top: 96px; }
.reviews .reviews__item::before {
  content: ""; position: absolute; left: calc(-1 * var(--rv-rule) - 4px); top: .55em;
  width: 7px; height: 7px; background: var(--ink); transform: rotate(45deg);
}
.reviews .reviews__item + .reviews__item { padding-top: var(--s-6); border-top: 1px solid var(--hair); }
.reviews .reviews__item + .reviews__item::before { top: calc(var(--s-6) + .55em); }
.reviews .reviews__item:focus { outline: none; }
.reviews .reviews__item:focus-visible { outline: 3px solid var(--focus); outline-offset: 6px; }

.reviews .review-card { margin: 0; }
.reviews .review-card__text { margin: 0; padding: 0; }
.reviews .review-card__text p { margin: 0; max-width: 52ch; font: var(--w-reg) var(--fs-17)/1.5 var(--f-text); color: var(--ink); text-wrap: pretty; }
.reviews .review-card__full { margin: var(--s-1) 0 0; }
.reviews .review-card__full summary {
  display: inline-flex; align-items: center; gap: var(--s-2); min-height: 44px; cursor: pointer; list-style: none;
  color: var(--cinnabar); font: var(--w-reg) var(--fs-14)/1.3 var(--f-text);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em;
}
.reviews .review-card__full summary::-webkit-details-marker { display: none; }
.reviews .review-card__full summary::after {
  content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg); transition: transform var(--t-press, .16s) ease-out;
}
.reviews .review-card__full[open] summary::after { transform: translateY(2px) rotate(-135deg); }
.reviews .review-card__close, .reviews .review-card__full[open] .review-card__open { display: none; }
.reviews .review-card__full[open] .review-card__close { display: inline; }
.reviews .review-card__full summary:hover { text-decoration-thickness: 2px; }
/* Раскрыто: полный текст встаёт на место короткого и набран как цитата. */
.reviews .review-card__full p { margin: 0 0 var(--s-2); max-width: 52ch; font: var(--w-reg) var(--fs-17)/1.5 var(--f-text); color: var(--ink); text-wrap: pretty; }
.reviews .review-card:has(.review-card__full[open]) .review-card__text { display: none; }
.reviews .review-card__full[open] { display: flex; flex-direction: column-reverse; align-items: flex-start; margin-top: 0; }
.reviews .review-card__matched { margin: var(--s-2) 0 0; font: var(--w-reg) var(--fs-14)/1.45 var(--f-text); color: var(--ink-2); }
.reviews .review-card__sign { margin: var(--s-2) 0 0; font: var(--w-semi) var(--fs-14)/1.4 var(--f-text); color: var(--ink); }
.reviews .review-card__date { font-weight: var(--w-reg); color: var(--ink-2); }

.reviews > .reviews__more { margin-top: var(--s-6); }
.reviews > .reviews__more[hidden] { display: none; }
/* Скрывать «ещё» только когда скрипт шаблона запустился (ставит data-reviews-ready): без скрипта видно всё. */
.reviews[data-reviews-ready]:not(.is-open) .reviews__item--more { display: none; }
.reviews.is-open .reviews__item--more { animation: reviews-in .42s cubic-bezier(.16, 1, .3, 1) both; }
@keyframes reviews-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .reviews.is-open .reviews__item--more { animation: none; } }
html.motion-off .reviews.is-open .reviews__item--more { animation: none; }

/* Телефон: те же поля, линейка ближе к тексту. */
@media (max-width: 767px) {
  .reviews { --rv-rule: var(--s-4); }
  .reviews > .reviews__more { width: 100%; }
}

/* End */
/* /local/components/mrlexndr/bazi.order.form/templates/.default/style.css?179247119311444 */
/* /local/components/mrlexndr/bazi.reviews/templates/.default/style.css?17924711934915 */
