.booking-page{padding:4rem 2rem;max-width:1100px;margin:0 auto}.booking-flow-root{display:contents}.booking-steps{display:flex;align-items:center;justify-content:center;margin:0 auto 2.5rem;max-width:600px}.step{display:flex;flex-direction:column;align-items:center;gap:.4rem}.step-bubble{width:2.5rem;height:2.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;border:2px solid var(--cream-dark);background:#fff;color:var(--dark);opacity:.35;transition:all .3s}.step.active .step-bubble{background:var(--green);border-color:var(--green);color:#fff;opacity:1}.step.done .step-bubble{background:var(--green);border-color:var(--green);color:#fff;opacity:.65}.step-text{font-size:.7rem;color:var(--dark);opacity:.4;white-space:nowrap;font-weight:500}.step.active .step-text,.step.done .step-text{opacity:.85}.step-line{flex:1;height:2px;background:var(--cream-dark);margin:0 .4rem 1.4rem;min-width:1rem}.booking-step{display:none}.booking-step.active-step{display:block}.canceled-banner{background:#c0392b14;border:1px solid rgba(192,57,43,.25);border-radius:10px;padding:1rem 1.5rem;color:#7b2d22;font-size:.95rem;margin-bottom:2rem;text-align:center}.booking-header{text-align:center;margin-bottom:3rem}.booking-header h1{color:var(--dark);margin-bottom:.75rem}.booking-header p{font-size:1.1rem;color:var(--dark);opacity:.75}.consultation-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem;margin-bottom:3rem}.consultation-card{background:#fff;border-radius:20px;box-shadow:0 10px 40px #0000001a;overflow:hidden;transition:transform .3s,box-shadow .3s}.consultation-card:hover{transform:translateY(-4px);box-shadow:0 16px 50px #00000024}.card-header{padding:2.5rem 2rem 2rem;text-align:center;border-bottom:1px solid rgba(0,0,0,.05)}.dog-header{background:linear-gradient(135deg,#7a9b3f1a,#7a9b3f0a)}.cat-header{background:linear-gradient(135deg,#1e7ba41a,#1e7ba40a)}.card-emoji{font-size:3.5rem;margin-bottom:.5rem}.card-header h3{color:var(--dark);font-size:1.65rem;margin:0 0 .75rem}.card-price{font-size:2.25rem;font-weight:700;color:var(--green);margin-bottom:.25rem}.cat-price{color:var(--blue)}.card-was{font-size:.9rem;color:var(--dark);opacity:.6;text-decoration:line-through;margin-bottom:.5rem}.price-badge{display:inline-block;padding:.35rem 1rem;border-radius:20px;font-weight:600;font-size:.85rem;color:#fff;margin-top:.5rem}.dog-badge{background:var(--green)}.cat-badge{background:var(--blue)}.card-body{padding:2rem 1.75rem}.card-body h4{color:var(--dark);font-size:1rem;margin-bottom:1rem}.included-list{list-style:none;padding:0;margin:0;color:var(--dark);line-height:1.95;font-size:.95rem}.included-list li{padding-left:1.5rem;position:relative}.included-list li:before{position:absolute;left:0;font-weight:700}.dog-ticks li:before{content:"✓";color:var(--green)}.cat-ticks li:before{content:"✓";color:var(--blue)}.card-cta{padding:0 1.75rem 1.75rem}.card-btn{width:100%;display:block;text-align:center;cursor:pointer;padding:1rem;font-size:1rem;border:none;border-radius:50px}.cat-cta{background:var(--blue)}.cat-cta:hover{background:var(--blue-light)}.booking-disclaimer{margin-bottom:2rem}.how-it-works{text-align:center;padding:2rem;background:#1e7ba40a;border-radius:15px;max-width:650px;margin:0 auto}.how-it-works h3{color:var(--dark);margin-bottom:1rem;font-size:1.2rem}.how-it-works ol{text-align:left;padding-left:1.5rem;color:var(--dark);line-height:1.95;opacity:.85;margin:0 0 1.25rem}.secure-note{font-size:.9rem;color:var(--dark);opacity:.7;margin:0}.species-banner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;padding:1.25rem 1.5rem;border-left:4px solid var(--green);border-radius:10px;background:#7a9b3f12;margin-bottom:2rem}.dog-banner{background:#7a9b3f12;border-color:var(--green)}.cat-banner{background:#1e7ba412;border-color:var(--blue)}.banner-title{margin:0;font-weight:600;font-size:1.1rem;color:var(--dark)}.banner-detail{margin:.3rem 0 0;color:var(--dark);opacity:.75;font-size:.95rem}.banner-change{background:none;border:none;font-family:inherit;font-weight:600;font-size:.95rem;color:var(--blue);cursor:pointer;padding:0;white-space:nowrap}.banner-change:hover{opacity:.75}.calendar-container{background:#fff;border-radius:16px;box-shadow:0 5px 30px #00000014;padding:1.75rem;max-width:480px;margin:0 auto}.calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.cal-month-label{font-weight:600;font-size:1.1rem;color:var(--dark)}.cal-nav-btn{background:none;border:1px solid var(--cream-dark);border-radius:8px;width:2.25rem;height:2.25rem;font-size:1.3rem;cursor:pointer;color:var(--dark);display:flex;align-items:center;justify-content:center;transition:all .2s}.cal-nav-btn:hover:not(:disabled){background:var(--cream-dark)}.cal-nav-btn:disabled{opacity:.25;cursor:not-allowed}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-header{text-align:center;font-size:.75rem;font-weight:600;color:var(--dark);opacity:.5;padding:.4rem 0}.cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:.9rem;font-weight:500;cursor:default;transition:all .15s;color:var(--dark)}.cal-cell.empty{background:transparent}.cal-cell.unavail{opacity:.2}.cal-cell.past{opacity:.12}.cal-cell.today{box-shadow:inset 0 0 0 2px var(--green)}.cal-cell.avail{background:var(--green);color:#fff;cursor:pointer;font-weight:600}.cal-cell.avail:hover{background:var(--green-light);transform:scale(1.06)}.cal-cell.avail.today{box-shadow:inset 0 0 0 2px #fff}.cal-legend{display:flex;gap:1.5rem;justify-content:center;margin-top:1rem;font-size:.8rem;color:var(--dark);opacity:.7}.legend-item{display:flex;align-items:center;gap:.4rem}.legend-dot{width:12px;height:12px;border-radius:3px;display:inline-block}.legend-dot.available{background:var(--green)}.legend-dot.unavailable{background:#ccc}.cal-loading,.cal-error{text-align:center;color:var(--dark);opacity:.7;margin-top:1rem;font-size:.95rem}.cal-error{color:#c0392b;opacity:1}.date-heading-wrap{text-align:center;margin-bottom:2rem}.date-heading{color:var(--dark);font-size:1.5rem;margin:0}.slots-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.875rem;max-width:520px;margin:0 auto}.slot-btn{background:#fff;border:2px solid var(--cream-dark);border-radius:12px;padding:1.1rem .5rem;font-family:inherit;color:var(--dark);cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;gap:.2rem;text-align:center;width:100%}.slot-time{font-size:1.05rem;font-weight:700;line-height:1.2}.slot-dur{font-size:.75rem;font-weight:500;opacity:.55}.slot-btn:hover:not(:disabled){border-color:var(--green);background:#7a9b3f14;color:var(--green);transform:translateY(-1px);box-shadow:0 4px 12px #7a9b3f2e}.slot-btn:hover:not(:disabled) .slot-dur{opacity:.8}.slot-btn:disabled{opacity:.35;cursor:not-allowed}.no-slots{text-align:center;color:var(--dark);opacity:.7;padding:1rem;grid-column:1 / -1}.slots-loading,.slots-error{text-align:center;color:var(--dark);opacity:.7;margin-top:1rem}.slots-error{color:#c0392b;opacity:1}.details-form-wrap{max-width:640px;margin:0 auto}.details-heading{color:var(--dark);font-size:1.55rem;text-align:center;margin-bottom:.5rem}.details-subhead{text-align:center;color:var(--dark);opacity:.65;font-size:.95rem;line-height:1.6;margin-bottom:1.75rem;max-width:520px;margin-left:auto;margin-right:auto}.details-form{display:flex;flex-direction:column;gap:1.25rem}.form-section{background:#fff;border:1.5px solid rgba(0,0,0,.07);border-radius:16px;padding:1.5rem;margin:0;display:flex;flex-direction:column;gap:1rem}.form-section legend{font-family:var(--font-heading);font-weight:600;font-size:.95rem;color:var(--green);padding:0 .25rem;margin-bottom:.25rem}.form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.35rem}.form-group label{font-size:.875rem;font-weight:600;color:var(--dark)}.form-group input,.form-group textarea{border:1.5px solid var(--cream-dark);border-radius:8px;padding:.65rem .875rem;font-size:.95rem;font-family:inherit;color:var(--dark);background:var(--cream);transition:border-color .2s,background .2s;width:100%;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--green);background:#fff;box-shadow:0 0 0 3px #7a9b3f1f}.form-group textarea{resize:vertical;min-height:90px;line-height:1.5}.req{color:#c0392b;font-weight:700}.opt{color:var(--dark);font-weight:400;opacity:.5;font-size:.8em}.details-error{background:#c0392b12;border:1px solid rgba(192,57,43,.25);border-radius:8px;padding:.75rem 1.25rem;color:#7b2d22;font-size:.9rem}.details-error:empty{display:none}.details-submit-btn{padding:.95rem 2.5rem;font-size:1.05rem;width:100%;max-width:400px;margin:.25rem auto 0;display:block;cursor:pointer}.payment-ready{background:#fff;border:2px solid var(--green);border-radius:20px;padding:2.5rem 2rem;text-align:center;max-width:560px;margin:0 auto;box-shadow:0 8px 30px #7a9b3f26}.payment-tick{width:3.5rem;height:3.5rem;background:var(--green);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;margin:0 auto 1.25rem}.payment-ready h2{color:var(--dark);margin-bottom:1.5rem}.booking-summary{background:var(--cream);border-radius:14px;padding:.25rem 1.5rem;margin-bottom:1.75rem;text-align:left}.summary-row{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem 0;color:var(--dark);font-size:.95rem;border-bottom:1px solid rgba(0,0,0,.06);gap:1rem}.summary-row:last-of-type{border-bottom:none}.summary-key{font-weight:600;white-space:nowrap;flex-shrink:0}.summary-val{text-align:right;opacity:.8;line-height:1.4}.total-row{padding-top:.9rem;margin-top:.25rem;border-top:2px solid rgba(0,0,0,.08)!important;border-bottom:none!important;font-size:1.1rem;font-weight:700}.total-row .summary-val{opacity:1;color:var(--green)}.countdown-wrap{margin-bottom:1.25rem}.countdown-text{font-size:.9rem;color:var(--dark);opacity:.7;margin:0}.payment-btn{font-size:1.1rem;padding:1rem 2.5rem;cursor:pointer;border:none;width:100%;max-width:360px}.payment-btn:disabled{opacity:.6;cursor:not-allowed}.pay-error{color:#c0392b;font-size:.9rem;margin-top:.75rem;min-height:1.2em}.payment-note{font-size:.85rem;color:var(--dark);opacity:.55;margin-top:1rem}.confirmation-section{max-width:680px;margin:0 auto;text-align:center}.confirmation-box{background:#7a9b3f14;border:2px solid var(--green);padding:3rem 2rem;border-radius:20px;margin-bottom:2rem}.confirmation-icon{font-size:3.5rem;margin-bottom:1rem}.confirmation-box h2{color:var(--dark);margin-bottom:1rem}.confirmation-box p{color:var(--dark);opacity:.85;font-size:1.05rem;line-height:1.7;margin:0}.meet-box{background:#fff;border-radius:15px;box-shadow:0 5px 20px #00000014;padding:1.75rem 2rem;margin-bottom:2rem}.meet-box h3{color:var(--dark);margin-bottom:1rem}.meet-btn{display:inline-block;background:var(--blue);color:#fff;padding:.85rem 2rem;border-radius:50px;text-decoration:none;font-weight:600;font-size:1rem;transition:background .2s;margin-bottom:.75rem}.meet-btn:hover{background:var(--blue-light)}.meet-note{font-size:.85rem;color:var(--dark);opacity:.65;margin:0}.next-steps{background:#fff;padding:2rem;border-radius:15px;box-shadow:0 5px 20px #00000014;text-align:left;margin-bottom:2rem}.next-steps h3{color:var(--dark);margin-bottom:1rem}.next-steps ul{list-style:none;padding:0;margin:0;color:var(--dark);line-height:2}.next-steps li{padding-left:1.5rem;position:relative}.next-steps li:before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700}.profile-nudge{background:#1e7ba40f;border-left:4px solid var(--blue);border-radius:10px;padding:1.25rem 1.5rem;text-align:left;margin:1.5rem 0}.profile-nudge p{color:var(--dark);opacity:.85;font-size:.95rem;line-height:1.6;margin:0}.back-link{margin-top:1rem}.back-link a{color:var(--blue);text-decoration:none;font-size:.9rem}.booking-contact{text-align:center;margin-top:4rem;padding-top:2.5rem;border-top:1px solid rgba(0,0,0,.08);color:var(--dark);opacity:.75}.booking-contact p{margin-bottom:.6rem}.booking-contact a{color:var(--blue);text-decoration:none;font-size:.95rem}@media (max-width: 768px){.booking-page{padding:2rem 1.25rem}.booking-steps{max-width:100%}.step-text{font-size:.6rem}.step-line{min-width:.5rem}.booking-header h1{font-size:1.6rem}.consultation-cards{grid-template-columns:1fr;gap:1.5rem}.species-banner{flex-direction:column;align-items:flex-start}.calendar-container{padding:1.25rem}.slots-grid{grid-template-columns:repeat(2,1fr)}.payment-ready{padding:1.75rem 1.25rem}.form-row-2{grid-template-columns:1fr}.form-section{padding:1.25rem 1.25rem 1rem}}
