/* Zabielska Dent – poprawki wyglądu strony rezerwacji (wstrzykiwane przez nginx). */
#book-appointment-wizard input,
#book-appointment-wizard select,
#book-appointment-wizard textarea { font-size: 16px; }

.zd-hint { font-size: 14px; color: #4a5260; margin: 0.65rem 0 1rem; }
.zd-tz-hidden { display: none !important; }

.zd-switch {
  background: none; border: 0; padding: 0; margin: -0.75rem 0 1rem;
  color: #1F3A5F; text-decoration: underline; font-size: 15px; cursor: pointer;
}
.zd-switch:focus-visible { outline: 3px solid #8A4F41; outline-offset: 2px; }

@media (max-width: 767px) {
  .wizard-frame { min-height: 0 !important; }
}

/* Compact, responsive booking flow — 18 October 2026. */
#book-appointment-wizard{width:min(100%,980px);flex:0 1 980px}
#book-appointment-wizard #header{gap:20px}
#book-appointment-wizard #company-name{min-width:0}
#book-appointment-wizard #steps{display:flex!important;flex:0 0 auto;flex-wrap:nowrap;align-items:center;justify-content:center;gap:8px;width:max-content!important;overflow:visible!important;margin-inline:0!important}
#book-appointment-wizard #steps .book-step{float:none!important;display:flex!important;align-items:center;justify-content:center;flex:0 0 38px;width:38px!important;height:38px!important;margin:0!important;padding:0!important}
#book-appointment-wizard #steps .book-step.active-step{flex-basis:44px;width:44px!important;height:44px!important}
#book-appointment-wizard #steps .book-step strong{font-size:15px!important}
#book-appointment-wizard #steps .book-step.active-step strong{font-size:20px!important}
#book-appointment-wizard .frame-container{min-height:0!important;padding-block:10px!important}
#book-appointment-wizard .frame-title{margin-top:4px!important;margin-bottom:24px!important;font-size:clamp(24px,2.8vw,32px)}
#book-appointment-wizard .command-buttons{margin-top:20px!important;margin-bottom:8px!important}
#book-appointment-wizard #service-description{max-height:none!important;overflow:visible!important}
.zd-service-meta{margin:0 0 10px;font-size:15px;line-height:1.65;font-style:normal}
.zd-service-meta>span{display:block;margin-top:4px}.zd-service-meta>span:first-child{margin-top:0}.zd-service-meta .zd-price{font-weight:600}
#zd-notes-hint{margin-top:10px;line-height:1.55}
#wizard-frame-4 .frame-content{max-width:800px!important;padding-top:4px!important;margin-bottom:18px!important}
#wizard-frame-4 #appointment-details,#wizard-frame-4 #customer-details{font-size:16px!important;line-height:1.65!important;overflow-wrap:anywhere}
#wizard-frame-4 .fs-3{font-size:23px!important;line-height:1.35}
#wizard-frame-4>.d-flex{max-width:800px!important;justify-content:flex-start!important;padding-inline:12px}
#wizard-frame-4 .form-check{margin-bottom:0!important}
#wizard-frame-2 #select-time{max-width:none!important;padding-top:0!important}
#wizard-frame-2 #select-date{margin-top:0!important;margin-bottom:0!important}
#book-appointment-wizard #available-hours{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:none!important;overflow:visible!important;padding-right:0!important;margin-bottom:0!important}
#book-appointment-wizard #available-hours .available-hour{margin:0;min-height:44px;padding:9px 6px;font-size:16px;line-height:1.4}
#available-hours>div:not(.available-hour),#available-hours>p{grid-column:1/-1}
#wizard-frame-2 .flatpickr-calendar.inline,#wizard-frame-2 .flatpickr-rContainer,#wizard-frame-2 .flatpickr-days,#wizard-frame-2 .dayContainer{width:100%!important;max-width:none!important;min-width:0!important}
#wizard-frame-2 .flatpickr-day{max-width:none;flex-basis:14.285714%;height:40px;line-height:40px;border-radius:8px;font-size:16px}
#wizard-frame-2 .flatpickr-day.prevMonthDay,#wizard-frame-2 .flatpickr-day.nextMonthDay{height:0;line-height:0;border:0;overflow:hidden}
#wizard-frame-2 .flatpickr-days{overflow:clip}
@media(min-width:768px){#wizard-frame-2 .frame-content{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(220px,.85fr);gap:30px;margin:0}#wizard-frame-2 .frame-content>div{width:auto;padding:0}#wizard-frame-2 .zd-hint{margin-top:0}#wizard-frame-4 #appointment-details,#wizard-frame-4 #customer-details{width:50%}}
@media(max-width:991px){#book-appointment-wizard #header{gap:10px}#book-appointment-wizard #steps{margin-block:0!important}}
@media(max-width:767px){#book-appointment-wizard #company-name{font-size:20px!important}#book-appointment-wizard #company-logo{max-height:42px!important;margin-bottom:8px!important}#book-appointment-wizard .display-booking-selection{font-size:13px}#book-appointment-wizard .wizard-frame{padding:18px!important}#wizard-frame-2 #select-time{padding-top:20px!important}#book-appointment-wizard .command-buttons{display:flex;gap:12px;justify-content:space-between}#book-appointment-wizard .command-buttons>.btn{margin-right:0!important;min-width:0!important}#wizard-frame-4 #customer-details{text-align:left!important;margin-top:14px}#wizard-frame-4 #appointment-details{text-align:left!important}#wizard-frame-4>.d-flex{padding:0}#wizard-frame-4 .form-check{font-size:14px}#wizard-frame-4 .frame-content{padding:0!important}.zd-service-meta{font-size:14px}}

/* Field-specific contact validation. */
.zd-field-error{margin:7px 0 0;color:#a32936;font-size:13px;line-height:1.5}
.zd-validation-summary{max-width:760px;margin:0 auto 18px;padding:12px 16px;border-left:3px solid #a32936;background:#fff3f3;color:#8e2430;font-size:14px;line-height:1.5}
.zd-field-error[hidden],.zd-validation-summary[hidden]{display:none!important}
#wizard-frame-3 input[aria-invalid="true"]{border-color:#b52d3a;box-shadow:0 0 0 2px #b52d3a18}

/* Audit improvements: compact header, contrast, readable controls. */
#book-appointment-wizard .display-booking-selection{color:#e1e9ef!important;line-height:1.5}
#steps .book-step:not(.active-step) strong{color:#dce6ed!important}
.zd-logo-link{display:block;float:left;margin-right:14px}.zd-logo-link:focus-visible{outline:2px solid #fff;outline-offset:4px}
.zd-return{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 24px;background:#f4f6f7;font-size:13px;line-height:1.5;color:#425566}
.zd-return a{display:inline-flex;align-items:center;min-height:32px;color:#243b4a}.zd-return span{text-align:right}
.zd-software-link{font-size:12px;line-height:1.5;display:inline-flex;align-items:center;min-height:32px;color:#52616a}
.zd-confirmation-details{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px 16px;max-width:650px;margin:24px auto;text-align:left;line-height:1.6}
.zd-confirmation-details dt{font-weight:600}.zd-confirmation-details dd{margin:0;overflow-wrap:anywhere}
@media(max-width:767px){
 #book-appointment-wizard #header{padding:12px 16px!important;gap:10px;align-items:stretch!important}
 #book-appointment-wizard #company-name{margin:0!important;text-align:left!important;font-size:20px!important}
 #book-appointment-wizard #company-logo{height:38px!important;width:38px!important;margin:0!important}
 #book-appointment-wizard #company-name>.d-flex{justify-content:flex-start!important}
 #book-appointment-wizard .display-booking-selection{font-size:13px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 #book-appointment-wizard #steps{align-self:center;gap:12px}
 #book-appointment-wizard #steps .book-step,#book-appointment-wizard #steps .book-step.active-step{width:32px!important;height:32px!important;flex-basis:32px}
 #book-appointment-wizard #steps .book-step.active-step strong{font-size:17px!important}
 .zd-return{padding:6px 16px;font-size:12px}.zd-return span{max-width:130px}
 .zd-confirmation-details{grid-template-columns:1fr;gap:3px}.zd-confirmation-details dd{margin-bottom:12px}
}
@media print{.zd-print,#message-frame>.mt-2,.zd-software-link{display:none!important}#message-frame{box-shadow:none!important;width:100%!important;max-width:none!important}.wrapper,#main{min-height:0!important}body{background:white!important}}

/* Stable first paint: anchor the wizard to the top; reserve header/logo space. */
#main>.wrapper{align-items:flex-start!important}#book-appointment-wizard{margin-block:0!important}
.zd-logo-link{width:48px;height:48px;flex:none}#book-appointment-wizard #company-logo{width:48px!important;height:48px!important;max-width:none!important;max-height:none!important;margin:0!important;object-fit:contain}
#book-appointment-wizard .display-booking-selection{min-height:2.7em}
@media(max-width:767px){.zd-logo-link{width:38px;height:38px}#book-appointment-wizard #company-logo{width:38px!important;height:38px!important}#book-appointment-wizard #header{min-height:138px}}

/* Reserve icon dimensions before Font Awesome replaces the placeholders. */
#book-appointment-wizard .fas,#book-appointment-wizard .svg-inline--fa{display:inline-block;width:1em;height:1em;vertical-align:-.125em}
#book-appointment-wizard #steps .book-step{transition:background-color .2s,color .2s!important}
