/* A little digital planner, in the same Little Cells stationery palette. */
#booking>.stage{display:block;padding:112px var(--edge) 72px;min-height:0;overflow:clip}
#booking .scene-topline{position:static;display:flex;margin:0 0 22px;gap:20px}
#booking .booking-copy{position:relative;grid-column:auto;width:100%;max-width:720px;margin:0 0 35px;padding:0}
#booking .booking-copy h2{font-size:clamp(38px,4.2vw,58px);margin:14px 0 16px;line-height:1.03}
#booking .booking-copy>p{max-width:580px;margin-bottom:20px}
.booking-facts{display:flex;flex-wrap:wrap;align-items:center;gap:9px 19px;font-size:13px;font-weight:800;color:var(--pine)}
.booking-facts>span+span{border-left:1px solid #9bb68b66;padding-left:19px}.booking-facts b{font:500 22px/1 var(--display);margin-right:3px}
.booking-board{position:relative;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:24px;align-items:start;max-width:1120px;margin:0 auto}
.booking-calendar-card,.booking-form-card{position:relative;border:1px solid #fffdf8;border-radius:30px;background:#fffaf3f5;box-shadow:0 16px 50px #6d65420a;padding:28px;min-width:0}
.booking-calendar-card{background:linear-gradient(145deg,#f5effbfa,#fffbf3f7);padding-top:35px}
.planner-binding{position:absolute;top:-9px;left:28px;right:28px;display:flex;justify-content:space-between;pointer-events:none}
.planner-binding i{width:9px;height:22px;border:1px solid #b7a1c3;border-radius:7px;background:linear-gradient(90deg,#d9c9e2,#f4eaf9);box-shadow:0 2px 0 #fffaf3}
.booking-card-heading{display:flex;align-items:center;gap:13px}.booking-card-heading .eyebrow{font-size:10px;color:var(--muted)}
.booking-card-heading h3{font:500 clamp(22px,2.1vw,28px)/1.12 var(--display);letter-spacing:-.025em;margin:5px 0 0}
.booking-step{flex:none;display:grid;place-items:center;width:34px;height:38px;border-radius:12px;background:#e2ebda;border:1px solid #bdcdb1;font:500 20px var(--display)}
.booking-form-card .booking-step{background:#f4dfd4;border-color:#dfbdab}.planner-flower{margin-left:auto;color:#b49ac4;font-size:32px;line-height:1}
.booking-card-intro{font-size:14px;line-height:1.65;color:var(--muted);margin:17px 0 23px;max-width:420px}
.calendar-month-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 17px}
.calendar-month-nav h4{font:500 25px/1.2 var(--display);letter-spacing:-.025em;text-align:center;margin:0}
.calendar-month-nav button{display:grid;place-items:center;width:40px;height:40px;border:1px solid #c9d6c2;background:#fffdf6;border-radius:50%;font-size:22px;flex:none;transition:background .2s,scale .15s}
.calendar-month-nav button:hover:not(:disabled){background:#e3eddb}.calendar-month-nav button:active:not(:disabled){scale:.94}.calendar-month-nav button:disabled{opacity:.3;cursor:default}
.booking-calendar-table{table-layout:fixed;border-collapse:separate;border-spacing:3px;width:100%;font-size:14px}
.booking-calendar-table th{height:26px;font-size:11px;font-weight:900;color:var(--muted);text-align:center}
.booking-calendar-table td{padding:0;text-align:center;height:43px;border-radius:12px}
.booking-calendar-table button{position:relative;width:100%;height:42px;padding:0;border:1px solid transparent;background:transparent;border-radius:12px;font:800 14px var(--body);color:var(--pine);transition:background .18s,border-color .18s,scale .15s}
.booking-calendar-table button:hover:not(:disabled){background:#e4eddd;border-color:#bdcdb2}.booking-calendar-table button:active:not(:disabled){scale:.92}
.booking-calendar-table button:disabled{color:#8e9a8d;opacity:.42;cursor:default}
.booking-calendar-table button[aria-current="date"]::after{content:'';position:absolute;bottom:4px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:#a58db4}
.booking-calendar-table button.is-picked{background:var(--pine);border-color:var(--pine);color:#fffaf3;box-shadow:0 3px 8px #28594e16}
.booking-calendar-table button.is-picked:hover,.booking-calendar-table button.is-picked:focus-visible{background:var(--pine);border-color:var(--pine);color:#fffaf3}
.booking-calendar-table button.is-picked[aria-current="date"]::after{background:#fff1be}
.calendar-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0 18px;font-size:11px;color:var(--muted)}
.calendar-foot>button{font-size:11px;font-weight:900;padding:7px 0;text-decoration:underline;text-underline-offset:4px}.calendar-foot>span{display:flex;align-items:center;gap:5px}.calendar-foot i{width:5px;height:5px;border-radius:50%;background:#a58db4}
.booking-selected{padding:12px 14px;border:1px solid #c8d6bf;border-radius:14px;background:#eef3e8;font-size:12px;font-weight:800;line-height:1.5;margin:0 0 18px;min-height:43px}
.booking-session-summary{display:flex;flex-direction:column;gap:6px;padding:18px;border:1px dashed #c2cebb;border-radius:18px;background:#fffdf6}
.booking-session-summary>.eyebrow{font-size:10px;color:var(--muted);margin-bottom:6px}.booking-session-summary>strong{font:500 21px/1.3 var(--display)}
.booking-session-summary>span:not(.eyebrow){font-size:13px}.booking-session-summary>div{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #ccd7c4;margin-top:8px;padding-top:13px;font-size:12px}.booking-session-summary b{font:500 25px var(--display)}
.booking-calendar-note{font-size:11px;line-height:1.6;color:var(--muted);margin:15px 0 0}
#booking-form{display:flex;flex-direction:column;gap:17px}.booking-field{display:flex;flex-direction:column;gap:7px;min-width:0}.booking-field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.booking-field label{font-size:13px;font-weight:900;line-height:1.4}.booking-field label>span{font-weight:600;font-size:11px;color:var(--muted)}
.booking-field :is(input,select,textarea){display:block;width:100%;min-width:0;max-width:100%;min-height:46px;border:1px solid #bdcdb4;border-radius:12px;background:#fffef8;padding:11px 12px;color:var(--pine);font:600 14px/1.45 var(--body);box-shadow:inset 0 2px 5px #28594e03;transition:border-color .18s,box-shadow .18s}
.booking-field textarea{resize:vertical;min-height:90px}.booking-field select{padding-right:25px}.booking-field input[type="date"],.booking-field input[type="time"]{appearance:none;min-height:47px}
.booking-field :is(input,select,textarea):focus{border-color:#72986d;box-shadow:0 0 0 3px #c9dcbd66}
.booking-field :is(input,select,textarea)[aria-invalid="true"]{border-color:#9b5948;background:#fff7ef}
.booking-field :is(small,.booking-error){font-size:11px;line-height:1.5;color:var(--muted)}.booking-field .booking-error{color:#914c3b;font-weight:800}.booking-error:empty,.booking-feedback:empty{display:none}
.booking-feedback{font-size:12px;font-weight:800;line-height:1.6;color:#725184;margin:0;padding:11px 13px;border-radius:12px;background:#eee6f5}
#booking-submit{width:100%;justify-content:space-between;font-size:14px;min-height:51px}#booking-submit:disabled{opacity:.5;cursor:default}
.booking-submit-note,.booking-privacy{font-size:11px;line-height:1.65;margin:-6px 0 0;color:var(--muted)}.booking-submit-note{font-weight:800;color:var(--pine)}
.booking-chat-first{display:inline-flex;align-items:center;gap:12px;font-size:12px;font-weight:900;line-height:1.5;margin-top:22px;text-decoration:underline;text-underline-offset:4px}
#booking .cinema-halo{opacity:.35}.booking-board:focus-within{scroll-margin-bottom:90px}
@media(min-width:1001px){
 #booking .booking-copy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);column-gap:50px;max-width:1120px;margin:0 auto 30px}
 #booking .booking-copy>.pill{grid-column:1;grid-row:1;justify-self:start;margin:0 0 12px}
 #booking .booking-copy>h2{grid-column:1;grid-row:2 / 5;font-size:clamp(40px,3.8vw,52px);margin:0}
 #booking .booking-copy>p:not(.booking-availability){grid-column:2;grid-row:2;margin:0 0 16px;font-size:16px}
 #booking .booking-facts{grid-column:2;grid-row:3;gap:8px 13px;font-size:12px}
 #booking .booking-facts>span+span{padding-left:13px}
 #booking .booking-copy>.booking-availability{grid-column:2;grid-row:4;margin-top:10px!important}
}
@media(min-width:601px){
 .booking-in-view .whatsapp-float{width:50px;height:50px;padding:13px;justify-content:center}
 .booking-in-view .whatsapp-float .wa-label,.booking-in-view .whatsapp-float .wa-dot{display:none}
}
@media(min-width:1001px) and (max-width:1200px){.story-ready .desktop-nav{gap:15px;padding-inline:17px;font-size:12px}.booking-calendar-card,.booking-form-card{padding:23px}.booking-calendar-card{padding-top:33px}}
@media(max-width:850px){.booking-board{grid-template-columns:1fr;max-width:580px;gap:24px}#booking .booking-copy{max-width:580px;margin-inline:auto}.booking-calendar-card,.booking-form-card{padding:25px}.booking-calendar-card{padding-top:34px}.booking-calendar-table td{height:46px}.booking-calendar-table button{height:44px}}
@media(max-width:600px){
 #booking>.stage{padding-top:95px;padding-bottom:32px}#booking .scene-topline{margin-bottom:17px}#booking .scene-topline>.eyebrow{max-width:100%}
 #booking .booking-copy{margin-bottom:30px}#booking .booking-copy h2{font-size:34px;margin-top:13px}#booking .booking-copy>p{font-size:16px;margin-bottom:17px}
 .booking-facts{font-size:11px;gap:8px 13px}.booking-facts>span+span{padding-left:13px}.booking-facts b{font-size:20px}
 .booking-calendar-card,.booking-form-card{padding:21px 18px;border-radius:25px}.booking-calendar-card{padding-top:33px}.booking-card-heading h3{font-size:24px}.booking-card-intro{font-size:13px;margin-block:16px 20px}
 .booking-field :is(input,select,textarea){font-size:16px}.booking-field-row{gap:17px;grid-template-columns:1fr}.booking-field label{font-size:12px}.booking-calendar-table{border-spacing:2px}.booking-calendar-table td{height:42px}.booking-calendar-table button{height:41px;font-size:13px}
 .booking-session-summary>strong{font-size:20px}.booking-chat-first{font-size:11px}.planner-binding{left:25px;right:25px}
}
@media(max-width:360px){.booking-field-row{grid-template-columns:1fr}.booking-card-heading h3{font-size:22px}.planner-flower{display:none}.booking-facts>span:last-child{border:0;padding-left:0}.calendar-month-nav h4{font-size:23px}}

.booking-availability{font-size:12px!important;font-weight:800;line-height:1.6!important;margin:13px 0 0!important;color:var(--purple)}
.calendar-month-badge{font-size:10px;font-weight:900;white-space:nowrap;padding:7px 10px;border:1px solid #c8d6bf;border-radius:15px;background:#e8efdf}
.booking-calendar-table th:nth-child(n+6){color:var(--pine)}
.booking-calendar-table td:nth-child(n+6):has(button:not(:disabled)){background:#e7efdf66}
.calendar-foot>button:disabled{opacity:.4;cursor:default}
@media(max-width:360px){.calendar-month-nav{gap:7px}.calendar-month-nav h4{font-size:22px}.calendar-month-badge{font-size:9px;padding:6px 8px}}

/* Live booking: one date choice, four visible windows, one clear confirmation. */
.booking-live-row{display:flex;justify-content:space-between;gap:16px;align-items:start;margin:18px 0 22px;font-size:12px;font-weight:800;color:var(--muted)}
.booking-live-row p{margin:0;line-height:1.6}.booking-live-row p.is-live::before{content:'';display:inline-block;width:6px;height:6px;background:#62966a;border-radius:50%;margin-right:7px}
.booking-live-row button{font:800 11px var(--body);text-decoration:underline;text-underline-offset:4px;flex:none;padding:4px 0}.booking-live-row button:disabled{opacity:.4}
.booking-calendar-table button.is-weekend{background:#e7efdf80}.booking-calendar-table button.is-full{background:#eadfe9;color:#87667f}
.booking-calendar-table button.is-picked.is-weekend{background:var(--pine);color:#fffaf3}
.calendar-booked-dots{position:absolute;bottom:-1px;left:0;width:100%;font:800 10px var(--body);letter-spacing:1px;line-height:12px;color:#a4799a}
.is-picked .calendar-booked-dots{color:#f9d9dd}.calendar-foot .legend-open{background:#8fad82}.calendar-foot .legend-booked{background:#b18ca8;margin-left:5px}
.booking-slots{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.booking-slot{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:64px;padding:12px 14px;border:1px solid #bccdb3;border-radius:14px;background:#fffef8;text-align:left;transition:background .18s,border-color .18s,transform .18s;color:var(--pine)}
.booking-slot strong{font:700 13px/1.4 var(--body);white-space:nowrap}.booking-slot span{font:800 10px/1.4 var(--body);color:#647b62}.booking-slot:hover:not(:disabled){background:#e6efdfff;transform:translateY(-2px);border-color:#76916f}
.booking-slot.is-picked{background:var(--pine);border-color:var(--pine);color:#fffaf3}.booking-slot.is-picked span{color:#d6e7cd}.booking-slot.is-booked{background:#f0e6ee;border-color:#d9c4d3}.booking-slot.is-booked strong{color:#8b7286;text-decoration:line-through}.booking-slot.is-booked span{color:#8b7286}.booking-slot:disabled{cursor:default}.booking-slot:disabled:not(.is-booked){opacity:.45}
.booking-form-card .booking-session-summary{margin:21px 0 23px;padding:15px 17px;background:#edf2e5;border-style:solid}.booking-form-card .booking-session-summary>strong{font-size:19px}.booking-form-card .booking-session-summary>div{font-size:10px}.booking-form-card .booking-session-summary b{font-size:23px}
.booking-honey{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#booking .booking-error{font-size:12px;font-weight:800;line-height:1.5;color:#914c3b}.booking-error:empty{display:none}
.booking-confirmation{padding:10px 0 0}.booking-confirmation:focus{outline:none}.booking-confirmed-icon{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#e1ebd7;border:1px solid #bccfb1;color:var(--pine);font:500 28px var(--display);margin-bottom:22px}
.booking-confirmation>.eyebrow{font-size:10px;color:var(--purple)}.booking-confirmation h3{font:500 36px/1.08 var(--display);letter-spacing:-.03em;margin:12px 0 16px}.booking-confirmation>p{font-size:13px;line-height:1.6}
.booking-confirmation dl{display:grid;grid-template-columns:100px 1fr;gap:12px 16px;padding:20px 0;border-block:1px solid #ccd6c2;margin:22px 0}.booking-confirmation dt{font-size:11px;font-weight:800;color:var(--muted)}.booking-confirmation dd{font-size:12px;font-weight:900;margin:0;overflow-wrap:anywhere}
#booking-calendar-download{width:100%;justify-content:space-between;font-size:13px;margin-top:22px}.booking-text-button{font:800 12px/1.5 var(--body);text-decoration:underline;text-underline-offset:4px;padding:8px 0;color:var(--pine)}
#booking-copy{margin-top:8px}.booking-receipt-actions{display:flex;justify-content:space-between;gap:20px;margin-top:24px;border-top:1px solid #ccd6c2;padding-top:12px}#booking-cancel{color:#95665a}
#booking-cancel-prompt{background:#f6e9e0;border-radius:15px;padding:17px;margin-top:15px;font:800 12px/1.6 var(--body)}#booking-cancel-prompt p{margin:0 0 10px}#booking-cancel-confirm{color:#fffaf3;background:#935e51;border-radius:20px;padding:10px 13px;font-weight:900}#booking-cancel-keep{font-weight:900;padding:10px}
#booking :is(button,a,input,select,textarea):focus-visible{outline:2px solid #725184;outline-offset:3px}
@media(max-width:600px){.booking-slot{padding:11px}.booking-slot strong{font-size:12px}.booking-confirmation h3{font-size:31px}.booking-confirmation dl{grid-template-columns:80px 1fr;column-gap:12px}}
@media(prefers-reduced-motion:reduce){.booking-slot{transition:none}.booking-slot:hover:not(:disabled){transform:none}}

.booking-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-slot{min-width:0}.booking-slot strong{font-size:15px;white-space:normal}#booking-continue{display:none}.booking-form-card{scroll-margin-top:88px}
@media(max-width:850px){#booking-continue:not([hidden]){display:inline-flex;align-items:center;gap:20px;margin-top:12px}.booking-slot strong{font-size:14px}}
.booking-slot.is-picked:hover:not(:disabled),.booking-slot.is-picked:focus-visible{background:var(--pine);border-color:var(--pine);color:#fffaf3}.booking-slot.is-picked:hover:not(:disabled) span{color:#d6e7cd}

.calendar-foot .legend-closed{background:#bc9aa9;margin-left:5px}.calendar-foot{flex-wrap:wrap}.calendar-foot>span{flex-wrap:wrap}
.booking-calendar-table button.is-closed{background:#eee3e9;border-color:#dfced8;color:#846675}.booking-calendar-table button.is-closed:disabled{opacity:.72;color:#846675}.calendar-closed-mark{position:absolute;bottom:0;left:0;width:100%;font:700 11px/11px var(--body);color:#ab7c92}
.booking-calendar-table button.is-closed.is-picked,.booking-calendar-table button.is-closed.is-picked:hover:not(:disabled){background:var(--pine);border-color:var(--pine);color:#fffaf3}.is-picked .calendar-closed-mark{color:#eed7df}
.booking-slot.is-unavailable{background:#f2e9ee;border-color:#dccbd4;color:#8b7280}.booking-slot.is-unavailable span{color:#8b7280}.booking-slot.is-unavailable:disabled{opacity:.85}
.booking-month-closed{padding:12px 4px 18px}.booking-closed-flower{display:grid;place-items:center;width:72px;height:72px;border-radius:25px;background:#f1e2ec;color:#aa82a2;font-size:43px;margin:0 0 28px}.booking-month-closed>.eyebrow{color:var(--purple);font-size:11px}.booking-month-closed h3{font:500 clamp(33px,3.5vw,46px)/1.05 var(--display);letter-spacing:-.035em;margin:16px 0 21px}.booking-month-closed>p{font-size:14px;line-height:1.8;max-width:360px}.booking-next-opening{display:flex;flex-direction:column;gap:10px;border:1px dashed #c4cdb5;border-radius:20px;background:#f2f3e6;padding:23px;margin:28px 0}.booking-next-opening .eyebrow{font-size:10px}.booking-next-opening strong{font:500 34px/1.2 var(--display);letter-spacing:-.03em}.booking-next-opening>span:last-child{font-size:12px;font-weight:800;color:var(--muted)}

/* Warm peach distinguishes full weekends from the quieter weekday closures. */
.booking-calendar-table button.is-full-weekend{background:#f7d8be;border-color:#d8a679;color:#864a34}
.booking-calendar-table button.is-full-weekend:hover:not(:disabled){background:#efc7a4;border-color:#c18c64;color:#723c2b}
.booking-calendar-table button.is-full-weekend:disabled{background:#f1d7c2;border-color:#d9b093;color:#8d4f3d;opacity:.85}
.booking-calendar-table button.is-full-weekend .calendar-closed-mark,.booking-calendar-table button.is-full-weekend .calendar-booked-dots{color:#9c6248}
.booking-calendar-table button.is-full-weekend.is-picked,.booking-calendar-table button.is-full-weekend.is-picked:hover:not(:disabled){background:var(--pine);border-color:var(--pine);color:#fffaf3}
.booking-calendar-table button.is-full-weekend.is-picked .calendar-closed-mark,.booking-calendar-table button.is-full-weekend.is-picked .calendar-booked-dots{color:#eed7df}
.calendar-foot .legend-weekend-full{background:#e6b68e;margin-left:5px}
