@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Poppins:wght@300;400;500;600&display=swap";:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.react-calendar{width:350px;max-width:100%;background:#fff;border:1px solid #a0a096;font-family:Arial,Helvetica,sans-serif;line-height:1.125em}.react-calendar--doubleView{width:700px}.react-calendar--doubleView .react-calendar__viewContainer{display:flex;margin:-.5em}.react-calendar--doubleView .react-calendar__viewContainer>*{width:50%;margin:.5em}.react-calendar,.react-calendar *,.react-calendar *:before,.react-calendar *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.react-calendar button{margin:0;border:0;outline:none}.react-calendar button:enabled:hover{cursor:pointer}.react-calendar__navigation{display:flex;height:44px;margin-bottom:1em}.react-calendar__navigation button{min-width:44px;background:none}.react-calendar__navigation button:disabled{background-color:#f0f0f0}.react-calendar__navigation button:enabled:hover,.react-calendar__navigation button:enabled:focus{background-color:#e6e6e6}.react-calendar__month-view__weekdays{text-align:center;text-transform:uppercase;font:inherit;font-size:.75em;font-weight:700}.react-calendar__month-view__weekdays__weekday{padding:.5em}.react-calendar__month-view__weekNumbers .react-calendar__tile{display:flex;align-items:center;justify-content:center;font:inherit;font-size:.75em;font-weight:700}.react-calendar__month-view__days__day--weekend{color:#d10000}.react-calendar__month-view__days__day--neighboringMonth,.react-calendar__decade-view__years__year--neighboringDecade,.react-calendar__century-view__decades__decade--neighboringCentury{color:#757575}.react-calendar__year-view .react-calendar__tile,.react-calendar__decade-view .react-calendar__tile,.react-calendar__century-view .react-calendar__tile{padding:2em .5em}.react-calendar__tile{max-width:100%;padding:10px 6.6667px;background:none;text-align:center;font:inherit;font-size:.833em}.react-calendar__tile:disabled{background-color:#f0f0f0;color:#ababab}.react-calendar__month-view__days__day--neighboringMonth:disabled,.react-calendar__decade-view__years__year--neighboringDecade:disabled,.react-calendar__century-view__decades__decade--neighboringCentury:disabled{color:#cdcdcd}.react-calendar__tile:enabled:hover,.react-calendar__tile:enabled:focus{background-color:#e6e6e6}.react-calendar__tile--now{background:#ffff76}.react-calendar__tile--now:enabled:hover,.react-calendar__tile--now:enabled:focus{background:#ffffa9}.react-calendar__tile--hasActive{background:#76baff}.react-calendar__tile--hasActive:enabled:hover,.react-calendar__tile--hasActive:enabled:focus{background:#a9d4ff}.react-calendar__tile--active{background:#006edc;color:#fff}.react-calendar__tile--active:enabled:hover,.react-calendar__tile--active:enabled:focus{background:#1087ff}.react-calendar--selectRange .react-calendar__tile--hover{background-color:#e6e6e6}#root{max-width:1280px;margin:0 auto;padding:1rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.app-container{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem .5rem;max-width:900px;margin:1rem auto}.app-container h1{margin-bottom:0}.app-container p{margin-top:0;margin-bottom:0}.calendar-container{width:100%;max-width:450px;background-color:#1e1e1e;padding:1rem;border-radius:12px;box-shadow:0 4px 12px #00000026;border:1px solid #333}.react-calendar{width:100%!important;border:none!important;font-family:inherit;background:transparent!important}.react-calendar__navigation button{min-width:40px;padding:10px 5px;background:none;border:none;font-size:1.1em;font-weight:700;color:#dce1e7;cursor:pointer;transition:background-color .2s;border-radius:6px;font-family:Montserrat,sans-serif;font-weight:600}.react-calendar__navigation button:hover{background-color:#333}.react-calendar__navigation button:disabled{color:#555;cursor:default;background-color:transparent}.react-calendar__navigation button.react-calendar__navigation__label{font-size:1.2em;flex-grow:1!important;pointer-events:none;cursor:default}.react-calendar__navigation button.react-calendar__navigation__arrow:hover{background-color:#333}.react-calendar__navigation button.react-calendar__navigation__label:hover{background-color:transparent!important}.react-calendar__month-view__weekdays__weekday abbr{text-decoration:none;font-weight:600;font-size:.85em;color:#aaa}.react-calendar__tile{background:none;border:none;padding:0;height:45px;display:flex;align-items:center;justify-content:center;font-size:.9em;color:#dce1e7;border-radius:8px;cursor:pointer;transition:background-color .2s,color .2s;position:relative;font-family:Poppins,sans-serif}.react-calendar__tile:enabled:hover{background-color:#f0bb0c;color:#1e1e1e}.react-calendar__tile:disabled{background-color:#2a2a2a;color:#555;cursor:default;text-decoration:line-through}.react-calendar__tile--now{background-color:#4a4a2a!important;color:#fffbe6!important;font-weight:700}.react-calendar__tile--now:enabled:hover{background-color:#5a5a3a!important}.react-calendar__tile--active{background-color:#ffd600!important;color:#1e1e1e!important;font-weight:700}.react-calendar__tile--active:enabled:hover{background-color:#e6bf00!important}.react-calendar__month-view__days__day--neighboringMonth{color:#555}.booking-form-container{margin-top:1rem;padding:1.5rem 1rem;border:1px solid #333;border-radius:12px;background-color:#1e1e1e;width:100%;max-width:450px;box-shadow:0 4px 12px #00000026;text-align:center}.booking-form h3{font-family:Montserrat,sans-serif;font-weight:600;margin-top:0;margin-bottom:1rem;color:#e0e0e0;font-size:1.3em}.booking-form div{margin-bottom:1rem;text-align:left}.booking-form label{display:block;margin-bottom:.4rem;font-family:Poppins,sans-serif;font-weight:500;font-size:.85em;color:#b0b0b0}.booking-form input{width:100%;padding:.7em .9em;border:1px solid #444;border-radius:8px;box-sizing:border-box;font-size:1em;transition:border-color .2s,box-shadow .2s;background-color:#2c2c2c;color:#e0e0e0;font-family:Poppins,sans-serif}.booking-form input:focus{border-color:#ffd600;outline:none;box-shadow:0 0 0 3px #ffd60080}.booking-form button{width:100%;padding:.8em 1.2em;background-color:#5a5a5a;color:#fff;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s,transform .1s;font-size:1.1em;font-weight:600;margin-top:.5rem;font-family:Poppins,sans-serif}.booking-form button:hover:not(:disabled){background-color:#ffd600;color:#1e1e1e;transform:translateY(-1px)}.booking-form button:disabled{background-color:#333;cursor:not-allowed}.error-message{color:#b71c1c;background-color:#ffcdd2;border:1px solid #ef9a9a;padding:.8rem 1rem;border-radius:8px;margin-bottom:1rem;font-weight:500;font-size:.95em}body{color:#e0e0e0;background-image:url(/assets/bgkarcher-yGA948x6.png);background-size:cover;background-position:center center;background-repeat:no-repeat;background-attachment:fixed;background-color:#101010;min-height:100vh;margin:0;padding:0;font-family:Poppins,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:300;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}html{height:100%;background-color:#101010}.toggle-option{margin-bottom:1.2rem}.toggle-option>div:first-child{margin-bottom:.5rem}.toggle-option>label[for=detergentToggle]{margin-bottom:0;font-weight:600;color:#b0b0b0}.toggle-checkbox{opacity:0;width:0;height:0;position:absolute}.switch-label{position:relative;display:inline-block;width:80px;height:30px;background-color:#333;border-radius:15px;cursor:pointer;transition:background-color .2s ease-in-out;flex-shrink:0}.switch-label:after{content:"";position:absolute;width:24px;height:24px;border-radius:50%;top:3px;left:4px;background-color:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s ease-in-out;z-index:2}.switch-label:before{content:"En";position:absolute;top:50%;transform:translateY(-50%);right:12px;font-size:.85em;font-weight:700;color:#a0a0a0;z-index:1;transition:opacity .1s ease-in-out;opacity:1}.toggle-checkbox:checked+.switch-label{background-color:#ffd600}.toggle-checkbox:checked+.switch-label:after{transform:translate(48px)}.toggle-checkbox:checked+.switch-label:before{content:"Kyllä";right:auto;left:12px;color:#1e1e1e}.toggle-checkbox:focus+.switch-label{outline:none}.days-buttons-container{display:flex;gap:.8rem;margin-top:.5rem}.day-button{padding:.6em 1em;min-width:40px;font-size:.9em;font-weight:600;border:1px solid #444;background-color:#2c2c2c;color:#e0e0e0;border-radius:6px;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s;font-family:Poppins,sans-serif;font-weight:500}.day-button:hover{border-color:#ffd600;background-color:#3c3c3c;color:#fff}.day-button:focus{outline:2px solid #FFD600;outline-offset:1px}.day-button.active,.day-button.active:focus,.day-button.active:hover{background-color:#ffd600;color:#1e1e1e;border-color:#ffd600;font-weight:700;outline:none}.booking-form textarea{width:100%;padding:.8em 1em;border:1px solid #444;border-radius:8px;box-sizing:border-box;font-size:1em;font-family:inherit;transition:border-color .2s,box-shadow .2s;background-color:#2c2c2c;color:#e0e0e0;resize:vertical;font-family:Poppins,sans-serif}.booking-form textarea:focus{border-color:#ffd600;outline:none;box-shadow:0 0 0 3px #ffd60080}.main-title{font-family:Montserrat,sans-serif;font-size:clamp(2.5rem,6vw,4rem);font-weight:800;color:#ffd600;text-transform:uppercase;margin-bottom:.5rem;letter-spacing:1px;line-height:1.1;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.subtitle{font-family:Poppins,sans-serif;font-size:clamp(.5rem,1.5vw,.8rem);font-weight:300;color:#e0e0e0;margin-top:0;margin-bottom:.8rem;line-height:1.4}.instructions{font-family:Montserrat,sans-serif;font-size:clamp(.8rem,2vw,.9rem);font-weight:600;color:#b0b0b0;text-transform:uppercase;letter-spacing:2px;margin-top:.8rem;margin-bottom:0}.info-box{background-color:#1e1e1ed9;padding:1.5rem 2rem;border-radius:10px;margin-bottom:2.5rem;max-width:600px;width:90%;box-shadow:0 2px 8px #0003;text-align:center}.terms-checkbox-container{display:flex;align-items:center;margin-top:1rem;margin-bottom:1.5rem;text-align:left}.terms-checkbox-container input[type=checkbox]{margin-right:.75rem;width:18px;height:18px;cursor:pointer;accent-color:#FFD600}.terms-checkbox-container label{font-size:.9em;color:#b0b0b0;margin-bottom:0;cursor:pointer}.terms-link{color:#ffd600;text-decoration:underline;cursor:pointer}.terms-link:hover{text-decoration:none}@media (max-width: 768px){#root{padding:1rem}.app-container{padding:1.5rem .5rem;gap:1rem;padding-bottom:80px}.calendar-container,.booking-form-container{padding:1rem}.react-calendar__tile{height:40px;font-size:.85em}.booking-form h3{font-size:1.2em}.booking-form label{font-size:.8em}.booking-form input,.booking-form button:not(.day-button),.booking-form textarea{padding:.7em 1em;font-size:.95em}}@media (max-width: 480px){#root{padding:.5rem}.app-container{padding:1rem .25rem;margin:.5rem auto;padding-bottom:100px}.app-container h1{font-size:1.8em}.subtitle,.instructions{font-size:.9em}.calendar-container,.booking-form-container{max-width:100%;padding:.75rem;border-radius:8px}.react-calendar__navigation button{min-width:30px;padding:8px 3px;font-size:1em}.react-calendar__navigation button.react-calendar__navigation__label{font-size:1.1em}.react-calendar__tile{height:35px;font-size:.8em}.react-calendar__month-view__weekdays__weekday abbr{font-size:.8em}.booking-form h3{font-size:1.1em;margin-bottom:.8rem}.booking-form label{font-size:.75em;margin-bottom:.3rem}.booking-form input,.booking-form button:not(.day-button),.booking-form textarea{padding:.6em .8em;font-size:.9em}.booking-form button{font-size:1em}.main-title{font-size:2em}}:root{--modal-overlay-bg: rgba(0, 0, 0, .6);--modal-bg: var(--calendar-bg, #fff);--modal-text-color: var(--form-label-color, #333);--modal-heading-color: var(--heading-color, #1E1E1E);--modal-border-color: var(--calendar-border-color, #eee);--modal-shadow: rgba(0, 0, 0, .15);--modal-link-color: var(--link-color, #007bff)}.terms-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.terms-modal-content{background-color:#1e1e1e;color:#e0e0e0;padding:2rem 2.5rem;border-radius:12px;box-shadow:0 5px 20px #00000040;border:1px solid #333;width:100%;max-width:600px;max-height:75vh;overflow-y:auto;position:relative;animation:fadeInModal .3s ease-out}.terms-modal-content h2{color:#ffd600;font-size:clamp(1.5rem,4vw,1.8rem);margin-top:0;margin-bottom:1rem;text-align:center}.terms-modal-content h3{font-size:clamp(1.2rem,3.5vw,1.5rem);margin-top:1.5rem;margin-bottom:.75rem;color:#ffd600}.terms-modal-content ul{list-style-type:disc;padding-left:20px;margin-bottom:1.5rem}.terms-modal-content li{margin-bottom:.75rem;line-height:1.6;font-size:clamp(.9rem,2vw,1rem)}.terms-modal-content p{line-height:1.6;margin-bottom:1rem;font-size:clamp(.85rem,1.8vw,.95rem);text-align:left}.terms-modal-content p:last-child{margin-bottom:0}.terms-modal-content a{color:#ffd600;text-decoration:underline}.terms-modal-close-btn{position:absolute;top:10px;right:10px;width:28px;height:28px;background-color:transparent;border:none;border-radius:50%;color:#ffd600;cursor:pointer;font-size:1.2rem;font-weight:400;line-height:1;padding:0;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease-in-out,color .2s ease-in-out;z-index:10}.terms-modal-close-btn:hover{color:#ffd600;background-color:#0000002e}@media (max-width: 480px){.terms-modal-overlay{padding:.5rem}.terms-modal-content{padding:1.5rem 1rem 1rem;max-height:90vh;color:#e0e0e0;max-height:80vh}.terms-modal-content h2{font-size:clamp(1.3rem,5vw,1.6rem);margin-bottom:.8rem}.terms-modal-content h3{font-size:clamp(1.1rem,3vw,1.3rem)}.terms-modal-content li,.terms-modal-content p{font-size:clamp(.8rem,2.2vw,.9rem);margin-bottom:.8rem}.terms-modal-close-btn{top:8px;right:8px;width:26px;height:26px;font-size:1.1rem}}.floating-total-container{position:fixed;bottom:30px;right:30px;background-color:#ffd600;color:#1a1a1a;padding:18px 28px;border-radius:12px;box-shadow:0 4px 12px #00000040;z-index:1000;display:flex;align-items:center;gap:.8rem;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;border:1px solid rgba(0,0,0,.1);transition:transform .2s ease-out,box-shadow .2s ease-out}.floating-total-container:hover{transform:scale(1.03);box-shadow:0 6px 16px #0000004d}.total-label{font-size:1em;font-weight:600;opacity:.9}.total-amount{font-size:1.8em;font-weight:700;line-height:1}@keyframes flashEffect{0%{transform:scale(1);filter:brightness(100%);color:#1a1a1a}50%{transform:scale(1.15);filter:brightness(110%);color:#fff}to{transform:scale(1);filter:brightness(100%);color:#1a1a1a}}.total-amount.flash-active{animation:flashEffect .5s ease-in-out}@media (max-width: 480px){.floating-total-container{bottom:15px;right:15px;padding:12px 20px;gap:.6rem;border-radius:10px}.total-label{font-size:.9em}.total-amount{font-size:1.6em}}:root{--info-btn-bg: #bda000;--info-btn-shadow: rgba(0, 0, 0, .3);--info-btn-hover-bg: #2C2C2C}.floating-info-btn{position:fixed;bottom:38px;right:230px;background-color:var(--info-btn-bg);border:none;border-radius:50%;width:50px;height:50px;padding:0;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 10px var(--info-btn-shadow);cursor:pointer;z-index:999;transition:background-color .2s ease-in-out,transform .2s ease-in-out}.floating-info-btn img{width:28px;height:28px}.floating-info-btn:hover{background-color:var(--info-btn-hover-bg);transform:scale(1.05) translateY(-3px)}.floating-info-btn:focus{outline:2px solid #FFD600;outline-offset:2px}@media (max-width: 768px){.floating-info-btn{width:45px;height:45px;bottom:40px;right:190px}.floating-info-btn img{width:24px;height:24px}}@media (max-width: 480px){.floating-info-btn{width:40px;height:40px;bottom:20px;right:175px}.floating-info-btn img{width:22px;height:22px}}.info-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.info-modal-content{background-color:#1e1e1e;color:#b0b0b0;padding:2rem 2.5rem;border-radius:12px;box-shadow:0 5px 20px #00000040;border:1px solid #333;width:100%;max-width:600px;max-height:85vh;overflow-y:auto;position:relative;animation:fadeInModal .3s ease-out}.info-modal-content h2{color:#ffd600;font-size:clamp(1.5rem,4vw,1.8rem);margin-top:0;margin-bottom:1rem;text-align:center}.info-modal-content ul{list-style-type:disc;padding-left:20px;margin-bottom:1.5rem}.info-modal-content li{margin-bottom:.75rem;line-height:1.6;font-size:clamp(.9rem,2vw,1rem)}.info-modal-content p{line-height:1.6;margin-bottom:1rem;font-size:clamp(.9rem,2vw,1rem)}.info-modal-content p:last-child{margin-bottom:0}.info-modal-content a{color:#ffd600;text-decoration:underline}.info-modal-close-btn{position:absolute;top:15px;right:20px;background:none;border:none;font-size:2rem;font-weight:700;color:#ffd600;cursor:pointer;line-height:1;padding:.25rem;transition:color .2s ease-in-out}.info-modal-close-btn:hover{color:#ffd600}@keyframes fadeInModal{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (max-width: 480px){.info-modal-overlay{padding:.5rem}.info-modal-content{padding:1.5rem;max-height:90vh;color:#e0e0e0}.info-modal-content h2{font-size:clamp(1.3rem,5vw,1.6rem);margin-bottom:.8rem}.info-modal-content li,.info-modal-content p{font-size:clamp(.85rem,2.5vw,.95rem);margin-bottom:.6rem}.info-modal-close-btn{top:10px;right:10px;font-size:1.8rem}}.toast-container{position:fixed;bottom:30px;left:30px;z-index:2000;display:flex;flex-direction:column;transform:translate(-110%);transition:transform .4s ease-in-out}.toast-container.visible{transform:translate(0)}.toast-message{display:flex;justify-content:space-between;align-items:center;min-width:280px;max-width:400px;margin-top:10px;padding:16px;border-radius:8px;background-color:#1e1e1e;color:#e0e0e0;box-shadow:0 4px 12px #0000004d;animation:slide-in .4s ease-in-out}.toast-content{display:flex;align-items:center;flex:1}.toast-icon{font-size:1.5rem;margin-right:12px;font-weight:700}.toast-message p{margin:0;font-size:.95rem}.toast-close{background:none;border:none;color:#b0b0b0;font-size:1.5rem;cursor:pointer;margin-left:8px;padding:0;line-height:1;transition:color .2s}.toast-close:hover{color:#ffd600}.toast-message.success{border-left:5px solid #00C853}.toast-message.success .toast-icon{color:#00c853}.toast-message.error{border-left:5px solid #F44336}.toast-message.error .toast-icon{color:#f44336}.toast-message.warning{border-left:5px solid #FFD600}.toast-message.warning .toast-icon{color:#ffd600}.toast-message.info{border-left:5px solid #2196F3}.toast-message.info .toast-icon{color:#2196f3}@keyframes slide-in{0%{transform:translate(-30px);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 480px){.toast-container{bottom:20px;left:50%;transform:translate(-50%) translateY(100%)}.toast-container.visible{transform:translate(-50%) translateY(0)}.toast-message{min-width:240px;max-width:320px;width:calc(100vw - 40px)}@keyframes slide-in{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}}
