/* ======== GLOBAL ======== */
html { font-size: 62.5%; scroll-behavior: smooth; }
body {
  margin: 0;
  padding: 0;
  font-family: "Baskervville", serif;
  color: #222;
overflow-x: hidden;}
img { max-width: 100%; display: block; }
main{
	width:100%;
}
section{
	scroll-margin-top: 10vh;
}
/* --- Header Layout --- */
.main-header {
  background-color: rgba(255, 255, 255, 0); /* fully transparent */
	position:absolute;
  top: 0;
  left: 0;
  width: 100%;
  transition: background-color 0.4s ease, box-shadow 0.4s ease, padding 0.4s ease;
  max-height:30vh;          /* or auto if you want it to grow with content */
  z-index: 9999;
  padding: 0;
  display: flex;          /* enable flexbox */
  flex-direction: column; /* stack logo and menu vertically */
  align-items: center;    /* center them horizontally */
  justify-content: center;/* optional: centers both vertically within the header */
}
.main-header.scrolled {
  background-color: rgba(0, 0, 0, 0.9);
  box-shadow: 0 2px 5px rgba(0,0,0,0.1);
	padding-bottom:1.5vh;
	font-size: 2rem!important;
}

/* Keep your original logo size */
.logo{
  max-height: 24vh;
  width: auto;
  display: block;
	padding-bottom:5vh;
}
.logo img {
  max-height: 24vh;
  width: auto;
	margin-top:3vh;
}
.logo img.scrolled{
	max-height: 20vh;
}
.logo.scrolled{
	padding-bottom:2vh;
}
/* Menu Layout */
.nav-menu {
  width: 80%;              /* control total menu width */
  display: flex;           
  justify-content: center; /* centers the UL inside the 80% width */
}

/* MENU LIST */
.nav-menu ul {
  display: flex;
  justify-content: space-evenly; /* evenly distribute li items */
  align-items: center;
  list-style: none;
  width: 100%;                  /* make ul fill the 80% container */
  margin: 0;
  padding: 0;
}

/* Keep your existing link styles */
.nav-menu a {
  text-decoration: none;
  font-weight: 700;
	transition: color 0.3s;
	font-size:3rem;
	color:white;
	text-shadow: 0 0 60px white;
	font-family: "Bebas Neue", sans-serif;
}

.nav-menu a:hover {
  color: #d38b12 !important;
	text-shadow: 0 0 20px #ABC9E0;
}

/* Hamburger Icon */
.hamburger {
  display: none;
  font-size: 4rem;
  cursor: pointer;
  user-select: none;
	color:white;
}

/* Hide checkbox */
#menu-toggle {
  display: none;
}

/* --- Responsive --- */
@media (max-width: 768px) {

  /* Hamburger */
  .hamburger {
    display: block;
    font-size: 4rem;
    cursor: pointer;
    color: white;
    position: absolute;
    top: 0.5rem;
    left: 2rem;
    z-index: 1001;
  }

  /* Logo normal */
  .logo img {
    margin-top: 2vh;
    transition: all 0.4s ease;
  }

  /* Shrink/move logo when menu open */
  #menu-toggle:checked ~ .logo img {
  position: absolute;
  top: 1rem;
  left: 50%;
  transform: translateX(-50%);
	  z-index:9999;
  }

  /* Menu overlay */
  .nav-menu {
    display: none; /* hide by default */
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0,0,0,0.9);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 1000;
	  transition: all 0.4s ease;
	  width:100%;
  }

  /* Show menu when checkbox checked */
  #menu-toggle:checked ~ .nav-menu {
    display: flex;  }

  /* Close button */
  .close-menu {
    display: none;
    font-size: 4rem;
    color: white;
    position: absolute;
    top: 1rem;
    right: 1.5rem;
    cursor: pointer;
    z-index: 1002;
  }

  #menu-toggle:checked ~ .nav-menu .close-menu {
    display: block;
  }

  /* Menu links vertical */
  .nav-menu ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0;
    margin: 0;
	  transition: all 0.4s ease;
  }

  .nav-menu ul li {
    margin: 1.5rem 0;
  }

  .nav-menu a {
    font-size: 3rem;
    color: white;
    text-shadow: 0 0 60px white;
  }

}

/* finish responsive */

.sectionh2{ 
	font-size: 3rem; 
  position: relative;
  display: inline-block;       /* shrink-wrap the highlight */
  background-color: white;     /* highlight color */
  color: #333;                 /* text color */
  padding: 10px 20px;          /* space inside highlight */
  top: -12vh;                  /* raise it above the section */ 
  border-top-left-radius: 5px;   /* top-left corner */
  border-top-right-radius: 5px;  /* top-right corner */
}
@media (max-width: 768px) {
	.sectionh2{
		display:block;
	}
}
/* ======== HERO ======== */
.hero {
  height: 90vh;  
	align-items: center;
  justify-content: center;
  text-align: center;
  color: white;
  text-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.hero video {
  width: 100%;
  height:100%;
  object-fit: cover;
  object-position: center; /* adjust if needed (e.g. top center, bottom center) */
	border-bottom-left-radius: 12px;
	border-bottom-right-radius: 12px;
}
.hero-text{
	background-color: rgba(0, 0, 0, 0.7);
	width:100%;
	height:90vh;
	border-bottom-left-radius: 12px;
	border-bottom-right-radius: 12px;
	position:absolute;
	margin-top:0;
	z-index:999;
}
.hero-text h1 { font-size: 4rem; margin: 0; }
.hero-text p { f50t-size: 2rem; margin: 1rem 0 2rem; }
.hero-content{
	margin-top:50vh;
  font-family: "Momo Trust Display", sans-serif;
  font-weight: 400;
  font-style: normal;
}
.hero-content p {
	font-size:2rem;
	padding: 1rem;
}
.hero-content h1 {
	padding-bottom: 3rem;
}

@keyframes wiggle-once { /*efecto movimiento boton */
  /* wiggle happens during the first 10% of the animation */
  0%   { transform: rotate(0deg); }
  3%   { transform: rotate(3deg); }
  6%   { transform: rotate(-3deg); }
  9%   { transform: rotate(2deg); }
  12%  { transform: rotate(-2deg); }
  15%  { transform: rotate(0deg); }

  /* idle period for the rest */
  100% { transform: rotate(0deg); }
}
.btn-pedido {
  animation: wiggle-once 3s ease-in-out 2s infinite;
}
.btn-pedido a{
	background-color: #d38b12;
  color: white;
  padding: 1rem 2rem;
  border-radius: .8rem;
  text-decoration: none;
  font-size: 2rem;
  transition: background .3s;
	font-weight:700;
}
.btn-pedido a:hover { background-color: #3C4481; }

.btn {
  background-color: #d38b12;
	display:block;
	width:40%;
	margin: 2.5vh auto 0;
  color: white;
  padding: 2rem 2rem;
  border-radius: .5rem;
  text-decoration: none;
  font-size: 2rem;
  transition: background .3s;
	font-family:"Momo Trust Display", sans-serif;
}
.btn:hover { background-color: #3C4481; }
/* Modal background */
.order-modal {
  display: none;
  top: 0; left: 0;
  width: 100%; height: 100%;
	justify-content: center;
  align-items: center;
  z-index: 10000;
}

/* Modal content */
.order-modal-content {
  background: black;
  padding: 2rem;
  border-radius: 1rem;
  text-align: center;
  max-width: 400px;
  width: 90%;
  position: absolute;
	z-index:999999;
}

/* Close button */
.close-modal {
  position: absolute;
  top: 1rem;
  right: 1rem;
  font-size: 2rem;
  cursor: pointer;
}
.pdf-modal .pdf-content {
  max-height: 90vh;        /* limit modal height */
  display: flex;
  flex-direction: column;  /* stack canvas and button vertically */
  overflow-y: auto;        /* allow scrolling */
  padding: 1rem;
  box-sizing: border-box;
}

.pdf-page {
  margin-bottom: 1rem;
}
.download-btn {
  flex-shrink: 0;          /* ensure button stays visible at bottom of content */
  text-align: center;
  display: block;
  margin: 1rem auto;
}

/* Logos */
.order-logos {
  display: flex;
  justify-content: center; /* center horizontally */
  align-items: center;     /* vertically aligned */
  gap: 2rem;               /* space between logos */
  margin: 1rem 0;
}

/* Logos */
.order-logos img {
  max-height: 60px;
  width: auto;
  transition: transform 0.3s ease; /* optional hover effect */
}

/* Optional hover effect */
.order-logos img:hover {
  transform: scale(1.1);
}


/* ======== MENU ======== */

.floating-introduction{
	position:absolute;
	width:100%;
	margin-top:-5vh;
	background-color:#283E51;
	border-top: 5px solid white;
	z-index:999;
	height:auto;
}
.floating-introduction-nomargin{
	position:absolute;
	width:100%;
	background-color:#283E51;
	border-top: 5px solid white;
	z-index:9999;
	height:0;
}
.menu-section {
  background-color: #283E51;
  text-align: center;
   padding-bottom:15vh;
}
.menu-section h2 { 
	font-size: 3rem; 
  position: relative;
  display: inline-block;       /* shrink-wrap the highlight */
  background-color: white;     /* highlight color */
  color: #333;                 /* text color */
  padding: 1.4vh 20px;          /* space inside highlight */
  top: -11.9vh;                  /* raise it above the section */  
  border-top-left-radius: 5px;   /* top-left corner */
  border-top-right-radius: 5px;  /* top-right corner */
}
@media (max-width: 768px) {
	.menu-section h2{
		display:block;
	}
}
.menu-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 2rem;
}
.menu-item {
  background: white;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
	z-index:999;
}
.menu-item h3 {
  color: #d38b12;
  font-size: 2rem;
  margin: 1rem 0 0;
}
.menu-item p { font-size: 1.5rem; padding: 0 1rem 1.5rem; color: #333; }
@media (max-width: 850px) {
  .menu-grid {
    display: flex;
    overflow-x: auto;
    gap: 1.5rem;
    padding: 1rem;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
  }

  .menu-item {
    flex: 0 0 80%;          /* each card takes 80% of screen */
    scroll-snap-align: center;
  }

  .menu-grid::-webkit-scrollbar {
    display: none;
  }
}


/* VER MENU */

.pdf-modal {
  display: none;
  position: fixed;
  z-index: 9999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.7);
  backdrop-filter: blur(3px);
}

.pdf-content {
  position: relative;
  width: 80%;
  height: 85%;
  margin: 3% auto;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
}

.pdf-content iframe {
  width: 100%;
  height: calc(100% - 60px);
}

.close {
  position: absolute;  right: 20px;
  font-size: 4rem;
  cursor: pointer;
  color: black;
	z-index:9999;
	border-radius: 30%;
	background-color:rgba(255,255,255,0.70);
}

.download-btn {
  display: block;
  width: 100%;
  padding: 15px;
  background: #ff8c00;
  text-align: center;
  color: #fff;
  font-weight: bold;
  text-decoration: none;
	font-size:2rem;
}
.download-btn:hover {
  background: #e57a00;
	
}
/* ======== UBICACION ======== */
.ubicacion-section {
  text-align: center;
	position:relative;
	z-index:999;
	margin:0
}
.ubicacion-container {
	background-image: url("../img/mainimgimp.png");
	background-repeat: no-repeat;
	background-size: cover;
}
.ubicacion-content {
  position: relative;
  top: 0;
  left: 0;
  width: 100%;
  background-color: rgba(0,0,0,0.5); /* semi-transparent black */
  z-index: 10; /* sits above content */
  display: flex;
  justify-content: center; /* horizontally center child content */
  align-items: center;     /* vertically center child content */
}
.grid-wrapper {
  width: 90%;           /* 80% of page width */
  margin: 0 auto;       /* center horizontally */
  padding: 2rem 0;
}

.grid-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2rem;
  width: 100%;
}

.info-box {
  background: white;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  display: flex;
  flex-direction: column;
	height:120vh;
}

.box-img {
  width: 100%;
  height: 60%;          /* 60% of box height for image */
  object-fit: cover;    /* cover the area without distortion */
	object-position:center;
}

.caption {
  padding: 1rem;
  text-align: center;
  flex: 1;             /* fill remaining space */
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.map-container {
  overflow: hidden;
	padding:2rem;
}

.contact-info {
  padding: 1rem;
	margin-top:5vh;
  text-align: center;
}
.contact-info p{
	font-size:2rem;
	font-family:"Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", "DejaVu Sans", Verdana, "sans-serif";
}
.contact-info a{
	font-weight:700;
	text-decoration:underline;
}
.contact-info h3{
	color: #d38b12;
    font-size: 2rem;
    margin: 1rem 0 0;
}
.contact-info h2{
	color: #d38b12;
    font-size: 3rem;
    margin: 1rem 0 0;
}
.map-container h2{
	color: #d38b12;
    font-size: 3rem;
    margin: 1rem 0 0;
}
.map-container p{
	font-size:2rem;
	font-weight:bold;
}
/* ======== OPINIONES ======== */
.opiniones-section {
  background-color: #f7f7f7;
  text-align: center;
  padding: 5rem 2rem;
}
.opiniones-section h2 { color: #3C4481; font-size: 3rem; }
.opiniones blockquote {
  font-style: italic;
  color: #333;
  background: white;
  margin: 2rem auto;
  padding: 1.5rem 2rem;
  border-radius: 1rem;
  max-width: 600px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
#reviews-container {
  display: flex;            /* horizontal layout */
  flex-wrap: nowrap;        /* keep in one row */
  overflow-x: auto;         /* scroll horizontally if needed */
  gap: 1rem;
  margin-top: 2rem;
  padding-bottom: 1rem;
  scroll-behavior: smooth;  /* smooth scroll on desktop */
}
.google-remark {
  display: flex;
  align-items: center;     /* vertically align text + logo */
  justify-content: center; /* horizontal center */
  gap: 0.5rem;             /* space between logo and text */
  margin-bottom: 1rem;
}
.googlelogo{
	width:7rem;
	height:auto;
}
.review-box {
  flex: 0 0 auto;            /* width determined by min/max or content */
  width: 250px;              /* fixed width for desktop */
  background: #fff;
  padding: 1.5rem;
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  text-align: left;

  display: flex;
  flex-direction: column;    /* stack author, rating, text vertically inside box */
  justify-content: flex-start;
}
/* Optional scrollbar styling */
#reviews-container::-webkit-scrollbar {
  height: 8px;
}

#reviews-container::-webkit-scrollbar-thumb {
  background-color: #d38b12;
  border-radius: 4px;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .review-box {
    flex: 0 0 200px; /* smaller on mobile */
  }
}

#reviews-container::-webkit-scrollbar {
  height: 8px;
}

#reviews-container::-webkit-scrollbar-thumb {
  background-color: #d38b12;
  border-radius: 4px;
}

/* Review author and rating */
.review-box strong {
  color: #3C4481;
  font-size: 1.2rem;
}
/* Reviewer photo */
.reviewer-photo {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  object-fit: cover;
  margin-bottom: 0.5rem;
}

.review-box .rating {
  color: #d38b12;
  margin-left: 0.5rem;
  font-size: 1.2rem;
}

.review-box p {
  margin-top: 0.5rem;
  font-size: 1rem;
  line-height: 1.5;
  color: #333;
}
.google-rating {
  font-size: 1.8rem;
  margin-top: 1rem;
  color: #3C4481;
}

/* Leave Review Button */
.leave-review {
  display: inline-block;
  margin-top: 2rem;
  padding: 1rem 2rem;
  background-color: #d38b12;
  color: #fff;
  font-size: 1.2rem;
  font-weight: bold;
  text-decoration: none;
  border-radius: 8px;
  transition: background-color 0.3s ease;
}

.leave-review:hover {
  background-color: #b06e0f;
}

/* Responsive */
@media (max-width: 768px) {
  .rating-section {
    padding: 3rem 1rem;
  }
  .rating-section h2 {
    font-size: 2.2rem;
  }
  .google-rating {
    font-size: 1.5rem;
  }
  .review-box {
    width: 200px; /* smaller on mobile */
  }
  .leave-review {
    width: 100%;
    box-sizing: border-box;
    padding: 1rem;
    font-size: 1.1rem;
  }
}
/* ======== FOOTER ======== */
.footer {
  background-color: #283E51;
  color: white;
  text-align: center;
  padding: 2rem;
  font-size: 1.4rem;
}

/* Rating Section Container */
.rating-section {
  background-color: #f7f7f7;
  text-align: center;
  padding: 4rem 2rem;
  font-family: Arial, sans-serif;
	font-size:1.5rem;
	color:#3F3F3F;
}

/* Heading */
.rating-section h2 {
  color: #3C4481;
  font-size: 3rem;
  margin-bottom: 1rem;
}

/* Overall Google Rating Text */
.google-rating {
  font-size: 1.8rem;
  margin-top: 1rem;
  color: #3C4481;
}
.google-remark {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
  font-weight: bold;
}
/* Individual Review Box */
.review-box {
  background-color: #fff;
  margin: 1.5rem auto;
  padding: 1.5rem;
  max-width: 600px;
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  text-align: left;
}

/* Review Author and Rating */
.review-box strong {
  color: #3C4481;
  font-size: 1.2rem;
}

.review-box .rating {
  color: #d38b12;
  margin-left: 0.5rem;
  font-size: 1.2rem;
}

/* Review Text */
.review-box p {
  margin-top: 0.5rem;
  font-size: 1rem;
  line-height: 1.5;
  color: #333;
}
.review-time {
  font-size: 0.85rem;
  color: #555;
}

/* Individual review stars inside review box */
.rating {
  color: #d38b12;
  font-size: 1.1rem;
}

/* Leave Review Button */
.leave-review {
  display: inline-block;
  margin-top: 2rem;
  padding: 1rem 2rem;
  background-color: #d38b12;
  color: #fff;
  font-size: 1.2rem;
  font-weight: bold;
  text-decoration: none;
  border-radius: 8px;
  transition: background-color 0.3s ease;
}

.leave-review:hover {
  background-color: #b06e0f;
}

/* Responsive Design */
@media (max-width: 768px) {
  .rating-section {
    padding: 3rem 1rem;
  }
  .rating-section h2 {
    font-size: 2.2rem;
  }
  .google-rating {
    font-size: 1.5rem;
  }
  .review-box {
    padding: 1rem;
  }
  .leave-review {
    width: 100%;
    box-sizing: border-box;
    padding: 1rem;
    font-size: 1.1rem;
  }
}

/* footer */

.instagram-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem; /* space between logo and text */
  background-color: #DE86A4; 
  color: white;
  font-weight: 600;
  text-decoration: none;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.instagram-link:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

.instagram-logo {
  width: 24px;
  height: 24px;
}


