section.program.contact, section.program.overview {
  overflow-x: visible;
  background: #dedede;
  position: relative;
}
section.program.contact:before, section.program.overview:before, section.program.contact:after, section.program.overview:after {
  position: absolute;
  left: -1%;
  width: 100%;
  height: 36px;
  background: #dedede;
}

section.program.contact:before, section.program.overview:before {
  content: "";
  top: -13px;
  transform: rotateZ(1.6deg);
}

@keyframes fade {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes rotate {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(359deg);
  }
}
@keyframes slide {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}
.slideIn {
  animation: slide 500ms;
}

.slideOut {
  animation: slide 500ms reverse;
}

.fadeOut {
  animation: fade 500ms;
}

.fadeIn {
  animation: fade 500ms reverse;
}

section.program.contact, section.program.overview {
  overflow-x: visible;
  background: #dedede;
  position: relative;
}
section.program.contact:before, section.program.overview:before, section.program.contact:after, section.program.overview:after {
  position: absolute;
  left: -1%;
  width: 100%;
  height: 36px;
  background: #dedede;
}

section.program.contact:before, section.program.overview:before {
  content: "";
  top: -13px;
  transform: rotateZ(1.6deg);
}

@keyframes fade {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes rotate {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(359deg);
  }
}
@keyframes slide {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(0);
  }
}
.slideIn {
  animation: slide 500ms;
}

.slideOut {
  animation: slide 500ms reverse;
}

.fadeOut {
  animation: fade 500ms;
}

.fadeIn {
  animation: fade 500ms reverse;
}

section#contact,
section.program.intro,
section.program.contact {
  display: flex;
  background-size: cover;
  background-attachment: fixed;
  justify-content: space-evenly;
  position: relative;
}
@media (max-width: 450px) {
  section#contact,
  section.program.intro,
  section.program.contact {
    padding: 4% 10px 8%;
  }
}
@media (min-width: 451px) {
  section#contact,
  section.program.intro,
  section.program.contact {
    padding: 4% 10px 8%;
  }
}
@media (min-width: 600px) {
  section#contact,
  section.program.intro,
  section.program.contact {
    padding: 4% 25px 8%;
  }
}
section#contact > *.pic,
section.program.intro > *.pic,
section.program.contact > *.pic {
  background-size: contain;
  background-repeat: no-repeat;
}
section#contact > *.pitch,
section.program.intro > *.pitch,
section.program.contact > *.pitch {
  position: relative;
  background: rgba(255, 255, 255, 0.85);
  padding: 0 3% 3%;
  box-sizing: border-box;
  line-height: 1.6;
}
@media (max-width: 450px) {
  section#contact > *.pitch,
  section.program.intro > *.pitch,
  section.program.contact > *.pitch {
    padding: 6% 3% 12%;
  }
}
section#contact > *.pitch .button,
section.program.intro > *.pitch .button,
section.program.contact > *.pitch .button {
  margin-top: 6%;
  font-size: 1em;
}
@media (max-width: 450px) {
  section#contact,
  section.program.intro,
  section.program.contact {
    flex-direction: column;
  }
}
@media (max-width: 450px) and (max-width: 450px) {
  section#contact,
  section.program.intro,
  section.program.contact {
    padding: 0 10px 8%;
  }
}
@media (max-width: 450px) and (min-width: 451px) {
  section#contact,
  section.program.intro,
  section.program.contact {
    padding: 0 10px 8%;
  }
}
@media (max-width: 450px) and (min-width: 600px) {
  section#contact,
  section.program.intro,
  section.program.contact {
    padding: 0 25px 8%;
  }
}
@media (max-width: 450px) {
  section#contact ul,
  section.program.intro ul,
  section.program.contact ul {
    text-align: left;
  }
}
@media (max-width: 450px) {
  section#contact > *,
  section.program.intro > *,
  section.program.contact > * {
    width: 100%;
    text-align: center;
  }
  section#contact > *.pic,
  section.program.intro > *.pic,
  section.program.contact > *.pic {
    height: 60vh;
    background-size: cover;
    background-position: center;
  }
}
@media (min-width: 451px) {
  section#contact > *,
  section.program.intro > *,
  section.program.contact > * {
    width: 49%;
  }
}
@media (min-width: 800px) {
  section#contact > *,
  section.program.intro > *,
  section.program.contact > * {
    width: 45%;
  }
}

section#contact {
  background-image: url("/roche-pepito/assets/img/groupPic02.jpg");
}
@media (max-width: 450px) {
  section#contact {
    flex-direction: column-reverse;
  }
}
section#contact .pic {
  background-image: url("/roche-pepito/assets/img/rochePic.png");
  box-shadow: 0 -49px 22px 8px black;
}
@media (max-width: 800px) {
  section#contact .pic {
    box-shadow: none;
  }
}
section#contact .pitch {
  position: relative;
}
section#contact .pitch .socIcons svg {
  fill: none;
  cursor: pointer;
  color: #004c9a;
  margin-right: 15px;
}

section.program.intro,
section.program.contact {
  display: flex;
  background-size: cover;
  background-attachment: fixed;
  justify-content: space-evenly;
  position: relative;
}
@media (max-width: 450px) {
  section.program.intro,
  section.program.contact {
    padding: 4% 10px 8%;
  }
}
@media (min-width: 451px) {
  section.program.intro,
  section.program.contact {
    padding: 4% 10px 8%;
  }
}
@media (min-width: 600px) {
  section.program.intro,
  section.program.contact {
    padding: 4% 25px 8%;
  }
}
section.program.intro > *.pic,
section.program.contact > *.pic {
  background-size: contain;
  background-repeat: no-repeat;
}
section.program.intro > *.pitch,
section.program.contact > *.pitch {
  position: relative;
  background: rgba(255, 255, 255, 0.85);
  padding: 0 3% 3%;
  box-sizing: border-box;
  line-height: 1.6;
}
@media (max-width: 450px) {
  section.program.intro > *.pitch,
  section.program.contact > *.pitch {
    padding: 6% 3% 12%;
  }
}
section.program.intro > *.pitch .button,
section.program.contact > *.pitch .button {
  margin-top: 6%;
  font-size: 1em;
}
@media (max-width: 450px) {
  section.program.intro,
  section.program.contact {
    flex-direction: column;
  }
}
@media (max-width: 450px) and (max-width: 450px) {
  section.program.intro,
  section.program.contact {
    padding: 0 10px 8%;
  }
}
@media (max-width: 450px) and (min-width: 451px) {
  section.program.intro,
  section.program.contact {
    padding: 0 10px 8%;
  }
}
@media (max-width: 450px) and (min-width: 600px) {
  section.program.intro,
  section.program.contact {
    padding: 0 25px 8%;
  }
}
@media (max-width: 450px) {
  section.program.intro ul,
  section.program.contact ul {
    text-align: left;
  }
}
@media (max-width: 450px) {
  section.program.intro > *,
  section.program.contact > * {
    width: 100%;
    text-align: center;
  }
  section.program.intro > *.pic,
  section.program.contact > *.pic {
    height: 60vh;
    background-size: cover;
    background-position: center;
  }
}
@media (min-width: 451px) {
  section.program.intro > *,
  section.program.contact > * {
    width: 49%;
  }
}
@media (min-width: 800px) {
  section.program.intro > *,
  section.program.contact > * {
    width: 45%;
  }
}

section.program.intro .pic {
  background-position: center top;
  background-size: cover;
  min-height: 50vw;
  max-height: 100vh;
}
section.program.intro .pitch {
  text-shadow: 1px 2px 1px black;
  color: #fff;
  padding: 0 3% 3%;
  background: none;
}
@media (max-width: 450px) {
  section.program.intro .pitch {
    padding: 6% 3% 12%;
  }
}
section.program.intro .pitch h1 {
  margin-top: 0;
}
@media (max-width: 450px) {
  section.program.intro .pitch {
    margin-left: auto;
    margin-right: auto;
  }
}
section.program.intro .pitch #programsCont {
  display: flex;
  flex-direction: column;
}
section.program.intro .pitch #programsCont > section:not(:last-child) {
  margin-bottom: 45px;
  border-bottom: thin solid #fff;
  padding-bottom: 45px;
}
section.program.overview {
  text-align: center;
}
@media (max-width: 450px) {
  section.program.overview {
    padding: 5% 10px 8%;
  }
}
@media (min-width: 451px) {
  section.program.overview {
    padding: 5% 10px 8%;
  }
}
@media (min-width: 600px) {
  section.program.overview {
    padding: 5% 25px 8%;
  }
}
section.program.overview p {
  width: 70%;
}
section.program.overview .checklist {
  width: 55%;
}
section.program.overview svg {
  color: #004c9a;
}
section.program.details {
  padding: 5% 0;
  text-align: center;
  color: #fff;
  background-size: cover;
  background-attachment: fixed;
}
@media (max-width: 450px) {
  section.program.details {
    padding: 5% 0 12%;
  }
}
section.program.details h1 {
  font-size: 2em;
}
section.program.details #detailCardsCont {
  display: flex;
  justify-content: space-evenly;
}
@media (max-width: 450px) {
  section.program.details #detailCardsCont {
    flex-direction: column;
    align-items: center;
  }
}
section.program.details #detailCardsCont .card {
  text-shadow: 1px 2px 1px black;
  width: 25%;
}
@media (max-width: 450px) {
  section.program.details #detailCardsCont .card {
    width: 85%;
  }
}
section.program.details #detailCardsCont .card img {
  width: 100%;
  box-shadow: 0 0 10px 1px black;
  border: thin solid #5e5e5e;
}
section.program.details #detailCardsCont .card .checklist {
  width: 80%;
}
section.program.details .button {
  width: 50%;
}
@media (max-width: 450px) {
  section.program.details .button {
    width: 90%;
  }
}
section.program.contact .pic {
  background-image: url("/roche-pepito/assets/img/3pplPic.jpg");
}
@media (max-width: 450px) and (orientation: portrait) {
  section.program.contact .pic {
    padding-top: 20%;
  }
}
section.program.contact .pitch {
  background: none;
}
section.program.contact .pitch h2 {
  margin-top: 0;
}