/* PROPIEDADES POR DEFECTO */
* {
	margin: 0;
	padding: 0;
	border: 0;
	outline: none;
	text-decoration: none;
	/*list-style: none;*/
	box-sizing: border-box;
	transition: all ease 0.3s;
}

/* PROPIEDADES DE LA PAGINA */
html {
	scroll-behavior: smooth;
}
body {
	cursor: default;
	font-family: 'Poppins';
	font-size: 21px;
	background: url(../img/bg.jpg);
	background-attachment: fixed;
}
h1, h2, h3 {
	font-family: 'Courgette';
}
/*ENCABEZADO */
header {
	width: 100%;
	overflow: hidden;
	display: flex;
	justify-content: center;
	padding: 10px;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 5000;
	background: rgba(255, 255, 255, 0.5);
  transition: background 0.25s ease, box-shadow 0.25s ease;
}
header:hover {
	background: white;
}
header.scrolled {
  background: #ffffff;
  box-shadow: 0px 6px 16px rgba(0,0,0,0.12);
}
header nav {
	width: 100%;
	max-width: 1200px;
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	align-items: center;
}
a.logo {
	color: black;
	display: flex;
	align-items: center;
	font-family: 'Dancing Script';
	font-size: 32px;
	font-weight: 600;
}
a.logo:hover {
	color: #f49b95;
}
a.logo img {
	width: 50px;
	margin-right: 10px;
}
a.logo span {
	font-weight: 600;
	font-size: 20px;
	line-height: 18px;
}
.enlaces {
	display: flex;
	list-style: none;
}
.enlaces a {
	display: inline-block;
	padding: 10px 20px;
	color: black;
}
.enlaces a:hover {
	background: #f49b95;
	color: white;
	border-radius: 20px;
}
.enlaces a.active {
	background: #961035;
	color: white;
	border-radius: 20px;
}
/* Botón hamburguesa */
.nav-toggle {
	display: none;
	width: 48px;
	height: 44px;
	border-radius: 14px;
	border: 2px solid rgba(0,0,0,0.2);
	background: rgba(255,255,255,0.85);
	cursor: pointer;
	gap: 6px;
	padding: 10px;
	align-items: center;
	justify-content: center;
	flex-direction: column;
}
.nav-toggle span {
	display: block;
	width: 22px;
	height: 2px;
	background: #101010;
	border-radius: 2px;
}
/* PIE DE PAGINA */
footer {
	width: 100%;
	overflow: hidden;
	background: #101010;
	color: white;
	padding: 20px 10px;
}
footer .author {
	width: 100%;
	text-align: center;
}
/* CONTENEDOR */
.container {
	width: 100%;
	/*overflow: hidden;*/
	max-width: 1200px;
	margin: auto;
	padding: 0 30px;
}
/* SECCIONES */
.section {
	width: 100%;
	/*overflow: hidden;*/
	position: relative;
	margin: 30px auto;
}
h1.titulo {
	margin-bottom: 0.75em;
	text-align: center;
}
p.intro {
	text-align: center;
	margin-bottom: 1.5em;
	font-size: 24px;
}
p.footer, p.note {
	font-size: 24px;
	text-align: center;
	margin-top: 1em;
	margin-bottom: 2em;
}
/* HERO */
.hero {
	width: 100%;
	overflow: hidden;
	position: relative;
	height: 100vh;
}
.hero-slider {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.hero-track {
	height: 100%;
	display: flex;
	will-change: transform;
	transition: transform 0.8s ease;
}
.hero-slide {
	min-width: 100%;
	height: 100%;
	background-size: cover;
	background-position: center;
}
.hero .overlay {
	width: 100%;
	height: 100%;
	display: flex;
	flex-flow: column wrap;
	justify-content: center;
	align-items: center;
	background: rgba(255, 255, 255, 0.5);
	position: relative;
	z-index: 2;
}
.hero .overlay a {
	display: inline-block;
	color: black;
	border: 2px solid black;
	border-radius: 20px;
	padding: 10px 20px;
}
.hero .overlay a:hover {
	border: 2px solid #FCDEE5;
	background: #FCDEE5;
	color: white;
}
.hero .overlay img {
	max-width: 500px;
	transition: linear 0.25s;
}
.hero .overlay img:hover {
	transform: scale(1.5);
}
.hero .overlay h2, .hero .overlay h1 {
	margin-bottom: 0.5em;
}
.hero .overlay h1 {
	font-size: 60px;
}
.hero .overlay h2 {
	font-size: 64px;
	font-family: 'Dancing Script';
	color: white;
	text-shadow: 0px 3px 5px #101010;
}
/* NOSOTROS */
.nosotros {
	display: flex;
	flex-flow: row wrap;
}
.nosotros .texto, .nosotros .thumb, .nosotros .video-wrap {
	width: 50%;
}
.nosotros .texto {
	padding: 20px;
}
.nosotros .texto p {
	text-align: justify;
}
.nosotros .thumb {
	border-radius: 25px;
	overflow: hidden;
}
.nosotros .thumb img {
	width: 100%;
	transition: linear 0.5s;
}
.nosotros .thumb:hover img {
	transform: scale(1.5);
	transform-origin: center;
}
.video-wrap video {
	width: 100%;
	border-radius: 15px;
	border: 2px solid rgba(0,0,0,0.2);
}
/* CATALOGO */
.catalogo {
	text-align: center;
}
.catalogo-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	justify-content: center;
	padding: 20px 0 10px;
}
.cat-card {
	width: 320px;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0px 3px 10px #ddd;
	display: block;
	color: black;
	background: white;
}
.cat-card:hover {
	transform: scale(1.03);
}
.cat-thumb {
	width: 100%;
	height: 320px;
	background-size: cover;
	background-position: center;
}
.cat-card span {
	display: block;
	padding: 14px 12px;
	font-weight: 600;
	text-align: center;
}
.catalogo .button {
	padding: 10px;
	color: black;
	border: solid 3px black;
	border-radius: 20px;
	text-align: center;
}
/* MENÚ */
.menu-acc {
	font-size: 18px;
}
.acc-item {
	border: 2px solid rgba(0,0,0,0.12);
	border-radius: 16px;
	background: rgba(255,255,255,0.92);
	overflow: hidden;
	margin-bottom: 12px;
}
.acc-title {
	list-style: none;
	cursor: pointer;
	padding: 14px 16px;
	font-weight: 700;
	background: rgba(190, 192, 146, 0.35); /* vibra verde suave */
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.acc-title::-webkit-details-marker {display: none;}
.acc-title::after {
	content: "＋";
	font-size: 18px;
	opacity: 0.8;
}
.acc-item[open] .acc-title::after {
	content: "－";
}
.acc-body {
	padding: 12px 16px 16px;
}
.acc-list {
	list-style: none;
	padding-left: 0;
	margin: 0;
}
.acc-list li {
	padding: 9px 0;
	border-bottom: 1px solid #eee;
}
.acc-list li:last-child {
	border-bottom: none;
}
.menu .card-holder {
	width: 100%;
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	padding: 50px 0;
}
.menu .card-holder .card-item {
	text-align: center;
	width: 300px;
	box-shadow: 0px 3px 5px #909090;
	padding: 20px;
	border-radius: 10px;
	margin-bottom: 1em;
	transform-origin: center;
	background: white;
}
.menu .card-holder .card-item:hover {
	transform: scale(1.05) translateY(-10px);
}
.menu .card-holder .card-item span {
	font-size: 60px;
}
.menu .card-holder .card-item h1 {
	font-size: 28px;
}
/* SERVICIOS */
.servicios .card-holder {
	display: flex;
	flex-wrap: wrap;
	gap: 18px;
	justify-content: space-evenly;
}
.servicios .card-holder .card-item {
	width: 260px;
	background: rgba(255,255,255,0.92);
	border: 2px solid rgba(0,0,0,0.12);
	border-radius: 18px;
	padding: 18px 16px;
	text-align: center;
	box-shadow: 0px 6px 14px rgba(0,0,0,0.08);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.servicios .card-holder .card-item:hover {
	transform: translateY(-6px);
	box-shadow: 0px 10px 22px rgba(0,0,0,0.15);
}
.servicios .card-holder .card-item span {
	display: block;
	font-size: 40px;
	margin-bottom: 10px;
}
.servicios .card-holder .card-item h1 {
	font-size: 22px;
	margin-bottom: 8px;
}
.servicios .card-holder .card-item p {
	font-size: 16px;
	color: #606060;
}
/* PROMOCIONES */
.promo {
	background: #bec092;
	border-radius: 20px;
	display: flex;
	flex-flow: column wrap;
	align-items: center;
	text-align: center;
	padding: 50px 15px;
}
.promo p {
	margin-bottom: 1em;
}
.promo a {
	display: inline-block;
	background: black;
	color: white;
	padding: 10px 20px;
	border-radius: 10px;
}
.promo a:hover {
	transform: scale(1.1);
}
/* SUCURSALES */
.suc-tabs {
	display: flex;
	gap: 10px;
	justify-content: center;
	flex-wrap: wrap;
	margin-bottom: 20px;
}
.suc-tabs .tab {
	padding: 12px 18px;
	border-radius: 20px;
	border: 2px solid black;
	background: white;
	cursor: pointer;
	font-family: 'Poppins';
	font-size: 16px;
	font-weight: 600;
}
.suc-tabs .tab:hover {
	background: #FCDEE5;
	border-color: #FCDEE5;
	color: white;
}
.suc-tabs .tab.active {
	background: black;
	color: white;
}
.suc-panel {
	display: none;
	border-radius: 20px;
	padding: 20px;
	box-shadow: 0px 6px 12px #e0e0e0;
	background: rgba(255,255,255,0.8);
}
.suc-panel.active {
	display: block;
}
.suc-grid {
	display: flex;
	gap: 20px;
	align-items: stretch;
	text-align: left;
}
.suc-foto {
	width: 45%;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0px 6px 12px #ddd;
}
.suc-foto img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.suc-info {
	width: 55%;
	padding: 10px 5px;
}.suc-info h1 {
	font-family: 'Courgette';
	font-size: 34px;
	margin-bottom: 0.4em;
}
.suc-info .addr {
	font-size: 18px;
	margin-bottom: 1em;
}
.suc-datos p {
	margin-bottom: 0.5em;
	font-size: 18px;
}
.suc-actions {
	margin-top: 18px;
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.btn-dark, .btn-pink, .btn-outline {
	display: inline-block;
	padding: 12px 16px;
	border-radius: 15px;
	font-size: 16px;
	font-weight: 600;
}
.btn-dark {
	background: black;
	color: white;
}
.btn-pink {
	background: #FCDEE5;
	color: white;
}
.btn-outline {
	border: 2px solid black;
	color: black;
}
.btn-outline:hover {
	background: black;
	color: white;
}
/* PREGUNTAS FRECUENTES */
.faq {
	text-align: center;
	/*border: 3px solid black;*/
	border-radius: 10px;
	padding: 40px 0;
}
.preguntas {
	display: block;
	width: 100%;
	text-align: justify;
	list-style-type: none;
}
.preguntas > li {
	width: 100%;
	padding: 25px 10px;
	border-radius: 15px;
	box-shadow: 0px 3px 10px #eee;
	font-weight: 500;
	font-size: 24px;
	margin-bottom: 1em;
	cursor: pointer;
	background: white;
}
.preguntas > li:hover {
	background: rgba(0, 0, 0, 0.8);
	color: white;
}
.preguntas li ul {
	padding: 20px 30px;
	font-size: 20px;
	font-weight: 400;
	list-style: none;
}
/* CONTACTO */
.contacto {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
}
.contacto .texto, .contacto .formulario {
	width: 50%;
}
.contacto .texto {
	display: block;
}
.contacto .texto p {
	margin-bottom: 1em;
}
.contacto .formulario {
	padding: 40px 0;
	background: white;
}
.formulario form {
	width: 100%;
	display: block;
	padding: 15px 20px;
	border: 3px solid black;
	border-radius: 10px;
	box-shadow: 0px 8px 10px #aaa;
}
.formulario form .title {
	color: #606060;
	font-family: 'Courgette';
	font-weight: 500;
	font-size: 16px;
}
.formulario form input, .formulario form label, .formulario form select, .formulario form button, .formulario form textarea {
	display: block;
	width: 100%;
	margin-bottom: 10px;
	padding: 20px 10px;
	background: none;
	border: 1px solid black;
	border-radius: 5px;
	font-family: 'Poppins';
	font-size: 20px;
}
.formulario form button {
	background: #81865e;
	color: white;
	padding: 20px 10px;
	border-radius: 5px;
	border: none;
	cursor: pointer;
}
.formulario form button:hover {
	background: #475733;
	font-size: 22px;
}
.formulario form textarea {
	padding-top: 10px;
}
/* CUMPLEAÑOS */
.cumple {
	text-align: center;
	background: rgba(240, 208, 193, 0.8);
	border-radius: 20px;
	padding: 50px 15px;
	color: #000;
}
.cumple p {
	margin-bottom: 1em;
}
.cumple .button {
	padding: 10px 20px;
	color: white;
	background: black;
	border-radius: 10px;
}
.cumple img {
	width: 100%;
	max-width: 400px;
	margin-bottom: 1em;
	border-radius: 30px;
}
/* BOTONES FLOTANTES */
.social-float {
	position: fixed;
	right: 14px;
	bottom: 14px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	z-index: 9999;
}
.sf-btn {
	width: 48px;
	height: 48px;
	border-radius: 16px;
	display: grid;
	place-items: center;
	font-weight: 700;
	background: black;
	color: white;
	box-shadow: 0px 6px 18px rgba(0,0,0,0.25);
}
.sf-btn:hover {
	transform: scale(1.06);
	background: #FCDEE5;
}
/* LOADER */
#loading-page {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	background: rgba(0, 0, 0, 0.95);
	display: flex;
	justify-content: center;
	align-items: center;
	z-index: 99999;
}
.loader-content {
	text-align: center;
	color: white;
}
.loader-img {
	width: 240px;
	margin-bottom: 20px;
}
.loader-text {
	font-size: 14px;
	animation: parpadeo 1s infinite;
}
/* DISEÑO RESPONSIVO */
@media screen and (max-width: 1024px) {
	.enlaces {
		display: none;
	}
	.hero {
		background-attachment: scroll;
	}
	.hero .overlay {
		padding: 20px;
		text-align: center;
	}
	.hero .overlay img {
		width: 100%;
	}
	.hero .overlay h2 {
		font-size: 30px;
	}
	.hero .overlay h1 {
		font-size: 48px;
	}
	.nosotros .video-wrap, .nosotros .texto, .nosotros .thumb {
		width: 100%;
	}
	.nosotros .texto {
		text-align: center;
		order: 0;
	}
	.nosotros .video-wrap {
		order: 1;
	}
	.servicios .card-holder, .menu .card-holder {
		justify-content: center;
	}
	.faq .preguntas {
		text-align: center;
	}
	.contacto {
		text-align: center;
	}
	.contacto .texto, .contacto .formulario {
		width: 100%;
	}
	h1.titulo {
		text-align: center;
	}
	.menu-acc-intro {
		text-align: justify;
	}
	.card-holder {
		justify-content: center;
	}
	.otros-intro {
		text-align: center;
	}
	.preguntas > li {
		font-size: 18px;
	}
	.author {
		font-size: 14px;
	}
	.suc-grid {
		flex-direction: column;
		text-align: center;
	}
	.suc-foto, .suc-info {
		width: 100%;
	}
	.suc-actions {
		justify-content: center;
	}
	.nav-toggle {
		display: flex;
	}
	.enlaces {
		display: flex;
		position: fixed;
		inset: 0;
		background: rgba(255,255,255,0.97);
		flex-direction: column;
		justify-content: center;
		align-items: center;
		gap: 14px;
		transform: translateY(-100%);
		opacity: 0;
		pointer-events: none;
		transition: transform 0.35s ease, opacity 0.35s ease;
		z-index: 6000;
	}
	header.nav-open .enlaces {
		transform: translateY(0%);
		opacity: 1;
		pointer-events: auto;
	}
	.enlaces a {
		font-size: 22px;
		padding: 14px 22px;
		border-radius: 22px;
	}
}
/* ANIMACIONES */
@keyframes parpadeo {
	0%, 100% {opacity: 1;}
	50% {opacity: 0;}
}