.booking-submit{position:relative;overflow:hidden}
.booking-submit.is-loading{gap:9px}
.booking-submit.is-loading .button-spinner{display:inline-block}
.button-spinner{display:none;width:16px;height:16px;border:2px solid rgba(67,38,0,.28);border-top-color:#432600;border-radius:50%;animation:booking-spin .75s linear infinite}
@keyframes booking-spin{to{transform:rotate(360deg)}}
.booking-success-backdrop{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:20px;background:rgba(22,25,30,.54);opacity:0;transition:opacity .18s ease}
.booking-success-backdrop[hidden]{display:none!important;pointer-events:none!important}
.booking-success-backdrop.open{opacity:1}
.booking-success-dialog{position:relative;width:min(460px,100%);padding:33px 32px 28px;overflow:hidden;border:1px solid rgba(250,144,0,.28);border-radius:25px;background:#fff;box-shadow:0 28px 72px rgba(0,0,0,.28);text-align:center;transform:translateY(14px) scale(.98);transition:transform .18s ease}
.booking-success-backdrop.open .booking-success-dialog{transform:translateY(0) scale(1)}
.booking-success-dialog:after{position:absolute;right:-56px;top:-56px;width:152px;height:152px;border-radius:50%;background:rgba(250,144,0,.08);content:''}
.booking-success-dialog>*{position:relative;z-index:1}
.success-check{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 18px;border:2px solid #2ba967;border-radius:50%;background:#f0fbf5;color:#219457;font-size:31px;font-weight:800}
.booking-success-dialog h2{margin:8px 0 8px;color:#1d1d20;font-size:27px;letter-spacing:-.055em}
.booking-success-dialog>p:not(.eyebrow):not(.confirmation-note){max-width:340px;margin:0 auto;color:#6d6d74;font-size:13px;line-height:1.55}
.service-reference-box{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;margin:25px 0 13px;padding:14px 15px;border:1px solid #f0e7d8;border-radius:15px;background:#fffaf2;text-align:left}
.service-reference-box small{grid-column:1/-1;color:#9a640c;font-size:9px;font-weight:850;letter-spacing:.12em}
.service-reference-box strong{overflow:hidden;color:#1d1d20;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:17px;letter-spacing:.035em;text-overflow:ellipsis;white-space:nowrap}
.copy-reference{border:1px solid #efdfc5;border-radius:9px;padding:7px 10px;background:#fff;color:#925600;font-size:11px;font-weight:800}
.copy-reference:hover{border-color:#eab157;background:#fff7e7}
.confirmation-note{min-height:18px;margin:0;color:#73737a;font-size:11px;line-height:1.5}
.booking-success-actions{display:flex;justify-content:center;gap:9px;margin-top:22px}
.booking-success-actions .button{min-width:126px}
.field em{display:block;margin-top:5px;color:#77737a;font-size:11px;font-style:normal;line-height:1.45}
.location-action{display:flex;align-items:center;gap:12px;margin:-2px 0 17px;padding:10px 12px;border:1px dashed #e7c78d;border-radius:12px;background:#fffaf2}
.location-action .button{flex:0 0 auto;padding:9px 12px;font-size:12px}
.location-action span{color:#756c61;font-size:11px;line-height:1.4}
.location-action span.is-success{color:#19734a;font-weight:750}
.location-action span.is-error{color:#a23535}
.required-mark{color:#c53636;font-size:1em;font-weight:900}
.textarea-with-action{position:relative}
.textarea-with-action textarea{width:100%;min-height:88px;padding-right:58px;resize:vertical}
.input-icon-button{position:absolute;right:9px;bottom:9px;display:grid;place-items:center;gap:4px;min-width:37px;height:37px;border:1px solid #edcf9e;border-radius:11px;background:#fff8ed;color:#9a5b00;box-shadow:0 2px 8px rgba(92,58,5,.08);cursor:pointer}
.input-icon-button:hover{border-color:#e6a744;background:#fff2dd;color:#744000}
.input-icon-button:focus-visible{outline:3px solid rgba(250,144,0,.25);outline-offset:2px}
.input-icon-button:disabled{cursor:wait;opacity:.65}
.input-icon-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}
.location-icon-button{width:auto;padding:0 10px}
.location-icon-button span{font-size:11px;font-weight:800;white-space:nowrap}
.location-icon-button.is-loading svg{animation:booking-spin .85s linear infinite}
.input-action-status{display:block;min-height:17px;margin-top:6px;color:#746c62;font-size:11px;line-height:1.4}
.input-action-status.is-success{color:#19734a;font-weight:750}
.input-action-status.is-error{color:#a23535}
.location-share-card{display:flex;align-items:center;gap:11px;margin-top:11px;padding:11px 12px;border:1px solid #bfe2d0;border-radius:14px;background:#f7fffa}
.location-share-card[hidden]{display:none!important}
.location-share-copy{display:flex;align-items:center;gap:9px;min-width:0}
.location-share-copy>svg{flex:0 0 31px;width:31px;height:31px;fill:#e8f8ef;stroke:#16864c;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}
.location-share-copy strong{display:block;color:#24513b;font-size:12px}
.location-share-copy span{display:block;max-width:300px;margin-top:4px;overflow:hidden;color:#5f7569;font-size:10px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}
.location-share-card>.text-action{margin-left:auto;color:#a33d36}
@media(max-width:570px){.booking-success-backdrop{padding:14px}.booking-success-dialog{padding:28px 20px 21px;border-radius:20px}.booking-success-dialog h2{font-size:24px}.service-reference-box strong{font-size:15px}.booking-success-actions .button{flex:1;min-width:0}}
@media(max-width:570px){.location-action{align-items:flex-start;flex-direction:column;gap:7px}.location-action .button{width:100%}}
@media(max-width:570px){.textarea-with-action textarea{min-height:102px}.location-icon-button span{display:none}.location-icon-button{width:37px;padding:0}.location-share-copy span{max-width:calc(100vw - 175px)}}
