.schedule-page { padding: 2rem clamp(1rem, 4vw, 4rem); }
.schedule-hero { max-width: 980px; margin: 0 auto 2rem; padding: 3rem; border-radius: 28px; background: linear-gradient(135deg, rgba(23, 48, 34, .95), rgba(7, 18, 13, .96)); color: #fff; box-shadow: 0 24px 70px rgba(0,0,0,.18); }
.schedule-hero h1 { font-size: clamp(2rem, 5vw, 4.2rem); line-height: 1; margin: .5rem 0 1rem; }
.eyebrow { text-transform: uppercase; letter-spacing: .18em; font-weight: 800; color: #97d27a; }
.booking-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .75fr); gap: 1.25rem; align-items: start; }
.booking-card, .advanced-card { background: #fff; border: 1px solid rgba(22, 46, 32, .14); border-radius: 24px; padding: 1.5rem; box-shadow: 0 16px 45px rgba(0,0,0,.08); }
.booking-card label { display: grid; gap: .45rem; margin: .85rem 0; font-weight: 800; color: #173022; }
.booking-card input, .booking-card select, .booking-card textarea { width: 100%; border: 1px solid rgba(22,46,32,.22); border-radius: 14px; padding: .85rem 1rem; font: inherit; background: #fbfdf9; }
.two-col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.estimate-panel, .calendar-view, .schedule-notice { border-radius: 16px; background: #f2f8ed; border: 1px solid rgba(95, 144, 72, .28); padding: 1rem; margin: 1rem 0; display: grid; gap: .25rem; }
.estimate-panel span { font-size: 1.25rem; font-weight: 900; color: #173022; }
.times-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .75rem; margin: 1rem 0; }
.time-slot { border: 1px solid rgba(22,46,32,.2); background: #fff; color: #173022; border-radius: 16px; padding: 1rem; font-weight: 900; cursor: pointer; transition: transform .2s ease, border-color .2s ease, background .2s ease; }
.time-slot:hover:not(:disabled), .time-slot.selected { transform: translateY(-2px); border-color: #4d8f3a; background: #edf8e8; }
.time-slot.booked, .time-slot:disabled { opacity: .55; cursor: not-allowed; text-decoration: line-through; }
.btn.primary { width: 100%; border: 0; border-radius: 16px; padding: 1rem 1.2rem; font-weight: 900; background: #173022; color: #fff; cursor: pointer; }
.form-message { min-height: 1.5rem; font-weight: 800; }
.form-message.success { color: #1d6b2d; }
.form-message.error { color: #a22323; }
.advanced-card ul { padding-left: 1.2rem; line-height: 1.85; }
.advanced-card code { background: #eef3eb; padding: .2rem .35rem; border-radius: .35rem; }
@media (max-width: 860px) { .booking-grid, .two-col { grid-template-columns: 1fr; } .schedule-hero { padding: 2rem; } }
