@import url("https://fonts.googleapis.com/css2?family=Dancing+Script:wght@400;500;600;700&family=Open+Sans:wght@400;600;700&display=swap");

:root {
  --color-primary-hh:#F4C1C1;
  --color-secondary-hh:#4B2E2E;
  --color-tertiary-hh:#D4AF7F;
  --color-background-hh: #FFF8F0;

  
  --color-primario: #0d6efd;
  --color-secundario: #6c757d;
  --color-terciario: #F4C1C1;
  --color-cuartario: #D4AF7F;
  --color-quinto: #F4C1C1;
  --color-septimo: #4B2E2E;
  --color-sexto: #222222;
  --color-fondo: #FFF8F0;
  --color-fuente-principal: #0c0c0c;
  --color-fuente-secundario: #4B2E2E;
  --color-fuente-terciario: #F4C1C1;
--fuente-titulos: 'Playfair Display', serif;
--fuente-principal: 'Garamond', Georgia, serif;
}
/**letras: 4B2E2E, Fondo: F4C1C1, Bordes y otro: D4AF7F*/
/* 1. Hacemos que el HTML y el Body ocupen todo el alto de la pantalla */
/* Esto es vital para que el body sepa cuánto mide la pantalla */
/* Obligamos al HTML y al Body a usar todo el alto de la ventana */
/* 1. Forzamos la altura total desde la raíz */
html, body {
    height: 100% !important;
    margin: 0;
    padding: 0;
}

/* 2. Configuramos el body como contenedor flex */
body {
    display: flex !important;
    flex-direction: column !important;
    min-height: 100vh !important; /* Altura de la ventana */
}

/* 3. Identificamos el contenido que debe crecer */
/* En tu caso, el contenido principal empieza después del header */
/* Usaremos un selector que atrape el contenido de AngularJS */
div[ng-view], .main-content-area {
    flex: 1 0 auto;
}

/* 4. El footer se queda abajo */
.footer_section {
    flex-shrink: 0;
    margin-top: auto; /* Refuerzo para empujar al fondo */
}

/* El footer no se encoge y se queda abajo */
.footer_section {
    flex-shrink: 0;
}

.contact_section .form_container button:hover {
   background-color: var(--color-quinto);
}

.text-primary-hh {
    color: var(--color-primary-hh) !important;
}

.text-secondary-hh{
    color: var(--color-secondary-hh) !important;
}

.text-tertiary-hh{
    color: var(--color-tertiary-hh) !important;
}

.bg-primary-hh {
    background-color: var(--color-primary-hh) !important;
}

.bg-primary-page {
    background-color: var(--color-terciario) !important;
    color: white; /* Asegura que el texto sobre el fondo sea legible */
}

/* Clase para BORDES */
.border-primary-page {
    border-color: var(--color-terciario) !important;
}

/* Clase para el cuadro del icono */
.bg-input-icon {
    background-color: var(--color-tertiary-hh) !important; /* Tu color terciario */
    color: var(--color-secondary-hh) !important;        /* Color del icono */
    border-color: var(--color-tertiary-hh) !important;  /* Para que el borde combine */
}

/* Opcional: si quieres que el icono brille o cambie de color */
.bg-input-icon i {
    color: var(--color-secondary-hh);
}

/* 1. ESTRUCTURA BASE (Consistencia y Elegancia) */
.btn-hh {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  
  /* Separación vertical amplia y profesional */
  padding: 18px 48px; 
  min-height: 40px;
  
  border-radius: 6px; /* Un poco más redondeado para elegancia */
  font-weight: 600;
  font-size: 40px;
  line-height: 1; /* Centrado vertical exacto */
  letter-spacing: 0.8px; /* Un toque más de tracking para elegancia */
  text-decoration: none;
  cursor: pointer;
  
  /* Borde base: SIEMPRE debe existir para que el outline sea visible */
  border: 2px solid transparent; 
  
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  max-width: 100%;
  white-space: nowrap; /* Evita que el texto se rompa en dos líneas */
}

/* Efecto de clic */
.btn-hh:active:not(:disabled) {
  transform: scale(0.96);
}

/* 2. VARIANTES SÓLIDAS */

/* Primario (Fondo Terciario - Letra Secundaria) */
.btn-primary-hh {
  background-color: var(--color-tertiary-hh);
  color: var(--color-secondary-hh);
  border-color: var(--color-tertiary-hh);
}

.btn-primary-hh:hover:not(:disabled) {
  background-color: var(--color-secondary-hh);
  color: var(--color-primary-hh);
  border-color: var(--color-secondary-hh);
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
}

/* Secundario (Fondo Secundario - Letra Terciaria) */
.btn-secondary-hh {
  background-color: var(--color-secondary-hh);
  color: var(--color-tertiary-hh);
  border-color: var(--color-secondary-hh);
}

.btn-secondary-hh:hover:not(:disabled) {
  background-color: transparent;
  color: var(--color-secondary-hh);
  border-color: var(--color-secondary-hh);
}

/* 3. VARIANTES OUTLINE (Ahora con bordes visibles) */

.btn-hh-outline {
  background-color: transparent;
  border: 2px solid var(--color-tertiary-hh) !important; /* Forzamos visibilidad */
  color: var(--color-secondary-hh);
}

.btn-hh-outline:hover:not(:disabled) {
  background-color: var(--color-tertiary-hh);
  color: var(--color-secondary-hh); /* O el color que desees al rellenar */
}

/* Outline Secundario */
.btn-hh-outline-secondary {
  background-color: transparent;
  border: 2px solid var(--color-secondary-hh) !important;
  color: var(--color-secondary-hh);
}

.btn-hh-outline-secondary:hover:not(:disabled) {
  background-color: var(--color-secondary-hh);
  color: var(--color-primary-hh);
}

/* 4. ESTADOS DESACTIVADOS */
.btn-hh:disabled {
  background-color: #eee !important;
  border-color: #ddd !important;
  color: #aaa !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

/* 5. RESPONSIVIDAD Y ICONOS */

.btn-hh:hover:not(:disabled) i {
  transform: translateX(4px);
  transition: transform 0.2s ease;
}

@media (max-width: 768px) {
  .btn-hh {
    font-size: 18px; /* Reducimos un poco la fuente en móvil */
    padding: 16px 24px;
    width: 100%; /* Botones de ancho completo para pulgares */
  }
}

/* Utilidades de tamaño */
.btn-hh-sm { padding: 10px 20px; font-size: 14px; }
.btn-hh-lg { padding: 22px 40px; font-size: 22px; }

.layout_padding {
  padding: 90px 0;
}

.layout_padding2 {
  padding: 75px 0;
}

.layout_padding2-top {
  padding-top: 75px;
}

.layout_padding2-bottom {
  padding-bottom: 75px;
}

.layout_padding-top {
  padding-top: 90px;
}

.layout_padding-bottom {
  padding-bottom: 90px;
}

h1,
h2 {
  font-family: var(--fuente-titulos);
}

.heading_container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.heading_container h2 {
  position: relative;
  margin-bottom: 0;
  font-size: 2.5rem;
  font-weight: bold;
}

.heading_container h2 span {
  color: var(--color-terciario);
}

.heading_container p {
  margin-top: 10px;
  margin-bottom: 0;
}

.heading_container.heading_center {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  text-align: center;
}

a,
a:hover,
a:focus {
  text-decoration: none;
}

a:hover,
a:focus {
  color: initial;
}

.btn,
.btn:focus {
  outline: none !important;
  -webkit-box-shadow: none;
          box-shadow: none;
}

/*header section*/
.hero_area {
  position: relative;
  /* 100vh asegura que ocupe exactamente el alto de la pantalla */
  height: 90vh; 
  /* Usamos min-height para que si el contenido crece, la seccion también */
  min-height: 90vh; 
  display: flex;
  flex-direction: column;
  justify-content: center; 
  align-items: center;
  overflow: hidden; 
}


.bg-box img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.sub_page .hero_area {
  min-height: auto;
}

.sub_page .hero_area .bg-box {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.sub_page .hero_area .bg-box img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: right top;
     object-position: right top;
}

.header_section {
  padding: 15px 0;
}

.header_section .container-fluid {
  padding-right: 25px;
  padding-left: 25px;
}


.slider_section {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
}

.slider_section .row {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.slider_section #customCarousel1 {
  width: 100%;
  position: unset;
}

.slider_section .detail-box a {
  display: inline-block;
  padding: 10px 45px;
  background-color: var(--color-tertiary-hh);
  color: var(--color-secondary-hh);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  border: none;
  border-radius: 5px;

}

.slider_section .detail-box a:hover {
  background-color: var(--color-secondary-hh);
  color: var(--color-primary-hh);
}

.slider_section .carousel-indicators {
  position: unset;
  margin: 0;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.slider_section .carousel-indicators li {
  background-color: var(--color-tertiary-hh);
  width: 12px;
  height: 12px;
  border-radius: 100%;
  opacity: 1;
}

.slider_section .carousel-indicators li.active {
  width: 20px;
  height: 20px;
  background-color: var(--color-secondary-hh);
}
/*****************************************START LOGO **************************************/
.logo-hh {
    /* AJUSTE DE TAMAÑO Y ADAPTACIÓN */
    height: 100px; /* Un alto estándar y limpio para navbar. AJUSTA ESTE VALOR */
    width: auto;  /* Mantiene la proporción dorada del logo circular */
    
    /* MEJORA DE RENDIMIENTO DE RENDERIZADO */
    image-rendering: -webkit-optimize-contrast; /* Para Safari/Chrome, mejora la nitidez */
    image-rendering: crisp-edges;               /* Para Firefox, mejora los bordes */
    backface-visibility: hidden;              /* Ayuda a suavizar el renderizado en Chrome */
    
    /* AJUSTE DE ALINEACIÓN (por si acaso) */
    vertical-align: middle;
}

/*****************************************END LOGO **************************************/

/*****************************************START LOADER OVERLAY **************************************/
 .loader-overlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: var(--color-primary-hh);
      display: flex;
      justify-content: center;
      align-items: center;
      z-index: 9999;
}
/*****************************************END LOADER OVERLAY **************************************/

/*****************************************START NAV BAR **************************************/
.navbar-brand, 
.nav-link {
    font-weight: 500;
}

.navbar-brand {
    font-family: var(--fuente-titulos);
}

.custom_nav-container .nav-link {
    display: inline-block;
    position: relative;
    padding: 10px 20px;
    color: var(--color-secondary-hh);
    text-align: center;
    text-transform: uppercase;
    border-radius: 5px;
    transition: all 0.3s ease;
}

.custom_nav-container .nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 90%;
    height: 5px;
    background-color: var(--color-tertiary-hh);
    transform: translateX(-50%) scaleX(0);
    transition: transform 0.3s ease;
    transform-origin: right; 
}

.custom_nav-container .nav-item:hover .nav-link,
.custom_nav-container .nav-item.active .nav-link,
.custom_nav-container .nav-item.show .nav-link {
    font-weight: bold;
}

.custom_nav-container .nav-item:hover .nav-link::after,
.custom_nav-container .nav-item.active .nav-link::after,
.custom_nav-container .nav-item.show .nav-link::after {
    transform: translateX(-50%) scaleX(1);
    transform-origin: left;
}

/*****************************************END NAV BAR **************************************/

.user_option {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.user_option a {
  margin: 0 10px;
}

.user_option .user_link {
  color: var(--color-fuente-secundario);
}

.user_option .user_link:hover {
  color: var(--color-terciario);
}

.user_option .cart_link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.user_option .cart_link svg {
  width: 17px;
  height: auto;
  fill: #ffffff;
  margin-bottom: 2px;
}

.user_option .cart_link:hover svg {
  fill: var(--color-terciario);
}

.user_option .order_online {
  display: inline-block;
  padding: 8px 30px;
  background-color: var(--color-terciario);
  color: var(--color-fuente-secundario);
  border-radius: 45px;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  border: none;
}

.user_option .order_online:hover {
  background-color: var(--color-cuartario);
}

.custom_nav-container .navbar-toggler {
  outline: none;
}

.custom_nav-container .navbar-toggler {
  padding: 0;
  width: 37px;
  height: 42px;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.custom_nav-container .navbar-toggler span {
  display: block;
  width: 35px;
  height: 4px;
  background-color: var(--color-fondo);
  margin: 7px 0;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  position: relative;
  border-radius: 5px;
  transition: all 0.3s;
}

.custom_nav-container .navbar-toggler span::before, .custom_nav-container .navbar-toggler span::after {
  content: "";
  position: absolute;
  left: 0;
  height: 100%;
  width: 100%;
  background-color: var(--color-fondo);
  top: -10px;
  border-radius: 5px;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

.custom_nav-container .navbar-toggler span::after {
  top: 10px;
}

.custom_nav-container .navbar-toggler[aria-expanded="true"] {
  -webkit-transform: rotate(360deg);
          transform: rotate(360deg);
}

.custom_nav-container .navbar-toggler[aria-expanded="true"] span {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

.custom_nav-container .navbar-toggler[aria-expanded="true"] span::before, .custom_nav-container .navbar-toggler[aria-expanded="true"] span::after {
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
  top: 0;
}

/*end header section*/
/* slider section */


/* --- SECCIÓN DE OFERTAS --- */
.offer_section {
    position: relative;
    padding: 60px 0;
    background-color: transparent;
}


.offer_section .box .img-box {
    width: 200px;
    height: 200px;
    min-width: 10px;
    margin-right: 25px;
    border-radius: 5%; /* Imagen circular para ofertas */
    border: 5px solid var(--color-tertiary-hh);
    overflow: hidden;
    background: #fff;
}

.offer_section .box .img-box img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.offer_section .box:hover .img-box img {
    transform: scale(1.1);
}

/* --- DETALLE DE PRECIOS EN OFERTA --- */
.offer_section .detail-box h5 {
    font-weight: 700;
    font-size: 1.4rem;
    margin-bottom: 10px;
    color: var(--color-secondary-hh);
}

.offer_section .offer-price-container {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.offer_section .discount-badge {
    background-color: var(--color-secondary-hh);
    color: #fff;
    padding: 4px 10px;
    border-radius: 50px;
    font-size: 0.8rem;
    font-weight: 700;
    align-self: flex-start;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.offer_section .current-price {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--color-tertiary-hh);
}

.offer_section .original-price {
    font-size: 1rem;
    color: #888;
    text-decoration: line-through;
    margin-left: 8px;
}

.offer_section .presentation-text {
    font-style: italic;
    font-size: 0.85rem;
    color: #666;
}

/* --- ESTRUCTURA DEL SLIDER --- */
.offer_section .promo-slider {
    position: relative;
    overflow: hidden;
    padding: 20px 0;
}

.offer_section .promo-track {
    display: flex;
    gap: 30px;
    align-items: stretch; /* Obliga a que todos los ítems midan lo mismo verticalmente */
    width: max-content;
    animation: scrollPromo 50s linear infinite;
    padding: 20px 0;
}

/* --- Card con Altura Fija --- */
.offer_section .box {
    display: flex;
    flex-direction: row;
    background-color: var(--color-primary-hh);
    padding: 25px;
    border-radius: 15px;
    width: 500px;         /* Ancho fijo para consistencia */
    min-height: 320px;    /* ALTURA FIJA: Ajusta este valor según tu contenido máximo */
    height: 100%;         /* Para que estiren si el track lo pide */
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    border: 1px solid rgba(255,255,255,0.1);
}
.offer_section .promo-slider:hover .promo-track {
    animation-play-state: paused;
}

@keyframes scrollPromo {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* Degradados para suavizar bordes */
.offer_section .promo-slider::before,
.offer_section .promo-slider::after {
    content: "";
    position: absolute;
    top: 0;
    width: 100px;
    height: 100%;
    z-index: 2;
    pointer-events: none;
}
.offer_section .promo-slider::before {
    left: 0;
    background: linear-gradient(to right, white, transparent);
}
.offer_section .promo-slider::after {
    right: 0;
    background: linear-gradient(to left, white, transparent);
}

.food_section .filters_menu {
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  list-style-type: none;
  margin: 45px 0 20px 0;
}

.food_section .filters_menu li {
  padding: 7px 25px;
  cursor: pointer;
  border-radius: 5px;
  color: var(--color-secondary-hh);
  font-weight: bold;
}

.food_section .filters_menu li.active {
  background-color: var(--color-tertiary-hh);
  color: var(--color-background-hh);
}

.food_section .box {
  position: relative;
  margin-top: 25px;
  background-color: var(--color-primary-hh);
  border-radius: 5px;
  color: var(--color-secondary-hh);
  overflow: hidden;
  background: var(--color-primary-hh);
}

.food_section .box .img-box {
  background: #f1f2f3;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 215px; /* Mantener la altura que ya tenías */
  margin: 0;      /* Limpiamos el margen negativo */
  padding: 0;     /* ELIMINAR el padding para que la imagen llegue a los bordes */
  overflow: hidden; /* Corta cualquier exceso si la imagen es muy grande */
  border-radius: 15px 15px 0 0; /* Opcional: redondea las esquinas superiores */
}

.food_section .box .img-box img {
  width: 100%;    /* Forzar a que ocupe todo el ancho */
  height: 100%;   /* Forzar a que ocupe todo el alto */
  object-fit: cover; /* MAGIA: Centra y recorta sin estirar la imagen */
  object-position: center;
  transition: transform 0.5s ease;
}

/* EFECTO PROFESIONAL: Zoom suave al pasar el mouse */
.food_section .box:hover .img-box img {
  transform: scale(1.1);
}

.food_section .box .detail-box {
  padding: 25px;
}

.food_section .box .detail-box h5 {
  font-weight: 600;
}

.food_section .box .detail-box p {
  font-size: 15px;
}

.food_section .box .detail-box h6 {
  margin-top: 10px;
}

.food_section .box .options {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  
  /* Cambiamos justify-content de space-between a center */
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;

  /* Añadimos un margen superior para separarlo de la descripción */
  margin-top: 15px; 
  width: 100%;
}

/* Si quieres que el botón ocupe casi todo el ancho pero centrado */
.food_section .box .options .btn-hh {
  width: auto; /* Permite que el padding que definimos antes mande */
  min-width: 180px; /* Asegura un tamaño elegante */
}


.food_section .box:hover .img-box img {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}

/* RESET total del botón */
.food_section .carousel-control-prev,
.food_section .carousel-control-next {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* Quitar focus azul feo */
.food_section .carousel-control-prev:focus,
.food_section .carousel-control-next:focus,
.food_section .carousel-control-prev:active,
.food_section .carousel-control-next:active {
  outline: none !important;
  box-shadow: none !important;
}

/* Ocultar iconos default completamente */
.food_section .carousel-control-prev-icon,
.food_section .carousel-control-next-icon {
  display: none;
}

/* Contenedor del botón */
.food_section .carousel-control-prev,
.food_section .carousel-control-next {
  width: 50px;
  height: 50px;
  top: 50%;
  transform: translateY(-50%);
  opacity: 1;
  position: absolute;
}

/* Círculo */
.food_section .carousel-control-prev::before,
.food_section .carousel-control-next::before {
  content: '';
  width: 45px;
  height: 45px;
  background-color: var(--color-tertiary-hh);
  border-radius: 50%;
  position: absolute;
}

/* Flechas */
.food_section .carousel-control-prev::after,
.food_section .carousel-control-next::after {
  content: '';
  position: absolute;
  width: 10px;
  height: 10px;
  border: solid var(--color-secondary-hh);
  border-width: 0 2px 2px 0;
}

/* Direcciones */
.food_section .carousel-control-prev::after {
  transform: rotate(135deg);
}

.food_section .carousel-control-next::after {
  transform: rotate(-45deg);
}

/* Hover */
.food_section .carousel-control-prev:hover::before,
.food_section .carousel-control-next:hover::before {
  background-color: var(--color-secondary-hh);
}

/* Hover flechas */
.food_section .carousel-control-prev:hover::after,
.food_section .carousel-control-next:hover::after {
  border-color: var(--color-background-hh);
}

/* Posición */
.food_section .carousel-control-prev {
  left: -10px;
}

.food_section .carousel-control-next {
  right: -10px;
}

/* Card base */
.card-producto {
  background: var(--color-primary-hh);
  border-radius: 5px;
  overflow: hidden;
  transition: all 0.3s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
}

/* Hover elegante */
.card-producto:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 30px rgba(0,0,0,0.12);
}

/* Imagen */
.card-img {
  height: 220px;
  overflow: hidden;
  background: #fff;
}

.card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

/* Zoom suave */
.card-producto:hover .card-img img {
  transform: scale(1.08);
}

/* Body */
.card-body {
  padding: 18px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
}

/* Título */

/* Descripción */
.card-desc {
  font-size: 14px;
  color: var(--color-secondary-hh);
  flex-grow: 1;
  margin-bottom: 15px;
}


/* Precio */
.precio {
  font-size: 18px;
  font-weight: bold;
  color: var(--color-secondary-hh);
}

/* Botón reutilizable */
.btn-hh {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 5px;
  border: none;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.3s ease;
}
/* CARD GENERAL */
.category-card {
  position: relative;
  border-radius: 15px;
  overflow: hidden;
  cursor: pointer;
  height: 250px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* IMAGEN */
.category-image {
  display: flex;             /* Activamos Flexbox */
  justify-content: center;    /* Centrado horizontal */
  align-items: center;        /* Centrado vertical */
  overflow: hidden;           /* Evita que la imagen se salga si hay zoom */
  width: 100%;                /* Ajusta según tu diseño (ej. 300px) */
  height: 250px;              /* Es vital que el contenedor tenga una altura definida */
}

.category-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;         /* Mantiene la proporción recortando los bordes */
  object-position: center;   /* Asegura que el centro de la foto sea lo visible */
  transition: transform 0.5s ease;
  display: block;            /* Quita espacios fantasmas debajo de la imagen */
}


/* OVERLAY */
.category-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.7),
    rgba(0,0,0,0.2),
    transparent
  );
  display: flex;
  align-items: flex-end;
  padding: 20px;
}

/* TEXTO */
.category-content h4 {
  color: #fff;
  font-weight: 600;
  margin-bottom: 5px;
}

.ver-mas {
  color: var(--color-tertiary-hh);
  font-size: 14px;
  opacity: 0.9;
}

/* HOVER */
.category-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.15);
}
.category-card {
  margin-bottom: 25px;
}

.category-card:hover img {
  transform: scale(1.1);
}

.category-card:hover .ver-mas {
  letter-spacing: 1px;
}
/* Variante primaria */
.btn-hh-primary {
  background: var(--color-tertiary-hh);
  color: var(--color-secondary-hh);
}

.btn-hh-primary:hover {
  background: var(--color-secondary-hh);
  color: var(--color-background-hh);
}

.product-image img {
  width: 100%;
  border-radius: 16px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}

.product-info {
  padding: 10px 20px;
}

.product-title {
  font-size: 28px;
  font-weight: bold;
  color: var(--color-secondary-hh);
}

.product-description {
  margin: 15px 0;
  color: #666;
}

/* precios */
.price-list {
  margin: 20px 0;
}

.price-card {
  background: var(--color-background-hh);
  border: 1px solid #eee;
  border-radius: 12px;
  padding: 15px;
  margin-bottom: 10px;
  transition: 0.3s;
}

.price-card:hover {
  border-color: var(--color-tertiary-hh);
}

/* header */
.price-header {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: #888;
}

/* precios */
.price-body {
  margin-top: 8px;
}

.price {
  font-size: 20px;
  font-weight: bold;
  color: var(--color-secondary-hh);
}

.price-old {
  text-decoration: line-through;
  color: #999;
  margin-right: 8px;
}

.price-new {
  font-size: 20px;
  font-weight: bold;
  color: var(--color-tertiary-hh);
}

.badge-descuento {
  background: #ff4d4d;
  color: white;
  font-size: 12px;
  padding: 3px 8px;
  border-radius: 5px;
  margin-left: 8px;
}

/* botón grande */
.btn-lg-hh {
  padding: 12px 20px;
  font-size: 16px;
  border-radius: 5px;
}



.breadcrumb-hh {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  font-size: 14px;
  color: var(--color-secondary-hh);
}

.breadcrumb-item {
  cursor: pointer;
  transition: all 0.3s ease;
  color: var(--color-secondary-hh);
  opacity: 0.8;
}

.breadcrumb-item:hover {
  color: var(--color-tertiary-hh);
  opacity: 1;
}

.breadcrumb-current {
  font-weight: 600;
  color: var(--color-tertiary-hh);
}

.separator {
  margin: 0 8px;
  color: var(--color-secondary-hh);
  opacity: 0.5;
}




.book_section {
  position: relative;
}

.book_section .heading_container {
  margin-bottom: 25px;
}

.book_section .form_container .form-control {
  width: 100%;
  border: none;
  height: 50px;
  margin-bottom: 25px;
  padding-left: 25px;
  border: 1px solid #999;
  outline: none;
  color: #000000;
  border-radius: 5px;
  outline: none;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.book_section .form_container .form-control::-webkit-input-placeholder {
  color: var(--color-background-hh);
}

.book_section .form_container .form-control:-ms-input-placeholder {
  color: var(--color-background-hh);
}

.book_section .form_container .form-control::-ms-input-placeholder {
  color: var(--color-background-hh);
}

.book_section .form_container .form-control::placeholder {
  color: var(--color-background-hh);
}

.book_section .form_container .nice-select .current {
  font-size: 16px;
}

.book_section .form_container button { 
  margin-top: 15px;
  border: none;
  text-transform: uppercase;
  display: inline-block;
  padding: 10px 55px;
  background-color: var(--color-background-hh);
  color: var(--color-secondary-hh);
  border-radius: 45px;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  border: none;
}

.boton_personalizado { 
  margin-top: 10px;
  border: none;
  text-transform: uppercase;
  display: inline-block;
  padding: 10px 25px;
  background-color: var(--color-terciario);
  color: var(--color-fuente-secundario);
  border-radius: 45px;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  border: none;
  cursor: pointer;
}

.boton_personalizado:hover { 
  background-color: var(--color-cuartario);
}

.book_section .form_container button:hover {
  background-color: var(--color-cuartario);
}

.book_section .map_container {
  width: 100%;
  height: 345px;
  border-radius: 10px;
  overflow: hidden;
}

.book_section .map_container #googleMap {
  height: 100%;
  min-height: 100%;
  width: 100%;
}

/* client section start */
.client_section .heading_container {
  margin-bottom: 30px;
}

.client_section .box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin: 15px;
}

.client_section .box .img-box {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 115px;
  position: relative;
  margin-top: 30px;
}

.client_section .box .img-box img {
  border-radius: 100%;
  border: 5px solid var(--color-tertiary-hh);
  position: relative;
}

.client_section .box .img-box::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  width: 20px;
  height: 20px;
  background-color: var(--color-tertiary-hh);
  -webkit-transform: rotate(45deg) translateX(-50%);
          transform: rotate(45deg) translateX(-50%);
}

.client_section .box .detail-box {
  /*background: linear-gradient(
    to bottom,
    var(--color-quinto),
    var(--color-sexto)
  );*/
  background-color: var(--color-primary-hh);
  color: var(--color-secondary-hh);
  padding: 25px 25px 15px 25px;
  border-radius: 5px;
}

.client_section .box .detail-box h6 {
  font-weight: 600;
  font-size: 18px;
  margin: 15px 0 5px 0;
}

.client_section .box .detail-box p {
  margin-bottom: 0;
  font-size: 15px;
  margin-bottom: 10px;
}

.client_section .owl-carousel .owl-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 45px;
  padding: 0 15px;
}

.client_section .owl-carousel .owl-nav .owl-prev,
.client_section .owl-carousel .owl-nav .owl-next {
   width: 45px;
  height: 45px;
  background-color: var(--color-tertiary-hh);
  color: var(--color-secondary-hh);
  outline: none;
  bottom: 0px;
  font-size: 24px;
  margin: 0 5px;
  border-radius: 100%;
}

.client_section .owl-carousel .owl-nav .owl-prev:hover,
.client_section .owl-carousel .owl-nav .owl-next:hover {
   width: 45px;
  height: 45px;
  background-color: var(--color-secondary-hh);
  color: var(--color-background-hh);
  outline: none;
  bottom: 0px;
  font-size: 24px;
  margin: 0 5px;
  border-radius: 100%;
}



/* client section end */
.contact_section .heading_container {
  margin-bottom: 45px;
}

.contact_section .form_container .form-group {
  margin-bottom: 25px;
}

.contact_section .form_container input {
  width: 100%;
  border: none;
  height: 50px;
  padding-left: 25px;
  background-color: transparent;
  border: 1px solid #ccc;
  outline: none;
  color: var(--color-quinto);
  border-radius: 5px;
}

.contact_section .form_container input::-webkit-input-placeholder {
  color: var(--color-quinto);
}

.contact_section .form_container input:-ms-input-placeholder {
  color: var(--color-quinto);
}

.contact_section .form_container input::-ms-input-placeholder {
  color: var(--color-quinto);
}

.contact_section .form_container input::placeholder {
  color: var(--color-quinto);
}

.contact_section .form_container input.message-box {
  height: 120px;
  border-radius: 5px;
}

.contact_section .form_container .btn-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.contact_section .form_container button {
  margin-top: 10px;
  border: none;
  text-transform: uppercase;
  display: inline-block;
  padding: 10px 55px;
  background-color: var(--color-quinto);
  color: #ffffff;
  border-radius: 0px;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  border: none;
}

/* Clase específica para Títulos o Letreros */
.color-primary-page {
    color: var(--color-terciario);
    font-weight: 600;
    border-left: 4px solid var(--color-terciario); /* Un detalle elegante para letreros */
    padding-left: 10px;
}

/* footer section*/
.footer_section {
  background-color: var(--color-primary-hh);
  color: var(--color-secondary-hh);
  padding: 75px 0 40px 0;
  text-align: center;
}



.footer_section h4,
.footer_section .footer-logo {
  font-weight: 600;
  margin-bottom: 20px;
  color: var(--color-secondary-hh);
}

.footer_section p {
  color: #dbdbdb;
}

.footer_section .footer-col {
  margin-bottom: 30px;
}

.footer_section .footer_contact .contact_link_box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.footer_section .footer_contact .contact_link_box a {
  margin: 5px 0;
  color: var(--color-secondary-hh);
}

.footer_section .footer_contact .contact_link_box a i {
  margin-right: 5px;
}

.footer_section .footer_contact .contact_link_box a:hover {
  color: var(--color-background-hh);
}



.footer_section .footer_social {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 20px;
  margin-bottom: 10px;
}

.footer_section .footer_social a {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
        justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
        align-items: center;
    color: var(--color-secondary-hh);
    width: 30px;
    height: 30px;
    border-radius: 100%;
    background-color: var(--color-tertiary-hh);
    border-radius: 100%;
    margin: 0 2.5px;
    font-size: 18px;
}

.footer_section .footer_social a:hover {
  color: var(--color-background-hh);
  background-color: var(--color-secondary-hh);
}

.footer_section .footer-info {
  text-align: center;
  margin-top: 25px;
}

.footer_section .footer-info p {
  color: var(--color-secondary-hh);
  margin: 0;
}

.footer_section .footer-info p a {
  color: inherit;
}
/*# sourceMappingURL=style.css.map */


.login_section .card {
    background: var(--color-primary-hh);
   background-size: cover;
   background-position: center;
   background-repeat: no-repeat;
  border-radius: 1rem;
}

.addProduct_section .card {
  background: var(--color-fuente-terciario);
   background-size: cover;
   background-position: center;
   background-repeat: no-repeat;
  border-radius: 1rem;
}

.cursor-pointer {
    cursor: pointer;
    user-select: none;
}

/* Ajuste para que las flechas no queden pegadas a las imágenes */
.carousel-control-prev { left: -50px; }
.carousel-control-next { right: -50px; }

@media (max-width: 768px) {
    .carousel-control-prev, .carousel-control-next {
        display: none; /* Ocultar flechas en móvil para no estorbar */
    }
}

.loader-pulse {
    width: 48px;
    height: 48px;
    border: 5px solid var(--color-background-hh); /* Color secundario */
    border-bottom-color: var(--color-secondary-hh); /* Color primario */
    border-radius: 50%;
    display: inline-block;
    box-sizing: border-box;
    animation: rotation 1s linear infinite;
}

@keyframes rotation {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.modal-body {
  background-color: var(--color-background-hh);
}

.modal-footer,
.modal-header{
  background-color: var(--color-primary-hh);
}
