.panel{width:360px;padding:22px 20px;scrollbar-width:thin}
.booking-entry{width:min(620px,calc(100% - 620px));left:calc(50% - 70px)}
.panel #panel-heading{font-size:27px}.panel .intro{margin-bottom:14px}.booking-status{margin-bottom:12px}
body[data-booking-form] .panel>.eyebrow,body[data-booking-form] .panel>#panel-heading,body[data-booking-form] .panel>#panel-intro,body[data-booking-form] .panel>#booking-status{display:none}
.booking-choice{padding:11px;margin-bottom:15px}.campsite-details{margin:8px 0 0;padding:10px}.campsite-details summary{cursor:pointer;display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:10px}.campsite-details summary strong{font-size:11px}.campsite-details summary span{color:var(--muted);text-decoration:underline}.campsite-details p{font-size:11px}
.flow-heading h2{font-size:20px;margin:5px 0 7px}.flow-heading .eyebrow{margin:0}.flow-heading #request-summary{font-size:11px;line-height:1.7;color:var(--muted);margin:0 0 12px;white-space:pre-line}
.flow-steps{display:flex;gap:5px;margin-bottom:18px}.flow-steps button{flex:1;padding:9px 3px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--muted);font-size:11px}.flow-steps button[aria-current=step]{background:#345d44;color:#fff9e7;border-color:#345d44}
#request-form fieldset{border:0;padding:0;margin:0;min-width:0}#request-form legend{font-weight:750;font-size:17px;margin-bottom:8px}#request-form h3{font-size:12px;margin:14px 0 8px}.flow-hint{font-size:11px;line-height:1.65;color:var(--muted);margin:0 0 13px}
#request-form label{display:grid;gap:6px;font-size:12px;font-weight:600;margin-bottom:13px}#request-form small{font-size:10px;font-weight:400;color:var(--muted)}
#request-form input:not([type=checkbox]),#request-form textarea{min-width:0;width:100%;min-height:43px;padding:10px 11px;border:1px solid #c8d1bb;border-radius:8px;background:#fffdf7;color:var(--ink);font:inherit;font-size:14px}#request-form textarea{resize:vertical}#request-form input:focus-visible,#request-form textarea:focus-visible{outline:2px solid #6b8d58;outline-offset:1px}
#request-form .inline-check{display:flex;align-items:flex-start;gap:8px;font-size:11px;font-weight:450;line-height:1.6}#request-form input[type=checkbox]{flex:none;margin:2px 0 0;accent-color:#345d44;width:16px;height:16px}
.section-heading{display:flex;justify-content:space-between;align-items:center;margin:10px 0}.section-heading h3{margin:0!important}.section-heading span{font-size:10px;color:var(--muted)}
.camper-row,.vehicle-row{position:relative;padding:10px;margin-bottom:8px;border:1px solid var(--line);border-radius:9px;background:#f1f1e7}.camper-row .camper-fields{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px}.camper-row .row-title,.vehicle-row .row-title{font-size:10px;color:var(--muted);margin:0 0 9px}.camper-row label,.vehicle-row label{font-size:11px!important;margin:0!important}.remove-row{position:absolute;right:8px;top:4px;border:0;background:transparent;color:#7b6857;font-size:20px;padding:0 5px}.row-actions{display:flex;gap:6px;margin:9px 0 20px}.row-actions button,.secondary-action{padding:9px 8px;border:1px solid #bdcbb0;background:#f8faf0;border-radius:7px;color:#345d44;font-size:10px}.row-actions button:disabled,.secondary-action:disabled{opacity:.45}
.quote-summary{margin:0 0 9px;padding:12px;background:#e9eddf;border-radius:9px}.quote-summary div{display:flex;justify-content:space-between;gap:10px;margin:6px 0;font-size:12px}.quote-summary dd{margin:0;font-weight:700}.quote-summary dt{font-size:11px}.request-review{padding:10px 12px;border:1px solid var(--line);border-radius:8px;margin:14px 0;font-size:11px;line-height:1.8;white-space:pre-line;overflow-wrap:anywhere}
#request-feedback{font-size:12px;color:#8b452c;line-height:1.7;white-space:pre-line;overflow-wrap:anywhere;margin:10px 0}.flow-actions{position:sticky;bottom:-22px;display:flex;gap:7px;padding:12px 0;background:#faf8ed}.flow-actions button,#request-new{min-height:43px;padding:10px;border:0;border-radius:8px;background:#345d44;color:#fff9e7;font-size:12px}.flow-actions #request-back{background:#e4e9d9;color:var(--ink)}.flow-actions #request-next,.flow-actions #request-submit{flex:1}.flow-actions button:disabled{opacity:.5;cursor:default}
#request-success{padding:15px;background:#e9eddf;border-radius:10px}#request-success h3{margin:0 0 8px}#request-receipt{font-size:12px;line-height:1.8;white-space:pre-line}
@media(min-width:701px) and (max-width:1100px){.booking-entry{width:min(500px,calc(100% - 410px));left:28px;transform:none;top:22px}.brand{top:105px}.top-tools{top:202px}.scene-controls{top:225px}}
@media(max-width:700px){.booking-entry{width:calc(100% - 24px);left:50%;top:82px}.panel{left:10px;right:10px;top:auto;bottom:10px;width:auto;max-height:min(38dvh,340px);padding:14px}.flow-actions{bottom:-14px}body[data-booking-panel] .scene-controls{display:none}.panel #panel-intro{display:none}body[data-booking-form] .panel{top:auto;max-height:min(38dvh,340px)}body[data-booking-form] .scene-controls{display:none}body[data-booking-form] .panel .eyebrow,body[data-booking-form] .panel>.intro{display:none}body[data-booking-form] .booking-status{font-size:10px}body[data-booking-form] .panel #panel-heading{display:none}}
@media(prefers-reduced-motion:no-preference){#booking-flow{animation:flow-in .2s ease-out}@keyframes flow-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}
