@import url('https://fonts.googleapis.com/css2?family=Karla:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,200;1,300;1,400;1,500;1,600;1,700;1,800&family=Roboto+Flex:opsz,wght@8..144,100;8..144,200;8..144,300;8..144,400;8..144,500;8..144,600;8..144,700;8..144,800;8..144,900;8..144,1000&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100;8..144,200;8..144,300;8..144,400;8..144,500;8..144,600;8..144,700;8..144,800;8..144,900;8..144,1000&display=swap');

:root {
    --darker-slate: #121110;
    --dark-slate: #2b2926;
    --charcoal-grey: #68625e;
    --sandy-taupe: #b7a895;
    --light-khaki: #d9c9a6;
    --pale-wheat: #f5e9c7;
}

/* Resets the default margin and padding */
/* Applies the following rules to all elements in the document */
* {
    margin: 0; /* Sets margin to 0 for all sides (top, right, bottom, left) */
    padding: 0; /* Sets padding to 0 for all sides (top, right, bottom, left) */
    box-sizing: border-box; /* Ensures padding and border are included in an element's total width and height */
}

body {
    background-color: var(--darker-slate);
}

/* Styling for the header */
header {
    display: flex; /* Use flexbox to arrange elements in a row */
    justify-content: space-between; /* Space out the items evenly along the horizontal axis */
    align-items: center; /* Vertically align items to the center */
    position: fixed; /* Fix the header position at the top of the viewport */
    top: 0; /* Set the distance from the top of the viewport to 0 */
    width: 100%; /* Set the header width to 100% of its containing element */
    background-color: rgba(0, 0, 0, 0.8); /* Use a semi-transparent black background */
    padding: 20px 15%; /* Add padding to the header, 20px on top and bottom, 15% on left and right */
    box-sizing: border-box; /* Include padding and border in the element's total width and height */
    z-index: 1501; /* Set a high z-index to ensure the header is on top of other elements */
  }
  
  /* Styling for the logo image inside the header */
  #logo img {
    height: 60px; /* Set the height of the logo image to 60px */
  }
  
  /* Styling for the navigation menu inside the header */
  #nav-menu ul {
    list-style-type: none; /* Remove default bullet points from the list items */
    margin: 0; /* Remove default margins from the list */
    padding: 0; /* Remove default padding from the list */
    display: flex; /* Use flexbox to make the list items display inline */
    justify-content: space-between; /* Space out the list items evenly along the horizontal axis */
  }
  
  /* Styling for individual list items in the navigation menu */
  #nav-menu ul li {
    margin-right: 20px; /* Add a right margin of 20px to separate the list items */
  }
  
  /* Styling for the last list item in the navigation menu */
  #nav-menu ul li:last-child {
    margin-right: 0; /* Remove the right margin from the last list item */
  }
  
  /* Styling for anchor links inside the navigation menu */
  #nav-menu ul li a {
    color: white; /* Set the link color to white */
    text-decoration: none; /* Remove the default link underline */
    font-family: 'Karla', sans-serif; /* Use the font 'Karla' for the links */
    font-size: 20px; /* Set the font size of the links to 20px */
    transition: color 0.3s ease; /* Transition the color over 0.3 seconds */
    transition: transform 0.3s ease;
    display: inline-block; /* This allows the transform property to work */
  }
  
  /* Styling for anchor links inside the navigation menu on hover, focus, and active states */
#nav-menu ul li a:hover,
#nav-menu ul li a:focus,
#nav-menu ul li a:active {
  color: var(--sandy-taupe); /* Change color when link is hovered, focused, or active */
  transform: scale(1.2);
}


/* Hamburger Menu */
.hamburger {
    display: block;
    cursor: pointer;
    position: relative;
    z-index: 1500;;
  }
  
  .hamburger .line {    
    width: 30px;
    height: 2px;
    background-color: white; 
    margin: 5px;
  }
  
  /* Checkbox */
  #hamburger-checkbox {
    display: none;
  }
    
  #hero-section {    
    display: grid;
    grid-template-columns: 1.25fr 1fr; /* Creates a grid with 2 equally wide columns */    
  }
  
  #hero-image img {
    width: 100%;
    height: auto;
    }
    
  #hero-content {    
    display: flex; /* Makes the element a flex container */
    flex-direction: column; /* Aligns child elements in a column (top to bottom) */
    justify-content: center;
    align-items: center;
    /* If you want to add some spacing around the text you can add padding */
    padding: 20px; /* Applies 20px of padding to all sides (top, right, bottom, left) */
    padding-left: 18%;
    position: relative; /* This ensures the pseudo-element is positioned correctly */
    overflow: hidden; /* This ensures that any overflowing content is hidden */
}  

/* Apply a background image as an overlay behind the #hero-content element */
#hero-content::before {
  /* Create an empty pseudo-element (::before) to serve as the background overlay */
  content: "";
  
  /* Position the pseudo-element to cover the entire #hero-content element */
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  
  /* Set the background image to be displayed in the pseudo-element */
  background-image: url('../images/hero-content-back.jpg');
  
  /* Ensure the background image fills the entire pseudo-element */
  background-size: cover;
  
  /* Center the background image within the pseudo-element */
  background-position: center;
  
  /* Adjust the transparency of the background image */
  opacity: 0.15;
  
  /* Position the pseudo-element behind the content of #hero-content */
  z-index: -1;
  
  /* Apply a blur effect to the background image */
  filter: blur(5px); /* Adjust the pixel value as needed */
}

  #hero-content > *:not(:last-child) {
    margin-bottom: clamp(1rem, 2vw, 8rem); /* Adjust these values as needed */
  }

  #hero-title {
    font-family: 'Oswald', sans-serif; /* Sets the font family to 'Literata' or a fallback serif font */
    font-weight: 900; /* Sets the font weight with a minimum of 500, a maximum of 700, and a preferred maximum of 900 */
    color: var(--light-khaki); /* Sets the text color using a custom CSS variable (should be defined elsewhere) or a fallback color */
    /*! text-transform: uppercase; */ /* Transforms the text to be in uppercase */
    font-size: 3em; /* Sets the font size with a minimum of 1.5rem, a maximum of 3vw (viewport width), and a preferred maximum of 5rem */
    line-height: 1em;
    text-align: center;    
}


#hero-title span {
    color: var(--pale-wheat); /* Sets the text color using a custom CSS variable (should be defined elsewhere) or a fallback color */
    font-size: clamp(1.25rem, 2.75rem, 3.25rem); /* Sets the font size with a minimum of 1.25rem, a maximum of 2.75vw (viewport width), and a preferred maximum of 4.75rem */
}

#hero-text {
    font-family: 'Karla', sans-serif; /* Sets the font family to 'Karla' or a fallback sans-serif font */
    font-weight: 300; /* Sets the font weight to 300 (lighter font weight) */
    color: white; /* Sets the text color to white */
    max-width: 80%; /* Sets the maximum width of the element to 65% of its container */
    font-size: clamp(16px, 18px, 20px); /* Sets the font size with a minimum of 1rem, a maximum of 1.75vw (viewport width), and a preferred maximum of 1.75rem */
    /* Adjust these values as needed */
    text-align: center;
}
  


#about-me {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  margin: 30px;
  
}

.image-container {
  width: 100%;
 
  overflow: hidden; /* This will hide any overflowing content (in this case, the image) */
}

.image-container img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* This will ensure the images cover the container even if that means parts of them get cropped */
}

#about-text {
  display: flex;
  flex-direction: column;
  justify-content: center; /* Horizontally centers children (along the main axis) */
  align-items: center; /* Vertically centers children (along the cross axis) */
  gap: 20px; /* Adjust as needed */
  background-color: #3d3d3d;
  color: white;
  padding-bottom: 25px;
  padding-top: 25px;
}

#about-subtitle, #about-title {
  font-family: 'Oswald', sans-serif; /* Sets the font family to 'Literata' or a fallback serif font */
}
#about-divider {
  width: 40px;
  border: 3px solid white; 
  
}
 
#about-subtitle{
  
  color: var(--light-khaki);
  font-size: 35px;
  text-align: center;
}

#about-title{
  color: var(--pale-wheat);
  font-size: 50px;
  text-align: center;
  line-height: 1.2em;
}

#about-main-text{
  font-family: 'Karla', sans-serif; /* Sets the font family to 'Karla' or a fallback sans-serif font */
  width: 75%;
  text-align: center;
}

#social-media-icons {
  display: flex; /* Lays out the icons in a row */
  justify-content: space-between; /* Adds equal space between the icons */
  gap: 20px;
  text-decoration: none;
}

#social-media-icons a {
  color: white;
  font-size: 1.35em; /* Adjust this value to change the size */
  transition: transform 0.3s ease, color 0.3s ease;
  text-decoration: none;
}

#social-media-icons a:hover {
  transform: scale(1.2); /* This will scale your icon up by 20% when hovered */
  color: goldenrod;
}

#about-cta,
#hero-cta-button,
.email-button {
  font-family: 'Roboto Flex', sans-serif;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: white;
  background-color: var(--charcoal-grey);
  padding: 6px 16px;
  min-width: 64px;
  box-sizing: border-box;
  display: inline-flex;
  position: relative;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border: none;
  outline: none;
  line-height: 36px;
  vertical-align: middle;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 0.3s ease;
  margin-top: 25px;
}

#about-cta:hover,
#hero-cta-button:hover,
.email-button:hover {
  background-color: var(--dark-slate);
}

#about-cta:active,
#hero-cta-button:active {
  background-color: var(--slightly-darker-slate);
}

#portfolio {
  
  display: flex;
  justify-content: center;
  align-items: center;
}

#gallery {
  width: 100%;
}


.gallery-item {
  width: 25%;
  overflow: hidden;
  margin-bottom: 10px;
  transition: transform 0.3s ease, opacity 0.3s ease;
  cursor: pointer;
 
}


.gallery-item:hover {
  transform: scale(1.2);
  z-index: 1000;
 
}

.gallery-image {
  width: 100%; /* this will make the image take the full width of its container */ 
  object-fit: cover; /* this will make sure the image covers the entire area of its container */
}

.lightbox {
  display: none;
  position: fixed;
  z-index: 9999;
  width: 100%;
  height: 100%;
  text-align: center;
  top: 0;
  left: 0;
  background: rgba(0,0,0,0.8);
}

.lightbox-close {
  position: absolute;
  top: 10px;
  right: 20px;
  color: #f1f1f1;
  font-size: 35px;
  font-weight: bold;
  cursor: pointer;
}

.lightbox-image {
  margin: 20px auto;
  max-width: 90vw; /* viewport width */
  max-height: 80vh; /* viewport height */
  width: auto;
  height: auto;
  object-fit: contain;
}

#portfolio-intro{
  padding-bottom: 45px;
}

#testimonials {
  padding: 30px;
  text-align: center;
  background-color: var(--dark-slate);
}

.testimonial-carousel {
  width: 80%;
  margin: auto;
}

.testimonial-carousel .slick-slide {
  text-align: center; /* Centra el texto */
  color: white; /* Cambia el color del texto */
  font-size: 1.2em; /* Ajusta el tamaño del texto */
}

.testimonial-carousel .slick-prev:before,
.testimonial-carousel .slick-next:before {
  /* Esto oculta los iconos predeterminados */
  display: none;
}

.testimonial-carousel .slick-prev,
.testimonial-carousel .slick-next {
  /* Esto los hace transparentes para que solo veas el ícono de Font Awesome */
  background: transparent;
  color: white; /* puedes cambiar esto al color que prefieras */
  border: none; /* esto quita las orillas del botón */
}

.testimonial-carousel .slick-prev:hover,
.testimonial-carousel .slick-next:hover {
  color: var(--charcoal-grey); /* Cambia esto al color que prefieras para cuando se pasa el mouse encima del botón */
}

.slick-prev,
.slick-next {
  font-size: 60px;  /* Ajusta el tamaño de las flechas */
  color: #ffffff;  /* Cambia el color a uno más oscuro */
  z-index: 1000;  /* Asegura que las flechas estén sobre los otros elementos */
  background: transparent !important;
  border: none; /* esto quita las orillas del botón */
  transition: color 0.3s ease, transform 0.3s ease;
}

.slick-prev:hover,
.slick-next:hover{
  color: var(--charcoal-grey);
  transform: scale(1.2);
}

.slick-prev {
  left: 25px;  /* Posiciona la flecha de "anterior" más a la izquierda */
}

.slick-next {
  right: 25px;  /* Posiciona la flecha de "siguiente" más a la derecha */
}

/* Esconde el borde y el fondo de los botones por defecto */
.slick-prev:before, 
.slick-next:before {
  display: none;
}

.testimonial-nav{
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: 2em;
}

.testimonial-nav > * {
  flex: 1;
}

.testimonial {
  display: grid;
  grid-template-rows: auto auto auto;
  padding: 15px;
  margin-bottom: 30px;
  color: white;
  align-content: space-around;  /* add this line */
}

.testimonial p{
  font-family: 'Karla', sans-serif;
  max-width: 600px;  /* or whatever pixel value works best for your design */
  text-align: center;
  margin: 0 auto;  /* this will center the paragraph within its container */
}



.testimonial h3{
  font-family: 'Oswald', sans-serif;
  margin-top: 2em;
  font-size: 1.5em;
}

.circle-img {
  
  width: 100px; /* Adjust this to change the size of your circle */
  height: 100px; /* Make sure width and height are equal to get a perfect circle */
  border-radius: 50%; /* This makes it circular */
  overflow: hidden; /* This ensures the image stays within the circle */
  border: 5px solid white; /* Adjust to change the border color and thickness */
  transition: transform 0.3s ease, border 0.3s ease;
}

.circle-img:hover {
  transform: scale(1.2);
  border: 5px solid goldenrod; /* Adjust to change the border color and thickness */
}

.circle-img img {
  width: 100%; /* Ensures the image takes up the full space of the parent */
  height: auto; /* Ensures the image maintains its aspect ratio */
}

.contenedor-imagen {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 2.5em;
}

.pricing-section {
  display: grid;
  grid-template-columns: .5fr 1fr 1fr 1fr .5fr;
  gap: 1%;
  background-color: var(--darker-slate);
}

.pricing-card {
  color: white;
  position: relative;
  overflow: hidden;
  transition: transform 0.3s ease, border 0.3s, background-color 0.3s ease;
  margin-top: 20px;
  background-color: var(--dark-slate);  
}

.pricing-card:hover {
  transform: scale(1.1);
  border: 1px solid white;
  z-index: 1000;
  background-color: var(--charcoal-grey);
}

.card-image {
  width: 100%;  
  
  background-size: contain;
  background-position: center;
  position: relative;
  aspect-ratio: 1 / 1;
}

#basico {
  background-image: url("../images/packages/paq-basico.jpg");
}

#estandar {
  background-image: url("../images/packages/paq-estandar.jpg");
}

#premium {
  background-image: url("../images/packages/paq-premium.jpg");
}

.package-title {
  font-family: 'Oswald', sans-serif;
  position: absolute;
  bottom: 10px;
  left: 10px;
  color: white;
  background-color: rgba(0,0,0,0.5);
  padding: 5px;
}

.package-contents, .package-description {
  margin: 20px;
  font-size: 0.9em;
  font-family: 'Karla', sans-serif;
  padding: 0 2% 25px 2%;
}

.package-description {
text-align: center;
}

.contact {
  display: grid;
  grid-template-columns: 3fr 5fr;
  background-color: var(--sandy-taupe);
  height: 500px;
  width: 100%;
}

.contact-info {
  font-family: 'Karla', sans-serif;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;  
  gap: 2em;
  font-size: 1.35em;
  
}

.contact-photo {
  background-image: url("../images/contact-image.jpg");
  background-size: cover;
  background-position: right;
  height: 100%;
  
}

.contact-info h1{
  font-family: 'Oswald', sans-serif;
  font-size: 3em;
}

.whatsapp-number{
  color: black;
  text-decoration: none;
}
 
#email{
  transition: transform 0.3s ease;
}

#email:hover{
  transform: scale(1.1);
}

#email a{
  text-decoration: none;
  color: black;
  font-weight: 700;
  transition: color 0.3s ease;
}

#email a:hover{
  color: goldenrod; 
}

#email i{
  color: white;
}

.horario{
  text-align: center;
}

.horario span{
  font-weight: 700;
}

footer {
  background-color: black;
  color: white;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px;
  font-family: 'Karla', sans-serif;
}

.footer-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 90%;
  margin: auto;
}

.footer-container img {
  height: 50px;
  width: auto;
}
