@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}
/* the old page stays fully visible until the new one is completely drawn, then the new one is revealed over it:
   no dip to white, no half-transparent mix of two pages */
::view-transition-old(root){animation:none}
::view-transition-new(root){animation:vt-in .22s ease both}
@keyframes vt-in{from{opacity:0}}
/* what is identical on every page (top bar, burger, logo) never moves nor fades */
@media(min-width:981px){#topfix{view-transition-name:vt-header}}
@media(max-width:980px){#hbar{view-transition-name:vt-hbar}#burger{view-transition-name:vt-burger}.usr{view-transition-name:vt-usr}}
::view-transition-group(vt-header),::view-transition-group(vt-hbar),::view-transition-group(vt-burger),::view-transition-group(vt-usr){animation-duration:0s}
::view-transition-old(vt-header),::view-transition-old(vt-hbar),::view-transition-old(vt-burger),::view-transition-old(vt-usr){display:none}
::view-transition-new(vt-header),::view-transition-new(vt-hbar),::view-transition-new(vt-burger),::view-transition-new(vt-usr){animation:none}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideIn{from{transform:translateX(-100%)}to{transform:none}}
/* while the next page is being prepared the current page stays as it is */
html.leaving{cursor:progress}
html.slow::after{content:"";position:fixed;left:0;top:0;right:0;height:3px;background:#428c9e;z-index:300}
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}}
.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;left:0;right:0;top:0;bottom: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}
.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}}
.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 a{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 a:hover{background:#e3eff2}
.langsw .lang-list a.on{color:#428c9e;font-weight:700;background:#eef6f8}
.langsw.mob{display:block;margin:24px 0 0;padding:14px 19px 0 0;border-top:1px solid #d6e4e8}
.langsw.mob .lang-cur{display:none}
@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}
/* language selector: list design (flag, name, code, check) */
.langsw .lang-list a .cd,.langsw .lang-list a .ck{display:none}
.langsw .lang-list a.on .ck{display:block;margin-left:auto;color:#428c9e}
.langsw .lang-list a .nm{flex:1 1 auto;min-width:0}
.langsw.mob .lang-list{display:block;position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;background:none;padding:0;min-width:0}
.langsw.mob .lang-list li{margin:0}
#mobpanel .langsw.mob .lang-list a{display:flex;align-items:center;gap:16px;width:auto;padding:12px 10px;font-size:17px;font-weight:500;letter-spacing:.02em;line-height:1.3;color:#1f5f6e;border-radius:0;border-bottom:1px solid #e3edf0;background:none}
#mobpanel .langsw.mob .lang-list li:last-child a{border-bottom-color:transparent}
#mobpanel .langsw.mob .lang-list a .flag{width:28px;height:28px}
#mobpanel .langsw.mob .lang-list a .cd{display:block;font-size:12px;letter-spacing:.16em;color:#3f7d8d;font-weight:500}
#mobpanel .langsw.mob .lang-list a.on{border-radius:12px;background:#e6eff2;color:#1f6b7c;font-weight:700;border-bottom-color:transparent}
#mobpanel .langsw.mob .lang-list a.on .cd{display:none}
html{scrollbar-gutter:stable}
/* no coloured box flashing on a tap (iOS / Android) */
*{-webkit-tap-highlight-color:transparent}
[data-bio]:focus:not(:focus-visible){outline:none}
[data-bio]{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
