/*! HTML5 Boilerplate v8.0.0 | MIT License | https://html5boilerplate.com/ */

/* main.css 2.1.0 | MIT License | https://github.com/h5bp/main.css#readme */
/*
 * What follows is the result of much research on cross-browser styling.
 * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
 * Kroc Camen, and the H5BP dev community and team.
 */

/* ==========================================================================
   Base styles: opinionated defaults
   ========================================================================== */

html {
  color: #222;
  font-size: 1em;
  line-height: 1.4;
}

/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 *
 * Vendor-prefixed and regular ::selection selectors cannot be combined:
 * https://stackoverflow.com/a/16982510/7133471
 *
 * Customize the background color to match your design.
 */

::-moz-selection {
  background: #b3d4fc;
  text-shadow: none;
}

::selection {
  background: #b3d4fc;
  text-shadow: none;
}

/*
 * A better looking default horizontal rule
 */

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0;
}

/*
 * Remove the gap between audio, canvas, iframes,
 * images, videos and the bottom of their containers:
 * https://github.com/h5bp/html5-boilerplate/issues/440
 */

audio,
canvas,
iframe,
img,
svg,
video {
  vertical-align: middle;
}

/*
 * Remove default fieldset styles.
 */

fieldset {
  border: 0;
  margin: 0;
  padding: 0;
}

/*
 * Allow only vertical resizing of textareas.
 */

textarea {
  resize: vertical;
}

/* ==========================================================================
   Author's custom styles
   ========================================================================== */


@font-face {
  font-family: 'Cartero';
  src: url('../font/cartero/CarteroRegular.eot');
  src: url('../font/cartero/CarteroRegular.eot?#iefix') format('embedded-opentype'),
  url('../font/cartero/CarteroRegular.woff') format('woff'),
  url('../font/cartero/CarteroRegular.ttf') format('truetype'),
  url('../font/cartero/CarteroRegular.svg#CarteroRegular') format('svg');
  font-weight: 500
}

@font-face {
  font-family: 'Cartero';
  src: url('../font/cartero/CarteroLight.eot');
  src: url('../font/cartero/CarteroLight.eot?#iefix') format('embedded-opentype'),
  url('../font/cartero/CarteroLight.woff') format('woff'),
  url('../font/cartero/CarteroLight.ttf') format('truetype'),
  url('../font/cartero/CarteroLight.svg#CarteroLight') format('svg');
  font-weight:300;
}

@font-face {
  font-family: 'Cartero';
  src: url('../font/cartero/CarteroBold.eot');
  src: url('../font/cartero/CarteroBold.eot?#iefix') format('embedded-opentype'),
  url('../font/cartero/CarteroBold.woff') format('woff'),
  url('../font/cartero/CarteroBold.ttf') format('truetype'),
  url('../font/cartero/CarteroBold.svg#CarteroBold') format('svg');
  font-weight:800;
}

@font-face {
   font-family: "Aberta";
  src: url("../font/averta/IntelligentDesign-AvertaStdPE-Regular.woff") format("woff");
  font-weight: 500
}

@font-face {
  font-family: "Aberta";
  src: url("../font/averta/IntelligentDesign-AvertaStdPE-Semibold.woff") format("woff");
  font-weight: 600
}

@font-face {
  font-family: "Aberta";
  src: url("../font/averta/IntelligentDesign-AvertaStdPE-Bold.woff") format("woff");
  font-weight: 800
}

*{
  box-sizing:border-box
}

.desktop{
  display: block!important;
}

.mobile{
  display: none!important;
}

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

  .desktop{
    display: none!important;
  }

  .mobile{
    display: block!important;
  }

}

h1, h2, h3, h4, h5, h6{
  margin:0;
}

ul, ol, dl{
  list-style: none;
  margin:0;
  padding:0;
}

input:focus, select:focus{
  outline:none;
}

/*
  MARK: Headers
*/
.header-xxl{
  color:#333;
  font:bold 48px/58px Cartero, sans-serif;
}

.header-xl{
  color:#333;
  font:500 40px/50px Cartero, sans-serif;
}

.header-l{
  color:#333;
  font:500 24px/32px Cartero, sans-serif;
}

.header-s{
  color:#333;
  font:500 18px/26px Cartero, sans-serif;
}

.header-xs{
  color:#333;
  font:500 16px/22px Cartero, sans-serif;
}

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

  .header-xxl{
    font-size:24px;
    line-height:32px;
  }

}

/*
MARK: Details
*/
.detail-s{
  font:300 12px/18px Cartero, sans-serif;
}

.detail-m{
  font:300 14px/20px Cartero, sans-serif;
}

  .detail-m a{
    color:#002E6D;
    font-weight:500;
    text-decoration:none;
  }

/*
MARK: Body text
*/
.body-l{
    color:#333;
    font:300 20px/28px Cartero, sans-serif;
  }

.body-m{
  color:#333;
  font:300 18px/26px Cartero, sans-serif;
}

.body-s{
  color:#333;
  font:300 16px/22px Cartero, sans-serif;
}

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

  .body-l{
    font-size:18px;
    line-height:26px;
  }

}


/*
MARK:Botones
*/
.btn{
  outline:1px solid;
  border: none;
  border-radius:8px;
  cursor:pointer;
  display: block;
  font:600 16px/22px 'Aberta', sans-serif;
  text-align: center;
  text-decoration: none;
  width: 100%;
}

.btn.type00{
  background-color:transparent;
  outline:none;
  color: #002E6D;
  font:500 16px/22px Cartero, sans-serif;
}

.btn.type01{
  background-color:#FFCD00;
  outline-color:#B38F00;
  color: #002E6D;
}

.btn.type01.loading{
  color: #FFCD00;
}

.btn.type01[disabled]{
  background-color:#FFF4C5;
  outline-color:#FFF4C5;
  color: #949494;
}

.btn.type01[disabled].loading{
  color: #FFF4C5;
}

.btn.type02{
  background-color:transparent;
  outline-color:#002E6D;
  color: #002E6D;
}

.btn.m{
  font-size:16px;
  line-height:22px;
  padding:14px;
}

.btn.s{
  font-size:16px;
  line-height:22px;
  padding:0;
  text-align:left;
}

.btn-back{
  background:url(../img/icons/back.svg) no-repeat center / 16px transparent;
  border: none;
  cursor: pointer;
  display: block;
  height: 24px;
  padding:0;
  width: 24px;
}

.btn-close{
  background:url(../img/icons/close.svg) no-repeat center / 16px transparent;
  border: none;
  cursor: pointer;
  display: block;
  height: 24px;
  padding:0;
  width: 24px;
}

.btn.loading{
  position: relative;
}

.btn.loading::before{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  content: '';
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 2px solid #949494;
  box-sizing: border-box;
  background-image: none;
  border-bottom: 0;
  animation: 1000ms infinite loadingcircle linear;
  background-color: transparent;
}

@keyframes loadingcircle {
  0%   { transform: translate(-50%, -50%) rotate(0); }
  100% { transform: translate(-50%, -50%) rotate(360deg); }
}

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

  .btn.m{
    font-size:14px;
    line-height:20px;
    padding:14px;
  }

}

/*Fin - Botones*/

/*Campos de formulario*/
.fieldset .messages-wrap{
  margin-top: 4px;
}

.fieldset .messages-wrap .message{
  color:#666;
  font:500 14px/20px Cartero, sans-serif;
}

.fieldset .messages-wrap.errors .message{
  color:#E71706;
  display: none;
}

.fieldset[data-error="1"] .messages-wrap.errors .message:nth-child(1),
.fieldset[data-error="2"] .messages-wrap.errors .message:nth-child(2),
.fieldset[data-error="3"] .messages-wrap.errors .message:nth-child(3),
.fieldset[data-error="4"] .messages-wrap.errors .message:nth-child(4),
.fieldset[data-error="5"] .messages-wrap.errors .message:nth-child(5),
.fieldset[data-error="6"] .messages-wrap.errors .message:nth-child(6){
  display: block;
}

.fieldset[data-error] .input-wrap label{
  color:#E71706;
}

.fieldset[data-error] .password-wrap ul li.filled::after{
  background:#E71706;
}

.fieldset[data-error] .password-wrap ul li.focus.filled::after{
  background:transparent;
  color:#E71706
}

.fieldset[data-error] .password-wrap[show-pass] ul li.filled::after{
  background:transparent;
  color:#E71706;
}

legend + fieldset > label{
  margin-bottom: 16px;
}

.fieldset > label{
  display: block;
  margin-bottom:32px;
}

.input-wrap{
  background-color:#F7F7F7;
  border:1px solid #F7F7F7;
  border-radius:8px;
  padding:12px 16px;
  /*
  display:flex;
  flex-direction:column;
  min-height:66px;
  justify-content:center;
  */
}

.input-wrap:has(.checkbox-wrap){
  background-color:#FFF;
  border-color:#FFF;
  padding:0 16px 0 0;
}

  .input-wrap label{
    color:#666666;
    display:block;
  }

  .input-wrap input{
    background-color:transparent;
    border:none;
    color:#333;
    font:300 16px/22px 'Cartero', sans-serif;
    padding:0;
    width: 100%;
  }

  .input-wrap .checkbox-wrap{
    display:grid;
    grid-gap:8px;
    grid-template-columns: 22px 1fr;
  }

    .input-wrap .checkbox-wrap input{
      height: 22px;
      width: 22px;
    }

    .input-wrap .checkbox-wrap label {
      color:#333;
      font: 300 16px/22px Cartero, sans-serif;
    }

  .input-wrap .phone-wrap{
    display:flex;
    gap:10px;
    position:relative
  }

  .input-wrap .phone-wrap .btn-reset{
    background:url(../img/icons/delete.svg) no-repeat center / 18px transparent;
    border:none;
    cursor:pointer;
    display: none;
    height:24px;
    padding:0;
    position:absolute;
    right:0;
    top:-8px;
    width:24px;
    z-index: 10;
  }

  .input-wrap .phone-wrap::before{
    color:#666;
    content:'+34';
    font:300 16px/22px 'Cartero', sans-serif;
  }

  .input-wrap .amount-wrap{
    position: relative;
    text-align: left;
  }

    .input-wrap .amount-wrap input{
      position: relative;
      z-index: 2;
    }

    .input-wrap .amount-wrap span {
      position: absolute;
      top: 0;
      left: 0;
      font: 300 16px/22px 'Cartero', sans-serif;
      color: transparent;
      text-align: right;
    }

    .input-wrap .amount-wrap span::after {
        color: #333333;
        content: '€';
        font-size: 16px;
        font-weight: 300;
        margin-left: 4px;
        opacity: 0.6;
        text-align: right;
    }

    .input-wrap .amount-wrap:not(:has(:placeholder-shown)) span::after {
        opacity: 1;
    }

.input-wrap.focus{
  border-color:#333;
}

  .input-wrap.focus .phone-wrap::before{
    color:#333;
  }

  .input-wrap.focus .phone-wrap .btn-reset{
    display: block;
  }

.password-wrap{
  position:relative
}

  .password-wrap ul {
    display:flex;
    gap:8px;
    padding:0;
  }

    .password-wrap ul li{
      align-items:center;
      background-color:#F7F7F7;
      border-radius:8px;
      display:flex;
      height:56px;
      justify-content:center;
      max-width:56px;
      min-width:27px;
      width:100%;
    }

    .password-wrap ul li.extra{
      display:none;
    }

    .password-wrap ul li.filled{
      display:flex;
    }

    .password-wrap ul li.filled::after{
      background: #333333;
      border-radius: 100%;
      content:'';
      display: block;
      height: 12px;
      width: 12px;
    }

    .password-wrap[data-show-pass] ul li.filled::after,
    .password-wrap ul li.focus.filled::after{
      background:transparent;
      border-radius:0px;
      color:#333;
      content:attr(data-digit);
      font:300 16px/56px Cartero, sans-serif;
      height:auto;
      width:auto;
    }

    .fieldset .password-wrap ul li.focus{
      border:1px solid #333;
    }

  .password-wrap ul li.show{
      color:#333;
      font:300 18px/56px Cartero, sans-serif;
    }

  .password-wrap input{
    bottom:0;
    height:100%;
    opacity:0;
    position:absolute;
    width:100%;
  }

.fieldset .btn-show-pass{
  margin-top:16px;
}

/*Fin - Campos de formulario*/

/*Mensaje final*/
.message-final{

}

  .message-final .icon{
    height: 72px;
    margin-bottom: 32px;
    width: 72px;
  }

  .message-final h3{
    margin-bottom: 32px;
  }

  .message-final:has(p) h3{
    margin-bottom: 16px;
  }

  .message-final p{
    color:#333;
    font:16px/22px Cartero, sans-serif;
    margin:0 0 32px 0;
  }
/*Fin - Mensaje final*/

/*Overlay*/
.show-overlay{
  overflow:hidden;
}

.show-overlay .overlay{
  display:flex;
}

.overlay{
  align-items:center;
  display:none;
  height:100vh;
  justify-content:center;
  position:fixed;
  top:0;
  width:100vw;
}

.overlay, dialog::backdrop{
  background-color:rgba(28, 28, 28, 0.7);
}

  .popup-message{
    background-color:#FFF;
    border:none;
    border-radius:8px;
    max-width:704px;
    padding:64px 32px;
    position:relative;
    text-align:center;
    width: 100%;
  }

    .popup-message .btn-close{
      background:url(../img/icons/close.svg) no-repeat center center transparent;
      border:none;
      cursor:pointer;
      height:32px;
      outline:none;
      position:absolute;
      right:24px;
      top:24px;
      width:32px;
    }

    .popup-message .content{
      height:100%
    }

      .popup-message img{
        margin-bottom:32px;
        max-width:192px;
      }

      .popup-message p{
        margin:16px 0 0
      }

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

  dialog::backdrop{
    background-color:#FFF;
  }

  .popup-message{
    border-radius:0;
    height:100vh;
    margin:0;
    max-width: 100%;
    padding:64px 16px;
  }

    .popup-message .content{
      align-items:center;
      display:flex;
      justify-content:center;
      flex-direction:column;
    }
}
/*Fin - Overlay*/

/*Modals*/
.modal{
  position: fixed;
  background: rgba(28, 28, 28, 0.7);
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 0;
  transition: 750ms;
  z-index: 1000;
}

.modal.show{
  pointer-events: all;
  opacity: 1;
  display: flex;
}

.modal .modal-content{
  max-width: 480px;
  width: 95%;
  background-color: #fff;
  border-radius: 8px;
  padding: 32px;
  text-align: center;
  display: grid;
  gap: 16px;
  position: relative;
}

.modal-title{
    padding-top: 16px;
}

.modal-title.pt0{
  padding-top: 0;
}

.modal-title.header-xxl{
  padding-top: 0px;
}

.modal-body{
  padding-bottom: 16px;
}

.modal .closemodal{
  position: absolute;
  top: 32px;
  right: 32px;
  cursor: pointer;
}

.modal .modal-content .img.left{
  text-align: left;
}

.modal .btn.disabled{
  pointer-events: none;
  opacity: 0.4;
}

.modal countdown-timer{
  margin: 0 auto;
}


/*Fin Modals*/


/* ==========================================================================
   Helper classes
   ========================================================================== */

/*
 * Hide visually and from screen readers
 */

.hidden,
[hidden] {
  display: none !important;
}

/*
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 */

.sr-only {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  white-space: nowrap;
  width: 1px;
  /* 1 */
}

/*
 * Extends the .sr-only class to allow the element
 * to be focusable when navigated to via the keyboard:
 * https://www.drupal.org/node/897638
 */

.sr-only.focusable:active,
.sr-only.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  white-space: inherit;
  width: auto;
}

/*
 * Hide visually and from screen readers, but maintain layout
 */

.invisible {
  visibility: hidden;
}

/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */

.clearfix::before,
.clearfix::after {
  content: " ";
  display: table;
}

.clearfix::after {
  clear: both;
}

/* ==========================================================================
   EXAMPLE Media Queries for Responsive Design.
   These examples override the primary ('mobile first') styles.
   Modify as content requires.
   ========================================================================== */

@media only screen and (min-width: 35em) {
  /* Style adjustments for viewports that meet the condition */
}

@media print,
  (-webkit-min-device-pixel-ratio: 1.25),
  (min-resolution: 1.25dppx),
  (min-resolution: 120dpi) {
  /* Style adjustments for high resolution devices */
}

/* ==========================================================================
   Print styles.
   Inlined to avoid the additional HTTP request:
   https://www.phpied.com/delay-loading-your-print-css/
   ========================================================================== */

@media print {
  *,
  *::before,
  *::after {
    background: #fff !important;
    color: #000 !important;
    /* Black prints faster */
    box-shadow: none !important;
    text-shadow: none !important;
  }

  a,
  a:visited {
    text-decoration: underline;
  }

  a[href]::after {
    content: " (" attr(href) ")";
  }

  abbr[title]::after {
    content: " (" attr(title) ")";
  }

  /*
   * Don't show links that are fragment identifiers,
   * or use the `javascript:` pseudo protocol
   */
  a[href^="#"]::after,
  a[href^="javascript:"]::after {
    content: "";
  }

  pre {
    white-space: pre-wrap !important;
  }

  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }

  /*
   * Printing Tables:
   * https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables
   */
  thead {
    display: table-header-group;
  }

  tr,
  img {
    page-break-inside: avoid;
  }

  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }

  h2,
  h3 {
    page-break-after: avoid;
  }
}

#btn-chat{
  align-items: center;
  background-color: rgb(255, 205, 0);
  border-radius: 42px;
  bottom:24px;
  box-shadow: 0 4px 20px 4px rgba(0, 0, 0, 0.12);
  color: rgb(0, 0, 0);
  cursor: pointer;
  display: flex;
  height: 44px;
  gap: 8px;
  justify-content: flex-start;
  min-width: 95px;
  padding: 0 13px;
  position: fixed;
  right:24px;
  text-decoration: none;

  svg{
    box-sizing: border-box;
    height: 22px;
    left: 0;
    padding: 0;
    pointer-events: none;
    position: relative;
    top: -1px;
    width: 22px;
  }

  span{
    color: inherit;
    font:600 16px/22px 'Aberta', sans-serif;
    line-height: 1.3;
    -webkit-font-smoothing: antialiased;
  }
}