/*
Purple        #9b4dca
Grey lighter  #f4f5f6
Grey light    #e1e1e1
Grey          #d1d1d1
Grey Dark     #606c76
*/

* {margin:0; padding:0; box-sizing: border-box; border-color:#ddd;}
html{ text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; font-smooth: always; -moz-osx-font-smoothing: grayscale; } /* OSX Improvement */
body { color: #606c76; }
::-webkit-input-placeholder, ::-moz-placeholder, :-ms-input-placeholder, input:-moz-placeholder { color: #777; }

/* tag based reset */
article, aside, footer, header, nav, section, figcaption, figure, main, detail, menu { display: block; }
audio, canvas, video { display: inline-block; }
img { border-style: none; }
section { position: relative; }
button, input, optgroup, select, textarea { font-size: 100%; }
progress { display: inline-block; vertical-align: baseline; }
ol, ul, li { list-style:none; vertical-align: top;}
table { width:100%; border-collapse: collapse; border-spacing: 0; border:0 }
table th, table td { text-align:left;display:table-cell !important; }
a, a:hover, a:active, a:focus { text-decoration: none; outline: 0; cursor: pointer; }
a:not([href]):not(.u-pointer):not(.o-button) { cursor: default }
a.is-disable { cursor: default }

img, input { width: 100%; }

h1,h2,h3 {font-weight: 300; /*letter-spacing: -.1rem;*/ margin-bottom: 2rem; margin-top: 0;}
h4,h5,h6 {font-weight: 300; /*letter-spacing: -.1rem;*/ margin-bottom: 1rem; margin-top: 1rem;}
h1 {font-size: 4.6rem;line-height: 1.2;}
h2 {font-size: 3.6rem;line-height: 1.25;}
h3 {font-size: 2.7rem;line-height: 1.3;}
h4 {font-size: 2.2rem;/*letter-spacing: -.08rem;*/line-height: 1.35;}
h5 {font-size: 1.8rem;/*letter-spacing: -.05rem;*/line-height: 1.5;}
h6 {font-size: 1.6rem;/*letter-spacing: 0;*/line-height: 1.4;}

hr{ height: 1px; background-color: #ddd; border:none; }

table td.is-num, table td.is-date, table.u-fit th:last-of-type, table.u-fit td:last-of-type { text-align: right; }
table td.is-num, table td.is-date { white-space: nowrap; }
table th[colspan]:last-of-type, table td[colspan]:last-of-type{ text-align: left; }
table th > a{ display: inline-block; }

/* ===================
   Default Forms behaviors
   =================== */

input + span{ vertical-align: middle; }

input[type=checkbox], input[type=radio]{ vertical-align: middle; height: 2.4rem; margin-bottom: 0.3rem; }
td > input[type=checkbox], td > input[type=radio] { vertical-align: sub; }
input[type='checkbox']:not(:last-child), input[type="radio"]:not(:last-child) { margin-right: 1rem; }
label + input[type='checkbox'], label + input[type="radio"] { margin-left: 1rem; margin-right: inherit; }
button, textarea, input, select, input:focus, select:focus, textarea:focus, button:focus, [contenteditable]:focus { outline: 0; }
input[type='range'], input::-moz-focus-outer { border: none !important; }
input[type='range']:-moz-focusring, select:-moz-focusring { color: transparent; text-shadow: 0 0 0 #000; } /* MOZ FIX */
input[type='range']:-moz-focusring *, select:-moz-focusring * { color: #000; text-shadow: none; } /* MOZ FIX */
select::-ms-expand { display: none; } /* IE FIX */
input::-ms-clear { display: none; } /* IE FIX */
:-webkit-autofill { -webkit-box-shadow: 0 0 0 1000px white inset !important; } /* CHROME FIX */ 

.t-form--plus input:not([type=checkbox]):not([type=radio]):not(.u-display--double), .t-form--plus textarea, .t-form--plus select{ height: 3.8rem; padding: 0.6rem 1rem; line-height: 1.8rem; }
.t-form--plus textarea { line-height: 2.5rem; }
.t-form--plus input, .t-form--plus select, .t-form--plus textarea { background-color:#fff; -moz-transition: border-color 0.3s ease; -webkit-transition: border-color 0.3s ease; -o-transition: border-color 0.3s ease; transition: border-color 0.3s ease; background-position: center right 0.6rem; background-repeat: no-repeat; }
.t-form--plus input, .t-form--plus textarea, .t-form--plus select, .t-form--plus keygen { -webkit-border-radius: 0px; -moz-border-radius: 0px; border-radius: 0px; -webkit-appearance: none; -moz-appearance: none; -o-appearance: none; appearance: none; box-shadow: none; border: 0.1rem solid #d1d1d1; /*box-shadow: none; SC: allow invalid to work*/ width: 100%; }
.t-form--plus select { background: #fff url("icons.svg#select") center right 0.6rem no-repeat; background-size: 24px 24px;	/* <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 29 14'><path fill='%23444' d='M9.37727 3.625l5.08154 6.93523L19.54036 3.625'/></svg>" */ }
.t-form--plus .is-valid:focus, .t-form--plus .is-licit:not(.t-special):not(.is-invalid).is-visited:valid:focus { padding-right: 3rem; border-color: #6bde6b !important; outline: 0; box-shadow: none; border-style: solid; background: #fff url("icons.svg#valid-ok") center right 0.6rem no-repeat;	/* <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='%23f34343' d='M15.898,4.045c-0.271-0.272-0.713-0.272-0.986,0l-4.71,4.711L5.493,4.045c-0.272-0.272-0.714-0.272-0.986,0s-0.272,0.714,0,0.986l4.709,4.711l-4.71,4.711c-0.272,0.271-0.272,0.713,0,0.986c0.136,0.136,0.314,0.203,0.492,0.203c0.179,0,0.357-0.067,0.493-0.203l4.711-4.711l4.71,4.711c0.137,0.136,0.314,0.203,0.494,0.203c0.178,0,0.355-0.067,0.492-0.203c0.273-0.273,0.273-0.715,0-0.986l-4.711-4.711l4.711-4.711C16.172,4.759,16.172,4.317,15.898,4.045z'></path></svg> */ background-size: 24px 24px; }
.t-form--plus .is-invalid/*, .t-form--plus form.invalid:not(.t-special):invalid*/, .t-form--plus .is-visited:not(.t-special):invalid { padding-right: 3rem; border-color: #f34343 !important; outline: 0; box-shadow: none; border-style: solid; background: #fff url("icons.svg#invalid") center right 0.6rem no-repeat;	/* <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'><path fill='%236bde6b' d='M7.629,14.566c0.125,0.125,0.291,0.188,0.456,0.188c0.164,0,0.329-0.062,0.456-0.188l8.219-8.221c0.252-0.252,0.252-0.659,0-0.911c-0.252-0.252-0.659-0.252-0.911,0l-7.764,7.763L4.152,9.267c-0.252-0.251-0.66-0.251-0.911,0c-0.252,0.252-0.252,0.66,0,0.911L7.629,14.566z'></path></svg> */ background-size: 24px 24px; }
.t-form--plus input[type=checkbox], .t-form--plus input[type=radio] { padding-right: initial !important; }
.t-form--plus input[type=checkbox], .t-form--plus input[type=radio] { background-color: #fff; background-image: none !important; width: 1.8rem; max-width: 1.8rem; height: 1.8rem; max-height: 1.8rem; display: inline-block; border: 0.1rem solid #d1d1d1; background-position: 50% 50%; }
.t-form--plus input[type=checkbox]:checked{ background-image: url("icons.svg#valid") !important; background-size: contain; }
.t-form--plus input[type=radio]:checked { background-image: url("icons.svg#disc") !important; background-size: 50%; }
.t-form--plus input:not([type=checkbox]):not([type=radio]):focus, .t-form--plus textarea:focus, .t-form--plus select:focus { border-color: #000; border-style: solid; }
.t-form--plus input[type=radio] { -webkit-border-radius: 10rem; -moz-border-radius: 10rem; border-radius: 10rem; }
/*.t-form--plus input:optional, .t-form--plus select:optional, .t-form--plus textarea:optional { border-style: dashed;}*/
.t-form--plus input:disabled:not([type=checkbox]), .t-form--plus select:disabled, .t-form--plus textarea:disabled { color: rgba(0,0,0,0.3); border-style: solid; background-color: rgba(255,255,255,0.8); }
.t-form--plus input[type=checkbox]:disabled { color: rgba(0,0,0,0.5); border-style: solid; background-color: rgba(255,255,255,0.8); }

/* temp for now */
input {border:1px solid #999}
.o-hint { /* simple way to make hint-input */}
.o-hint-item {padding-top:0.5rem}
.o-hint-head {transform: scale(0.8); transform-origin: left center; transition: all 0.1s ease; display: block; opacity: 0.5;pointer-events: none;}
.o-hint-item.is-hint .o-hint-head {transform: scale(1.0) translate(1rem, 115%)}
.o-hint-item input[type=email]::placeholder {color: transparent;}

/* ===================
   o-(bject) namespace
   =================== */

.o-info { padding: 1rem; } 
.o-block { display: block; }
.o-box { display: inline-block; vertical-align: top; }

.o-cycl { /* horizontal slideshow (image, div,... ) */}
.o-cycl {   position: relative; overflow: hidden }
.o-cycl:before { content: ""; display: block; padding-bottom: 75%; }
.o-cycl-item { display: block; position: absolute; top: 0; left: 0; right: 0; bottom: 0; z-index: 1 }
.o-cycl-item { transition: transform 0.4s ease; -webkit-transform:translate(100%, 0);-moz-transform:translate(100%, 0);-ms-transform:translate(100%, 0);-o-transform:translate(100%, 0);transform:translate(100%, 0); }
.o-cycl-item:nth-child(1) { -webkit-transform:translate(-100%, 0);-moz-transform:translate(-100%, 0);-ms-transform:translate(-100%, 0);-o-transform:translate(-100%, 0);transform:translate(-100%, 0); }
.o-cycl-item:nth-child(2) { -webkit-transform:translate(0, 0);-moz-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0); }
.o-cycl-prev { display: inline-block; position: absolute; top: 50%; left: 0.2em; z-index: 3; -webkit-transform:translate(0, -50%);-moz-transform:translate(0, -50%);-ms-transform:translate(0, -50%);-o-transform:translate(0, -50%);transform:translate(0, -50%); font-size: 3em; color: white; /*text-shadow: 2px 2px 3px black*/ }
.o-cycl-next { display: inline-block; position: absolute; top: 50%; right: 0.2em; z-index: 3; -webkit-transform:translate(0, -50%);-moz-transform:translate(0, -50%);-ms-transform:translate(0, -50%);-o-transform:translate(0, -50%);transform:translate(0, -50%); font-size: 3em; color: white; /*text-shadow: 2px 2px 3px black*/ }

.o-togl { /* simple open/close object, ex: <div.o-togl-head>Titre</div><div.o-togl-body>Paragraphe invisible</div> + general jquery delegation on all .o-togl-head.on(click) */}
.o-togl, .o-togl-head, .o-togl-icon { position: relative; }
.o-togl-head { border-bottom: 1px solid #ddd; cursor: pointer; }
.o-togl-head::after {content: '\e80a'; font-family: fontello;transform: scale(0.3) rotate(0deg); position: absolute; right: 0; top: 0; transition: all 0.3s ease;}
.o-togl.is-open .o-togl-head::after, .o-togl-head.is-open::after { transform: scale(0.3) rotate(90deg); }

.o-button { height: inherit; line-height: 2.4rem; padding: 0.6rem 3rem; background-color: #9b4dca; border: 0.1rem solid #9b4dca; color: #fff; cursor: pointer; display: inline-block; font-size: 1.2rem; font-weight: 700; }
.o-button { letter-spacing: .1rem; text-align: center; text-decoration: none; text-transform: uppercase; white-space: nowrap;}
.o-button:focus, .o-button:hover { background-color: #606c76; border-color: #606c76; color: #fff; outline: 0; }
.o-button:not(:disabled):not(.is-disable), .o-button:not(:disabled):not(.is-disable):hover{ cursor:pointer; }
.o-button[disabled] { cursor: default; opacity: .5; }
.o-button[disabled]:focus, .o-button[disabled]:hover { background-color: #9b4dca; border-color: #9b4dca;}
.o-button + .o-button, span + .o-button {margin-left:2rem}
.o-button.t-outline {background-color: transparent; color: #9b4dca;}
.o-button.t-outline:focus, .o-button.t-outline:hover {background-color: transparent; border-color: #606c76; color: #606c76;}
.o-button.t-outline[disabled]:focus, .o-button.t-outline[disabled]:hover{ border-color: inherit; color: #9b4dca;}
.o-button.t-clear {background-color: transparent; color: #9b4dca; border-color:transparent !important}

.o-button + .o-button { margin-left:1rem }

.o-button.a-size--l { font-size: 1.6rem; line-height: 1.4em; padding:0.57rem 4rem; height:auto;}
.o-button.t-border--l { line-height: 2.2rem; }

.icon.a-size--s, .mdi.a-size--s { font-size:0.7em; }
.icon.a-size--m, .mdi.a-size--m, .icon.a-size, .mdi.a-size { font-size:1.6em; }
.icon.a-size--l, .mdi.a-size--l { font-size:2em; }
.icon.a-size--xl, .mdi.a-size--xl { font-size:3em; }

/*.icon, .mdi {vertical-align: middle;} removed SC...*/ 

.o-map { border: none; width: 100%; height: 300px; }

.o-chart { margin: 3rem auto; border: none; width: 100%; height: 300px; }

.o-mbox { /* mbox */ }
.o-mbox-tool {position:relative;padding-bottom:3rem;z-index:1}
.o-mbox-list > li, .o-mbox-thread > li {list-style:none;background:transparent;border-bottom:1px solid #1f3763;padding:1rem;margin:0;line-height:initial}
.o-mbox-list > li:nth-child(2n), .o-mbox-thread > li:nth-child(2n) {background:white}
.o-mbox-thread .o-mbox-body {background:white;margin-top:1rem}
.o-mbox-list .o-mbox-compose, .o-mbox-thread .o-mbox-reply {background:white}
.o-mbox-thread .o-mbox-reply {border:0}
.o-mbox-thread .o-mbox-head, .o-mbox-thread .o-mbox-body,.o-mbox-thread .o-mbox-date,.o-mbox-thread .o-togl-head:after {padding:1rem}
.o-mbox select, .o-mbox input:not([type='checkbox']):not([type='radio']) {height: 3.8rem; padding: .6rem 1.0rem; width: 100%; max-width:none}

.o-covr {	/* mini-lightbox */ }
.o-covr-back { position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: 1100; background: rgba(0, 0, 0, 0.3) }
.o-covr-main { position: fixed; top: 50%; left: 50%; -webkit-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); -o-transform: translate(-50%, -50%); transform: translate(-50%, -50%); background: white; padding: 2rem; -webkit-border-radius: 0.5rem; -moz-border-radius: 0.5rem; border-radius: 0.5rem; }
.o-covr-main { max-width: 640px; }
.o-covr-body { min-height: 5rem; max-height: 80vh; overflow: auto; }
.o-covr-foot { margin-top: 2rem; text-align: right }
.o-covr-foot:empty { margin-top: 0 }

.o-tipr {	/* mini-tooltip */ }
.o-tipr { position:absolute;z-index:1101;background:white;background:rgba(0,0,0,0.7);color:#fff}
.o-tipr { padding:1rem; border-radius:1rem}
.o-tipr::before { content: " ";display: block; opacity:0.7; width: 0px;height: 0px;position: absolute; border-left: 5px solid transparent;border-right: 5px solid transparent;}
.o-tipr-nw, .o-tipr-ne { margin-top:5px}
.o-tipr-sw, .o-tipr-se { margin-bottom:5px}
.o-tipr-ne, .o-tipr-se { margin-right:-15px}
.o-tipr-nw, .o-tipr-sw { margin-left:-15px}
.o-tipr-nw::before, .o-tipr-ne::before { border-bottom: 5px solid #000;}
.o-tipr-sw::before, .o-tipr-se::before { border-top: 5px solid #000;}
.o-tipr-nw::before { left: 10px;top: -5px; }
.o-tipr-ne::before { right: 10px;top: -5px; }
.o-tipr-sw::before { left: 10px;bottom: -5px; }
.o-tipr-se::before { right: 10px;bottom: -5px; }

.o-dico-help:hover { box-shadow:0 0 0.3rem green }

.o-overlay { z-index:10; position: absolute; top: 0px; left:0px; width:100%; height:100%; background-color: rgba(255,255,255,0.8); text-align: center; }
.o-overlay > div { position: absolute; top: 50%; left:50%; -webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);-o-transform:translate(-50%, -50%);transform:translate(-50%, -50%);  }
.o-overlay .icon:before, .o-overlay .mdi:before {position: absolute; left: 50%; margin-top: -2rem; -webkit-transform:translate(-50%, -50%) scale(1.6);-moz-transform:translate(-50%, -50%) scale(1.6);-ms-transform:translate(-50%, -50%) scale(1.6);-o-transform:translate(-50%, -50%) scale(1.6);transform:translate(-50%, -50%) scale(1.6);}

.c-cookieconsent {position:fixed;bottom:0;left:0;right:0;background:#005389;color:white;z-index:10001;font-size: 1.6rem; line-height: 1.8rem;box-shadow: -0.5rem 0 1rem #999}
.c-cookieconsent-left {padding:1em 4rem 1.5rem 2rem;max-width:960px;margin:0 auto}
.c-cookieconsent-right {position:absolute;right:1rem;top:1.5rem;}

/* ======================
   u-(tilities) namespace 
   ====================== */

.u-block {display:block}
.u-pointer, .u-pointer:hover { cursor: pointer; }

.u-fit { padding-left: 0 !important; padding-right: 0 !important; }
.u-off { opacity: 0.3; cursor: default !important }
.u-elli { display: block; width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: top } /* vertical align: trick to avoid overflow+hidden's space */

[class*='u-grid-'] {  vertical-align: top; position: relative; }

.u-grid-0 { display: none }
.u-grid-1 { display: inline-block; width: 8.3333% }
.u-grid-2 { display: inline-block; width: 16.6666% }
.u-grid-3 { display: inline-block; width: 25% }
.u-grid-4 { display: inline-block; width: 33.3333%; }
.u-grid-5 { display: inline-block; width: 41.6666% }
.u-grid-6 { display: inline-block; width: 50% }
.u-grid-7 { display: inline-block; width: 58.333% }
.u-grid-8 { display: inline-block; width: 66.6666% }
.u-grid-9 { display: inline-block; width: 75% }
.u-grid-10 { display: inline-block; width: 83.3333% }
.u-grid-11 { display: inline-block; width: 91.6666% }
.u-grid-12 { display: block; width: 100% }

.u-grid-r { text-align: right }

.u-grid-10pc { display: inline-block; width: 10% }
.u-grid-20pc { display: inline-block; width: 20% }
.u-grid-30pc { display: inline-block; width: 30% }
.u-grid-70pc { display: inline-block; width: 70% }
.u-grid-80pc { display: inline-block; width: 80% }
.u-grid-90pc { display: inline-block; width: 90% }

.u-grid-table { display: table; }
.u-grid-table > [class*='u-grid-']{ display: table-cell; }

.u-gutter--xs { width: calc(100% + 1rem); margin-left:-0.5rem;}
.u-gutter--s { width: calc(100% + 2rem); margin-left:-1rem;}
.u-gutter--m, .u-gutter { width: calc(100% + 3rem); margin-left: -1.5rem; }
.u-gutter--l { width: calc(100% + 4rem); margin-left: -2rem; }

.u-gutter--xs > [class*='u-grid-'] { border:0.5rem solid transparent; border-top:0px; border-bottom-width:1rem; background-clip: padding-box; }
.u-gutter--s  > [class*='u-grid-']{ border:1rem solid transparent; border-top:0px; border-bottom-width:2rem; background-clip: padding-box; }
.u-gutter--m > [class*='u-grid-'], .u-gutter  > [class*='u-grid-']{ border:1.5rem solid transparent; border-top:0px; border-bottom-width:3rem; background-clip: padding-box; }
.u-gutter--l  > [class*='u-grid-']{ border:2rem solid transparent; border-top:0px; border-bottom-width:4rem; background-clip: padding-box; }

.u-text--uppercase { text-transform: uppercase; }
.u-text--normal { text-transform: inherit !important; }
.u-text--lowercase { text-transform: lowercase; }

.u-text--nowrap { white-space: nowrap; }
.u-text--break { word-break: break-all; }
.u-text--underline { text-decoration: underline; }
.u-text--reverse{ unicode-bidi: bidi-override; direction: rtl; }

.u-text--light { opacity:0.7 }

.u-text--center { text-align: center !important; }
.u-text--right { text-align: right !important; }
.u-text--left { text-align: left !important; }

.u-text--xs { font-size: 0.9rem; }
.u-text--s { font-size: 1.2rem; }
.u-text--m { font-size: 1.8rem; }
.u-text--l { font-size: 2.3rem; }
.u-text--xl { font-size: 3.2rem; }
input:not([type="checkbox"]):not([type="radio"]).u-text--xl { height: 5rem; }  

.u-size--h100 { height: 100%; }
.u-size--w100{ width: 100%; }

/* Size */
.u-scale--xs { transform:scale(0.3); transform-origin: 0 0; }
.u-scale--s { transform:scale(0.7); transform-origin: 0 0; } 
.u-scale--l { transform:scale(1.4); transform-origin: 0 0; } 
.u-scale--xl { transform:scale(2); transform-origin: 0 0; }

/* Position */
.u-center { margin-left: auto; margin-right: auto; }
.u-ovfl { overflow: hidden; }
.u-flo.right { float: right; }
.u-flo.left { float: left; }
.u-flo--right { float: right; }
.u-flo--left { float: left; }
.u-rel { position: relative; }
.u-fix { float: none; position: fixed; z-index: 1}
.u-abs { float: none; position: absolute !important; z-index: 1 }
.u-abs.left, .u-fix.left { left: 0; }
.u-abs.left.rel, .u-fix.left.rel { left: inherit; }
.u-abs.right, .u-fix.right { right: 0; }
.u-abs.right.rel, .u-fix.right.rel { right: inherit; }
.u-abs.center, .u-fix.center { left:50% !important; -webkit-transform:translateX(-50%);-moz-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%); }
.u-abs.top, .u-fix.top { top: 0; }
.u-abs.bottom, .u-fix.bottom { bottom: 0; }
.u-abs.middle, .u-fix.middle { top: 50% !important; -webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%); }
.u-abs.middle.center, .u-fix.middle.center { -webkit-transform:translate(-50%, -50%);-moz-transform:translate(-50%, -50%);-ms-transform:translate(-50%, -50%);-o-transform:translate(-50%, -50%);transform:translate(-50%, -50%); }

/* ??? */
.u-ver--middle:before, .u-ver--middle:last-child, .u-ver--middle { vertical-align: middle; }
.u-ver--bottom:before, .u-ver--bottom:last-child, .u-ver--bottom { vertical-align: bottom; margin-bottom: 0px !important; padding-bottom: 0px !important; }
.u-ver--top:before, .u-ver--top:first-child:not(.o-button), .u-ver--top:not(.o-button) { vertical-align: top; margin-top: 0px !important; padding-top: 0px !important; }
table.u-ver--top td { vertical-align: top; }
table.u-ver--bottom td { vertical-align: bottom; }
table.u-ver--middle td { vertical-align: middle; }

.u-padding--s { padding: 0.5rem !important;}
.u-padding--m, .u-padding { padding: 1rem !important;}
.u-padding--l { padding: 2rem !important;}
.u-padding--xl { padding: 3rem !important;}
.u-padding--xxl { padding: 5rem !important;}
.u-padding--vertical { padding-left: 1rem !important; padding-right: 1rem !important;}
.u-padding--vertical--s { padding-left: 0.5rem !important; padding-right: 0.5rem !important;}
.u-padding--horizontal { padding-top: 1rem !important; padding-bottom: 1rem !important;}
.u-padding--horizontal--s { padding-top: 0.5rem !important; padding-bottom: 0.5rem !important;}
.u-padding--bottom--s { padding-bottom: 0.5rem !important;}
.u-padding--bottom--m, .u-padding--bottom { padding-bottom: 1rem !important;}
.u-padding--bottom--l { padding-bottom: 2rem !important;}
.u-padding--bottom--xl { padding-bottom: 3rem !important;}
.u-padding--bottom--xxl { padding-bottom: 5rem !important;}
.u-padding--top--s { padding-top: 0.5rem !important;}
.u-padding--top--m, .u-padding--top { padding-top: 1rem !important;}
.u-padding--top--l { padding-top: 2rem !important;}
.u-padding--top--xl { padding-top: 3rem !important;}
.u-padding--top--xxl { padding-top: 5rem !important;}
.u-padding--left--s { padding-left: 0.5rem !important;}
.u-padding--left--m, .u-padding--left { padding-left: 1rem !important;}
.u-padding--left--l { padding-left: 2rem !important;}
.u-padding--left--xl { padding-left: 3rem !important;}
.u-padding--left--xxl { padding-left: 5rem !important;}
.u-padding--right--s { padding-right: 0.5rem !important;}
.u-padding--right--m, .u-padding--right { padding-right: 1rem !important;}
.u-padding--right--l { padding-right: 2rem !important;}
.u-padding--right--xl { padding-right: 3rem !important;}
.u-padding--right--xxl { padding-right: 5rem !important;}

.u-padding--s .u-abs.left:not(.u-force), .u-padding--s .u-fix.left:not(.u-force) { left: 0.5rem; }
.u-padding--s .u-abs.right:not(.u-force), .u-padding--s .u-fix.right:not(.u-force) { right: 0.5rem; }
.u-padding--m .u-abs.left:not(.u-force), .u-padding--m .u-fix.left:not(.u-force), .u-padding .u-abs.left:not(.u-force), .u-padding .u-fix.left:not(.u-force) { left: 1rem; }
.u-padding--m .u-abs.right:not(.u-force), .u-padding--m .u-fix.right:not(.u-force), .u-padding .u-abs.right:not(.u-force), .u-padding .u-fix.right:not(.u-force) { right: 1rem; }
.u-padding--l .u-abs.left:not(.u-force), .u-padding--l .u-fix.left:not(.u-force) { left: 2rem; }
.u-padding--l .u-abs.right:not(.u-force), .u-padding--l .u-fix.right:not(.u-force) { right: 2rem; }
.u-padding--xl .u-abs.left:not(.u-force), .u-padding--xl .u-fix.left:not(.u-force) { left: 3rem; }
.u-padding--xl .u-abs.right:not(.u-force), .u-padding--xl .u-fix.right:not(.u-force) { right: 3rem; }
.u-padding--xxl .u-abs.left:not(.u-force), .u-padding--xl .u-fix.left:not(.u-force) { left: 5rem; }
.u-padding--xxl .u-abs.right:not(.u-force), .u-padding--xl .u-fix.right:not(.u-force) { right: 5rem; }

.u-margin--s { margin: 1rem !important;}
.u-margin--m, .u-margin { margin: 2rem !important;}
.u-margin--l { margin: 3rem !important;}
.u-margin--xl { margin: 5rem !important;}
.u-margin--vertical { margin-left: 2rem !important; margin-right: 2rem !important;}
.u-margin--horizontal { margin-top: 2rem !important; margin-bottom: 2rem !important;}
.u-margin--bottom--xs { margin-bottom: 0.5rem !important;}
.u-margin--bottom--s { margin-bottom: 1rem !important;}
.u-margin--bottom--m, .u-margin--bottom { margin-bottom: 2rem !important;}
.u-margin--bottom--l { margin-bottom: 3rem !important;}
.u-margin--bottom--xl { margin-bottom: 5rem !important;}
.u-margin--top--s { margin-top: 1rem !important;}
.u-margin--top--m, .u-margin--top { margin-top: 2rem !important;}
.u-margin--top--l { margin-top: 3rem !important;}
.u-margin--top--xl { margin-top: 5rem !important;}
.u-margin--left--s { margin-left: 1rem !important;}
.u-margin--left--m, .u-margin--left { margin-left: 2rem !important;}
.u-margin--left--l { margin-left: 3rem !important;}
.u-margin--left--xl { margin-left: 5rem !important;}
.u-margin--right--s { margin-right: 1rem !important;}
.u-margin--right--m, .u-margin--right { margin-right: 2rem !important;}
.u-margin--right--l { margin-right: 3rem !important;}
.u-margin--right--xl { margin-right: 5rem !important;}

.u-inlineblock { display: inline-block !important; }
.u-inlineblock > li { display: inline-block; }

.u-invisible { visibility: hidden !important; }

.u-clear { clear: both; }
.u-clear:after { content: ""; display: block; clear: both; }

.u-none { display: none; }
.u-none--empty:empty{ display: none; }

.u-fx--blur{ -webkit-filter: blur(1px); filter: blur(1px); }

.u-bg--inside { background-clip: padding-box; }
.u-bg--cover { background-position: 50% 50%; background-size: cover; background-repeat: no-repeat; }
.u-bg--contain { background-position: 50% 50%; background-size: contain; background-repeat: no-repeat; }

.u-fixed { table-layout:fixed }

/* =====================
   t-(heme) namespace
   ===================== */

.t-radius--s { -webkit-border-radius: 0.3rem; -moz-border-radius: 0.3rem;  border-radius: 0.3rem; }
.t-radius--m, .t-radius { -webkit-border-radius: 0.6rem; -moz-border-radius: 0.6rem;  border-radius: 0.6rem; }
.t-radius--l { -webkit-border-radius: 3rem; -moz-border-radius: 3rem;  border-radius: 3rem; }
.t-radius--xl { -webkit-border-radius: 10rem; -moz-border-radius: 10rem;  border-radius: 10rem; }

.t-tight.o-button { padding-left: 1rem; padding-right: 1rem;}

/* ??? */
.t-aero--xs dt, .t-aero--xs select, .t-aero--xs textarea, .t-aero--xs input, .t-aero--xs li, .t-aero--xs p, .t-aero--xs section { margin-bottom: 0.25rem }
.t-aero--s dt, .t-aero--s select, .t-aero--s textarea, .t-aero--s input, .t-aero--s li, .t-aero--s p, .t-aero--s section { margin-bottom: 0.5rem }
.t-aero--s, .t-aero dt, nav.t-aero, .t-aero select, .t-aero textarea, .t-aero input, .t-aero li, .t-aero p, .t-aero strong, .t-aero section { margin-bottom: 1rem }
.t-aero--m, .t-aero, .t-aero--l dt, nav.t-aero--l, .t-aero--l select, .t-aero--l textarea, .t-aero--l input, .t-aero--l li, .t-aero p, .t-aero section { margin-bottom: 2rem }
.t-aero--l, .t-aero--xl dt, nav.t-aero--xl, .t-aero--xl select, .t-aero--xl textarea, .t-aero--xl input, .t-aero--xl li, .t-aero p, .t-aero section { margin-bottom: 3rem }
.t-aero--xl { margin-bottom: 5rem }

/* ??? */
.t-aero--m.o-box.t-border,.o-box.t-border { padding: 0.6rem 1rem; }
.t-aero--l.o-box.t-border { padding: 1rem 1.6rem; }
.t-aero--xl.o-box.t-border { padding: 1.6rem 2rem; }

[class*='u-grid-'].t-aero--m, [class*='u-grid-'].t-aero, aside > nav.t-aero, table.t-aero th, table.t-aero td { padding:1rem }
[class*='u-grid-'].t-aero--l, aside > nav.t-aero--l, table.t-aero--l th, table.t-aero--l td { padding:2rem }
[class*='u-grid-'].t-aero--xl, aside > nav.t-aero--xl, table.t-aero--xl th, table.t-aero--xl td { padding:3rem }

table[class*='t-aero'] th { padding-top: 0px; }
.u-inlineblock[class*='t-aero'] { margin-bottom: 0px; }

/* border size */
[class*='t-border'], table[class*='t-border'] td, table[class*='t-border'] th{ border-width: 0px } /* Clean for the usage of t-border--top without redo a reset*/
.t-border--m, .t-border { border-width:1px; }
.t-border--l { border-width:2px !important; }
.t-border--l.u-padding { padding:0.8rem !important; }
.t-border--xl { border-width:4px !important; }
.t-border--xl.u-padding { padding:0.6rem !important; }
.t-border--top--m, .t-border--top { border-top-width:1px; }
.t-border--top--l { border-top-width:2px; }
.t-border--bottom--m, .t-border--bottom { border-bottom-width:1px; }
.t-border--bottom--l { border-bottom-width:2px; }
.t-border--left--m, .t-border--left { border-left-width:1px; }
.t-border--left--l { border-left-width:2px; }
.t-border--right--m, .t-border--right { border-right-width:1px; }
.t-border--right--l { border-right-width:2px; }
.t-border--vertical--m, .t-border--vertical { border-width:0px 1px 0px 1px; }
.t-border--vertical--l { border-width:0px 2px 0px 2px; }
.t-border--horizontal--m, .t-border--horizontal { border-width:1px 0px 1px 0px; }
.t-border--horizontal--l { border-width:2px 0px 2px 0px;}

table.t-border th,table.t-border td{ border-bottom-width:1px;}

/* border color */
.t-border--transparent { border-color: transparent !important; }

[class*='t-border'], table[class*='t-border'] td, table[class*='t-border'] th{ border-color:#ddd; border-style: solid; }

/* inside border with shadow */
.t-border--inside--m, .t-border--inside { border: 0px; -moz-box-shadow: inset 0 0 0 1px; -webkit-box-shadow: inset 0 0 0 1px; box-shadow: inset 0 0 0 1px; }
.t-border--inside--l { border: 0px; -moz-box-shadow: inset 0 0 0 2px; -webkit-box-shadow: inset 0 0 0 2px; box-shadow: inset 0 0 0 2px; }
.t-border--inside--xl { border: 0px; -moz-box-shadow: inset 0 0 0 3px; -webkit-box-shadow: inset 0 0 0 3px; box-shadow: inset 0 0 0 3px; }

[class*='u-grid-'].t-border--m, [class*='u-grid-'].t-border{ -moz-box-shadow: inset 0 0 0 1px; -webkit-box-shadow: inset 0 0 0 1px;   box-shadow: inset 0 0 0 1px; }
[class*='u-grid-'].t-border--l{ -moz-box-shadow: inset 0 0 0 2px; -webkit-box-shadow: inset 0 0 0 2px; box-shadow: inset 0 0 0 2px; }
[class*='u-grid-'].t-border--xl{ -moz-box-shadow: inset 0 0 0 4px; -webkit-box-shadow: inset 0 0 0 4px; box-shadow: inset 0 0 0 4px; }

/* colors themes */
.t-ok { border-color: #b9ffa4; background-color: #b9ffa4; color: #2f6b36; }
.t-ok.o-button { border-color: #6bde6b; background-color: #6bde6b; color: white; }
.t-ok::before { color: #48c822; }
.t-ok.no-background { color: #48c822; }

.t-ko { border-color: #ffa4a4; background-color: #ffa4a4; color: #991b1b; }
.t-ko.o-button{ border-color: #f34343; background-color: #f34343; color: white; }
.t-ko::before { color: #f34343; }
.t-ko.no-background { color: #f34343; }

.t-work { border-color: #ffc061; background-color: #ffc061; color: #593806; }
.t-work.o-button { border-color: #ffa319; background-color: #ffa319; color: white; }
.t-work.no-background { color: #ffa319; }

.t-tmp { border-color: #d8d8d8; background-color: #d8d8d8; color: #262626; }

/* fit fixs */
ul.u-fit li:first-of-type{ margin-left:0px !important; padding-left: 0px !important; }
ul.u-fit li:last-of-type { margin-right:0px !important; padding-right: 0px !important; }
table.u-fit th, table.u-fit td { margin-left:0px !important; margin-right:0px !important; padding-left: 0px !important; padding-right: 0px !important; }
table.u-fit th > a, table.u-fit td > a{ padding-left:0.6rem !important; padding-right:0.6rem !important;}
table.u-fit th:first-of-type > a, table.u-fit td:first-of-type > a{ padding-left:0rem !important;}
table.u-fit th:last-of-type > a, table.u-fit td:last-of-type > a{ padding-right:0rem !important;}

/* =============
   no- namespace 
================ */

.no-select { user-select: none;-moz-user-select: none;-webkit-user-select: none;}
.no--events, .no-events :hover, .no--events:hover{ cursor: inherit !important; pointer-events: none !important; transition: none !important; }
.no-list { list-style: none !important; }

.no-margin { margin: 0 !important; }
.no-margin--top { margin-top: 0 !important; }
.no-margin--bottom { margin-bottom: 0 !important; }
.no-margin--left { margin-left: 0 !important; }
.no-margin--right { margin-right: 0 !important; }
.no-margin--horizontal { margin-top: 0 !important; margin-bottom: 0 !important;}
.no-margin--vertical { margin-left: 0 !important; margin-right: 0 !important;}

.no-padding { padding: 0 !important; }
.no-padding--top { padding-top: 0 !important; }
.no-padding--bottom { padding-bottom: 0 !important; }
.no-padding--left { padding-left: 0 !important; }
.no-padding--right { padding-right: 0 !important; }
.no-padding--horizontal { padding-top: 0 !important; padding-bottom: 0 !important;}
.no-padding--vertical { padding-left: 0 !important; padding-right: 0 !important;}

.no-color { color: initial !important; }
.no-background { background-color: transparent !important; background:none !important;}

.no-border { border-width: 0px !important; }
.no-border--top { border-top-width: 0px !important; }
.no-border--bottom { border-bottom-width: 0px !important; }
.no-border--left { border-left-width: 0px !important; }
.no-border--right { border-right-width: 0px !important; }
.no-border--horizontal { border-top-width: 0px !important; border-bottom-width: 0px !important; }
.no-border--vertical { border-left-width: 0px !important; border-right-width: 0px !important; }

.no-background.o-button { color: inherit; }

/* this class will be removed after window.load() to avoid having transition when the page render onload, ex: used with o-hint-head */
.no-transition-onload {transition: none !important; -webkit-transition: none !important; -moz-transition: none !important; -ms-transition: none !important; -o-transition: none !important;}

/* =============
   only- namespace 
================ */

/* ??? */ 
.only-padding--left { padding-top: 0px !important; padding-bottom: 0px !important; padding-right: 0px !important;}
.only-padding--right { padding-top: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important;}
.only-margin--left { margin-top: 0px !important; margin-bottom: 0px !important; margin-right: 0px !important;}
.only-margin--right { margin-top: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important;}

/* =============
   RESPONSIVE RULES
================ */

.u-desktop { display: block;}	/* initial does not work */
.u-tablet { display: block; }	/* initial does not work */
.u-mobile { display: none; }

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

	.u-desktop { display: none !important;}
	.u-tablet { display: initial; }

	[class*='u-grid-']:not(.u-resist--tablet), [class*='u-grid-']:not(.u-resist--tablet).u-flo { width:100% !important; }
	[class*='u-grid-']:not(.u-resist--tablet):not(.u-inlineblock).u-flo { display:block !important; }

	[class*='u-grid-'].u-abs, [class*='u-grid-'].u-flo { text-align: center; float:none !important; position: relative !important;  }
}
@media screen and (max-width: 767px) {   

	.u-tablet { display: none !important; }
	.u-desktop { display: none !important; }
	.u-mobile { display: initial; }

	.u-gutter--xs, .u-gutter--s, .u-gutter--m, .u-gutter--l { display: table; width: 100%; margin-left:0rem; }

	[class*='u-grid-']:not(.u-resist--mobile) { width:100% !important; margin-top:0rem !important; margin-left:0rem !important; margin-right:0rem !important; }
	[class*='u-grid-']:not(.u-resist--mobile):not(.u-inlineblock):not(.u-none) { display:block; }

	[class*='u-grid-']:not(.u-resist--mobile) { border-left:0px !important; border-right:0px !important; border-top:0px !important; border-bottom:1rem !important; }

	[class*='u-grid-']:not(.u-resist--mobile).u-abs,[class*='u-grid-'].u-flo { text-align: center; float:none !important; position: relative !important;  }
	
	[class*='u-grid-']:not(.u-resist--mobile).t-aero { padding: 0px !important;  }
}