:root{--cl-dark: #271916;--cl-logo-bg: #3a2228;--cl-sidebar: #5c52a0;--cl-warm: #ccbca4;--cl-purple: #8878be;--cl-pink: #e8b4c4;--cl-pink-light: #fbf0f3;--cl-teal: #5dd5c0;--cl-offwhite: #f7f3f1;--cl-white: #ffffff;--cl-text: #2c2020;--cl-text-muted: #6b5a55}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:var(--cl-white);color:var(--cl-text)}.app-layout{display:flex;min-height:100vh}.main-content{flex:1;margin-left:240px}@media (max-width: 768px){.app-layout{flex-direction:column}.main-content{margin-left:0;margin-top:60px}}.sidebar{position:fixed;top:0;left:0;width:240px;height:100vh;background-color:var(--cl-warm);color:var(--cl-text);display:flex;flex-direction:column;padding:2rem 1.5rem;z-index:100}.sidebar-brand{display:flex;flex-direction:column;align-items:center;gap:.75rem;cursor:pointer;margin-bottom:2.5rem;-webkit-user-select:none;user-select:none;isolation:isolate}.sidebar-logo-img{max-height:150px;max-width:210px;width:auto;height:auto;object-fit:contain;border-radius:6px}.sidebar .company-name{font-size:1.1rem;font-weight:600;text-align:center;color:var(--cl-sidebar)}.sidebar-links{list-style:none;display:flex;flex-direction:column;gap:.5rem}.sidebar-links li button{color:#000;background:none;border:none;font-size:1rem;cursor:pointer;padding:.6rem .75rem;border-radius:6px;width:100%;text-align:left;transition:background .2s,color .2s}.sidebar-links li button:hover,.sidebar-links li button:focus-visible{background:#5878be1f;color:var(--cl-sidebar);outline:none}.sidebar-links li button.active{background:#5878be26;color:var(--cl-sidebar);font-weight:700;border-left:3px solid var(--cl-sidebar);padding-left:calc(.75rem - 3px)}.topbar{display:none;position:fixed;top:0;left:0;right:0;height:60px;background-color:var(--cl-warm);color:var(--cl-text);align-items:center;justify-content:space-between;padding:0 1.25rem;z-index:100}.topbar-brand{display:flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none;isolation:isolate}.topbar-logo-img{max-height:42px;max-width:110px;width:auto;height:auto;object-fit:contain;border-radius:4px}.topbar .company-name{font-size:1rem;font-weight:600;color:var(--cl-sidebar)}.hamburger{display:flex;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:4px}.hamburger span{display:block;width:24px;height:2px;background-color:var(--cl-text);border-radius:2px}.topbar-dropdown{position:absolute;top:60px;left:0;right:0;background-color:var(--cl-warm);border-top:1px solid rgba(0,0,0,.08)}.topbar-dropdown li button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--cl-text);font-size:1rem;padding:.75rem 1.5rem;cursor:pointer}.topbar-dropdown li button:hover{background-color:#5878be1a;color:var(--cl-sidebar)}.topbar-dropdown li button.active{color:var(--cl-sidebar);font-weight:700}@media (max-width: 768px){.sidebar{display:none}.topbar{display:flex}}.section{padding:5rem 3rem;display:flex;align-items:flex-start;justify-content:center;background-color:var(--cl-white)}.section--hero{min-height:100vh;background-color:var(--cl-purple);align-items:center;justify-content:center}.section--hero h1,.section--hero p{color:#000}.section--alt{background-color:var(--cl-pink-light)}.section-inner{max-width:760px;width:100%;text-align:center}.section-inner h1{font-size:2.75rem;font-weight:700;margin-bottom:1.25rem;color:#000}.section-inner h2{font-size:2rem;font-weight:700;margin-bottom:1.5rem;color:#000}.section-inner p{font-size:1.1rem;line-height:1.7;color:var(--cl-text-muted)}.palvelut-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.25rem;margin-top:.5rem}.palvelu-card{background-color:#fff;border:1px solid #e0d9d0;border-radius:10px;padding:1.25rem;box-shadow:0 2px 6px #0000000a}.palvelu-card h3{font-size:1rem;font-weight:600;margin-bottom:.4rem;color:#1a1a1a}.palvelu-card p{font-size:.9rem;color:#666}.ajanvaraus-placeholder{margin-top:2rem;padding:2rem;border:2px dashed #bbb;border-radius:10px;text-align:center;color:#999;font-size:1rem;background-color:#fdf9f5}@media (max-width: 768px){.section{padding:3rem 1.5rem}.section-inner h1{font-size:2rem}}.etusivu-inner{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:700px}.etusivu-logo-wrap{margin-bottom:2rem}.etusivu-logo{display:block;max-height:280px;max-width:280px;width:auto;height:auto;object-fit:contain}.etusivu-slogan{font-size:2.5rem!important;font-weight:700;color:#000;margin-bottom:1.25rem;line-height:1.2}.etusivu-kuvaus{font-size:1.05rem!important;color:#000!important;line-height:1.75;max-width:520px;margin-bottom:.6rem}.etusivu-huom{background-color:#8878be1a;border-left:4px solid var(--cl-purple);border-radius:0 8px 8px 0;padding:1rem 1.4rem;text-align:center;max-width:520px;width:100%;margin-bottom:0}.etusivu-huom p{font-size:.97rem!important;color:#000!important;line-height:1.7;margin:0}.varaa-nappi{display:inline-block;margin-top:2.25rem;padding:.9rem 2.75rem;background:linear-gradient(135deg,var(--cl-purple),var(--cl-pink));color:#fff;font-size:1.05rem;font-weight:700;border-radius:999px;text-decoration:none;transition:background .2s,color .2s,transform .15s;box-shadow:0 4px 20px #00000040;letter-spacing:.03em}.varaa-nappi:hover{background:var(--cl-teal);color:var(--cl-dark);transform:translateY(-2px)}@media (max-width: 768px){.etusivu-slogan{font-size:1.9rem!important}.etusivu-logo{max-height:180px;max-width:180px}}.palvelut-inner{max-width:860px;text-align:left}.palvelut-heading{font-size:2.25rem;font-weight:700;background:linear-gradient(135deg,var(--cl-purple),var(--cl-pink));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.1;margin-bottom:2.5rem;text-align:center}.palvelut-kortit{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.palvelu-kortti{background:#fff;border-radius:14px;padding:1.75rem 1.75rem 1.5rem;border-top:4px solid transparent;background-clip:padding-box;box-shadow:0 2px 12px #8878be1a;position:relative;transition:transform .2s,box-shadow .2s;overflow:hidden}.palvelu-kortti:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:14px;padding:4px 0 0;background:linear-gradient(135deg,var(--cl-purple),var(--cl-pink)) border-box;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:destination-out;mask-composite:exclude;pointer-events:none}.palvelu-kortti:hover{transform:translateY(-3px);box-shadow:0 6px 24px #8878be2e}.palvelu-nimi{font-size:1.25rem;font-weight:700;color:var(--cl-dark);margin-bottom:.6rem;line-height:1.2}.palvelu-kuvaus{font-size:.95rem!important;color:var(--cl-text-muted)!important;line-height:1.8}@media (max-width: 640px){.palvelut-heading{font-size:1.85rem;margin-bottom:1.75rem}.palvelut-kortit{grid-template-columns:1fr}.palvelu-nimi{font-size:1.1rem}}.hinnasto-tabs{display:flex;gap:.5rem;margin-bottom:2rem;flex-wrap:wrap;justify-content:center}.hinnasto-tab{background:none;border:2px solid var(--cl-purple);color:var(--cl-dark);font-size:.95rem;font-weight:600;padding:.5rem 1.25rem;border-radius:999px;cursor:pointer;transition:background .2s,color .2s}.hinnasto-tab:hover{background-color:#8878be1f}.hinnasto-tab--aktiivi{background-color:var(--cl-purple);border-color:var(--cl-purple);color:#fff}.hinnasto-osio{margin-bottom:2.25rem}.hinnasto-osio-otsikko{font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--cl-dark);margin-bottom:.75rem;padding-bottom:.4rem;border-bottom:2px solid var(--cl-pink)}.hinnasto-rivi{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.4rem 0;border-bottom:1px dotted #e8e0d8}.hinnasto-nimi{font-size:.95rem;color:#333;flex:1;text-align:left}.hinnasto-hinta{font-size:.95rem;font-weight:600;color:#1a1a1a;white-space:nowrap}.hinnasto-alaryhmä{margin-bottom:1rem}.hinnasto-alaotsikko{font-size:.88rem;font-weight:600;color:var(--cl-purple);margin-bottom:.35rem;margin-top:.75rem;text-transform:uppercase;letter-spacing:.04em}.hinnasto-huomio{font-size:.85rem;color:#777;margin:.35rem 0 .5rem;font-style:italic;text-align:left}.hinnasto-huomio--bold{color:var(--cl-purple);font-style:normal;font-weight:500}.hinnasto-huomiot-lista{margin-top:.75rem;display:flex;flex-direction:column;gap:.3rem}.hinnasto-sisalto{width:100%;max-width:640px;margin:0 auto}.ajanvaraus-peruutus{background-color:#fff5f7;border-left:4px solid #c0607a;border-radius:0 8px 8px 0;padding:1.1rem 1.5rem;margin-bottom:2rem;text-align:left;max-width:600px;margin-left:auto;margin-right:auto}.ajanvaraus-peruutus p{font-size:.97rem!important;color:#4a3a3a!important;line-height:1.7}.ajanvaraus-peruutus p+p{margin-top:.5rem}.ajanvaraus-info{margin-bottom:1rem}.yhteystiedot-content{display:flex;flex-direction:column;align-items:center;gap:1.75rem;width:100%}.yht-top{display:flex;flex-wrap:wrap;gap:2.5rem;width:100%;max-width:900px;justify-content:flex-start}.osoite-block{display:flex;flex-direction:column;gap:.5rem}.osoite-block p{font-size:1.05rem;color:#444;line-height:1.6}.osoite-nimi{font-weight:600;font-size:1.15rem!important;color:#1a1a1a!important;margin-bottom:.25rem}.yhteystiedot-rivi{display:flex;gap:.75rem;font-size:1rem;color:#444;line-height:1.6}.yhteystiedot-label{font-weight:600;color:#1a1a1a;min-width:90px}.yhteystiedot-tyhja{color:#aaa}.yht-linkki{color:var(--cl-purple);text-decoration:none}.yht-linkki:hover{color:var(--cl-teal);text-decoration:underline}.aukiolo-block{display:flex;flex-direction:column;gap:.5rem;align-items:center;text-align:center}.aukiolo-ajat{display:flex;flex-direction:column;gap:.2rem;align-items:center}.aukiolo-rivi{display:flex;gap:.75rem;font-size:1rem;color:#444;line-height:1.6}.aukiolo-paiva{font-weight:600;color:#1a1a1a;min-width:55px}.aukiolo-otsikko{font-weight:600;font-size:1.15rem!important;color:#1a1a1a!important;margin-bottom:.25rem}.aukiolo-huom{margin-top:.5rem;font-size:.95rem;color:var(--cl-text-muted);background-color:#5dd5c01f;border-left:3px solid var(--cl-teal);border-radius:0 6px 6px 0;padding:.5rem .9rem;max-width:320px}.aukiolo-poikkeus{font-size:.93rem!important;color:var(--cl-text-muted)!important;margin-top:.5rem}.aukiolo-linkki{color:var(--cl-purple);text-decoration:underline;text-underline-offset:2px}.aukiolo-linkki:hover{color:var(--cl-teal)}.kartta-wrapper{width:100%;max-width:900px;border-radius:12px;overflow:hidden;box-shadow:0 4px 16px #0000001a}.kartta-iframe{display:block;width:100%;height:400px}@media (min-width: 1200px){.kartta-iframe{height:560px}}@media (max-width: 768px){.kartta-iframe{height:300px}}.footer{background-color:var(--cl-purple);color:#ffffffb3;padding:2rem 3rem}.footer-inner{max-width:900px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem}.footer-copy{font-size:1rem;font-weight:400;color:#ffffffd9}.footer-bottom{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem .55rem;font-size:1rem}.footer-credits-label{color:#fff9}.footer-sep{color:#ffffff4d}.footer-link{color:#ffffffbf;text-decoration:underline}.footer-link:hover{color:#fff;text-decoration:underline}.footer-dev-link{color:#ffffffd9;text-decoration:none;display:inline-flex;align-items:center;gap:.3rem}.footer-dev-link strong{font-weight:700}.footer-dev-link:hover{color:#fff}.linkedin-logo{width:15px;height:15px;fill:#ffffffbf;vertical-align:middle;transition:fill .2s}.footer-dev-link:hover .linkedin-logo{fill:#fff}@media (max-width: 600px){.footer{padding:1.75rem 1.5rem}}@media (max-width: 768px){.footer{padding:2rem 1.5rem}}.ts-page{min-height:100vh;background-color:var(--cl-white);padding:2rem 2rem 4rem;display:flex;flex-direction:column;align-items:center}.ts-back{display:inline-flex;align-items:center;gap:.4rem;background:none;border:none;cursor:pointer;font-size:1rem;font-weight:600;color:var(--cl-purple);padding:.5rem 0;margin-bottom:2rem;transition:color .2s;width:100%;max-width:760px}.ts-back:hover{color:var(--cl-teal)}.ts-back svg{width:20px;height:20px;fill:currentColor;flex-shrink:0}.ts-content{max-width:760px;margin:0 auto}.ts-content h1{font-size:1.75rem;font-weight:700;background:linear-gradient(135deg,var(--cl-purple),var(--cl-pink));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:2rem;line-height:1.3}.ts-content h2{font-size:1.2rem;font-weight:700;color:var(--cl-dark);margin-top:2rem;margin-bottom:.6rem}.ts-content h3{font-size:1rem;font-weight:600;color:var(--cl-text);margin-top:1.2rem;margin-bottom:.4rem}.ts-content p,.ts-content li{font-size:.97rem;color:var(--cl-text-muted);line-height:1.8}.ts-content ul{padding-left:1.4rem;margin:.5rem 0}.ts-content ul li{margin-bottom:.3rem}
