.juno-booking-shell{--ink:#22201d;--muted:#746f68;--line:#ded9d1;--paper:#fbfaf7;--accent:#8a7765;max-width:860px;margin:2rem auto;color:var(--ink);font-family:inherit}.juno-progress{display:flex;align-items:center;max-width:440px;margin:0 auto 3rem}.juno-progress span{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-size:.78rem;background:#fff}.juno-progress span.is-active{background:var(--ink);border-color:var(--ink);color:#fff}.juno-progress i{height:1px;background:var(--line);flex:1}.juno-booking-form{background:var(--paper);border:1px solid var(--line);padding:clamp(1.25rem,4vw,3.5rem)}.juno-step{display:none}.juno-step.is-active{display:block;animation:junoFade .22s ease}.juno-step h2{font-size:clamp(1.7rem,4vw,2.5rem);font-weight:500;margin:.15rem 0 1.8rem}.juno-step h3{font-size:1rem;margin:2rem 0 .8rem}.juno-eyebrow{margin:0;color:var(--muted);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}.juno-services{display:grid;gap:.75rem}.juno-service input,.juno-dates input,.juno-times input{position:absolute;opacity:0;pointer-events:none}.juno-service>span{display:block;border:1px solid var(--line);background:#fff;padding:1.25rem;cursor:pointer;transition:.16s ease}.juno-service>span:hover,.juno-service input:focus+span{border-color:var(--accent)}.juno-service input:checked+span{border:2px solid var(--ink);padding:calc(1.25rem - 1px)}.juno-service strong{display:block;font-size:1.08rem;font-weight:600}.juno-service em{display:block;margin:.25rem 0 .6rem;color:var(--accent);font-style:normal;font-size:.9rem}.juno-service small{display:block;color:var(--muted);line-height:1.55}.juno-dates{display:flex;gap:.55rem;overflow-x:auto;padding:.15rem .1rem .65rem}.juno-dates span{display:grid;place-items:center;min-width:64px;height:70px;border:1px solid var(--line);background:#fff;cursor:pointer}.juno-dates small{text-transform:uppercase;color:var(--muted);font-size:.7rem}.juno-dates strong{font-size:1.25rem}.juno-dates input:checked+span,.juno-times input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}.juno-dates label.is-unavailable{opacity:.35;pointer-events:none}.juno-times{display:flex;flex-wrap:wrap;gap:.55rem}.juno-times span{display:block;min-width:104px;padding:.7rem 1rem;border:1px solid var(--line);background:#fff;text-align:center;cursor:pointer}.juno-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.juno-fields label{display:grid;gap:.4rem;color:var(--muted);font-size:.85rem}.juno-fields label:first-child{grid-column:1/-1}.juno-fields input{border:1px solid var(--line);border-radius:0;background:#fff;padding:.85rem;color:var(--ink);font:inherit}.juno-honeypot{position:absolute!important;left:-10000px!important}.juno-nav{display:flex;justify-content:flex-end;gap:.75rem;margin-top:2.2rem}.juno-nav button{border:1px solid var(--ink);border-radius:0;background:var(--ink);color:#fff;padding:.8rem 1.4rem;font:inherit;cursor:pointer}.juno-nav button.juno-back{background:transparent;color:var(--ink)}.juno-nav button:disabled{opacity:.5;cursor:wait}.juno-card-note{margin-top:-1rem;color:var(--muted)}#juno-payment-element{background:#fff;border:1px solid var(--line);padding:1rem;margin:1.25rem 0}.juno-consent{display:flex;gap:.65rem;align-items:flex-start;line-height:1.5;font-size:.9rem}.juno-consent input{margin-top:.25rem;flex:none}#juno-booking-message:not(:empty){margin-top:1rem;padding:.8rem;background:#f3e7e2;color:#7b2c20}.juno-success{text-align:center;padding:3rem 1rem}.juno-success>span{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--ink);color:#fff;margin:0 auto 1.25rem;font-size:1.5rem}.juno-success h2{margin-bottom:.8rem}@keyframes junoFade{from{opacity:.3;transform:translateY(4px)}to{opacity:1;transform:none}}@media(max-width:640px){.juno-booking-shell{margin:1rem auto}.juno-booking-form{padding:1.15rem}.juno-progress{margin-bottom:1.5rem;padding:0 .5rem}.juno-fields{grid-template-columns:1fr}.juno-fields label:first-child{grid-column:auto}.juno-nav{justify-content:space-between}.juno-times label{flex:1 0 42%}.juno-times span{min-width:0}.juno-service small{font-size:.82rem}}
