.tv-booking-information{--tv-ink:#213f32;--tv-green:#207448;color:var(--tv-ink);display:grid;gap:18px;margin-top:22px}
.tv-booking-information *{box-sizing:border-box}
#msform .tv-booking-information .tv-info-panel{padding:24px;border:1px solid #dce8df;border-radius:16px;background:#fff;box-shadow:0 5px 20px #16442b05}
.tv-info-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:20px;min-width:0}
.tv-info-heading h3,.tv-address-editor h3{font-size:20px;line-height:1.3;margin:0 0 5px;color:#213f32}
.tv-info-heading p{font-size:13px;line-height:1.5;margin:0;color:#60766a}
.tv-info-icon{width:38px;height:38px;display:grid;place-items:center;flex-shrink:0;border-radius:12px;background:#eaf5ee;color:#207448;font-size:16px}
.tv-contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
#msform .tv-booking-information label,.tv-address-editor label{display:block;font-size:14px;font-weight:600;color:#294a38;margin:0 0 7px}
.tv-booking-information label>span,.tv-address-editor label>span{color:#97144D}
#msform .tv-booking-information :is(input:not([type=hidden]),textarea),.tv-address-editor :is(input:not([type=hidden]),textarea){display:block;width:100%;min-width:0;min-height:48px;height:auto;line-height:1.5;font-size:15px;color:#294a38;background:#fbfdfb;border:1px solid #cbded1;border-radius:10px;padding:12px 14px;margin:0;text-align:left}
#msform .tv-booking-information input[type=tel]{text-align:left}
.tv-booking-information :is(input,textarea,button):focus-visible,.tv-address-editor :is(input,textarea,button):focus-visible,.tv-service-unavailable :is(button,a):focus-visible{outline:3px solid #acd9bb;outline-offset:2px}
.tv-address-heading{display:flex;align-items:flex-start;gap:16px;justify-content:space-between}
.tv-address-book button,.tv-address-editor button{font:inherit;cursor:pointer;min-height:40px}
.tv-address-add,.tv-address-primary{color:#fff;background:#207448;border:1px solid #207448;border-radius:9px;padding:10px 14px;white-space:nowrap;font-size:13px!important;font-weight:600!important}
.tv-address-secondary{color:#207448;background:#fff;border:1px solid #bfd7c7;border-radius:9px;padding:10px 16px}
.tv-address-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.tv-address-card{position:relative;border:1px solid #d6e3da;background:#fff;border-radius:12px;padding:14px;min-width:0}
.tv-address-card.is-selected{border:2px solid #207448;padding:13px;background:#f2faf5}
.tv-address-card.is-unavailable.is-selected{border-color:#97144D;background:#fff8fa}
.tv-address-card .tv-address-choose{width:100%;text-align:left;display:block;background:none;border:0;color:#294a38;padding:0}
.tv-address-card strong{display:block;font-size:14px;margin-bottom:6px;padding-right:20px}
.tv-address-card .tv-address-street{display:block;font-size:13px;line-height:1.5;color:#5b7164;overflow-wrap:anywhere}
.tv-address-card .tv-address-check{position:absolute;top:14px;right:14px;width:17px;height:17px;border:1px solid #aac5b4;border-radius:50%;display:grid;place-items:center;font-size:11px}
.tv-address-card.is-selected .tv-address-check{background:#207448;border-color:#207448;color:#fff}
.tv-address-card.is-selected .tv-address-check::after{content:"";display:block;width:8px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translateY(-1px)}
.tv-address-badge{display:inline-block;font-size:11px;line-height:1.4;margin-top:10px;padding:4px 7px;border-radius:5px;color:#286340;background:#eaf5ed}
.tv-address-card.is-unavailable .tv-address-badge{color:#97144D;background:#faeaf0}
.tv-address-card-actions{display:flex;gap:16px;margin-top:6px}
.tv-address-text-button,.tv-address-card-actions button{background:none;border:0;padding:0;color:#207448;font-size:12px!important;text-decoration:underline;text-underline-offset:3px}
.tv-address-card-actions button[data-action=remove]{color:#806b6f}
.tv-address-status{font-size:13px;line-height:1.5;color:#687f70;margin:10px 0 0;min-height:19px}
.tv-address-status[data-error=true]{color:#97144D}
.tv-selected-address{background:#f4f9f5;padding:16px;border-radius:12px;margin-top:16px}
.tv-selected-address-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px}
.tv-selected-address [data-current-area]{font-size:12px;line-height:1.5;color:#637c6c;margin:5px 0 14px}
.tv-booking-information .tv-info-help{font-size:12px;color:#74887a;margin:7px 0 0;line-height:1.4}
.tv-booking-notes label small{font-size:11px;font-weight:400;color:#738678;margin-left:5px}
#msform fieldset.confirm-information{padding-top:0}
.tv-address-editor{width:min(680px,calc(100% - 28px));max-width:none;max-height:calc(100dvh - 32px);border:0;border-radius:18px;padding:0;color:#213f32;box-shadow:0 24px 80px #102c3540;overflow:auto}
.tv-address-editor::backdrop,.tv-service-unavailable::backdrop{background:#102b24a6;backdrop-filter:blur(3px)}
.tv-editor-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid #e3ede6;background:#fff}
.tv-editor-eyebrow{font-size:10px;letter-spacing:.1em;font-weight:700;color:#207448}
.tv-editor-header h3{margin-top:4px}
.tv-dialog-close{flex-shrink:0;display:grid;place-items:center;font-size:25px!important;line-height:1;width:38px;height:38px;min-height:38px!important;background:#f0f5f1;border:0;border-radius:50%;color:#3d5848;cursor:pointer}
.tv-editor-body{padding:20px 24px}
.tv-editor-body [data-picker-slot]{margin:20px 0}
.tv-editor-body .tv-location-heading,.tv-editor-body .tv-location-help:first-of-type{display:none}
.tv-editor-body .tv-location-map{height:230px}
.tv-editor-footer{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid #e3ede6;background:#fff}
.tv-address-editor [data-label-field][hidden]{display:none}
.tv-address-book button:disabled,.tv-address-editor button:disabled{opacity:.55;cursor:wait}
.tv-service-unavailable{width:min(460px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);overflow:auto;border:0;border-radius:20px;padding:30px;color:#213f32;background:#fff;box-shadow:0 24px 80px #102c3540;text-align:center}
.tv-service-unavailable .tv-dialog-close{position:absolute;top:12px;right:12px}
.tv-unavailable-icon{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:#faedf2;color:#97144D;margin:6px auto 18px;font-size:27px}
.tv-service-unavailable h2{font-size:22px;line-height:1.25;margin:0 0 12px;color:#263f33}
.tv-service-unavailable p{font-size:14px;line-height:1.6;color:#64746a;margin:0 0 12px}
.tv-service-unavailable .tv-unavailable-context{font-size:12px;padding:10px;background:#f5f8f5;border-radius:8px;overflow-wrap:anywhere}
.tv-unavailable-actions{display:grid;gap:10px;margin-top:20px}
.tv-unavailable-actions button,.tv-unavailable-actions a{display:block;text-align:center;min-height:44px;border-radius:9px;padding:11px 14px;font-size:14px;line-height:1.5;font-weight:600;text-decoration:none;cursor:pointer}
.tv-unavailable-actions button{background:#207448;color:white;border:1px solid #207448}
.tv-unavailable-actions a{background:#fff;color:#207448;border:1px solid #bfd7c7}
@media(max-width:575.98px){
 #msform .tv-booking-information .tv-info-panel{padding:16px;border-radius:13px}
 .tv-contact-grid,.tv-address-list{grid-template-columns:minmax(0,1fr);gap:14px}
 .tv-info-heading h3{font-size:18px}
 .tv-address-heading{flex-wrap:wrap;gap:0;margin-bottom:14px}
 .tv-address-heading .tv-info-heading{margin-bottom:12px}
 .tv-address-add{margin-left:50px}
 #msform .tv-booking-information :is(input:not([type=hidden]),textarea),.tv-address-editor :is(input:not([type=hidden]),textarea){font-size:16px}
 .tv-selected-address{padding:12px}
 .tv-selected-address-heading{align-items:flex-start;font-size:13px}
 .tv-selected-address-heading button{min-height:30px;white-space:nowrap}
 .tv-editor-header,.tv-editor-body{padding:16px}
 .tv-editor-footer{padding:12px 16px}
 .tv-service-unavailable{padding:28px 20px 22px}
 .tv-service-unavailable h2{font-size:20px}
}
