:root {
	--random-rotation: 0deg;
	--grisclaro: #9fa2a4;
	--grismedio: #868A8C;
	--grisoscuro: #3f3f3f;
	--kavalight: #b29059;
	--kavabase: #977846;
	--kavadark: #735B35;
}
* {
  font-family: "Open Sans", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-display: auto;
}
html {
	scroll-behavior: smooth;
	position: relative;
	min-height: 100%;
    /* content-visibility: auto; */
}
body {
	min-height: 100vh;
	background-color: #000;
}
a {
	color: var(--kavabase);
	text-decoration: none;
}
a:hover {
	color: var(--kavadark);
}
a.a-w {
	color: #fff;
	text-decoration: none;	
}
a.a-w:hover {
	color: var(--grismedio);
}
h1 {
	color: #fff;
}
h2 {
    font-size: 2.2rem;
    color: var(--grismedio);
}
h3 {
	color: var(--kavabase);
}
h4 {
	color: var(--kavadark);
}
h5 {
	color: var(--kavalight);
}
p,
li {
	font-size: 1.12rem;
	color: var(--grisclaro);
}
p.p-g {
	color: var(--grisoscuro);	
}
p.p-w {
	color: #fff;	
}
.small, small {
	font-size: .8rem;
    color: var(--grismedio);
}
img {
	image-rendering: -moz-crisp-edges;
	image-rendering: -o-crisp-edges;
	image-rendering: -webkit-optimize-contrast;
	image-rendering: crisp-edges;
	-ms-interpolation-mode: nearest-neighbor;
}
hr {
    width: 90px;
    height: 6px;
    border: none;
    background-color: #c4011a;
    border-radius: 3px;
    margin: 0 auto 1.5rem auto;
	opacity: 100%;
}
.btn-close:focus {
    box-shadow: none !important;
}
/* -------------------------------------------------------------------------------- MENÚS --- */
.brand {
    font-size: 2.4rem;
    color: #fff;
    line-height: 100%;
    position: relative;
    top: 6px;
}
a.brand {
    color: #fff;
    transition: color .25s ease-in-out, background-color .25s ease-in-out, border-color .25s ease-in-out, text-shadow .25s ease-in-out;
    animation: glow 1s ease-in-out infinite alternate;
}
a.brand:hover {
    color: var(--grisoscuro);
    transition: color .25s ease-in-out, background-color .25s ease-in-out, border-color .25s ease-in-out, text-shadow .25s ease-in-out;
    animation: none;
    text-shadow: none;
}
@keyframes glow {
	from {
	text-shadow: 0 0 2px #000, 0 0 4px var(--white-glow), 0 0 6px var(--kavadark), 
				 0 0 8px var(--kavadark), 0 0 10px var(--kavadark);
	}
	to {
	text-shadow: 0 0 4px #000, 0 0 6px var(--kavabase), 0 0 8px var(--kavabase), 
				 0 0 10px var(--kavabase);
	}
}
.subbrand {
	font-size: 1.26rem;
	line-height: 100%;
    color: var(--kavabase);
}
.navbar-toggler {
    border: 1px solid var(--grisclaro);
    box-shadow: none;
}
.navbar-toggler:focus {
    box-shadow: none;
}
.navbar-custom {
    background-color: #000 !important;
    border-color: #000 !important;
}
.navbar-custom .navbar-brand,
.navbar-custom .nav-link {
    color: #ffffff !important;
}
.navbar-custom .nav-link:hover,
.navbar-custom .nav-link:focus {
    color: #cccccc !important;
}
.navbar-custom .nav-link.disabled {
    color: #6c757d !important;
}
.navbar-custom .dropdown-menu {
    background-color: #000 !important;
    border-color: var(--grisclaro) !important;
}
.navbar-custom .dropdown-item {
    color: var(--grisclaro) !important;
	line-height: 100%;
	padding-top: 0.6rem;
}
.navbar-custom .dropdown-item:hover,
.navbar-custom .dropdown-item:focus {
    color: #000 !important;
    background-color: #fff !important;
}
.nav-link, .dropdown-item {
	font-size: 1.2rem;
}
.dropdown-menu {
	padding: 0;
	border-radius: 0;
}
.dropdown-menu > li:not(:last-child) {
    border-bottom: var(--grisclaro) solid 1px;
}
.dropdown-toggle::after {
	font-size: 19.2px;
}
.nav-icon {
	position: relative;
}
.bagnum {
    font-size: 1rem;
    font-weight: bold;
    position: absolute;
    transform: translateX(-50%) translateY(-50%);
    left: 50%;
    top: 27px;
}
.breadcrumb-item.active {
	color: var(--grisclaro);
}
.breadcrumb-item+.breadcrumb-item::before {
	color: #fff;
	content: '>';
}
.share {
	font-size: 2rem;
}
/* -------------------------------------------------------------------------------- PRODUCTOS --- */
.evento {
	border: 1px solid var(--kavabase);
    padding: 1rem .5rem;
    margin: 0;
    border-radius: .5rem;
}
.evento p {
	color: #fff;
}
.card {
	height: 100%;
	border-radius: 0;
}
.card-img-top {
	background-color: #fff;
	border-radius: 0;
}
.card-body {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
.card-title {
	color: var(--kavabase);
}
.card-text {
	font-size: 1rem;
	color: #000;
}
.pin-container {
    position: absolute;
    top: -25px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
}
.pin-image {
    width: 74px;
    height: auto;
}
.btn-kava { 
    background-color: var(--kavabase);
    color: white;
    border: 1px solid transparent;
    border-radius: 0;
    transition: background-color 0.3s ease, color 0.3s ease;
}
.btn-kava:active,
.btn-kava:hover,
.btn-kava:focus {
    background-color: var(--kavadark) !important;
    color: #fff !important;
    border-color: var(--kavadark) !important;
    outline: none;
    box-shadow: none;
}
.btn-kava:visited {
    background-color: var(--kavabase);
    color: white;
}
.mobileHoverFix:hover,
.mobileHoverFix.hover {
 	background-color: var(--kavabase) !important;
}
.btn-kava:active .btn-text {
    position: relative;
    top: 2px;
}
#precio-detalle {
	font-size: 2rem;
	color: #fff;
	border-top: 1px dashed;
    border-bottom: 1px dashed;
    padding: 20px 0 10px 0;
    line-height: 100%;
	transition: background-color 0.250s ease;
}
.euro-detalle {
	font-size: 3rem;
	vertical-align: middle;
}
/* -------------------------------------------------------------------------------- COMPRA --- */
.euro-compra {
	font-size: 1.5rem;
	vertical-align: middle;
}
td {
	border-right: dashed 1px #00000040;
}
.minus, .plus {
    font-size: 1rem;
    font-weight: bold;
	cursor: pointer;
}
.txt-grisclaro {
	color: var(--grisclaro) !important;
}
.txt-rojo {
	color: var(--kavabase) !important;
}
.fly-plus {
    position: absolute;
    z-index: 1000;
    font-size: 30px;
    color: #fff;
}
.text-cupon {
    color: #fff !important;
	cursor: pointer;
}
.text-cupon > i {
	font-size: 1.5rem;
}
.al {
	color: var(--grismedio);
	font-size: .9rem;
}
.form-control.is-invalid,
.was-validated .form-control:invalid,
.form-select.is-invalid:not([multiple]):not([size]) {
    background-color: var(--kavalight) !important;
}
/* -------------------------------------------------------------------------------- OTROS --- */
.mb-6 {
    margin-bottom: 4rem !important;
}
.mt-6 {
    margin-top: 4rem !important;
}
.wow {
	color: var(--kavabase);
}
.bg-redbase {
	background-color: var(--kavabase) !important;
	color: #fff;
}
.bg-redbase > .btn-close {
	background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e");
}
.rot, .rotimg {
	transform: rotate(var(--random-rotation));
}
span.censored {
	color: #000;
	position: relative;
	display: inline-block;
	z-index: 1;
}
span.censored::before {
	content: '';
	position: absolute;
	width: 100%;
	height: 80%;
	background-color: #fff;
	transform: rotate(-1deg);
	z-index: -1;
}
.form-base .form-control, 
.form-base .input-group-text,
.form-base .input-group>.form-control,
.form-base .form-select {
    border-radius: 0;
}
.form-base .form-control:focus {
    border-color: none;
    box-shadow: none;
}
.form-b {
    position: relative;
}
.form-b .form-label,
.form-b .form-check-label {
	font-size: 1.12rem;
    color: #fff;
}
.form-b .form-check-input:checked {
    background-color: var(--kavabase);
    border-color: var(--kavabase);
}
.form-b .form-check-input:focus {
    box-shadow: none;
}
.form-check-input {
	cursor: pointer;
}
.alert {
	font-size: 1.12rem;
    position: fixed;
    top: 10%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 9999;
    display: inline-block;
    -webkit-box-shadow: 0px 0px 5px 1px rgba(0,0,0,0.1);
    -moz-box-shadow: 0px 0px 5px 1px rgba(0,0,0,0.1);
    box-shadow: 0px 0px 12px 4px rgb(0 0 0);
}
.shake {
    animation: shake-animation 2s ease infinite; /* Cambiado a 2s */
    transform-origin: 50% 50%;
}
@keyframes shake-animation {
    0% { transform:translate(0,0) }
    3.57143% { transform:translate(5px,0) }      /* Duplicado el porcentaje: 1.78571% * 2 */
    7.14286% { transform:translate(0,0) }         /* Duplicado el porcentaje: 3.57143% * 2 */
    10.71429% { transform:translate(5px,0) }      /* Duplicado el porcentaje: 5.35714% * 2 */
    14.28572% { transform:translate(0,0) }        /* Duplicado el porcentaje: 7.14286% * 2 */
    17.85714% { transform:translate(5px,0) }      /* Duplicado el porcentaje: 8.92857% * 2 */
    21.42858% { transform:translate(0,0) }        /* Duplicado el porcentaje: 10.71429% * 2 */
    100% { transform:translate(0,0) }
}

#backTop {
	width: 35px;
	height: 35px;
	padding: 10px;
	border-radius: 4px;
	text-indent: -9999px;
	cursor: pointer;
	z-index: 999999999;
	display: none;
	-webkit-box-sizing: content-box;
	box-sizing: content-box;
}
#backTop.black {
	background: url(../images/uparr-48-w.png) no-repeat center center rgba(0,0,0,0.3);
	border: 1px solid #ccc;
}
footer {
    content-visibility: auto;
	position: relative;
	bottom: 0;
	width: 100%;
	margin-top: 3rem !important;
}
footer a {
    color: var(--grismedio) !important;
}
footer a:hover {
    color: #000 !important;
}
footer p {
    color: #000;
}
footer .brand {
    color: var(--kavabase);
    font-size: 3rem;
    line-height: 100%;
}
.wave {
    animation: wave 5s linear;
    animation-iteration-count:infinite;
    fill: #fff;
}
#wave2 {
    animation-duration:7s;
    animation-direction: reverse;
    opacity:.6
}
#wave3 {
    animation-duration: 9s;
    opacity:.3;
}
@keyframes wave {
    to {transform: translateX(-100%);}
}
@keyframes moveRight {
	0% {
		left: -246px;
	}
	100% {
		left: calc(100% + 246px);
	}
}
/* -----------------------------------------------------------------------------------------------------------------  OTRAS  */
@media (min-width: 576px) { /* xs */

}
@media (min-width: 768px) { /* sm */
	.brand {
		font-size: 4rem;
	}
	.subbrand {
		font-size: 1.4rem;
		line-height: 100%;
	}
}
@media (min-width: 992px) { /* md */
	.navbar {
		padding-bottom: 0;
	}
	.dropdown-toggle::after {
		font-size: 19.2px;
	}
	.dropdown:hover>.dropdown-menu {
		display: block;
	}
	.dropdown>.dropdown-toggle:active {
		pointer-events: none;
	}
	.brand {
		font-size: 7rem;
		line-height: 80%
	}
	.subbrand {
		font-size: 1.8rem;
		line-height: 100%;
	}
	.bagnum {
		top: 25px;
	}
}
@media (min-width: 1200px) { /* lg */
	.brand {
		font-size: 7rem;
		line-height: 80%
	}
	.subbrand {
		font-size: 1.8rem;
		line-height: 100%;
	}
	.bagnum {
		top: 25px;
	}
} 
@media (min-width: 1400px) { /* xl */
}