
/*************** Global ***************/

* { box-sizing:border-box; }

html { font-size:0.625em; font-family: 'ProximaNova', sans-serif; line-height:1.3; background:#63318A; color:#434343; cursor:default; overflow:hidden; overflow-y: auto; min-width:320px; }
body { font-size:1.4rem; }

img { max-width:100%; height:auto; vertical-align: top; box-sizing: content-box; }

svg { height:auto; }
svg * { fill:currentColor; }

ul, ol, li { list-style: none; padding:0; margin:0; }
a { text-decoration: none; color:currentColor; }
p { margin:1.2em 0; }
blockquote { margin:10px 0; }

section { position: relative; overflow: hidden; }

strong, b { font-weight: 700; }
h1, h2, h3, h4, h5, h6 { display: block; margin:0; padding:0; font-weight:700;  }


/* Forms */

label, select { cursor:pointer; display: block; font-weight: 700; color:#63318a; }
input[type=radio]:checked ~ label { cursor:default; }
input, textarea, select, button { color:#63318a; height:4.2rem; padding:1.3rem 2rem; font-size: 1.4rem; font-weight: 700; background:#fff; border:0; border-radius: 10px; width:100%; max-width: 100%; }
input[type=checkbox], input[type=radio] { padding:inherit; height:auto; }
textarea { min-height: 10rem; min-width: 100%; width: 100% !important; display: block; }
input:focus, textarea:focus { background-color:#f5f5f5; outline: none; }

input[type=checkbox] ~ label,
input[type=radio] ~ label { position: relative; padding-right:2.4em; font-size: 1.4rem; }
input[type=checkbox] ~ label { padding-left:1.5em; padding-right: 0; }
input[type=checkbox], input[type=radio] { left:-100vw; position:absolute; opacity: 0; }
input[type=checkbox] ~ label:before,
input[type=radio] ~ label:before,
input[type=checkbox] ~ label:after,
input[type=radio] ~ label:after { content:' '; display:block; font-size:1em; width:1em; height:1em; border-radius: 1em; background:#fff; position:absolute; right:0; top:50%; margin:0; transform: translateY(-50%); }
input[type=checkbox] ~ label:before,
input[type=checkbox] ~ label:after { border-radius: 0; left:0; right:auto; }
input[type=checkbox] ~ label:after,
input[type=radio] ~ label:after { width:0.4em; height:0.4em; right:0.3em; background:currentColor; transform: scale(0) translateY(-50%); transition:all 0.2s ease-in-out; }
input[type=checkbox] ~ label:after { left:0.3em; }
input[type=checkbox]:checked ~ label:after,
input[type=radio]:checked ~ label:after {  transform: scale(1) translateY(-50%); }

button { width:auto; font-weight:400; padding:2rem 6rem; height:auto; border:0; display: inline-block; text-transform: uppercase; background: none; transition:all 150ms ease-out; }


form ::-webkit-input-placeholder { color:#63318a; opacity:0.8; }
form ::-moz-placeholder { color:#63318a; opacity:0.8; }
form :-ms-input-placeholder { color:rgba(99,49,138,0.8); opacity:1; }
form ::placeholder { color:#63318a; opacity:0.8; }


.responsive-embed { position: relative; padding-bottom: 56.25%; height:0; overflow: hidden; }
.responsive-embed .embeded,
.responsive-embed iframe,
.responsive-embed object,
.responsive-embed embed,
.responsive-embed video { position:absolute; top: 0; left: 0; width: 100%; height: 100%; margin:0; padding:0; }


/***** Header *****/
#header { padding:0; position:relative; left:0; z-index:120; width:100%; background:#fff; box-shadow: 0 -2px 30px rgba(0,0,0,0.2); }
#header.fixed { position:fixed; }

#header .inner { padding:3rem 0 2rem; }

#header .logo { width:290px; height:100%; display:block; float:left; position:relative; z-index:2; overflow:hidden; }
#header .logo img { display:block; transition: all 150ms ease-out; }
#header .logo:active img { transform:scale(0.98); }

#header .wrap-head { padding:1rem 0 0; height:100%; float:right; position:relative; }

#header nav { position: relative; margin:0 0 0 16px; float:left; }
#header nav > ul { display: flex; flex-flow: row nowrap; }
#header nav li a { font-size: 1.8rem; color:#63318A; font-weight:400; display: block; -webkit-user-select: none; user-select: none; }
#header nav li a span { display: block; position: relative; }
#header nav li.level-1 { position: relative; display:block; }
#header nav li:hover > a,
#header nav li.active > a { color:#f8b547; }
#header nav li.level-1 > a span:before { content:' '; display: block; position: absolute; opacity: 0; height:3px; width:100%; left:0; top:100%; background: currentColor; transition:all 150ms ease-out; }
#header nav li.level-1:hover > a span:before,
#header nav li.level-1.active > a span:before { opacity:1; }
#header nav li.level-1:active > a span:before { opacity:0.8; transform: scaleX(0.5); }
#header nav li.level-1 > a { text-transform: uppercase; padding:1.5rem 2.4rem; }
#header nav li.level-1 > a span {  }
#header nav li.level-1.has-menu > a span:after { content:' '; border:0.7rem solid transparent; border-top-color:#f8b547; display: block; position: absolute; top:50%; left:100%; transform: translate(50%,-25%); }

#header nav li.level-1 > ul {  margin:-20px 0 0; width:320px; overflow:hidden; padding:0; height:0; opacity:0; position:absolute; z-index:1; left:14px; top:100%; transition:all 150ms ease-out; }
#header nav li.level-1:hover > ul { height:auto; opacity:1; margin-top:-15px; }
#header nav li.level-1 > ul li { background:#fff; }
#header nav li.level-1 > ul li:first-child { margin-top:1.5rem; }
#header nav li.level-1 > ul li a { padding:0.5rem 1.5rem; font-size: 1.6rem; }
#header nav li.level-1 > ul li:last-child a { padding-bottom:1.5rem; }

#header .ham-nav { display:none; }

#header .social { float:left; margin:8px 0 0; transition: all 150ms ease-out; }
#header .social li { float:left; margin:0 0 0 10px; text-align: center; }
#header .social li a { overflow:hidden; display:block; font-size:34px; width:1em; height:1em; line-height:1em; border-radius:1em; background:#f8b547; transition: all 150ms ease-out; }
#header .social li a img { vertical-align: middle; position: relative; top:-0.07em; }
#header .social li a:hover { box-shadow:inset 0 0 0 1em rgba(255, 255, 255, 0.2); }
#header .social li a:active { transform:scale(0.9); }

#header .switch-language { position: absolute; top:0; right:0; z-index: 200; padding:0 14px; background:#63318A; color:#fff; border-radius: 0 0 10px 10px; }
#header .switch-language li { display: inline-block; font-size:1.4rem; }
#header .switch-language li:hover,
#header .switch-language li.active { color:#f8b547; }
#header .switch-language li.active { font-weight: 600; }
#header .switch-language li a { display:block; padding:2px 5px 3px; position: relative; }
#header .switch-language li a:before { content:' '; display: block; position: absolute; right:-4px; top:25%; height:50%; border-right:1px solid #fff; }
#header .switch-language li:last-child a:before { display: none; }


/***** Footer *****/
#footer { background:#63318A; color:#fff; text-align: right; padding:8px 0 14px; }
#footer .copyright { font-size: 1.2rem; }
#footer .copyright > * { vertical-align:bottom; display: inline-block; padding:4px 16px; border-right:1px solid #fff; }
#footer .copyright > :last-child { padding-right:0; border:0; }
#footer .copyright img {  vertical-align:bottom; width:86px; position: relative; top:1px; padding:0 0 0 3px; }
#footer .copyright a:hover { text-decoration: underline; }


/***** General *****/
#wrapper { overflow:hidden; background:#fff; }

.wrapper { max-width:1100px; padding:0 25px; margin:0 auto; position: relative; }
.wrapper:after, .inner:after { content:''; display:table; clear:both; }

section { padding:40px 0; }

.wrap-btn { text-align: center; }
.btn { display:inline-block; cursor:pointer; background:#63318a; color:#fff; text-transform: uppercase; text-align: center; font-size: 1.8rem; padding:0.8rem 2.4rem; border-radius:1rem; transition: all 150ms ease-out; }
.btn:hover { transform: scale(1.03); }

.colored { color:#63318a; }
.size-medium { font-size: 1.8rem; }

.separator { display: block; height:18px; color:#F9B548; background:currentColor; }
.line { display: block; height:1px; color:#025F71; margin:3.8rem 0; background:currentColor; }

.title { font-size: 3.6rem; font-weight: 400; margin:0 0 2.5rem; line-height:1.2em; padding:0; text-transform: uppercase; color:#63318a; }
.title.centered { text-align: center; padding:0 0 1.8rem; position: relative; }
.title.centered:after { content:' '; display: block; border-bottom:1px solid #F8B648; width:200px; position: absolute; bottom:0; left:50%; transform: translateX(-50%); }



.content-editor { line-height:1.3; }
/*.content-editor > :last-child { margin-bottom:0 !important; }*/
.content-editor p { margin:2rem 0; line-height:1.45em; }
.content-editor ul, .content-editor ol { margin:1.5rem 0; padding:0; }
.content-editor ol { counter-reset:ols; }
.content-editor li { margin:1.2rem 0 1.2rem 3rem; position:relative; }
.content-editor ul li:before { content:''; position:absolute; left:-1.6rem; top:0.6rem; width:0.6rem; height:0.6rem; border-radius:9rem; background:currentColor;  }
.content-editor ol li:before { counter-increment: ols; content: counter(ols)'.'; position:absolute; right:100%; margin:0 3px 0 0; color:currentColor; font-weight: 700; }
.content-editor a { text-decoration: underline; color:#63318a; }
.content-editor a:hover { opacity:0.95; }
.content-editor img { height:auto !important; }

.content-editor .cols-two { display: flex; }
.content-editor .cols-two > div { padding:0 9rem 0 0; }
.content-editor .cols-two > div:last-child { padding-right:0; }



/***** Sections *****/


#section-home { position: relative; height:49rem; padding:0; }
#section-home .backgrounds { position: absolute; left:0; top:0; bottom:0; right:0; z-index:1; }
#section-home .backgrounds b { opacity:0; background:no-repeat 50% 50%; background-size: cover; position: absolute; left:0; right:0; top:0; bottom:0; transition: all 700ms ease-out;  }
#section-home .backgrounds b.active { opacity:1; z-index:1; }
#section-home .overlay { position: absolute; top:0; left:0; right:0; bottom:0; z-index:2; background:rgba(0,0,0,0.3); }
#section-home .wrapper { display: flex; align-items:center; position: relative; z-index:10; height:100%; }
#section-home .wrapper .links { margin:auto; text-align: center; }
#section-home .wrapper .links a { display: inline-block; padding:30px; }
#section-home .wrapper .links a img { transition:all 200ms ease-out; }
#section-home .wrapper .links a:hover img { transform:translateY(-1.2rem); }
#section-home .wrapper .links a:active img { transform:translateY(-1.2rem) scale(0.9); }


#section-about-us {  }
#section-about-us .content { display: flex; flex-flow: row nowrap; margin:0 -15px; }
#section-about-us .content .text { flex:1 0; text-align: justify; padding:0 15px; }
#section-about-us .wrap-btn { margin:30px 0; }
#section-about-us .wrap-btn .btn .hide { display: none; }
#section-about-us.toggle-histo .wrap-btn .hide { display: block; }
#section-about-us.toggle-histo .wrap-btn .show { display: none; }
#section-about-us .histo { text-align: center; height:0; visibility: hidden; opacity:0; }
#section-about-us.toggle-histo .histo { height:auto; visibility: visible; opacity: 1; transition: all 200ms ease-out; }
#section-about-us .histo .head { padding:20px 0 0; }
#section-about-us .histo .list { position: relative; padding:2rem 0 3rem; margin:-1rem 0 0; }
#section-about-us .histo .list:before { content:' '; display: block; position: absolute; height:100%; top:0; left:50%; transform: translateX(-50%); border-radius:9rem; width:5px; background:#63318A; }
#section-about-us .histo .list .item { text-align: left; width:50%; position: relative; z-index:1; }
#section-about-us .histo .list .item.active {  }
#section-about-us .histo .list .item .count { position: absolute; left:100%; transform: translate(-50%,-50%); display: flex;  align-items:center; background:#F8B03A; font-size:6.8rem; width:1em; height:1em; border-radius:1em; }
#section-about-us .histo .list .item .count span { display: block; margin:auto; color:#fff; font-size: 2.8rem; font-weight: 700; }
#section-about-us .histo .list .item .date { position: relative; text-transform: uppercase; color:#F8B03A; font-weight: 700; font-size: 3.6rem; padding:0 6rem 0.5rem 0; }
#section-about-us .histo .list .item .date:after { content:' '; position: absolute; bottom:0; right:0; width:100%; border-bottom:2px solid currentColor; }
#section-about-us .histo .list .item .date span { display: block; }
#section-about-us .histo .list .item .text {  padding:0 8rem 0 0; text-align: justify; }
#section-about-us .histo .list .item .text strong { color:#63318a; }
#section-about-us .histo .list .item:nth-child(2n) { margin-left:50%; }
#section-about-us .histo .list .item:nth-child(2n) .date { text-align: right; padding-left:6rem; padding-right: 0; }
#section-about-us .histo .list .item:nth-child(2n) .date:after { right:auto; left:0; }
#section-about-us .histo .list .item:nth-child(2n) .count { left:0; }
#section-about-us .histo .list .item:nth-child(2n) .text { padding:0 0 0 8rem; }
#section-about-us .histo .list .item + .item { margin-top:-2rem; }
/* animate */
#section-about-us .histo .list .item .count span { opacity:0; transform: rotate(90deg); }
#section-about-us .histo .list .item:nth-child(2n) .count span { transform: rotate(-90deg); }
#section-about-us .histo .list .item.active .count span { opacity:1; transform: rotate(0deg); transition: all 350ms ease-in; }
#section-about-us .histo .list .item .date span { opacity:0; transform: translateX(30%); }
#section-about-us .histo .list .item:nth-child(2n) .date span { transform: translateX(-30%); }
#section-about-us .histo .list .item.active .date span { opacity:1; transform: translateX(0); transition: all 400ms ease-out 300ms; }
#section-about-us .histo .list .item .text { opacity:0; }
#section-about-us .histo .list .item.active .text { opacity:1; transition: all 400ms ease-out 500ms; }
#section-about-us .histo .list .item .date:after { width:0; }
#section-about-us .histo .list .item.active .date:after { width:100%; transition: all 400ms ease-out 300ms; }


#section-services {  }
#section-services .items { display: flex; flex-flow: row wrap; align-items: center; justify-content: center; }
#section-services .items .item { flex:1 0; min-width:33%; text-align: center; padding:3rem 2rem; }
#section-services .items .item .logo { display: block; transition: all 150ms ease-out; }
#section-services .items .item .logo img { transition: all 250ms ease-out; }
#section-services .items .item:hover .logo img { transform: translate(0.4rem,-1.2rem); }
#section-services .items .item:active .logo { transform:scale(0.96); }
#section-services .items .item .text { word-break: break-word; position: relative; display:inline-block; text-transform: uppercase; padding:0.6rem 0 0; color:#63318a; font-weight: 700; font-size: 1.8rem; }
#section-services .items .item .ll { position: absolute; top:100%; left:0; width:100%; display: block; height:1px; background: currentColor; transition: all 100ms ease-out; }
#section-services .items .item:hover .ll { height:3px; }


#section-news {  }
#section-news .items { max-height:1200px; overflow: auto; }
#section-news .items .item { margin:3rem 2rem; padding:1rem 0 2rem; border-bottom: 1px solid #63318A; }
#section-news .items .item:last-child { border:0; }
#section-news .items .item .tt { font-size: 2.4rem; font-weight: 700; }


#section-contact { font-size: 1.8rem; background:#F9B548 url('../img/bg-contact.png') repeat-x 0 0; color:rgba(255,255,255,0.95); padding:4.8rem 0 3rem; }
#section-contact .title { color:currentColor; }
#section-contact .title.centered:after { border-bottom-color:currentColor; }
#section-contact .cols { display: flex; margin:3rem 0; }
#section-contact .cols > div { padding:0 5.2rem 0 0;  }
#section-contact .cols > div:last-child { padding:0; }
#section-contact .cols .content-editor p { margin:0 0 0.7rem; }
#section-contact .cols div .icon { float:left; margin:0 2rem 0 0; display:flex; align-items: center; font-size:76px; width:1em; height:1em; border-radius:1em; border:1px solid rgba(255,255,255,0.6); }
#section-contact .cols div .icon .inner-icon { margin:auto; }
#section-contact .cols div .icon .inner-icon img { display: block; }
#section-contact .cols div .icon + div { overflow: hidden; }
#section-contact .intro { font-size: 2.4rem; text-transform: uppercase; }
#section-contact form .field--id .group { display: flex; flex-flow: row nowrap; justify-content: space-between; }
#section-contact form .field--id .group .wrapper-field { flex:32% 0; margin:2rem 0; }
#section-contact form .field--intro_dispo { text-transform: uppercase; }
#section-contact form .field--intro_dispo span { text-transform:none; }
#section-contact form .field--dispos > .group { display: flex; flex-flow: row nowrap; align-items: center;  justify-content: space-between; }
#section-contact form .field--dispos .field--days { padding:2rem 0; }
#section-contact form .field--dispos .field--days .element { display: flex; flex-flow: row wrap; }
#section-contact form .field--dispos .field--days .element .option { padding:1rem 6rem 0 0; }
#section-contact form .field--dispos .field--hours { padding:0; min-width:32%; }
#section-contact form .field--msg { margin:2.4rem 0 0; }
#section-contact form .field--optional { font-size: 1.4rem; margin:1rem 0 0; }
#section-contact form .field--btn { margin:2rem 0 0; }
#section-contact form .field--btn .element { display: flex; align-items: center; }
#section-contact form .field--btn .btn { padding:1.2rem 4.8rem; margin-right: 2rem; }
#section-contact form .field--btn .msg { font-size: 1.6rem; }
#section-contact form .btn[disabled] { opacity: 0.8; cursor:wait; transform: none; }


#section-service {}
#section-service .cols { display: flex; }
#section-service .cols > div { flex:1 0; }
#section-service .cols > div:first-child { padding-right: 3.8rem; }
#section-service .cols .content { text-align: justify; }
#section-service .cols .pictures .item { margin:0 0 2.4rem; display: none; position: relative; overflow: hidden; }
#section-service .cols .pictures .item.active { display: block; }
#section-service .cols .pictures .item:last-child { margin:0; }
#section-service .cols .pictures .item .n { position: absolute; left:0; top:0; z-index:1; }
#section-service .infos .subtitle { text-transform: uppercase; margin:0 0 2rem; }
#section-service .infos .content .cols-two > div:first-child { padding-right:3.3rem; flex:40% 0 0;  }
#section-service .infos .content { text-align: left; }
#section-service .infos .content p { margin:1.3rem 0; }
#section-service .infos .content img { margin:2rem 0 1rem; }
#section-service .infos .wrap-btn { text-align: left; margin:2rem 0; }
#section-service .infos .wrap-btn .btn { background:currentColor; }
#section-service .infos .wrap-btn .btn span { color:#fff; }
#section-service .infos .maps { margin:3rem 0 0; }


#section-404 {  }
#section-404 .content { font-size: 8rem; text-align: center; font-weight: 700; padding:4rem 0; }





/* ****** RESPONSIVE ****** */



@media screen and (max-width:1100px) {


    /***** Header *****/

    #header .switch-language { right:2rem; }

    #header .logo { width:260px; }

    #header .wrap-head { margin:0; position: absolute; z-index:99; left:0; height:100vh; padding:2rem 1.5rem 1rem; transform:translateX(-20rem); top:0; right:100%; opacity:0; background:rgba(99,49,138,0.9); background-clip: padding-box; border:0; transition:opacity 200ms ease-out, transform 350ms ease-out, border 400ms ease-out 50ms; }
    #header.opened .wrap-head { right:0; opacity:1; transform:translateY(0); border-right:80px solid rgba(255,255,255,0.5); overflow:hidden; overflow-y:auto; height:100vh; }

    #header nav { display:block; margin:0; float:none; overflow: hidden; }
    #header nav > ul { display: block; }
    #header nav li.level-1 > a { font-weight:400; color:#fff; padding:1rem 2rem; }
    #header nav li:hover > a { background:rgba(255,255,255,0.1); color:#f8b547 !important; }
    #header nav li.level-1 > a span {  border:0 !important; }
    #header nav li.level-1 { border:solid rgba(255,255,255,0.9); border-width:0 0 1px; }
    #header nav li.level-1,
    #header nav li.level-1 > ul { width:100%; text-align:center; }
    #header nav li.level-1 > a span { padding:0; }
    #header nav li.level-1 > a span:before { display: none; }
    #header nav li.level-1 > ul { position: relative; left:0; top:0; height:auto; opacity:1; margin:0 !important; padding:0 !important; }
    #header nav li.level-1 > ul li { background:none; margin:0 !important; }
    #header nav li.level-1 > ul li { border:solid rgba(255,255,255,0.3); border-width:0 0 1px; }
    #header nav li.level-1 > ul li a { padding:0.8rem 0; color:#fff; opacity:0.85; }
    #header nav li.level-1 > ul li:last-child a { padding-bottom: 1rem; }
    #header nav li.level-1.has-menu > a span:after { display: none; }


    #header .social { margin:20px 0; float:none; text-align:center; }
    #header .social li { float:none; display: inline-block; }

    #header .ham-nav { position:absolute; z-index:100; top:30px; right:0; margin:22px 0 0; display:block; cursor:pointer; height:4px; border:20px solid transparent; width:45px; color:#78756E; background:currentColor; background-clip: content-box; box-sizing: content-box; -webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: rgba(255, 255, 255, 0); }
    #header .ham-nav:before,
    #header .ham-nav:after { content:' '; display: block; position: absolute; width:100%; height:100%; background:currentColor; transition:top 150ms ease-out 100ms, transform 150ms ease-out; }
    #header .ham-nav:before { top:-11px;  }
    #header .ham-nav:after { top:11px; }
    #header .ham-nav:hover:before { top:-14px;  }
    #header .ham-nav:hover:after { top:14px; }
    #header.opened .ham-nav { background-color:transparent; }
    #header.opened .ham-nav:before,
    #header.opened .ham-nav:after { top:0; transform:rotate(-45deg); transition:top 150ms ease-out, transform 150ms ease-out 100ms; }
    #header.opened .ham-nav:after { transform:rotate(45deg); }

    #header .ham-nav { visibility: hidden; opacity:0; transform:translateY(-20px); transition:opacity 550ms ease-out 300ms, transform 550ms ease-out 300ms; }
    .lets-start #header .ham-nav { visibility:visible; opacity:1; transform:translateY(0); }


}



@media screen and (max-width:1000px) {


    .cols .content-editor .cols-two { display: block; }


}



@media screen and (max-width:800px) {


    /***** Sections *****/

    #section-service .cols { display: block; }
    #section-service .cols > div:first-child { padding:0; }
    #section-service .cols .pictures { margin:0; }
    #section-service .cols .picture { margin:2rem 0 0; }

}


@media screen and (max-width:600px) {

    html { font-size:0.6em }

    .responsive-embed { padding-bottom: 65%; }

    .title { font-size: 3rem; }

    .content-editor .cols-two { display: block; }
    .content-editor .cols-two > div { padding:0; }


    /***** Header *****/

    #header .logo { width:200px; }

    #header .ham-nav { top:20px; }

    /***** Footer *****/

    #footer .copyright > * { padding:1rem; display: block; border:0; border-bottom:1px solid rgba(255,255,255,0.2); }
    #footer .copyright > :last-child { padding-top:2rem; }


    /***** Sections *****/

    #section-about-us .content { display: block; }
    #section-about-us .histo .list:before { left:2rem; }
    #section-about-us .histo .list .item { width:100% !important; padding:2rem 0 1rem 5rem; }
    #section-about-us .histo .list .item .date { font-size:2.4rem; text-align: center !important; padding:0 !important; }
    #section-about-us .histo .list .item .count { left:2rem !important; }
    #section-about-us .histo .list .item .text { padding:0 0 0 2rem !important; }
    #section-about-us .histo .list .item:nth-child(2n) { margin-left:0; }


    #section-services .items .item { min-width:50%; }

    #section-contact .cols,
    #section-contact form .field--id .group,
    #section-contact form .field--dispos > .group { display: block; }
    #section-contact .cols > div { margin:2rem 0; }
    #section-contact .intro,
    #section-contact form .field--intro_dispo { text-align: center; }
    #section-contact form .field--dispos .field--days .element .option { flex: 1 0;  }


}

