* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-font-smoothing: antialiased;
    -moz-font-smoothing: antialiased;
    -o-font-smoothing: antialiased;
    font-smooth: antialiased;
    text-rendering: optimizeLegibility;
  }

/* definir variables*/

:root {
  --color-principal: #fbfaf9;
  --color-secundario: #304b46;
  --text-color: #304b46;
  --bg-color: #fbfaf9;
}

/* importar estilos*/

  @import url("https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap");
  @font-face {
    font-family: "Outfit";
    src: url("recursos/Outfit/Outfit-VariableFont_wght.ttf"); /* Para Explorer e compatibles */
    /*src: url("recursos/Outfit/Outfit-VariableFont_wght.ttf") format("truetype"); /* Android e Mac */
  }

body {
  font-family: "Outfit", sans-serif;
  color: var(--color-principal);
  max-width: 100%;
  font-weight: 200;
}
p {
  font-size: 1.4rem;
  line-height: 2rem;
  position: absolute;
  bottom: 10vw;
  right: 10vw;
  width: 200px;
}
a {
  text-decoration: none;
}

/* textos */

.titulo {
  display: inline-flex;
    text-shadow: 0px 0px 1px var(--color-secundario) !important;
}
.titulo h1 a, span a {
    color: #c7a27f;
    text-shadow: 0px 0px 1.8px var(--color-principal) !important;
    animation: cambio-letra 3s -1.2s;
}
h1 {
  z-index: 99;
  text-align: center;
  font-family: "Outfit", sans-serif !important;
  font-weight: 260;
  font-size: 6.9rem !important;
  line-height: 8rem;
  max-width: 80%;
  position: absolute;
  overflow-wrap: break-word;
  hyphens: auto;
  }
  .titulo b {
    font-weight: 550;
    display: inline-block;
  }
h3, .subtitulo {
  text-align: center;
  font-size: 2.6rem !important;
  line-height: 2.8rem !important;
  font-family: "Outfit", serif;
  font-size: 1em;
}
h1 span, h3 span, .subtitulo span {
  display: block;
}
/*************************/


@keyframes cambio-letra {
    0% {
        color: var(--color-secundario);
        text-shadow: 1px 1px 2px var(--color-secundario);
        animation-delay: 2s;
    }
    16% {
        color: var(--color-secundario);
    }
    80% {
      color: var(--color-secundario);
        text-shadow: 2px 2px 4px var(--color-principal);
    }
}

input {
  width: 100%;
}

textarea {
  width: 100%;
}


/* Contacto */ 
#contacto {
  display: flexbox;
  position: absolute;
  max-width: 100%;
    line-height: 1.3em;
    display: block;
}
#contacto a{
  text-decoration: none;
  color: var(--color-principal);
}
#contacto :link:hover {
  text-decoration: none;
  text-shadow: 0 0 1rem var(--color-principal);
}

.contacto-contedor {
  width: 98%;
  display: flexbox;
  -webkit-flex-direction: row !important;
  -ms-flex-direction: row !important;
  flex-direction: row !important;
  -webkit-flex-wrap: nowrap;
  -ms-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -webkit-align-items: stretch;
  -ms-flex-align: stretch;
  align-items: stretch !important;
  -webkit-justify-content: space-around;
  -ms-flex-pack: justify;
  justify-content: space-around !important;
  -webkit-align-content: space-around;
  -ms-flex-line-pack: justify;
  align-content: space-around !important;
  vertical-align: middle;
  vertical-align: -webkit-baseline-middle;

}

.formulario {
    display: flexbox;
    flex: flex-grow 0 31%;
    order: 1;
    align-self: center;
    height: 77vh;
    width:40%;
    margin: auto;
}
.datos {
    display: flexbox;
    flex: flex-grow 0 69%;
    order: 2;
    align-self: center;
    height: inherit;
    max-height: 77vh;
    width: 70%;
    margin: auto;
    font: var(--text-color);
    text-shadow: var(--text-color);
}
.datos p {
  display: block;
  color: var(--color-secundario);
  position: absolute;
  margin: auto 5vh auto auto;
  padding-left: 50%;
  padding-top: 80%;
  min-width: fit-content;
  width: 100%;
}

/* Formulario de contacto */

#contacta {
  background: var(--color-principal);
  color: var(--color-secundario);
  padding: 25px;
  margin: 1rem 0;
  box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2), 0 5px 5px 0 rgba(0, 0, 0, 0.24);
}

#contacta h3 {
  display: block;
  font-size: 27px;
  font-weight: 300;
  margin-bottom: 10px;
}

fieldset {
  border: medium none !important;
  margin: 0 0 10px;
  min-width: 100%;
  padding: 0;
  width: 100%;
}

#contacta input[type="text"],
#contacta input[type="email"],
#contacta input[type="tel"],
#contacta input[type="url"],
#contacta textarea {
  width: 100%;
  border: 1px solid #ccc;
  background: var(--color-principal);
  margin: 0 0 5px;
  padding: 10px;
  font-family: "Outfit",sans-serif;
}

#contacta input[type="text"]:hover,
#contacta input[type="email"]:hover,
#contacta input[type="tel"]:hover,
#contacta input[type="url"]:hover,
#contacta textarea:hover {
  -webkit-transition: border-color 0.3s ease-in-out;
  -moz-transition: border-color 0.3s ease-in-out;
  transition: border-color 0.3s ease-in-out;
  border: 1px solid #aaa;
}

#contacta textarea {
  height: 10em;
  max-width: 100%;
  resize: none;
}

#contacta button[type="submit"] {
    font-family: "Outfit",sans-serif;
  cursor: pointer;
  width: 100%;
  border: none;
  background: var(--color-secundario);
  color: var(--color-principal);
  margin: 0 0 5px;
  padding: 10px;
  font-size: 15px;
}

#contacta button[type="submit"]:hover {
    color: var(--color-secundario);
  background: var(--color-principal);
  -webkit-transition: background 0.3s ease-in-out;
  -moz-transition: background 0.3s ease-in-out;
  transition: background-color 0.3s ease-in-out;
}

#contacta button[type="submit"]:active {
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);
}

::-webkit-input-placeholder {
  color: #888;
}

:-moz-placeholder {
  color: #888;
}

::-moz-placeholder {
  color: #888;
}

:-ms-input-placeholder {
  color: #888;
}


/* Pé de páxina */
footer {
  position: relative;
  bottom: 2rem;
  margin: auto auto 0 20;
  background-color: rgba(0, 0, 0, 0.6);
  color: var(--color-principal);
  text-align: center;
  line-height: 2.2rem;
}

/* Móviles */

@media screen and (max-width:768px) and (orientation:portrait)  {
  body, footer {
    max-width: 768px;
    flex-direction: column;
    margin: 0;
    padding: 0;
  }

  .contacto-contedor {
    display: flexbox;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column !important;
    -webkit-flex-wrap: nowrap;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-justify-content: space-around;
    -ms-flex-pack: justify;
    justify-content: space-around !important;
    -webkit-align-content: space-around;
    -ms-flex-line-pack: justify;
    align-content: space-around !important;
    vertical-align: middle;
    vertical-align: -webkit-baseline-middle;
  }
  .contacto-contedor {
    width: 100%;
    height: auto;
    margin: auto;
  }
.formulario {
  width: 77%;
  height: auto;
  margin: auto;
  padding: 0 13.8% 0 13.8%;
}
.datos {
  color: var(--text-color);
  display: flex;
  flex-direction: column;
  width: 100%;
  height: auto;
  margin-bottom: 2vh;
  padding-bottom: 5vh;
}
.mapa{
  width: 100%;
  height: auto;
  min-height: 25vh;
  margin: 1%;
}
.contactoBis {
  width: 100%;
  height: auto;
  margin: 1%;
  color: #304b46;
}

footer {
  /* position: absolute; */
  z-index: 99;
  bottom: 2px;
  width: 100%;
  margin: 6px 0 8px 0;
  font-size: 0.85rem;
  line-height: 2rem;
  opacity: 0.2;
}
}
@media screen and (min-width: 768px){
  .home {
    -moz-animation: aboutFlexSlide;
    -moz-animation-duration: 3s;
    -moz-animation-iteration-count: 1;
    -moz-animation-delay: 0s;
    -webkit-animation: aboutFlexSlide;
    -webkit-animation-duration: 3s;
    -webkit-animation-iteration-count: 1;
    -webkit-animation-delay: 0s;
    animation: aboutFlexSlide;
    animation-duration: 3s;
    animation-iteration-count: 1;
    animation-delay: 0s;
  }
}

/* **** **** **** **** */
body {
  color: var(--text-color);
  background: var(--bg-color);
  transition: 0.3s ease-out;
  overflow-x: hidden;
  max-width: 100%;
  width: 100%;
  overscroll-behavior: none;
}
section:not(#sectionPin) {
  min-height: 100vh;
  width: 100%;
  position: relative;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  grid-gap: 2rem;
  padding: 50px 10vw;
  margin: auto;
  place-items: center;
}
img {
  height: 80vh;
  width: auto;
  object-fit: cover;
}
h2 {
  font-size: 2rem;
  max-width: 400px;
}

* {
  box-sizing: border-box;
}
#sectionPin {
  height: 100vh;
  overflow: hidden;
  display: flex;
  left: 0;
  background: var(--text-color);
  color: var(--bg-color);
}
.pin-wrap {
  height: 100vh;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding: 50px 10vw;
}
.pin-wrap > * {
  min-width: 60vw;
  padding: 0 5vw;
}

