@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');

:root{--ink:#17385c;--forest:#245c98;--forest-deep:#153b6a;--paper:#f4f7fb;--sage:#cddff0;--sand:#e0eaf5;--line:#adc4dd}
body{font-family:'Poppins',Arial,sans-serif;font-size:1.08rem;font-weight:500;color:var(--ink);line-height:1.85}
h1,h2,h3,h4,.intro-serif,.review blockquote{font-family:'Poppins',Arial,sans-serif;font-weight:600;color:var(--forest-deep);letter-spacing:-.035em;line-height:1.25}
h2{font-size:clamp(2rem,3.2vw,3.2rem)}
p{color:inherit}
.hero-copy>*{min-width:0;max-width:100%}
.photo-hero .hero-copy h1{width:100%;overflow-wrap:anywhere}
.specialist-card-copy{overflow-wrap:anywhere}
.eyebrow{font-weight:600;color:var(--forest-deep)}
.button{background:var(--forest-deep);border:2px solid var(--forest-deep);color:#fff;font-family:inherit;font-size:1rem;font-weight:600;padding:1rem 1.6rem;box-shadow:0 6px 16px #153b6a20;transition:background .2s,transform .2s,box-shadow .2s}
.button:hover{background:#2765a3;border-color:#2765a3;color:#fff;transform:translateY(-2px);box-shadow:0 9px 24px #153b6a30}
.header-book{font-size:.88rem;padding:.8rem 1.1rem;white-space:nowrap}
.site-header nav a{font-weight:600}
.text-link{font-family:inherit;font-weight:600;color:var(--forest-deep);font-size:.9rem}
.photo-hero{align-items:center;min-height:640px}
.photo-hero .hero-copy{padding-top:5rem;padding-bottom:max(5rem,calc(var(--hero-wave-height) + 3rem));text-align:center;display:flex;flex-direction:column;align-items:center}
.photo-hero .hero-copy h1{font-size:clamp(2.8rem,5.8vw,5.5rem);font-weight:700;max-width:20ch;color:#fff;text-shadow:0 3px 20px #10294566}
.photo-hero .hero-intro{font-size:clamp(1.1rem,1.7vw,1.55rem);font-weight:600;max-width:42ch;color:#fff;text-shadow:0 2px 12px #10294577}
.photo-hero .eyebrow{color:#fff;font-size:.8rem}
.photo-hero .hero-shade{background:linear-gradient(90deg,#112c4c77,#112c4c33,#112c4c66)}
.photo-hero .hero-image{filter:brightness(1.1) saturate(1.03)}
.hero-actions{justify-content:center;gap:1.5rem;margin-top:1.8rem}
.photo-hero .button{background:#153b6a;color:#fff;border-color:#fff;min-height:64px;font-size:1.12rem;padding:1.1rem 2rem}
.photo-hero .button:hover{background:#2765a3}
.hero-scroll{font-weight:600;color:#fff;text-shadow:0 2px 10px #102945}
.home-hero{min-height:calc(100svh - 100px)}
.home-hero .hero-copy h1{max-width:15ch}
.home-hero .hero-shade{background:linear-gradient(90deg,#f2f7fcc9,#e5eef79c 48%,#dce8f433)}
.home-hero .hero-copy h1,.home-hero .hero-intro,.home-hero .eyebrow,.home-hero .hero-scroll{color:#123561;text-shadow:none}
.hero-drive-linda-pysty{background:#d8e4ec}
.hero-drive-linda-pysty .hero-image{width:55%;left:auto;right:0;object-position:center 24%}
.hero-drive-linda-pysty .hero-shade{background:linear-gradient(90deg,#d8e4ec 40%,#d8e4ec00 65%)}
.hero-drive-linda-pysty .hero-copy{min-height:650px;justify-content:center;padding-top:5rem;padding-right:45%}
.hero-drive-linda-pysty .hero-copy h1,.hero-drive-linda-pysty .hero-intro,.hero-drive-linda-pysty .eyebrow{color:#123561;text-shadow:none}
.hero-drive-linda-pysty .hero-copy h1{font-size:clamp(3.4rem,7vw,6rem)}
.service-list{border-top:2px solid var(--line)}
.service-row{padding:1.5rem .3rem;gap:1rem}
.service-row h3{font-weight:600;font-size:clamp(1.05rem,1.4vw,1.5rem)}
.service-row p{font-size:1rem;color:var(--ink)}
.service-row>.service-read{display:inline-flex;align-items:center;gap:.65rem;background:var(--forest-deep);color:#fff;border-radius:4px;padding:.8rem 1rem;font-size:.78rem;font-weight:600;white-space:nowrap;transition:background .2s}
.service-row:hover>.service-read{background:#2765a3}
.service-row:focus-visible,.button:focus-visible{outline:3px solid #3883d0;outline-offset:5px}
.specialist-duo{background:#dce8f5;border-block:1px solid #adc4dd;padding-block:3rem}
.specialist-card{grid-template-columns:144px 1fr}
.specialist-card-photo{height:160px}
.specialist-intro{font-size:1rem}
.specialist-role,.specialist-card-copy .specialist-role{color:var(--forest-deep);font-size:.86rem}
.team-section{background:#bfd5eb}
.team-section:before,.contact-band:before{left:0;width:100%}
.related .service-row{flex-wrap:wrap;min-width:0}
.related .service-row>div{flex-basis:calc(100% - 80px)}
.related .service-row>.service-read{margin-left:72px}
.person{border:1px solid #aac3dc;border-radius:6px;overflow:hidden;box-shadow:0 8px 25px #153b6a0c}
.portrait{height:350px}
.full-team .portrait{height:420px}
.person h3{font-size:1.55rem}
.person-role{font-size:.83rem;color:var(--forest-deep)}
.person-languages,.full-team .person-languages{font-size:.8rem;color:#34516f}
.person summary,.biography{font-size:1rem}
.feedback{padding-block:5rem}
.reviews-carousel{border:2px solid var(--forest);border-radius:12px;background:#dfebf7;padding:clamp(1.3rem,4vw,3rem);box-shadow:0 12px 36px #153b6a12}
.review{border:0}
.review blockquote{font-size:clamp(1.15rem,2vw,1.65rem);font-weight:500;line-height:1.7}
.review figcaption{font-family:inherit;font-size:.9rem;font-weight:600}
.carousel-progress{height:5px;background:#aac4df}
.carousel-controls button{background:var(--forest-deep);color:#fff;border-color:var(--forest-deep);width:48px;height:48px}
.contact-band{background:#24578d;color:#fff;padding-block:4rem}
.contact-band h2,.contact-band a{color:#fff}
.contact-band .button{border-color:#fff}
.intro-serif{font-size:clamp(1.4rem,2.2vw,2rem);line-height:1.5}
.contact-grid{font-size:1.12rem}
.contact-grid .button{font-size:1.1rem;min-height:60px}
.service-aside .button{font-size:.9rem}
.site-footer{background:#12345c}
@media(max-width:1100px){.header-book{font-size:.75rem;padding:.75rem}.site-header nav{gap:.8rem}.service-row{flex-wrap:wrap}.service-row>.service-read{margin-left:72px}.service-row>div{flex-basis:calc(100% - 80px)}.portrait{height:350px}.full-team .portrait{height:380px}}
@media(max-width:850px){.photo-hero{min-height:580px}.home-hero{min-height:calc(100svh - 94px)}.home-services{grid-template-columns:1fr}.service-row{flex-wrap:nowrap}.service-row>div{flex-basis:auto}.service-row>.service-read{margin-left:0}.hero-drive-linda-pysty .hero-image{object-position:center 20%}.hero-drive-linda-pysty .hero-copy{min-height:620px;padding-top:20rem}.full-team .portrait{height:360px}}
@media(max-width:600px){body{font-size:1rem}.site-header{gap:.3rem}.header-book{font-size:.68rem;padding:.6rem .5rem}.header-tools{gap:.3rem}.photo-hero{min-height:540px}.photo-hero .hero-copy{padding-top:3rem;padding-bottom:calc(var(--hero-wave-height) + 3rem)}.photo-hero .hero-copy h1{font-size:clamp(2.3rem,9vw,3.4rem)}.home-hero{min-height:calc(100svh - 100px)}.home-hero .hero-copy h1{font-size:clamp(2.4rem,10vw,3.5rem)}.photo-hero .hero-intro{font-size:1.08rem}.photo-hero .button{font-size:1rem;min-height:58px;padding:.9rem 1.5rem}.hero-actions{gap:1.2rem}.hero-drive-linda-pysty .hero-image{object-position:center 22%}.hero-drive-linda-pysty .hero-copy{min-height:580px;padding-top:20rem}.service-row{display:grid;grid-template-columns:48px minmax(0,1fr);gap:.8rem 1rem}.service-icon{width:48px;height:48px}.service-row>.service-read{grid-column:2;justify-self:start}.service-row h3{font-size:1.15rem}.portrait,.full-team .portrait{height:380px}.specialist-card{grid-template-columns:100px 1fr;gap:1rem}.specialist-card-photo{height:112px}.feedback{padding-block:3.5rem}.review{margin-inline:0}.contact-grid{font-size:1.05rem}}
@media(min-width:601px){.hero-drive-linda-pysty .hero-copy{padding-top:5rem;min-height:650px}}
@media(max-width:600px){.hero-drive-linda-pysty .hero-image{width:100%;object-position:center 22%}.hero-drive-linda-pysty .hero-shade{background:linear-gradient(0deg,#153b6ac9,transparent 78%)}.hero-drive-linda-pysty .hero-copy{padding-right:0;justify-content:flex-end}.hero-drive-linda-pysty .hero-copy h1,.hero-drive-linda-pysty .hero-intro,.hero-drive-linda-pysty .eyebrow{color:#fff;text-shadow:0 2px 12px #10294566}.related .service-row>.service-read{margin-left:0}}
@media(prefers-reduced-motion:reduce){.button,.service-read{transition:none}.button:hover{transform:none}}

:root{--section-wave:clamp(28px,4vw,58px);--wave-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3E%3Cpath fill='black' d='M0 35C240 60 420 5 720 18S1200 60 1440 25V60H0Z'/%3E%3C/svg%3E")}
.specialist-duo,.team-section,.contact-band,footer{position:relative;border-block:0}
.specialist-duo::before,.team-section::before,.contact-band::before,footer::before{content:'';position:absolute;left:0;top:calc(1px - var(--section-wave));width:100%;height:var(--section-wave);border-radius:0;background:inherit;mask:var(--wave-mask) center / 100% 100% no-repeat;pointer-events:none}
.team-section:has(+.feedback)::after{content:'';position:absolute;left:0;bottom:calc(1px - var(--section-wave));width:100%;height:var(--section-wave);background:inherit;mask:var(--wave-mask) center / 100% 100% no-repeat;transform:scaleY(-1);pointer-events:none}
.portrait:not(.placeholder-portrait),.full-team .portrait:not(.placeholder-portrait){position:relative;height:auto;aspect-ratio:1;max-width:390px;width:calc(100% - 2.5rem);margin:1.5rem auto .25rem;padding:0;overflow:hidden}
.portrait:not(.placeholder-portrait) img{position:absolute;left:50%;top:50%;width:108%;height:auto;max-width:none;transform:translate(-50%,-50%)}
.specialist-card{grid-template-columns:176px minmax(0,1fr)}
.specialist-card-photo{position:relative;height:176px;overflow:hidden}
.specialist-card-photo img{position:absolute;left:50%;top:50%;width:108%;height:auto;max-width:none;transform:translate(-50%,-50%)}
@media(max-width:700px){.specialist-card{grid-template-columns:120px minmax(0,1fr)}.specialist-card-photo{height:120px}}
@media(max-width:360px){.specialist-card{grid-template-columns:104px minmax(0,1fr)}.specialist-card-photo{height:104px}}
.photo-hero .hero-image[src$="hero-etusivu-kuva1.jpg"]{object-position:60% 45%}
.photo-hero .hero-image[src$="hero-palvelut-kuva2.jpg"]{object-position:68% 45%}
