/* Booking dialog: scoped styles preserve the site's other dialogs. */
dialog.booking-dialog{width:min(720px,calc(100% - 32px));max-width:720px;max-height:calc(100dvh - 40px);padding:0;border:0;border-radius:22px;background:#fffdfb;color:var(--navy);box-shadow:0 30px 100px #071c3655;overflow:auto}
dialog.booking-dialog::backdrop{background:#081b32b8;backdrop-filter:blur(7px)}
.booking-dialog .modal-close{position:absolute;right:18px;top:18px;z-index:2;width:34px;height:34px;border-radius:50%;background:#ffffff15;color:white}
.booking-dialog .modal-close:hover{background:#ffffff30}
.booking-head{padding:32px 36px 25px;background:radial-gradient(ellipse at 100% 0%,#335472 0,transparent 65%),var(--navy);color:white;border-bottom:4px solid var(--orange)}
.booking-label{display:flex;align-items:center;gap:8px;color:#ffb788;font-size:10px;letter-spacing:.18em;font-weight:700;margin-bottom:17px}
.booking-label .lucide{width:16px;height:16px}
.booking-dialog .booking-head h2{font-size:33px;letter-spacing:-.035em;line-height:1.13;color:white}
.booking-head h2>span{color:#ffb788}
.booking-dialog .booking-head p{color:#d3dfea;font-size:13px;margin:12px 0 20px;line-height:1.6}
.booking-session{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.booking-session>span{display:inline-flex;align-items:center;gap:7px;border:1px solid #ffffff26;border-radius:7px;padding:7px 10px;font-size:11px;color:#f4f7fa;background:#ffffff08}
.booking-session .lucide{width:14px;height:14px;color:#ffb788}
.booking-session>span.booking-free{margin-left:auto;color:#ccebd9;background:#b4f1d114;border-color:#b4f1d12b;font-weight:700}
.booking-dialog .reservation-form{padding:25px 36px 22px;margin:0}
.booking-section-label,.booking-dialog .reservation-channel legend{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:700;margin-bottom:16px;color:var(--navy)}
.booking-section-label>span,.booking-step{display:inline-grid;place-items:center;width:25px;height:25px;background:#f4ede6;border-radius:7px;color:#a94816;font-size:10px}
.booking-dialog .reservation-form .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}
.booking-dialog .reservation-form .form-grid>label{grid-column:auto;display:grid;gap:6px;font-size:11px;font-weight:650;color:#344c61}
.booking-dialog .reservation-form input:not([type=radio]),.booking-dialog .reservation-form select{height:43px;padding:10px 12px;border:1px solid #dde3e7;border-radius:8px;font-size:13px;background:#fff;color:var(--navy);transition:border-color .15s,box-shadow .15s}
.booking-dialog .reservation-form input::placeholder{color:#8b99a6;font-weight:400}
.booking-dialog .reservation-form input:focus,.booking-dialog .reservation-form select:focus{outline:0;border-color:#cf6b35;box-shadow:0 0 0 3px #f5783518}
.booking-dialog .reservation-channel{border:0;border-top:1px solid #ece9e5;border-radius:0;margin:23px 0 0;padding:18px 0 0;min-width:0}
.booking-dialog .reservation-channel legend{float:left;width:100%;padding:0;margin:0 0 13px}
.booking-channel-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;clear:both}
.booking-dialog .reservation-channel label.booking-channel{position:relative;display:flex;align-items:center;gap:10px;margin:0;padding:13px 12px;border:1px solid #dde3e7;border-radius:10px;background:white;cursor:pointer;min-width:0;transition:background .15s,border-color .15s}
.booking-channel input{position:absolute;width:1px;height:1px;opacity:0}
.booking-channel:has(input:checked){border-color:#c96a35!important;background:#fff5ec!important}
.booking-channel:has(input:focus-visible){outline:3px solid #cd621d;outline-offset:3px}
.booking-channel-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:#edf2f6;flex-shrink:0}
.booking-channel-icon .lucide{width:17px;height:17px}
.booking-channel b{display:block;font-size:12px}.booking-channel small{display:block;font-size:9px;font-weight:400;color:#667888;margin-top:2px;line-height:1.5}
.booking-check{width:15px;height:15px;border:1px solid #c5cfd7;border-radius:50%;margin-left:auto;flex-shrink:0}
.booking-channel:has(input:checked) .booking-check{border:4px solid #d16c36;background:white}
.booking-dialog .booking-demo{display:flex;align-items:flex-start;gap:9px;margin:18px 0;font-size:10px;line-height:1.6;color:#6b7781;background:#f3f4f4;border-radius:8px;padding:11px 12px}
.booking-demo .lucide{width:15px;height:15px;margin-top:1px;flex-shrink:0}
.booking-dialog .reservation-form>.btn{border-radius:9px;min-height:47px;font-size:13px;justify-content:space-between;padding:13px 18px}
.booking-dialog .booking-footnote{display:flex;justify-content:space-between;gap:10px;margin:12px 0 0;font-size:10px;color:#71808b}.booking-footnote span{color:#a94816}
.booking-dialog #reservation-error{font-size:12px;color:#a32626}
.booking-dialog #modal-content:not(:has(.booking-head)){padding:36px}.booking-dialog:has(#modal-content:not(:has(.booking-head))) .modal-close{color:var(--navy);background:#edf2f6}
@media(max-width:560px){dialog.booking-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:16px}.booking-head{padding:26px 22px 22px}.booking-dialog .booking-head h2{font-size:29px}.booking-dialog .reservation-form{padding:22px}.booking-channel-grid{grid-template-columns:1fr}.booking-session{gap:6px}.booking-session>span{font-size:10px;padding:6px 8px}.booking-dialog .booking-footnote{font-size:9px}}
@media(max-width:370px){.booking-dialog .reservation-form .form-grid{grid-template-columns:1fr}.booking-dialog .booking-head h2{font-size:26px}}
.booking-phone-field{display:grid;gap:6px;min-width:0;align-content:start}
.booking-dialog .reservation-form .booking-phone-field>label{font-size:11px;font-weight:650;color:#344c61}
.booking-phone{display:flex;min-width:0;border:1px solid #dde3e7;border-radius:8px;background:white;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.booking-phone:focus-within{border-color:#cf6b35;box-shadow:0 0 0 3px #f5783518}
.booking-dialog .reservation-form .booking-phone select{flex:0 0 112px;width:112px;min-width:0;border:0;border-right:1px solid #dde3e7;border-radius:0;background:#f4f6f8;padding:10px 6px;font-size:12px;box-shadow:none}
.booking-dialog .reservation-form .booking-phone input{flex:1;width:0;min-width:0;border:0;border-radius:0;padding:10px;box-shadow:none}
.booking-phone-field>small{font-size:9px;line-height:1.4;color:#71808b}
@media(min-width:371px) and (max-width:560px){.booking-phone-field{grid-column:1/-1}}
.booking-phone{overflow:visible;position:relative}
.phone-country{flex:0 0 108px;min-width:0;border-right:1px solid #dde3e7}
.phone-country summary{height:41px;display:flex;align-items:center;gap:7px;padding:0 9px;cursor:pointer;list-style:none;font-size:12px;background:#f4f6f8;border-radius:7px 0 0 7px}
.phone-country summary::-webkit-details-marker{display:none}
.phone-country summary .lucide{width:12px;height:12px;margin-left:auto}
.phone-country img{width:24px;height:17px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px #102b4615;flex-shrink:0}
.phone-country-menu{position:absolute;top:calc(100% + 7px);left:0;width:min(310px,100%);background:white;border:1px solid #dde3e7;border-radius:11px;padding:9px;box-shadow:0 14px 36px #102b462b;z-index:10}
.booking-dialog .reservation-form .phone-country-menu input{width:100%;height:37px;border:1px solid #dde3e7;border-radius:7px;background:#f8f9fa;padding:8px 10px;font-size:12px}
.phone-country-list{max-height:185px;overflow-y:auto;margin-top:7px;overscroll-behavior:contain}
.phone-country-list button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 8px;border:0;border-radius:6px;background:white;text-align:left;font-size:12px}
.phone-country-list button:hover,.phone-country-list button:focus-visible{background:#f0f4f7}
.phone-country-list button[aria-pressed=true]{background:#fff2e7}
.phone-country-list button b{margin-left:auto;color:#677b8d;font-size:11px}
.phone-country-empty{font-size:12px;margin:12px 4px;color:#677b8d}
.booking-dialog .reservation-form .booking-phone>input:not([type=hidden]){border-radius:0 7px 7px 0}
.booking-dialog #modal-content:has(.booking-success){padding:0}
.booking-dialog:has(.booking-success) .modal-close{color:white!important;background:#ffffff15!important}
.booking-success-head{padding:32px 30px 27px;text-align:center;background:radial-gradient(ellipse at 50% 0%,#284b68,transparent 80%),var(--navy);color:white}
.booking-success-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 17px;border-radius:50%;color:#ffe0c7;background:#ffffff0f;border:1px solid #ffffff30;box-shadow:0 0 0 7px #ffffff04}
.booking-success-icon .lucide{width:29px;height:29px;stroke-width:2}
.booking-success-head .booking-label{justify-content:center;margin-bottom:11px;font-size:9px}
.booking-dialog .booking-success-head h2{font-size:36px;line-height:1.12;color:white;letter-spacing:-.035em}
.booking-success-head h2>span{color:#ffb788}
.booking-success-head p{margin:14px 0 0;font-size:13px;line-height:1.7;color:#d5e1eb}
.booking-success-body{padding:25px 36px 26px}
.booking-success-ticket{padding:20px 22px;border:1px solid #e6e5e0;border-radius:12px;background:white;position:relative}
.booking-success-category{font-size:9px;font-weight:750;letter-spacing:.16em;color:#a94816}
.booking-success-ticket h3{font-size:21px;margin:7px 0 17px;letter-spacing:-.025em}
.booking-success-detail{display:flex;align-items:flex-start;gap:10px;margin:10px 0;font-size:12px;color:#506579;line-height:1.6}
.booking-success-detail>.lucide{width:16px;height:16px;color:#b25524;margin-top:2px;flex-shrink:0}
.booking-success-detail b{display:block;color:var(--navy);font-weight:600}
.booking-success-channel{display:flex;gap:10px;align-items:center;border-top:1px dashed #dedfdc;padding-top:15px;margin-top:17px;font-size:10px;color:#6c7c89}
.booking-success-channel>.lucide{width:18px;height:18px;color:#344e65}
.booking-success-channel b{display:block;font-size:12px;color:var(--navy);margin-top:2px}
.booking-pending{margin-left:auto;padding:4px 8px;border-radius:20px;background:#f0f2f4;font-size:9px}
.booking-invitation-link{width:100%;justify-content:space-between;margin-top:19px;border-radius:9px;font-size:13px;padding:14px 17px}
.booking-invitation-link>span{display:flex;gap:10px;align-items:center}
.booking-dialog .booking-success-body .booking-demo{margin-bottom:14px}
.booking-success-foot{display:flex;align-items:flex-start;gap:8px;font-size:10px;line-height:1.65;color:#76838d;margin:0}
.booking-success-foot>.lucide{width:14px;height:14px;flex-shrink:0;margin-top:2px}
@media(max-width:560px){.booking-success-head{padding:27px 22px 24px}.booking-dialog .booking-success-head h2{font-size:31px}.booking-success-body{padding:20px 22px 24px}.booking-success-ticket{padding:18px}.booking-invitation-link{font-size:12px}}
/* Invitation-ready confirmation, matched to the supplied reference. */
dialog.booking-dialog:has(.invitation-ready){width:min(610px,calc(100% - 32px));border:1.5px solid #537a99;border-radius:29px;background:#0a2239;box-shadow:0 28px 100px #06142485}
.booking-dialog:has(.invitation-ready)::backdrop{background:#122438a8;backdrop-filter:blur(8px)}
.booking-dialog:has(.invitation-ready) .modal-close{right:21px;top:23px;width:43px;height:43px;border:1px solid #ffffff0b;background:#ffffff0b!important;color:#e5f0fa!important}
.booking-dialog:has(.invitation-ready) .modal-close .lucide{width:24px;height:24px}
.invitation-ready{padding:60px 35px 29px;text-align:center;color:#f5f8ff;background:radial-gradient(ellipse at 50% 0%,#1f5571a6 0,transparent 48%),linear-gradient(150deg,#102e49,#091e33);border-radius:27px}
.ready-check{display:grid;place-items:center;width:86px;height:86px;margin:0 auto 26px;border:3px solid #86e5d7;border-radius:50%;color:#99f3e0;box-shadow:0 0 0 10px #6ee0d00a,0 0 0 20px #6ee0d005,0 0 35px #6ee0d015}
.ready-check .lucide{width:43px;height:43px;stroke-width:3.2}
.invitation-ready .ready-eyebrow{margin:0 0 17px;font-size:14px;font-weight:800;letter-spacing:.13em;color:#ffab68}
.booking-dialog .invitation-ready h2{margin:0;font-size:clamp(30px,4.5vw,49px);line-height:1.15;letter-spacing:-.035em;font-weight:800;color:#f5f8ff}
.invitation-ready h2 span{color:#ffac6b}
.invitation-ready .ready-message{max-width:460px;margin:23px auto 27px;font-size:18px;line-height:1.55;color:#b0cbe1}
.ready-ticket{display:flex;gap:23px;align-items:center;text-align:left;padding:25px 34px;border:1.5px solid #9ec5e127;border-radius:18px;background:#ffffff03;box-shadow:inset 0 1px 0 #ffffff03}
.ready-ticket>.lucide{width:38px;height:38px;flex-shrink:0;color:#e1effa;stroke-width:1.7}
.ready-ticket b{display:block;font-size:18px;font-weight:650;line-height:1.4;color:#dceaf7}
.ready-ticket small{display:block;margin-top:3px;font-size:16px;line-height:1.5;color:#8eaec9}
.ready-button{display:flex;width:100%;gap:20px;margin-top:22px;padding:22px 28px;border:1.5px solid #ffb36c;border-radius:14px;background:linear-gradient(115deg,#ff8530,#f76a20);box-shadow:0 8px 22px #0002,inset 0 1px 0 #ffffff20;font-size:18px;font-weight:750;line-height:1.4;color:white}
.ready-button>.lucide{width:32px;height:32px;flex-shrink:0}
.ready-button>span{text-align:left}
.ready-button>.lucide:last-child{margin-left:auto;width:29px}
.ready-button:hover{background:linear-gradient(115deg,#ff9448,#ff792c);border-color:#ffc087}
.invitation-ready .ready-footnote{margin:23px 0 0;font-size:14px;line-height:1.6;color:#94b4cd}
.reservation-existing .ready-check{color:#ffbc86;border-color:#eaa976;box-shadow:0 0 0 10px #ffb47709,0 0 0 20px #ffb47704}
.existing-edit{display:block;margin:19px auto 0;padding:6px 10px;border:0;background:transparent;color:#c5dcec;font-size:12px;text-decoration:underline;text-underline-offset:4px}
.existing-edit:hover{color:white}
@media(max-width:560px){dialog.booking-dialog:has(.invitation-ready){border-radius:22px;width:calc(100% - 24px)}.invitation-ready{padding:52px 22px 25px;border-radius:20px}.booking-dialog .invitation-ready h2{font-size:35px}.ready-check{width:72px;height:72px;margin-bottom:26px}.ready-check .lucide{width:35px;height:35px}.invitation-ready .ready-eyebrow{font-size:11px}.invitation-ready .ready-message{font-size:15px;margin:20px auto 24px}.ready-ticket{gap:16px;padding:20px;border-radius:13px}.ready-ticket b{font-size:15px}.ready-ticket small{font-size:13px}.ready-ticket>.lucide{width:30px;height:30px}.ready-button{gap:12px;padding:18px;font-size:14px;margin-top:18px}.ready-button>.lucide{width:25px;height:25px}.ready-button>.lucide:last-child{width:22px}.invitation-ready .ready-footnote{font-size:12px}.booking-dialog:has(.invitation-ready) .modal-close{width:34px;height:34px;right:15px;top:15px}}
