@import url('https://fonts.googleapis.com/css2?family=Bakbak+One&family=Bruno+Ace&family=Orbitron:wght@400..900&family=Russo+One&family=Teko:wght@300..700&display=swap');

:root {
  /*  Font Sizes */
  --base-unit: 4px;
  --base-font-size: 15px;
  --scale-ratio: 1.25;

  /* Typography scale */
  --fs-h-xs: calc(var(--base-font-size) * 0.875);          /* 13.1px */
  --fs-h-sm: calc(var(--base-font-size) * var(--scale-ratio));          /* 18.75px */
  --fs-h-md: calc(var(--base-font-size) * var(--scale-ratio) * var(--scale-ratio));    /* 23.4px */
  --fs-h-lg: calc(var(--base-font-size) * var(--scale-ratio) * var(--scale-ratio) * var(--scale-ratio)); /* 29.3px */
  --fs-display: calc(var(--fs-h-lg) * var(--scale-ratio));  /* 36.6px */

  /* General spacing values */
  --sp-base: var(--base-font-size);
  --sp-none: 0;

  /* esta bien esta opcion? */
  --sp-xxs: calc(var(--base-unit) * 1); /* 4px */
  --sp-xs: calc(var(--base-unit) * 2); /* 8px */
  --sp-sm: calc(var(--base-unit) * 3); /* 12px */
  --sp-md: calc(var(--base-unit) * 4); /* 16px */
  --sp-lg: calc(var(--base-unit) * 6); /* 24px */
  --sp-xl: calc(var(--base-unit) * 8); /* 32px */
  --sp-xxl: calc(var(--base-unit) * 12); /* 48px */
  --sp-xxxl: calc(var(--base-unit) * 16); /* 64px */

  /* Component-specific presets - Modern Mobile */
  /*--container-padding: var(--space-4);*/
  /*--card-padding: var(--space-4);*/
  /*--section-margin: var(--space-6);*/
  /*--grid-gap: var(--space-3);*/

  /* BORDERS */
  --border-rad-xs: 4px;
  --border-rad-sm: 8px;
  --border-rad-md: 12px;

  /* =============== DEFAULT VALUES ========================= */
  --l-r-padding: var(--sp-sm); /* left, right padding */
  --l-r-padding-lg: var(--sp-lg);
  --l-r-padding-xlg: var(--sp-xl);
  --l-r-padding-xxlg: var(--sp-xxl);
  --t-b-padding: var(--sp-xxl); /* top, bottom padding */


  /*!* Flex/Grid Spacing *!*/
  /*--gap-xs: var(--sp-xs);*/
  /*--gap-sm: var(--sp-sm);*/
  /*--gap-md: var(--sp-md);*/
  /*--gap-lg: var(--sp-lg);*/


  /* Color Base */
  --clr-base: #bfbfc6;
  --clr-base-lt: #f5f5f6;
  --clr-base-dk: #8a8a95;

/*  Color Primary */
  --clr-primary:    #1b1e25;
  --clr-primary-lt: #464e60; /* Lighten 5% */
  --clr-primary-ltr: #737e99; /* Lighten 10% */
  --clr-primary-dk:  #000; /* Darken 5% */
  /*--clr-primary-dkr: 000; !* Darken 10% *!*/

/* Color Secondary */
/*  --clr-secondary: ;*/

  /* 🎨 Colores Neutros */
  --clr-ntrl-white: #ffffff;
  --clr-ntrl-black: #000000;

  /* 🎨 Colores Utilitarios */
  --clr-success:  #28a745;
  --clr-warning:  #ffc107;
  --clr-error:    #dc3545;
  --clr-error-dk: #932529;

  /* Font */
  --ff-base: "Bakbak One";
  --ff-text: "JetBrains Nerd Font";
  --ff-p: "Gill Sans", Calibri;
  --z-back: -1;
  --z-base: 1;
  --z-dropdown: 1000;
  --z-modal: 1050;
  --z-tooltip: 1100;
}
/*@media (min-width: 50em) {*/
/*  :root {*/
/*    --base-font-size: 1.125em;*/
/*  }*/
/*}*/
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  font-size: var(--base-font-size);
}
html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  background-color: var(--clr-primary);
}
body {
  line-height: 1.2;
  font-family: var(--ff-base), sans-serif;
  color: var(--clr-ntrl-white);
}
img {
  width: 100%;
}
h1, h2 {
  text-transform: uppercase;
}

/* -------- HEADER -------- */
.site-header {
  position: fixed;
  width: 100%;
  height: 85px;
  transition: top 0.6s ease-in-out;
  z-index: var(--z-dropdown);
  top: -85px; /* default location for header: -85px(up) */
}
.site-header.scrolled {
  background-color: var(--clr-ntrl-black);
  top: 0;
}
.site-header__container {
  position: fixed;
  top: 0;
  left: var(--l-r-padding);
  width: calc(100% - (var(--l-r-padding) * 2));
  height: 85px;
  /* border-bottom: 1px solid var(--clr-error-dk); */
}
/* -------- NAV -------- */
.site-nav {
  position: relative;
  z-index: var(--z-dropdown);
}
.site-nav__toggle {
  position: fixed;
  top: 18px;
  right: var(--sp-sm);
  width: 50px;
  height: 50px;
  z-index: var(--z-dropdown);

  background: url("/static/img/burger1.svg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50%;
  border: 0;
}
.site-nav__toggle:hover {
  cursor: pointer;
  background: url("/static/img/burger3.svg");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: 50%;
  border: 0;
}
.site-nav__toggle.is-open {
  background: url("/static/img/close.svg");
  /* backgound-repeat: no-repeat; */
  background-size: cover;
  background-position: 50%;
}
.site-nav__menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: white;
  display: none;
}
.site-nav__menu.is-open {
  display: flex;
  flex-direction: row;
  justify-content: left;
  align-items: center;
}
.site-nav__list {
  list-style-type: none;
}
.site-nav__list > li + li {
  margin-top: var(--sp-sm);
}
.site-nav__list > li > a {
  text-decoration: none;
  text-transform: uppercase;
  font-weight: 400;
  font-size: 1.2rem;
}
@media (min-width: 770px) {
  .site-nav__list > li > a {
    text-decoration: none;
    text-transform: uppercase;
    font-weight: 400;
    font-size: 2.2rem;
  }
}
.site-nav__list > li > a:link {
  color: var(--clr-ntrl-black);
  color: #000000;
}
.site-nav__list > li > a:visited {
  color: crimson;
}
.site-nav__list > li > a:hover {
  color: #737e99;
  scale: 1.1;
}
.site-nav__list > li > a:active {
  color: #0000FF;
}
/*
.site-nav__list > li > a::before {
  position: absolute;
  content: '>';
  color: transparent;
  transition: color 0.3s ease;
}
.site-nav__list > li > a:hover::before {
  color: var(--clr-ntrl-white);
} */
/* link, visited, hover, active */

/* ======== HERO ======== */
.site-hero {
  z-index: var(--z-back);
  height: 100vh;
  background-size: cover;
  background-position: 50%;
  display: flex;
  align-items: center;
  padding: var(--l-r-padding-lg);
  animation: slideBackground 15s infinite;
}

.site-hero::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: "";
  background-color: rgba(0, 0, 0, 0.4);
}
.site-hero__content {
  z-index: var(--z-base);
  text-transform: uppercase;
  transform: scaleY(1.1);
}


.site-hero__content h1 {
  font-size: var(--fs-h-xs);
}
.site-hero__content h2 {
  font-family: var(--primary-font), serif;
  font-size: var(--fs-display);
  color: var(--clr-ntrl-white);
  margin-top: var(--sp-md);
}
@media (min-width: 770px) {
  .site-hero {
    padding: 0 0 0px 350px;
  }
  .site-hero__content h1 {
    font-size: var(--fs-h-lg);
    margin-bottom: 0;
  }
  .site-hero__content h2 {
    font-size: 4rem;
    margin-top: 0;
  }
}

@keyframes slideBackground {
  0% { background-image: url("/static/img/background6.jpg"); } /* 7*/
  20% { background-image: url("/static/img/background6.jpg"); } /* 7 */
  60% { background-image: url("/static/img/background2.jpg"); } /* 6 */
  85% { background-image: url("/static/img/background3.jpg"); } /* 1 */
  100% { background-image: url("/static/img/background3.jpg"); } /* 1 */
}

/* ======== MAIN ======== */
/* .main{} */

/* -------- about -------- */
.about {
  background-color: #1b1e25;
  background-image: url("data:image/svg+xml,%3Csvg width='42' height='44' viewBox='0 0 42 44' xmlns='http://www.w3.org/2000/svg'%3E%3Cg id='Page-1' fill='none' fill-rule='evenodd'%3E%3Cg id='brick-wall' fill='%239C92AC' fill-opacity='0.11'%3E%3Cpath d='M0 0h42v44H0V0zm1 1h40v20H1V1zM0 23h20v20H0V23zm22 0h20v20H22V23z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  background-size: 20%;
  padding: 40px var(--l-r-padding-lg);
}
@media (min-width: 470px) {
  .about {
    padding: 40px var(--l-r-padding-xlg);
  }
}
@media (min-width: 770px) {
  .about {
    display: flex;
    max-width: 1080px;
    height: 70vh;
    flex-direction: row; 
    justify-content: space-between;
    margin: 0 auto;
    gap: 16px;
    background: transparent;
  }
}
@media (min-width: 770px) {
  .about-inner {
    display: flex;
    justify-content: center;
    gap: 1%;
    align-items: center;
  }
}
.about__header {
  width: 100%;
  height: 190px;
  margin-bottom: 2.5em;
  background-size: cover;
  background-position: 50%;
  background-repeat: no-repeat;
}
@media (min-width: 470px) {
  .about__header {
    height: 300px;
    flex-basis: 40%;
  }
}
@media (min-width: 770px) {
  .about__header {
    flex-basis: 60%;
    height: 90%;
    margin-bottom: 0;
    background-size: contain;
  }
}
.about__body > h2 {
  font-size: var(--fs-h-md);
  font-weight: 100;
  color: var(--clr-ntrl-white);
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}
.about__body > p {
  color: var(--clr-base-dk);
  font-size: var(--fs-h-xs);
  text-align: justify;
  margin-bottom: 1em;
  line-height: 1.6;
}
@media (min-width: 770px) {
  .about__body {
    /* flex-basis: 50%; */
    flex-basis: 40%;
    font-size: var(--fs-h-sm);
    /* border: 1px solid white; */
  }
  .about__body > p {
    font-size: var(--fs-h-sm);
  }
  .about__body > h2 {
    font-size: 36px;
  }
}
.about__body > a {
  display: inline-block;
  padding: 1em 3em;
  background-color: var(--clr-primary);
  border: 1px solid var(--clr-ntrl-white);
  color: var(--clr-ntrl-white);
  font-size: var(--fs-h-xs);
  text-transform: uppercase;
  font-weight: bold;
  transition: background 1s ease;
  text-decoration: none;
  /* font-family: "JetBrains Nerd Font"; */
}
.about__body > a:hover {
  background: var(--clr-ntrl-white);
  color: var(--clr-ntrl-black);
}

/* -------- section.services -------- */
.services {
  font-size: var(--fs-h-sm);
}
@media (min-width: 770px) {
  .services {
    height: 80vh;
  }
}
.services__header {
  background-color: var(--clr-ntrl-black);
  text-align: center;
}
.services__header h1 {
  font-size: inherit;
  padding: var(--t-b-padding) 0 0 0;
  margin-bottom: var(--sp-none);
}
@media (min-width: 770px) {
  .services__header h1 {
    /* padding: var(--t-b-) */
    font-size: 36px;
  }
}
.services__list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
@media (min-width: 480px) {
  .services__list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 3px;
  }
}
@media (min-width: 770px) {
  .services__list {
    flex-wrap: nowrap;
    gap: 1px;
  }
}
.services__list .services__item {
  width: 100%;
  height: 200px;
  padding: 3em 2em;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  background-size: cover;
  background-position: 50%;
  background-repeat: no-repeat;
  border: 10px solid black;
  transition: box-shadow 1s ease;
  text-decoration: none;
  color: var(--clr-base-lt);
}
@media (min-width: 480px) {
  .services__item {
    /* flex-grow: 0;
    flex-shrink: 0;
    flex-basis: 50%; */
    flex: 1 1 calc(50% - 1.5rem); /* 2 columnas */
  }
}
@media (min-width: 770px) {
  .services__list .services__item {
    border: 0;
    padding: 0;
    height: 50vh;
  }
  .services__list .services__item h2 {
    font-size: 1.8rem;
    text-shadow:
    -1px -1px 0 black,
     1px -1px 0 black,
    -1px  1px 0 black,
     1px  1px 0 black;
  }
}
.services__list .services__item:hover {
  box-shadow: inset 0 0 25px 50px rgba(0, 0, 0, 0.4);
}
.services__item > h2 {
  font-size: inherit;
}

/* -------- section.projects -------- */
/* .main-projects-res {} */
@media (min-width: 770px) {
  .main-projects-res {
    max-width: 1080px;
    margin: 0 auto;
  }
}

.projects {
  background-color: var(--clr-base-lt);
  padding: var(--t-b-padding) var(--l-r-padding-lg);
  font-size: var(--fs-h-xs);
}

.projects__header {
  text-align: center;
  text-transform: uppercase;
}
.projects__header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.projects__header__inner h1 {
  flex: 1; /*here*/
  color: var(--clr-ntrl-black);
  font-size: inherit;
  /* display: flex;
  align-items: center;
  font-weight: bold;*/
  text-align: left;
}
.projects__header__inner a {
  flex: 1;
  color: var(--clr-base-dk);
  text-align: right;
}
.projects__header__inner a:hover {
  color: var(--clr-error-dk);
}
.projects__body {
  overflow: hidden;
}
.carousel {
  position: relative;
  /*max-width: 1080px;*/
  overflow: hidden;
  box-shadow: var(--box-shadow-md);
}
.carousel__cards {
  display: flex;
  gap: 1rem;
}
@media (min-width: 770px) {
  .carousel__cards {
    /* justify-content: space-between; */
    gap: 5px;
  }
}


.card {
  min-width: 300px;
  /* max-width: 450px; */
  max-width: 625px;
  width: 100%;
  height: 500px;
  flex-shrink: 0;
  background-color: var(--clr-ntrl-white);
  box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.1);
  color: var(--clr-ntrl-black);
  text-align: center;
  /* padding-bottom: var(--t-b-padding); */

  /* internal flow of card */
  display: flex;
  flex-direction: column;
  justify-content: space-between;

  /* new changes */
  /* width: calc(375px - (var(--l-r-padding) * 2)); */
}

@media (min-width: 700px) {
  .card {
    /* max-width: 315px; */
    flex-basis: 50%;
  }
}
@media (min-width: 1000px) {
  .card {
    flex-basis: 33%;
  }
}

.card__header {
  height: 80%;
  margin-inline: 0;
  margin-block: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.card__header__background {
  object-fit: cover;
  width: 100%;
  /*width: 100%;*/
  height: 80%;
}
.card__header__caption {
  height: 20%;
  font-size: var(--fs-h-sm);
  margin: var(--sp-sm) 0;
  text-transform: uppercase;
}
.card__body {
  height: 20%;
}
.card__body__button {
  position: relative;
  width: 90%;
  /*margin: var(--sp-lg) 0;*/
  padding: var(--sp-sm);
  background-color: transparent;
  border: 1px solid black;
  text-transform: uppercase;
  font-weight: bold;
  z-index: var(--z-base);
}
.card__body__button:hover {
  color: white;
}
.card__body__button::before {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--clr-ntrl-black);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
  z-index: var(--z-back);
}
.card__body__button:hover::before {
  transform: scaleX(1);
}
.carousel__buttons {
  position: absolute;
  bottom: 25px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 25px;
}
.carousel__buttons button {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  border: 1px solid var(--clr-ntrl-black);
}
.carousel__buttons button.active {
  background-color: var(--clr-ntrl-black);
}
@media (min-width: 700px) {
  .carousel__buttons button:nth-child(3) {
    display: none;
  }
}
@media (min-width: 1000px) {
  .carousel__buttons {
    display: none;
  }
}

/* -------- section.contact -------- */
.contact {
  padding: var(--t-b-padding) var(--l-r-padding);
  text-align: center; 
  display: flex;
  gap: 1rem;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.contact__title {
  font-size: var(--fs-h-sm);
  margin: var(--t-b-padding);
  margin: 0;
}
@media (min-width: 770px) {
  .contact {
    height: 25vh;
  }
  .contact__title {
    font-size: var(--fs-h-md);
  }
}
.contact__button {
  background-color: var(--clr-error-dk);
  color: var(--clr-ntrl-white);
  padding: var(--sp-sm) var(--sp-lg);
  border: none;
  text-transform: uppercase;
  /* font-weight: bold; */
  transform-origin: bottom;
  margin-top: var(--sp-md);
  text-decoration: none;
}
.contact__button:hover {
  box-shadow: inset 0 0 15px 15px rgba(0, 0, 0, 0.3);
  cursor: pointer;
  text-shadow: 1px 1px 2px black;
}

/* -------- footer -------- */
.site-footer {
  height: 35vh;
  /* background-color: var(--clr-ntrl-black); */
  /* padding: var(--l-r-padding) var(--t-b-padding); */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  /* padding: var(--l-r-padding) 0; */
  background-color: black;
  padding: var(--t-b-padding) 0 var(--l-r-padding) 0; 
}
.site-footer__header { /* ul */
  height: 20%;
  background-color: rgba(0, 0, 0, 0.3);
}
.site-footer__media {
  height: 100%;
  list-style-type: none;
  margin: 0;
  padding: 0;
  display: flex;
  justify-content: center;
  gap: 15px;
}
.site-footer__media li {
  flex-grow: 0;
  flex-shrink: 0;
  flex-basis: 50px;
}
.site-footer__media li a {
  text-decoration: none;
  display: flex;
  justify-content: center;
  align-items: center;
}
.site-footer__media li a img {
  object-fit:contain;
  width: 55%;
  height: 55%;
}
.site-footer__body {
  height: 70%;
  /* background-color: black; */
  display: flex;
  flex-direction: column;
  /* justify-content: space-around; */
  justify-content: space-around;
}
.site-footer__logo {

  flex: 0 0 40%;
  background: url('/static/img/codis-footer.png');
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.site-footer__copyright {
  flex: 0 0 30%;
  text-align: center;
  list-style: none;
  margin: 0;
  padding: 0;
  font-weight: 100;
  font-family: sans-serif;
  color: rgb(80, 84, 84);
}
.site-footer__copyright__link {
  text-decoration: none;
  color: inherit;
}
.site-footer__copyright__link:hover{
  text-decoration: underline;
  cursor: pointer;
}
/* /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/  Generic /-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/ */

.generic-page-hero {
  position: relative;
  height: 40vh;
  background-size: cover;
  background-position: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--l-r-padding-lg);
}
.generic-page-hero::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  content: "";
  background-color: rgba(0, 0, 0, 0.4);
}
.generic-page-hero__content {
  z-index: var(--z-base);
  text-transform: uppercase;
  transform: scaleY(1.1);
}
.generic-page-hero__content h1 {
  font-size: var(--fs-h-xs);
}
@media (min-width: 770px) {
  .generic-page-hero__content h2 {
    font-size: 36px;
  }
}
.generic-page-wrapper {
  background-color: transparent;
  padding: var(--l-r-padding) var(--l-r-padding);
}
/* ---------------------------------------------- Prueba -------------------------------------------------------- */
@media (min-width: 470px) {
  .generic-page-wrapper {
    padding: var(--l-r-padding) var(--l-r-padding-xlg);
  }
}
@media (min-width: 570px) {
  .generic-page-wrapper {
    padding: var(--l-r-padding) var(--l-r-padding-xxlg);
  }
}
.generic-page-wrapper--dark {
  background-color: var(--clr-primary);
}
.generic-page-wrapper--light {
  background-color: var(--clr-base-lt);
}
/* .generic-page-res {} */
@media (min-width: 770px) {
  .generic-page-res {
    margin: 0 auto;
  }
}

.generic-page-section {
  min-width: 375px;
  min-width: calc(375px - (var(--l-r-padding) * 2));
  flex: 0 0 400px;
  display: flex;
  gap: 16px;
  flex-direction: column;
  justify-content: space-around;
  /* box-shadow: 1px solid rgba(0, 0, 0, 0.1); */
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
  background-color: var(--clr-base-lt);
  margin: var(--l-r-padding-lg);
  font-family: var(--ff-p);
}
.generic-page-section--dark {
  box-shadow: none;
}
.generic-page-section__background {
  flex: 0 1 50%;
  overflow: hidden;
  min-height: 300px;
}
.generic-page-section__background > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.generic-page-section__body {
  flex: 0 1 50%;
  text-align: justify;
  padding: 0 var(--l-r-padding-lg);
  color: var(--clr-ntrl-black);
  font-size: var(--fs-h-sm);
}
.generic-page-section__body--dark {
  flex: 0 1 50%;
  text-align: justify;
  /* padding: 0 var(--l-r-padding-lg); */
  padding: 0;
  color: var(--clr-base-lt);
  background-color: var(--clr-primary);
}
.generic-page-text {
  font-family: var(--ff-p);
  padding: var(--l-r-padding-lg);
}
.generic-page-button {
  display: inline-block;
  padding: 0.5rem 1rem;
  color: var(--clr-ntrl-white);
  text-decoration: none;
  text-transform: uppercase;
  font-family: var(--ff-base);
  font-family: var(--ff-text);
  text-align: left;
  border-radius: 5px;
  font-weight: bold;
  font-size: var(--fs-h-xs);
}
.generic-page-button--red {
  background-color: var(--clr-error-dk);
  border: 1px solid black;
}
.generic-page-button--dark {
  background-color: var(--clr-ntrl-black);
}

/* generic-card */
.generic-card {
  min-width: 375px;
  height: 700px;
  min-width: calc(375px - (var(--l-r-padding) * 2));
  display: flex;
  flex-direction: column;
  margin: 8px 0;
  /* border: 1px solid white; */
}
.generic-card--light {
  background-color: var(--clr-base-lt);
  color: var(--clr-ntrl-black);
  border: 1px solid rgba(0, 0, 0, 0.1);
}
.generic-card--dark {
  background-color: var(--clr-primary);
  color: var(--clr-ntrl-white);
}
.generic-card__header {
  flex-basis: 50%;
}
.generic-card__body {
  flex-basis: 50%;
  /* padding: var(--l-r-padding) 0; */
}
@media (min-width: 570px) {
  .generic-card {
    height: 800px;
  }
  .generic-card__header {
    flex-basis: 60%;
  }
  .generic-card__body {
    flex-basis: 40%;
  }
}
@media (min-width: 670px) {
  .generic-card {
    height: 850px;
  }
}
.generic-card__body__item {
  display: inline-block;
  width: 100%;
  margin: 0.5rem 0;
  border: 0;
  
  /* padding: 0.2rem 0.5rem; */
}
.generic-card__body__item--dark {
  color: black;
}
.generic-background {
  width: 100%;
  height: 200px;
  background-size: cover;
  background-repeat: no-repeat;
  border: 0;
}
@media (min-width: 770px) {
  .generic-background {
    height: 50vh;
  }
}

h2.generic-card__body__item {
  /* font-family: "Jet Brains Mono"; */
  font-family: var(--ff-base);
  letter-spacing: 2px;
  font-size: 1.2rem;
}
p.generic-card__body__item {
  font-family: "Jet Brains Mono", sans-serif;
  font-size: 1rem;
  letter-spacing: 1px;
}
button.generic-card__body__item {
  background-color: var(--clr-error-dk);
  border: 0;
  padding: 0.7rem 0;
  color: white;
  font-weight: bold;
  text-transform: uppercase;
  font-size: var(--fs-h-xs);
  /* max-width: 300px; */
  width: 250px;
  
}
button.generic-card__body__item:hover {
  box-shadow: inset 0 0 5px 5px rgba(0, 0, 0, 0.3);
}
button.generic-card__body__item--transparent {
  background-color: transparent;
  color: var(--clr-base-lt);
  border: 1px solid var(--clr-base-lt);
}
button.generic-card__body__item--transparent:hover {
  scale: 1.01;
}
a.generic-card__body__item {
  background-color: var(--clr-error-dk);
  border: 0;
  padding: 0.7rem 0;
  color: white;
  font-weight: bold;
  text-transform: uppercase;
  font-size: var(--fs-h-xs);
  width: 250px;
  text-decoration: none;
  text-align: center;
}
a.generic-card__body__item:hover {
  scale: 1.03;
}
label.generic-card__body__item {
  text-transform: uppercase;
  padding-left: 0;
}
input.generic-card__body__item {
  margin-top: 0;
  padding: 0.5rem;
  border-radius: 3px;
  border: 1px solid rgba(0, 0, 0, 0.3);
  font-size: 1rem;
}
textarea.generic-card__body__item {
  height: 200px;
  border: 1px solid rgba(0, 0, 0, 0.3)
}
.generic-form {
  min-width: calc(375px - (var(--l-r-padding) * 2));
  max-width: 600px;
  border-top: 1px solid white;
}
@media (min-width: 770px) {
  .generic-form {
    margin: 0 auto;
  }
}

/* =============== ABOUT.HTML =================== */

.generic-page-hero--about {
  position: relative;
  height: 40vh;
  background-size: cover;
  background-position: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--l-r-padding);
  background-image: url("/static/img/about_background.jpg");
}
/* .about-section {
  background-color: var(--clr-base-lt);
  color: black;
} */
.generic-card--about {
  /* border: 1px solid rgba(0, 0, 0, 0.3);
  background-color: rgba(0, 0, 0, 0.1); */
  text-align: justify;
  padding: var(--l-r-padding) var(--l-r-padding);
  overflow: hidden;
}
.generic-card__header--about {
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: 100%;
}
@media (min-width: 770px) {
  .generic-card--about {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 16px;
    
    height: 50vh;
    max-width: 1080px;
    margin: 8px auto;
    padding: 0;
    box-shadow: inset 0 0 5px 0 rgba(0, 0, 0, 0.1);
  }
  .generic-card__header--about {
    flex-basis: 40%;
    background-size: cover;
    background-position: 50%;
    width: 384px;
    height: 405px;
    /* box-shadow: inset 0 0 80px 15px black; */
  }
  .generic-card__body--about {
    flex-basis: 40%;
  }
}




/* --------------- Projects.html ------------------------- */
.generic-page-hero--projects {
  background-image: url("/static/img/project_background.jpg");
}
.generic-page-hero--projects::before {
  background-color: rgba(0, 0, 0, 0.8);
}

.projects-card {
  flex-basis: 100%;
  height: 500px;
  background-color: var(--clr-ntrl-white);
  box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.1);
  color: var(--clr-ntrl-black);
  text-align: center;

  /* internal flow of card */
  display: flex;
  flex-direction: column;
}
@media (min-width: 600px) {
  .projects-card {
    /* flex-basis: (375px - (var(--l-r-padding) * 2)); */
    flex-basis: 49%;
  }
}
@media (min-width: 900px) {
  .projects-card {
    flex-basis: 30%;
  }
}

.projects-card__header {
  flex: 0 0 60%;
  overflow: hidden;
  /* margin-inline: 0;
  margin-block: 0; */
  display: flex;
  flex-direction: column;
}
.projects-card__header__img {
  flex: 0 0 80%;
  object-fit: cover;
  width: 100%;
  height: 100%;
}
.projects-card__header__caption {
  flex: 0 0 20%;
  font-size: var(--fs-h-sm);
  margin: var(--sp-sm) 0;
  text-transform: uppercase;
}
.projects-card__body {
  flex: 0 0 39%;
}
.projects-card__body__button {
  position: relative;
  width: 90%;
  /*margin: var(--sp-lg) 0;*/
  padding: var(--sp-sm);
  background-color: transparent;
  border: 1px solid black;
  text-transform: uppercase;
  font-weight: bold;
  z-index: var(--z-base);
}
.projects-card__body__button:hover {
  color: white;
}
.projects-card__body__button::before {
  position: absolute;
  content: "";
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--clr-ntrl-black);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s ease;
  z-index: var(--z-back);
}
.projects-card__body__button:hover::before {
  transform: scaleX(1);
}
.projects-res {
  /* min-width: calc(375px + (var(--l-r-padding) * 2)); */
  min-width: 300px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
@media (min-width: 600px) {
  .projects-res {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
  }
}
@media (min-width: 770px) {
  .projects-res {
    max-width: 1080px;
    margin: 0 auto;
  }
}


/* =============== Project Detail =================== */
.generic-page-wrapper--project {
  background-color: var(--clr-base-lt);
  padding: var(--t-b-padding) var(--l-r-padding-lg);
}
/* .project-inner {} */

@media (min-width: 770px) {
  .project-inner {
    max-width: 1080px;
    margin: 0 auto;
    background-color: white;
    padding: 1rem;
  }
  /* .generic-page-wrapper--project {
    margin: 0 auto;
    max-width: 1080px;
  } */
   /* .aux {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

   } */
}
.project-detail-wrapper {
  background-color: var(--clr-base-lt);
  padding: var(--t-b-padding) var(--l-r-padding-lg);
}
.project-header {
  /* background-color: var(--clr-base-lt);
  color: var(--clr-base); */
  color: black;
}
.project-header__item h3 {
  color: var(--clr-base-dk);
}
.project-header__item p {
  color: black;
  font-weight: 100;
  text-transform: capitalize;
  font-family: sans-serif;
}
.project-header__description h3 {
  color: var(--clr-base-dk);
}
.project-gallery > h2 {
  color: var(--clr-primary);
}
@media (min-width: 770px) {
  .project-header__item h3 { 
    font-size: 32px;
  }
  .project-header__item p {
    font-size: 24px;
  }
  .project-header__description h3 {
    font-size: 32px;
  }
  .project-gallery > h2 {
    font-size: 32px;
  }
}
.project-gallery__items {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 15px;
  width: 80%;
  max-width: 1200px;
}
.project-gallery__items img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
  transition: transform 0.3s;
}

.project-gallery__items img:hover {
  transform: scale(1.05);
}

.modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.8);
  justify-content: center;
  align-items: center;
  z-index: 1000;
}

.modal img {
  max-width: 90%;
  max-height: 90%;
  border-radius: 10px;
  object-fit: contain;
}
.details-list {
  max-width: 600px;
  margin: 2rem auto;
  font-family: 'Helvetica Neue', sans-serif;
  border-top: 1px solid #e0e0e0;
}

.details-row {
  display: flex;
  justify-content: space-between;
  padding: 1rem 0;
  border-bottom: 1px solid #e0e0e0;
}

.details-row dt {
  flex: 1;
  color: #999;
  font-size: 0.9rem;
}

.details-row dd {
  flex: 2;
  margin: 0;
  text-align: right;
  color: #333;
  font-weight: 500;
}

.details-row dd a {
  color: #b61c1c;
  text-decoration: none;
}

.details-row dd a:hover {
  text-decoration: underline;
}

/* ------------------------------------ Galeria ------------------------------- */

.gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 10px;
  margin-bottom: 20px;
  background-color: var(--clr-primary);
  padding: 5px;
}

.gallery img {
  width: 100%;
  height: 150px;
  object-fit: cover;
  cursor: pointer;
  border-radius: 5px;
  transition: transform 0.3s ease;
}

.gallery img:hover {
  transform: scale(1.05);
}

.lightbox {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  display: none;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  flex-direction: column;
}

.lightbox.active {
  display: flex;
}

.lightbox-content {
  position: relative;
  width: 90%;
  max-width: 800px;
  max-height: 80vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.lightbox-img {
  max-width: 100%;
  max-height: 70vh;
  object-fit: contain;
}

.close-btn {
  position: absolute;
  top: -40px;
  right: 0;
  color: white;
  font-size: 30px;
  cursor: pointer;
  background: none;
  border: none;
  outline: none;
}

.nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  color: white;
  font-size: 24px;
  background: rgba(0, 0, 0, 0.5);
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
  outline: none;
}

.prev-btn {
  left: 10px;
}

.next-btn {
  right: 10px;
}

.image-counter {
  color: white;
  margin-top: 15px;
  font-size: 16px;
}

@media (max-width: 500px) {
  .gallery {
      grid-template-columns: repeat(2, 1fr);
  }
  
  .nav-btn {
      width: 35px;
      height: 35px;
      font-size: 20px;
  }
  
  .close-btn {
      top: -35px;
      font-size: 24px;
  }
}


/* --------------------- Contact Detail ---------------- */
.generic-page-hero--contact {
  background-image: url("/static/img/contact_background.jpg");
}

.generic-card__header--contact {
  background-image: url("/static/img/codis_location.png");
  overflow: hidden;
  background-size: 100%;
  background-repeat: no-repeat;
  background-position: 50%;
  background-size: cover;
}
@media (min-width: 770px) {
  .generic-card--contact {
    flex-direction: row;
    justify-content: center;
    align-items: stretch;
    /* border: 1px solid white; */
    align-items: center;
    height: 50vh;
    max-width: 1080px;
    margin: 0 auto;
  }
  .generic-card__header--contact {
    flex-basis: 40%;
    background-size: contain;
    background-position: 50%;
    width: 384px;
    height: 405px;
  }
  .generic-card__body--contact {
    flex-basis: 40%;
  }
  .generic-page-wrapper--contact {
    max-width: 1080px;
    margin: 0 auto;
  }
}
.generic-page-wrapper--contact > h1 {
  margin-top: 0;
  margin-bottom: 0;
}

/* ----------------- new contact form ------------------------------- */
form input, 
form textarea, 
form select {
  width: 100%;
  padding: 0.75rem;
  border-radius: 0.5rem;
  border: 1px solid #ccc;
  font-size: 1rem;
  background-color: #111; /* fondo oscuro */
  color: white;
  margin-bottom: 1rem;
}

form label {
  font-weight: bold;
  color: black;
  display: block;
  text-transform: uppercase;
  margin-bottom: 0.5rem;
}

form button {
  background-color: #222;
  color: white;
  padding: 0.75rem 1.5rem;
  border: none;
  border-radius: 0.5rem;
  cursor: pointer;
  font-weight: bold;
  transition: background 0.3s ease;
}
form button:hover {
  background-color: #444;
}

/* ----------------------- Services ----------------------- */
.generic-page-hero--services {
  background-image: url("/static/img/service_background.jpg");
}

.generic-card--services {
  border: 1px solid rgba(0, 0, 0, 0.3);
  background-color: rgba(0, 0, 0, 0.1);
  text-align: justify;
  padding: var(--l-r-padding) var(--l-r-padding);
  overflow: hidden;
}
.generic-card__header--services {
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: 100%;
}
@media (min-width: 770px) {
  .generic-card--services {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 16px;
    
    height: 50vh;
    max-width: 1080px;
    margin: 8px auto;
    padding: 0;
    box-shadow: inset 0 0 5px 0 rgba(0, 0, 0, 0.1);
  }
  .generic-card__header--services {
    flex-basis: 40%;
    background-size: cover;
    background-position: 50%;
    width: 384px;
    height: 405px;
    /* box-shadow: inset 0 0 80px 15px black; */
  }
  .generic-card__body--services {
    flex-basis: 40%;
  }
}

/* ----------------------- Service Detail ----------------- */
/* here!!!!!!!!!!!!!!!!!!! */
.generic-page-hero--service {
  background-image: url("/static/img/contact_background.jpeg");
}

.generic-card--service {
  border: 1px solid rgba(0, 0, 0, 0.3);
  background-color: rgba(0, 0, 0, 0.1);
  text-align: justify;
  padding: var(--l-r-padding) var(--l-r-padding);
}
.generic-card__header--service {
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: 100%;
}
@media (min-width: 770px) {
  .generic-card--service {
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 16px;
    
    height: 50vh;
    max-width: 1080px;
    margin: 8px auto;
    padding: 0;
    box-shadow: inset 0 0 5px 0 rgba(0, 0, 0, 0.1);
  }
  .generic-card__header--service {
    flex-basis: 40%;
    background-size: cover;
    background-position: 50%;
    width: 384px;
    height: 405px;
    /* box-shadow: inset 0 0 80px 15px black; */
  }
  .generic-card__body--service {
    flex-basis: 40%;
  }
}

/* ------------------------------------------  contact_success.html ----------------------- */
.contact-success {
  height: 50vh;
  width: 100%;
  text-align: center;
  display: flex ;
  justify-content: center;
  align-items: center;
  max-width: 1080px;
  margin: 0 auto;
}
.contact-success h2 {
  color: white;
  font-size: 2rem;
}
.contact-success p {
  color: white;
  font-size: 1.2rem;
}
