/* CAMPZAUBER BOOKING V3.1 – PREMIUM REFINEMENT */

.cz-booking-shell,
.cz-booking-shell *{box-sizing:border-box}

.cz-booking-shell{
    --cz-green:#173E2D;
    --cz-green-2:#1D4B37;
    --cz-text:#18372B;
    --cz-muted:#5F7067;
    --cz-orange:#F29A23;
    --cz-orange-dark:#D97D00;
    --cz-sage:#EEF3EC;
    --cz-ivory:#FAF8F3;
    --cz-sand:#F5F0E8;
    --cz-line:#E5DCCF;
    width:min(1280px,calc(100vw - 40px));
    max-width:100%;
    margin:44px auto 72px;
    color:var(--cz-text);
    font-family:Inter,Arial,sans-serif;
}

/* STEPS */
.cz-booking-steps{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:8px;
    margin:0 0 20px;
}

.cz-booking-step{
    min-height:92px;
    display:grid;
    grid-template-columns:48px minmax(0,1fr);
    align-items:center;
    gap:13px;
    padding:17px 18px;
    color:#fff;
    background:linear-gradient(155deg,var(--cz-green) 0%,var(--cz-green-2) 100%);
    border:1px solid #2E5B47;
    border-radius:13px;
    box-shadow:0 8px 20px rgba(23,62,45,.10);
    transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease;
}

.cz-booking-step.is-active{
    background:linear-gradient(155deg,#20533D 0%,#286047 100%);
    border-color:var(--cz-orange);
    box-shadow:0 11px 26px rgba(23,62,45,.16);
}

.cz-booking-number{
    width:46px;height:46px;
    display:flex;align-items:center;justify-content:center;
    color:#fff;
    background:rgba(255,255,255,.10);
    border:2px solid var(--cz-orange);
    border-radius:50%;
    font-size:14px;
    font-weight:800;
}

.cz-booking-step.is-active .cz-booking-number{
    color:var(--cz-green);
    background:#fff;
    box-shadow:0 5px 14px rgba(0,0,0,.12);
}

.cz-booking-step strong{
    display:block;
    margin:0 0 4px;
    color:#fff;
    font-size:15px;
    line-height:1.3;
    font-weight:800;
    text-transform:uppercase;
}
.cz-booking-step small{
    display:block;
    color:#D7E5DC;
    font-size:12px;
    line-height:1.4;
}

/* BODY */
.cz-booking-body{
    display:grid;
    grid-template-columns:minmax(0,1fr) 320px;
    gap:22px;
    align-items:start;
}
.cz-booking-center{
    min-width:0;
    padding:34px;
    overflow:visible;
    background:#fff;
    border:1px solid var(--cz-line);
    border-radius:18px;
    box-shadow:0 14px 38px rgba(25,53,41,.055);
}

/* Header */
.cz-booking-center .forminator-pagination-progress{display:none!important}
.cz-booking-center .forminator-custom-form,
.cz-booking-center .forminator-pagination,
.cz-booking-center .forminator-pagination--content{
    margin-top:0!important;
    padding-top:0!important;
}
.cz-step-custom-head{
    margin:0 0 21px;
    padding:0 0 18px;
    border-bottom:1px solid #EEE7DE;
}
.cz-step-head-copy{min-width:0}
.cz-step-kicker{
    display:flex;
    align-items:center;
    gap:10px;
    margin:0 0 11px;
    color:#E8890C;
    font-size:11px;
    line-height:1;
    font-weight:850;
    letter-spacing:.15em;
    text-transform:uppercase;
}
.cz-step-kicker::before{
    content:"";
    width:26px;height:2px;
    background:#E8890C;
}
.cz-step-custom-head h2{
    margin:0 0 9px;
    color:var(--cz-green);
    font-family:'Roboto Slab',Georgia,serif;
    font-size:29px;
    line-height:1.18;
    font-weight:700;
    letter-spacing:-.02em;
}
.cz-step-custom-head p{
    margin:0;
    max-width:760px;
    color:#344B40;
    font-size:13.5px;
    line-height:1.65;
    font-weight:500;
}
.cz-booking-shell[data-step="1"] .cz-step-custom-head p{
    max-width:none;
    padding:11px 14px;
    color:#304A3E;
    background:linear-gradient(135deg,#F6F9F5 0%,#EFF5EF 100%);
    border:1px solid #DCE7DD;
    border-left:3px solid var(--cz-orange);
    border-radius:9px;
    font-size:13px;
    line-height:1.55;
    font-weight:600;
}

/* Native Forminator */
.cz-booking-center .forminator-row{margin-bottom:18px!important}
.cz-booking-center .forminator-label{
    display:block!important;
    margin:0 0 9px!important;
    color:var(--cz-text)!important;
    font-size:12.5px!important;
    line-height:1.4!important;
    font-weight:800!important;
}
.cz-booking-center input,
.cz-booking-center select,
.cz-booking-center textarea,
.cz-booking-center .forminator-input,
.cz-booking-center .forminator-select{
    width:100%!important;
    color:var(--cz-text)!important;
    background:#fff!important;
    border:1px solid var(--cz-line)!important;
    border-radius:12px!important;
    font-family:Inter,Arial,sans-serif!important;
    font-size:13.5px!important;
    box-shadow:none!important;
}
.cz-booking-center input,
.cz-booking-center select,
.cz-booking-center .forminator-input{min-height:50px!important}
.cz-booking-center textarea{min-height:132px!important;padding:15px!important}

/* Hidden native time/person – technisch aktiv */
.cz-native-field-offscreen{
    position:absolute!important;
    left:-10000px!important;
    top:auto!important;
    width:1px!important;
    height:1px!important;
    min-width:1px!important;
    min-height:1px!important;
    max-width:1px!important;
    max-height:1px!important;
    overflow:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    clip:rect(0 0 0 0)!important;
    clip-path:inset(50%)!important;
}
.cz-native-row-offscreen{
    position:absolute!important;
    left:-10000px!important;
    top:auto!important;
    width:1px!important;
    height:1px!important;
    min-width:1px!important;
    min-height:1px!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    clip:rect(0 0 0 0)!important;
    clip-path:inset(50%)!important;
}
.cz-booking-center #time-1,
.cz-booking-center #time-2,
.cz-booking-center #select-2,
.cz-booking-center .forminator-field-time-1,
.cz-booking-center .forminator-field-time-2,
.cz-booking-center .forminator-field-select-2{
    position:absolute!important;
    left:-10000px!important;
    width:1px!important;
    height:1px!important;
    margin:0!important;
    overflow:hidden!important;
    opacity:0!important;
    pointer-events:none!important;
    clip-path:inset(50%)!important;
}

/* DATE CARDS */
.cz-journey-date-row{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:16px!important;
    margin:0 0 16px!important;
}
.cz-journey-date{
    width:100%!important;
    max-width:none!important;
    min-height:118px!important;
    margin:0!important;
    padding:18px 20px!important;
    background:#FBFAF7!important;
    border:1px solid #E4DBCE!important;
    border-radius:15px!important;
    box-shadow:0 7px 20px rgba(25,53,41,.035)!important;
}
.cz-journey-date .forminator-label{
    margin:0 0 8px!important;
    color:#395247!important;
    font-size:11px!important;
    letter-spacing:.10em!important;
    text-transform:uppercase!important;
}
.cz-journey-date .forminator-input-with-icon{
    position:relative!important;
    min-height:62px!important;
    background:#fff!important;
    border:1px solid #E3D9CC!important;
    border-radius:12px!important;
}
.cz-journey-date .forminator-input-with-icon .forminator-icon-calendar{
    position:absolute!important;
    top:31px!important;
    left:17px!important;
    z-index:2!important;
    transform:translateY(-50%)!important;
}
.cz-journey-date .forminator-input{
    min-height:60px!important;
    padding:0 16px 0 48px!important;
    color:var(--cz-green)!important;
    background:transparent!important;
    border:0!important;
    border-radius:12px!important;
    font-size:15px!important;
    font-weight:800!important;
}
.cz-booking-center .cz-date-picker-input{
    cursor:pointer!important;
    caret-color:transparent!important;
    -webkit-user-select:none!important;
    user-select:none!important;
    touch-action:manipulation;
}

/* TIME + PERSON */
.cz-time-row{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    margin:0 0 16px;
}
.cz-time-ui,.cz-person-ui{position:relative;margin:0}
.cz-person-ui{margin-bottom:16px}

.cz-time-trigger,.cz-person-trigger{
    width:100%;
    min-height:86px;
    display:grid;
    grid-template-columns:50px minmax(0,1fr) 20px;
    align-items:center;
    gap:14px;
    padding:12px 16px;
    color:var(--cz-text);
    background:#fff;
    border:1px solid #DDE3DD;
    border-radius:15px;
    box-shadow:0 7px 20px rgba(25,53,41,.035);
    text-align:left;
    cursor:pointer;
}
.cz-time-icon,.cz-person-icon,.cz-duration-icon{
    width:50px;height:50px;
    display:flex;align-items:center;justify-content:center;
    color:var(--cz-green);
    background:var(--cz-sage);
    border:1px solid #DCE6DC;
    border-radius:50%;
}
.cz-time-icon svg,.cz-person-icon svg,.cz-duration-icon svg{width:23px;height:23px}
.cz-time-copy small,.cz-person-copy small{
    display:block;margin-bottom:4px;
    color:#52675C;
    font-size:10px;
    font-weight:850;
    letter-spacing:.11em;
    text-transform:uppercase;
}
.cz-time-copy strong,.cz-person-copy strong{
    display:block;
    color:var(--cz-green);
    font-size:14px;
    line-height:1.35;
    font-weight:800;
}
.cz-person-copy small b{color:#D83A32}
.cz-time-chevron,.cz-person-chevron{color:var(--cz-green);font-size:20px}
.cz-time-panel,.cz-person-panel{
    position:absolute;
    z-index:9999;
    top:calc(100% + 8px);
    left:0;right:0;
    padding:12px;
    background:#fff;
    border:1px solid #DDD3C6;
    border-radius:13px;
    box-shadow:0 20px 45px rgba(25,53,41,.16);
}
.cz-time-panel-head{
    display:flex;justify-content:space-between;
    margin-bottom:9px;padding:2px 2px 10px;
    border-bottom:1px solid #EEE7DD;
}
.cz-time-panel-head strong{color:var(--cz-green);font-size:10px;text-transform:uppercase}
.cz-time-panel-head span{color:#68766D;font-size:9px}
.cz-time-grid{
    max-height:260px;overflow:auto;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:6px;
}
.cz-person-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.cz-time-option,.cz-person-option{
    min-height:38px;
    padding:6px 5px;
    color:#203A2E;
    background:#FAF8F3;
    border:1px solid #E4DCD0;
    border-radius:8px;
    font-size:11px;
    font-weight:750;
    cursor:pointer;
}
.cz-time-option:hover,.cz-time-option.is-selected,
.cz-person-option:hover,.cz-person-option.is-selected{
    background:#FFF4E5;
    border-color:#E5A13A;
}

/* DURATION */
.cz-duration-box{
    min-height:96px;
    display:grid;
    grid-template-columns:54px minmax(0,1fr) 150px;
    align-items:center;
    gap:16px;
    margin:0 0 18px;
    padding:18px 20px;
    background:linear-gradient(135deg,#F1F7F2 0%,#FBFDFB 100%);
    border:1px solid #BFD2C3;
    border-left:4px solid var(--cz-orange);
    border-radius:15px;
    box-shadow:0 10px 25px rgba(23,62,45,.07);
}
.cz-duration-icon{color:#fff;background:var(--cz-green);border-color:var(--cz-green)}
.cz-duration-copy span,.cz-duration-price span{
    display:block;margin-bottom:4px;
    color:#597064;
    font-size:10px;
    font-weight:850;
    letter-spacing:.09em;
    text-transform:uppercase;
}
.cz-duration-copy strong{
    display:block;margin-bottom:4px;
    color:var(--cz-green);
    font-family:'Roboto Slab',Georgia,serif;
    font-size:17px;
    line-height:1.35;
}
.cz-duration-copy small{color:#52675C;font-size:11px;line-height:1.5}
.cz-duration-price{
    min-width:132px;
    padding:12px 14px;
    text-align:center;
    color:#fff;
    background:var(--cz-green);
    border-radius:11px;
}
.cz-duration-price span{color:#D7E5DC}
.cz-duration-price strong{
    color:#fff;
    font-family:'Roboto Slab',Georgia,serif;
    font-size:20px;
}

/* SUMMARY */
.cz-booking-summary{
    position:sticky;
    top:24px;
    align-self:start;
    padding:27px 20px 20px;
    color:#fff;
    background:linear-gradient(155deg,var(--cz-green) 0%,var(--cz-green-2) 100%);
    border:1px solid #2E5B47;
    border-radius:18px;
    box-shadow:0 18px 42px rgba(23,62,45,.18);
}
.cz-summary-kicker{
    color:#FFB347;
    font-size:12px;
    font-weight:850;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.cz-booking-summary h3{
    margin:7px 0 17px;
    color:#fff;
    font-family:'Roboto Slab',Georgia,serif;
    font-size:22px;
    line-height:1.18;
    font-weight:800;
}
.cz-summary-accent{
    width:36px;height:2px;
    margin:-6px 0 16px;
    background:var(--cz-orange);
}
.cz-summary-section{
    margin:0;
    padding:16px 0;
    border-top:1px dashed rgba(255,255,255,.18);
}
.cz-summary-section:first-of-type{padding-top:4px;border-top:0}
.cz-summary-section-title{
    display:flex;align-items:center;gap:8px;
    margin:0 0 13px;
    color:#fff;
    font-size:10px;
    font-weight:850;
    letter-spacing:.11em;
    text-transform:uppercase;
}
.cz-summary-section-title span{width:22px;height:2px;background:var(--cz-orange)}
.cz-summary-row{
    display:grid;
    grid-template-columns:40px minmax(0,1fr);
    gap:11px;
    align-items:center;
    margin:0 0 10px;
}
.cz-summary-icon,.cz-summary-accessory-icon{
    width:40px;height:40px;
    display:flex;align-items:center;justify-content:center;
    color:#fff;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.22);
    border-radius:50%;
}
.cz-summary-icon svg,.cz-summary-accessory-icon svg{width:19px;height:19px;stroke-width:2.05}
.cz-summary-row strong{
    display:block;margin-bottom:2px;
    color:#fff;
    font-size:13px;
    line-height:1.3;
}
.cz-summary-row span{color:#D7E5DC;font-size:11.5px;line-height:1.4}
.cz-summary-empty{color:#D7E5DC;font-size:11.5px}
.cz-summary-accessories{display:grid;gap:8px}
.cz-summary-accessory{
    min-height:44px;
    display:grid;
    grid-template-columns:34px minmax(0,1fr) auto;
    align-items:center;
    gap:9px;
}
.cz-summary-accessory-icon{width:34px;height:34px}
.cz-summary-accessory-icon svg{width:18px;height:18px}
.cz-summary-accessory-name{color:#fff;font-size:11.5px;font-weight:750}
.cz-summary-accessory-price{color:#fff;font-size:10.5px;text-align:right;white-space:nowrap}
.cz-summary-price-line{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    padding:5px 0;
    color:#D7E5DC;
    font-size:11.5px;
}
.cz-summary-price-line strong{max-width:64%;color:#fff;text-align:right;font-size:11.5px}
.cz-summary-total{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:12px;
    padding:13px;
    background:linear-gradient(135deg,rgba(255,255,255,.13),rgba(255,255,255,.07));
    border:1px solid rgba(255,255,255,.24);
    border-left:3px solid var(--cz-orange);
    border-radius:11px;
}
.cz-summary-total-label{display:flex;align-items:center;gap:9px;min-width:0}
.cz-summary-total .cz-summary-total-label>span:last-child{color:#fff;font-size:11px;line-height:1.4;font-weight:800}
.cz-summary-total-icon{
    width:30px;height:30px;flex:0 0 30px;
    display:flex;align-items:center;justify-content:center;
    color:var(--cz-green);background:#fff;border-radius:50%;
}
.cz-summary-total-icon svg{width:15px;height:15px;stroke-width:1.9}
.cz-summary-total strong{
    color:#fff;
    font-family:'Roboto Slab',Georgia,serif;
    font-size:18px;
    white-space:nowrap;
}
.cz-summary-deposit{
    display:grid;
    grid-template-columns:34px minmax(0,1fr) auto;
    align-items:center;
    gap:9px;
    margin-top:10px;
    padding:11px 12px;
    background:linear-gradient(135deg,rgba(255,255,255,.10),rgba(255,255,255,.06));
    border:1px solid rgba(255,255,255,.22);
    border-radius:11px;
}
.cz-summary-deposit-icon{
    width:34px;height:34px;display:flex;align-items:center;justify-content:center;
    color:#fff;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.24);border-radius:50%;
}
.cz-summary-deposit-icon svg{width:17px;height:17px;stroke-width:2.1}
.cz-summary-deposit-copy strong{display:block;color:#fff;font-size:11.5px;line-height:1.3}
.cz-summary-deposit-copy small{display:block;margin-top:3px;color:#D7E5DC;font-size:10px;line-height:1.4}
.cz-summary-deposit-value{color:#fff;font-size:12px!important;white-space:nowrap}
.cz-summary-request-status{
    display:none;
    align-items:center;
    gap:11px;
    margin-top:14px;
    padding:13px 14px;
    color:#fff;
    background:rgba(255,255,255,.09);
    border:1px solid rgba(255,255,255,.22);
    border-left:3px solid var(--cz-orange);
    border-radius:11px;
}
.cz-summary-request-status>span{
    width:38px;height:38px;flex:0 0 38px;
    display:flex;align-items:center;justify-content:center;
    color:var(--cz-green);
    background:#fff;
    border:1px solid rgba(255,255,255,.6);
    border-radius:50%;
}
.cz-summary-request-status svg{width:19px;height:19px}
.cz-summary-request-status strong,.cz-summary-request-status small{display:block}
.cz-summary-request-status strong{font-size:12px;line-height:1.35;font-weight:800}
.cz-summary-request-status small{margin-top:4px;color:#D7E5DC;font-size:10.5px;line-height:1.45}
.cz-booking-shell[data-step="4"] .cz-summary-travel,
.cz-booking-shell[data-step="4"] .cz-summary-extras{display:none}
.cz-booking-shell[data-step="4"] .cz-summary-pricing{padding-top:5px;border-top:0}
.cz-booking-shell[data-step="4"] .cz-summary-request-status{display:flex}

/* ACCESSORIES */
#checkbox-1>.forminator-field{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:16px!important;
}
.cz-booking-center .cz-accessory-card{
    position:relative!important;
    min-height:112px!important;
    margin:0!important;
    padding:13px 15px!important;
    color:var(--cz-text)!important;
    background:#fff!important;
    border:1px solid var(--cz-line)!important;
    border-radius:16px!important;
    box-shadow:0 7px 20px rgba(25,53,41,.035)!important;
}
.cz-booking-center .cz-accessory-card.is-selected,
.cz-booking-center .cz-accessory-card:has(input:checked){
    background:#FFFAF3!important;
    border-color:var(--cz-orange)!important;
}
.cz-booking-center .cz-accessory-card .cz-accessory-art{
    width:36px;height:36px;
    display:flex!important;align-items:center!important;justify-content:center!important;
    color:var(--cz-green);
    background:linear-gradient(145deg,#F3F7F1 0%,#E7EFE8 100%);
    border:1px solid #D9E5DB;
    border-radius:50%;
}
.cz-accessory-art svg{width:18px;height:18px;stroke-width:1.85}
.cz-booking-center .cz-accessory-card .forminator-checkbox-box{
    position:absolute!important;
    top:14px!important;
    right:14px!important;
    width:27px!important;
    height:27px!important;
    min-width:27px!important;
    background:#fff!important;
    border:1.5px solid #789487!important;
    border-radius:7px!important;
}
.cz-booking-center .cz-accessory-card input:checked~.forminator-checkbox-box,
.cz-booking-center .cz-accessory-card.is-selected .forminator-checkbox-box,
.cz-booking-center .cz-accessory-card:has(input:checked) .forminator-checkbox-box{
    background:var(--cz-green)!important;
    border-color:var(--cz-green)!important;
}
.cz-booking-center .cz-accessory-card.is-selected .forminator-checkbox-box::before,
.cz-booking-center .cz-accessory-card input:checked~.forminator-checkbox-box::before{
    content:"✓"!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    height:100%!important;
    color:#fff!important;
    font-size:17px!important;
    line-height:1!important;
    font-weight:900!important;
}
.cz-booking-center .cz-accessory-card .forminator-checkbox-label,
.cz-booking-center .cz-accessory-card .forminator-checkbox__label{
    width:100%!important;
    display:block!important;
    padding:0 34px 0 0!important;
}
.cz-booking-center .cz-accessory-card .cz-accessory-card-top{
    width:100%!important;
    display:grid!important;
    grid-template-columns:36px minmax(0,1fr)!important;
    align-items:center!important;
    gap:10px!important;
}
.cz-accessory-card-content{min-width:0;display:block}
.cz-accessory-card-title{
    display:block;
    margin:0 0 3px;
    color:var(--cz-green);
    font-size:14px;
    line-height:1.2;
    font-style:normal;
}
.cz-accessory-card-text{display:block;color:#52675C;font-size:11.5px;line-height:1.4;font-weight:500}
.cz-accessory-card-bottom{display:block;margin-top:6px}
.cz-accessory-card-price{
    color:var(--cz-green);
    font-size:16px;
    line-height:1;
    font-weight:900;
    font-style:normal;
}
.cz-accessory-card-request{
    color:var(--cz-green);
    font-size:16px;
    line-height:1.1;
    font-weight:850;
    font-style:normal;
}

/* STEP 3 */
.cz-address-grid{display:grid!important;grid-template-columns:minmax(0,1fr) 150px 190px!important;gap:0 16px!important}
.cz-address-grid .cz-address-street,
.cz-address-grid .cz-address-city,
.cz-address-grid .cz-address-zip{grid-column:auto}
.cz-address-grid .forminator-label,
.cz-booking-center #address-1 .forminator-label{
    min-height:20px!important;
    margin-bottom:8px!important;
    color:#203B2F!important;
    font-size:12.5px!important;
    line-height:1.45!important;
    font-weight:800!important;
    letter-spacing:0!important;
    text-transform:none!important;
}
.cz-data-trust{
    display:flex;
    align-items:center;
    gap:10px;
    margin:0 0 18px;
    padding:15px 17px;
    color:var(--cz-green);
    background:#F1F6F1;
    border:1px solid #C9D9CD;
    border-radius:12px;
    font-size:12px;
}
.cz-data-trust>span{
    width:30px;height:30px;flex:0 0 30px;
    display:flex;align-items:center;justify-content:center;
    color:#fff;background:var(--cz-green);border-radius:50%;
}

/* STEP 4 */
.cz-request-notice{
    display:flex;
    align-items:center;
    gap:14px;
    margin:0 0 18px;
    padding:15px 18px;
    color:var(--cz-green);
    background:#F1F6F1;
    border:1px solid #C9D9CD;
    border-left:4px solid #E8890C;
    border-radius:12px;
}
.cz-request-notice-icon{
    width:42px;height:42px;flex:0 0 42px;
    display:flex;align-items:center;justify-content:center;
    color:#fff;background:var(--cz-green);border:1px solid #2E624B;border-radius:50%;
}
.cz-request-notice-icon svg{width:21px;height:21px}
.cz-request-notice strong{display:block;margin-bottom:4px;color:var(--cz-green);font-size:13.5px;line-height:1.35;font-weight:800}
.cz-request-notice div>span{display:block;color:#536A5E;font-size:11.5px;line-height:1.5}
.cz-review-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    margin:0 0 18px;
}
.cz-review-card{
    min-height:164px;
    padding:17px;
    color:var(--cz-text);
    background:#fff;
    border:1px solid #DDE3DD;
    border-radius:15px;
    box-shadow:0 7px 20px rgba(25,53,41,.035);
}
.cz-review-card header{
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    align-items:center;
    gap:10px;
    margin-bottom:13px;
}
.cz-review-icon{
    width:42px;height:42px;
    display:flex;align-items:center;justify-content:center;
    color:var(--cz-green);
    background:linear-gradient(145deg,#F4F7F2 0%,#E7EFE8 100%);
    border:1px solid #D9E5DB;
    border-radius:50%;
}
.cz-review-icon svg{width:20px;height:20px;stroke-width:2.05}
.cz-review-card h3{margin:0;color:var(--cz-green);font-family:Inter,Arial,sans-serif;font-size:15px;line-height:1.35;font-weight:800}
.cz-review-card dl{margin:0}
.cz-review-card dl>div,.cz-review-list>div{
    display:flex;justify-content:space-between;gap:10px;
    padding:4px 0;
    color:#31493E;font-size:12.5px;line-height:1.45;
}
.cz-review-card dt{font-weight:700}
.cz-review-card dd{margin:0;text-align:right}
.cz-review-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.cz-review-meta span{padding:6px 9px;background:var(--cz-sage);border:1px solid #E2EAE2;border-radius:7px;color:var(--cz-green);font-size:11px;font-weight:750}
.cz-review-contact-card>strong,.cz-review-contact-card>span{display:block;margin-bottom:6px;color:#31493E;font-size:12.5px;line-height:1.5}
.cz-review-message-card p{margin:0;color:#31493E;font-size:12.5px;line-height:1.6}
.cz-premium-consent{
    display:block!important;
    margin:0!important;
    padding:17px 19px!important;
    background:#fff!important;
    border:1px solid #DDE3DD!important;
    border-radius:15px!important;
    outline:0!important;
    box-shadow:0 7px 20px rgba(25,53,41,.035)!important;
}
.cz-consent-intro{
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    align-items:center;
    gap:12px;
    margin:0;
    padding:0 0 14px;
    border-bottom:1px solid var(--cz-line);
}
.cz-consent-icon{
    width:42px;height:42px;
    display:flex;align-items:center;justify-content:center;
    color:var(--cz-green);background:linear-gradient(145deg,#F4F7F2 0%,#E7EFE8 100%);border:1px solid #D9E5DB;border-radius:50%;
}
.cz-consent-icon svg{width:20px;height:20px}
.cz-consent-intro strong{display:block;color:var(--cz-green);font-size:14px;line-height:1.35;font-weight:800}
.cz-consent-intro small{display:block;margin-top:3px;color:#52675C;font-size:11.5px;line-height:1.5;font-weight:500}
.cz-premium-consent>.forminator-col,
.cz-premium-consent>.forminator-field{margin:14px 0 0!important}
.cz-premium-consent>.forminator-col{width:100%!important;max-width:none!important;margin:14px 0 0!important;padding:0!important}
.cz-premium-consent>.forminator-col>.forminator-field,
.cz-premium-consent>.forminator-field{
    display:grid!important;
    grid-template-columns:155px minmax(0,1fr)!important;
    align-items:start!important;
    gap:8px 16px!important;
}
.cz-premium-consent .forminator-label{margin:2px 0 0!important;color:var(--cz-green)!important;font-size:12.5px!important;line-height:1.45!important;font-weight:800!important}
.cz-premium-consent .forminator-checkbox{margin:0!important}
.cz-premium-consent .forminator-checkbox,
.cz-premium-consent .forminator-checkbox-label,
.cz-premium-consent .forminator-checkbox__label{min-width:0!important;max-width:100%!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important}
.cz-premium-consent .forminator-checkbox-label,
.cz-premium-consent .forminator-checkbox__label{color:#31493E!important;font-size:12px!important;line-height:1.5!important;font-weight:500!important}
.cz-premium-consent .forminator-error-message{grid-column:2;margin-top:2px!important}

/* BUTTONS */
.cz-booking-center .forminator-pagination-footer{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:14px!important;
    margin-top:22px!important;
}
.cz-booking-shell[data-step="1"] .forminator-pagination-footer{grid-template-columns:1fr!important}
.cz-booking-center .forminator-button-next,
.cz-booking-center .forminator-button-submit,
.cz-booking-center .forminator-button-back{
    width:100%!important;
    min-height:56px!important;
    margin:0!important;
    border-radius:12px!important;
    font-family:Inter,Arial,sans-serif!important;
    font-size:14px!important;
    font-weight:800!important;
}
.cz-booking-center .forminator-button-next,
.cz-booking-center .forminator-button-submit{
    color:#fff!important;
    background:#E8890C!important;
    border:1px solid #E8890C!important;
    box-shadow:none!important;
}
.cz-booking-center .forminator-button-next:hover,
.cz-booking-center .forminator-button-submit:hover{background:#D97D00!important}
.cz-booking-center .forminator-button-back{
    color:var(--cz-green)!important;
    background:#fff!important;
    border:1px solid #D6CEC2!important;
}

/* ERRORS – erst nach Benutzeraktion */
.cz-booking-shell:not(.cz-user-interacted) .forminator-error-message{display:none!important}
.cz-booking-shell:not(.cz-user-interacted) .forminator-has_error input,
.cz-booking-shell:not(.cz-user-interacted) .forminator-field-has_error input{
    border-color:var(--cz-line)!important;
    box-shadow:none!important;
}
.cz-booking-center .forminator-has_error input:not([type="checkbox"]),
.cz-booking-center .forminator-has_error select,
.cz-booking-center .forminator-has_error textarea,
.cz-booking-center .forminator-field-has_error input:not([type="checkbox"]),
.cz-booking-center .forminator-field-has_error select,
.cz-booking-center .forminator-field-has_error textarea,
.cz-booking-center input[aria-invalid="true"]:not([type="checkbox"]),
.cz-booking-center select[aria-invalid="true"],
.cz-booking-center textarea[aria-invalid="true"],
.cz-booking-center input.cz-required-empty:not([type="checkbox"]){
    background:#FFF8F7!important;
    border-color:#D83A32!important;
    box-shadow:0 0 0 3px rgba(216,58,50,.09)!important;
}
.cz-booking-center .cz-journey-date:has(.forminator-has_error),
.cz-booking-center .cz-journey-date:has(.forminator-field-has_error),
.cz-booking-center .cz-journey-date:has(.cz-required-empty){
    background:#FFF8F7!important;
    border-color:#D83A32!important;
}
.cz-time-ui.cz-required-empty .cz-time-trigger,
.cz-person-ui.cz-required-empty .cz-person-trigger{
    background:#FFF8F7!important;
    border-color:#D83A32!important;
    box-shadow:0 0 0 3px rgba(216,58,50,.09)!important;
}
.cz-time-ui.cz-required-empty::after,
.cz-person-ui.cz-required-empty::after{
    content:"Bitte treffen Sie eine Auswahl.";
    display:block;
    width:fit-content;
    max-width:100%;
    margin-top:8px;
    padding:7px 10px;
    color:#A9302B;
    background:#FFF4F2;
    border:1px solid #F1CECB;
    border-radius:8px;
    font-size:11.5px;
    line-height:1.35;
    font-weight:750;
}
.cz-premium-consent.cz-required-empty{
    background:#FFF8F7!important;
    border-color:#D83A32!important;
    box-shadow:0 0 0 3px rgba(216,58,50,.07)!important;
}
.cz-premium-consent.cz-required-empty .forminator-checkbox-box,
.cz-premium-consent.cz-required-empty input[type="checkbox"] + span{
    border-color:#D83A32!important;
}
.cz-booking-shell.cz-submission-complete .forminator-error-message{
    display:none!important;
}
.cz-booking-shell.cz-submission-complete .forminator-has_error input,
.cz-booking-shell.cz-submission-complete .forminator-has_error select,
.cz-booking-shell.cz-submission-complete .forminator-has_error textarea,
.cz-booking-shell.cz-submission-complete .forminator-field-has_error input,
.cz-booking-shell.cz-submission-complete .forminator-field-has_error select,
.cz-booking-shell.cz-submission-complete .forminator-field-has_error textarea{
    background:#fff!important;
    border-color:var(--cz-line)!important;
    box-shadow:none!important;
}
.cz-booking-shell.cz-submission-complete .cz-journey-date{
    background:#FBFAF7!important;
    border-color:#E4DBCE!important;
    box-shadow:0 7px 20px rgba(25,53,41,.035)!important;
}
.cz-booking-shell.cz-submission-complete .cz-time-trigger,
.cz-booking-shell.cz-submission-complete .cz-person-trigger{
    background:#fff!important;
    border-color:#DDE3DD!important;
    box-shadow:0 7px 20px rgba(25,53,41,.035)!important;
}
.cz-booking-shell.cz-submission-complete .cz-premium-consent{
    background:#fff!important;
    border-color:#DDE3DD!important;
    box-shadow:0 7px 20px rgba(25,53,41,.035)!important;
}
.cz-booking-center .forminator-error-message{
    width:fit-content!important;
    max-width:100%!important;
    margin-top:9px!important;
    padding:8px 12px!important;
    color:#A9302B!important;
    background:#FFF4F2!important;
    border:1px solid #F1CECB!important;
    border-radius:9px!important;
    font-size:12px!important;
    font-weight:750!important;
}
.cz-booking-shell .forminator-required{color:#D83A32!important}

/* FIELDSET/THEME RESET */
.cz-booking-center fieldset,
.cz-booking-center .forminator-fieldset,
.cz-booking-center .forminator-row fieldset{
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    outline:0!important;
    box-shadow:none!important;
}
.cz-booking-center legend{margin:0!important;padding:0!important;border:0!important}

/* PREMIUM JQUERY-UI DATEPICKER – keine eigene Sichtbarkeitssteuerung */
#ui-datepicker-div,
body .forminator-calendar{
    display:none;
    position:absolute;
}
#ui-datepicker-div.cz-premium-datepicker,
.forminator-calendar.cz-premium-datepicker{
    position:absolute!important;
    width:320px!important;
    max-width:calc(100vw - 24px)!important;
    padding:12px!important;
    color:#123C2D!important;
    background:#fff!important;
    border:1px solid #E5D9CA!important;
    border-radius:18px!important;
    box-shadow:0 20px 50px rgba(21,54,41,.20)!important;
    font-family:Inter,Arial,sans-serif!important;
    z-index:999999!important;
    box-sizing:border-box!important;
}
.cz-premium-datepicker,.cz-premium-datepicker *{box-sizing:border-box!important}
.cz-premium-datepicker .ui-datepicker-header{
    position:relative!important;
    min-height:40px!important;
    margin:0 0 9px!important;
    padding:0 43px!important;
    background:#fff!important;
    border:0!important;
}
.cz-premium-datepicker .ui-datepicker-title{
    min-height:40px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:7px!important;
    margin:0!important;
}
.cz-premium-datepicker .ui-datepicker-title select{
    width:auto!important;
    height:38px!important;
    margin:0!important;
    padding:0 9px!important;
    color:#123C2D!important;
    background:#F8F5EF!important;
    border:1px solid #E3D8C9!important;
    border-radius:10px!important;
    font-size:12px!important;
    font-weight:750!important;
}
.cz-premium-datepicker .ui-datepicker-title .ui-datepicker-month{width:112px!important;min-width:112px!important}
.cz-premium-datepicker .ui-datepicker-title .ui-datepicker-year{width:80px!important;min-width:80px!important}
.cz-premium-datepicker .ui-datepicker-prev,
.cz-premium-datepicker .ui-datepicker-next{
    position:absolute!important;
    top:1px!important;
    width:38px!important;
    height:38px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    color:#fff!important;
    background:#174C38!important;
    border:0!important;
    border-radius:11px!important;
    cursor:pointer!important;
}
.cz-premium-datepicker .ui-datepicker-prev{left:0!important}
.cz-premium-datepicker .ui-datepicker-next{right:0!important}
.cz-premium-datepicker .ui-datepicker-prev .ui-icon,
.cz-premium-datepicker .ui-datepicker-next .ui-icon{
    width:10px!important;height:10px!important;
    display:block!important;
    margin:0!important;
    background:none!important;
    border-top:2px solid #fff!important;
    border-right:2px solid #fff!important;
    font-size:0!important;
}
.cz-premium-datepicker .ui-datepicker-prev .ui-icon{transform:rotate(-135deg)!important}
.cz-premium-datepicker .ui-datepicker-next .ui-icon{transform:rotate(45deg)!important}
.cz-premium-datepicker .ui-datepicker-calendar{
    width:100%!important;
    table-layout:fixed!important;
    margin:0!important;
    border:0!important;
    border-collapse:separate!important;
    border-spacing:2px!important;
    background:#fff!important;
}
.cz-premium-datepicker .ui-datepicker-calendar th{
    height:27px!important;
    padding:0!important;
    color:#65776D!important;
    background:transparent!important;
    border:0!important;
    font-size:10px!important;
    text-align:center!important;
}
.cz-premium-datepicker .ui-datepicker-calendar td{padding:0!important;background:transparent!important;border:0!important}
.cz-premium-datepicker .ui-datepicker-calendar .ui-state-default{
    width:100%!important;
    min-width:32px!important;
    height:32px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    margin:0!important;
    padding:0!important;
    color:#173E30!important;
    background:#fff!important;
    border:1px solid transparent!important;
    border-radius:10px!important;
    font-size:11.5px!important;
    font-weight:700!important;
    text-decoration:none!important;
}
.cz-premium-datepicker .ui-datepicker-calendar a.ui-state-default:hover{
    background:#FFF4E2!important;
    border-color:#F4B04C!important;
}
.cz-premium-datepicker .ui-datepicker-today .ui-state-default{
    color:#D77400!important;
    background:#FFF8ED!important;
    border-color:#F0C27E!important;
}
.cz-premium-datepicker .ui-datepicker-current-day .ui-state-active,
.cz-premium-datepicker .ui-datepicker-calendar .ui-state-active{
    color:#fff!important;
    background:#ED8B00!important;
    border-color:#ED8B00!important;
}
.cz-premium-datepicker .ui-datepicker-unselectable .ui-state-default,
.cz-premium-datepicker .ui-state-disabled .ui-state-default,
.cz-premium-datepicker .ui-datepicker-other-month .ui-state-default{
    color:#B9C2BD!important;
    background:transparent!important;
    border-color:transparent!important;
    cursor:not-allowed!important;
    opacity:.58!important;
}
.cz-premium-datepicker .ui-datepicker-buttonpane{display:none!important}

/* RESPONSIVE */
@media(max-width:1100px){
    .cz-booking-shell{width:calc(100vw - 28px);margin:30px auto 56px}
    .cz-booking-step{min-height:84px;grid-template-columns:42px minmax(0,1fr);gap:10px;padding:14px}
    .cz-booking-number{width:42px;height:42px}
    .cz-booking-step strong{font-size:11.5px}
    .cz-booking-step small{font-size:10px}
    .cz-booking-body{grid-template-columns:1fr;gap:18px}
    .cz-booking-summary{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;padding:24px}
    .cz-booking-summary>.cz-summary-kicker,
    .cz-booking-summary>h3,
    .cz-booking-summary>.cz-summary-accent,
    .cz-summary-request-status{grid-column:1/-1}
    .cz-summary-pricing{grid-column:2;grid-row:4/span 2;border-top:0;padding-top:4px}
    .cz-booking-shell[data-step="4"] .cz-summary-pricing{grid-column:1/-1;grid-row:auto}
}

@media(max-width:760px){
    .cz-booking-shell{width:calc(100vw - 18px);margin:20px auto 42px}
    .cz-booking-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
    .cz-booking-step{min-height:86px;grid-template-columns:38px minmax(0,1fr);gap:8px;padding:11px 9px}
    .cz-booking-number{width:36px;height:36px;font-size:11px}
    .cz-booking-step strong{font-size:10.5px}
    .cz-booking-step small{font-size:8.5px}
    .cz-booking-center{padding:24px 17px;border-radius:14px}
    .cz-booking-center input,
    .cz-booking-center select,
    .cz-booking-center textarea,
    .cz-booking-center .forminator-input,
    .cz-booking-center .forminator-select{font-size:16px!important}
    .cz-step-custom-head h2{font-size:25px}
    .cz-step-custom-head p{font-size:14px}
    .cz-booking-shell[data-step="1"] .cz-step-custom-head p{padding:10px 12px;font-size:13px}
    .cz-journey-date-row,.cz-time-row,#checkbox-1>.forminator-field,.cz-review-grid{grid-template-columns:1fr!important}
    .cz-time-trigger,.cz-person-trigger{min-height:94px;grid-template-columns:54px minmax(0,1fr) 22px}
    .cz-time-icon,.cz-person-icon,.cz-duration-icon{width:54px;height:54px}
    .cz-time-copy strong,.cz-person-copy strong{font-size:15px}
    .cz-duration-box{grid-template-columns:54px minmax(0,1fr);padding:18px}
    .cz-duration-price{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;text-align:left}
    .cz-address-grid{grid-template-columns:minmax(0,1fr) 94px!important}
    .cz-address-grid .cz-address-street{grid-column:1}
    .cz-address-grid .cz-address-number{grid-column:2}
    .cz-address-grid .cz-address-zip,
    .cz-address-grid .cz-address-city{grid-column:1/-1}
    .cz-premium-consent{padding:15px!important}
    .cz-consent-intro{grid-template-columns:38px minmax(0,1fr);padding:0 0 12px}
    .cz-consent-icon{width:38px;height:38px}
    .cz-premium-consent>.forminator-col>.forminator-field,
    .cz-premium-consent>.forminator-field{grid-template-columns:1fr!important;gap:8px!important}
    .cz-premium-consent .forminator-error-message{grid-column:1}
    .cz-booking-summary{display:block;padding:23px 17px;border-radius:14px}
    .cz-booking-center .forminator-pagination-footer{display:flex!important;flex-direction:column!important;gap:11px!important}
    .cz-booking-center .forminator-button-next,
    .cz-booking-center .forminator-button-back,
    .cz-booking-center .forminator-button-submit{min-height:60px!important;font-size:16px!important}
    #ui-datepicker-div.cz-premium-datepicker,
    .forminator-calendar.cz-premium-datepicker{
        width:calc(100vw - 24px)!important;
        max-width:390px!important;
        padding:14px 12px!important;
    }
}

@media(max-width:420px){
    .cz-booking-center{padding:21px 14px}
    .cz-step-custom-head h2{font-size:24px}
}

/* Nur iOS-Safari: kein automatisches Hineinzoomen beim Monatswechsel. */
.cz-ios-safari .cz-journey-date .forminator-input{font-size:16px!important}

/* iOS: keine transformierten Wrapper, Navigation bleibt echte Touchfläche */
@supports (-webkit-touch-callout:none){
    @media(max-width:760px){
        .cz-booking-shell{
            left:auto!important;
            right:auto!important;
            transform:none!important;
            margin-left:auto!important;
            margin-right:auto!important;
        }
        .cz-booking-center .forminator-button-next,
        .cz-booking-center .forminator-button-back,
        .cz-booking-center .forminator-button-submit{
            position:relative!important;
            z-index:20!important;
            pointer-events:auto!important;
            touch-action:manipulation!important;
            -webkit-appearance:none!important;
            appearance:none!important;
            transform:none!important;
        }
    }
}
