.callback-form { padding: 28px; border: 1px solid #d6e3d9; border-radius: 14px; background: #f4f7f0; color: #263a3b; min-width: 0; }
.appointment__panel > .callback-form { grid-column: 1 / -1; }
.appointment__panel > .callback-home { grid-column: 1 / -1; min-width: 0; }
.callback-form h3 { margin: 0 0 8px; font-size: 25px; font-weight: 500; }
.callback-form > p { margin: 0 0 20px; font-size: 14px; }
.callback-form__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.callback-form__fields label { display: grid; gap: 8px; font-size: 13px; font-weight: 600; }
.callback-form__fields input { width: 100%; min-width: 0; padding: 15px; border: 1px solid #becfc4; border-radius: 8px; background: #fff; color: #263a3b; font: inherit; font-size: 16px; }
.callback-form__department { display: block; margin-top: 20px; font-size: 13px; font-weight: 600; }
.callback-form__department span { margin-left: 6px; color: #52645c; font-size: 12px; font-weight: 400; }
.callback-form__department select { display: block; width: 100%; margin-top: 8px; padding: 14px; border: 1px solid #becfc4; border-radius: 8px; background: #fff; color: #263a3b; font: inherit; font-size: 16px; }
.callback-form__department select:focus-visible { outline: 2px solid #287361; outline-offset: 3px; }
.callback-form__department select[hidden] { display: none; }
.custom-select { position: relative; margin-top: 8px; font-weight: 400; }
.custom-select__button { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; min-height: 52px; padding: 14px; border: 1px solid #becfc4; border-radius: 8px; background: #fff; color: #263a3b; font: inherit; font-size: 16px; line-height: 1.4; text-align: left; cursor: pointer; }
.custom-select__button span { margin: 0; color: inherit; font: inherit; }
.custom-select__button svg { flex-shrink: 0; color: #287361; transition: transform .15s; }
.custom-select__button[aria-expanded="true"] svg { transform: rotate(180deg); }
.custom-select__button:hover, .custom-select__button[aria-expanded="true"] { border-color: #287361; }
.custom-select__button:focus-visible { outline: 2px solid #287361; outline-offset: 3px; }
.custom-select .custom-select__list { position: absolute; z-index: 5; inset: calc(100% + 6px) 0 auto; margin: 0; padding: 6px; max-height: min(260px, 40dvh); overflow-y: auto; overscroll-behavior: contain; list-style: none; border: 1px solid #c6d8cb; border-radius: 10px; background: #fff; color: #263a3b; box-shadow: 0 8px 28px #183a3026; }
.custom-select .custom-select__list[hidden] { display: none; }
.custom-select.is-up .custom-select__list { inset: auto 0 calc(100% + 6px); }
.custom-select .custom-select__list li { margin: 0; padding: 11px 12px; border-radius: 6px; font-size: 14px; line-height: 1.4; cursor: pointer; }
.custom-select__list li[aria-selected="true"] { font-weight: 600; color: #215c4e; background: #f2f6ee; }
.custom-select__list li:hover, .custom-select__list li.is-active { background: #e2eddf; color: #173d39; }
.callback-form input:focus-visible { outline: 2px solid #287361; outline-offset: 3px; }
.callback-form small { display: block; margin-top: 8px; color: #52645c; }
.callback-form__consent { display: flex; align-items: flex-start; gap: 12px; margin: 20px 0; font-size: 12px; line-height: 1.6; }
.callback-form__consent input { flex: 0 0 20px; width: 20px; height: 20px; margin: 2px 0 0; accent-color: #287361; }
.callback-form__consent a { color: #215c4e; text-decoration: underline; }
.callback-form .btn { color: #fff; }
.callback-form .btn:disabled { opacity: .65; cursor: wait; }
.callback-form .callback-form__status { margin: 16px 0 0; }
.callback-form__status:empty { display: none; }
.callback-form--success > :not(.callback-success) { display: none; }
.callback-success { text-align: center; padding: 20px 0; }
.callback-success[hidden], .callback-success [hidden] { display: none; }
.callback-success:focus { outline: none; }
.callback-success__icon { display: block; margin: 0 auto 22px; color: #287361; }
.callback-success h3 { font-size: clamp(28px, 4vw, 36px); }
.callback-success p { max-width: 360px; margin: 14px auto 26px; font-size: 16px; line-height: 1.7; }
.callback-form__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.booking-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.booking-actions > a { margin-top: 0 !important; }
.prose .editorial-content .booking-actions .btn, .prose .editorial-content .booking-actions .btn:hover { color: #fff; text-decoration: none; }
.booking-actions .callback-trigger, .prose .booking-actions .callback-trigger { display: inline-flex; align-items: center; justify-content: center; padding: 18px 22px; border: 1px solid #c6d8cb; border-radius: 8px; background: #f2f6ee; color: #244c49; font-size: 14px; font-weight: 600; line-height: 1.3; text-decoration: none; }
.booking-actions .callback-trigger:hover, .prose .booking-actions .callback-trigger:hover { background: #dce8d6; color: #173d39; border-color: #8eae98; }
.booking-actions .callback-trigger:focus-visible { outline: 2px solid #287361; outline-offset: 3px; }
.booking-actions--header { grid-column: 2; grid-row: 1 / 3; flex-direction: column; align-items: stretch; gap: 7px; }
.booking-actions--header .callback-trigger { padding: 10px 20px; font-size: 12px; }
.booking-actions--header .header__booking { padding: 14px 20px; }
.booking-page__online .booking-actions { margin-top: 28px; }
@media (max-width: 1180px) { .booking-actions--header { display: none; } }
@media (max-width: 540px) { .booking-actions { width: 100%; align-items: stretch; } .booking-actions > a { flex: 1 1 180px; } .booking-actions .callback-trigger { padding: 16px; font-size: 13px; } }
.callback-dialog { width: min(580px, calc(100% - 24px)); max-height: calc(100dvh - 32px); padding: 0; border: 0; border-radius: 14px; color: #263a3b; background: #f4f7f0; box-shadow: 0 15px 70px #182e3b40; }
.callback-dialog::backdrop { background: #172d38a6; }
.callback-dialog .callback-form { border: 0; border-radius: 0; }
@media (max-width: 540px) { .callback-dialog .callback-form__fields { grid-template-columns: 1fr; } }
@media (max-width: 540px) { .callback-form { padding: 20px; } .callback-form__fields { grid-template-columns: 1fr; } .callback-form .btn { width: 100%; } }
