.calendar-main{padding:42px 0 70px}
.calendar-main .calendar-tariffs{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:42px;margin:0 0 44px;padding:28px 0 34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);align-items:start}
.calendar-tariffs .booking-intro h2{font:2rem/1.2 var(--serif);margin:12px 0 14px}
.calendar-tariffs .booking-intro>p:not(.eyebrow){font-size:.88rem;line-height:1.6;color:var(--muted)}
.calendar-tariffs .rates{margin-top:20px;font-size:.9rem}
.calendar-tariffs .rates td,.calendar-tariffs .rates th{padding-block:12px}
.calendar-tariffs .booking-facts{margin-top:20px}
.calendar-tariffs .small-copy{margin-top:16px}
.calendar-tariffs .booking-choice{background:#ebeee5;padding:26px;align-self:stretch}
.calendar-tariffs .booking-choice h3{font:1.6rem/1.25 var(--serif);margin:12px 0 18px}
.calendar-tariffs .included-list{padding-left:18px;margin:0 0 18px}
.calendar-tariffs .included-list li{font-size:.86rem;line-height:1.55;margin:10px 0}
.calendar-tariffs .booking-choice .field-hint{margin-top:16px}
@media(max-width:800px){.calendar-main .calendar-tariffs{grid-template-columns:1fr;gap:24px;padding-top:24px;margin-bottom:32px}.calendar-tariffs .booking-choice{padding:22px}.calendar-tariffs .booking-intro h2{font-size:1.8rem}.calendar-tariffs .rates thead th{font-size:.72rem}.calendar-tariffs .rates{font-size:.84rem}}
.multi-page.calendar-page .panel-title h2{font-size:1.9rem;line-height:1.2}.multi-page.calendar-page .visit-body h2{font-size:2rem;line-height:1.2}.multi-page.calendar-page .calendar-heading h1{font-size:clamp(2.5rem,4.5vw,4.5rem)}
@media(max-width:560px){.multi-page.calendar-page .calendar-heading h1{font-size:2.5rem}.multi-page.calendar-page .panel-title h2{font-size:1.7rem}.booking-steps{font-size:.7rem}.booking-steps span{margin:0 10px}}
.booking-steps{font-size:.75rem;letter-spacing:.06em;line-height:2;white-space:nowrap;color:var(--muted)}.booking-steps span{margin:0 16px}
.booking-contacts{border:0;border-top:1px solid var(--line);margin:24px 0 0;padding:20px 0 0;display:grid;gap:16px;min-width:0}.booking-contacts legend{font:1.4rem var(--serif);padding:0 10px 0 0}.booking-contacts>label:not(.consent-row){display:grid;gap:8px}.booking-contacts input:not([type=checkbox]){border:1px solid var(--line);padding:12px;background:transparent;width:100%;font:inherit;min-height:46px}.booking-contacts input:disabled{background:#f3f2ec}.consent-row{display:flex;align-items:start;gap:10px;font-size:.8rem!important;line-height:1.5}.consent-row input{width:18px;height:18px;flex-shrink:0;accent-color:var(--ink);margin-top:3px}.consent-row a{text-decoration:underline;text-underline-offset:3px}.payment-details{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}.time-cell.loading{background:#eee;color:#666}.booking-contacts[hidden]{display:none}
.calendar-heading{display:flex;justify-content:space-between;gap:36px;align-items:end;margin-bottom:40px}
.calendar-heading h1{font:clamp(2.5rem,4.3vw,4.5rem)/1.12 var(--serif);letter-spacing:-.04em;margin:18px 0}
.calendar-heading>div>p:last-child{color:var(--muted)}
.mode-switch{display:flex;flex-shrink:0;gap:4px;padding:4px;border:1px solid var(--line)}
.mode-switch button{border:0;background:transparent;padding:12px 15px;font-size:.875rem;min-height:44px}
.mode-switch [aria-pressed=true]{background:var(--ink);color:white}
.calendar-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,1fr);gap:44px;align-items:start}
.availability-panel{border-top:1px solid var(--line);padding-top:25px}
.panel-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}
.calendar-page h2{font:1.7rem/1.2 var(--serif);margin:0;letter-spacing:-.02em}
.panel-title>span{font-size:.875rem;color:var(--muted)}
.date-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.date-button{background:transparent;border:1px solid var(--line);padding:12px 4px;min-height:88px;display:flex;flex-direction:column;align-items:center;gap:3px}
.date-button>span:first-child{font-size:.875rem;color:var(--muted)}
.date-button strong{font:1.65rem var(--serif);font-weight:400}
.date-button>span:last-child{font-size:.75rem}
.date-button[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}
.date-button[aria-pressed=true]>span:first-child{color:#dbe4d7}
.selected-day{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin:30px 0 16px}
.selected-day h3{font:1.4rem var(--serif)}
.selected-day>span{font-size:.875rem;color:var(--muted)}
.range-instruction{font-size:.94rem;max-width:520px;margin-bottom:20px}
.availability-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.875rem;margin-bottom:18px;color:var(--muted)}
.availability-legend>span{display:flex;gap:6px;align-items:center}
.availability-legend>span:before{content:'';width:12px;height:12px;border:1px solid #b7c5b3;background:#fffef9}
.legend-busy:before{background:#697568!important;border-color:#697568!important}
.legend-hold:before{background:#eadac0!important;border-color:#b09b74!important}
.legend-blocked:before{background:repeating-linear-gradient(135deg,#e3e6df 0 3px,#bfc7ba 3px 4px)!important}
.timeline{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:8px}
.time-cell{min-height:82px;background:#fffef9;border:1px solid #b7c5b3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:8px 4px;transition:background .15s,border-color .15s}
.time-cell span:first-child{font-size:.875rem;white-space:nowrap}
.time-cell span:last-child{font-size:.8rem;line-height:1.2}
.time-cell.free:hover{background:#e9eee3;border-color:var(--ink)}
.time-cell.free[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}
.time-cell:disabled{cursor:not-allowed;opacity:1}
.time-cell.busy{background:#697568;color:white;border-color:#697568}
.time-cell.hold{background:#eadac0;color:#534227;border-color:#b09b74}
.time-cell.blocked{background:repeating-linear-gradient(135deg,#e3e6df 0 6px,#ccd3c7 6px 7px);border-color:#adb8a6}
.range-summary{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:22px 0;min-height:101px}
.range-summary>div{display:flex;flex-direction:column;gap:5px}
.range-summary strong{font-size:1.1rem;font-weight:500}
.range-summary span{font-size:.875rem;color:var(--muted)}
.range-summary button{background:transparent;border:0;border-bottom:1px solid var(--ink);min-height:44px;padding:8px 0;font-size:.875rem;flex-shrink:0}
.visit-rule{font-size:.875rem;color:var(--muted);margin-top:22px;max-width:560px}
.visit-panel{border:1px solid #bdc8b6;background:#fffef9}
.visit-photo{height:154px;overflow:hidden;position:relative}
.visit-photo img{height:100%;width:100%;object-position:center 65%;filter:brightness(.65)}
.visit-photo>span{position:absolute;left:26px;bottom:24px;color:white;font:1.6rem/1.2 var(--serif)}
.visit-body{padding:28px}
.visit-body .form-row{grid-template-columns:1fr;gap:16px;margin-top:20px}
.visit-body label,.visit-body .field-hint{font-size:.875rem}
.holiday-option{display:flex;gap:10px;align-items:center;margin-top:16px;color:var(--muted)}
.holiday-option input{width:18px;height:18px;accent-color:var(--ink);flex-shrink:0}
.demo-settings{font-size:.875rem;border-top:1px solid var(--line);padding-top:16px;margin-top:20px;color:var(--muted)}
.demo-settings summary{cursor:pointer}
.visit-body .total output{font-size:2.2rem}
.visit-action{width:100%;margin-top:23px;gap:12px}
.button:disabled{background:#dfe4d9;color:#56634e;cursor:not-allowed;transform:none}
.test-note{font-size:.875rem;color:var(--muted);margin-top:16px}
.test-result{margin-top:30px;padding:28px 32px;background:#e9eee3;display:flex;justify-content:space-between;gap:30px;border:1px solid #bdc8b6;scroll-margin-top:24px}
.test-result h2{margin:10px 0}
.test-result p:not(.eyebrow){margin-top:9px}
.result-actions{display:flex;flex-direction:column;gap:12px;justify-content:center}
.result-actions .button{font-size:.875rem}
.test-result.payment-not-found{display:block;background:#f7f2e8;border-color:#d6c9b3}
.payment-help{border-top:1px solid #d6c9b3;margin-top:20px;padding-top:8px;max-width:700px}
.payment-help>p{line-height:1.65}.payment-help strong{font-weight:600}
.payment-support{display:flex;flex-wrap:wrap;align-items:start;gap:14px 24px;margin-top:20px;font-size:.875rem}
.payment-support a{overflow-wrap:anywhere;max-width:100%}
.booking-reference{font-size:.875rem;color:var(--muted);overflow-wrap:anywhere}
.payment-not-found .result-actions{align-items:start;margin-top:24px}
.manual-panel{margin-top:30px;border:1px solid var(--line);padding:28px 32px}
.manual-entry{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding:18px 0}
.manual-entry button{padding:9px 15px;background:transparent;border:1px solid var(--ink);min-height:44px}
.calendar-footnote{font-size:.875rem;color:var(--muted);max-width:750px;margin-top:34px}
.mode-admin .visit-photo{display:none}
@media(max-width:1100px){.calendar-heading{display:block}.mode-switch{margin-top:24px;width:fit-content}.calendar-layout{gap:28px;grid-template-columns:minmax(0,1.25fr) minmax(300px,1fr)}.visit-body{padding:23px}.date-strip{gap:5px}}
@media(max-width:800px){.calendar-layout{grid-template-columns:1fr}.calendar-main{padding-top:20px}.calendar-heading h1{font-size:2.8rem}.calendar-heading{margin-bottom:30px}.visit-photo{height:135px}.test-result{flex-direction:column}.result-actions{align-items:start}}
@media(max-width:560px){.calendar-main{padding-bottom:40px}.calendar-heading h1{font-size:2.4rem}.calendar-page .header .text-link{font-size:.875rem}.panel-title{align-items:start}.panel-title>span{max-width:90px;text-align:right;line-height:1.3}.panel-title h2{font-size:1.5rem}.date-button{min-height:83px}.date-button strong{font-size:1.45rem}.date-button>span:last-child{font-size:.75rem}.timeline{grid-template-columns:repeat(2,minmax(0,1fr))}.selected-day{display:block}.selected-day>span{display:block;margin-top:7px}.availability-legend{gap:12px}.visit-body{padding:22px}.test-result,.manual-panel{padding:23px}.result-actions{align-items:stretch}.test-result .button{padding-inline:14px}.calendar-page .footer-top{align-items:start}.date-strip{gap:4px}.range-summary strong{font-size:1rem}}

.calendar-date-label{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.calendar-date-label input{padding:12px;background:transparent;border:1px solid var(--line);font:inherit;max-width:320px;min-height:48px}
@media(max-width:560px){.test-result h2{font-size:clamp(1.5rem,6vw,2rem);line-height:1.2;overflow-wrap:break-word}.test-result>div{min-width:0}}
