#booking{--booking-green:#075849;--booking-accent:#15945e;--booking-pale:#eef6ef;padding:24px 6% 28px;background:#fff;color:var(--booking-green);scroll-margin-top:70px;text-align:center}
#booking *{box-sizing:border-box}#booking h2{margin:0 0 16px;font-size:clamp(19px,2.1vw,25px);line-height:1.5}#booking button,#booking input{font:inherit}#booking button{cursor:pointer}#booking [hidden],#booking .booking-hidden{display:none!important}#booking .booking-preview-note{font-size:11px;color:#65756e;margin:0 auto 12px;line-height:1.6}#booking .booking-offer{text-align:center;font-size:13px;line-height:1.9;color:#2f4a3d;margin:0 auto 18px;max-width:660px}#booking .booking-offer b{color:var(--booking-green)}
#booking .booking-steps{display:flex;justify-content:center;align-items:center;gap:13px;margin:0 auto 20px}#booking .booking-step-dot{display:flex;align-items:center;gap:7px;font-size:11px;color:#78947e;white-space:nowrap}#booking .booking-step-dot span{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;color:#fff;background:#8caf88;font-size:13px;font-weight:700}#booking .booking-step-dot.is-active{color:var(--booking-green)}#booking .booking-step-dot.is-active span{background:var(--booking-accent)}#booking .booking-step-line{height:1px;width:26px;background:#dbe5df}
#booking .booking-panel{max-width:660px;margin:auto;text-align:left}#booking .booking-panel-label{font-size:13px;text-align:center;margin:0 0 12px}#booking #step1 .booking-panel-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#booking #date-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#booking .date-card{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:84px;width:100%;padding:14px 18px;background:#fff;border:1px solid #dfe9e2;border-radius:4px;text-align:left;color:var(--booking-green)}#booking .date-card:hover,#booking .date-card.selected{background:var(--booking-pale);border-color:var(--booking-accent)}#booking .date-card-label{display:block;font-size:15px;font-weight:700;line-height:1.8}#booking .date-card-sub{display:block;font-size:11px;color:#60776b;margin-top:3px}#booking .date-card-sub:before{content:'▱';margin-right:5px}#booking .date-check{display:grid;place-items:center;width:20px;height:20px;flex:none;border:1px solid #a9c4b4;border-radius:50%}#booking .date-check i{width:10px;height:10px;background:var(--booking-accent);border-radius:50%}#booking .date-loading{grid-column:1/-1;color:#60776b;font-size:13px;line-height:1.8;text-align:center;padding:12px}
#booking .booking-fields{display:grid;gap:16px}#booking .booking-field label{display:block;font-size:14px;font-weight:700;margin-bottom:7px}#booking .booking-field small{font-size:10px;padding:2px 5px;margin-left:5px;background:var(--booking-pale);color:var(--booking-green)}#booking .booking-field input{display:block;width:100%;min-height:48px;padding:10px 13px;border:1px solid #bad0c2;border-radius:4px;color:#243d33;background:#fff;font-size:16px}#booking .field-note{font-size:11px;color:#64776d;line-height:1.8;margin:5px 0}#booking .booking-consent{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.9;margin:22px 0}#booking .booking-consent input{width:18px;height:18px;flex:none;margin:3px 0 0;accent-color:var(--booking-accent)}#booking .booking-consent a{text-decoration:underline;color:var(--booking-green)}#booking .booking-actions{display:grid;grid-template-columns:90px 1fr;gap:12px;margin-top:18px}#booking .booking-btn-back{border:1px solid #b7cebf;border-radius:4px;background:#fff;color:var(--booking-green);font-size:14px;min-height:48px}#booking .booking-btn-next,#booking .booking-submit{display:flex;justify-content:center;align-items:center;min-height:48px;padding:12px;border:0;border-radius:4px;background:linear-gradient(110deg,#15945e,#075849);color:#fff;font-size:15px;font-weight:700;line-height:1.6}#booking .booking-confirm-row{display:flex;justify-content:space-between;gap:14px;padding:16px 0;border-bottom:1px solid #dfe9e2;font-size:13px}#booking .booking-confirm-row b{text-align:right;overflow-wrap:anywhere}#booking .booking-reassurance{text-align:center;margin-top:10px}#booking .booking-error{padding:12px;background:#fff4ef;border:1px solid #e6b8a5;border-radius:4px;color:#923f26;font-size:13px;line-height:1.8;margin:14px 0}#booking .booking-reload{border:0;background:transparent;text-decoration:underline;font-size:12px;color:var(--booking-green);padding:12px}#booking .booking-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}#booking .booking-success{text-align:center;padding:24px 10px}#booking .booking-success>span{display:inline-grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--booking-pale);color:var(--booking-accent);font-size:28px}#booking .booking-success h3{font-size:22px;line-height:1.6;margin:12px 0}#booking .booking-success p{font-size:13px;line-height:1.9}#booking :focus-visible{outline:3px solid #75bca1;outline-offset:3px}#booking :disabled{opacity:.65;cursor:wait}
@media(max-width:600px){#booking{padding:24px 5%}#booking .booking-steps{gap:7px}#booking .booking-step-line{width:12px}#booking .booking-step-dot{font-size:10px;gap:5px}#booking .date-card{padding:12px 10px}#booking .date-card-label{font-size:12px}#booking .date-card-sub{font-size:10px}#booking .date-check{width:15px;height:15px}#booking .date-check i{width:7px;height:7px}}
@media(prefers-reduced-motion:reduce){#booking *{scroll-behavior:auto!important}}
