*{box-sizing:border-box}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;background-color:#f8fafc;color:#1e293b;min-height:100vh}.tour-container{min-height:100vh;padding:2rem 1rem}.tour-wrapper{max-width:56rem;margin:0 auto;position:relative}.tour-header{text-align:center;margin-bottom:2rem}.tour-header h1{font-size:2.5rem;font-weight:700;color:#0f172a;margin-bottom:.75rem}.tour-header p{font-size:1.125rem;color:#64748b;margin:0}.progress-section{margin-bottom:2rem}.progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.progress-info span{font-size:.875rem;font-weight:500;color:#475569}.progress-info .progress-percent{color:#94a3b8}.progress-bar-container{width:100%;background-color:#e2e8f0;border-radius:9999px;height:.5rem;overflow:hidden}.progress-bar-fill{height:100%;background-color:#3b82f6;border-radius:9999px;transition:width .3s ease}.tour-card{background:#fff;border-radius:1rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);border:1px solid #e2e8f0;overflow:hidden}.tour-card-content{padding:2rem}.step-container{display:none}.step-container.active{display:block}.step-title{font-size:1.5rem;font-weight:700;color:#0f172a;margin-bottom:.5rem}.step-subtitle{font-size:1rem;color:#64748b;margin-bottom:1.5rem}.school-grid{display:grid;gap:.75rem}.school-card{display:flex;align-items:flex-start;gap:1rem;padding:1rem;border:2px solid #e2e8f0;border-radius:.75rem;background:#fff;cursor:pointer;transition:all .2s ease}.school-card:hover{border-color:#3b82f6;box-shadow:0 4px 6px -1px rgba(0,0,0,.1);transform:scale(1.01)}.school-card.selected{border-color:#10b981;background-color:#f0fdf4}.school-image{width:5rem;height:3.5rem;object-fit:cover;border-radius:.5rem;flex-shrink:0}.school-info{flex:1;min-width:0}.school-name{font-weight:600;margin-bottom:.25rem;color:#0f172a}.school-card.selected .school-name{color:#047857}.school-address,.school-phone{font-size:.875rem;color:#64748b;margin:0}.school-check{flex-shrink:0;width:1.5rem;height:1.5rem;background-color:#10b981;border-radius:9999px;display:none;align-items:center;justify-content:center;color:#fff}.school-card.selected .school-check{display:flex}.form-group{margin-bottom:1.25rem}.form-label{display:block;font-size:.875rem;font-weight:500;color:#475569;margin-bottom:.375rem}.form-label .required{color:#ef4444}.form-control{width:100%;padding:.625rem 1rem;border:1px solid #cbd5e1;border-radius:.5rem;font-size:1rem;transition:all .2s ease}.form-control:focus{outline:0;border-color:transparent;box-shadow:0 0 0 3px rgba(59,130,246,.5)}.form-control.error{border-color:#fca5a5}.error-message{font-size:.875rem;color:#ef4444;margin-top:.25rem}select.form-control{background-color:#fff;cursor:pointer}.form-row-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.child-card{padding:1.5rem;background-color:#f8fafc;border-radius:.75rem;border:1px solid #e2e8f0;margin-bottom:1.5rem}.child-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.child-title{font-size:1.125rem;font-weight:600;color:#0f172a;margin:0}.btn-remove-child{color:#ef4444;font-size:.875rem;font-weight:500;background:0 0;border:none;cursor:pointer;padding:0}.btn-remove-child:hover{color:#dc2626}.btn-add-child{width:100%;padding:.75rem 1rem;border:2px dashed #cbd5e1;border-radius:.5rem;background:0 0;color:#64748b;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-add-child:hover{border-color:#3b82f6;color:#3b82f6;background-color:#eff6ff}.future-birth-notice{display:none;align-items:flex-start;gap:.5rem;padding:.75rem;background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:.5rem;margin-top:.5rem}.future-birth-notice.show{display:flex}.future-birth-notice svg{width:1.25rem;height:1.25rem;color:#3b82f6;flex-shrink:0;margin-top:.125rem}.future-birth-notice p{font-size:.875rem;color:#1e40af;margin:0}.child-age-display{display:none;padding:.75rem;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:.5rem;margin-top:.5rem;font-size:.875rem;color:#166534;font-weight:500}.child-age-display.show{display:block}.calendar-container{background:#fff;border-radius:1rem;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);border:1px solid #e2e8f0;padding:1.5rem;margin-bottom:1.5rem}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.calendar-title{font-size:1.125rem;font-weight:600;color:#0f172a;margin:0}.calendar-nav{display:flex;gap:.5rem}.calendar-nav button{padding:.5rem;background:0 0;border:none;border-radius:.5rem;cursor:pointer;transition:background-color .2s ease}.calendar-nav button:hover{background-color:#f1f5f9}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}#calendarDays{display:contents}.calendar-day-header{text-align:center;font-size:.875rem;font-weight:500;color:#64748b;padding:.5rem 0}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:500;border-radius:.5rem;cursor:pointer;transition:all .2s ease}.calendar-day:not(.disabled):hover{background-color:#eff6ff;color:#3b82f6}.calendar-day.selected{background-color:#3b82f6;color:#fff;box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.calendar-day.disabled{color:#cbd5e1;cursor:not-allowed}.calendar-day.available{background-color:#f8fafc;color:#0f172a}.time-slots-section{padding-top:1.5rem;border-top:1px solid #e2e8f0}.time-slots-title{font-size:1.125rem;font-weight:600;color:#0f172a;margin-bottom:1rem}.time-slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.75rem}.time-slot-button{padding:.75rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid #e2e8f0;background-color:#f8fafc;color:#0f172a}.time-slot-button:hover:not(:disabled){background-color:#eff6ff;color:#3b82f6;border-color:#e2e8f0}.time-slot-button.selected{background-color:#3b82f6;color:#fff;border-color:#3b82f6;box-shadow:0 4px 6px -1px rgba(0,0,0,.1)}.time-slot-button:disabled{background-color:#f8fafc;color:#cbd5e1;cursor:not-allowed;border-color:#f1f5f9}.time-slot-unavailable{display:block;font-size:.75rem;margin-top:.25rem}.confirmation-icon{width:4rem;height:4rem;background-color:#10b981;border-radius:9999px;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.confirmation-icon svg{width:2rem;height:2rem;color:#fff}.confirmation-title{font-size:2rem;font-weight:700;color:#0f172a;text-align:center;margin-bottom:.5rem}.confirmation-subtitle{font-size:1rem;color:#64748b;text-align:center;margin-bottom:2rem}.confirmation-details{background-color:#f8fafc;border-radius:.75rem;padding:1.5rem;margin-bottom:1.5rem}.confirmation-section{margin-bottom:1.5rem}.confirmation-section:last-child{margin-bottom:0}.confirmation-section-title{font-size:.875rem;font-weight:600;color:#64748b;text-transform:uppercase;margin-bottom:.5rem;letter-spacing:.05em}.confirmation-section-content{color:#0f172a;font-size:1rem}.confirmation-children-list{list-style:none;padding:0;margin:0}.confirmation-children-list li{padding:.5rem 0;border-bottom:1px solid #e2e8f0}.confirmation-children-list li:last-child{border-bottom:none}.confirmation-next-steps{background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:.75rem;padding:1.5rem}.confirmation-next-steps h3{font-size:1.125rem;font-weight:600;color:#1e40af;margin-bottom:1rem}.confirmation-next-steps ul{margin:0;padding-left:1.5rem;color:#1e3a8a}.confirmation-next-steps li{margin-bottom:.5rem}.button-actions{display:flex;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e2e8f0}.btn{padding:.75rem 1.5rem;border-radius:.5rem;font-weight:500;font-size:1rem;cursor:pointer;transition:all .2s ease;border:none;display:inline-flex;align-items:center;justify-content:center}.btn-back{border:2px solid #cbd5e1;background:#fff;color:#475569}.btn-back:hover{background-color:#f8fafc}.btn-primary{flex:1;background-color:#3b82f6;color:#fff}.btn-primary:hover{background-color:#2563eb}.btn-primary:disabled{background-color:#cbd5e1;cursor:not-allowed}.loading-spinner{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.7);z-index:9999;align-items:center;justify-content:center}.loading-spinner.show{display:flex}.spinner{width:3rem;height:3rem;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.notification{position:fixed;top:1rem;right:1rem;background:#fff;padding:1rem 1.5rem;border-radius:.5rem;box-shadow:0 10px 15px -3px rgba(0,0,0,.1);border-left:4px solid #10b981;display:none;align-items:center;gap:.75rem;z-index:10000;max-width:400px}.notification.show{display:flex;animation:slideIn .3s ease}.notification.error{border-left-color:#ef4444}@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}.notification-icon{flex-shrink:0}.notification-content p{margin:0;color:#0f172a;font-weight:500}@media (max-width:768px){.tour-header h1{font-size:1.875rem}.tour-header p{font-size:1rem}.tour-card-content{padding:1.5rem}.form-row-grid{grid-template-columns:1fr}.school-image{display:none}.time-slots-grid{grid-template-columns:repeat(2,1fr)}.calendar-grid{gap:.25rem}.calendar-day{font-size:.75rem}.button-actions{flex-direction:column}.btn-back{order:2}.btn-primary{order:1}}@media (max-width:640px){.tour-container{padding:1rem .5rem}.tour-header h1{font-size:1.5rem}.notification{left:1rem;right:1rem;max-width:none}}.reset-button{position:absolute;top:1rem;right:1rem;padding:.5rem 1rem;background:#fff;border:2px solid #e2e8f0;border-radius:.5rem;color:#64748b;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;display:none;align-items:center;gap:.5rem}.reset-button:hover{background:#f8fafc;border-color:#cbd5e1;color:#475569}.reset-button svg{width:1rem;height:1rem}.need-help{position:fixed;bottom:20px;right:20px;background:#fff;border-radius:8px;box-shadow:0 4px 12px rgba(0,0,0,.15);padding:12px 16px;cursor:pointer;transition:all .3s ease;z-index:1000;max-width:300px}.need-help:hover{box-shadow:0 6px 16px rgba(0,0,0,.2);transform:translateY(-2px)}.need-help>span{display:flex;align-items:center;gap:8px;color:#4a90e2;font-weight:600;font-size:14px}.need-help i{font-size:18px}.need-help-content{display:none;margin-top:8px;padding-top:8px;border-top:1px solid #e5e7eb;color:#374151;font-size:13px;line-height:1.5}.need-help.active .need-help-content{display:block}@media (max-width:640px){.need-help{bottom:10px;right:10px;max-width:calc(100vw - 20px)}}.reset-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:10001;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .2s ease}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.reset-modal{background:#fff;border-radius:1rem;box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);max-width:28rem;width:100%;animation:modalSlideIn .2s ease}@keyframes modalSlideIn{from{transform:scale(.95) translateY(-10px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.reset-modal-header{padding:1.5rem 1.5rem 1rem 1.5rem;border-bottom:1px solid #e2e8f0}.reset-modal-title{font-size:1.25rem;font-weight:700;color:#0f172a;margin:0;text-align:center}.reset-modal-body{padding:1.5rem}.reset-modal-body p{margin:0;color:#475569;font-size:1rem;text-align:center;line-height:1.5}.reset-modal-footer{padding:1rem 1.5rem 1.5rem 1.5rem;display:flex;gap:.75rem;border-top:1px solid #e2e8f0}.reset-modal-footer .btn{flex:1}@media (max-width:640px){.reset-modal{max-width:100%;margin:1rem}}.lang-switcher{position:fixed;top:1rem;z-index:1000;display:flex;gap:.5rem;background:#fff;border-radius:.5rem;box-shadow:0 4px 12px rgba(0,0,0,.1);padding:.375rem}.lang-switcher-left{left:1rem}.lang-btn{background:0 0;border:none;padding:0;cursor:pointer;border-radius:.25rem;overflow:hidden;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.lang-btn:hover{transform:scale(1.05)}.lang-btn.ring-2{box-shadow:0 0 0 2px #3b82f6}.lang-btn.ring-offset-2{outline-offset:2px}.lang-flag{width:2rem;height:1.5rem;object-fit:cover;display:block}@media (max-width:640px){.lang-switcher{top:.5rem}.lang-switcher-left{left:.5rem}.lang-flag{width:1.75rem;height:1.25rem}}