body.call-booking-open { overflow: hidden; }
.call-booking-modal[hidden] { display: none; }
.call-booking-modal { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; padding: 22px; }
.call-booking-modal-backdrop { position: absolute; inset: 0; background: rgba(18,36,28,.76); backdrop-filter: blur(7px); }
.call-booking-dialog { width: min(1220px, 100%); height: min(900px, calc(100vh - 44px)); max-height: calc(100vh - 44px); position: relative; z-index: 1; display: grid; grid-template-columns: minmax(285px, .34fr) minmax(0, .66fr); border: 2px solid #2b2b2b; border-radius: 28px; background: #fff; box-shadow: 12px 12px 0 #00ca64; overflow: hidden; }
.call-booking-close { width: 43px; height: 43px; position: absolute; z-index: 5; right: 18px; top: 18px; display: grid; place-items: center; padding: 0; color: #2b2b2b; border: 2px solid #2b2b2b; border-radius: 50%; background: #fff; cursor: pointer; font-size: 0; }
.call-booking-close::before, .call-booking-close::after { content: ""; width: 16px; height: 3px; position: absolute; left: 50%; top: 50%; border-radius: 999px; background: currentColor; }
.call-booking-close::before { transform: translate(-50%, -50%) rotate(45deg); }
.call-booking-close::after { transform: translate(-50%, -50%) rotate(-45deg); }
.call-booking-close:hover { color: #fff; background: #2b2b2b; }
.call-booking-modal-summary { min-height: 0; padding: clamp(30px, 4vw, 49px); color: #fff; background: #027f48; overflow-y: auto; overscroll-behavior: contain; }
.call-booking-modal-person { display: flex; gap: 13px; align-items: center; padding-bottom: 26px; border-bottom: 1px solid rgba(255,255,255,.18); }
.call-booking-modal-person img { width: 61px; height: 61px; flex: 0 0 61px; border: 3px solid #a5fee8; border-radius: 50%; background: #fff; object-fit: cover; }
.call-booking-modal-person strong, .call-booking-modal-person span { display: block; }
.call-booking-modal-person strong { font-size: 15px; }
.call-booking-modal-person span { margin-top: 2px; color: rgba(255,255,255,.68); font-size: 12px; }
.call-booking-modal-summary > .eyebrow { display: block; margin-top: 34px; color: #a5fee8; }
.call-booking-modal-summary h2 { margin: 10px 0 0; color: #fff; font-size: clamp(42px, 4.6vw, 62px); line-height: .88; }
.call-booking-modal-summary ul { display: grid; gap: 19px; margin: 35px 0 0; padding: 0; list-style: none; }
.call-booking-modal-summary li { display: grid; grid-template-columns: 35px 1fr; gap: 11px; align-items: start; }
.call-booking-modal-icon { width: 34px; height: 34px; display: grid; place-items: center; color: #027f48; border-radius: 50%; background: #a5fee8; }
.call-booking-modal-icon svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.call-booking-modal-summary li strong, .call-booking-modal-summary li span { display: block; }
.call-booking-modal-summary li strong { margin-bottom: 2px; color: #fff; font-size: 14px; }
.call-booking-modal-summary li span { color: rgba(255,255,255,.7); font-size: 12px; line-height: 1.45; }
.call-booking-modal-privacy { display: grid; grid-template-columns: 24px 1fr; gap: 10px; margin-top: 38px; padding: 15px; border: 1px solid rgba(165,254,232,.24); border-radius: 14px; background: rgba(255,255,255,.06); }
.call-booking-modal-privacy i { color: #00ca64; }
.call-booking-modal-privacy p { margin: 0; color: rgba(255,255,255,.69); font-size: 12px; font-weight: 600; line-height: 1.45; }
.call-booking-modal-workflow { min-width: 0; min-height: 0; padding: clamp(28px, 4vw, 48px); overflow-y: auto; overscroll-behavior: contain; }
.call-booking-modal-preview { display: grid; grid-template-columns: auto 1fr; gap: 13px; align-items: center; margin: 0 54px 30px 0; padding: 13px 15px; color: #624c1e; border-radius: 12px; background: #ffe2a0; }
.call-booking-modal-preview strong { font-family: "adapt-variable", "Adapt Compact", sans-serif; font-size: 12px; font-weight: 850; text-transform: uppercase; }
.call-booking-modal-preview span { font-size: 12px; font-weight: 650; line-height: 1.4; }
.call-booking-modal-preview.call-booking-modal-live { color: #fff; background: #8d2d20; }
.call-booking-modal-live strong { color: #fff; }
.call-booking-live-confirm { padding: 12px 14px; color: #6f2118; border: 1px solid #e6b2aa; border-radius: 11px; background: #fff0ed; }
.call-booking-modal-step + .call-booking-modal-step { margin-top: 37px; padding-top: 35px; border-top: 1px solid #d8dfdc; }
.call-booking-modal-step-heading { display: grid; grid-template-columns: 42px 1fr; gap: 13px; align-items: center; }
.call-booking-modal-step-heading > span { width: 40px; height: 40px; display: grid; place-items: center; color: #027f48; border-radius: 50%; background: #bbffca; font-family: "adapt-variable", "Adapt Compact", sans-serif; font-size: 12px; font-weight: 850; }
.call-booking-modal-step-heading small { display: block; color: #027f48; font-family: "adapt-variable", "Adapt Compact", sans-serif; font-size: 12px; font-weight: 850; text-transform: uppercase; }
.call-booking-modal-step-heading h3 { margin: 3px 0 0; font-size: clamp(33px, 3.5vw, 46px); line-height: .91; }
.call-booking-modal-toolbar { display: flex; justify-content: space-between; gap: 15px; align-items: center; margin-top: 24px; color: rgba(43,43,43,.65); font-size: 12px; }
.call-booking-modal-toolbar > span i { margin-right: 5px; color: #027f48; }
.call-booking-modal-toolbar > div { display: flex; gap: 8px; align-items: center; }
.call-booking-modal-toolbar > div > strong { min-width: 102px; color: #2b2b2b; text-align: center; }
.call-booking-modal-toolbar button { width: 31px; height: 31px; display: grid; place-items: center; padding: 0; color: #027f48; border: 1px solid #cbd7d1; border-radius: 50%; background: #fff; cursor: pointer; }
.call-booking-modal-toolbar button:disabled { opacity: .3; cursor: default; }
.call-booking-modal-loading, .call-booking-modal-error { margin-top: 17px; padding: 14px; border-radius: 11px; font-size: 13px; font-weight: 700; }
.call-booking-modal-loading { color: #027f48; background: rgba(187,255,202,.46); }
.call-booking-modal-error { color: #a42323; background: #ffe6e6; }
.call-booking-modal-dates { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin-top: 17px; }
.call-booking-modal-dates button, .call-booking-modal-times button { appearance: none; color: #2b2b2b; border: 1px solid #cbd7d1; background: #fff; cursor: pointer; font: inherit; }
.call-booking-modal-dates button { min-width: 0; padding: 11px 5px; border-radius: 12px; text-align: center; }
.call-booking-modal-dates span, .call-booking-modal-dates strong { display: block; }
.call-booking-modal-dates span { color: rgba(43,43,43,.58); font-size: 12px; font-weight: 700; }
.call-booking-modal-dates strong { margin-top: 4px; font-size: 13px; }
.call-booking-modal-dates button[aria-pressed="true"], .call-booking-modal-times button[aria-pressed="true"] { color: #fff; border-color: #027f48; background: #027f48; box-shadow: 3px 3px 0 #00ca64; }
.call-booking-modal-dates button[aria-pressed="true"] span { color: rgba(255,255,255,.72); }
.call-booking-modal-times { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 13px; }
.call-booking-modal-times button { min-height: 44px; padding: 9px; border-radius: 11px; font-size: 12px; font-weight: 800; }
.call-booking-modal-selected { display: flex; gap: 9px; align-items: center; margin-top: 20px; padding: 12px 14px; color: #027f48; border-radius: 11px; background: rgba(187,255,202,.5); font-size: 12px; font-weight: 750; }
.call-booking-modal-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 13px 11px; margin-top: 20px; }
.call-booking-modal-fields label > span { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 800; }
.call-booking-modal-fields label > span small { color: rgba(43,43,43,.54); font-size: 12px; font-weight: 650; }
.call-booking-modal-fields input, .call-booking-modal-fields select, .call-booking-modal-fields textarea { width: 100%; min-height: 44px; padding: 10px 12px; color: #2b2b2b; border: 1px solid #cbd7d1; border-radius: 10px; background: #fff; font: 600 13px/1.35 "Raleway", sans-serif; }
.call-booking-modal-fields textarea { min-height: 84px; resize: vertical; }
.call-booking-modal-fields input:focus, .call-booking-modal-fields select:focus, .call-booking-modal-fields textarea:focus { border-color: #027f48; outline: 3px solid rgba(0,202,100,.17); }
.call-booking-modal-wide { grid-column: 1 / 3; }
.call-booking-modal-consent { display: flex; gap: 9px; align-items: flex-start; margin-top: 16px; color: rgba(43,43,43,.7); font-size: 12px; font-weight: 650; line-height: 1.4; }
.call-booking-modal-consent input { width: 17px; height: 17px; flex: 0 0 auto; margin: 0; accent-color: #027f48; }
.call-booking-modal-form > .button { margin-top: 20px; }
.call-booking-modal-form > .button:disabled { opacity: .45; cursor: not-allowed; }
.call-booking-modal-message { min-height: 18px; margin: 11px 0 0; color: #a42323; font-size: 12px; font-weight: 750; }
.call-booking-honeypot { width: 1px; height: 1px; position: absolute; left: -10000px; overflow: hidden; }
.call-booking-modal-success { min-height: 520px; display: flex; align-items: flex-start; flex-direction: column; justify-content: center; }
.call-booking-modal-success[hidden] { display: none; }
.call-booking-modal-success > i { width: 65px; height: 65px; display: grid; place-items: center; margin-bottom: 24px; color: #027f48; border-radius: 50%; background: #bbffca; font-size: 28px; }
.call-booking-modal-success h3 { max-width: 570px; margin: 8px 0 0; font-size: clamp(50px, 6vw, 80px); line-height: .88; }
.call-booking-modal-success p { max-width: 590px; margin: 22px 0 0; color: rgba(43,43,43,.69); font-size: 16px; font-weight: 650; }
.call-booking-modal-success .button { margin-top: 28px; }

@media (max-width: 900px) {
	.call-booking-modal { padding: 10px; }
	.call-booking-dialog { height: auto; max-height: calc(100vh - 20px); grid-template-columns: 1fr; overflow-y: auto; }
	.call-booking-modal-summary, .call-booking-modal-workflow { overflow: visible; }
	.call-booking-modal-summary { padding-right: 75px; }
	.call-booking-modal-summary h2 { max-width: 600px; }
	.call-booking-modal-summary ul { grid-template-columns: 1fr 1fr; }
	.call-booking-modal-privacy { max-width: 510px; }
}

@media (max-width: 650px) {
	.call-booking-modal { padding: 0; }
	.call-booking-dialog { width: 100%; height: 100vh; max-height: 100vh; min-height: 100vh; border: 0; border-radius: 0; box-shadow: none; }
	.call-booking-close { right: 14px; top: 14px; }
	.call-booking-modal-summary { padding: 28px 65px 31px 20px; }
	.call-booking-modal-person { padding-bottom: 22px; }
	.call-booking-modal-summary > .eyebrow { margin-top: 26px; }
	.call-booking-modal-summary h2 { font-size: 43px; }
	.call-booking-modal-summary ul { grid-template-columns: 1fr; gap: 14px; margin-top: 25px; }
	.call-booking-modal-privacy { margin-top: 25px; }
	.call-booking-modal-workflow { padding: 28px 17px 38px; }
	.call-booking-modal-preview { grid-template-columns: 1fr; gap: 4px; margin-right: 0; }
	.call-booking-modal-toolbar { align-items: flex-start; flex-direction: column; }
	.call-booking-modal-dates { grid-template-columns: repeat(7, 72px); padding: 2px 2px 7px; overflow-x: auto; }
	.call-booking-modal-times { grid-template-columns: 1fr 1fr; }
	.call-booking-modal-fields { grid-template-columns: 1fr; }
	.call-booking-modal-wide { grid-column: auto; }
}
