.booking-dialog{width:min(1030px,calc(100% - 36px));max-width:none;max-height:calc(100dvh - 40px);overflow:auto}.booking-shell{display:grid;grid-template-columns:1fr 300px;min-height:630px}.booking-main{padding:39px 43px 32px;min-width:0}.booking-aside{background:#f4f5f5;padding:42px 28px;display:flex;flex-direction:column;border-left:1px solid #e3e4e5}.booking-brand{font-size:.6875rem;font-weight:700;color:#c60d0d;letter-spacing:.13em;padding-right:40px}.booking-progress{list-style:none;padding:0;display:flex;gap:6px;margin:25px 0 30px}.booking-progress li{flex:1;font-size:.6875rem;line-height:1.5;color:#76787a;padding-top:10px;border-top:3px solid #e3e4e5;white-space:nowrap}.booking-progress li.active{border-top-color:#c60d0d;color:#c60d0d;font-weight:700}.booking-progress li.done{border-top-color:#161718;color:#161718}.booking-main h2{font-size:2rem;margin-bottom:12px;letter-spacing:-.04em;line-height:1.15}.booking-intro{font-size:.9375rem;margin-bottom:24px;line-height:1.6}.preview-notice{font-size:.75rem;background:#fff4ee;color:#7c391c;border:1px solid #ead3c6;padding:10px 12px;margin:0 0 23px;border-radius:4px}.booking-field{display:block;margin-bottom:20px}.booking-field>span,.booking-field label{display:block;font-size:.875rem;font-weight:600;margin-bottom:7px}.booking-field small{display:block;font-size:.75rem;font-weight:400;color:#66686c;margin-top:6px;line-height:1.5}.booking-field input,.booking-field textarea,.booking-field select{border:1px solid #cdd0d2;background:#fff;color:#161718;border-radius:4px;padding:12px 14px;min-height:49px;width:100%;font-size:1rem;line-height:1.45}.booking-field textarea{min-height:85px;resize:vertical}.booking-field input:focus,.booking-field textarea:focus{border-color:#c60d0d;outline:2px solid #c60d0d25;outline-offset:1px}.booking-fields-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.booking-fieldset{padding:0;border:0;margin:0 0 25px;min-width:0}.booking-fieldset legend{font-size:.875rem;font-weight:600;margin-bottom:10px;padding:0}.choice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.choice-grid.two{grid-template-columns:1fr 1fr}.choice-grid.six{grid-template-columns:repeat(6,1fr)}.booking-choice{display:block;position:relative;cursor:pointer}.booking-choice input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.booking-choice>span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52px;border:1px solid #d7d9da;border-radius:4px;padding:13px 7px;font-size:.8125rem;background:#fff;text-align:center;line-height:1.4;gap:5px}.booking-choice input:checked+span{border-color:#c60d0d;background:#fff6f6;color:#a10909;box-shadow:inset 0 0 0 1px #c60d0d}.booking-choice input:focus-visible+span{outline:3px solid #c60d0d;outline-offset:3px}.booking-choice>span strong{font-size:1.1875rem;line-height:1.2}.booking-choice>span small{font-size:.75rem;color:#66686c}.frequency-choices>label>span{min-height:92px}.booking-actions{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-top:28px;border-top:1px solid #e2e3e4;padding-top:23px}.booking-actions .button{font-size:.875rem;min-height:49px;padding:15px 23px;margin-left:auto}.booking-back{color:#52555a;background:none;font-size:.875rem;padding:12px 0;text-decoration:underline;text-underline-offset:4px}.booking-aside .aside-heading{font-size:.75rem;font-weight:700;letter-spacing:.08em;color:#66686c;margin-bottom:26px}.booking-total{font-size:3rem;letter-spacing:-.05em;line-height:1.2;color:#161718;margin-bottom:5px}.booking-total-label{font-size:.75rem;color:#66686c;margin-bottom:25px}.booking-summary{margin:0 0 25px;display:grid;gap:0}.booking-summary>div{display:flex;flex-direction:column;gap:4px;border-top:1px solid #dbdfe1;padding:13px 0}.booking-summary dt{font-size:.6875rem;color:#76787a}.booking-summary dd{font-size:.875rem;margin:0;color:#161718;overflow-wrap:anywhere}.booking-aside .tick-list{margin:5px 0 25px}.booking-aside .tick-list li{font-size:.8125rem;padding-top:5px;padding-bottom:5px}.booking-aside-bottom{border-top:1px solid #dbdfe1;margin-top:auto;padding-top:24px}.booking-aside-bottom p{font-size:.75rem;margin-bottom:9px;line-height:1.6}.booking-aside-bottom a{font-size:.875rem;color:#c60d0d;text-decoration:none;font-weight:600}.booking-note{font-size:.8125rem;background:#f5f5f5;padding:15px 17px;border-left:2px solid #c60d0d;margin-top:20px;line-height:1.65}.booking-error{font-size:.875rem;line-height:1.5;background:#fff0f0;color:#a30b0b;padding:12px 15px;border:1px solid #edbaba;border-radius:4px;margin:15px 0 0}.booking-error:empty{display:none}.booking-review{background:#f7f7f7;padding:18px 20px;border-radius:4px;margin:22px 0;display:grid;gap:12px}.booking-review>div{display:grid;grid-template-columns:110px 1fr;gap:15px;font-size:.875rem;line-height:1.5}.booking-review dt{color:#727477}.booking-review dd{margin:0;overflow-wrap:anywhere}.booking-review a{color:#c60d0d}.consent-label{display:flex;align-items:flex-start;gap:11px;font-size:.8125rem;line-height:1.7;cursor:pointer;margin:21px 0}.consent-label input{width:18px;height:18px;accent-color:#c60d0d;flex-shrink:0;margin-top:4px}.consent-label a{color:#c60d0d;text-underline-offset:3px}.privacy-copy{font-size:.75rem;line-height:1.7}.booking-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.booking-success{padding:70px 50px;max-width:700px;margin:auto;text-align:center}.success-mark{width:60px;height:60px;background:#c60d0d;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:1.6rem;margin:0 auto 25px}.booking-success h2{font-size:2.1rem;margin-bottom:20px}.booking-success>p{font-size:.9375rem;line-height:1.8;margin:14px auto;max-width:450px}.booking-success .booking-review{text-align:left}.booking-success .button{margin-top:20px}.booking-loading{padding:60px;text-align:center;min-height:280px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:25px}.no-price{font-size:1.35rem;letter-spacing:-.02em}.booking-widget-launch{padding:30px 0}
@media(max-width:800px){.booking-shell{grid-template-columns:1fr 235px}.booking-main{padding:32px 27px}.booking-aside{padding:36px 20px}.booking-main h2{font-size:1.8rem}.choice-grid{gap:8px}.booking-choice>span{font-size:.75rem;padding:12px 5px}.booking-progress li{font-size:.625rem}.booking-total{font-size:2.6rem}}
@media(max-width:600px){.booking-dialog{width:calc(100% - 20px);max-height:calc(100dvh - 20px)}.booking-shell{display:flex;flex-direction:column;min-height:0}.booking-main{padding:29px 20px 24px}.booking-aside{padding:24px 20px;border-left:0;border-top:1px solid #ddd}.booking-aside .aside-heading{margin-bottom:10px}.booking-total{font-size:2.5rem}.booking-total-label{margin-bottom:15px}.booking-summary{display:grid;grid-template-columns:1fr 1fr;gap:0 22px;margin-bottom:5px}.booking-aside .tick-list{display:none}.booking-aside-bottom{margin-top:15px;padding-top:15px}.booking-aside-bottom p{font-size:.75rem}.booking-brand{font-size:.625rem}.booking-progress{margin:24px 0}.booking-progress li{font-size:.625rem}.booking-main h2{font-size:1.85rem}.booking-intro{font-size:.875rem}.booking-fields-two{grid-template-columns:1fr;gap:0}.choice-grid{gap:8px}.booking-choice>span{font-size:.75rem;min-height:53px}.choice-grid.six{gap:6px}.choice-grid.six .booking-choice>span{font-size:.875rem}.booking-actions{gap:16px}.booking-actions .button{font-size:.8125rem;padding:15px 20px}.booking-review{padding:16px}.booking-review>div{grid-template-columns:80px 1fr;gap:10px;font-size:.8125rem}.booking-success{padding:60px 22px 40px}.booking-success h2{font-size:1.9rem}.booking-loading{padding:55px 25px}.preview-notice{font-size:.75rem}.booking-fieldset legend,.booking-field>span{font-size:.875rem}}

.booking-dialog .button,.dragon-booking-button{display:inline-flex;justify-content:center;align-items:center;background:#c60d0d;color:#fff;border:0;border-radius:4px;padding:16px 24px;font-size:.9375rem;font-weight:600;text-decoration:none;cursor:pointer;line-height:1.35}.booking-dialog .button:disabled{opacity:.55;cursor:not-allowed}.booking-dialog .button:hover,.dragon-booking-button:hover{background:#a60909}.booking-dialog button,.booking-dialog input,.booking-dialog textarea{font-family:inherit}.booking-dialog .booking-choice>span{font-size:.875rem}.booking-dialog .booking-progress li{font-size:.75rem}.booking-dialog .dialog-close{position:absolute;top:16px;right:17px;width:40px;height:40px;border-radius:50%;color:#161718;background:#f1f2f3;font-size:1.6rem;line-height:1;border:0;cursor:pointer}
@media(max-width:600px){.booking-dialog .booking-progress li{font-size:.6875rem}.booking-dialog .booking-choice>span{font-size:.875rem}.booking-dialog .booking-actions .button{font-size:.875rem}}

.booking-dialog .booking-progress li{font-size:.8125rem;white-space:normal}.booking-dialog .booking-field input[type="date"]{min-width:0}

.direct-debit-step{background:#f4f6f6;border:1px solid #dce2e4;border-radius:6px;padding:26px;margin:25px 0;text-align:left}.direct-debit-step h3{font-size:1.4rem;margin:0 0 12px;line-height:1.25}.booking-success .direct-debit-step p{font-size:1rem;line-height:1.65;margin:0 0 17px}.booking-success .direct-debit-step .eyebrow{font-size:.75rem;margin-bottom:10px}.booking-success .direct-debit-step .direct-debit-note{font-size:.875rem;margin:12px 0 0}.direct-debit-step .button{width:100%}@media(max-width:520px){.direct-debit-step{padding:21px}.direct-debit-step .button{padding:14px 17px}}
