/* Photo-first booking details. Keep the shared cream, blush and sage palette. */
#booking-fields{animation:none}
#booking-dialog[data-booking-step="photos"] .booking-main{padding-top:32px}
#booking-dialog .booking-title-in{animation:booking-title-pop .44s cubic-bezier(.2,.85,.3,1) both}
#booking-fields>.booking-reveal{animation:booking-field-in .44s cubic-bezier(.2,.85,.25,1) backwards;animation-delay:var(--booking-delay,0ms)}
#booking-dialog .booking-selected-flash{display:flex;align-items:center;gap:13px;position:relative;background:#f2e9e7;border:1px solid #e9d9da;border-radius:19px;padding:12px;margin-bottom:22px;min-width:0}
#booking-dialog .booking-flash-art{display:block;width:77px;height:77px;flex:0 0 77px;border-radius:13px;background:#fffdf8;overflow:hidden}
#booking-dialog .booking-flash-copy{display:flex;flex-direction:column;gap:5px;min-width:0;padding-right:23px}
#booking-dialog .booking-flash-label{font-size:8px;letter-spacing:.1em;color:#a8798e;font-weight:600}
#booking-dialog .booking-flash-copy strong{font-size:13px;font-weight:550;line-height:1.5;overflow-wrap:anywhere}
#booking-dialog .booking-clear-flash{position:absolute;right:10px;top:10px;width:28px;height:28px;padding:0;border-radius:50%;background:#fffaf3b5;color:#a17987;font-size:18px;line-height:1}
#booking-dialog .booking-photo-field{margin-bottom:21px}
#booking-dialog .booking-photo-box{position:relative;border:1.5px dashed #b7c0a4;border-radius:23px;background:linear-gradient(145deg,#edf0e2,#f2f0e5);padding:20px 14px 15px;min-height:174px;transition:border-color .2s,background .2s,transform .2s}
#booking-dialog .booking-photo-box:hover{border-color:#99a488;background:#e9eedd}
#booking-dialog .booking-photo-box.is-selected{border-color:#c88ea4;background:#f5e7eb;transform:scale(1.015)}
#booking-dialog .booking-photo-box:focus-within{outline:3px solid #927584;outline-offset:4px}
#booking-dialog .booking-file-input{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;margin:0!important;padding:0!important}
#booking-dialog .booking-upload-trigger{display:flex;align-items:center;flex-direction:column;gap:6px;cursor:pointer;margin:0;color:#737e63;font-size:11px}
#booking-dialog .booking-upload-trigger strong{font-size:14px;font-weight:550;letter-spacing:-.2px}
#booking-dialog .booking-upload-trigger>span:last-child{color:#959885;font-size:10px}
#booking-dialog .booking-photo-icon{width:43px;height:43px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:#fffdf3;border:1px solid #fefcf4;box-shadow:0 4px 9px #6f79570a;color:#96a17e;font-size:30px;line-height:1;margin-bottom:2px;transform:rotate(-5deg);transition:transform .25s}
#booking-dialog .booking-photo-box:hover .booking-photo-icon{transform:rotate(5deg) translateY(-2px)}
#booking-dialog #booking-photo-count{font-size:9px;line-height:1.65;margin-top:13px;color:#949781}
#booking-dialog .upload-thumbs:empty{display:none}
#booking-dialog .upload-thumbs{gap:12px;margin-top:16px}
#booking-dialog .upload-thumb{width:calc((100% - 24px)/3);max-width:104px;animation:booking-photo-pop .36s cubic-bezier(.2,.85,.25,1)}
#booking-dialog .upload-thumb img{width:100%;height:86px;border-radius:13px;border-color:#e0decc}
#booking-dialog .remove-file{width:28px;height:28px;top:-7px;right:-7px}
#booking-dialog .booking-file-error{color:#a35773;margin-top:12px;font-size:10px}
#booking-dialog .booking-caption{margin-bottom:10px}
#booking-dialog .booking-caption textarea{min-height:89px;max-height:220px;line-height:1.6}
#booking-dialog #booking-fields>.booking-photo-help{font-size:10px;margin:0 0 9px;line-height:1.7;color:#a09b8c}
#booking-dialog .booking-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:11px}
#booking-dialog .booking-choice{position:relative;min-height:60px;padding:13px 11px;gap:8px;border-radius:16px;animation:booking-option-in .4s cubic-bezier(.2,.85,.2,1) backwards;animation-delay:var(--choice-delay,0ms);transition:background .18s,border-color .18s,box-shadow .18s}
#booking-dialog .booking-choice:hover{background:#fbf4ec;border-color:#d1bcbd;transform:translateY(-2px)}
#booking-dialog .booking-choice.is-selected,#booking-dialog .booking-choice:has(input:checked){background:#f5e5e9;border-color:#c994aa;box-shadow:0 3px 9px #b9819410}
#booking-dialog .booking-choice:focus-within{outline:3px solid #927584;outline-offset:3px}
#booking-dialog .booking-choice input[type=radio]{width:15px;height:15px;outline:none}
#booking-dialog .booking-choice-copy{min-width:0}
#booking-dialog .booking-choice strong{font-size:11px;font-weight:550;line-height:1.4}
#booking-dialog .booking-choice .help-text{font-size:9px;line-height:1.45;margin-top:4px}
#booking-dialog .booking-placement .booking-choice:last-child{grid-column:1/-1;justify-content:center;background:#efefe3;border-color:#d5d8c5}
#booking-dialog .booking-placement .booking-choice:last-child.is-selected{background:#e5ead7;border-color:#a6b58d}
#booking-dialog .booking-choice.is-picked{animation:booking-choice-bounce .34s cubic-bezier(.2,.8,.2,1);animation-delay:0ms}
#booking-dialog .booking-sizes .booking-choice{min-height:85px;padding:14px 11px;gap:10px}
#booking-dialog .booking-sizes input[type=radio]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
#booking-dialog .booking-choice-mark{display:flex;align-items:center;justify-content:center;width:25px;flex:0 0 25px;font-family:Georgia,serif;font-size:27px;line-height:1;color:#b38798}
#booking-dialog .booking-colours{margin-top:28px}
#booking-dialog .booking-colours .booking-choice{min-height:57px}
#booking-dialog .booking-flexible-button{display:inline-flex;align-items:center;padding:8px 13px;font-size:11px;background:#eef0e2;border:1px solid #dce1cd;border-radius:20px;color:#889574;margin:-7px 0 24px;transition:transform .18s,background .18s}
#booking-dialog .booking-flexible-button:hover{background:#e6ebd7;transform:translateY(-2px)}
#booking-dialog .booking-flexible-button:active{transform:scale(.95)}
#booking-dialog .booking-review-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 18px}
#booking-dialog .booking-review-photos img{width:100%;height:93px;object-fit:cover;border-radius:14px;border:1px solid #e1ddcf}
#booking-dialog[data-booking-step="review"] .booking-main,#booking-dialog[data-booking-step="complete"] .booking-main{padding-top:30px}
#booking-dialog .booking-success-mark{animation:booking-photo-pop .5s cubic-bezier(.2,.9,.2,1)}
#booking-dialog #booking-back{display:inline-flex;visibility:visible;min-width:78px;flex-shrink:0}
#booking-dialog #booking-next{min-width:104px}
@keyframes booking-title-pop{0%{opacity:0;transform:translateY(11px)}70%{opacity:1;transform:translateY(-1px)}100%{opacity:1;transform:translateY(0)}}
@keyframes booking-field-in{0%{opacity:0;transform:translateY(13px)}75%{opacity:1;transform:translateY(-2px)}100%{opacity:1;transform:translateY(0)}}
@keyframes booking-option-in{0%{opacity:0;transform:translateY(10px) scale(.97)}75%{opacity:1;transform:translateY(-2px) scale(1.01)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes booking-choice-bounce{0%,100%{transform:scale(1)}35%{transform:scale(.96)}70%{transform:scale(1.025)}}
@keyframes booking-photo-pop{0%{opacity:0;transform:scale(.91) rotate(-3deg)}75%{opacity:1;transform:scale(1.025) rotate(1deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@media(max-width:360px){#booking-dialog .booking-choice{padding:12px 9px;gap:6px}#booking-dialog .booking-choice strong{font-size:10px}#booking-dialog .booking-sizes .booking-choice{gap:6px}#booking-dialog .booking-flash-art{width:65px;height:65px;flex-basis:65px}#booking-dialog .booking-flash-copy strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){#booking-dialog .booking-title-in,#booking-fields>.booking-reveal,#booking-dialog .booking-choice,#booking-dialog .booking-choice.is-picked,#booking-dialog .upload-thumb,#booking-dialog .booking-success-mark{animation:none!important}#booking-dialog .booking-photo-box,#booking-dialog .booking-photo-icon,#booking-dialog .booking-choice,#booking-dialog .booking-flexible-button{transition:none!important}#booking-dialog .booking-photo-box:hover,#booking-dialog .booking-photo-box.is-selected,#booking-dialog .booking-photo-box:hover .booking-photo-icon,#booking-dialog .booking-choice:hover,#booking-dialog .booking-flexible-button:hover{transform:none!important}}

/* Custom / Flash inspired branches. */
#booking-dialog[data-booking-step="method"] .booking-main{padding-top:46px}
#booking-dialog .booking-methods{display:grid;gap:17px;margin-top:6px}
#booking-dialog .booking-method-card{position:relative;display:grid;grid-template-columns:62px 1fr 18px;align-items:center;gap:14px;text-align:left;padding:23px 17px;border:1px solid #e5d6d3;border-radius:24px;background:linear-gradient(125deg,#f7ece9,#fffaf1);color:#76696c;min-height:133px;box-shadow:0 5px 14px #9b798509;animation:booking-method-enter .48s cubic-bezier(.2,.9,.25,1) backwards;animation-delay:var(--method-delay,0ms);transition:transform .2s,border-color .2s,box-shadow .2s}
#booking-dialog .booking-method-card:nth-child(2){background:linear-gradient(125deg,#eaf0e0,#fffaf1);border-color:#d9dfcd;color:#77816b}
#booking-dialog .booking-method-card:hover{transform:translateY(-4px);border-color:#c99caf;box-shadow:0 9px 18px #9b798512}
#booking-dialog .booking-method-card:active{transform:scale(.965) rotate(-.6deg)}
#booking-dialog .booking-method-card.is-selected{border-color:#c58fa7;box-shadow:0 0 0 1px #c58fa74a,0 6px 15px #9b798510}
#booking-dialog .booking-method-card:nth-child(2).is-selected{border-color:#a6b08f;box-shadow:0 0 0 1px #a6b08f4a,0 6px 15px #80927310}
#booking-dialog .booking-method-icon{width:62px;height:62px;object-fit:contain;filter:drop-shadow(0 5px 5px #8b766211);animation:booking-method-bob 2.7s ease-in-out 2;animation-delay:var(--method-delay,0ms)}
#booking-dialog .booking-method-copy{display:flex;flex-direction:column;gap:7px}
#booking-dialog .booking-method-copy strong{font-size:16px;font-weight:550;letter-spacing:-.35px;line-height:1.25}
#booking-dialog .booking-method-copy>span{font-size:10px;line-height:1.65;color:#9d918b}
#booking-dialog .booking-method-card:nth-child(2) .booking-method-copy>span{color:#999f8d}
#booking-dialog .booking-method-arrow{font-size:21px;color:#bc91a4;transition:transform .2s}
#booking-dialog .booking-method-card:nth-child(2) .booking-method-arrow{color:#a3af91}
#booking-dialog .booking-method-card:hover .booking-method-arrow{transform:translateX(3px)}
#booking-dialog #booking-fields>.booking-method-help{font-size:10px;text-align:center;margin-top:23px;color:#a79c8e}
#booking-dialog[data-booking-step="flash"] .booking-main{padding-top:31px}
#booking-dialog .booking-number-select{min-height:56px;font-weight:500}
#booking-dialog .booking-flash-preview{position:relative;min-height:264px;border:1px solid #e6ddd2;border-radius:24px;background:radial-gradient(ellipse at 50% 35%,#fffef9,#f8f1e7);padding:34px 17px 17px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:-5px;overflow:hidden}
#booking-dialog .booking-flash-number{position:absolute;top:14px;left:15px;font-size:11px;font-weight:600;letter-spacing:.03em;padding:5px 10px;border-radius:10px;background:#f0dde3;color:#a9788e;transform:rotate(-5deg);z-index:1;animation:booking-number-pop .4s cubic-bezier(.2,.9,.3,1)}
#booking-dialog .booking-picker-art{display:block;width:100%;height:208px;overflow:visible;animation:booking-design-pop .5s cubic-bezier(.2,.85,.25,1)}
#booking-dialog .booking-picker-name{font-size:12px;font-weight:550;letter-spacing:-.1px;color:#8d8178;margin-top:10px;line-height:1.5;text-align:center}
#booking-dialog .booking-flash-preview.is-empty{background:#f3f0e5;min-height:264px;padding:27px}
#booking-dialog .booking-flash-empty-mark{font-size:48px;color:#b6b996;line-height:1.2;display:block;margin-bottom:18px}
#booking-dialog .booking-flash-preview.is-empty strong{font-size:13px;font-weight:500;color:#979984;text-align:center}
#booking-dialog .booking-flash-preview.is-empty p{font-size:10px;color:#a8a28e;margin-top:8px;line-height:1.6;text-align:center}
#booking-dialog .booking-browse-flash{display:flex;width:100%;align-items:center;gap:11px;padding:13px 15px;border:1px solid #e0e3d2;background:#edf0e2;border-radius:16px;margin-top:16px;color:#899379;font-size:12px;transition:transform .2s,background .2s}
#booking-dialog .booking-browse-flash>img{width:32px;height:32px;transition:transform .2s}
#booking-dialog .booking-browse-flash>span:last-child{margin-left:auto;font-size:17px;color:#a7af94}
#booking-dialog .booking-browse-flash:hover{background:#e6ecd8;transform:translateY(-2px)}
#booking-dialog .booking-browse-flash:hover>img{transform:rotate(-7deg)}
#booking-dialog .booking-browse-flash:active{transform:scale(.975)}
@keyframes booking-method-enter{0%{opacity:0;transform:translateY(17px) scale(.96)}72%{opacity:1;transform:translateY(-3px) scale(1.015)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes booking-method-bob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-5px) rotate(3deg)}}
@keyframes booking-number-pop{0%{opacity:0;transform:scale(.7) rotate(-15deg)}70%{opacity:1;transform:scale(1.08) rotate(-2deg)}100%{opacity:1;transform:scale(1) rotate(-5deg)}}
@keyframes booking-design-pop{0%{opacity:0;transform:scale(.94) translateY(7px) rotate(-2deg)}75%{opacity:1;transform:scale(1.015) translateY(-2px) rotate(1deg)}100%{opacity:1;transform:scale(1) translateY(0) rotate(0)}}
@media(max-width:360px){#booking-dialog .booking-method-card{grid-template-columns:53px 1fr 15px;gap:11px;padding:22px 14px}#booking-dialog .booking-method-icon{width:53px;height:53px}#booking-dialog .booking-method-copy strong{font-size:15px}#booking-dialog .booking-method-copy>span{font-size:9px}}
@media(prefers-reduced-motion:reduce){#booking-dialog .booking-method-card,#booking-dialog .booking-method-icon,#booking-dialog .booking-flash-number,#booking-dialog .booking-picker-art{animation:none!important}#booking-dialog .booking-method-card,#booking-dialog .booking-method-arrow,#booking-dialog .booking-browse-flash,#booking-dialog .booking-browse-flash>img{transition:none!important}#booking-dialog .booking-method-card:hover,#booking-dialog .booking-method-card:active,#booking-dialog .booking-method-card:hover .booking-method-arrow,#booking-dialog .booking-browse-flash:hover,#booking-dialog .booking-browse-flash:active,#booking-dialog .booking-browse-flash:hover>img{transform:none!important}}

/* A little paper calendar, shared by phones and desktops. */
#booking-dialog[data-booking-step="timing"] .booking-main{padding-top:28px}
#booking-dialog .booking-date-field{margin-bottom:24px}
#booking-dialog .booking-date-field>legend{margin-bottom:12px}
#booking-dialog .cozzyko-calendar{position:relative;padding:14px 13px 8px;border:1px solid #e2d8c8;border-radius:23px 25px 24px 21px;background:#fffaf0;box-shadow:0 5px 15px #8e79570b,inset 0 0 0 4px #fffdf780;isolation:isolate}
#booking-dialog .cozzyko-calendar:before{content:'';position:absolute;width:49px;height:13px;top:-7px;left:calc(50% - 25px);background:#e5d9ba96;border:1px solid #fff5;transform:rotate(-5deg);border-radius:2px;z-index:-1;pointer-events:none}
#booking-dialog .cozzyko-calendar[aria-invalid=true]{border-color:#b46b83}
#booking-dialog .calendar-keepsake{position:relative;display:flex;align-items:center;gap:6px;min-height:35px;padding-right:65px}
#booking-dialog .calendar-caption{font-size:8px;font-weight:600;letter-spacing:.11em;color:#8d7b65;line-height:1.6}
#booking-dialog .calendar-sparkle{width:13px;height:16px;flex:none;color:#c0a786;transform:rotate(-10deg);pointer-events:none}
#booking-dialog .calendar-sparkle svg{display:block;width:100%;height:100%}
#booking-dialog .calendar-cat{position:absolute;right:0;top:-12px;width:66px;height:54px;object-fit:contain;transform:rotate(-7deg);pointer-events:none;user-select:none}
#booking-dialog .calendar-month-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:5px 0 10px}
#booking-dialog .calendar-month{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:7px;min-width:0;color:#776956;line-height:1.25}
#booking-dialog .calendar-month-name{font-family:Georgia,serif;font-style:italic;font-size:27px;font-weight:400;letter-spacing:-.8px}
#booking-dialog .calendar-year{font-family:var(--sans);font-size:11px;letter-spacing:.02em;color:#99836a;font-weight:500}
#booking-dialog .calendar-month-button{display:flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:44px;padding:12px;border:0;border-radius:46% 54% 51% 49%;background:#f1e8da;color:#9c7e70;transition:background .18s,transform .18s;touch-action:manipulation}
#booking-dialog .calendar-month-button svg{display:block;width:20px;height:20px}
#booking-dialog .calendar-month-button:hover:not(:disabled){background:#ebdfce;transform:rotate(-6deg)}
#booking-dialog .calendar-month-button:disabled{opacity:.3;cursor:default}
#booking-dialog .calendar-weekdays,#booking-dialog .calendar-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px}
#booking-dialog .calendar-weekdays{margin-bottom:5px;padding-bottom:8px;border-bottom:1px dashed #dfd4c3}
#booking-dialog .calendar-weekdays>span{text-align:center;font-size:10px;font-weight:500;color:#8b7c6b;line-height:1.6}
#booking-dialog .calendar-weekdays>span:first-child,#booking-dialog .calendar-weekdays>span:last-child{color:#ad7e91}
#booking-dialog .calendar-cell{min-width:0;min-height:44px}
#booking-dialog .calendar-day{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;border:0;border-radius:48% 52% 46% 54%;padding:3px 0;background:transparent;color:#756b59;font-size:13px;font-weight:500;line-height:1;touch-action:manipulation;transition:background .17s,color .17s}
#booking-dialog .calendar-day:before{content:'';position:absolute;inset:3px 1px;border:1px solid transparent;border-radius:48% 52% 43% 57%;transform:rotate(-8deg);pointer-events:none}
#booking-dialog .calendar-day:not(:disabled):hover{background:#f6ebdf}
#booking-dialog .calendar-day.is-today:not(.is-selected):before{border-color:#b9bea0;border-style:dashed}
#booking-dialog .calendar-day.is-selected{background:#f1dce3;color:#885e74;font-weight:650}
#booking-dialog .calendar-day.is-selected:before{border-color:#c694a9}
#booking-dialog .calendar-day:disabled{color:#c2b9ab;cursor:default}
#booking-dialog .calendar-day-number{position:relative;z-index:1}
#booking-dialog .calendar-day-heart{display:none;position:absolute;right:1px;top:0;width:11px;height:11px;color:#b47894;transform:rotate(13deg);pointer-events:none}
#booking-dialog .calendar-day.is-selected .calendar-day-heart{display:block}
#booking-dialog .calendar-day-heart svg{display:block;width:100%;height:100%}
#booking-dialog .calendar-day.is-picked{animation:calendar-day-pop .28s cubic-bezier(.2,.8,.3,1)}
#booking-dialog .calendar-day:focus-visible,#booking-dialog .calendar-month-button:focus-visible,#booking-dialog .calendar-flexible:focus-visible{outline:2px solid #ad8297;outline-offset:1px}
#booking-dialog .calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;padding-top:7px;border-top:1px dashed #dfd4c3}
#booking-dialog .calendar-selection{display:flex;align-items:center;gap:6px;min-width:0;font-size:11px;line-height:1.5;color:#927387;margin:0}
#booking-dialog .calendar-selection-mark{display:block;flex:none;width:15px;height:15px;color:#b4879c}
#booking-dialog .calendar-selection-mark svg{display:block;width:100%;height:100%}
#booking-dialog .calendar-flexible{min-height:44px;flex:none;padding:7px 9px;background:none;border:0;border-radius:16px;color:#8d8f71;font-size:11px;text-underline-offset:4px;touch-action:manipulation}
#booking-dialog .calendar-flexible.is-flexible{text-decoration:underline;text-decoration-style:wavy}
#booking-dialog .booking-date-field>.help-text{font-size:10px;line-height:1.7;margin-top:12px}
@keyframes calendar-day-pop{0%,100%{transform:scale(1)}45%{transform:scale(.9) rotate(-4deg)}75%{transform:scale(1.06) rotate(2deg)}}
@media(max-width:360px){#booking-dialog .cozzyko-calendar{margin-inline:-7px;padding-inline:10px}#booking-dialog .calendar-caption{font-size:7px}#booking-dialog .calendar-month-name{font-size:25px}#booking-dialog .calendar-day{font-size:12px}#booking-dialog .calendar-selection{font-size:10px}#booking-dialog .calendar-flexible{padding-inline:5px;font-size:10px}}
@media(prefers-reduced-motion:reduce){#booking-dialog .calendar-day.is-picked{animation:none}#booking-dialog .calendar-day,#booking-dialog .calendar-month-button{transition:none}#booking-dialog .calendar-month-button:hover:not(:disabled){transform:none}}
#booking-dialog[data-booking-step="deposit"] .booking-main{padding-top:26px}
#booking-dialog .booking-deposit-card{padding:16px 18px;border:1px solid #dddcc9;border-radius:24px;background:#f1f2e7;text-align:center;color:#626b55}
#booking-dialog .booking-deposit-kicker{display:block;font-size:10px;letter-spacing:.13em;color:#7a836b}
#booking-dialog .booking-deposit-amount{display:block;font-family:'Trebuchet MS',sans-serif;font-size:36px;font-weight:500;line-height:1.2;margin:6px 0 3px;letter-spacing:-2px}
#booking-dialog .booking-deposit-card>p{font-size:12px;line-height:1.6;margin:4px 0}
#booking-dialog .booking-deposit-email{display:block;font-size:clamp(14px,4vw,17px);font-weight:550;overflow-wrap:anywhere;margin:12px 0 7px;user-select:all}
#booking-dialog .booking-deposit-copy{border:1px solid #cbd3bc;border-radius:99px;background:#fffdf6;color:#69765c;padding:7px 16px;font-size:12px;min-height:36px}
#booking-dialog .booking-deposit-steps{text-align:left;margin:12px 0 8px;padding-left:21px;font-size:11px;line-height:1.6}
#booking-dialog .booking-deposit-steps li{padding:3px 0 3px 4px}
#booking-dialog .booking-deposit-card .help-text{font-size:10px;color:#7a816f;border-top:1px dashed #d5dbc7;padding-top:10px}
#booking-dialog .booking-deposit-sender{display:grid;gap:16px;margin-top:17px}
#booking-dialog .booking-deposit-confirmation{padding:14px 15px;border:1px solid #d8ddc9;border-radius:16px;background:#f1f2e7;align-items:center;margin-top:17px}
#booking-dialog .booking-deposit-followup{display:block;text-align:center;color:#69765c;font-size:12px;line-height:1.8;margin:18px 0;text-underline-offset:4px}
/* A little count and half-hour time chips, in Cozzyko mint. */
.booking-quantity{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 10px;align-items:center;margin:0 0 25px;padding:18px 16px;border:1px solid #c2d6bf;border-radius:21px;background:#edf5e8}
.booking-quantity h3,.booking-time-heading h3{font-family:'Gaegu',ui-rounded,'Trebuchet MS',sans-serif;font-size:25px;font-weight:700;line-height:1.1;color:#46654f;margin:0 0 5px}
.booking-quantity-controls{display:flex;align-items:center;gap:5px}
.booking-quantity-controls button{width:36px;height:38px;padding:0;border:1px solid #b4c8ac;border-radius:13px;background:#fffdf5;color:#4f7056;font-size:20px;line-height:1}
.booking-quantity-controls button:disabled{opacity:.4;cursor:default}
.booking-quantity-controls .form-input{width:42px;min-height:38px;padding:5px 0;text-align:center;font-size:17px;border:0;background:transparent;color:#45674e;appearance:textfield;-moz-appearance:textfield}
.booking-quantity-controls input::-webkit-inner-spin-button,.booking-quantity-controls input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.booking-quantity-estimate{grid-column:1/-1;border-top:1px dashed #bdcfb6;padding-top:10px;color:#597458;font-size:11px;line-height:1.7;margin:0}
.booking-time-picker{margin:25px 0 22px;border:1px solid #bed3b8;background:#edf5e7;border-radius:24px;padding:20px 17px 15px;scroll-margin-top:14px}
.booking-time-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.booking-time-heart{font-family:'Gaegu',sans-serif;font-size:30px;color:#789c77;transform:rotate(10deg)}
.booking-time-estimate{margin:15px 0 4px;font-size:12px;font-weight:550;color:#4d6c50;line-height:1.6}
.booking-time-status{margin:6px 0 15px;font-size:11px;line-height:1.6;color:#697d61}
.booking-time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.booking-time-option{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:58px;padding:9px 3px 5px;border:1px solid #bdcdb2;border-radius:15px 17px 15px 18px;background:#fffdf5;color:#47644c;box-shadow:0 2px 0 #51724d0a;transition:transform .15s,background .15s,border-color .15s}
.booking-time-option:not(:disabled):hover{transform:translateY(-2px);background:#f8fceF;border-color:#83a17a}
.booking-time-option.is-selected{background:#628569;border-color:#628569;color:#fffdf5;box-shadow:0 3px 9px #55734c20}
.booking-time-option.is-selected:not(:disabled):hover{background:#52765c;border-color:#52765c}
.booking-time-label{font-size:12px;font-weight:600;line-height:1.3;white-space:nowrap}
.booking-time-mark{height:14px;font-size:9px;line-height:14px}
.booking-time-option:disabled{background:#e2ebdb;color:#8c9c83;border-color:#d5dfcc;box-shadow:none;cursor:not-allowed}
.booking-time-option:focus-visible{outline:3px solid #52765a;outline-offset:3px}
.booking-time-selection{font-family:'Gaegu',ui-rounded,sans-serif;margin:15px 0 8px;color:#4c7052;font-size:17px;line-height:1.3}
.booking-time-refresh{display:block;background:none;color:#5d795c;padding:8px 3px;font-size:11px;min-height:36px;text-decoration:underline;text-underline-offset:4px}
.booking-time-picker[aria-invalid=true]{outline:2px solid #aa536f;outline-offset:4px}
@media(max-width:370px){.booking-quantity{grid-template-columns:1fr;padding:16px}.booking-quantity-controls{justify-content:center}.booking-quantity h3{font-size:24px}.booking-time-picker{padding:18px 13px 13px}.booking-time-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.booking-time-option{transition:none}.booking-time-option:not(:disabled):hover{transform:none}}
/* A few favourite flash numbers, with a clear one-or-all choice. */
#booking-dialog .booking-flash-intent .booking-choice-grid{grid-template-columns:1fr;gap:9px}
#booking-dialog .booking-flash-intent .booking-choice{min-height:68px;padding:13px 15px;border-radius:18px;background:#f5f8ed;border-color:#d1ddc6;align-items:center}
#booking-dialog .booking-flash-intent .booking-choice.is-selected{background:#e3efdc;border-color:#8daa80}
#booking-dialog .booking-flash-intent .booking-choice strong{font-family:'Gaegu',ui-rounded,sans-serif;font-size:21px;line-height:1.15;color:#46604b}
#booking-dialog .booking-flash-intent .booking-choice .help-text{font-size:11px;line-height:1.45;margin-top:4px;color:#697b60}
#booking-dialog .booking-flash-intent input{accent-color:#65856a}
.booking-flash-selection{margin:1px 0 17px;padding:12px 14px;border-radius:15px;background:#eef4e8}
.booking-flash-plan{color:#4e6d50;font-size:12px;line-height:1.65;margin:0 0 12px}
.booking-flash-selection .booking-flash-plan{margin:0}
.booking-flash-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.booking-flash-tag{background:#fffdf5;color:#4b6850;border:1px solid #b4c8aa;border-radius:11px;padding:6px 10px;font-size:12px;min-height:34px}
.booking-flash-picks{border:0;padding:0;margin:0 0 18px;min-width:0}
.booking-flash-picks>.help-text{margin:0 0 10px}
.booking-flash-picks[aria-invalid=true]{outline:2px solid #aa536f;outline-offset:5px;border-radius:12px}
.booking-flash-number-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;max-height:322px;overflow-y:auto;overscroll-behavior:contain;padding:4px 5px 7px 2px;scrollbar-width:thin;scrollbar-color:#bdcfb4 transparent}
.booking-flash-candidate{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:112px;border:1px solid #d5ddca;border-radius:17px;background:#fffdf5;padding:9px 5px 8px;cursor:pointer;transition:border-color .15s,background .15s}
.booking-flash-candidate input{position:absolute;top:6px;right:6px;width:17px;height:17px;margin:0;border:1px solid #b9c9ac;border-radius:6px;background:#fffdf5;appearance:none;-webkit-appearance:none;cursor:pointer}
.booking-flash-candidate input:checked{background:#63866a;border-color:#63866a}
.booking-flash-candidate:has(input:disabled){opacity:.45;cursor:not-allowed}
.booking-flash-candidate-art{display:block;width:100%;height:55px;pointer-events:none}
.booking-flash-candidate-art>svg,.booking-flash-candidate-art>img{display:block;width:100%;height:100%;object-fit:contain}
.booking-flash-candidate-number{font-size:13px;color:#49634c;line-height:1.5;margin-top:5px}
.booking-flash-candidate-name{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:9px;color:#7c8671;line-height:1.6}
.booking-flash-candidate-check{position:absolute;top:4px;right:7px;font-size:15px;color:#fffdf5;opacity:0;pointer-events:none}
.booking-flash-candidate.is-selected{border-color:#83a176;background:#e9f3e2;box-shadow:0 0 0 1px #83a176}
.booking-flash-candidate.is-selected .booking-flash-candidate-check{opacity:1}
.booking-flash-candidate:focus-within{outline:3px solid #648369;outline-offset:2px}
.booking-selected-flashes{margin-bottom:19px}.booking-selected-flashes .booking-selected-flash{margin-top:9px}
@media(prefers-reduced-motion:reduce){.booking-flash-candidate{transition:none}}
