/*--------------------------------
             B A S E
--------------------------------*/
html, body{
  margin:0;
  background: #ccc;
  font-family: Arial, Helvetica, Sans;
  font-size: 12px;
  /* ensure that the document uses the whole width and height of the browser */
  min-height: 100%;
  height: 100%;
  min-width: 100%;
  width: 100%;
  /* viewer/canvas is full screen so when window is resized all remains intact, but we make sure no scrollbar appears */
  overflow: hidden;
}

canvas {
  margin: 0px; /* not inherited */
  border: 0px none gray; /* not inherited */
  padding: 0px; /* not inherited */
  width: 100%;
  height: 100%;
  cursor: move;
}

h4{
  margin: 0;
  text-align: left;
  font-size: 14px;
  font-weight: bold;
}

h4 .svg-inline--fa{
  font-size: 14px;
}

h6{
  margin: 0;
  font-size: 1em;
}

hr{
  border: 0;
  border-top: thin solid rgb(200,200,200);
  margin-top: 7px;
  margin-bottom: 7px;
}

a {
  text-decoration: none;
  /*color: #6020a0;*/
  font-weight: bold;
}

a:visited {
  /*color: #6020a0;*/
}


/*--------------------------------
              P A G E
--------------------------------*/
body.body_page{
  background: #fff;
  height: 500px;
  overflow: auto;
  overflow-x: hidden;
}

body.body_page .svg-inline--fa {
  margin-right: 0;
}


/*--------------------------------
            T O O L S
--------------------------------*/
.clearfloat{clear: both;}
.hide, .nodisplay{display: none;}
.noborder{border:0;}

.center{margin: 0 auto;}

.txtcenter{text-align: center;}
.txtleft{text-align: left;}
.txtright{text-align: right;}


/*--------------------------------
   B O O T S T R A P   H A C K
--------------------------------*/
a:visited.btn {
  color: #fff;
}

.bootstrap-select .dropdown-menu {
  min-width:180px;
}

.bootstrap-select .dropdown-item {
  padding: .25rem .5rem;
}

.bootstrap-select .btn-light {
  background-color: #fff;
  border: 1px solid #ced4da;
}

.custom-control {
  line-height: 2.45;
}

.custom-range {
  padding-top: 18px;
}

.custom-switch{
  height: 28px;
}

.custom-switch .custom-control-label{
  margin: 5px 0;
}

.custom-switch .custom-control-label::before {
  width: 3rem;
  height: 1.5rem;
  border-radius: 1rem;
  top: 0;
}

.custom-switch .custom-control-input:checked~.custom-control-label::after {
  -webkit-transform: translateX(1.4rem);
  transform: translateX(1.4rem);
}

.custom-switch .custom-control-label::after {
  top: calc(.25rem);
  left: calc(-2.25rem + 4px);
  width: calc(1rem);
  height: calc(1rem);
}

.switch_value{
  text-align: center;
  line-height: 1;
  margin-top: 8px;
}

.card {
  border: none;
  background: none;
  margin-bottom: 10px;
}

.card-body {
  padding: 0;
}

h4[data-toggle="collapse"], h4[data-toggle="collapse"] svg{
  cursor: pointer;
}

h4[data-toggle="collapse"] svg{
  -webkit-transition:all 200ms ease-in 0s;
  -moz-transition: all 200ms ease-in 0s;
  -o-transition: all 200ms ease-in 0s;
  transition: all 200ms ease-in 0s;
}

h4[data-toggle="collapse"].collapsed svg{
  -webkit-transform: rotate(-90deg);
  -moz-transform: rotate(-90deg);
  -o-transform: rotate(-90deg);
  -ms-transform: rotate(-90deg);
  transform: rotate(-90deg);
}

.badge-pill {
  padding-left: .5em;
}

table .border-top-sep td{
  border-top: 1px solid rgb(200,200,200);
}


/*--------------------------------
 F O N T A W E S O M E   H A C K
--------------------------------*/
.svg-inline--fa{
  font-size: 18px;
  vertical-align: text-bottom;
  margin-right: 5px;
}

#modalObject .svg-inline--fa{
  margin-right: 0px;
}


/*--------------------------------
           S T R I P E
--------------------------------*/
.StripeElement {
  width: 100%;
  box-sizing: border-box;
  height: 40px;
  padding: 10px 12px;
  border: 1px solid transparent;
  border-radius: 4px;
  background-color: white;
  box-shadow: 0 1px 3px 0 #aaa;
  -webkit-transition: box-shadow 150ms ease;
  transition: box-shadow 150ms ease;
}

.StripeElement--focus {
  box-shadow: 0 1px 3px 0 #cfd7df;
}

.StripeElement--invalid {
  border-color: #fa755a;
}

.StripeElement--webkit-autofill {
  background-color: #fefde5 !important;
}

#payment-form {
  width: 80%;
  margin: 0 auto;
}

#payment-form button {
  border: none;
  border-radius: 4px;
  outline: none;
  text-decoration: none;
  color: #fff;
  background: #28a745;
  white-space: nowrap;
  display: inline-block;
  height: 40px;
  line-height: 40px;
  padding: 0 14px;
  box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
  border-radius: 4px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.025em;
  text-decoration: none;
  -webkit-transition: all 150ms ease;
  transition: all 150ms ease;
  float: left;
  margin-left: 12px;
  margin-top: 24px;
}

#payment-form button:hover {
  transform: translateY(-1px);
  box-shadow: 0 7px 14px rgba(50, 50, 93, .10), 0 3px 6px rgba(0, 0, 0, .08);
  background-color: #218838;
}

#payment-form .form-row {
  width: calc(100% - 142px);
  float: left;
  text-align: left;
  margin-bottom: 5px;
}

#payment-form label {
  width: 100%;
}

#card-errors{
  color:#8e0406;
  font-size: 18px;
}


/*--------------------------------
          C O N T E N T
--------------------------------*/
#header {
  margin: 5px;
  position: fixed;
  top: 0;
  text-align: center;
  width: 100%;
  color: #000;
  z-index: 100;
}


/*--------------------------------
           ALERTBOX
--------------------------------*/
#alert {
  margin: 0px;
  border: 0px;
  padding: 0px;
  height: 100%;
  width: 100%;
  top: 0px;
  bottom: 0px;
  position: fixed;
  z-index: 999;
}

#tail {
  z-index: 999;
  border: thin solid rgb(200,200,200);
  border-radius: 0;
  padding: 20px;
  background: rgba(255,255,255,.85);
  margin: 0 auto;
  width: auto;
  position: relative;
  top: 50%;
  transform: translateY(-50%);
  max-width: 300px;
}

#overlay {
  margin: 0px;             /* not inherited */
  border: 0px;             /* not inherited */
  padding: 0px;            /* not inherited */
  background: black;
  height: 100%;
  width: 100%;
  top: 0px;
  bottom: 0px;
  position: fixed;
  z-index: 1;
  opacity: 0.75;
}

#status{
  text-align: center;
  width: 100%;
  font-size: 14px;
  font-weight: bold;
}

#busy {
  vertical-align: middle;
}

.loader_bloc {
  height: 70px;
}

.loader,
.loader:before,
.loader:after {
  background: #ff0000;
  -webkit-animation: load1 1s infinite ease-in-out;
  animation: load1 1s infinite ease-in-out;
  width: 1em;
  height: 3em;
}
.loader {
  color: #ff0000;
  text-indent: -9999em;
  margin: 30px auto;
  position: relative;
  font-size: 11px;
  -webkit-transform: translateZ(0);
  -ms-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-animation-delay: -0.16s;
  animation-delay: -0.16s;
}
.loader:before,
.loader:after {
  position: absolute;
  top: 0;
  content: '';
}
.loader:before {
  left: -1.5em;
  -webkit-animation-delay: -0.32s;
  animation-delay: -0.32s;
}
.loader:after {
  left: 1.5em;
}

@-webkit-keyframes load1 {
  0%,
  80%,
  100% {
    box-shadow: 0 0;
    height: 3em;
  }
  40% {
    box-shadow: 0 -2em;
    height: 5em;
  }
}
@keyframes load1 {
  0%,
  80%,
  100% {
    box-shadow: 0 0;
    height: 3em;
  }
  40% {
    box-shadow: 0 -2em;
    height: 5em;
  }
}


/*--------------------------------
            PARAMÈTRES
--------------------------------*/
#param {
  border: thin solid rgb(200,200,200);
  border-radius: 0;
  padding: 10px;
  background: rgba(255,255,255,.85);
  position: fixed;
  top: 10px;
  left: 10px;
  opacity: 1;
  max-width: 300px;
}

#param #logo{
  text-align: center;
}

#param #logo img{
  width: 80%;
  margin-top: 5px;
  margin-bottom: 10px;
}

#param #filename{
  width: 100%;
  margin-bottom: 10px;
}

#param .input-group-preset{
  margin-bottom: 10px;
}

#param table {
  margin-bottom: 5px;
  text-align: left;
  font-size: 1em;
  font-weight: normal;
  width: 100%;
}

#param th {
  text-align: right;
  width: 100%;
}

#param th, #param td {
  margin:  0px;
  border:  0px none gray;
  padding: 2px;
  vertical-align: middle;
}

#param td select{
  max-width: 100%;
}

#param td{
  min-width: 140px;
}

.param-separator hr{
  border-top: 1px dashed #aaa;
  margin-top: 2px;
  margin-bottom: 2px;
}

#param .bootstrap-select button{
  width: 135px;
}

#param .bootstrap-select button[data-id="codechar"], #param .bootstrap-select button[data-id="codechar2"], #param .bootstrap-select button[data-id="codechar3"]{
  width: 85px;
  height: 65px;
  margin-right: 50px;
  background: #fff;
}

#param .bootstrap-select .dropdown-menu li a {
  padding-bottom: 0px;
}

#param .bootstrap-select {
  height: auto;
  background: none;
}

/*--------------------------------
              INFO
--------------------------------*/
#info {
  line-height: 20px;
  position: inherit;
  left: 50%;
  transform: translate(0, -100px);
  margin: 45px auto 0;
  text-align: center;
}

#resetView{
  margin: 10px 0;
}


/*--------------------------------
             ACCOUNT
--------------------------------*/
#account {
  border: thin solid rgb(200,200,200);
  border-radius: 0;
  padding: 10px;
  background: rgba(255,255,255,.85);
  position: fixed;
  top: 10px;
  right: 10px;
  width:300px;
  height:82px;
  z-index: 2;
}

#bt_login, #bt_signup{
  margin-top:10px;
}

.form-check-label {
  margin-top: 2px;
}

.btn-warning, .btn-warning:hover {
  color: #fff;
}


/*--------------------------------
              MODAL
--------------------------------*/
.modal hr {
  margin-bottom: 11px;
}

#modalObject .container-fluid, #modalOrder .container-fluid{
  padding: 0;
}

#modalObject table, #modalOrder table{
  font-size: 13px;
}

#modalObject table th, #modalOrder table th{
  border-top: 0;
}

#modalObject table td, #modalOrder table td{
  vertical-align: middle;
}

.modal-title{
  font-weight: bold;
}


/*--------------------------------
        SAVE / ADD TO CART
--------------------------------*/
#cart {
  border: thin solid rgb(200,200,200);
  border-radius: 0;
  padding: 10px;
  background: rgba(255,255,255,.85);
  position: fixed;
  top: 102px;
  right: 10px;
  text-align: right;
  width:300px;
}

#cart table{
  width: 100%;
}

#cart .table-addtocart td{
  text-align: right;
  height: 18px;
  border:  0px none gray; /* not inherited */
}

#cart .table-addtocart th {
  width:70%;
  text-align: right;
  border:  0px none gray; /* not inherited */
}

#cart th, #cart td {
  margin:  0px; /* not inherited */
  padding: 3px 5px; /* not inherited */
  vertical-align: middle;
  font-size: 12px;
}

#quantity{
  padding: 3px 5px;
  max-width: 50px;
  text-align: right;
  display: initial;
}

.item_quantity{
  max-width: 50px;
}

.table-cart th{
  border-top:0;
}

#cart .table-cart th, #cart .table-cart td{
  width:auto;
}

.table-cart{
  text-align: left;
  font-size: 14px;
}

.table-cart .svg-inline--fa {
  font-size: 12px;
  margin-right: 0;
}

.table-cart .btn-group-sm>.btn, .table-cart .btn-sm {
  padding: .3rem .3rem;
  font-size: .7rem;
}

#cart .table-cart th, #cart .table-cart td {
  padding: 5px 2px;
}

.stepper{
  margin-bottom: 20px;
}

.stepper .col-sm-3{
  background: #ccc;
  color: #fff;
  font-weight: bold;
  font-size: 18px;
  text-align: center;
  padding: 10px;
  border-right: 15px solid #fff;
}

.stepper .col-sm-3:last-child{
  border-right: 0px;
}

.stepper .col-sm-3.step-valid{
  background: #8e0406;
}

#validCart-step1 h5 .svg-inline--fa{
  font-size: 30px;
  margin-bottom: 5px;
}


/*--------------------------------
              DEBUG
--------------------------------*/
#debug {
  border: thin solid rgb(200,200,200);
  border-radius: 0;
  padding: 10px;
  background: rgba(255,255,255,.85);
  position: fixed;
  bottom: 12px;
  right: 10px;
}


/*--------------------------------
            WP PAGE
--------------------------------*/
#collapseCart{
  margin: 0 auto;
}