/* Original form appearance with two container formats. */
html,body{margin:0;padding:0;min-height:0;background:transparent}body{font-family:Arial,sans-serif}.box{max-width:none;width:100%;padding:12px;margin:0;border-radius:10px;box-shadow:none;border:1px solid #ddd;background:#fff}.kopf{min-width:0}.titel h1{font-size:20px;overflow-wrap:anywhere}.logo img{max-width:70px;max-height:60px;object-fit:contain}.datebar,.fahrzeug-box{max-width:none}.kalenderbox{padding:8px}.kalender-nav{grid-template-columns:38px minmax(0,1fr) 38px}.kalender-nav button{padding:6px;font-size:20px}.kalender-titel{font-size:17px}.wochentage div{font-size:13px;padding:5px 0}.tag{font-size:15px;min-height:26px}.datumanzeige{font-size:13px;line-height:1.5}.fahrzeug-grid label{font-size:12px!important;padding:6px 3px!important}.fahrzeug-grid{gap:6px!important}.fahrzeug-box{padding:8px;margin:12px 0}.platzplan{min-width:0;align-self:start}.formbox{min-width:0}.platzinfo-tabelle{width:100%;font-size:12px;overflow-wrap:anywhere}.platzinfo-tabelle th,.platzinfo-tabelle td{padding:5px}.weiter-btn{width:100%;white-space:normal;font-size:14px}.hinweis{font-size:12px;grid-column:1/-1}.fahrzeug-grid input:focus-visible+label{outline:3px solid #004cff;outline-offset:2px}button:focus-visible{outline:3px solid #004cff}
/* Wide booking view: calendar/options above map/pitch details. */
.booking-calendar,.booking-options{min-width:0}.booking-options .fahrzeug-box{margin-top:0}.booking-options .guest-count-box{margin-top:12px}
@media(min-width:620px){
 .booking-landscape .box{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 20px;align-items:start}
 .booking-landscape .kopf,.booking-landscape .booking-divider{grid-column:1/-1}
 .booking-landscape .datebar{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;margin:0;width:100%}
 .booking-landscape .platzplan{grid-column:1;grid-row:4;margin:0;width:100%}
 .booking-landscape .formbox{grid-column:2;grid-row:4;margin:0;align-self:start;width:100%;box-sizing:border-box}
 .booking-landscape #hinweis{grid-column:1/-1;grid-row:5;margin:0}
 .booking-landscape #hinweis:empty{display:none}
 .booking-landscape .booking-divider{margin:0}
 .booking-landscape .fahrzeug-box{margin-bottom:0}
}
@media(max-width:320px){.box{padding:6px}.kalenderbox{padding:4px}.kalendertage,.wochentage{gap:2px}.tag{font-size:12px}.fahrzeug-grid label{font-size:11px!important}.titel h1{font-size:16px}}
.vehicle-choice{position:relative;min-width:0}.vehicle-choice label{height:100%;box-sizing:border-box}.fahrzeug-grid .vehicle-choice input[type="radio"]{position:absolute!important;left:50%!important;top:50%!important;width:1px!important;height:1px!important}html,body,#booking-root{overflow-anchor:none}
.pitch-photo-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:14px 0}.pitch-photo-gallery img{display:block;width:100%;height:110px;object-fit:cover;border-radius:6px}

:root{--booking-standard:#65bf45;--booking-selected:#f08a00;--booking-pale:color-mix(in srgb,var(--booking-standard) 22%,white);--booking-weekend:color-mix(in srgb,var(--booking-standard) 80%,black)}
.tag,.fahrzeug-grid label,.kalender-nav button,.weiter-btn{background:var(--booking-standard);color:#fff}
.tag.wochenende{background:var(--booking-weekend)}
.tag.anreise,.tag.wochenende.anreise{background:linear-gradient(to right,var(--booking-standard) 50%,var(--booking-selected) 50%)}
.tag.abreise,.tag.wochenende.abreise{background:linear-gradient(to right,var(--booking-selected) 50%,var(--booking-standard) 50%)}
.tag.zwischen,.fahrzeug-grid input[type=radio]:checked+label{background:var(--booking-selected)!important}
.tag:disabled,.weiter-btn:disabled{background:var(--booking-pale);color:#58625a;opacity:1}
.wochentage div{color:var(--booking-weekend)}
.weiter-btn:hover:not(:disabled){background:var(--booking-weekend)}
.stellplatz.frei{fill:color-mix(in srgb,var(--booking-standard) 60%,transparent)}
.stellplatz.selected{fill:color-mix(in srgb,var(--booking-selected) 65%,transparent)!important;stroke:var(--booking-selected)}

.guest-count-box{min-width:0;border:2px solid #ddd}.guest-count-box legend{font-weight:bold;font-size:14px;padding:0 6px}.guest-count-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:6px}.guest-count-tile{display:flex;flex-direction:column;gap:7px;align-items:center;padding:8px 6px;background:var(--booking-standard);color:#fff;border-radius:4px;font-size:12px;font-weight:bold}.guest-count-tile:focus-within{background:var(--booking-selected);color:#222}.guest-count-tile input{box-sizing:border-box;width:100%;min-width:0;max-width:90px;background:#fff;color:#222;border:1px solid #ddd;border-radius:3px;padding:7px;text-align:center;font:inherit}

.guest-count-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.guest-count-tile>label{font:inherit;color:inherit}
.guest-count-stepper{display:grid;grid-template-columns:34px minmax(32px,1fr) 34px;gap:3px;width:100%;align-items:stretch}
.guest-count-stepper button{min-height:36px;padding:0;border:1px solid #ddd;border-radius:3px;background:#fff;color:#222;font-size:22px;font-weight:bold;cursor:pointer}
.guest-count-stepper input{max-width:none;padding:6px 2px;appearance:textfield;-moz-appearance:textfield}
.guest-count-stepper input::-webkit-inner-spin-button,.guest-count-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

.guest-count-tile,.guest-count-tile:focus-within{background:var(--booking-pale);color:#58625a}.guest-count-stepper button{background:var(--booking-standard);color:#fff;border-color:var(--booking-standard)}.guest-count-stepper button:active{background:var(--booking-selected);border-color:var(--booking-selected);color:#fff}

/* Two shared frames instead of separate boxes for every component. */
.booking-widget .box{display:block}
.booking-widget .datebar,.booking-widget .booking-pitch-group{box-sizing:border-box;border:1px solid #d9dfe2;border-radius:8px;padding:12px;margin:14px 0 0;width:100%;max-width:none;background:transparent}
.booking-widget .booking-pitch-group{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
.booking-widget .booking-pitch-group>.platzplan,.booking-widget .booking-pitch-group>.formbox{grid-column:auto;grid-row:auto;margin:0;width:100%;min-width:0;box-sizing:border-box}
.booking-widget .booking-pitch-group>#hinweis{grid-column:1/-1;grid-row:auto;margin:0}
.booking-widget #hinweis:empty{display:none}
.booking-widget .kalenderbox,.booking-widget .fahrzeug-box,.booking-widget .formbox,.booking-widget .platzinfo-box{border:0;box-shadow:none;background:transparent}
.booking-widget .formbox,.booking-widget .platzinfo-box{padding:0}
.booking-widget .kalenderbox{padding:8px 0 0}
.booking-widget .fahrzeug-box{padding:0;margin:0}
.booking-widget .guest-count-box{margin-top:16px;padding-top:8px}
.booking-widget .platzinfo-box h3,.booking-widget .fahrzeug-box h3{margin-top:0}
@media(min-width:620px){
 .booking-landscape .datebar,.booking-landscape .booking-pitch-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}
 .booking-landscape .booking-pitch-group>.platzplan{grid-column:1;grid-row:1}
 .booking-landscape .booking-pitch-group>.formbox{grid-column:2;grid-row:1}
 .booking-landscape .booking-pitch-group>#hinweis{grid-column:1/-1;grid-row:2}
}

.booking-widget .booking-options,.booking-widget .fahrzeugauswahl{margin-top:0;padding-top:0;align-self:start}
.booking-widget .booking-section-title,.booking-widget .fahrzeug-box h3.booking-section-title,.booking-widget .guest-count-box legend.booking-section-title{display:block;float:none;width:100%;box-sizing:border-box;font-family:inherit;font-size:16px;font-weight:700;line-height:1.3;text-align:left;margin:0 0 10px;padding:0;color:inherit}
.booking-widget .booking-options>.fahrzeugauswahl>.fahrzeug-box{margin-top:0;padding-top:0}

@media(min-width:620px){
 .booking-landscape .datebar.has-guest-counts{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(130px,.75fr);gap:14px}
 .booking-landscape .datebar>.guest-count-box{margin:0;padding:0;min-width:0;width:100%;box-sizing:border-box}
 .booking-landscape .datebar>.guest-count-box .guest-count-grid{grid-template-columns:minmax(0,1fr)}
}

/* Matching tiles for calendar, vehicle details and optional guests. */
.booking-widget .booking-calendar,.booking-widget .booking-options,.booking-widget .datebar>.guest-count-box{box-sizing:border-box;min-width:0;border:1px solid #d9dfe2;border-radius:7px;background:#fff;padding:10px;overflow:hidden}
.booking-widget .booking-options .fahrzeugauswahl,.booking-widget .booking-options .fahrzeug-box{padding:0;margin:0}
.booking-widget .booking-calendar>.booking-section-title,.booking-widget .booking-options .fahrzeug-box h3.booking-section-title,.booking-widget .datebar>.guest-count-box>h3.booking-section-title{box-sizing:border-box;display:block;float:none;width:calc(100% + 20px);max-width:none;margin:-10px -10px 10px;padding:10px 6px;background:var(--booking-pale);color:#263c38;border-bottom:1px solid #d9dfe2;text-align:center;font-family:inherit;font-size:16px;font-weight:700;line-height:1.3}
.booking-widget .datebar>.guest-count-box{padding-top:10px}
@media(min-width:620px){.booking-landscape .datebar>.guest-count-box{padding:10px;margin:0}.booking-landscape .datebar{align-items:stretch}.booking-landscape .booking-options{align-self:stretch}}
@media(max-width:619px){.booking-widget .booking-options,.booking-widget .datebar>.guest-count-box{margin-top:14px}}

.booking-widget .datebar{border:0;border-radius:0;background:transparent;padding:0}

.booking-widget .kopf{position:relative;display:block;text-align:center}.booking-widget .kopf .titel{width:100%;text-align:center}.booking-widget .kopf .titel h1{text-align:center}.booking-widget .kopf .logo:empty{display:none}

.fahrzeug-grid.vehicle-type-grid{grid-template-columns:minmax(0,1fr)!important}.vehicle-type-grid label small{display:block;margin-top:3px;font-size:.85em;font-weight:normal}

.fahrzeug-grid.vehicle-type-grid label{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:9px 6px!important;line-height:1.3;text-align:center}.vehicle-type-grid .vehicle-name{display:block;font-size:13px;font-weight:700}.vehicle-type-grid label small{display:block;margin:0;font-size:11px;font-weight:400;white-space:normal}

.stellplatz.frei.gap-offer{fill:#bce69b;fill-opacity:.8;stroke:#538735;stroke-width:.35}.stellplatz.frei.gap-offer.selected{stroke:#fff;stroke-width:.65;fill:#bce69b;fill-opacity:.95}

.booking-map-viewport{position:relative;overflow:hidden;touch-action:none;user-select:none}.booking-map-layer{position:relative;transform-origin:0 0;will-change:transform}.booking-map-viewport.zoomed{cursor:grab}.booking-map-viewport.zoomed:active{cursor:grabbing}.booking-map-zoom{position:absolute;top:10px;right:10px;z-index:3;display:flex;gap:4px;align-items:center;justify-content:center;flex-wrap:wrap;max-width:calc(100% - 20px);margin:0;padding:5px;background:rgba(255,255,255,.94);color:#243b36;border:1px solid #bdc9d0;border-radius:5px;box-shadow:0 2px 7px #0002;cursor:default}.booking-map-zoom button{min-height:36px;min-width:36px;padding:6px 10px;border:1px solid #bdc9d0;border-radius:4px;background:var(--booking-standard);color:#fff;font:inherit;cursor:pointer}.booking-map-zoom output{min-width:55px;text-align:center;font-size:12px}

@media (hover:none) and (pointer:coarse){.booking-map-zoom{display:none}}

.booking-widget #hinweis.gap-tip{background:#e4f4d8;color:#294921;border:1px solid #b6d89c;white-space:pre-line}
.gap-offer-mark{fill:#c52222;font-size:3.8px;font-weight:900;pointer-events:none;stroke:#fff;stroke-width:.15;paint-order:stroke fill}

.selected-pitch-features{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px;padding:12px 0}.selected-pitch-features[hidden]{display:none}.selected-pitch-feature{display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;min-width:0;font-size:11px;overflow-wrap:anywhere}.selected-pitch-feature img{width:34px;height:34px;object-fit:contain}.selected-pitch-feature strong{font-size:11px}.selected-pitch-feature span{color:#53665e}@media(max-width:380px){.selected-pitch-features{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Narrow vertical zoom control inside the plan edge. */
.booking-map-zoom{top:5px;bottom:5px;right:4px;width:22px;max-width:22px;padding:0;gap:3px;flex-direction:column;flex-wrap:nowrap;background:transparent;border:0;border-radius:0;box-shadow:none}
.booking-map-zoom button{flex:0 0 22px;width:22px;height:22px;min-width:22px;min-height:22px;padding:0;border:1px solid #afbbb5;border-radius:2px;background:#fffffff0;color:#243b36;font-size:17px;line-height:20px}
.booking-map-zoom .booking-map-slider{writing-mode:vertical-lr;direction:rtl;flex:1 1 0;min-height:0;height:0;width:16px;margin:0;padding:0;accent-color:#4d736d;cursor:pointer;touch-action:none}
