:root {
  --primario: #c4dfdf;
  --secundario: #87cbb9;
  --fondo: #e3f4f4;
  --negro: #000000;
  --terciario: #b9eddd;
  --contraste: #f8f6f4;
}

html {
  font-size: 62.5%;
  box-sizing: border-box; /* Hack para Box Model **/
  scroll-snap-type: y mandatory;
}

.Topicos,
.Navegacion,
.Contactar {
  scroll-snap-align: center;
  scroll-snap-stop: always;
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

body {
  font-size: 1rem;
  font-family: "Helvetica", sans-serif;
  background-image: linear-gradient(
    to top,
    var(--contraste) 0%,
    var(--fondo) 100%
  );
}

.Isla {
  max-width: 100rem;
  margin: 0 auto;
}

.Boton {
  background-color: var(--terciario);
  color: var(--secundario);
  padding: 1rem 3rem;
  margin-top: 3rem;
  font-size: 2rem;
  text-decoration: none;
  text-transform: uppercase;
  font-weight: bold;
  border-radius: 0.5rem;
  width: 90%;
  text-align: center;
  border: none;
}
@media (min-width: 768px) {
  .Boton {
    width: auto;
  }
}
.Boton:hover {
  cursor: pointer;
}

.Flote {
  box-shadow: 0px 10px 20px 0px rgba(112, 112, 112, 0.48);
  background-color: var(--fondo);
  padding: 2rem;
  border-radius: 1rem;
}

h1 {
  font-size: 3.8rem;
}

h2 {
  font-size: 2.8rem;
  color: var(--secundario);
}

h3 {
  font-size: 2.2rem;
}

p {
  font-size: 1.5rem;
}

h1,
h2,
h3 {
  text-align: center;
}

.Titulo span {
  font-size: 2rem;
}

.w-sm-100 {
  width: 100%;
}
@media (min-width: 768px) {
  .w-sm-100 {
    width: auto;
  }
}

.flex {
  display: flex;
}
.alinear-derecha {
  justify-content: flex-end;
}

.Fondo-nav {
  background-color: var(--secundario);
}

.Navegacion {
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .Navegacion {
    flex-direction: row;
    justify-content: space-between;
  }
}

.Navegacion a {
  display: block;
  text-align: center;
  color: var(--fondo);
  text-decoration: none;
  font-size: 2rem;
  font-weight: 700;
  padding: 1rem;
}
.Navegacion a:hover {
  background-color: var(--fondo);
  color: var(--secundario);
}

.Icono {
  background-image: url(../img/Icono.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  height: 450px;
  position: relative;
  margin-bottom: 2rem;
}

.Yo {
  background-image: url(../img/Yo.jpg);
  background-repeat: no-repeat;
  background-size:cover;
  height: 450px;
  position: relative;
  margin-bottom: 2rem;
}

.Redes {
  background-image: url(../img/redes.jpg);
  background-repeat: no-repeat;
  background-size:cover;
  height: 500px;
  position: relative;
  margin-bottom: 2rem;
}

.Contenido-ico {
  position: absolute;
  background-color: rgba(0, 0, 0, 0.7);
  background-color: rgb(0 0 0 / 30%);
  width: 100%;
  height: 100%;

  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.Contenido-ico h2,
.Contenido-ico p {
  color: var(--contraste);
}
.Contenido-ico .Ubicacion {
  display: flex;
  align-items: flex-end;
  color: var(--secundario);
}

@media (min-width: 768px) {
  .Topicos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 1rem;
  }
}

.Topico {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--secundario);
}

.Topico h3 {
  color: var(--secundario);
  font-weight: normal;
}

.Topico p {
  line-height: 2;
  text-align: center;
  color: var(--secundario);
}

.Topico .Iconos {
  height: 10rem;
  width: 10rem;
  background-color: var(--terciario);
  border-radius: 20%;
  display: flex;
  justify-content: space-evenly;
  align-items: center;
}

.Contactar {
  background-color: var(--secundario);
  width: min(60rem, 100%); /** Utilizar el valor más pequeño **/
  margin: 0 auto;
  padding: 2rem;
  border-radius: 1rem;
}

.Contactar fieldset {
  border: none;
}
.Contactar legend {
  text-align: center;
  font-size: 1.8rem;
  text-transform: uppercase;
  font-weight: 700;
  margin-bottom: 2rem;
  color: var(--contraste);
}

@media (min-width: 768px) {
  .Contenedor-cam {
    display: grid;
    grid-template-columns: 50% 50%;
    grid-template-rows: auto auto 20rem;
    column-gap: 1rem;
  }

  .Campo:nth-child(3),
  .Campo:nth-child(4) {
    grid-column: 1 / 3;
  }
}
.Campo {
  margin-bottom: 1rem;
}
.Campo label {
  color: var(--contraste);
  font-weight: bold;
  margin-bottom: 0.5rem;
  display: block;
}
.Campo textarea {
  height: 20rem;
}

.Entrada {
  width: 100%;
  border: none;
  padding: 1.5rem;
  border-radius: 0.5rem;
}

.Pie {
  text-align: center;
}
