:root{color-scheme:dark;--background:#0C0C0E;--primary:#161619;--white:#FFFFFF;--text:#E4E4E7;--text-muted:#A1A1AA;--accent:#b3672a;--accent-hover:#f7842b;--cta:#aa6228;--border:rgba(255,255,255,0.08);--radius:12px;--font-heading:'Inter',system-ui,sans-serif;--font-body:'Roboto',system-ui,sans-serif;--font-mono:'JetBrains Mono',monospace;--h1-size:clamp(1.5rem,5.22vw,4.5rem);--h2-size:clamp(1.25rem,4.68vw,3.8rem);--h3-size:clamp(1.15rem,3.6vw,1.9rem)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--background);color:var(--text);font-family:var(--font-body);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-heading);color:var(--white);font-weight:700}h1{font-size:var(--h1-size)}h2{font-size:var(--h2-size)}h3{font-size:var(--h3-size)}.accent-text{color:var(--cta)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:absolute;top:0;left:0;z-index:1100;padding:12px 20px;background:var(--primary);color:var(--white);font-weight:600;text-decoration:none;border:1px solid var(--border);border-radius:0 0 var(--radius) 0;transform:translateY(-120%);transition:transform 150ms ease}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:3px solid var(--accent-hover);outline-offset:3px;border-radius:4px}@media (prefers-reduced-motion:reduce){*{animation-duration:0.01ms !important;transition-duration:0.01ms !important}}.container{max-width:1240px;margin:0 auto;padding:0 20px}@media (max-width:600px){.container{padding:0 16px}}header{position:sticky;top:0;z-index:1000;backdrop-filter:blur(10px) saturate(180%);background:rgba(12,12,14,0.85);border-bottom:1px solid var(--border);padding:1rem 0}nav{display:flex;justify-content:space-between;align-items:center}.logo{display:flex;align-items:center;text-decoration:none}.nav-logo-img{height:94px;width:auto;border-radius:4px;display:block;transition:transform 0.2s ease}.logo:hover .nav-logo-img{transform:scale(1.02)}.nav-links{display:flex;gap:2rem;align-items:center}.nav-links a{color:var(--white);text-decoration:none;font-size:1.35rem;font-weight:500;transition:color 0.2s}.nav-links a:not(.btn):hover{color:var(--accent)}.btn{background:var(--cta);color:var(--white);padding:16px 32px;font-size:1.35rem;border-radius:var(--radius);text-decoration:none;font-weight:600;display:inline-block;border:none;cursor:pointer;transition:transform 200ms cubic-bezier(0.4,0,0.2,1),box-shadow 200ms ease;text-align:center}.btn:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(0,0,0,0.3)}.btn:active{transform:translateY(-1px)}.hero-palvelut-wrapper{background-image:url('/images/hero-bg.webp');background-size:cover;background-position:center;background-attachment:fixed;position:relative}.hero{min-height:85vh;padding:0;background:transparent;display:flex;align-items:stretch;position:relative;overflow:hidden}.hero-left-overlay{background:rgba(12,12,14,0.88);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);clip-path:polygon(0 0,100% 0,85% 100%,0 100%);width:60%;display:flex;align-items:center;padding:120px 8% 120px 10%;position:relative}@media (max-width:900px){:root{--h1-size:clamp(1.95rem,9.2vw,5.32rem)}.hero{min-height:0}.hero-left-overlay{width:100%;clip-path:none;padding:56px 5% 64px;min-height:0}}.hero-content{max-width:min(780px,100%);color:var(--white);text-align:left}.hero-content h1{color:var(--white);margin-bottom:24px;line-height:1.1}.hero-content p{font-size:1.625rem;max-width:550px;margin-bottom:40px;color:#cbd5e1}.bento-card{background:var(--primary);border-radius:var(--radius);padding:32px;border:1px solid var(--border);display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;transition:box-shadow 300ms ease;background-size:cover;background-position:center}.bento-card:hover{box-shadow:0 20px 40px rgba(0,0,0,0.5)}.bento-card h3{margin-bottom:8px}.stats-bar-continuity{background:linear-gradient(rgba(12,12,14,0.92),rgba(12,12,14,0.92)),url('/images/hero-bg.jpg');background-size:cover;background-position:center;background-attachment:fixed}.contact-section{background:linear-gradient(rgba(0,0,0,0),rgba(0,0,0,0)),url('/images/hero-bg.jpg');background-size:cover;background-position:center bottom;background-attachment:fixed;padding:100px 0;color:var(--white)}@media (max-width:900px){.hero-palvelut-wrapper,.stats-bar-continuity,.contact-section{background-attachment:scroll;background-size:cover}}.contact-split-container{max-width:1320px;margin:0 auto;background:var(--primary);padding:60px 80px;border-radius:24px;box-shadow:0 40px 100px rgba(0,0,0,0.5);border:1px solid var(--border);display:flex;flex-direction:column;gap:40px;align-items:flex-start}.contact-info-col{display:flex;flex-direction:column;width:100%;min-width:0}.contact-info-col h2{font-size:clamp(2rem,3.06vw,3.06rem);color:white;margin-bottom:20px;line-height:1.2;white-space:nowrap}.nowrap-word{display:inline-block;white-space:nowrap}.contact-subtext{font-size:1.625rem;color:#cbd5e1;margin-bottom:40px;line-height:1.6}.contact-location-box{margin-top:10px}.location-item{display:flex;align-items:center;gap:16px}.location-icon{color:var(--accent);width:32px;height:32px;flex-shrink:0}.location-details h3{font-size:1.521rem;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:2px;color:var(--accent);margin-bottom:4px}.location-details p{font-size:1.625rem;color:white;font-weight:500}.contact-buttons-row{display:flex;gap:20px;margin-bottom:30px;flex-wrap:wrap}.contact-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:20px 30px;border-radius:12px;font-size:1.1rem;font-weight:600;text-decoration:none;transition:all 0.3s ease;cursor:pointer;box-shadow:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);overflow-wrap:anywhere;text-align:center}.contact-action-btn.phone-btn{background:var(--cta);color:white}.contact-action-btn.phone-btn:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(0,0,0,0.3)}.contact-action-btn.email-btn{background:rgba(255,255,255,0.08);color:white;border:1px solid rgba(255,255,255,0.15);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.contact-action-btn.email-btn:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(0,0,0,0.3)}.palvelut-overview{padding:80px 0;background:transparent}.palvelut-overview .container{max-width:1560px;background:transparent;border:none;box-shadow:none;padding:0 24px}.service-box{background:rgba(22,22,25,0.85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:24px;padding:75px 60px;border:1px solid var(--border);box-shadow:0 20px 40px rgba(0,0,0,0.4);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center;min-height:550px}.service-box-content{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.service-box h2{white-space:nowrap;font-size:clamp(1.8rem,2.88vw,3.42rem);margin-bottom:20px;color:var(--white)}.service-box h3{margin-bottom:20px;color:var(--white);hyphens:auto;overflow-wrap:break-word}.service-box p{font-size:1.625rem;color:var(--text);opacity:0.9;margin-bottom:28px}.service-box-media{width:100%;height:100%;min-height:480px;max-height:630px;border-radius:16px;overflow:hidden;border:1px solid var(--border);box-shadow:0 10px 30px rgba(0,0,0,0.3)}.service-card-img{width:100%;height:100%;object-fit:cover;display:block;border-radius:16px}.referenssit-section{padding:90px 0;background:var(--background)}.referenssit-section .container{max-width:1400px}.referenssit-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:40px}.referenssit-title-group h2{font-size:var(--h2-size);color:var(--white);margin-bottom:8px}.referenssit-subtext{font-size:1.625rem;color:#cbd5e1;font-weight:400}.referenssit-controls{display:flex;gap:16px}.ref-arrow-btn{width:56px;height:56px;border-radius:50%;background:var(--primary);border:1px solid var(--border);color:var(--white);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform 200ms cubic-bezier(0.4,0,0.2,1),box-shadow 200ms ease,border-color 200ms ease;box-shadow:0 4px 12px rgba(0,0,0,0.3)}.ref-arrow-btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 20px rgba(0,0,0,0.4)}.ref-arrow-btn:active{transform:translateY(0)}.referenssit-carousel-wrapper{overflow:hidden;width:100%;border-radius:20px}.referenssit-track{display:flex;gap:24px;transition:transform 0.4s cubic-bezier(0.4,0,0.2,1);will-change:transform}.ref-card{flex:0 0 calc((100% - 48px) / 3);min-width:0;border-radius:16px;overflow:hidden;background:var(--primary);border:1px solid var(--border);box-shadow:0 10px 25px rgba(0,0,0,0.3);aspect-ratio:4 / 3;min-height:370px}.ref-card img{width:100%;height:100%;object-fit:cover;display:block}.animate-in{animation:fadeUp 600ms ease-out forwards;opacity:1;transform:translateY(0)}@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.nav-toggle{display:none;background:none;border:none;color:white;cursor:pointer;z-index:1001;width:44px;height:44px;align-items:center;justify-content:center;padding:0}.nav-toggle .icon-close,.nav-toggle[aria-expanded="true"] .icon-open{display:none}.nav-toggle[aria-expanded="true"] .icon-close{display:inline}@media (max-width:900px){.nav-links{position:fixed;top:0;left:0;width:100%;height:100vh;background:rgba(12,12,14,0.98);backdrop-filter:blur(15px);flex-direction:column;justify-content:center;gap:3rem;z-index:1000;transform:translateX(100%);visibility:hidden;transition:transform 0.4s cubic-bezier(0.4,0,0.2,1),visibility 0.4s;display:flex}.nav-links.active{transform:translateX(0);visibility:visible}.nav-links a{font-size:2.25rem;display:flex;align-items:center;justify-content:center;min-height:44px}.nav-toggle{display:flex}.nav-logo-img{height:64px}}@media (max-height:500px) and (max-width:900px){header{padding:0.4rem 0}.nav-logo-img{height:44px}.hero,.hero-left-overlay{min-height:0}.hero-left-overlay{padding:40px 5%}.hero-content p{margin-bottom:24px}.palvelut-overview,.contact-section{padding:48px 0}.meista-section{padding:56px 0}.nav-links{gap:1.25rem}.nav-links a{font-size:1.5rem}}.meista-section{padding:120px 0;background:var(--background)}.meista-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:center}.meista-text{text-align:left}.meista-text h2{font-size:clamp(2.25rem,8.1vw,4.56rem);color:var(--white);margin-bottom:32px}.meista-text p{font-size:1.625rem;color:var(--text);margin-bottom:24px;max-width:600px;margin-left:0;margin-right:0}.meista-image-box{position:relative;display:flex;flex-direction:column;align-items:center;width:100%}.meista-photo-card{width:100%;height:100%;min-height:480px;max-height:630px;padding:0;border-radius:16px;overflow:hidden;border:1px solid var(--border);box-shadow:0 10px 30px rgba(0,0,0,0.3);background:var(--primary)}.meista-portrait-img{width:100%;height:100%;object-fit:cover;object-position:center 20%;display:block;border-radius:16px}.meista-photo-caption{margin-top:16px;font-size:calc(1.25rem + 8px);font-weight:600;color:var(--white);text-align:center;letter-spacing:0.5px}footer{background:var(--background);padding:80px 0 40px 0;text-align:left}footer .container{max-width:1364px}.footer-taped-container{background:var(--primary);border:1px solid var(--border);border-radius:40px;padding:60px 70px;position:relative;box-shadow:0 20px 50px rgba(0,0,0,0.4)}.tape-corner{position:absolute;z-index:2}.tape-top-left{top:-20px;left:-20px;transform:rotate(-5deg)}.tape-top-right{top:-15px;right:-30px;transform:rotate(10deg)}.footer-content{display:grid;grid-template-columns:480px minmax(0,1fr);gap:50px;margin-bottom:80px}.footer-logo-img{height:94px;width:auto;border-radius:4px;margin-bottom:24px;display:block}.footer-brand p{font-size:1.625rem;color:var(--text-muted);max-width:520px}.footer-links-grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:48px;min-width:0}.footer-column{min-width:0}.footer-column a,.footer-column p{overflow-wrap:break-word}.footer-column a > span,.footer-column p > span{min-width:0}.footer-column h3{font-size:1.352rem;color:var(--accent);text-transform:uppercase;letter-spacing:2px;margin-bottom:24px;white-space:nowrap}.contact-location-box{display:flex;flex-direction:column;gap:20px}.footer-column a,.footer-column p{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:500;margin-bottom:12px;font-size:1.235rem;transition:color 0.2s;white-space:nowrap}.footer-column a{display:flex;min-height:44px;padding:7px 0;margin-bottom:2px}.footer-column .contact-icon{color:var(--accent);flex-shrink:0;width:20px;height:20px}.footer-column a:hover{color:var(--accent)}.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:40px;border-top:1px solid var(--border);color:var(--text-muted);font-size:1.17rem}.designer-link{color:var(--text-muted);text-decoration:none;font-weight:500;transition:color 0.2s;display:inline-block;padding:10px 0;min-height:44px}.designer-link:hover{color:var(--accent)}.tape-corner path{fill:var(--accent) !important}@media (max-width:1400px){.tape-corner{display:none}}@media (max-width:1200px){.contact-info-col h2{white-space:normal}}@media (max-width:1000px){.meista-grid{grid-template-columns:minmax(0,1fr);gap:40px}.footer-content{grid-template-columns:minmax(0,1fr);gap:40px}.footer-taped-container{padding:40px 24px;border-radius:20px;max-width:100%;box-sizing:border-box;overflow:hidden}}@media (max-width:900px){.hero-content p{font-size:clamp(1.1rem,4.2vw,1.35rem);margin-bottom:28px}.referenssit-section{padding:60px 0}.ref-card{flex:0 0 calc((100% - 24px) / 2);min-height:auto;aspect-ratio:4 / 3}.service-box{grid-template-columns:minmax(0,1fr);padding:40px 28px;border-radius:20px;min-height:auto}.service-box h2{white-space:nowrap;font-size:clamp(1.2rem,5.2vw,2.2rem)}.service-box h3{white-space:normal;overflow-wrap:break-word;hyphens:auto}.service-box p{font-size:clamp(0.95rem,3.6vw,1.1rem);margin-bottom:22px}.service-box-media{transform:none;width:100%}.service-box-media,.meista-photo-card{min-height:280px;max-height:380px}.contact-split-container{padding:40px 24px;gap:30px;max-width:100%;box-sizing:border-box}.contact-info-col h2{font-size:clamp(1.54rem,6.05vw,2.42rem);white-space:normal;overflow-wrap:break-word;hyphens:auto;line-height:1.25}.contact-subtext{font-size:clamp(1.05rem,3.8vw,1.25rem);margin-bottom:28px}.footer-links-grid{grid-template-columns:minmax(0,1fr);gap:32px}.footer-column h3{margin-bottom:12px}.footer-column a,.footer-column p{white-space:normal;overflow-wrap:anywhere;word-break:break-word;align-items:flex-start}}@media (max-width:600px){.referenssit-section{padding:48px 0}.referenssit-header{flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:28px}.referenssit-controls{align-self:flex-start}.referenssit-subtext{font-size:clamp(1.05rem,3.8vw,1.25rem)}.meista-text p{font-size:clamp(1.1rem,4vw,1.3rem)}.meista-photo-caption{font-size:clamp(1.1rem,4.5vw,1.4rem);white-space:nowrap}.referenssit-track{gap:0}.ref-card{flex:0 0 100%;width:100%;min-height:auto;aspect-ratio:4 / 3}.ref-arrow-btn{width:48px;height:48px}.service-box{padding:32px 20px;border-radius:16px}.service-box h2{white-space:nowrap;font-size:clamp(1.15rem,5.5vw,1.8rem)}.bento-card{padding:24px}.contact-split-container{padding:30px 20px}.contact-action-btn{padding:14px 16px;font-size:clamp(0.8rem,3.5vw,0.95rem);white-space:normal;overflow-wrap:anywhere;word-break:break-word;max-width:100%;box-sizing:border-box}.contact-action-btn.email-btn{font-size:clamp(0.72rem,3.2vw,0.9rem)}.footer-taped-container{padding:32px 18px}.footer-bottom{flex-direction:column;text-align:center;gap:24px}.footer-column a,.footer-column p{font-size:clamp(0.95rem,3.6vw,1.15rem);white-space:normal;overflow-wrap:anywhere;word-break:break-word}}@media (max-width:500px){.contact-info-col h2{font-size:clamp(1.3rem,5.5vw,1.75rem);white-space:normal;overflow-wrap:break-word;hyphens:auto}.contact-buttons-row{flex-direction:column;width:100%;gap:12px}.contact-action-btn{width:100%;justify-content:center;padding:14px 14px;font-size:clamp(0.75rem,3.2vw,0.9rem);white-space:normal;overflow-wrap:anywhere;word-break:break-word}.contact-action-btn.email-btn{font-size:clamp(0.7rem,3vw,0.85rem)}}