/*
 Theme Name: Storefront Restaurante Peruano-Español
 Theme URI: https://tuweb.com/
 Description: Tema hijo para un restaurante de comida peruana y española basado en Storefront.
 Author: Carlos vasquez
 Author URI: https://tuweb.com/
 Template: storefront
 Version: 1.0.0
 License: GNU General Public License v2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 Text Domain: restaurante-encanto
*/


:root {

    /* --fondo-principal: #582111; */
    --fondo-principal: #a01638;

    --cafe-morning-bg: #FEF9E7;
    --cafe-morning-icon: #F39C12;
    --cafe-noon-bg: #EFEBE9;
    --cafe-noon-icon: #6F4E37;
    --cafe-night-bg: #2C3E50;
    --cafe-night-icon: #F1C40F;
    
    --color-primary-green: #2E8B57; 
    --color-secondary-orange: #D2691E;
    
    --spacing-small: 8px;
    --spacing-default: 16px;
    --spacing-large: 32px;
}

@media screen and (min-width: 768px) {
    body.home .storefront-primary-navigation  {
        background-color: transparent;
        
        
        padding: 0 1.5rem;
        grid-template-columns: 1fr auto 1fr;
        min-height: 80px;
    }
}


body.home .storefront-primary-navigation .main-navigation ul li a {
  transition: background-color 0.4s ease, color 0.4s ease;
  /* padding: 1em 1.2em; */
  border-radius: 4px; /* Opcional: para bordes redondeados */
}

body.home .storefront-primary-navigation .main-navigation ul li a:hover {
    background-color: #5EB59E;
    color: #582111;
}

@media (min-width: 768px) {
    .main-navigation ul.menu>li>a:hover, .main-navigation ul.nav-menu>li>a:hover {
        background-color: #665B5E;
    }
}

.main-navigation ul li a:hover {
    color: #f3e19e;
}


@media (min-width: 768px) {
    body.home .site-header-cart .cart-contents {
        color: #f3e19e;
        /* padding: 0.618em 0; */
    } }

    @media (min-width: 768px) {
    .site-header-cart .cart-contents {
        color: #f3e19e;
        /* padding: 0.618em 0; */
    } }

    body.home .site-header ul.menu li.current-menu-item > a {
        background-color: var(--fondo-principal);
        color: #f3e19e;
    }

    .site-header ul.menu li.current-menu-item > a {
        background-color: #ff6f87;
        /* background-color: #A06F60; */
        color: #290000;
        text-transform: uppercase;
        font-weight: 600;
    }




ul.products li.product .button {
    background-color: #a01638;
    color: #ffffff;
}

.woocommerce-pagination .page-numbers li .page-numbers:not(.current) {

    color: #f3e19e;
}

 

/* Mantén el resto del CSS de tu hero como lo habíamos definido antes */

/* ---- Reglas comunes ---- */
body.home .site-header {
  height: auto; /* fallback por defecto */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* ---- Pantallas medianas y grandes ---- */
@media (min-width: 768px) {
  body.home .site-header {
    height: 100vh;      /* Pantalla completa */
    max-height: 80rem;  /* Máximo ~1280px */
  }
}

/* ---- Solo imagen ---- */
body.home.hero-image .site-header {
  padding-top: 4rem;    /* Un poco más de aire arriba */
  min-height: 60rem;    /* ~960px */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

/* ---- Solo video ---- */
body.home.hero-video .site-header {
  padding-top: 4rem;
  min-height: 70rem;    /* ~1120px */
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


.hero {
    margin-top: 5rem;
}
@media (min-width:768px) {
    .hero {
        margin-top: 15rem;
    }
}



/* link de menu */
/* body.home .main-navigation ul.menu>li>a, body.home .main-navigation ul.nav-menu>li>a  { */
/* text-transform: uppercase; */
/* font-family: 'Poppins', sans-serif;; */
/* } */

@media (min-width: 768px) {
    .main-navigation ul.menu, .main-navigation ul.nav-menu {
        max-height: none;
        overflow: visible;
        
        transition: none;
    }
}



/* h6 {
    color: #e3bb8b !important;
    text-shadow: 2px 2px 10px rgb(160 22 56);
    background-image: linear-gradient(to right top, #d9102300, #cc0d2b00, #be0e311a, #af123512, var(--fondo-principal)00);
    padding: 30px;
    font-size: 40px;
    font-weight: 600;
} */

/* GLOBAL */
/* body {
    font-family: 'Lato', sans-serif;
} */

h1, h2, h3 {
    font-family: 'Poppins', sans-serif;
}

h4, h5, h6 {
    font-family: 'Montserrat', sans-serif;
}


/* reducir espacios */

.home.page:not(.page-template-template-homepage) .site-header {
    margin-bottom: 0;
    
}


.site-main {
    margin-bottom: 0;
}

@media (min-width: 768px) {
    .content-area, .widget-area {
        margin-bottom: 0;
    }
}

/* END */

/* h1.lo-mas-importante {
    margin-bottom: 40px;
    font-size: 110px;
    line-height: 110px;
    letter-spacing: 4px;
    color: #ffffff;
    font-size: 6rem;
    text-transform: uppercase;
    font-weight: 700;
} */


.color-peru {
    color: #DA291C; /* Rojo peruano - Color representativo de la bandera */
    text-shadow: rgb(255, 255, 255) 2px 2px 10px;
;
}

.color-espana {
    color: #F1BF00; /* Amarillo español - Color representativo de la bandera */
    text-shadow: var(--fondo-principal) 2px 2px 10px;


}

/* section 1 */

/* .full-width-section {
  width: 100%;
  padding: 4rem 2rem;  
  background-color: var(--fondo-principal); 
  text-align: center;
}

.full-width-section h2 {
  margin: 0;
  font-size: 2.5rem; 
  font-weight: 700;
  color: #ffffff;       
  text-transform: uppercase;
} */


/* mas */

/* === Sección Comida Peruana === */

/* === Sección Comida Peruana === */
.comida-peruana {
  width: 100%;
  background-color: var(--fondo-principal); /* rojo */
  text-align: center;
  padding: 2rem 1rem;
}

.comida-peruana h2 {
  color: #fff;
  text-transform: uppercase;
  margin: 0;
  font-size: 2.5rem; /* Tamaño base para pantallas grandes */
  /* white-space: nowrap;  */
}

/* Pantallas medianas (tablets) */
@media (max-width: 768px) {
  .comida-peruana h2 {
    font-size: 2rem;
    font-weight: 700;
  }
}

/* Pantallas pequeñas (móviles) */
@media (max-width: 480px) {
  .comida-peruana h2 {
    font-size: 1.5rem;
    font-weight: 700;
  }
}



/* general para todas las paginas */

@media (min-width: 768px) {
    .storefront-primary-navigation {
        background-color: var(--fondo-principal);
    }
}


/* productos lista*/


/* ul.products li.product .woocommerce-loop-product__title {
border: 1px solid var(--fondo-principal);
    border-radius: 10px 10px 18px 18px;
   
    overflow: hidden;
    box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
}
     */



/* CATEGORIAS SECTION */


    .swiper {
      width: 100%;
      height: 100%;
    }

    .swiper-pagination {
        position: relative;
        margin-top: 1rem;
    }

    .swiper-slide {
      text-align: center;
      font-size: 18px;
      background: #f3f2f4;
      display: flex;
      justify-content: center;
      align-items: center;
    }

    .swiper-slide img {
        /* position: absolute; */
      /* display: block; */
      /* width: 100%; */
      height: 100%;
      object-fit: cover;
      background-size: cover;

    /* display: flex;
    -webkit-box-pack: end;
    justify-content: end;
    max-height: 62px;
        z-index: 2; */

    }


/* Estilos por defecto (para móviles <768px) */
h3.categorias {
    font-size: 12px;
    font-weight: 600;
    color: rgb(16, 4, 35);
    margin: 8px 8px 0px;
}

/* Pantallas >=768px (tablets) */
@media (min-width: 768px) {
    h3.categorias {
        font-size: 15px;
    }
}

/* Pantallas >=1024px (laptops y escritorios) */
@media (min-width: 1024px) {
    h3.categorias {
        font-size: 16px;
    }
}




    /* footer */

    /* footer */
.custom-footer {
  background: var(--fondo-principal);
  padding: 30px 15px;
  text-align: center;
  box-shadow: 0 0px 1px rgb(255, 255, 255);
}


@media (max-width: 767px) {
    .custom-footer {

        margin-bottom: 4rem;
    }
}


.payment-methods {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 20px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}

.payment-methods img {
  height: 30px;
  width: auto;
  /* filter: brightness(0) invert(1);  */
  transition: transform 0.3s ease;
}

.payment-methods img:hover {
  transform: scale(1.1);
}

.custom-footer p {
  margin: 5px 0;
  font-weight: 500;
  color: #ffffff;
  font-size: 15px;
  
}

.custom-footer a {
  color: #f3e19e;
  text-decoration: none;
  font-weight: bold;
}

.custom-footer a:hover {
  text-decoration: underline;
}


/* .widget {
  margin: 0 0 0;
} */



    .site-footer {
        margin-top: 5rem;
    }


    .site-footer {
        background-color: var(--fondo-principal);
    }

    .site-info {
        color: #ffffff;
    }


    /* el texto prindipal */

.hero {
  display: flex;
  justify-content: center;   /* centra horizontalmente */
  align-items: center;       /* centra verticalmente */
  /* min-height: 100vh;        */
  padding: 2rem;             /* espacio interno para pantallas chicas */
  text-align: center;        /* centra texto */
}

.contenedor {
  max-width: 1200px;         /* ancho máximo opcional */
  width: 100%;               /* se adapta a la pantalla */
}


.hero h1 {
  font-size: 2.5rem;
}

.hero h6 {
  font-size: 1.2rem;
}

@media (min-width: 768px) {
  .hero h1 {
    font-size: 3.5rem;
  }

  .hero h6 {
    font-size: 1.5rem;
  }
}

@media (min-width: 1200px) {
  .hero h1 {
    font-size: 4rem;
  }

  .hero h6 {
    font-size: 1.8rem;
  }
}


.hero h1 {
  color: #ffffff;               /* color oscuro */
  font-family: 'Poppins', sans-serif; /* o tu fuente */
  text-transform: uppercase;
    font-weight: 700;
    text-shadow: 0 0 5px rgb(0 0 0 / 70%);
}

.hero h6 {
  color: #ffffff;               /* gris suave */
  font-family: 'Poppins', sans-serif;
  text-shadow: 2px 2px 10px rgb(160 22 56);
}


/* mas */

.storefront-full-width-content .site-main ul.products.columns-3 li.product {
 /* background-color: #ffffff6b;  */
 border-radius: 1.6em 12px;
   
      border: 1px solid var(--fondo-principal);
    border-radius: 10px 10px 18px 18px;
   
    overflow: hidden;
    box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
}

/* .que-vas-a-pedir-hoy h2.categorias {
    color: red;
}

.que-vas-a-pedir-hoy {
    margin-top: 1rem;
    
} */


/* mas */

/* === Sección Comida Peruana === */
.comida-peruana {
  width: 100%;
  background-color: var(--fondo-principal);
  text-align: center;
  padding: 2rem 1rem;
}

.comida-peruana h2 {
  color: #fff;
  text-transform: uppercase;
  margin: 0;
  font-size: 3rem; /* Tamaño base pantallas grandes */
  /* white-space: nowrap; */
}

@media (max-width: 1024px) {
  .comida-peruana h2 {
    font-size: 2.5rem;
  }
}

@media (max-width: 768px) {
  .comida-peruana h2 {
    font-size: 2rem;
  }
}

@media (max-width: 480px) {
  .comida-peruana h2 {
    font-size: 1.6rem;
  }
}


/* === Sección ¿Qué vas a pedir hoy? === */
.que-vas-a-pedir-hoy {
  margin-top: 3rem;   /* Espacio arriba */
  margin-bottom: 3rem; /* Espacio abajo */
}

.que-vas-a-pedir-hoy h2.categorias {
  color: #000000;
  text-align: center;
  margin: 0;
  font-size: 2.5rem; /* Tamaño base */
  margin-bottom: 20px;
}

@media (max-width: 768px) {
  .que-vas-a-pedir-hoy h2.categorias {
    font-size: 2rem;
  }
}

@media (max-width: 480px) {
  .que-vas-a-pedir-hoy h2.categorias {
    font-size: 1.6rem;
  }
}


/* avisos de woocommerce */


.woocommerce-message {
    background-color: var(--fondo-principal);
}

.woocommerce-message .button {
    border: 1px solid #ffffff;
}


/* logo */

.site-branding {
    width: calc(100% - 29px);
}

.site-header .custom-logo-link img {
    max-width: 100%;
}


/* logo para footer de mobiles */


/* Ícono de Comida */
.storefront-handheld-footer-bar ul li.food > a:before {
    content: "\f2e7";
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* font-size: 1.5em; */
    display: block;
    margin-bottom: 0.1618em;
}

/* Ícono de Ofertas */
.storefront-handheld-footer-bar ul li.offers > a:before {
    content: "\f274";
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* font-size: 1.5em; */
    display: block;
    margin-bottom: 0.1618em;
}

/* Estilos comunes para ambos enlaces */
.storefront-handheld-footer-bar ul li.food > a,
.storefront-handheld-footer-bar ul li.offers > a {
    text-indent: 0px;
    padding-top: 1.5em;
}

/* manu principal */

@media (min-width: 768px) {
    .main-navigation ul li a {
        color: #ffffff;
        /* letter-spacing: 0.2em; */
        text-transform: uppercase;
    }
}



.site-footer .storefront-handheld-footer-bar a:not(.button):not(.components-button)

  {
    color: #000000;
}

/* footer widget */

.site-footer .widget .widget-title {
    color: #ffffff;
}

.site-footer a:not(.button):not(.components-button) {
    color: #F3E19E;
}

.site-footer .woocommerce-Price-amount.amount {
    color: #ffffff;
}

.site-footer .woocommerce-Price-currencySymbol {
    color: #F3E19E;
}


.site-info

 {
    padding: 2.617924em 0;
}

/* subcategorias */


/* --- Modern Subcategories Styling --- */

/* Container for the subcategories */
.dcms-subcategories {
    list-style: none; /* Remove default bullet points */
    margin: 1.5em 0; /* Add some vertical spacing */
    padding: 0; /* Remove default padding */
    display: flex; /* Enable Flexbox */
    flex-wrap: wrap; /* Allow items to wrap to the next line on smaller screens */
    gap: 0.8em; /* Space between subcategory items */
    justify-content: flex-start; /* Align items to the start (left) */
    align-items: center; /* Vertically align items in the center */
}

/* Individual subcategory items */
.dcms-subcategories li {
    margin: 0; /* Remove default list item margin */
}

/* The actual link (the clickable area) */
.dcms-subcategories li a {
    display: inline-flex; /* Use flex for internal content if needed, otherwise inline-block */
    align-items: center; /* Center text vertically if icon is added */
    padding: 0.6em 1.2em; /* Comfortable padding for click area */
    background-color: var(--fondo-principal); /* Light gray background */
    color: #ffffff; /* Darker text color */
    text-decoration: none; /* Remove underline */
    border-radius: 25px; /* Rounded corners for a modern "pill" or "tag" look */
    font-size: 0.9em; /* Slightly smaller font for tags */
    font-weight: 600; /* Semi-bold text */
    transition: all 0.2s ease-in-out; /* Smooth transition for hover effects */
    border: 1px solid #e0e0e0; /* Subtle border */
    white-space: nowrap; /* Prevent text from wrapping inside the tag */
}

/* Hover and Focus states for interactivity */
.dcms-subcategories li a:hover,
.dcms-subcategories li a:focus {
    background-color: #0073e6; /* A clear, clickable blue */
    color: #fff; /* White text on hover */
    border-color: #0073e6; /* Border matches background on hover */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Subtle shadow for depth */
    transform: translateY(-2px); /* Slight lift effect */
}

/* Optional: Add an icon (if you want to make it even more visually appealing) */
/* Requires FontAwesome or similar icon library loaded on your site */
/* .dcms-subcategories li a:before {
    content: "\f02b"; // Example: FontAwesome tag icon (adjust unicode for your desired icon)
    font-family: 'Font Awesome 5 Free'; // Or 'Font Awesome 5 Pro', 'dashicons', etc.
    font-weight: 900; // For solid icons
    margin-right: 0.5em;
    font-size: 1.1em;
} */



/* .menu-item-description */


/* mass */




/* --- Estilos Generales y de Fondo (SOLO PARA LA TIENDA) --- */
body.post-type-archive-product,
body.tax-product_cat {
    /* background-color: #1a1a1a; */
    /* ¡Recuerda poner tu propia textura de fondo! */
    /* background-image: url('https://ewr1.vultrobjects.com/encanto/2025/07/pizarra.webp'); */
    /* Corrección con 50% de opacidad */
    background-image: linear-gradient(rgba(26, 26, 26, 0.5), rgba(26, 26, 26, 0.5)), url(https://ewr1.vultrobjects.com/encanto/2025/07/pizarra.webp);
    color: #f5f5f5;
}

/* --- Títulos, Pestañas y Contenedores (SOLO PARA LA TIENDA) --- */
body.post-type-archive-product .woocommerce-products-header .page-title,
body.tax-product_cat .woocommerce-products-header .page-title {
    color: #FFD700;
    font-family: 'Georgia', serif;
    text-align: center;
    font-size: 3.5em;
    margin-bottom: 20px;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
}

body.post-type-archive-product .woocommerce-archive-description,
body.tax-product_cat .woocommerce-archive-description {
    display: none;
}

body.post-type-archive-product .custom-product-tabs-container,
body.tax-product_cat .custom-product-tabs-container {
    margin: 0 auto 20px auto;
    max-width: 1400px;
    width: 90%;
}

body.post-type-archive-product .custom-tabs-nav,
body.tax-product_cat .custom-tabs-nav {
    display: flex;
    justify-content: center;
    gap: 10px;
    padding: 10px;
    background-color: rgba(0, 0, 0, 0.2);
    border-radius: 12px;
    margin: 0 auto 30px auto;
    max-width: 400px;
}

body.post-type-archive-product .custom-tab-label,
body.tax-product_cat .custom-tab-label {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 600;
    color: #a0a0a0;
    transition: all 0.3s ease;
    position: relative;
    user-select: none;
}

body.post-type-archive-product .custom-tab-label .tab-radio,
body.tax-product_cat .custom-tab-label .tab-radio {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}

body.post-type-archive-product .custom-tab-label.active,
body.post-type-archive-product .custom-tab-label:has(.tab-radio:checked),
body.tax-product_cat .custom-tab-label.active,
body.tax-product_cat .custom-tab-label:has(.tab-radio:checked) {
    background-color: #FFD700;
    color: #1a1a1a;
    box-shadow: 0 2px 8px rgba(255, 215, 0, 0.3);
}

body.post-type-archive-product .custom-tab-label:not(.active):hover,
body.tax-product_cat .custom-tab-label:not(.active):hover {
    background-color: rgba(255, 255, 255, 0.1);
    color: #ffffff;
}

body.post-type-archive-product .custom-tab-content,
body.tax-product_cat .custom-tab-content {
    display: none;
}

body.post-type-archive-product .custom-tab-content.active,
body.tax-product_cat .custom-tab-content.active {
    display: block;
}

/* --- Estilos del Menú Board (SOLO PARA LA TIENDA) --- */
body.post-type-archive-product .menu-board-container,
body.tax-product_cat .menu-board-container {
    width: 100%;
    margin: 0 auto;
    padding: 0;
}

body.post-type-archive-product .menu-columns,
body.tax-product_cat .menu-columns {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 40px;
    justify-content: center;
}

body.post-type-archive-product .menu-column,
body.tax-product_cat .menu-column {
    flex: 1;
    min-width: 320px;
    max-width: 450px;
    padding: 20px;
    background: rgba(0, 0, 0, 0.15);
    border: 2px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
}

body.post-type-archive-product .menu-category-title,
body.tax-product_cat .menu-category-title {
    font-family: 'Oswald', sans-serif;
    color: #ffffff;
    font-size: 2.2em;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 2px;
    padding-bottom: 15px;
    margin-bottom: 25px;
    border-bottom: 3px double rgba(255, 215, 0, 0.5);
}

/* --- Estilos de los Items del Menú (SOLO PARA LA TIENDA) --- */

body.post-type-archive-product .menu-category-image-wrapper,
body.tax-product_cat .menu-category-image-wrapper {
    margin-bottom: 5rem;
    text-align: center;
}

body.post-type-archive-product .menu-category-image,
body.tax-product_cat .menu-category-image {
max-width: 80%;
    height: auto;
    /* border-radius: 50%; */
    /* border: 3px solid rgba(255, 215, 0, 0.5); */
    /* box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); */
    display: block;
    margin: 0 auto;
}

/* ESTE ES EL CÓDIGO CORREGIDO Y MÁS ESPECÍFICO */
body.post-type-archive-product .menu-column .menu-item,
body.tax-product_cat .menu-column .menu-item {
    display: flex;
    gap: 15px;
    align-items: center;
    margin-bottom: 25px;
    padding-bottom: 25px;
    border-bottom: 1px dashed rgba(255, 255, 255, 0.3);
}

body.post-type-archive-product .menu-item:last-child,
body.tax-product_cat .menu-item:last-child {
    border-bottom: none;
    margin-bottom: 0;
}

body.post-type-archive-product .menu-item-details,
body.tax-product_cat .menu-item-details {
    flex-grow: 1;
}

body.post-type-archive-product .menu-item-title a,
body.tax-product_cat .menu-item-title a {
    color: #ffffff;
    text-decoration: none;
    transition: color 0.2s ease-in-out;
}

body.post-type-archive-product .menu-item-title a:hover,
body.tax-product_cat .menu-item-title a:hover {
    color: #FFD700;
}

body.post-type-archive-product .menu-item-description,
body.tax-product_cat .menu-item-description {
    color: #b0b0b0;
    font-size: 0.95em;
    line-height: 1.5;
    margin-top: 8px;
}

body.post-type-archive-product .menu-item-price,
body.tax-product_cat .menu-item-price {
    margin-top: 5px;
    display: block;
    color: #FFD700;
    font-weight: 500;
}

/* --- Estilos de los inputs y botones (SOLO PARA LA TIENDA) --- */
body.post-type-archive-product .menu-item-quantity,
body.tax-product_cat .menu-item-quantity {
    flex-shrink: 0;
}

body.post-type-archive-product .quantity-input,
body.tax-product_cat .quantity-input {
    width: 65px;
    padding: 8px;
    text-align: center;
    background-color: rgba(0,0,0,0.3);
    border: 1px solid rgba(255,255,255,0.2);
    color: #fff;
    border-radius: 5px;
    font-size: 16px;
}

body.post-type-archive-product .bulk-add-wrapper,
body.tax-product_cat .bulk-add-wrapper {
    margin-top: 30px;
    text-align: center;
}

body.post-type-archive-product .bulk-add-to-cart-button,
body.tax-product_cat .bulk-add-to-cart-button {
    width: 100%;
    padding: 12px 20px;
    font-size: 16px;
    font-weight: bold;
    color: #1a1a1a;
    background-color: #FFD700;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.3s ease;
}

body.post-type-archive-product .bulk-add-to-cart-button:hover:not(:disabled),
body.tax-product_cat .bulk-add-to-cart-button:hover:not(:disabled) {
    background-color: #fff;
}

body.post-type-archive-product .bulk-add-to-cart-button:disabled,
body.tax-product_cat .bulk-add-to-cart-button:disabled {
    background-color: #555;
    color: #999;
    cursor: not-allowed;
}

body.post-type-archive-product .bulk-add-feedback,
body.tax-product_cat .bulk-add-feedback {
    display: none;
    padding: 10px;
    margin-bottom: 15px;
    border-radius: 5px;
    font-weight: 500;
}

body.post-type-archive-product .bulk-add-feedback.success,
body.tax-product_cat .bulk-add-feedback.success {
    background-color: #28a745;
    color: #fff;
}

body.post-type-archive-product .bulk-add-feedback.error,
body.tax-product_cat .bulk-add-feedback.error {
    background-color: #dc3545;
    color: #fff;
}


/* --- Responsividad (Ya es específico por estar dentro de este bloque) --- */
@media (max-width: 768px) {
    body.post-type-archive-product .menu-columns,
    body.tax-product_cat .menu-columns {
        flex-direction: column;
    }
    body.post-type-archive-product .menu-column,
    body.tax-product_cat .menu-column {
        max-width: 100%;
    }
}


/* Estilo para el aviso de "producto en carrito" */
.in-cart-notice {
    font-size: 12px;
    font-weight: bold;
    color: #28a745; /* Un verde éxito */
    margin-top: 8px;
    text-align: left;
    transition: all 0.3s ease;
}




/* Estilo para la insignia de "Oferta" */
.on-sale-badge {
    display: inline-block;
    background-color: #dc3545; /* Un rojo llamativo */
    color: #fff;
    padding: 3px 8px;
    font-size: 0.8em;
    font-weight: bold;
    border-radius: 4px;
    margin-left: 10px;
    vertical-align: middle;
}

/* Estilo para la etiqueta de "Agotado" */
.out-of-stock-label {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 42px; /* Misma altura que el input de cantidad */
    width: 65px; /* Mismo ancho que el input */
    color: #ffffff;
    font-weight: bold;
    font-size: 14px;
    background-color: rgb(160 22 56);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 5px;
}

/* Estilo para el contenedor del item agotado */
.menu-item.product-out-of-stock {
    opacity: 0.8; /* Atenúa todo el item */
    pointer-events: none; /* Deshabilita clics en el título */
}

.menu-item.product-out-of-stock .menu-item-quantity {
    pointer-events: auto; /* Rehabilita eventos en la cantidad para poder leer "Agotado" */
}

/* Pequeño ajuste para que el precio y la oferta se alineen bien */
body.post-type-archive-product .menu-item-price,
body.tax-product_cat .menu-item-price {
    display: inline-block; /* Cambiado a inline-block */
    vertical-align: middle;
}


/* --- Estilo para el nuevo botón "Seleccionar" en productos variables/agrupados --- */

body.post-type-archive-product .select-options-button,
body.tax-product_cat .select-options-button {
    display: inline-block;
    padding: 10px 15px; /* Ajusta el padding según necesites */
    width: auto;
    min-width: 110px; /* Ancho mínimo para que se lea bien */
    text-align: center;
    background-color: #333; /* Un color neutro que no compita con el botón de añadir */
    color: #fff;
    border: 1px solid #555;
    border-radius: 5px;
    font-size: 14px;
    font-weight: bold;
    text-decoration: none;
    transition: all 0.3s ease;
    box-sizing: border-box; /* Importante para que el padding no afecte el ancho */
}

body.post-type-archive-product .select-options-button:hover,
body.tax-product_cat .select-options-button:hover {
    background-color: #FFD700;
    color: #1a1a1a;
    border-color: #FFD700;
}

/* Ajuste para alinear verticalmente el botón con los inputs */
body.post-type-archive-product .menu-item-quantity,
body.tax-product_cat .menu-item-quantity {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 110px; /* Ancho fijo para el contenedor para alinear todo */
}

body.post-type-archive-product .quantity-input,
body.tax-product_cat .quantity-input {
     width: 100%; /* El input usará el ancho del contenedor */
}


/* --- Estilos para el Modal de Vista Rápida --- */
#quick-view-modal-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}

.quick-view-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7);
}

.quick-view-modal-content {
    position: relative;
    background: #1e1e1e;
    padding: 30px;
    border-radius: 8px;
    width: 90%;
    max-width: 800px;
    max-height: 90vh;
    overflow-y: auto;
    z-index: 1001;
    color: #f5f5f5;
}

.quick-view-close-button {
    position: absolute;
    top: 10px;
    right: 15px;
    background: none;
    border: none;
    color: #fff;
    font-size: 28px;
    cursor: pointer;
}


/* --- Estilos para los inputs y botones (SOLO PARA LA TIENDA) --- */

/* ... tus estilos existentes ... */

body.post-type-archive-product .menu-item-quantity,
body.tax-product_cat .menu-item-quantity {
    flex-shrink: 0;
    /* AÑADIDO: Cambiamos a flex-direction column para poner el aviso debajo */
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 110px; /* Mantenemos el ancho fijo para alinear */
}

/* ... tus estilos existentes para .quantity-input ... */


/* AÑADIDO: Estilos para el aviso de cantidad en carrito */
.in-cart-notice-container {
    height: 20px; /* Damos un alto fijo para evitar saltos en la interfaz */
    margin-top: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.in-cart-notice {
    font-size: 12px;
    font-weight: 500;
    color: #FFD700; /* Color dorado para que coincida con el precio */
    background-color: rgba(255, 215, 0, 0.1);
    padding: 2px 8px;
    border-radius: 4px;
    white-space: nowrap; /* Evita que el texto se parta en dos líneas */
}

/* mas */
ul.products li.product .woocommerce-loop-product__title {
    color: #ffffff;
}


ul.products li.product .price {
    color: #f3e19e;
}



/* --- Estilos para la Plantilla de Contacto --- */

/*
==========================================================================
 ESTILOS MODERNOS Y RESPONSIVOS PARA PLANTILLA DE CONTACTO
==========================================================================
*/

/* --- 1. Variables y Estilos Globales de la Página --- */
.page-template-template-contact {
    --contact-primary-color: #005A87; /* Un color azul corporativo, cámbialo al tuyo */
    --contact-secondary-color: #e24040; /* El rojo que usabas, para acentos */
    --contact-text-color: #333;
    --contact-light-gray: #f4f7f9;
    --contact-border-color: #e1e1e1;
    --contact-spacing: 2rem;
}

.contact-page-entry .entry-title {
    margin-bottom: var(--contact-spacing);
    text-align: center;
    font-size: 2.5em;
}

/* --- 2. Diseño Principal con CSS Grid --- */
.contact-grid-container {
    display: grid;
    grid-template-columns: 1fr; /* Una columna por defecto para móviles */
    gap: var(--contact-spacing);
    max-width: 1200px;
    margin: 0 auto;
}

/* En pantallas más grandes, cambiamos a 2 columnas */
@media (min-width: 768px) {
    .contact-grid-container {
        /* El formulario ocupa 1.5 partes, la info 1 parte */
        grid-template-columns: 1.5fr 1fr;
    }
    .contact-form-area {
        /* Cambiamos el orden visual para que el formulario aparezca primero */
        order: 1;
    }
    .contact-info-area {
        order: 2;
    }
}

.contact-info-area {
    display: flex;
    flex-direction: column;
    gap: var(--contact-spacing);
}

.info-block {
    background-color: var(--contact-light-gray);
    padding: 1.5rem;
    border-radius: 8px;
}

.contact-section-title {
    font-size: 1.5em;
    color: var(--contact-primary-color);
    margin-top: 0;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--contact-primary-color);
    display: inline-block;
}

/* --- 3. Estilos de Componentes (Info, Formulario, Horarios) --- */
.contact-address, .contact-details {
    font-style: normal;
    line-height: 1.7;
}

.contact-address a, .contact-details a {
    color: var(--contact-secondary-color);
    text-decoration: none;
    font-weight: bold;
}
.contact-address a:hover, .contact-details a:hover {
    text-decoration: underline;
}

.map-image-wrapper {
    margin-top: 1rem;
    border-radius: 8px;
    overflow: hidden;
    line-height: 0;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}
.map-image-wrapper img {
    width: 100%;
    height: auto;
    display: block;
}

/* Formulario (Contact Form 7) */
.wpcf7-form .wpcf7-form-control-wrap {
    margin-bottom: 1.5rem;
}
.wpcf7-form label {
    font-weight: bold;
    display: block;
    margin-bottom: 0.5rem;
}
.wpcf7-form-control {
    background: #fff;
    border: 1px solid var(--contact-border-color);
    border-radius: 5px;
    padding: 12px;
    width: 100%;
    box-sizing: border-box;
    transition: border-color 0.3s, box-shadow 0.3s;
}
.wpcf7-form-control:focus {
    outline: none;
    border-color: var(--contact-primary-color);
    box-shadow: 0 0 0 2px rgba(0, 90, 135, 0.2);
}

/* Botón de envío */
.wpcf7-submit {
    background-color: var(--contact-secondary-color) !important;
    color: #fff !important;
    border: none;
    border-radius: 5px;
    padding: 12px 25px;
    font-size: 1.1em;
    font-weight: bold;
    width: 100%;
    cursor: pointer;
    transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
}
.wpcf7-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}

/* Lista de Horarios */
.opening-hours-list {
    font-size: 0.95em;
    margin: 0;
    padding: 0;
}
.hours-row {
    display: flex;
    justify-content: space-between;
    padding: 0.6rem 0;
    border-bottom: 1px solid var(--contact-border-color);
}
.hours-row:last-child {
    border-bottom: none;
}
.hours-row.is-closed dd {
    color: #999;
    font-style: italic;
}
.hours-row dt {
    font-weight: bold;
    color: var(--contact-text-color);
}
.hours-row dd {
    margin: 0;
    color: #555;
}


/* style para pagina tienda cuando es variable*/


.woocommerce-shop table:not( .has-background ) th,
.woocommerce-shop table:not( .has-background ) tbody td
   {
    background-color: #1e1e1e !important;
}


/* fibosearch */
.dgwt-wcas-style-pirx .dgwt-wcas-sf-wrapp {
    background: transparent; 
}

@media (max-width: 767.98px) {
body.home .storefront-primary-navigation .main-navigation ul li a {
    background-color: #5EB59E;
    padding: 15px;
    color: #582111;
    font-size: 1.1em;
    margin-top: 10px;
    letter-spacing: 0.2em;
    text-transform: uppercase;

} 
body.home .storefront-primary-navigation .main-navigation ul li a:hover {
    background-color: #582111;
    color: #f3e19e;
}

}


button.menu-toggle {
    margin-bottom: 10px;
}




/* section cafe */


/* --- ESTILOS GENERALES Y DE SECCIÓN --- */
.cafe-section {
    padding: 60px var(--spacing-default);
    background-color: #fff;
    border-top: 5px solid var(--color-primary-green);
    overflow-x: hidden;
}

.container {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center; /* Cambiado a center para mejor alineación vertical en desktop */
    justify-content: space-between;
    gap: var(--spacing-large);
}

/* Contenido de texto con BEM */
.cafe-section__content {
    flex: 1 1 350px; /* Ideal para desktop */
}

.cafe-section__content h1 {
    font-family: sans-serif;
    font-size: clamp(2.5em, 5vw, 3.5em);
    color: var(--color-primary-green);
    margin-bottom: var(--spacing-default);
    line-height: 1.1;
}

.cafe-section__content p {
    font-family: sans-serif;
    font-size: clamp(1em, 1.8vw, 1.1em);
    color: var(--color-secondary-orange);
    max-width: 500px;
}

/* --- ESTILOS PARA LA LISTA DE ICONOS --- */
.cafe-schedule {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-default);
    justify-content: center;
    flex: 2 1 450px; /* Ideal para desktop */
    margin: 0;
    padding: 0;
    list-style: none;
}

.cafe-schedule__item {
    min-width: 120px;
    flex-grow: 1;
}

.cafe-schedule__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-small);
    text-decoration: none;
    border-radius: 12px;
    padding: var(--spacing-small);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    height: 100%;
}

.cafe-schedule__link:focus-visible {
    outline: 3px solid var(--color-primary-green);
    outline-offset: 4px;
    box-shadow: 0 0 0 6px rgba(46, 139, 87, 0.3);
}

.cafe-schedule__link:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.12);
}

.cafe-schedule__icon-wrapper {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background-color 0.3s ease;
}

.cafe-schedule__icon-wrapper i {
    font-size: 48px;
    transition: color 0.3s ease;
}

.cafe-schedule__text {
    font-size: 1em;
    font-weight: 700;
    color: var(--color-secondary-orange);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-family: sans-serif;
}

/* Modificadores de color y tamaño */
.cafe-schedule__item--morning .cafe-schedule__icon-wrapper { background-color: var(--cafe-morning-bg); }
.cafe-schedule__item--morning i { color: var(--cafe-morning-icon); }

.cafe-schedule__item--noon .cafe-schedule__icon-wrapper { background-color: var(--cafe-noon-bg); }
.cafe-schedule__item--noon i { color: var(--cafe-noon-icon); font-size: 52px; }

.cafe-schedule__item--night .cafe-schedule__icon-wrapper { background-color: var(--cafe-night-bg); }
.cafe-schedule__item--night i { color: var(--cafe-night-icon); font-size: 46px; }

/* --- AJUSTES RESPONSIVOS --- */
@media (max-width: 900px) {
    .container {
        flex-direction: column;
        text-align: center;
    }

    /* 👇 LA CORRECCIÓN CLAVE ESTÁ AQUÍ 👇 */
    .cafe-section__content,
    .cafe-schedule {
        flex: initial; /* Resetea el grow, shrink y basis a sus valores por defecto */
        width: 100%;   /* Asegura que ocupen todo el ancho disponible */
    }
}

@media (max-width: 550px) {
    .cafe-section {
        padding: 48px var(--spacing-default);
    }
    .cafe-section__content h1 {
        font-size: clamp(2.2em, 8vw, 3.5em);
    }
    .cafe-schedule {
        flex-direction: column;
        align-items: center;
        gap: var(--spacing-large); 
    }
    .cafe-schedule__item {
        width: 100%;
        max-width: 280px; 
    }
    .cafe-schedule__icon-wrapper {
        width: 80px;
        height: 80px;
    }
    .cafe-schedule__item--morning i { font-size: 38px; }
    .cafe-schedule__item--noon i { font-size: 42px; }
    .cafe-schedule__item--night i { font-size: 36px; }
}



/* reserva */


.rtb-booking-form input {
    max-width: 100% !important;
}




/* single product */


.single.single-product ul.products li.product .woocommerce-loop-product__title,
.single.single-product ul.products li.product .price {
    color: #000000;
}


.single.single-product ul.products li.product .button {
    background-color: var(--fondo-principal);
    color: #ffffff;
}


.single_add_to_cart_button.button.alt {
    background-color: var(--fondo-principal);
}