*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--primary:#00B87A;--primary-dark:#009963;--primary-light:#E8F8F0;--navy:#0C2340;--white:#FFFFFF;--gray-50:#F8F9FA;--gray-100:#F1F3F5;--gray-200:#E9ECEF;--gray-300:#DEE2E6;--gray-400:#CED4DA;--gray-500:#ADB5BD;--gray-600:#868E96;--gray-700:#495057;--gray-800:#343A40;--gray-900:#212529;--gold:#D4A853;--red:#E03131;--shadow:0 4px 16px rgba(0,0,0,0.08);--shadow-lg:0 12px 40px rgba(0,0,0,0.12);--radius:8px;--radius-lg:16px}
body{font-family:'Inter',system-ui,sans-serif;color:var(--gray-900);line-height:1.5;background:var(--gray-50)}a{color:inherit;text-decoration:none}

@media(max-width:768px){}

.book-page{padding:88px 0 48px;max-width:960px;margin:0 auto;padding-left:20px;padding-right:20px}
.book-header{text-align:center;margin-bottom:24px}
.book-header h1{font-size:28px;font-weight:900;color:var(--navy)}
.book-header p{font-size:15px;color:var(--gray-600);margin-top:4px}

.book-layout{display:grid;grid-template-columns:1fr 340px;gap:24px}

/* STEPPER */
.stepper{display:flex;justify-content:center;gap:4px;margin-bottom:24px;flex-wrap:wrap}
.step-dot{display:flex;align-items:center;gap:5px}
.sn{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:var(--gray-200);color:var(--gray-500);transition:all .2s}
.sn.active{background:var(--primary);color:var(--white)}.sn.done{background:var(--primary-light);color:var(--primary)}
.sl{font-size:11px;font-weight:600;color:var(--gray-500)}.sl.active{color:var(--gray-900)}
.step-line{width:24px;height:2px;background:var(--gray-200);align-self:center}.step-line.done{background:var(--primary)}

/* CARD */
.card{background:var(--white);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow);border:1px solid var(--gray-200);margin-bottom:14px}
.card h2{font-size:17px;font-weight:800;color:var(--navy);margin-bottom:14px;display:flex;align-items:center;gap:8px}
.form-step{display:none}.form-step.active{display:block}
.field{margin-bottom:14px}
.field label{display:block;font-size:13px;font-weight:600;color:var(--gray-800);margin-bottom:4px}
.field input,.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:14px;font-family:inherit;background:var(--white)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--primary)}
.field textarea{height:70px;resize:vertical}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field input.error{border-color:var(--red);background:#FFF5F5}
.error-msg{font-size:12px;color:var(--red);margin-top:4px;display:none}
.error-msg.show{display:block}

/* RV SELECT */
.rv-options{display:flex;flex-direction:column;gap:8px}
.rv-opt{border:2px solid var(--gray-200);border-radius:var(--radius-lg);padding:12px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:12px}
.rv-opt:hover{border-color:var(--gray-400)}.rv-opt.selected{border-color:var(--primary);background:var(--primary-light)}
.rv-opt input{display:none}.rv-opt .emoji{font-size:28px}
.rv-opt-info h3{font-size:14px;font-weight:700;margin-bottom:1px}.rv-opt-info p{font-size:12px;color:var(--gray-600)}
.rv-opt-price{margin-left:auto;font-size:17px;font-weight:800;white-space:nowrap}.rv-opt-price small{font-size:11px;font-weight:400;color:var(--gray-500);display:block}

/* BUTTONS */
.btn-row{display:flex;gap:10px;margin-top:18px}
.btn-next{flex:1;background:var(--primary);color:var(--white);border:none;padding:13px;border-radius:var(--radius);font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .15s}
.btn-next:hover{background:var(--primary-dark)}.btn-next:disabled{background:var(--gray-300);cursor:not-allowed}
.btn-back{background:var(--gray-100);color:var(--gray-700);border:none;padding:13px 18px;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}

/* SIDEBAR */
.sb{position:sticky;top:80px;align-self:start}
.sb-card{background:var(--white);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow);border:1px solid var(--gray-200);margin-bottom:14px}
.sb-card h3{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:8px}
.sb-row{display:flex;justify-content:space-between;font-size:12px;padding:4px 0;color:var(--gray-700)}
.sb-row.total{font-weight:800;font-size:14px;color:var(--navy);border-top:2px solid var(--gray-200);padding-top:8px;margin-top:4px}
.sb-row .free{color:var(--primary);font-weight:600}
.sb-row .savings{color:var(--primary);font-weight:700}
.sb-row .strike{text-decoration:line-through;color:var(--gray-400);margin-right:4px}
.sb-divider{border:none;border-top:1px solid var(--gray-200);margin:6px 0}
.sb-badge{display:inline-flex;align-items:center;gap:4px;background:var(--primary-light);color:var(--primary-dark);padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;margin-top:4px}

/* SUCCESS */
.success{text-align:center;padding:32px 0}.success-icon{font-size:48px;margin-bottom:12px}
.success h2{font-size:22px;font-weight:800;color:var(--navy);margin-bottom:8px}
.success p{font-size:14px;color:var(--gray-600);margin-bottom:16px;max-width:400px;margin-left:auto;margin-right:auto;line-height:1.6}

/* CALENDAR DATE PICKER */
.date-input{position:relative}
.date-input input{cursor:pointer}
.calendar-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;cursor:pointer;fill:var(--gray-500)}

/* Calendar day prices */
.flatpickr-day{display:flex;flex-direction:column;align-items:center;justify-content:center;height:46px!important;line-height:1.2!important;padding-top:4px}
.flatpickr-day .day-price{font-size:9px;font-weight:600;color:var(--primary-dark);line-height:1;margin-top:1px;pointer-events:none}
.flatpickr-day.selected .day-price,.flatpickr-day.startRange .day-price,.flatpickr-day.endRange .day-price{color:var(--white)}
.flatpickr-day.inRange .day-price{color:var(--primary-dark)}
.flatpickr-day.flatpickr-disabled .day-price{display:none}
.flatpickr-calendar{width:auto!important}
.dayContainer{min-height:280px}

@media(max-width:768px){
.book-layout{grid-template-columns:1fr}
.sb{position:relative;top:0;order:-1}
.field-row{grid-template-columns:1fr}
}

footer{background:var(--navy);color:rgba(255,255,255,0.5);padding:32px 0}.footer-bottom{max-width:1240px;margin:0 auto;padding:0 20px;display:flex;justify-content:space-between;font-size:12px}