*{box-sizing:border-box;padding:0;margin:0}body,html{max-width:100vw;overflow-x:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{color:#333}.page-wrapper,body{background:#f8f8f8;min-height:100vh}.page-wrapper{display:flex;flex-direction:column}.site-header{background:#fff;border-bottom:2px solid #000;padding:24px 0;position:-webkit-sticky;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px rgba(0,0,0,.05)}.header-content{max-width:1400px;margin:0 auto;padding:0 40px;display:flex;align-items:center;justify-content:center}.header-logo{height:auto;width:auto;max-height:60px}.main-content{flex:1 1;max-width:1400px;width:100%;margin:0 auto;padding:60px 40px;background:#f8f8f8}.hero-section{text-align:center;padding:80px 0;margin-bottom:0;background:#fff;border-bottom:1px solid #e0e0e0;width:100%;border-radius:16px}.hero-content{max-width:900px;margin:0 auto;padding:0 40px}.hero-title{font-size:3.5rem;font-weight:700;color:#000;margin-bottom:28px;letter-spacing:-1.5px;line-height:1.1}.hero-subtitle{font-size:1.3rem;color:#666;line-height:1.8;max-width:750px;margin:0 auto 32px}.hero-button{background:#000;color:#fff;border:1px solid #000;padding:12px 28px;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px}.hero-button:hover{background:#333;border-color:#333;transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.process-section{margin-bottom:0;padding:80px 40px;background:#f8f8f8;width:100%}.section-title{font-size:2.25rem;font-weight:700;color:#000;text-align:center;margin-bottom:56px;letter-spacing:-.5px}.process-steps{max-width:1000px;margin:0 auto;padding:0 40px;display:flex;flex-direction:column;gap:40px}.process-step{display:flex;align-items:flex-start;gap:24px}.step-number{flex-shrink:0;width:56px;height:56px;border-radius:50%;background:#000;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;box-shadow:0 4px 12px rgba(0,0,0,.15)}.step-content{flex:1 1;padding-top:10px}.step-content h3{font-size:1.4rem;font-weight:700;color:#000;margin-bottom:10px;letter-spacing:-.3px}.step-content p{font-size:1.05rem;color:#666;line-height:1.7;margin:0}.verification-container{max-width:900px;background:#fff;border-radius:16px;padding:60px;box-shadow:0 4px 20px rgba(0,0,0,.08);border:1px solid #e0e0e0;margin:80px auto}.verification-header{margin-bottom:32px;text-align:center}.verification-header h2{color:#000;font-size:2rem;font-weight:700;margin-bottom:12px;letter-spacing:-.5px}.process-explanation{color:#666;font-size:.95rem;line-height:1.6;margin-bottom:0}.verification-form{margin-top:40px}.form-group{margin-bottom:28px}.form-group label{display:block;margin-bottom:10px;color:#000;font-weight:600;font-size:.95rem}.form-input{width:100%;padding:16px 18px;border:2px solid #e0e0e0;border-radius:10px;font-size:16px;transition:all .3s ease;background:#fff;color:#000}.form-input:focus{outline:none;border-color:#000;box-shadow:0 0 0 4px rgba(0,0,0,.05)}.form-input:disabled{background:#f8f8f8;cursor:not-allowed}.form-input::placeholder{color:#999}.form-hint{display:block;margin-top:8px;font-size:.85rem;color:#666;font-style:italic}.otp-sent-message{background:#e8f5e9;border:1px solid #4caf50;border-radius:8px;padding:16px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.otp-sent-message p{margin:0;color:#2e7d32;font-size:.95rem}.otp-sent-message strong{color:#000;font-weight:600}.resend-link{background:transparent;border:none;color:#2e7d32;text-decoration:underline;cursor:pointer;font-size:.9rem;font-weight:600;padding:0}.resend-link:hover{color:#1b5e20}.otp-input{text-align:center;font-size:1.5rem;font-weight:700;letter-spacing:8px;font-family:Courier New,monospace}.primary-button{background:#000;color:#fff;border:2px solid #000;padding:18px 36px;border-radius:10px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s ease;width:100%;text-transform:uppercase;letter-spacing:1px;margin-top:10px}.primary-button:hover:not(:disabled){background:#333;border-color:#333;transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.15)}.primary-button:active:not(:disabled){transform:translateY(0)}.primary-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.back-button{background:transparent;color:#000;border:2px solid #000;padding:12px 24px;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;margin-bottom:24px}.back-button:hover{background:#000;color:#fff}.alert{padding:18px 24px;border-radius:10px;margin-bottom:28px;border-left:4px solid;font-size:.95rem}.alert-success{background:#d4edda;color:#155724;border-color:#28a745}.alert-error{background:#f8d7da;color:#721c24;border-color:#dc3545}.alert-info{background:#d1ecf1;color:#0c5460;border-color:#17a2b8}.groups-container{max-width:1200px;margin:0 auto;background:#fff;border-radius:16px;padding:50px;box-shadow:0 4px 20px rgba(0,0,0,.08);border:1px solid #e0e0e0;min-height:600px}.page-header{margin-bottom:40px}.page-header h1{color:#000;font-size:2rem;font-weight:700;margin-bottom:12px;letter-spacing:-.5px}.page-header .process-explanation{color:#666;font-size:.95rem;line-height:1.6}.groups-layout{display:grid;grid-template-columns:1fr 1fr;grid-gap:50px;gap:50px;margin-top:50px}@media (max-width:1024px){.groups-layout{grid-template-columns:1fr;gap:40px}}.program-name-display{text-align:center;margin:20px 0 30px;padding:20px;background:#fff;border-radius:12px;border:2px solid #000}.program-name-display h2{margin:0;font-size:1.5rem;color:#000;font-weight:700;letter-spacing:-.5px}.groups-display-section{margin-top:40px;margin-bottom:40px}.groups-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:24px;gap:24px;max-width:1200px;margin:0 auto}.group-info-card{background:#fff;border:2px solid #e0e0e0;border-radius:12px;padding:24px;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px rgba(0,0,0,.05)}.group-info-card:hover:not(.disabled){border-color:#000;box-shadow:0 4px 16px rgba(0,0,0,.1);transform:translateY(-2px)}.group-info-card.selected{border-color:#000;background:#fafafa;box-shadow:0 4px 20px rgba(0,0,0,.12)}.group-info-card.disabled{opacity:.6;cursor:not-allowed;background:#f5f5f5}.group-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #e0e0e0}.group-info-card h3{margin:0;font-size:1.25rem;color:#000;font-weight:700;letter-spacing:-.3px}.group-card-schedule{margin-bottom:20px}.schedule-label{font-size:.75rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.8px;margin-bottom:12px}.group-card-schedule .time-list{margin:0;padding:0}.group-card-schedule .time-list li{font-size:.95rem;color:#333;margin-bottom:8px}.group-card-schedule .no-schedule{color:#999;font-style:italic;font-size:.9rem;margin:0}.group-card-action{margin-top:20px;padding-top:20px;border-top:1px solid #e0e0e0}.book-button-card{background:#000;color:#fff;border:1px solid #000;padding:12px 24px;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%;text-transform:uppercase;letter-spacing:.5px}.book-button-card:hover:not(:disabled){background:#333;border-color:#333}.book-button-card:disabled{opacity:.6;cursor:not-allowed}.compare-checkbox.checked{background:#000;color:#fff}.compare-results{margin-top:32px;padding-top:32px;border-top:2px solid #f0f0f0}.compare-results h3{font-size:1.2rem;font-weight:700;color:#000;margin-bottom:20px}.compare-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:20px;gap:20px}.compare-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px;box-shadow:0 2px 8px rgba(0,0,0,.05)}.compare-card h4{font-size:1.2rem;font-weight:700;color:#000;margin:0 0 12px}.compare-program{font-size:.9rem;color:#666;margin:0 0 16px}.compare-schedule{margin-bottom:16px}.compare-schedule strong{display:block;font-size:.75rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.compare-spots{padding-top:12px;border-top:1px solid #f0f0f0;font-weight:600;color:#28a745;font-size:.9rem}.calendar-section{margin-top:0}.selected-group-info{background:#fff;border:1px solid #e8e8e8;padding:32px;border-radius:12px;margin-bottom:32px;box-shadow:0 4px 20px rgba(0,0,0,.06);transition:all .3s ease}.selected-group-info:hover{box-shadow:0 6px 24px rgba(0,0,0,.08)}.group-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;padding-bottom:24px;border-bottom:2px solid #f5f5f5}.selected-group-info h3{margin:0;font-size:1.75rem;color:#000;font-weight:700;letter-spacing:-.5px}.spots-badge{padding:8px 16px;border-radius:20px;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.spots-badge.available{background:#e8f5e9;color:#2e7d32}.spots-badge.full{background:#ffebee;color:#c62828}.group-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:24px;gap:24px}.detail-item{display:flex;align-items:flex-start;gap:16px;padding:16px;background:#fafafa;border-radius:10px;transition:all .2s ease}.detail-item:hover{background:#f5f5f5;transform:translateY(-2px)}.detail-icon{font-size:1.5rem;line-height:1;flex-shrink:0}.detail-content{flex:1 1;min-width:0}.detail-label{font-size:.75rem;font-weight:600;letter-spacing:.8px;margin-bottom:6px}.detail-value{font-size:.95rem;line-height:1.4;word-wrap:break-word}.time-list{list-style:none;padding:0;margin:0}.time-list li{position:relative;padding-left:16px;margin-bottom:6px;line-height:1.5}.time-list li:last-child{margin-bottom:0}.time-list li:before{content:"•";position:absolute;left:0;color:#000;font-weight:700;font-size:1.2rem;line-height:1}@media (max-width:768px){.group-details-grid{grid-template-columns:1fr;gap:16px}.group-header{flex-direction:column;align-items:flex-start;gap:16px}.selected-group-info{padding:24px}}.calendar{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:8px;gap:8px;margin-bottom:24px;background:#fff;padding:16px;border-radius:8px;border:1px solid #e0e0e0;box-shadow:0 2px 8px rgba(0,0,0,.05)}.calendar-day{border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fff;transition:all .2s ease;min-height:100px;display:flex;flex-direction:column}.calendar-day.active{border-color:#e0e0e0;background:#fafafa}.calendar-day.highlighted{border-color:#000;background:#000;color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:10}.calendar-day.highlighted .day-header{color:#fff;font-weight:700}.day-header{font-weight:600;color:#000;margin-bottom:8px;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;text-align:center;padding-bottom:6px;border-bottom:1px solid #f0f0f0}.calendar-day.highlighted .day-header{border-bottom-color:hsla(0,0%,100%,.3)}.day-content{flex:1 1;justify-content:center;align-items:center;min-height:60px}.day-content,.time-slots{display:flex;flex-direction:column}.time-slots{gap:6px;width:100%}.time-slot{background:#fff;color:#000;border:1px solid #000;padding:6px 8px;border-radius:4px;font-size:.7rem;font-weight:600;text-align:center;width:100%}.calendar-day.highlighted .time-slot{background:#fff;color:#000;border-color:#fff}.day-inactive{color:#ccc;font-style:italic;text-align:center;padding:12px;font-size:.8rem}.calendar-placeholder{text-align:center;padding:100px 20px;background:#f8f8f8;border-radius:12px;border:2px dashed #e0e0e0}.placeholder-icon{font-size:4rem;margin-bottom:20px;opacity:.5}.calendar-placeholder p{color:#999;font-size:1.1rem}.booking-section{margin-top:28px}.book-button{background:#000;color:#fff;border:1px solid #000;padding:16px 32px;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%;text-transform:uppercase;letter-spacing:.5px}.book-button:hover:not(:disabled){background:#333;border-color:#333}.book-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.loading-container{text-align:center;padding:100px 20px;color:#333;background:#fff;border-radius:16px;box-shadow:0 4px 20px rgba(0,0,0,.08)}.spinner{border:4px solid #f0f0f0;border-top-color:#000;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite;margin:0 auto 24px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.site-footer{background:#000;border-top:2px solid #000;padding:50px 0;margin-top:auto}.footer-content{max-width:1400px;margin:0 auto;padding:0 40px;display:flex;flex-direction:column;align-items:center;gap:20px}.footer-logo{height:auto;width:auto;max-height:80px;filter:brightness(0) invert(1)}.footer-text{color:#fff;font-size:.95rem;font-weight:500;margin:0;letter-spacing:.5px}.success-container{max-width:700px;margin:0 auto;background:#fff;border-radius:16px;padding:60px 50px;box-shadow:0 4px 20px rgba(0,0,0,.08);border:1px solid #e0e0e0;text-align:center}.success-icon{width:90px;height:90px;background:#000;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:3.5rem;font-weight:700;margin:0 auto 30px;box-shadow:0 4px 16px rgba(0,0,0,.15)}.success-container h1{color:#000;font-size:3rem;font-weight:700;margin-bottom:12px;letter-spacing:-.5px}.success-subtitle{color:#666;font-size:1.5rem;font-weight:600;margin-bottom:24px}.success-message{color:#666;font-size:1.1rem;margin-bottom:30px;line-height:1.7;max-width:600px;margin-left:auto;margin-right:auto}.success-footer{margin-top:40px;padding-top:30px;border-top:1px solid #e0e0e0}.success-note{color:#999;font-size:.95rem;font-style:italic;margin-bottom:24px;line-height:1.6}.booking-success-message{text-align:center;padding:40px 0}.success-icon-large{width:100px;height:100px;background:#000;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:4rem;font-weight:700;margin:0 auto 30px;box-shadow:0 4px 20px rgba(0,0,0,.15)}.booking-success-message h1{color:#000;font-size:3rem;font-weight:700;margin-bottom:12px;letter-spacing:-.5px}.booking-success-message .success-subtitle{color:#666;font-size:1.5rem;font-weight:600;margin-bottom:24px}.booking-success-message .success-message{color:#666;font-size:1.1rem;margin-bottom:30px;line-height:1.7;max-width:600px;margin-left:auto;margin-right:auto}.booking-success-message .success-details{background:#f8f8f8;border-radius:12px;padding:28px;margin:30px auto;text-align:left;border:1px solid #e0e0e0;max-width:500px}.booking-success-message .success-details h3{color:#000;font-size:1.2rem;font-weight:700;margin-bottom:16px;text-align:center;border-bottom:2px solid #000;padding-bottom:10px}.booking-success-message .success-details p{color:#666;font-size:1rem;margin-bottom:12px;line-height:1.6}.booking-success-message .success-details p:last-child{margin-bottom:0}.booking-success-message .success-details strong{color:#000;font-weight:700}.booking-success-message .success-details .schedule-details{margin-top:12px}.booking-success-message .success-details .schedule-details strong{display:block;margin-bottom:8px}.booking-success-message .success-details .schedule-details .time-list{margin:8px 0 0;padding:0}.booking-success-message .success-details .schedule-details .no-schedule{color:#999;font-style:italic;font-size:.9rem;margin:8px 0 0}.booking-success-message .success-footer{margin-top:40px;padding-top:30px;border-top:1px solid #e0e0e0}.booking-success-message .success-note{color:#999;font-size:.95rem;font-style:italic;margin-bottom:24px;line-height:1.6}.success-actions{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}.already-booked-container{max-width:700px;margin:0 auto;background:#fff;border-radius:16px;padding:60px 50px;box-shadow:0 4px 20px rgba(0,0,0,.08);border:1px solid #e0e0e0;text-align:center}.info-icon{width:100px;height:100px;background:#f0f0f0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:4rem;margin:0 auto 30px;box-shadow:0 4px 20px rgba(0,0,0,.1)}.already-booked-container h1{color:#000;font-size:2.5rem;font-weight:700;margin-bottom:20px;letter-spacing:-.5px}.info-message{color:#666;font-size:1.1rem;margin-bottom:40px;line-height:1.7}.booking-details-card{background:#f8f8f8;border-radius:12px;padding:32px;margin:30px 0;text-align:left;border:1px solid #e0e0e0}.booking-details-card h2{color:#000;font-size:1.5rem;font-weight:700;margin-bottom:24px;text-align:center}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid #e0e0e0}.detail-row:last-child{border-bottom:none}.detail-label{font-weight:700;color:#666;font-size:.95rem;text-transform:uppercase;letter-spacing:.5px}.detail-value{color:#000;font-weight:600;font-size:1rem}.secondary-button{background:transparent;color:#000;border:2px solid #000;padding:18px 36px;border-radius:10px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .3s ease;text-transform:uppercase;letter-spacing:1px}.secondary-button:hover{background:#000;color:#fff}@media (max-width:768px){.success-actions{flex-direction:column}.primary-button,.secondary-button{width:100%}}.success-details{background:#f8f8f8;border-radius:12px;padding:28px;margin-top:30px;text-align:left;border:1px solid #e0e0e0}.success-details h3{color:#000;font-size:1.25rem;font-weight:700;margin-bottom:18px;border-bottom:2px solid #000;padding-bottom:10px}.success-details p{color:#333;margin-bottom:14px;font-size:1rem;line-height:1.6}.success-details strong{color:#000;font-weight:700}@media (max-width:768px){.main-content{padding:30px 20px}.hero-section{padding:50px 0}.hero-content{padding:0 20px}.hero-title{font-size:2.25rem}.hero-subtitle{font-size:1.1rem}.section-title{font-size:1.75rem;margin-bottom:40px}.process-section{padding:50px 0}.process-steps{padding:0 20px;gap:32px}.step-number{width:48px;height:48px;font-size:1.25rem}.step-content h3{font-size:1.2rem}.step-content p{font-size:1rem}.verification-container{margin-top:50px;margin-bottom:50px}.already-booked-container,.groups-container,.success-container,.verification-container{padding:40px 30px}.footer-content,.header-content{padding:0 20px}.verification-header h2{font-size:1.75rem}.page-header h1,.success-container h1{font-size:2rem}.groups-layout{gap:40px}.calendar{grid-template-columns:repeat(2,1fr)}.calendar-day{min-height:100px}}@media (max-width:480px){.calendar{grid-template-columns:1fr}}