


/* -------------------------------------------------- generic ---------- */

*{-webkit-box-sizing: border-box; box-sizing: border-box; margin: 0; padding: 0;} html{-webkit-text-size-adjust: 100%; -moz-text-size-adjust: 100%; -ms-text-size-adjust: 100%;} ul, li, a, h1, h2, h3, p, input, textarea, label, select, ::placeholder{position: relative; display: inline-block;} ul, li, a, img, p, h1, h2, h3, input, textarea, label, select, ::placeholder{vertical-align: middle;} :focus{outline: none;} a{line-height: 0; text-decoration: none;} 



/* -------------------------------------------------- fonts ---------- */

@font-face{font-family: "Montserrat"; src: url("Fonts/Montserrat.woff2") format("woff2 supports variations"), url("Fonts/Montserrat.woff2") format("woff2-variations"), url("Fonts/Montserrat.woff") format("woff supports variations"), url("Fonts/Montserrat.woff") format("woff-variations"), url("Fonts/Montserrat.ttf") format("truetype supports variations"), url("Fonts/Montserrat.ttf") format("truetype-variations"); font-weight: 100 900;} 

@font-face{font-family: "Satoshi"; src: url("Fonts/Satoshi.woff2") format("woff2 supports variations"), url("Fonts/Satoshi.woff2") format("woff2-variations"), url("Fonts/Satoshi.woff") format("woff supports variations"), url("Fonts/Satoshi.woff") format("woff-variations"), url("Fonts/Satoshi.ttf") format("truetype supports variations"), url("Fonts/Satoshi.ttf") format("truetype-variations"); font-weight: 100 900;} 

@font-face{font-family: "PlayfairDisplay"; src: url("Fonts/PlayfairDisplay.woff2") format("woff2 supports variations"), url("Fonts/PlayfairDisplay.woff2") format("woff2-variations"), url("Fonts/PlayfairDisplay.woff") format("woff supports variations"), url("Fonts/PlayfairDisplay.woff") format("woff-variations"), url("Fonts/PlayfairDisplay.ttf") format("truetype supports variations"), url("Fonts/PlayfairDisplay.ttf") format("truetype-variations"); font-weight: 100 900;} 

*{font-family: 'Montserrat', sans-serif;} .h0, h1, .h1, h2, .h2, h3, .h3, .h0 span, .h1 span{font-family: 'Satoshi', serif;} p{word-break: break-word; -webkit-hyphens: auto; -ms-hyphens: auto; -o-hyphens: auto; hyphens: auto; -webkit-hyphenate-limit-before: 4; -webkit-hyphenate-limit-after: 4; -ms-hyphenate-limit-chars: 8 4 4; hyphenate-limit-chars: 8 4 4;} .h0, .h1, .h2{word-break: normal; -webkit-hyphens: manual; -ms-hyphens: manual; -o-hyphens: manual; hyphens: manual;} 

.written-bold{font-weight: 700;} .h0, h1, .h1{font-weight: 500;} h2, .h2{font-weight: 550;} p{font-weight: 400;} h3, .h3{font-weight: 600;} .h0, h1, .h1, h2, .h2{text-transform: uppercase;} .written-serif, .written-serif p, .written-serif span, .h0 .written-serif, .h1 .written-serif{font-family: 'PlayfairDisplay', serif;}



/* -------------------------------------------------- color / hover ---------- */

#body-content.toggle, #body-header.toggle .navigation-relative{} .opacity-high{opacity: .75;} .opacity-middle{opacity: .54;} .opacity-low{opacity: .25;} 

:root{--color-light: hsl(342, 9%, 91%); --color-dark: hsl(342, 0%, 11%); --color-ci: hsl(342, 99%, 40%); --color-cursor: hsl(342, 54%, 65.5%);} 

.color-set-light, .color-set-dark .color-invers, .color-set-dark .front-invers{--color-back: var(--color-light); --color-front: var(--color-dark);} .color-set-dark, .color-set-light .color-invers, .color-set-light .front-invers{--color-back: var(--color-dark); --color-front: var(--color-light);} [class*="color-set-"], [class*="color-set-"] .color-invers, .back-back{background-color: var(--color-back);} .back-front, [class*="symbol-"] [class*="shape-"]{background-color: var(--color-front);} h1, h2, p, a, input, textarea, label, select, ::placeholder{color: var(--color-front);} 

.js-cursor-outer, .js-cursor-inner{background-color: var(--color-cursor);} .back-ci, .symbol-button [class*="shape-"]{background-color: var(--color-ci);} .front-ci{color: var(--color-ci);} .link-button p{color: var(--color-ci);} .link-button:hover p, .link-project:hover p{color: var(--color-light);} 

[class*="-invers"] .symbol-button [class*="shape-"]{background-color: var(--color-front);} [class*="-invers"]  .link-button p{color: var(--color-front);} [class*="-invers"]  .link-button:hover p{color: var(--color-ci);}

.back-blur{-webkit-backdrop-filter: blur(7px); backdrop-filter: blur(7px);} .back-deep{background-color: rgba(0,0,0,0.07);} 

[class*="table-"] td{border-top-color: rgba(0,0,0,0.5);} input, textarea, select{background-color: rgba(249,249,249,0.07); border: none; border-left: solid 3px transparent;} input:hover, textarea:hover, select:hover{background-color: rgba(249,249,249,0.14);} input:autofill, textarea:autofill, select:autofill{border-left: solid 3px var(--color-front); color: var(--color-front);} 



/* -------------------------------------------------- gradient / mask---------- */

[class*="gradient-"]{pointer-events: none;} .gradient-horizontal{background-image: linear-gradient(90deg, var(--color-back) 0%, transparent 10%, transparent 90%, var(--color-back) 100%);} .gradient-vertical{background-image: linear-gradient(0deg, var(--color-back) 0%, transparent 10%, transparent 90%, var(--color-back) 100%);} .gradient-radial{background-image: radial-gradient(transparent 0%, transparent 70%, var(--color-back) 100%);} 

.mask-diagonal-default{-webkit-mask-image: linear-gradient(-22.5deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 29%, rgba(0,0,0,1) 71%, rgba(0,0,0,0) 100%); -webkit-mask-size: 100% 100%; -webkit-mask-repeat: no-repeat; -webkit-mask-position: center;} 



/* -------------------------------------------------- cursor ---------- */

.js-cursor-outer, .js-cursor-inner{position: fixed; display: block; left: -100px; top: 0; transform: translate(-50%,-50%); border: none; border-radius: 50%; z-index: 999; pointer-events: none;} .js-cursor-outer{transition: left .07s ease-out, top .07s ease-out, width .29s ease-in-out, height .29s ease-in-out, background-color .29s, opacity .29s ease-in-out;} .js-cursor-inner{transition: left .19s ease-out, top .19s ease-out, width .29s ease-in-out, height .29s ease-in-out, background-color .29s, opacity .29s ease-in-out;}

.js-cursor-outer{width: calc(17px + 3.4vw); height: calc(17px + 3.4vw); opacity: 0.27;} .js-cursor-inner{width: 5px; height: 5px; opacity: 1;} .js-cursor-outer.hover{width: calc(70px + 14vw); height: calc(70px + 14vw); opacity: 0.27;} .js-cursor-inner.hover{width: calc(70px + 14vw); height: calc(70px + 14vw); opacity: 0;} .js-cursor-hover{cursor: pointer;}



/* -------------------------------------------------- pattern ---------- */

/*[class*="pattern-"]{position: absolute; display: block; right: 50%; bottom: 50%; transform: translate(50%,50%); width: 100%; height: 100%;}
.pattern-pixel{background-color: rgba(87,152,152,0.29); background-size: 4px 4px; background-image: linear-gradient(var(--color-back) 0.4px, transparent 0.4px), linear-gradient(to right, var(--color-back) 0.4px, transparent 0.4px); opacity: 0.7;}*/



/* -------------------------------------------------- variables ---------- */

#html-body{--size-fix: calc(60px + 1.5vw); --padding-horizontal: 0.02; --padding-vertical: calc(0.7vw + 0.7vh + 7px); --padding-link: 4px; --padding-px: 2px; --padding-button: calc(0.9vw + 0.9vh + 9px); --padding-form: calc(0.15vw + 0.15vh + 1.5px); --overlay-factor: 3; --size-browser: calc(16vw + 16vh + 320px);} 



/* -------------------------------------------------- space ---------- */

[class*="space-"]{position: relative; display: block; width: 100%;} .section-layer-full{width: 100%; max-width: var(--layer-max);} .section-layer-default{width: calc(100% - var(--layer-diff) * 100% + 2 * var(--padding-horizontal) * 100%); max-width: calc((1 - var(--layer-diff)) * var(--layer-max));} .section-layer-thin{width: calc(100% - 2 * var(--layer-diff) * 100% + 2 * var(--padding-horizontal) * 100%); max-width: calc((1 - 2 * var(--layer-diff)) * var(--layer-max));} 

.space-high{height: calc(11 * var(--padding-vertical));} .space-default{height: calc(4 * var(--padding-vertical));} .space-flat{height: var(--padding-vertical);} .space-mini{height: calc(var(--padding-vertical) / 2);} .padding-flat{padding: calc(var(--padding-vertical) / 4) calc(var(--padding-horizontal) * 100%);} .padding-default{padding: calc(var(--padding-vertical) / 2) calc(var(--padding-horizontal) * 100%);} .padding-wide{padding: var(--padding-vertical) calc(2 * var(--padding-horizontal) * 100%);} .padding-side{padding: 0 calc(var(--padding-horizontal) * 100%);} .padding-sidewide{padding: 0 calc(2 * var(--padding-horizontal) * 100%);}

.padding-px-left{padding-left: var(--padding-px);} .padding-px-right{padding-right: var(--padding-px);} .padding-px-horizontal{padding: 0 var(--padding-px);} 



/* -------------------------------------------------- global ---------- */

#body-header, #body-main, #body-footer{width: 100%;} #body-header{z-index: 7;} #body-main{z-index: 1;} #body-footer{z-index: 4;} hr{border: none; height: 0;} [class*="-section"]{position: relative; display: block; width: 100%; margin: 0 auto; text-align: center; overflow: hidden;} [class*="layer-"]{position: relative; display: block; margin: 0 auto; width: 100%;} [class*="grid-"], [class*="inline-"], [class*="squeeze-"]{position: relative; display: inline-block; vertical-align: top;} [class*="grid-"], [class*="inline-"]{text-align: left;} 

.grid-100, .inline-100{width: 100%; display: block;} .inline-75{width: 75%;} .inline-67{width: 66.67%;} .inline-62{width: 61.8%;} .inline-50{width: 50%;} .inline-38{width: 38.2%;} .inline-33{width: 33.33%;} .inline-25{width: 25%;} .inline-fix{width: var(--size-fix);} .inline-flex{width: calc(100% - var(--size-fix));} .inline-middle{width: 25%;} .grid-0, .inline-0{display: none; visibility: hidden;} .text-left{text-align: left;} .text-center{text-align: center;} .text-right{text-align: right;} .vertical-bottom{vertical-align: bottom;} .vertical-middle{vertical-align: middle;} .overflow-hidden{overflow: hidden;} [class*="overlay-"], [class*="indent-"]{position: relative; display: block;} .overlay-left-wide{margin-left: calc(-3 * var(--overlay-factor) * 100%);} .overlay-horizontal-wide{margin: 0 calc(-3 * var(--overlay-factor) * 100%);} .overlay-right-wide{margin-right: calc(-3 * var(--overlay-factor) * 100%);} .overlay-right-small{margin-right: calc(-1.5 * var(--overlay-factor) * 100%);} .overlay-vertical{margin: calc(-1 * var(--overlay-factor) * 100%) 0;} .overlay-horizontal-wide{margin: 0 -25%; width: 150%;} 



/* -------------------------------------------------- frames ---------- */

[class*="frame-relative-"], [class*="frame-absolute-"], [class*="frame-fixed-"]{display: block; width: 100%;} [class*="frame-relative-"]{position: relative; display: block; height: auto;} [class*="frame-absolute-"], [class*="frame-fixed-"]{right: 50%; bottom: 50%; transform: translate(50%,50%);} [class*="frame-absolute-"]{position: absolute;} [class*="frame-fixed-"]{position: fixed;}

.frame-relative-100vh{padding-top: 100vh;} .frame-relative-1to1{padding-top: 100%;} .frame-relative-4to3{padding-top: 75%;} .frame-relative-3to4{padding-top: 133.33%;} .frame-relative-3to2{padding-top: 66.66%;} .frame-relative-2to3{padding-top: 150%;} .frame-relative-16to9{padding-top: 56.25%;} .frame-relative-2to1{padding-top: 50%;} .frame-relative-1to2{padding-top: 200%;} .frame-absolute-cover, .frame-fixed-cover{height: 100%;} .frame-absolute-auto, .frame-fixed-auto{height: auto;} .frame-absolute-top{bottom: 100%; transform: translate(50%,100%);} .frame-absolute-bottom{bottom: 0%; transform: translate(50%,0%);} .frame-absolute-upper{bottom: 95%; transform: translate(50%,95%);} .frame-absolute-lower{bottom: 5%; transform: translate(50%,5%);} .frame-absolute-right{right: 0; transform: translate(0,50%);} 

.frame-relative-brand{padding-top: 33.33%; min-width: 29px;} .frame-relative-logo{padding-top: 40%;} .frame-relative-inline{display: inline-block; width: auto;} .frame-relative-browser{padding-top: var(--size-browser);} .frame-relative-flat{padding-top: calc(var(--size-browser) / 2.5);} 

[class*="frame-absolute-cloud-"]{width: calc(125px + 25vw);} [class*="frame-absolute-cloud-"] .h2, [class*="frame-absolute-cloud-"] .written-serif{display: block; width: 100%;} [class*="frame-absolute-cloud-"] .written-serif{text-align: right; transform: translate(0,-20%);} 
.frame-absolute-cloud-00{right: 0%; bottom: 90%; transform: translate(0%,50%);} 
.frame-absolute-cloud-01{right: 90%; bottom: 75%; transform: translate(90%,50%);} 
.frame-absolute-cloud-02{right: 15%; bottom: 50%; transform: translate(15%,50%);} 
.frame-absolute-cloud-03{right: 100%; bottom: 35%; transform: translate(100%,50%);} 
.frame-absolute-cloud-04{right: 25%; bottom: 10%; transform: translate(25%,50%);} 

/*.frame-relative-cloud, [class*="frame-absolute-cloud-"]{background-color: rgba(0,0,255,0.1);}*/ 

/* -------------------------------------------------- brand ---------- */

.brand-animation .ba-c{transform: translate(88.5%,17%)scale(1.5);} .brand-animation .ba-w{transform: translate(68%,-25%)scale(1.5);} .brand-animation [class*="ba-"] span{opacity: 0;} 

.brand-animation [class*="ba-"], .brand-animation [class*="ba-"] span{transition-duration: 1.57s; transition-delay: .59s;} .brand-animation.on .ba-c{transform: translate(16%,0)scale(1);} .brand-animation.on .ba-w{transform: translate(0,0)scale(1);} .brand-animation.on [class*="ba-"] span{opacity: 1;} 

/*.brand-animation, .brand-animation [class*="ba-"]{outline: solid 4px red;}*/


.brand-hover .h3{text-transform: uppercase; pointer-events: none;} 

.brand-hover .ba-c{transform: translate(29%,30%)scale(1.5);} 
.brand-hover .ba-w{transform: translate(34.4%,-30%)scale(1.5);} 
.brand-hover [class*="ba-"] span{opacity: 0;} 

.brand-hover [class*="ba-"], .brand-hover [class*="ba-"] span{transition-duration: 1s; transition-delay: 0s;} 

[class*="link-"]:hover .brand-hover .ba-c{transform: translate(15%,16%)scale(1);} 
[class*="link-"]:hover .brand-hover .ba-w{transform: translate(0,-16%)scale(1);} 
[class*="link-"]:hover .brand-hover [class*="ba-"] span{opacity: 1;} 



/* -------------------------------------------------- images ---------- */

.image-relative, .image-cover, .image-contain, .image-icon{position: relative; display: block;} .image-relative{height: auto;} .image-cover, .image-contain{width: 100%; height: 100%;} .image-cover{object-fit: cover; object-position: center 33%;} .image-contain{object-fit: contain;} .image-icon{width: calc(1.5 * var(--padding-vertical)); height: calc(1.5 * var(--padding-vertical));} .image-absolute{position: absolute; display: block; right: 50%; bottom: 50%; transform: translate(50%,50%); width: 100%; height: auto;} .image-inline{position: relative; display: inline-block; width: calc(35px + 14.0vw);} .frame-relative-flat .image-cover{object-position: center 0%;} .view-center-left{object-position: 29% 33%;} .view-center-right{object-position: 71% 33%;}



/* -------------------------------------------------- symbols ---------- */

[class*="symbol-"]{position: relative; display: inline-block; vertical-align: middle;} [class*="symbol-"] [class*="shape-"], [class*="symbol-"] [class*="text-"]{position: absolute; display: block; right: 50%; bottom: 50%; transform: translate(50%,50%); transition-duration: .27s;} 

.symbol-navigation, .symbol-close{display: block; width: 54px; height: 54px;} .symbol-navigation [class*="shape-"], .symbol-close [class*="shape-"]{width: 40px; height: 2px;}

.symbol-navigation .shape-0{right: 22px; bottom: 30px;} .symbol-navigation .shape-1{right: 32px; bottom: 24px;} [class*="link-"]:hover .symbol-navigation .shape-0{right: 30px; width: 26px;} [class*="link-"]:hover .symbol-navigation .shape-1{right: 27px; width: 50px;} .symbol-close .shape-0{transform: translate(50%,50%)rotate(45deg);} .symbol-close .shape-1{transform: translate(50%,50%)rotate(-45deg);} [class*="link-"]:hover .symbol-close .shape-0{width: 50px;} [class*="link-"]:hover .symbol-close .shape-1{width: 26px;} 

.symbol-cross{display: inline-block; width: calc(2 * var(--padding-vertical)); height: calc(2 * var(--padding-vertical)); bottom: 50%;} .symbol-cross [class*="shape-"]{-webkit-transform: translate(50%,50%)rotate(0deg);-ms-transform: translate(50%,50%)rotate(0deg);transform: translate(50%,50%)rotate(0deg); width: 100%; height: 3px;} .symbol-cross .shape-0{-webkit-transform: translate(50%,50%)rotate(-45deg);-ms-transform: translate(50%,50%)rotate(-45deg);transform: translate(50%,50%)rotate(-45deg);} .symbol-cross .shape-1{-webkit-transform: translate(50%,50%)rotate(45deg);-ms-transform: translate(50%,50%)rotate(45deg);transform: translate(50%,50%)rotate(45deg);} 

.symbol-dot{position: relative; display: block;} .symbol-dot [class*="shape-"]{width: 20%; height: 20%; border-radius: 50%;}

.symbol-information{display: inline-block; width: calc(2 * var(--padding-vertical)); height: calc(2 * var(--padding-vertical));} .symbol-information [class*="shape-"]{width: 12px; height: 3px;} .symbol-information .shape-0{right: calc(50% + 4px); transform: translate(50%,50%)rotate(37.5deg);} .symbol-information .shape-1{right: calc(50% - 4px); transform: translate(50%,50%)rotate(-37.5deg);} .js-information-item.on .symbol-information .shape-0{transform: translate(50%,50%)rotate(-37.5deg);} .js-information-item.on .symbol-information .shape-1{transform: translate(50%,50%)rotate(37.5deg);} 

.symbol-button{position: absolute; display: block; left: 0; bottom: 50%; transform: translate(0,50%); width: 50%; height: 100%;  opacity: .17;} .symbol-button .shape-0{width: 100%; padding-top: 100%; border-radius: 50%;} 

[class*="link-"]:hover .symbol-button{width: 100%; opacity: 1;} 



/* -------------------------------------------------- separator ---------- */

[class*="separator-"]{display: block;} .separator-horizontal{position: relative; width: 100%; height: var(--padding-px);} 



/* -------------------------------------------------- list, table, icon ---------- */

[class*="list-"], [class*="list-"] .list-item, [class*="icon-"]{position: relative; display: block;} [class*="list-"] .list-item{list-style: none; vertical-align: middle;} 

.list-link{display: block; margin: 0 calc(-3 * var(--padding-link));} .list-link .list-item{display: inline-block; margin: calc(var(--padding-link) / 2) calc(2 * var(--padding-link));} .list-link [class*="link-"] p{padding: calc(var(--padding-link) / 2) var(--padding-link);} .gap-link{padding: calc(var(--padding-link) * 2) calc(var(--padding-link) * 1.5); vertical-align: baseline;}

.list-symbol .list-item{margin-top: calc(var(--padding-vertical) / 2); padding-left: calc(2 * var(--padding-vertical));} .list-symbol [class*="symbol-"], .list-symbol p{vertical-align: top;} .list-symbol [class*="symbol-"]{position: absolute; left: calc(var(--padding-vertical) / 3); transform: translate(0,-50%); width: calc(2 * var(--padding-vertical)); height: calc(2 * var(--padding-vertical));} 

[class*="table-"]{width: 100%; border-spacing: 8px 0;} [class*="table-"] th, [class*="table-"] td{padding: calc(var(--padding-vertical) / 2) calc(var(--padding-horizontal) * 100%);} [class*="table-"] td{border-top-style: solid; border-top-width: 1.5px; vertical-align: middle;} [class*="table-"] thead{display: none;} [class*="table-"] .row-first td{border: none;} 

.icon-left{padding-left: calc(2 * var(--padding-vertical));} .icon-right{padding-right: calc(2 * var(--padding-vertical));} [class*="icon-"] .image-icon{position: absolute; top: 50%; transform: translate(0,-50%);} .icon-left .image-icon{left: 0;} .icon-right .image-icon{right: 0;} 



/* -------------------------------------------------- links ---------- */

[class*="link-"]{position: relative; display: inline-block;} [class*="link-"] p{text-decoration: none; /*text-transform: uppercase; font-weight: 700; letter-spacing: 2px;*/} .link-text{display: inherit !important; text-decoration: underline;} 

.link-default, .link-icon{padding: var(--padding-link) var(--padding-link);} .link-icon .image-contain{transform: scale(1.1);} .link-brand{width: auto/*calc(28px + 0.7vw)*/; z-index: 11;} .link-brand .image-absolute{width: 100%;} 

.link-default:hover{opacity: .59;} .link-default:hover p{transform: translate(0,-2px);} 

.link-share{width: calc(36px + 0.9vw); height: calc(32px + 0.8vw);} .link-share .image-absolute{width: 100%;} 

.link-button{padding: var(--padding-button) calc(var(--padding-button) * 2);} .link-button p{font-weight: 700; text-transform: uppercase;}

.link-block{display: block;} 

.link-project{display: block; padding: calc(0.9 * var(--padding-vertical)) 0;} .link-project .frame-absolute-cover{/*bottom: auto; top: 0; transform: translate(50%,0);*/ height: 0; opacity: 0;} .link-project:hover{padding: calc(2.8 * var(--padding-vertical)) 0;} .link-project:hover .frame-absolute-cover{height: 100%; opacity: 1;} 

/*[class*="inline-"]{outline: solid 2px red;}*/



/* #######################################################################
##################################################### modules ############
####################################################################### */ 



/* -------------------------------------------------- fade in on scroll ---------- */

[class*="js-fadein-"]{overflow-y: visible;} [class*="js-fadein-fast-"]{transition: transform 870ms ease-in-out 87ms, opacity 590ms ease-in-out 59ms;} [class*="js-fadein-slow-"]{transition: transform 1910ms ease-in-out 191ms, opacity 1440ms ease-in-out 144ms;}



/* -------------------------------------------------- informations ---------- */

.js-information-item{position: relative; display: block; padding: calc(var(--padding-vertical) / 2) 0;} .information-title{position: relative; display: inline-block; width: 100%; height: auto; padding-right: calc(3 * var(--padding-vertical));} .information-description{max-height: 0; overflow: hidden; opacity: 0;} .information-description p{display: block;} .symbol-information{position: absolute; right: 0; bottom: 50%; transform: translate(0,50%);} 

.js-information-item, .information-description{transition-duration: .71s;} .js-information-item.on .information-description{max-height: 870px; opacity: 1;} 



/* -------------------------------------------------- accordion ---------- */

[class*="accordion-horizontal-"]{--accordion-mobile: var(--size-browser); --accordion-desktop: var(--size-browser);} .accordion-horizontal-02{--accordion-count: 2;} .accordion-horizontal-03{--accordion-count: 3;} .accordion-horizontal-04{--accordion-count: 4;} 

.flex-100{display: flex; align-items: stretch; margin: 0 auto; gap: calc(var(--padding-px) * 2);} .frame-accordion{position: relative; flex-grow: 1; overflow: hidden;} .js-accordion-item .frame-absolute-upper{min-width: calc(100vw / var(--accordion-count) - var(--padding-px));} 

.js-accordion-item .frame-absolute-lower, .js-accordion-item.off .frame-absolute-lower{opacity: 0;} .js-accordion-item.on .frame-absolute-lower{opacity: 1;}



/* -------------------------------------------------- roll horizontal ---------- */

.horizontal-roll{--roll-item-count: 13; --roll-item-width: calc(260px + 6.5vw); --roll-item-duration: 5.1s;} 

.horizontal-roll, .horizontal-roll .roll-wrapper{position: relative; display: block;} .horizontal-roll{width: 100%; height: auto; padding: 0; overflow: hidden;} .horizontal-roll .roll-wrapper{transform: translate(0px,0px);} .horizontal-roll .list-item{display: inline-block; height: auto; vertical-align: middle; text-align: left;} .horizontal-roll .horizontal-item{position: relative; display: block; opacity: 89%;} @-webkit-keyframes animation-roll-horizintal{0%{transform: translate(0px,0px);} 100%{transform: translate(-50%,0px);}} 

.horizontal-roll .roll-wrapper{width: calc(var(--roll-item-count) * var(--roll-item-width) * 2); animation: animation-roll-horizintal calc(var(--roll-item-count) * var(--roll-item-duration)) linear infinite;} .horizontal-roll .list-item{width: calc(100% / (2 * var(--roll-item-count)));} .horizontal-roll .horizontal-item{padding: 0 29%;} 



/* -------------------------------------------------- roll vertical ---------- */

.vertical-roll{--roll-vertical-width: 35%; --roll-vertical-height: 100%; --roll-item-count: 8; --roll-item-duration: 1.1s;} 

.vertical-roll, .vertical-roll .list-item{position: relative; display: block;} .vertical-roll{width: 100%; height: auto; padding: 0; overflow: hidden;} .vertical-roll .roll-wrapper{position: absolute; display: block; top: 0%; transform: translate(0px,0px); width: 100%;} /*.vertical-roll .roll-overflow{position: absolute; display: block; top: 100%; width: 100%; height: auto;}*/ .vertical-roll .list-item{width: 100%; height: auto; text-align: left;} .vertical-roll .vertical-item{position: relative; display: block;} @-webkit-keyframes animation-roll-vertical{0%{transform: translate(0px,0%);} 100%{transform: translate(0px,-50%);}} 

.vertical-roll{width: var(--roll-vertical-width); margin: 0 calc((100% - var(--roll-vertical-width)) / 2); padding-top: calc(var(--roll-vertical-height) * var(--roll-vertical-width) / 100%);} .vertical-roll .roll-wrapper{animation: animation-roll-vertical calc(var(--roll-item-count) * var(--roll-item-duration)) linear infinite;} .vertical-roll .vertical-item{padding: 0 20%;} 



/* -------------------------------------------------- slide ---------- */

.horizontal-slide{--slide-item-count: 6; --slide-item-width: 40%;} 

.horizontal-slide, .horizontal-slide .slide-wrapper{position: relative; display: block; margin: 0 auto; height: auto;} .horizontal-slide{width: 100%; overflow: hidden;} .horizontal-slide .slide-wrapper{transition: transform .29s; padding: 0 2.5%;} .horizontal-slide .slide-wrapper .list-item{position: relative; display: inline-block; vertical-align: top;} .horizontal-slide .horizontal-item{position: relative; display: block;} 

.horizontal-slide .slide-wrapper{width: calc(var(--slide-item-count) * var(--slide-item-width));} .horizontal-slide .slide-wrapper .list-item{width: calc(100% / var(--slide-item-count));} .horizontal-slide .horizontal-item{padding: 0 6%;} 



/* -------------------------------------------------- sidebar ---------- */

.frame-fixed-sidebar{--sidebar-size: calc(74% + 74px); height: 100vh; z-index: 15;} 
.frame-absolute-sidebar{width: var(--sidebar-size); height: var(--sidebar-size);}

.js-sidebar-item{pointer-events: none;} .js-sidebar-item.toggle{pointer-events: all;} .js-sidebar-item .back-blur{opacity: 0;} .js-sidebar-item.toggle .back-blur{opacity: 1;} .js-sidebar-item .frame-absolute-sidebar{transform: translate(50%,59%); opacity: 0;} .js-sidebar-item.toggle .frame-absolute-sidebar{transform: translate(50%,50%); opacity: 1;} 



/* -------------------------------------------------- sticky ---------- */

.section-sticky{overflow: inherit;} .frame-sticky-auto{position: sticky; top: 0; height: auto;} .desktop-sticky-auto{height: auto;} 



/* -------------------------------------------------- marquee ---------- */

/*[class*="marquee-"]{--gap: 0px; position: relative; display: flex; width: 100%; height: auto; overflow: hidden; user-select: none;} [class*="marquee-"] p{flex-shrink: 0; display: flex; justify-content: space-around; min-width: 100%;} [class*="marquee-"], [class*="marquee-"] p{gap: var(--gap);} [class*="marquee-"] p span{position: relative; display: inline-block; width: 24px; vertical-align: middle; text-align: center;}

.marquee-left p{animation: animation-marguee-left 24s linear infinite;} .marquee-right p{animation: animation-marguee-right 24s linear infinite;} @keyframes animation-marguee-left{from{transform: translateX(calc(0% - var(--gap)));}to{transform: translateX(-100%);}} @keyframes animation-marguee-right{from{transform: translateX(calc(-100% - var(--gap)));}to{transform: translateX(0);}}*/



/* -------------------------------------------------- multistep form ---------- */

.form-multistep{padding: 0 calc(2 * var(--padding-horizontal) * 100%);} .slide-multistep{width: 100%; height: auto; padding: 0; vertical-align: middle; overflow: hidden;} .slide-multistep-wrapper{transform: translate(0px,0px);} .slide-multistep .multistep-tab{height: auto; vertical-align: middle;}

#form-initial .slide-multistep-wrapper{width: 200%;} #form-initial .slide-multistep .multistep-tab{width: 50%;} #form-initial .layer-grid{padding: 0 calc(2 * var(--padding-horizontal) * 100%);} 

[class*="multistep-"]{position: relative; display: inline-block;} [class*="multistep-"] input, [class*="multistep-"] textarea, [class*="multistep-"] select{padding: var(--padding-button) calc(var(--padding-button) * 0.5);}  [class*="form-"] input, [class*="form-"] select, [class*="form-"] textarea, [class*="form-"] fieldset{vertical-align: top; /*border: none;*/ border-radius: none/*calc(var(--padding-button) + (17.2px + 0.43vw) / 2)*/; -webkit-appearance: none; -moz-appearance: none; appearance: none;} [class*="form-"]{margin: 0 calc(-1 * var(--padding-form));} [class*="form-"] .slide-multistep{margin: var(--padding-form) 0;} [class*="form-"] [class*="grid-"], [class*="form-"] [class*="inline-"]{padding: var(--padding-form) var(--padding-form); vertical-align: middle;} [class*="multistep-"] label, [class*="multistep-"] input, [class*="multistep-"] select, [class*="multistep-"] textarea, [class*="form-"] fieldset{display: block; width: 100%;} 

[class*="multistep-"] .label-default{position: absolute; padding-left: calc(var(--padding-button) * 0.7); pointer-events: none;} [class*="multistep-"] label, .multistep-links .multistep-tab p{line-height: calc(var(--padding-form) + 8px); font-size: calc(var(--padding-form) / 2 + 8px); font-weight: 500; letter-spacing: calc(var(--padding-form) / 3 + 1px); opacity: .84; z-index: 7;} [class*="multistep-"] label a p{text-decoration: underline;} [class*="multistep-"] input, [class*="multistep-"] select, [class*="multistep-"] textarea{position: relative;} [class*="multistep-"] input, [class*="multistep-"] select, [class*="multistep-"] fieldset, [class*="multistep-"] textarea{margin-top: var(--padding-form);} [class*="multistep-"] textarea{resize: none;} [class*="multistep-"] input, [class*="multistep-"] select, [class*="multistep-"] textarea{transition-duration: .14s;} ::placeholder{opacity: .4;} [class*="multistep-"] .image-absolute{right: calc(var(--padding-vertical) * 1.7); width: var(--link-icon); height: auto; pointer-events: none;} /*.form-multistep .link-button{display: block; width: 100%; padding: var(--padding-button) calc(var(--padding-button) * 0.4);}*/

.list-indicator .list-item{position: relative; display: none;} .list-indicator .list-item.toggle{display: block;} .symbol-indicator{position: relative; display: block; width: 100%; height: 3px; margin: 7px 0; border-radius: 999px; overflow: hidden;} .symbol-indicator [class*="shape-"]{height: 3px;} .symbol-indicator .shape-0{width: 100%; opacity: .14;} .symbol-indicator .shape-1{left: 0; right: auto; transform: translate(0,50%); width: 0; transition-duration: .57s;}



/* -------------------------------------------------- more ---------- */

.main-section-legal p{padding: var(--padding-link) 0;} .main-section-legal [class*="list-"] p{padding: 0 0;} .main-section-legal .link-default{padding: 0 calc(2 * var(--padding-link));} 

#backlink .image-relative{display: inline-block; margin-left: 2px; width: 25px;} #matomo-opt-out{padding: calc(0.9vw + 0.9vh + 9px) 1.25%;} #matomo-opt-out input{margin-right: calc(0.45vw + 0.45vh + 4.5px); margin-top: calc(0.45vw + 0.45vh + 4.5px);} #matomo-opt-out label{margin: calc(0.9vw + 0.9vh + 9px) 0;} 



/* -------------------------------------------------- transition ---------- */

.js-approach-item{transition: opacity .17s;} 
#html-body, #body-content.toggle, #body-header.toggle .navigation-relative, [class*="link-"], .link-default p, .symbol-button, .slide-multistep-wrapper{transition-duration: .27s;}
.js-accordion-item, .js-accordion-item .frame-absolute-lower{transition-duration: calc(1.7s / var(--accordion-count));} 
.link-project .frame-absolute-cover, .link-project p{transition-duration: 0.41s; transition-timing-function: ease-out;} 

.frame-fixed-sidebar .back-blur, .js-sidebar-item .frame-absolute-sidebar{transition-duration: .59s; transition-timing-function: ease-out;} 
#body-content.toggle, #body-header.toggle .navigation-relative{transition: filter .54s 0s;} #body-content, #body-header .navigation-relative{transition: filter .54s .55s;} 



/* #######################################################################
##################################################### signature ##########
####################################################################### */ 



/* -------------------------------------------------- header ---------- */

#body-header{position: relative; z-index: 10;} .header-navigation .frame-absolute-right{height: 100%; width: calc(240px + 48vw); max-width: 100%;} .header-navigation .frame-absolute-auto .list-item{display: block;} 

#body-header .navigation-fixed{opacity: 0; pointer-events: none;} #body-header .back-blur{opacity: 0;} #body-header .frame-absolute-right{transform: translate(100%,50%);} #body-header .frame-absolute-right .frame-absolute-auto{transform: translate(44%,50%);} #body-header .frame-absolute-right .section-layer-full{opacity: 0;} 

#body-header.toggle .navigation-fixed{opacity: 1; pointer-events: auto;} #body-header.toggle .back-blur{opacity: 1;} #body-header.toggle .frame-absolute-right{transform: translate(0%,50%);} #body-header.toggle .frame-absolute-right .frame-absolute-auto{transform: translate(50%,50%);} #body-header.toggle .frame-absolute-right .section-layer-full{opacity: 1;} 

#body-header.toggle .navigation-fixed{transition: opacity 0s 0s;} #body-header.toggle .back-blur{transition: opacity .87s 0s;} #body-header.toggle .frame-absolute-right{transition: transform .87s 0s;} #body-header.toggle .frame-absolute-right .frame-absolute-auto{transition: transform .71s .71s;} #body-header.toggle .frame-absolute-right .section-layer-full{transition: opacity .71s .71s;} 

#body-header .navigation-fixed{transition: opacity 0s 1.86s;} #body-header .back-blur{transition: opacity .87s .55s;} #body-header .frame-absolute-right{transition: transform .87s .55s;} #body-header .frame-absolute-right .frame-absolute-auto{transition: transform .71s 0s;} #body-header .frame-absolute-right .section-layer-full{transition: opacity .71s 0s;} 

/*[class*="layer-"], [class*="inline-"]{outline: solid 4px blue;}*/ 



/* -------------------------------------------------- main ---------- */

/*[class*="inline-"]{background-color: rgba(0,0,255,0.2);}*/ 
/*[class*="inline-"], [class*="grid-"]{outline: solid 2px rgba(0,0,255,0.2);}*/ 

.js-parallax-item{height: calc(100% + 50px)/*120%*/;}



/* -------------------------------------------------- footer ---------- */

.footer-section .grid-40 .list-link{display: inline-block; margin-right: calc(3 * var(--padding-link)); vertical-align: top;} .footer-section .list-item{display: block;} 


/* -------------------------------------------------- media query ---------- */

@media(max-width: 1039px){
    #html-body{--layer-max: 1040px/*810px*/; --layer-diff: 0.15;}
    
    .grid-75, .grid-67, .grid-62, .grid-50, .grid-38, .grid-33, .grid-fix, .grid-flex{width: 100%;} .grid-25{width: 100%;}[class*="desktop-absolute-"]{position: relative; display: block; right: auto; bottom: auto; transform: translate(0,0);} .inline-brand{width: 50%;} .inline-middle{display: none;} .desktop-sticky-auto{position: relative; top: auto;} .only-mobile{display: block !important;} .only-desktop{display: none !important;} .inline-middle .list-link{display: none;} .padding-sidewide{padding: 0 calc(1 * var(--padding-horizontal) * 100%);} .frame-relative-cloud{padding-top: calc(var(--size-browser) * 0.8);} 
    
    .indent-horizontal-25{padding: 0 5%;} .indent-left-25, .indent-left-33, .indent-left-38{padding-left: 10%;} .indent-right-25, .indent-right-33, .indent-right-38{padding-right: 10%;} .indent-left-50, .indent-left-62{padding-left: 15%;} .indent-right-50, .indent-right-62{padding-right: 15%;} .squeeze-left-62, .squeeze-right-62{width: 90%;} .squeeze-right-62{margin-right: 10%;} .squeeze-left-62{margin-left: 10%;} .squeeze-left-38, .squeeze-right-38{width: 85%;} .squeeze-right-38{margin-right: 15%;} .squeeze-left-38{margin-left: 15%;}
    
	[class*="link-"] p{line-height: calc(16.0px + 0.40vw); font-size: calc(10.0px + 0.25vw);} 
	p, .link-text{line-height: calc(17.2px + 0.43vw); font-size: calc(11.2px + 0.28vw);} 
    h4, .h4, [class*="link-"] .h4{line-height: calc(16px + 0.8vw); font-size: calc(12px + 0.6vw);} 
    h3, .h3, [class*="link-"] .h3{line-height: calc(15px + 1.5vw); font-size: calc(12px + 1.2vw);} 
    h2, .h2, [class*="link-"] .h2, #body-header [class*="link-"] .h1{line-height: calc(19px + 3.8vw); font-size: calc(18px + 3.6vw);} 
    h1, .h1, [class*="link-"] .h1{line-height: calc(20px + 6.0vw); font-size: calc(19px + 5.7vw);} 
    .h0, [class*="link-"] .h0{line-height: 11.0vw; font-size: 12.4vw;} 
    .h0-gap{position: relative; display: inline-block; width: 9.5vw;} 
    
    .list-symbol [class*="symbol-"]{top: 50%;} 
	
	.flex-100{flex-direction: column; height: var(--accordion-mobile); max-height: var(--accordion-mobile);} .js-accordion-item, .js-accordion-item.off, .js-accordion-item.on{width: 100%;} .js-accordion-item{height: calc(100% / var(--accordion-count));} .js-accordion-item.off{height: calc(100% * ((var(--accordion-count) - 1) / var(--accordion-count)) / var(--accordion-count));} .js-accordion-item.on{height: calc(100% * (1 + (var(--accordion-count) - 1) / var(--accordion-count)) / var(--accordion-count));} 
    }
@media(min-width: 1040px){
    #html-body{--layer-max: 2400px; --layer-diff: 0.2;}
    
    .grid-75{width: 75%;} .grid-67{width: 66.67%;} .grid-62{width: 61.8%;} .grid-50{width: 50%;} .grid-40{width: 40%;} .grid-38{width: 38.2%;} .grid-33{width: 33.33%;} .grid-25{width: 25%;} .grid-20{width: 20%;} .gird-fix{width: calc(4 * var(--padding-horizontal) * 100% + 180px);} .grid-flex{width: calc((1 - 4 * var(--padding-horizontal)) * 100% - 180px);} .inline-brand{width: 37.5%;} .inline-middle{display: inline-block;} [class*="desktop-absolute-"]{position: absolute; display: block; bottom: 50%; transform: translate(0,50%);} .desktop-absolute-left{left: 0;} .desktop-absolute-middle{right: 50%; transform: translate(50%,50%);} .desktop-absolute-right{right: 0;} .desktop-sticky-auto{position: sticky; top: 0;} .only-mobile{display: none !important;} .only-desktop{display: inline-block !important;} #main-services .only-desktop, #main-topics .only-desktop{display: block !important;} .inline-middle .list-link{display: block;} .padding-sidewide{padding: 0 calc(1.5 * var(--padding-horizontal) * 100%);} .frame-relative-cloud{padding-top: calc(var(--size-browser) * 0.55);} 
    
    .indent-left-25{padding-left: 25%;} .indent-right-25{padding-right: 25%;} .indent-horizontal-25{padding: 0 12.5%;} .indent-left-33{padding-left: 33.33%;} .indent-right-33{padding-right: 33.33%;} .indent-left-38{padding-left: 38.2%;} .indent-right-38{padding-right: 38.2%;} .indent-left-50{padding-left: 50%;} .indent-right-50{padding-right: 50%;} .indent-left-62{padding-left: 61.8%;} .indent-right-62{padding-right: 61.8%;} .squeeze-left-62, .squeeze-right-62{width: 61.8%;} .squeeze-left-38, .squeeze-right-38{width: 38.2%;} [class*="squeeze-left-"]{margin-left: auto;} [class*="squeeze-right-"]{margin-right: auto;} .mobile-overlay-top{margin-top: 0;} 
    
	[class*="link-"] p{line-height: calc(16.0px + 0.40vw); font-size: calc(10.0px + 0.25vw);} 
	p, .link-text{line-height: calc(17.2px + 0.43vw); font-size: calc(11.2px + 0.28vw);} 
	.written-small{line-height: calc(16.0px + 0.40vw); font-size: calc(10.0px + 0.25vw);} 
    h4, .h4, [class*="link-"] .h4{line-height: calc(14px + 0.7vw); font-size: calc(10px + 0.5vw);} 
    h3, .h3, [class*="link-"] .h3{line-height: calc(13px + 1.3vw); font-size: calc(10px + 1.0vw);} 
    h2, .h2, [class*="link-"] .h2{line-height: calc(17px + 3.4vw); font-size: calc(16px + 3.2vw);} 
    h1, .h1, [class*="link-"] .h1{line-height: calc(18px + 5.4vw); font-size: calc(17px + 5.1vw);} 
    .h0, [class*="link-"] .h0{line-height: calc(23px + 9.2vw); font-size: calc(26px + 10.4vw);} 
    .h0-gap{position: relative; display: inline-block; width: calc(20px + 8.0vw);} 
    
    .list-symbol [class*="symbol-"]{top: 50%;} 
	
	.flex-100{flex-direction: row;} .js-accordion-item, .js-accordion-item.off, .js-accordion-item.on{height: var(--accordion-desktop);} .js-accordion-item{width: calc(100% / var(--accordion-count));} .js-accordion-item.off{width: calc(100% * ((var(--accordion-count) - 1) / var(--accordion-count)) / var(--accordion-count));} .js-accordion-item.on{width: calc(100% * (1 + (var(--accordion-count) - 1) / var(--accordion-count)) / var(--accordion-count));} .js-accordion-item .frame-absolute-lower{min-width: calc(100vw * (1 + (var(--accordion-count) - 1) / var(--accordion-count)) / var(--accordion-count));} 
    }



/* #######################################################################
##################################################### more media #########
####################################################################### */ 



/* -------------------------------------------------- touch ---------- */

@media(pointer: coarse){
    .js-cursor-outer, .js-cursor-inner{display: none;}
}



/* -------------------------------------------------- print ---------- */

@media screen {
    .js-enable [class*="js-fadein-"]{opacity: 0;} .js-enable .js-fadein-slow-left, .js-enable .js-fadein-fast-left{transform: translate(58px,0);} .js-enable .js-fadein-slow-right, .js-enable .js-fadein-fast-right{transform: translate(-58px,0);} .js-enable .js-fadein-slow-up, .js-enable .js-fadein-fast-up{transform: translate(0,29px);} /*.js-enable .js-fadein-down{transform: translate(0,-41px);}*/ .js-enable [class*="js-fadein-"].on{opacity: 1; transform: translate(0,0);} 
    }
@media print {
    .js-enable [class*="js-fadein-"]{opacity: 1;} .js-enable .js-fadein-slow-left, .js-enable .js-fadein-fast-left{transform: translate(0,0);} .js-enable .js-fadein-slow-right, .js-enable .js-fadein-fast-right{transform: translate(0,0);} .js-enable .js-fadein-slow-up, .js-enable .js-fadein-fast-up{transform: translate(0,0);} /*.js-enable .js-fadein-down{transform: translate(0,0);}*/ .js-enable [class*="js-fadein-"].on{opacity: 1; transform: translate(0,0);} 
    }


