/* ==========================================================================
   FOOTER - Pie de página corporativo
   ========================================================================== */

/* ----------------------------------------------------------------------------
   Base Styles (Desktop First)
   ---------------------------------------------------------------------------- */

#footer {
	position: relative;
	display: block;
	width: 100%;
	padding: 0 30px;
	background-color: #fafafa;
	z-index: 3;
}

/* Footer Main */
.footer-main {
	padding: 80px 0;
}

.footer-main .container {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 40px;
}

/* Layout principal (Flexbox) */
.footer-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	align-items: flex-start;
	justify-content: space-between;
}

/* Anchos de columnas */
.footer-logo {
	flex: 0 0 240px;
}

.footer-hotels,
.footer-more,
.footer-social {
	flex: 0 0 auto;
}

.footer-certifications {
	flex: 0 0 auto;
}

/* Columna doble (Mallorca + Menorca) */
.footer-hotels--double {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.footer-hotels__group {
	display: flex;
	flex-direction: column;
	margin-bottom: 16px;
}

/* ----------------------------------------------------------------------------
   Logo
   ---------------------------------------------------------------------------- */

.footer-logo a {
	display: block;
}

.footer-logo img {
	max-width: 400px;
	width: 100%;
	height: auto;
}

/* ----------------------------------------------------------------------------
   Columnas del Footer
   ---------------------------------------------------------------------------- */

.footer-column {
	display: flex;
	flex-direction: column;
}

.footer-column__title {
	font-family: "Urbanist", sans-serif;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: var(--color-base-blue);
	margin: 0 0 14px 0;
}

.footer-column__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.footer-column__list li a {
	font-size: 0.875rem;
	color: var(--color-text);
	text-decoration: none;
	transition: color 0.3s ease;
	line-height: 1.5;
}

.footer-column__list li a:hover {
	color: var(--color-base-blue);
}

/* ----------------------------------------------------------------------------
   Redes Sociales
   ---------------------------------------------------------------------------- */

.footer-column__list--social li a {
	display: flex;
	align-items: center;
	gap: 10px;
}

.footer-column__list--social li a img {
	width: 16px;
	height: 16px;
	opacity: 0.7;
	transition: opacity 0.3s ease;
}

.footer-column__list--social li a:hover img {
	opacity: 1;
}

/* ----------------------------------------------------------------------------
   Certificaciones
   ---------------------------------------------------------------------------- */

.footer-certifications img {
	max-width: 100%;
	height: auto;
	opacity: 0.8;
}

/* ----------------------------------------------------------------------------
   Footer Bottom
   ---------------------------------------------------------------------------- */

.footer-bottom {
	border-top: 1px solid rgba(0, 0, 0, 0.08);
	padding: 24px 0;
}

.footer-bottom .container {
	max-width: 1440px;
	margin: 0 auto;
	padding: 0 40px;
}

.footer-bottom__inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
}

.footer-bottom__links {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}

.footer-bottom__links a {
	font-size: 0.8125rem;
	color: var(--text-primary-solid-50);
	text-decoration: none;
	transition: color 0.3s ease;
}

.footer-bottom__links a:hover {
	color: var(--brand-blue);
}

.footer-bottom__links a.footer-cookie-control {
	position: relative;
	bottom: 3px;
}

.footer-bottom__powered {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: 0.8125rem;
	color: var(--text-primary-solid-50);
}

.footer-bottom__powered img {
	height: 13px;
	width: auto;
	position: relative;
	top: -1px;
}

/* ----------------------------------------------------------------------------
   Responsive: Small Desktop (992px - 1920px)
   ---------------------------------------------------------------------------- */

@media screen and (max-width: 1920px) {
	.footer-grid {
		gap: 32px;
	}

	.footer-logo {
		flex: 0 0 200px;
	}
}

/* ----------------------------------------------------------------------------
   Responsive: Small Desktop (992px - 1600px)
   ---------------------------------------------------------------------------- */

@media screen and (max-width: 1600px) {
	.footer-logo {
		flex: 0 0 110px;
	}
}

/* ----------------------------------------------------------------------------
   Responsive: Tablet (< 992px)
   ---------------------------------------------------------------------------- */

@media screen and (max-width: 991px) {
	.footer-main {
		padding: 60px 8px;
	}

	.footer-main .container {
		padding: 0 24px;
	}

	.footer-grid {
		gap: 40px 24px;
	}

	.footer-logo {
		flex: 0 0 100%;
		display: flex;
		justify-content: center;
		margin-bottom: 24px;
	}

	.footer-logo img {
		width: 180px;
	}

	.footer-hotels,
	.footer-more,
	.footer-social,
	.footer-certifications {
		flex: 1 1 calc(25% - 18px);
		min-width: 140px;
	}

	.footer-column__title {
		font-size: 0.75rem;
	}

	.footer-column__list li a {
		font-size: 0.8125rem;
	}

	.footer-bottom .container {
		padding: 0 24px;
	}

	.footer-bottom__inner {
		flex-direction: column;
		text-align: center;
		gap: 16px;
	}

	.footer-bottom__links {
		justify-content: center;
	}
}

/* ----------------------------------------------------------------------------
   Responsive: Mobile (< 576px)
   ---------------------------------------------------------------------------- */

@media screen and (max-width: 575px) {
	.footer-main {
		padding: 48px 15px;
	}

	.footer-main .container {
		padding: 0 16px;
	}

	.footer-grid {
		gap: 32px 16px;
	}

	.footer-logo {
		flex: 0 0 100%;
	}

	.footer-hotels,
	.footer-more,
	.footer-social {
		flex: 1 1 calc(50% - 8px);
		min-width: 140px;
	}

	/* Contenedor doble (Mallorca + Menorca): expandir a ancho completo y mostrar en 2 columnas */
	.footer-hotels--double {
		flex: 0 0 100%;
		flex-direction: row;
		flex-wrap: wrap;
		gap: 32px 16px;
	}

	.footer-hotels__group {
		flex: 1 1 calc(50% - 8px);
		min-width: 140px;
	}

	.footer-certifications {
		flex: 0 0 100%;
		text-align: center;
	}

	.footer-certifications img {
		max-width: 187px;
		margin: 0 auto;
	}

	.footer-bottom .container {
		padding: 0 16px;
	}

	.footer-bottom__links {
		gap: 12px 16px;
	}

	.footer-bottom__links a {
		font-size: 0.75rem;
	}

	.footer-bottom__powered {
		font-size: 0.75rem;
	}
}

/* ==========================================================================
   Legacy Footer Classes (footerSection / footerBottom)
   Heredado del diseño anterior. Se consolida aquí desde preload-styles.css
   ========================================================================== */



.footerSection {
	position: relative;
	padding-top: 128px;
	padding-bottom: 73px;
}

.footerSection [class*="ftr_"] span {
	display: block;
	margin: 0 0 16px 0;
	font-size: 0.875rem;
	color: var(--text-primary-solid-64);
	font-weight: 800;
	line-height: 1.5rem;
	text-transform: uppercase;
}

.footerSection .ftr_info .logo a {
	display: block;
}

.footerSection .ftr_info .logo img {
	max-width: 213px;
}

.footerSection .ftr_menu {
	display: flex;
	flex-wrap: wrap;
	gap: 50px;
}

.footerSection .ftr_menu .box {
	width: calc(50% - 25px);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.footerSection .ftr_menu .box p {
	display: block;
	margin-bottom: 15px;
	border-bottom: 1px solid #9B9893;
	font-size: 0.875rem;
	color: var(--title-black-color);
	font-weight: 400;
	line-height: 1.5rem;
}

.footerSection .ftr_menu .box a {
	position: relative;
	display: block;
	margin-bottom: 15px;
	font-size: 0.875rem;
	color: var(--title-black-color);
	font-weight: 400;
	line-height: 1.5rem;
	text-decoration: none;
	transition: .25s cubic-bezier(0.645, 0.045, 0.355, 1);
}

.footerSection .ftr_menu .box a:after {
	content: '';
	width: 100%;
	height: 1px;
	background: var(--title-black-color);
	position: absolute;
	bottom: 0;
	left: 0;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .40s cubic-bezier(0, 0, 0.57, 1);
}

.footerSection .ftr_menu .box a:hover:after {
	transform: scaleX(1);
	transform-origin: left;
}

.footerSection .ftr_menu .box a:last-child {
	margin-bottom: 0px;
}

.footerSection .ftr_menu ul {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	padding: 0;
	margin: 0;
	list-style-type: none;
}

.footerSection .ftr_menu ul li {
	font-size: 0.875rem;
	color: var(--title-black-color);
	font-weight: 400;
	line-height: 1.438rem;
}

.footerSection .ftr_menu ul li a {
	position: relative;
	display: block;
	color: var(--title-black-color);
	text-decoration: none;
	transition: .25s cubic-bezier(0.645, 0.045, 0.355, 1);
}

.footerSection .ftr_menu ul li a:after {
	content: '';
	width: 100%;
	height: 1px;
	background: var(--title-black-color);
	position: absolute;
	bottom: 0;
	left: 0;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .40s cubic-bezier(0, 0, 0.57, 1);
}

.footerSection .ftr_menu ul li a:hover:after {
	transform: scaleX(1);
	transform-origin: left;
}

.footerSection .ftr_links {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
}

.footerSection .ftr_links .box {
	/*width: calc(50% - 25px);*/
	width: auto;
}

.footerSection .ftr_links ul {
	display: flex;
	gap: 8px;
	padding: 0;
	margin: 0;
	list-style-type: none;
	flex-direction: column;
}

.footerSection .ftr_links ul li {
	font-size: 0.875rem;
	color: var(--title-black-color);
	font-weight: 400;
	line-height: 1.438rem;
}

.footerSection .ftr_links ul li a {
	position: relative;
	display: block;
	color: var(--title-black-color);
	text-decoration: none;
	transition: .25s cubic-bezier(0.645, 0.045, 0.355, 1);
	transform: scaleX(1);
	display: inline-flex;
	gap: 8px;
	align-items: center;
	font-size: 0.875rem;
	color: var(--title-black-color);
	font-weight: 400;
	line-height: 1.5rem;
}

.footerSection .ftr_links ul li img {
	width: 24px;
	height: 24px;
	object-fit: contain;
	filter: invert(47%) sepia(10%) saturate(232%) hue-rotate(357deg) brightness(95%) contrast(91%);
}

.footerSection .ftr_links ul li a:hover img {
	opacity: 0.7;
	transition: .25s cubic-bezier(0.645, 0.045, 0.355, 1);
}

.footerBottom {
	position: relative;
	display: flex;
	justify-content: space-between;
	align-items: center;
	grid-gap: 32px;
	padding: 32px 0;
	border-top: 1px solid rgb(115 98 73 / 8%);
}

.footerBottom .copy_link {
	display: flex;
	grid-gap: 16px;
	font-size: 0.875rem;
	color: var(--text-primary-solid-64);
	font-weight: 400;
	line-height: 1.5rem;
}

.footerBottom .copy_link>a {
	position: relative;
	display: block;
	color: var(--text-primary-solid-64);
	text-decoration: none;
	transition: .25s cubic-bezier(0.645, 0.045, 0.355, 1);
}

.footerBottom .copy_link>a:after {
	content: '';
	width: 100%;
	height: 1px;
	background: var(--text-primary-solid-64);
	position: absolute;
	bottom: 0;
	left: 0;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform .40s cubic-bezier(0, 0, 0.57, 1);
}

.footerBottom .copy_link>a:hover:after {
	transform: scaleX(1);
	transform-origin: left;
}

/* ----------------------------------------------------------------------------
   Legacy Responsive: Small Desktop (992px - 1180px)
   ---------------------------------------------------------------------------- */

@media only screen and (min-width: 992px) and (max-width: 1180px) {
#footer 									{ padding-left: 0; padding-right: 0; margin-bottom: 60px; }
.footerSection								{ padding: 80px 15px 50px 15px; }
.footerSection .row							{ margin-right: -15px; margin-left: -15px; }
.footerSection [class*="ftr_"]				{ padding: 0 15px; padding-top: 0px; padding-bottom: 30px; }
.footerSection [class*="ftr_"]:after		{ width: 100%; height: 0; border-right: none; border-bottom: 1px solid rgb(180, 180, 180, 0.2); top: auto; bottom: 0; }
.footerSection [class*="ftr_"] h3			{   letter-spacing: 0.1em; }
.footerSection .ftr_info .logo				{ text-align:center; }
.footerSection .ftr_menu					{ display: flex; flex-wrap: nowrap; gap: 30px; }
.footerSection .ftr_menu .box				{ width: calc(100% - 0px); }
.footerSection .ftr_links 					{ gap: 30px; flex-wrap: initial; }
.footerBottom								{ flex-direction: column; grid-gap: 32px; padding: 30px 15px; }
.footerBottom .copy_link 					{ flex-wrap: wrap; justify-content: center; }
}

/* ----------------------------------------------------------------------------
   Legacy Responsive: Tablet (768px - 991px)
   ---------------------------------------------------------------------------- */

@media only screen and (min-width: 768px) and (max-width: 991px) {
#footer 									{ padding-left: 0; padding-right: 0; margin-bottom: 60px; }
.footerSection								{ padding: 80px 15px 50px 15px; }
.footerSection .row							{ margin-right: -15px; margin-left: -15px; }
.footerSection [class*="ftr_"]				{ padding: 0 15px; padding-top: 0px; padding-bottom: 30px; }
.footerSection [class*="ftr_"]:after		{ width: 100%; height: 0; border-right: none; border-bottom: 1px solid rgb(180, 180, 180, 0.2); top: auto; bottom: 0; }
.footerSection [class*="ftr_"] h3			{   letter-spacing: 0.1em; }
.footerSection .ftr_info .logo				{ text-align:center; }
.footerSection .ftr_menu					{ display: flex; flex-wrap: nowrap; gap: 30px; }
.footerSection .ftr_menu .box				{ width: calc(100% - 0px); }
.footerSection .ftr_links 					{ width: 100%; justify-content: flex-start; gap: 30px; flex-wrap: initial; }
.footerSection .ftr_links .box 				{ width: 50% !important; }
.footerBottom								{ flex-direction: column; grid-gap: 32px; padding: 30px 15px; }
.footerBottom .copy_link 					{ flex-wrap: wrap; justify-content: center; }
}

/* ----------------------------------------------------------------------------
   Legacy Responsive: Mobile (max-width: 767px)
   ---------------------------------------------------------------------------- */

@media only screen and (max-width: 767px) {
#footer 									{ padding-left: 0; padding-right: 0; margin-bottom: 60px; }
.footerSection								{ padding: 80px 15px 0 15px; }
.footerSection .row							{ margin-right: -15px; margin-left: -15px; }
.footerSection [class*="ftr_"]				{ padding: 0 15px; padding-top: 0px; padding-bottom: 30px; }
.footerSection [class*="ftr_"]:after		{ width: 100%; height: 0; border-right: none; border-bottom: 1px solid rgb(180, 180, 180, 0.2); top: auto; bottom: 0; }
.footerSection [class*="ftr_"] h3			{   letter-spacing: 0.1em; }
.footerSection .ftr_info .logo				{ text-align:center; }
.footerSection .ftr_menu					{ display: flex; flex-direction: column; flex-wrap: wrap; gap: 30px; }
.footerSection .ftr_menu .box				{ width: calc(100% - 0px); }
.footerSection .ftr_links ul				{flex-direction: row; flex-wrap: wrap;}
.footerSection .ftr_links 					{ width: 100%; justify-content: flex-start; gap: 30px; flex-direction: column;}
.footerBottom								{ flex-direction: column; grid-gap: 32px; padding: 20px 15px; }
.footerBottom .copy_link 					{ flex-wrap: wrap; justify-content: center; }
}
