/* Shared booking finish, using the homepage's rose, gold and rounded controls. */
body.booking-completion-open { overflow:hidden; }
.booking-completion { width:min(560px,calc(100% - 32px)); max-height:calc(100dvh - 32px); padding:0; margin:auto; border:1px solid var(--rose-light,#E8C4BF); border-radius:28px; background:var(--cream,#FDFAF8); color:var(--text,#2C2220); box-shadow:0 32px 100px rgba(44,34,32,.25); overflow:hidden; animation:bcPop .3s cubic-bezier(.22,1,.36,1); }
.booking-completion::backdrop { background:rgba(44,34,32,.5); backdrop-filter:blur(6px); }
@keyframes bcPop { from { opacity:0; transform:translateY(12px) scale(.98); } to { opacity:1; transform:none; } }
.booking-completion__form { position:relative; display:flex; flex-direction:column; max-height:calc(100dvh - 34px); padding:0; }
.booking-completion__header { flex:none; padding:28px 32px 20px; background:linear-gradient(145deg,var(--rose-xlight,#F5ECEA),var(--cream,#FDFAF8)); }
.booking-completion__icon { display:none; }
.booking-completion__eyebrow { color:var(--rose-dark,#A86860); font-size:.7rem; font-weight:500; letter-spacing:.16em; text-transform:uppercase; margin:0 48px 10px 0; }
.booking-completion__title { font:500 2.35rem/1.12 var(--font-h,'Cormorant Garamond',Georgia,serif); margin:0 30px 12px 0; }
.booking-completion__intro { color:var(--text-2,#6B5553); font-size:.9rem; line-height:1.65; margin:0; }
.booking-completion__close { position:absolute; right:14px; top:14px; z-index:1; width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--rose-light,#E8C4BF); border-radius:50%; background:var(--cream,#FDFAF8); color:var(--rose-dark,#A86860); font-size:1.4rem; cursor:pointer; }
.booking-completion__body { min-height:0; overflow-y:auto; overscroll-behavior:contain; padding:24px 32px 8px; scroll-padding-block:16px; }
.booking-completion__group { border:0; padding:0; margin:0 0 24px; min-width:0; }
.booking-completion__group legend { display:block; width:100%; padding:0 0 12px; margin-bottom:18px; border-bottom:1px solid var(--cream-3,#E8DDD9); color:var(--rose-dark,#A86860); font-size:.76rem; font-weight:500; letter-spacing:.06em; }
.booking-completion .form-group { margin-bottom:18px; }
.booking-completion .form-group label { display:block; margin-bottom:8px; font-size:.86rem; font-weight:500; }
.booking-completion .form-control { width:100%; box-sizing:border-box; min-height:50px; padding:12px 16px; font-family:inherit; font-size:16px; color:inherit; background:white; border:1px solid var(--cream-3,#E8DDD9); border-radius:12px; }
.booking-completion .form-control:focus { border-color:var(--rose,#C9847A); outline:2px solid var(--rose-light,#E8C4BF); outline-offset:2px; }
.booking-completion .form-error { display:none; color:#A34130; font-size:.8rem; line-height:1.5; margin:8px 0 0; }
.booking-completion .form-error.show { display:block; }
.booking-completion [aria-invalid="true"] { border-color:#A34130; }
.booking-completion__consent { display:grid; grid-template-columns:22px 1fr; gap:6px 12px; padding:16px; margin-bottom:12px; border:1px solid var(--cream-3,#E8DDD9); background:white; border-radius:16px; transition:background .2s,border-color .2s; }
.booking-completion__consent:has(input:checked) { background:var(--rose-xlight,#F5ECEA); border-color:var(--rose-light,#E8C4BF); }
.booking-completion__consent:has(input[aria-invalid="true"]) { border-color:#A34130; }
.booking-completion__consent input { width:20px; height:20px; margin-top:3px; accent-color:var(--rose-dark,#A86860); cursor:pointer; }
.booking-completion__consent label { color:var(--text-2,#6B5553); font-size:.85rem; line-height:1.65; cursor:pointer; }
.booking-completion__consent a,.booking-completion__consent .form-error { grid-column:2; }
.booking-completion__consent a { color:var(--rose-dark,#A86860); text-decoration:underline; text-underline-offset:3px; font-size:.8rem; min-height:28px; }
.booking-completion__color-hint { color:var(--text-2,#6B5553); font-size:.85rem; line-height:1.6; margin:0 0 18px; }
.booking-completion__footer { flex:none; padding:14px 32px 22px; background:var(--cream,#FDFAF8); border-top:1px solid var(--cream-3,#E8DDD9); }
.booking-completion__error { color:#A34130; font-size:.82rem; line-height:1.5; margin:0 0 10px; }
.booking-completion__error:empty { display:none; }
.booking-completion__submit { width:100%; justify-content:center; min-height:52px; font-size:.95rem; }
.booking-completion__submit:disabled { opacity:.65; cursor:wait; }
.booking-completion__note { margin:10px 0 0; font-size:.72rem; color:var(--text-2,#6B5553); text-align:center; line-height:1.5; }
.booking-completion :focus-visible,.booking-color-picker :focus-visible { outline:2px solid var(--rose-dark,#A86860); outline-offset:4px; }
/* These exact color fields appear in both places. */
.booking-color-picker .color-slots { display:flex; gap:20px; margin:0; padding:4px 0 8px; }
.booking-color-picker .color-slot { position:relative; display:block; width:64px; height:64px; flex:none; }
.booking-color-picker .color-slot__preview { display:grid; place-items:center; width:64px; height:64px; padding:0; background:var(--cream-2,#F4EDE9); border:2px dashed var(--rose-light,#E8C4BF); border-radius:50%; color:var(--rose-dark,#A86860); cursor:pointer; transition:transform .2s,border-color .2s; }
.booking-color-picker .color-slot__preview:hover { border-color:var(--rose,#C9847A); transform:translateY(-2px); }
.booking-color-picker .color-slot__preview.is-selected { border:3px solid white; box-shadow:0 0 0 1px var(--cream-3,#E8DDD9),0 4px 12px rgba(44,34,32,.12); }
.booking-color-picker .color-slot__remove { position:absolute; top:-14px; right:-14px; display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; background:transparent; color:var(--text,#2C2220); cursor:pointer; z-index:1; }
.booking-color-picker .color-slot__remove svg { box-sizing:content-box; padding:5px; border-radius:50%; background:white; border:1px solid var(--rose-light,#E8C4BF); }
.booking-color-picker [hidden] { display:none!important; }
.color-choice-panel { padding:18px; border:1px solid var(--rose-light,#E8C4BF); border-radius:16px; margin-top:12px; background:white; }
.color-choice-panel__title { font-size:.85rem; font-weight:500; margin:0 0 10px; }
.color-presets { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.color-preset { display:flex; flex-direction:column; align-items:center; gap:6px; min-width:44px; min-height:64px; padding:4px; background:none; border:0; cursor:pointer; font-family:inherit; color:var(--text-2,#6B5553); }
.color-preset span { display:block; width:32px; height:32px; border-radius:50%; border:1px solid rgba(44,34,32,.12); }
.color-preset small { font-size:.68rem; }
.color-custom { position:relative; display:flex!important; align-items:center; justify-content:center; min-height:44px; margin:12px 0 0!important; border:1px solid var(--rose-light,#E8C4BF); border-radius:50px; color:var(--rose-dark,#A86860); font-size:.82rem!important; cursor:pointer; overflow:hidden; }
.color-custom input { position:absolute; inset:0; opacity:0; width:100%; height:100%; cursor:pointer; }
.color-custom:focus-within { outline:2px solid var(--rose-dark,#A86860); outline-offset:3px; }
.color-selection-status { font-size:.78rem; line-height:1.55; color:var(--text-2,#6B5553); margin:12px 0 0; }
@media(max-width:480px){.booking-completion{width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:24px}.booking-completion__form{max-height:calc(100dvh - 22px)}.booking-completion__header{padding:24px 22px 18px}.booking-completion__title{font-size:1.85rem}.booking-completion__intro{font-size:.84rem}.booking-completion__body{padding:20px 22px 4px}.booking-completion__footer{padding:12px 22px 18px}.booking-completion__consent{padding:14px 12px}.color-choice-panel{padding:12px}.color-presets{gap:8px}}
@media(max-height:600px){.booking-completion__header{padding-block:14px}.booking-completion__eyebrow,.booking-completion__intro,.booking-completion__note{display:none}.booking-completion__title{font-size:1.6rem;margin-bottom:0}.booking-completion__footer{padding-block:10px}}
@media(prefers-reduced-motion:reduce){.booking-completion{animation:none}.booking-completion *,.booking-color-picker *{transition:none!important}}
