
/*loader page*/
#preloader{
   position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #000;
    z-index: 1000;
}

#loader{
    width: 100px;
    height: 100px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin: -50px 0 0 -50px;
    background: url("../img/d.gif") no-repeat center 0;

    
}

input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
    }
input[type=number] { -moz-appearance:textfield; }

/*Loading ajax*/
#indicador{	
    position: fixed;
    top: 0;
    z-index: 100;
    width: 100%;
    height:100%;
    display: none;
    background: rgba(0,0,0,0.6);
  }
  .cv-spinner {
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;  
  }
  .spinner {
    width: 40px;
    height: 40px;
    border: 4px #ddd solid;
    border-top: 4px #2e93e6 solid;
    border-radius: 50%;
    animation: sp-anime 0.8s infinite linear;
  }
  @keyframes sp-anime {
    100% { 
      transform: rotate(360deg); 
    }
  }
  .is-hide{
    display:none;
  }

  .abs-center {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
  }
/* Nuevo */


#map{
  height: 50vh;
  margin-bottom: 10px;
  display: none;
}

#locationList .card{
  padding: 10px;
}

#toast-container{
top: 50%;
bottom: unset;
}
.toast{
background-color: rgba(0,0,0,.8);
}
.btn i{
font-size: 1rem;
margin-right: 2px;
}

@media only screen and (min-width: 768px){
.container{
  width: 80%;
    max-width: 800px;
}
}


/******* Modales *******/

/*-------define root colors---------*/
:root {
  --color-facebook: #3b5998;
  --color-google: #ea4335;
  --color-twitter: #1da1f2;

  --style-1-color: #009688;
  --style-2-color: #009688;
  --style-3-color: #009688;
}




/*-------------------------------------------------
* Modal Style 2 CSS start
*-----------------------------------------------*/

.modal-style-2 .modal-login {
  /*width: 350px;*/
  width: 95%;
}

.modal-style-2 .modal-login a{
  text-decoration: none !important;
}

.modal-style-2 .modal-login .modal-content {
  padding: 20px;
  border-radius: 5px;
  border: none;
}

.modal-style-2 .modal-login .modal-header {
  border-bottom: none;
  position: relative;
  justify-content: center;
}

.modal-style-2 .modal-login .close {
  position: absolute;
  top: -10px;
  right: -10px;
}
.modal-style-2  .close:focus, .modal-style-2 .close:active {
 outline: none !important;
 box-shadow: none;
}
.modal-style-2 .modal-login h4 {
  color: var(--style-2-color);
  text-align: center;
  font-size: 18px;
  margin-top: 0;
  border-bottom: 0;
  text-transform: uppercase;
  line-height: 1;
  letter-spacing: 3px;
  font-weight: bold;
}

.modal-style-2 .modal-login .modal-content {
  color: #999;
  margin-bottom: 15px;
  background: #fff;
  box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
  padding: 25px;
}

.modal-style-2 .modal-login .form-group {
  margin-bottom: 20px;
}

.modal-style-2 .modal-login label {
  font-weight: normal;
  font-size: 13px;
}

.modal-style-2 .modal-login .modal-body {
  padding: 0;
}

.modal-style-2 .modal-login .form-control {
  min-height: 38px;
  padding-left: 5px;
  box-shadow: none !important;
  border-width: 0 0 1px 0;
  border-radius: 0;
  font-size: 13px
}

.modal-style-2 .modal-login .form-control:focus {
  border-color: #ccc;
}

.modal-style-2 .modal-login .input-group-addon {
  max-width: 42px;
  text-align: center;
  background: none;
  border-width: 0 0 1px 0;
  padding-left: 5px;
  border-radius: 0;
  margin-right: 10px;
  padding-top: 15px;
}

.modal-style-2 .modal-login .btn {
  font-size: 15px;
  font-weight: bold;
  background: var(--style-2-color);
  border-radius: 25px;
  border: none;
  min-width: 140px;
  padding: 10px;
  outline: none !important;
}

.modal-style-2 .modal-login .btn:hover,
.modal-style-2 .modal-login .btn:focus {
  background: var(--style-2-color);
}
.modal-style-2  input:-internal-autofill-selected {
  background-color: transparent !important;
}
.modal-style-2 .modal-login .hint-text {
  text-align: center;
  padding-top: 5px;
  font-size: 13px;
}

.modal-style-2 .modal-login .modal-footer {
  color: #999;
  border-color: #dee4e7;
  text-align: center;
  margin: 0 -25px -25px;
  font-size: 13px;
  justify-content: center;
}

.modal-style-2 .modal-login a {
  color: #fff;
  text-decoration: underline;
}

.modal-style-2 .modal-login a:hover {
  text-decoration: none;
}

.modal-style-2 .modal-login a {
  color: var(--style-2-color);
  text-decoration: none;
}

.modal-style-2 .modal-login a:hover {
  text-decoration: underline;
}

.modal-style-2 .modal-login .fa {
  font-size: 16px;
}


.dark.modal-style-2 .modal-content{
  background: #0b0b1f !important;
  color: #fff!important;
}
.dark.modal-style-2 .close, .modal-style-2.dark .modal-login h4{
  color:#fff!important;
}
.dark.modal-style-2 .modal-login .form-control{
  background: transparent !important;
  color: #fff;
  border-color: #777;
}
.dark.modal-style-2 .modal-login .input-group-addon{
  color:#9E9E9E;
}
.dark.modal-style-2 .modal-login .modal-footer{
  border: none;
}
.dark.modal-style-2 .modal-login .btn{
  background: #70807e;
}
.dark .text-danger{
  color: #777!important;
}

@media only screen and (max-width: 360px) {
  .modal-style-2 .modal-login {width: 100%; margin:5px;}
  .modal-style-2 .modal-login form{width: 100%;}
}



/*------extra css----------*/

.main-container{
  width:1140px;
  margin: 0 auto;
}
.text-12{
  font-size: 12px;
}

.button-card {
  margin: 0 auto;
  box-shadow: 1px 2px 5px 2px #d1d1d1;
  padding: 20px;
  border-radius: 5px;
}
.button-card img {
  border: 1px solid #f1f1f1;
  border-radius: 5px;
  max-height: 350px;
  position: relative;
}

.btn-theme{
  width: 100px;
  height: 35px;
  padding: 3px;
  border-radius: 26px;
}

@media only screen and (max-width: 1140px) {
  .main-container{ width: 100%; margin: 0 15px;}
}

@media only screen and (max-width: 480px) {
  .button-card img {width: 100%; height: auto;}
}

@media (max-width: 991.98px){
  #frmPedidoClienteWrapper{ display:none; }
  #frmPedidoClienteWrapper.is-open{ display:block; }
}
/* Desktop: siempre visible */
@media (min-width: 992px){
  #frmPedidoClienteWrapper{ display:block; }
}


  /* Tenue cuando el select está en placeholder */
  select#cboTipoDocumentoFac.placeholder { color:#6c757d; } /* Bootstrap muted */
  /* Restaura color normal si no es placeholder */
  select#cboTipoDocumentoFac:not(.placeholder) { color:#212529; }

  select#cboTipoDocumentoFac.placeholder,
  select#cbotipoentrega.placeholder { color:#6c757d; }  /* gris tenue */
  select#cboTipoDocumentoFac:not(.placeholder),
  select#cbotipoentrega:not(.placeholder) { color:#212529; }



  /* ===== Selector de locales (index.php cuando $idlocal==0) ===== */

.bg-dark-azul { background-color: #2D3E50 !important; }
.text-light-75 { color: rgba(255,255,255,.75); }

/* Evita saltos en móviles (barra dinámica) */
.min-vh-100-smooth { min-height: 100svh; }

/* Tarjeta */
.card-local {
  border-radius: 10px;
  box-shadow: 0 6px 18px rgba(0,0,0,.25);
  transform: translateZ(0);
  outline: none;
}
.card-local:focus { box-shadow: 0 0 0 3px rgba(255,255,255,.35), 0 6px 18px rgba(0,0,0,.25); }
.card-local:hover .card-local__img { transform: scale(1.04); }

/* Imagen a full */
.card-local__img {
  width: 100%;
  height: 100%;
  max-height: 60vh; /* evita tarjetas demasiado altas en desktop */
  object-fit: cover;
  display: block;
  transition: transform .35s ease;
}

/* Overlay con degradado (mejor legibilidad del texto) */
.card-local__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,.55) 10%, rgba(0,0,0,.25) 50%, rgba(0,0,0,0) 100%);
  pointer-events: none;
}

/* Contenido sobre la imagen */
.card-local__body {
  position: absolute; inset: 0;
  padding: 16px;
  color: #fff;
}
.card-local__title {
  color: #fff; 
  text-shadow: 0 1px 2px rgba(0,0,0,.35);
}
.card-local__desc {
  color: rgba(255,255,255,.9);
  font-size: 0.95rem;
  line-height: 1.35;
  max-width: 90%;
}

/* Afinar botón */
.card-local .btn {
  border-radius: 999px;
  padding: 6px 12px;
  font-weight: 600;
}

/* Gaps verticales coherentes cuando hay pocas tarjetas */
.selector-locales .row { margin-top: auto; margin-bottom: auto; }

/* Pequeños ajustes responsivos */
@media (max-width: 575.98px) {
  .card-local__img { max-height: 45vh; }
}

/* ===== Ajustes para pegar la franja y mantener el mismo fondo ===== */



/* En algunos themes, estas clases dejan margen inferior grande */
.section-default .woo_product_grid,
.section-default .woo_product_caption,
.section-default .woo_title{
  margin-bottom:0 !important;
}

/* Franja inferior con el MISMO color y sin separación arriba */
.promo-app-android{
  background-color:#2D3E50;    /* mismo verde-azulado */
  margin-top:0 !important;      /* clave */
  margin-bottom:0 !important;
  padding:10px 8px;             /* compacto */
  width:100%;
}

.promo-app-android .promo-app-link{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  color:#fff;
  font-weight:600;
  text-decoration:none;
  line-height:1.3;
}

.promo-app-android .promo-app-link:hover,
.promo-app-android .promo-app-link:focus{
  text-decoration:underline;
  outline:none;
}

.promo-app-android .fa{ font-size:1.15rem; }

/* ===== Layout para rellenar alto con la última sección ===== */



.section-default .woo_product_grid,
.section-default .woo_product_caption,
.section-default .woo_title{ margin-bottom:0 !important; }

/* Franja Google Play: angosta y fija (no crece) */
.promo-app-android{
  background-color:#2D3E50;
  margin:0 !important;
  padding:8px 8px;      /* franja delgada */
  width:100%;
  flex:0 0 auto;        /* NO crece */
}
.promo-app-android .promo-app-link{
  display:inline-flex; align-items:center; gap:.5rem;
  color:#fff; font-weight:600; text-decoration:none; line-height:1.3;
}
.promo-app-android .promo-app-link:hover,
.promo-app-android .promo-app-link:focus{ text-decoration:underline; }
.promo-app-android .fa{ font-size:1.1rem; }

/* Sección final con foot_redes: ocupa el alto sobrante */
.foot-redes-fill{
  background-color:#2D3E50;
  flex: 1 1 auto;                 /* crece para rellenar */
  display:flex; align-items:center; justify-content:center;
  padding:12px 8px; margin:0;
}

/* En mobile, que no fuerce alto extra */
@media (max-width: 991.98px){
  .foot-redes-fill{ flex:0 0 auto; }
}

.promo-app-android{
  background:#2D3E50;
  margin:0 !important;
  padding:8px 8px 12px;      /* un poco de espacio para separar el texto de la línea */
  width:100%;
  flex:0 0 auto;
  border-top: 1px dotted rgba(255,255,255,.9);
  border-bottom: 1px dotted rgba(255,255,255,.9); /* ← línea punteada blanca a todo lo ancho */
}


/* ===== Scope exclusivo para la pantalla $idlocal==0 ===== */
.landing-locales.selector-stack{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  /* sin background aquí */
}

/* Solo en la landing de locales */
.landing-locales .section-default{
  padding-top:.5rem !important;
  padding-bottom:.5rem !important;
  margin-bottom:0 !important;
  background-color:#2D3E50 !important;
}
.landing-locales .promo-app-android{
  background:#2D3E50;
  margin:0 !important;
  padding:8px 8px 12px;
  width:100%;
  flex:0 0 auto;
  border-bottom:1px dotted rgba(255,255,255,.9);
}
.landing-locales .promo-app-link{
  display:inline-flex; align-items:center; gap:.5rem;
  color:#fff; font-weight:600; text-decoration:none;
}
.landing-locales .promo-app-link:hover{ text-decoration:underline; }

.landing-locales .foot-fill{
  background:#2D3E50; color:#fff;
  flex:1 1 auto;
  display:flex; align-items:center; justify-content:center;
  padding:16px 0; margin:0 !important;
}
.landing-locales .foot-fill a{ color:#cfe6ff; text-decoration:none; }
.landing-locales .foot-fill a:hover{ text-decoration:underline; }

@media (max-width: 991.98px){
  .landing-locales .foot-fill{ flex:0 0 auto; }
}

/* ===== Checkout (scope seguro) ===== */
.checkout-page {
  background: #f6f8fb; /* gris muy claro para descansar la vista */
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
}

/* Paleta (ajusta si quieres) */
.checkout-page :root {
  --ck-bg: #ffffff;
  --ck-text: #1c2b36;
  --ck-muted: #6c7a86;
  --ck-accent: #f5a623;     /* tu naranja de la franja */
  --ck-primary: #2D3E50;    /* tu azul verdoso */
  --ck-border: #e8edf3;
}

/* Tarjeta neutra */
.checkout-page .ck-card {
  background: var(--ck-bg);
  border: 1px solid var(--ck-border);
  border-radius: .75rem;
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
  padding: 1rem;
}
@media (min-width: 992px){
  .checkout-page .ck-card { padding: 1.25rem; }
}

/* Títulos de sección */
.checkout-page .ck-title {
  display: flex; align-items: center; gap: .5rem;
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--ck-primary);
  text-transform: none;      /* evita el cansancio del UPPERCASE */
  margin-bottom: .75rem;
}
.checkout-page .ck-title .fa {
  color: var(--ck-accent);
  font-size: 1rem;
}

/* Subtítulo/ayuda */
.checkout-page .ck-help {
  color: var(--ck-muted);
  font-size: .9rem;
  margin-bottom: .5rem;
}

/* Separadores sutiles */
.checkout-page .ck-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--ck-border), transparent);
  margin: .75rem 0 1rem;
}

/* Inputs más amables */
.checkout-page .form-control {
  border-radius: .5rem;
  border-color: #dfe6ee;
}
.checkout-page .form-control:focus {
  border-color: var(--ck-primary);
  box-shadow: 0 0 0 .15rem rgba(45,62,80,.15);
}

/* Botones */
.checkout-page .btn-success,
.checkout-page .btn-primary {
  border-radius: .6rem;
  padding: .6rem 1rem;
  font-weight: 700;
}

/* Resumen sticky en desktop */
@media (min-width: 992px){
  .checkout-page .ck-sticky {
    position: sticky;
    top: 84px; /* bajo tu header */
  }
}

/* Ítems del resumen */
.checkout-page #resumen-pedido .list-group-item {
  border-color: var(--ck-border);
}
.checkout-page #resumen-pedido li.p-item {
  background: #fff;
}
.checkout-page #resumen-pedido .p-cant { font-weight: 700; color: #e74c3c; }
.checkout-page #resumen-pedido .p-total { font-weight: 700; }

/* Bloques y respiración */
.checkout-page .mb-block { margin-bottom: 1rem; }
@media (min-width: 992px){ .checkout-page .mb-block { margin-bottom: 1.25rem; } }

/* Encabezados del checkout (derecha) */
.checkout-page .ck-right-title {
  margin-bottom: .5rem; font-weight: 700; color: var(--ck-primary);
}

/* Placeholders de selects en gris tenue */
.checkout-page select.placeholder { color:#6c757d; }
.checkout-page select:not(.placeholder){ color:#212529; }

/* Centrado vertical seguro del nav de cabecera */
.header_nav .row { 
  align-items: center; 
}

/* --- Navbar: centrado vertical seguro --- */
.header_nav .row { align-items: center; }

/* --- Categorías como overlay SOLO en desktop --- */
@media (min-width: 992px){
  .header_nav .shopby_categories{ position: relative; }

  /* el contenedor del collapse cae como capa flotante */
  #myCategories{
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 260px;         /* ajusta si quieres más ancho */
    max-width: 320px;
    max-height: 70vh;
    overflow: auto;

    margin-top: 8px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 14px 34px rgba(0,0,0,.18);
    z-index: 2600;            /* por encima del slider y del contenido */
    border: 1px solid rgba(0,0,0,.06);
  }

  /* evitamos que el collapse deje 'hueco' en el flujo */
  .header_nav #myCategories.collapse      { display: none; }
  .header_nav #myCategories.collapse.show { display: block; }

  /* estilizar la lista de categorías dentro del overlay */
  #cats_menu ul{
    list-style: none;
    margin: 0;
    padding: 6px 0;
  }
  #cats_menu li a{
    display: block;
    padding: 10px 14px;
    color: #1c2b36;
    text-decoration: none;
    font-weight: 600;
    line-height: 1.15;
  }
  #cats_menu li a:hover{
    background: #f6f9fc;
  }
}

/* Mantén ambas columnas en la misma línea y centradas */
.header_nav .row{
  align-items: center;     /* ya lo tenías */
  flex-wrap: nowrap;       /* clave: no permitir salto a la siguiente línea */
}

/* Permitir que la columna del menú pueda encogerse dentro del flex */
.header_nav .col-lg-10,
.header_nav .navigation{
  min-width: 0;            /* sin esto, el menú “empuja” y rompe la fila */
}

/* Que el contenedor interno del menú use el ancho disponible sin forzar salto */
.header_nav .nav-menus-wrapper{
  flex: 1 1 auto;
  min-width: 0;
}

/* Quita márgenes que puedan sumar alto y desalinear */
.header_nav .shopby_categories,
.header_nav #navigation{
  margin-bottom: 0;
}

/* (Opcional) si ese <hr> del menú horizontal existe, ocultarlo en desktop */
@media (min-width: 992px){
  .header_nav .nav-menu hr{ display:none; }
}

/* Evita que el header cubra el inicio de la sección al hacer scroll en móvil */
@media (max-width: 991.98px){
  #seccionEntrega { scroll-margin-top: 90px; }
}


#fabStack.fab-stack{
    position: fixed !important;
    right: 18px !important;
    bottom: 18px !important;
    left: auto;
    top: auto;
    z-index: 9999;
}


/* NUEVO*/
  /* Contenedor preferente para SSO Google */
  /* ===== Google SSO reutilizable ===== */
.sso-prefer{
    border: 2px solid rgba(26,115,232,.25);
    border-radius: .75rem;
    padding: .75rem;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(26,115,232,.08);
    position: relative;
}

.sso-badge{
    position: absolute;
    top: -0.8rem;
    left: 1rem;
    background: #fff;
    color: #1a73e8;
    font-weight: 600;
    font-size: .75rem;
    padding: 0 .4rem;
    border-radius: .25rem;
}

.sso-btn{
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 56px;
    width: 100%;
}

#googleSignInBtnContainer > div,
#googleSignInBtnContainerDrawer > div{
    width: 100% !important;
}

#googleSignInBtnContainer iframe,
#googleSignInBtnContainerDrawer iframe{
    width: 100% !important;
    pointer-events: auto !important;
}

.or-sep{
    display:flex;
    align-items:center;
    margin:.5rem 0 1rem;
}

.or-sep::before,
.or-sep::after{
    content:"";
    flex:1;
    border-top:1px dashed #ced4da;
}

.or-sep span{
    margin:0 .75rem;
    font-size:.8rem;
    color:#6c757d;
}

/* Drawer */
.drawer-auth-cta{
    padding-top: 10px;
}

.drawer-auth-title{
    font-size: 14px;
    font-weight: 700;
    color: #2D3E50;
    text-align: center;
    margin-bottom: 12px;
}

.drawer-footer{
    position: relative;
    z-index: 5;
}

.drawer-footer .sso-btn{
    min-height: 52px;
}

.drawer-pay-btn{
    max-width: 420px;
    margin: 0 auto;
    display: block;
}