/* Consultation booking — layout, controls, responsive and motion. */
.booking {
  padding: clamp(90px, 9.4vw, 142px) 0 clamp(98px, 9vw, 132px);
  background: linear-gradient(180deg, #f4f4ee 0%, #f0f0e9 55%, #e9eee7 100%);
  color: #2d3b30;
  font-family: Arial, Helvetica, sans-serif;
  scroll-margin-top: 84px;
}
.booking__container { width: min(90%, 1240px); margin-inline: auto; display: grid; grid-template-columns: minmax(0, .91fr) minmax(0, 1.09fr); align-items: start; gap: clamp(45px, 6.5vw, 108px); }
.booking__intro, .booking__panel { min-width: 0; }
.booking__eyebrow { display: flex; align-items: center; gap: 11px; margin: 0 0 35px; font-size: 12px; font-weight: 600; letter-spacing: .17em; line-height: 1.5; text-transform: uppercase; color: #576557; }
.booking__dot { flex: 0 0 7px; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.booking__title { max-width: 620px; margin: 0; color: #29372d; font: 400 clamp(44px, 4.3vw, 62px)/1.12 Georgia, 'Times New Roman', serif; letter-spacing: -.037em; text-wrap: balance; }
.booking__title em { color: #718675; font-weight: 400; }
.booking__lead { max-width: 490px; margin: 28px 0 0; color: #657166; font-size: 16px; line-height: 1.77; }
.booking__steps { display: grid; gap: 0; margin-top: clamp(50px, 6vw, 82px); border-top: 1px solid #d0d8cc; }
.booking__step { display: grid; grid-template-columns: 45px minmax(0,1fr); align-items: center; gap: 20px; min-height: 69px; border-bottom: 1px solid #d0d8cc; }
.booking__step span { color: #87998a; font-size: 12px; font-weight: 600; letter-spacing: .07em; }
.booking__step p { margin: 0; color: #4c5d50; font-size: 15px; line-height: 1.5; }
.booking__direct { display: grid; justify-items: start; gap: 7px; margin-top: 38px; }
.booking__direct-label { color: #738072; font-size: 13px; }
.booking__direct a { color: #354d3a; font-size: 17px; font-weight: 600; line-height: 1.5; text-decoration: underline; text-decoration-color: #aab9a9; text-underline-offset: 4px; overflow-wrap: anywhere; }
.booking__direct a:hover { color: #667e6a; }
.booking__panel { overflow: hidden; border: 1px solid #d7dfd4; border-radius: 24px; background: #fffefa; box-shadow: 0 15px 55px rgba(47,69,49,.045); }
.booking__panel-top { padding: 36px clamp(28px, 4.3vw, 60px) 28px; border-bottom: 1px solid #ebede5; }
.booking__panel-index { color: #718274; font-size: 11px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.booking__panel-top h3 { margin: 20px 0 8px; color: #2e3d32; font: 400 clamp(27px, 2.7vw, 35px)/1.18 Georgia, 'Times New Roman', serif; letter-spacing: -.02em; }
.booking__panel-top p { max-width: 390px; margin: 0; color: #7b877b; font-size: 14px; line-height: 1.65; }
.booking__form { display: grid; gap: 23px; padding: 30px clamp(28px, 4.3vw, 60px) 36px; }
.booking__field { display: flex; flex-direction: column; min-width: 0; }
.booking__field label { margin-bottom: 10px; color: #354539; font-size: 13px; line-height: 1.4; font-weight: 600; }
.booking__field label span { color: #a97e48; }
.booking__field input { width: 100%; min-width: 0; min-height: 55px; padding: 14px 17px; border: 1px solid #d5ddd3; border-radius: 12px; outline: none; background: #f8f9f5; color: #34443a; font: 400 15px/1.5 Arial, Helvetica, sans-serif; transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease; }
.booking__field input::placeholder { color: #9aa59b; opacity: 1; }
.booking__field input:focus { border-color: #6d886e; background: #fff; box-shadow: 0 0 0 3px rgba(116,146,116,.13); }
.booking__field input[aria-invalid="true"] { border-color: #b16d64; }
.booking__field small { margin-top: 7px; color: #8a9589; font-size: 11px; line-height: 1.5; }
.booking__consent { display: flex; align-items: flex-start; gap: 12px; color: #69776c; font-size: 12px; line-height: 1.6; cursor: pointer; }
.booking__consent input { width: 18px; height: 18px; margin: 1px 0 0; flex: 0 0 18px; accent-color: #536d57; cursor: pointer; }
.booking__consent input:focus-visible { outline: 2px solid #6c8c73; outline-offset: 3px; }
.booking__submit { display: inline-flex; align-items: center; justify-content: space-between; gap: 20px; width: 100%; min-height: 59px; padding: 15px 26px; border: 1px solid #414943; border-radius: 999px; background: #414943; color: #fdfdf9; font: 600 14px/1.45 Arial, Helvetica, sans-serif; text-align: left; cursor: pointer; transition: background-color .22s ease, transform .22s ease; }
.booking__submit span { font-size: 20px; font-weight: 400; line-height: 1; }
.booking__submit:hover { background: #526453; transform: translateY(-2px); }
.booking__submit:focus-visible { outline: 2px solid #61836b; outline-offset: 4px; }
.booking__disclaimer { margin: -8px 0 0; color: #859187; font-size: 11px; line-height: 1.75; }
.booking__disclaimer strong { font-weight: 600; color: #667c6a; }
.booking__result { padding: 16px 18px; background: #eaf0e6; border: 1px solid #cfddce; border-radius: 12px; color: #415d47; }
.booking__result[hidden] { display: none; }
.booking__result p { margin: 0 0 10px; font-size: 13px; line-height: 1.6; }
.booking__result a { color: #314d3b; font-size: 14px; font-weight: 600; text-underline-offset: 3px; }
.booking__result a:focus-visible { outline: 2px solid #547b59; outline-offset: 3px; }
.booking.booking--motion [data-booking-reveal] { opacity: 0; transform: translateY(17px); transition: opacity .68s ease, transform .68s cubic-bezier(.23,.8,.3,1); }
.booking.booking--motion [data-booking-reveal].is-visible { opacity: 1; transform: translateY(0); }
@media (max-width: 1000px) { .booking__container { gap: 40px; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); } .booking__panel-top { padding: 30px 25px 26px; } .booking__form { padding: 27px 25px 31px; } .booking__title { font-size: clamp(37px, 4.3vw, 48px); } }
@media (max-width: 760px) { .booking { padding: 73px 0 96px; scroll-margin-top: 64px; } .booking__container { grid-template-columns: minmax(0,1fr); width: min(calc(100% - 48px), 620px); gap: 40px; } .booking__eyebrow { margin-bottom: 25px; } .booking__title { font-size: clamp(36px, 6vw, 48px); } .booking__lead { margin-top: 20px; } .booking__steps { display: none; } .booking__direct { margin-top: 25px; } }
@media (max-width: 520px) { .booking { padding: 69px 0 78px; } .booking__container { width: calc(100% - 36px); gap: 34px; } .booking__eyebrow { margin-bottom: 20px; font-size: 11px; } .booking__title { font-size: clamp(34px, 8.7vw, 42px); } .booking__lead { font-size: 15px; line-height: 1.75; } .booking__step { min-height: 61px; grid-template-columns: 30px minmax(0,1fr); gap: 16px; } .booking__step p { font-size: 14px; } .booking__direct a { font-size: 16px; } .booking__panel { border-radius: 20px; } .booking__panel-top { padding: 28px 22px 24px; } .booking__form { gap: 20px; padding: 25px 22px 30px; } .booking__submit { min-height: 57px; padding: 14px 22px; font-size: 13px; } }
@media (max-width: 355px) { .booking__container { width: calc(100% - 28px); } .booking__panel-top { padding-inline: 18px; } .booking__form { padding-inline: 18px; } .booking__submit { padding-inline: 17px; gap: 9px; font-size: 12px; } .booking__title { font-size: 33px; } }
@media (prefers-reduced-motion: reduce) { .booking.booking--motion [data-booking-reveal] { opacity: 1; transform: none; transition: none; } .booking__submit, .booking__field input { transition: none; } }
