.booking-page{min-height:100vh}.booking-heading{font-family:"DM Serif Display",serif;font-style:italic;font-size:clamp(2.5rem,5vw,4rem);letter-spacing:-.02em;color:var(--off-black);margin-bottom:8px}.booking-heading-sm{font-family:"DM Serif Display",serif;font-style:italic;font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.02em;color:var(--off-black);margin-bottom:8px}.booking-subtitle{font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;color:var(--off-black-light);margin-bottom:40px}.booking-step{margin-top:64px}.booking-reviews-wrap{background:#fff;border:1px solid rgba(57,57,57,.06);padding:28px 32px;margin-bottom:48px}.booking-reviews-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid rgba(57,57,57,.06);flex-wrap:wrap}.br-label{font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--off-black-light);margin-bottom:6px}.br-heading{font-family:"DM Serif Display",serif;font-style:italic;font-size:1.4rem;color:var(--off-black);margin:0}.br-rating{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--off-black-light)}.br-rating span{margin-left:6px;font-weight:500;color:var(--off-black)}.booking-reviews-group{display:none;grid-template-columns:repeat(3,1fr);gap:16px}.booking-reviews-group.active{display:grid}@media(max-width:768px){.booking-reviews-group.active{grid-template-columns:1fr;gap:12px}.booking-reviews-wrap{padding:20px 18px}}.br-card{padding:20px;background:#f8f6f599;border:1px solid rgba(57,57,57,.04);display:flex;flex-direction:column}.br-text{font-size:.85rem;line-height:1.6;color:var(--off-black);flex:1;margin-bottom:14px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.br-author{display:flex;gap:6px;font-size:.72rem;color:var(--off-black-light)}.br-name{font-weight:500;color:var(--off-black)}.br-dot{opacity:.4}.booking-step.hidden,.hidden{display:none!important}.step-back{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--off-black-light);cursor:pointer;margin-bottom:24px;transition:color .3s;display:inline-block}.step-back:hover{color:var(--orange)}.service-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.service-card{background:#fff;border:1px solid rgba(57,57,57,.1);padding:32px 24px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:8px;transition:all .4s cubic-bezier(.16,1,.3,1);font-family:Inter,sans-serif}.service-card:hover{border-color:var(--orange);transform:translateY(-3px);box-shadow:0 12px 32px #39393914}.service-card.selected{border-color:var(--orange);box-shadow:0 0 0 2px var(--orange)}.service-card-name{font-family:"DM Serif Display",serif;font-style:italic;font-size:1.2rem;color:var(--off-black)}.service-card-meta{font-size:.8rem;color:var(--off-black-light);letter-spacing:.05em}.service-card-price{font-size:1.1rem;font-weight:500;color:var(--orange);margin-top:8px}.service-card-price .pp{font-size:.75rem;font-weight:300;opacity:.7}.day-strip{display:flex;gap:8px;margin-bottom:32px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:4px}.day-strip::-webkit-scrollbar{display:none}.day-pill{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 20px;border:1px solid rgba(57,57,57,.12);background:#fff;cursor:pointer;transition:all .3s cubic-bezier(.16,1,.3,1);flex-shrink:0;font-family:Inter,sans-serif}.day-pill:hover{border-color:var(--off-black)}.day-pill.active{background:var(--off-black);color:var(--off-white);border-color:var(--off-black)}.day-pill-weekday{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;font-weight:400}.day-pill-date{font-size:1.1rem;font-weight:500}.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;min-height:120px}.time-slot{padding:14px 16px;border:1px solid rgba(57,57,57,.1);background:#fff;text-align:center;cursor:pointer;font-size:.9rem;font-family:Inter,sans-serif;font-weight:400;color:var(--off-black);transition:all .3s cubic-bezier(.16,1,.3,1)}.time-slot:hover:not(.blocked){border-color:var(--orange);color:var(--orange)}.time-slot.selected{background:var(--orange);color:var(--off-white);border-color:var(--orange)}.time-slot.blocked{text-decoration:line-through;color:#39393940;cursor:not-allowed;background:#39393905}.skeleton{height:48px;background:#eee;border-radius:4px;animation:skeletonPulse 1.5s ease-in-out infinite}.service-card.skeleton{height:120px;border:1px solid rgba(57,57,57,.05)}.package-card.skeleton{height:200px;border:1px solid rgba(57,57,57,.05)}@keyframes skeletonPulse{0%,to{opacity:1}50%{opacity:.4}}.booking-summary{background:#39393908;padding:24px 28px;margin-bottom:32px;display:flex;gap:32px;flex-wrap:wrap;align-items:center}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-label{font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--off-black-light)}.summary-value{font-size:.95rem;color:var(--off-black);font-weight:400}.booking-form{max-width:520px}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--off-black-light);margin-bottom:8px;font-weight:400}.form-group label .optional{text-transform:none;letter-spacing:0;opacity:.6}.booking-input{width:100%;padding:14px 16px;border:1px solid rgba(57,57,57,.15);background:#fff;font-family:Inter,sans-serif;font-size:.95rem;color:var(--off-black);transition:border-color .3s;outline:none}.booking-input:focus{border-color:var(--orange)}.booking-input.error{border-color:#d32f2f}.form-error{background:#d32f2f0f;color:#d32f2f;padding:14px 16px;font-size:.85rem;margin-bottom:20px}.cancellation-policy-note{background:#39393908;border-left:3px solid var(--orange);padding:14px 18px;margin-bottom:20px;font-size:.8rem;line-height:1.6;color:var(--off-black-light)}.cancellation-policy-note strong{color:var(--off-black)}.booking-btn{display:inline-block;background:var(--orange);color:var(--off-white);padding:18px 48px;font-family:Inter,sans-serif;font-size:.8rem;letter-spacing:.15em;text-transform:uppercase;font-weight:400;border:none;cursor:pointer;transition:all .4s cubic-bezier(.16,1,.3,1);width:100%;text-align:center}.booking-btn:hover:not(:disabled){background:var(--off-black);transform:translateY(-2px);box-shadow:0 20px 40px #39393926}.booking-btn:disabled{opacity:.6;cursor:not-allowed}.booking-success{text-align:center;padding:48px 0}.success-icon{width:64px;height:64px;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;margin:0 auto 24px}.booking-success p{color:var(--off-black-light);margin:12px 0 32px}.booking-link{color:var(--orange);text-decoration:none;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;transition:opacity .3s}.booking-link:hover{opacity:.7}.packages-section{padding:clamp(80px,12vw,140px) 0;border-top:1px solid rgba(57,57,57,.08)}.package-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px}.package-card{background:#fff;border:1px solid rgba(57,57,57,.1);padding:40px 32px;text-align:center;position:relative;transition:all .4s cubic-bezier(.16,1,.3,1)}.package-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px #39393914}.package-card.featured{border-color:var(--orange)}.package-badge{position:absolute;top:-1px;left:50%;transform:translate(-50%);background:var(--orange);color:var(--off-white);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;padding:6px 20px}.package-sessions{font-family:"DM Serif Display",serif;font-style:italic;font-size:1.5rem;color:var(--off-black);margin-bottom:8px}.package-price{font-size:2.2rem;font-weight:500;color:var(--off-black);margin-bottom:4px}.package-per{font-size:.8rem;color:var(--off-black-light);margin-bottom:32px}.package-card .booking-btn{width:100%}.package-form-overlay{position:fixed;inset:0;background:#39393980;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}.package-form-overlay.hidden{display:none!important}.package-form-card{background:var(--off-white);padding:48px 40px;max-width:480px;width:100%;position:relative}.package-form-close{position:absolute;top:16px;right:20px;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--off-black-light);transition:color .3s;line-height:1}.package-form-close:hover{color:var(--orange)}.package-credit-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;padding:14px 16px;background:#e85f4e0d;border:1px solid rgba(232,95,78,.2);font-size:.9rem;color:var(--off-black);transition:border-color .2s}.package-credit-toggle:hover{border-color:var(--orange)}.package-credit-toggle input[type=checkbox]{accent-color:var(--orange);width:18px;height:18px}.logged-in-notice{font-size:.85rem;color:var(--off-black-light);margin-bottom:16px;padding:10px 0}.logged-in-notice a{color:var(--orange);text-decoration:none}@media(max-width:968px){.service-cards,.package-cards{grid-template-columns:repeat(2,1fr)}.package-cards .package-card:last-child{grid-column:span 2;max-width:50%;margin:0 auto}}@media(max-width:600px){.service-cards{grid-template-columns:1fr}.time-grid{grid-template-columns:repeat(2,1fr)}.package-cards{grid-template-columns:1fr}.package-cards .package-card:last-child{grid-column:span 1;max-width:100%}.booking-summary{flex-direction:column;gap:16px}.package-form-card{padding:32px 24px}}
