@font-face{font-family:'Montserrat';font-style:normal;font-weight:300 800;font-display:swap;src:url(/assets/fonts/montserrat-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
body{margin:0;font-family:'Montserrat',Helvetica,Arial,sans-serif;color:#666;background:#fff;-webkit-font-smoothing:antialiased}
a{color:#428c9e;text-decoration:none}a:hover{color:#2f6c7b}*{box-sizing:border-box}
.pa-track::-webkit-scrollbar{display:none}input,select,textarea,button{font-family:inherit}
button{transition:background .2s,color .2s}a,.nl{transition:color .2s}
/* ---------- motion ---------- */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal;animation-timing-function:cubic-bezier(.2,.7,.2,1)}
::view-transition-old(root){animation:vt-out .22s ease both}
::view-transition-new(root){animation:vt-in .35s both}
@keyframes vt-out{to{opacity:0}}
@keyframes vt-in{from{opacity:0}}
@media(min-width:981px){#topfix{view-transition-name:site-header}}
::view-transition-group(site-header){animation-duration:0s}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideIn{from{transform:translateX(-100%)}to{transform:none}}
@keyframes ckUp{from{opacity:0;transform:translateY(100%)}to{opacity:1;transform:none}}
.ckbar{animation:ckUp .6s cubic-bezier(.2,.7,.2,1) .8s both}
a[style*="border-radius:100px"],button[style*="border-radius:100px"]{transition:background .25s ease,color .25s ease,border-color .25s ease}
/* width/height attributes only reserve space; CSS decides the displayed size */
main img{height:auto}
.cimgw{display:block;overflow:hidden;background:#e8f1f3}
@media(prefers-reduced-motion:reduce){
*,*::before,*::after{animation:none !important;transition:none !important}
::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none !important}
}
html{scroll-padding-top:110px}
@media(max-width:980px){html{scroll-padding-top:20px}}
#cookie{display:block}html[data-ck] #cookie{display:none}
.nl.active{color:#428c9e !important}
.dd-wrap{display:contents}
.dd-wrap>div{opacity:0;visibility:hidden;transition:opacity .2s ease,visibility 0s .2s}
.dd:hover .dd-wrap>div,.dd:focus-within .dd-wrap>div{opacity:1;visibility:visible;transition-delay:0s}
.mob{display:none}
@media(max-width:980px){.desk{display:none !important}.mob{display:contents}}
@media(min-width:981px){#mobnav{display:none !important}}
@media(max-width:767px){.not-phone{display:none}.hero-btns{flex-direction:column !important}[data-b2]{border:0 !important}}
.h0:hover{background:rgba(66,140,158,.08) !important;color:#428c9e !important}
.h1:hover{background:#fff !important;color:#428c9e !important}
.h2:hover{background:#fff !important;color:#428c9e !important;border-color:#428c9e !important}
.h3:hover{background:rgba(255,255,255,.26) !important;color:#fff !important}
.h4:hover{background:transparent !important;color:#fff !important}
.h5:hover{background:#428c9e !important;color:#fff !important}
.h6:hover{color:#428c9e !important;font-size:21px !important}
.cards .card:hover h4{color:#428c9e}
.arr{position:absolute;top:50%;transform:translateY(-50%);background:none;border:0;padding:6px;color:#333;cursor:pointer;line-height:0}.arr:hover{color:#428c9e}
.homehero .wrap{text-align:center}
.homehero .ph2{margin-left:auto !important;margin-right:auto !important}
.homehero .hero-btns{justify-content:center !important}
@media(max-width:767px){.homehero .wrap{text-align:left}.homehero .hero-btns{align-items:center !important}}
@media(max-width:1180px){.arr{display:none}}
@media(max-width:980px){.cards{grid-template-columns:repeat(2,1fr) !important}.rv{flex-basis:50% !important}.team-wrap{grid-template-columns:1fr !important;gap:50px !important}}
@media(max-width:600px){.cards{grid-template-columns:1fr !important}.rv{flex-basis:100% !important}.team3{grid-template-columns:repeat(2,1fr) !important}}

.logo,.rdvtop{}
.usr{display:none;position:fixed;top:13px;right:18px;z-index:61;line-height:0}
#mobnav{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.45);visibility:hidden;opacity:0;pointer-events:none;transition:opacity .35s ease,visibility 0s linear .35s;-webkit-tap-highlight-color:transparent}
#mobnav.open{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .35s ease,visibility 0s}
#mobpanel{transform:translateX(-104%);transition:transform .4s cubic-bezier(.22,.7,.2,1);will-change:transform}
#mobnav.open #mobpanel{transform:none}
#mobnav *{-webkit-tap-highlight-color:transparent}
#mobpanel{position:absolute;left:0;top:0;bottom:0;width:65%;max-width:340px;background:#fff;overflow:auto;padding:62px 0 40px 19px;display:flex;flex-direction:column}
#mobpanel a{display:block;padding:11px 0;font-size:17px;letter-spacing:1.5px;color:rgba(66,140,158,.95);font-weight:500;line-height:1.3}
#mobpanel .mrow{display:flex;align-items:center;justify-content:space-between;padding-right:28px}
#mobpanel .msub{background:none;border:0;color:rgba(66,140,158,.95);font-size:30px;font-weight:700;cursor:pointer;line-height:1;padding:0 4px}
#mobpanel .mclose{position:absolute;top:14px;right:20px;background:none;border:0;padding:4px;cursor:pointer;line-height:0}
#msubs{display:flex;flex-direction:column;padding-left:16px;max-height:0;overflow:hidden;opacity:0;transition:max-height .4s ease,opacity .3s ease}#msubs.open{max-height:420px;opacity:1}#msubs a{font-size:15px;letter-spacing:.8px;padding:8px 0}
.rdvform input:focus,.rdvform textarea:focus{outline:0;border-color:#428c9e !important}
@media(max-width:980px){
#topfix{position:absolute !important;left:0;right:0;top:0 !important;height:0;z-index:60}
#topfix header{background:transparent !important;box-shadow:none !important}
#topfix header>div:first-child{padding:0 !important;height:0;min-height:0}
.logo,.rdvtop,.not-phone{display:none !important}
.usr{display:block}
}
@media(max-width:767px){
.wrap{width:80% !important}
.ph1{font-size:16vw !important;line-height:1 !important;padding-bottom:12px !important}
.ph2{font-size:19px !important;line-height:1.25 !important}
.homehero .ph2{font-size:5.6vw !important;line-height:1.2 !important}
.homehero{padding-top:170px !important;padding-bottom:150px !important;margin-top:0 !important}
.homehero{background-position:0 0,82% 78% !important}
.cards{gap:47px !important}
.card h4{font-size:17.6px !important;margin-top:20px !important}
.card .cimg{height:auto !important;aspect-ratio:225/155}
.card p{margin-bottom:30px !important}
.pa-track{scrollbar-width:thin !important;scrollbar-color:#555 #ccc}
.pa-track::-webkit-scrollbar{display:block;height:3px}
.pa-track::-webkit-scrollbar-track{background:#ccc}.pa-track::-webkit-scrollbar-thumb{background:#555}
.rv p{font-size:14px !important;line-height:1.45 !important}
.rv{padding-bottom:26px !important}
.team3{grid-template-columns:1fr !important;gap:37px !important}
.tph{width:80% !important;max-width:257px !important}
.team3 h3{font-size:21px !important;margin-top:26px !important}
.team3 h4{font-size:18px !important;font-weight:800 !important;color:#333 !important;line-height:1.05 !important}
footer h2{font-size:22px !important}
.ckbar{flex-direction:column !important;padding:14px 20px 16px !important;text-align:center;font-size:13px !important;gap:10px !important}
.ckbar #cookie-ok{padding:5px 18px !important}
.mission h2{line-height:1.05 !important}
.mission{padding-bottom:100px !important}
.mico{width:130px !important;height:130px !important}
.bh2{font-size:37px !important;line-height:1 !important;padding-bottom:12px !important}
.bh3{font-size:23px !important;line-height:1.2 !important;margin-bottom:44px !important}
}
footer a[data-bio]{cursor:pointer}
footer a[data-bio]:hover{text-decoration:underline;color:#fff}

:root{--sat:env(safe-area-inset-top,0px)}
#hbar{display:none}
@media(max-width:980px){
/* full-width bar flush with the top edge, always (also covers the status-bar area) */
#hbar{display:block;position:fixed;top:0;left:0;right:0;height:calc(60px + var(--sat));background:#fff;box-shadow:0 2px 14px rgba(0,0,0,.2);z-index:60;pointer-events:none}
#burger{top:calc(8px + var(--sat)) !important;left:10px !important}
.usr{top:calc(10px + var(--sat));right:14px}
.usr img{width:40px !important;height:40px !important}
main>section:first-child:not(.homehero),main>article:first-child{padding-top:calc(88px + var(--sat)) !important}
.homehero{padding-top:calc(170px + var(--sat)) !important}
}
.cal{border:1px solid #ccc;border-radius:14px;padding:18px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:22px}
.cal-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-weight:600;color:#428c9e;font-size:17px;text-transform:capitalize}
.cal-h button{background:none;border:0;color:#428c9e;font-size:24px;line-height:1;cursor:pointer;padding:2px 10px;border-radius:8px}
.cal-h button:disabled{opacity:.25;cursor:default}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cal-g span{font-size:12px;color:#888;padding:4px 0}
.cal-g button{border:0;background:none;border-radius:50%;aspect-ratio:1/1;font:inherit;font-size:15px;color:#333;cursor:pointer;transition:background-color .2s,color .2s}
.cal-g button:hover:not(:disabled){background:#e3eff2}
.cal-g button:disabled{color:#ccc;cursor:default}
.cal-g button.sel{background:#428c9e;color:#fff}
.cal-t b{display:block;margin-bottom:10px;color:#428c9e;font-size:15px;font-weight:600}
.cal-s{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:8px}
.cal-s button{border:1px solid #428c9e;background:#fff;color:#428c9e;border-radius:100px;padding:8px 0;font:inherit;font-size:15px;cursor:pointer;transition:background-color .2s,color .2s}
.cal-s button.sel,.cal-s button:hover{background:#428c9e;color:#fff}
.cal-t p{margin:0;font-size:14px;color:#888}
@media(max-width:600px){.cal{grid-template-columns:1fr;padding:14px}}
@media(max-width:767px){[style*="text-align:justify"]{text-align:left !important}}
html.i18n-wait body{visibility:hidden}
.langsw{position:relative;font-size:15px;line-height:1}
.langsw .flag{width:22px;height:22px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px rgba(0,0,0,.14);display:block;flex:none}
.langsw button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.langsw .lang-cur{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.55);border-radius:100px;padding:4px 12px 4px 5px;font-weight:600;letter-spacing:.5px}
.langsw .lang-cur svg{transition:transform .2s ease}
.langsw.open .lang-cur svg{transform:rotate(180deg)}
.langsw .lang-list{list-style:none;margin:0;padding:6px;position:absolute;right:0;top:calc(100% + 8px);min-width:190px;background:#fff;border-radius:12px;box-shadow:0 6px 22px rgba(0,0,0,.22);z-index:70;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s}
.langsw.open .lang-list{opacity:1;visibility:visible;transform:none;transition:opacity .2s ease,transform .2s ease,visibility 0s}
.langsw .lang-list button{display:flex;align-items:center;gap:12px;width:100%;background:none;border:0;border-radius:8px;padding:9px 12px;color:#444;text-align:left;font-size:16px}
.langsw .lang-list button:hover{background:#e3eff2}
.langsw .lang-list button.on{color:#428c9e;font-weight:700;background:#eef6f8}
.langsw.mob{display:block;margin:18px 0 0;padding:16px 28px 0 0;border-top:1px solid #dde9ec}
.langsw.mob .lang-cur{display:none}
.langsw.mob .lang-list{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;padding:0;min-width:0;background:none;display:grid;grid-template-columns:1fr 1fr;gap:2px 8px}
.langsw.mob .lang-list button{padding:8px 6px;font-size:15px}
@media(max-width:767px){.langsw.desk{display:none}}
@media(min-width:981px){.langsw.mob{display:none}}
.langsw.desk .lang-cur{padding:2px 10px 2px 3px;font-size:14px}
.langsw.desk .lang-cur .flag{width:19px;height:19px}
/* translated texts: long words break cleanly instead of overflowing */
main,footer{overflow-wrap:break-word}
main p,main li{-webkit-hyphens:auto;hyphens:auto;-webkit-hyphenate-limit-before:3;-webkit-hyphenate-limit-after:3;hyphenate-limit-chars:7 3 3}
main h1,main h2,main h3,main h4{-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word}
main a.h1,main a.h4,main button.h1,main button.h4{text-align:center}
.cards{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
.cards>*{min-width:0}
@media(max-width:980px){.cards{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
@media(max-width:600px){.cards{grid-template-columns:minmax(0,1fr) !important}}
/* languages with very long compound words: ragged-right text instead of justified (no stretched gaps) */
html[lang=de] [style*="text-align:justify"],html[lang=fi] [style*="text-align:justify"],html[lang=sv] [style*="text-align:justify"]{text-align:left !important}
