/* Hoolistic Cookie Consent — estilos.
   Paleta del sitio: crema #F7F3EB · salmón #F28B82 · verde azulado #297373 · azul #395C73 · texto #525A57 */

:root {
	--hcc-bg: #F7F3EB;
	--hcc-accent: #F28B82;
	--hcc-primary: #297373;
	--hcc-primary-dark: #1F5A5A;
	--hcc-heading: #395C73;
	--hcc-text: #525A57;
	--hcc-border: rgba(41, 115, 115, 0.18);
	--hcc-on-primary: #ffffff;
	--hcc-shadow: rgba(57, 92, 115, 0.22);
	--hcc-serif: "Playfair Display", Georgia, "Times New Roman", serif;
	--hcc-sans: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--hcc-z: 100000;
}

/* --- Comunes ---
   Los selectores llevan #hcc-banner / #hcc-modal para ganar a los estilos globales
   de Elementor (Site Settings > Botones / Tipografía), que se aplican a button, h2, a, p. */
#hcc-banner .hcc-title,
#hcc-modal .hcc-title {
	font-family: var(--hcc-serif);
	font-weight: 700;
	color: var(--hcc-heading);
	font-size: 1.35rem;
	line-height: 1.25;
	margin: 0 0 .5rem;
	padding: 0;
	text-transform: none;
	letter-spacing: 0;
}
#hcc-banner .hcc-text,
#hcc-modal .hcc-text {
	font-family: var(--hcc-sans);
	color: var(--hcc-text);
	font-size: .95rem;
	line-height: 1.6;
	margin: 0 0 1rem;
	padding: 0;
}
#hcc-banner .hcc-link,
#hcc-modal .hcc-link,
.hcc-policy a:not(.hcc-btn) {
	color: var(--hcc-primary);
	text-decoration: underline;
	text-underline-offset: 2px;
}
#hcc-banner .hcc-link:hover,
#hcc-modal .hcc-link:hover,
.hcc-policy a:not(.hcc-btn):hover { color: var(--hcc-accent); }

#hcc-banner .hcc-actions,
#hcc-modal .hcc-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	align-items: center;
}
#hcc-banner .hcc-btn,
#hcc-modal .hcc-btn,
.hcc-policy .hcc-btn {
	display: inline-block;
	box-sizing: border-box;
	font-family: var(--hcc-sans);
	font-size: .95rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	padding: .8rem 1.25rem;
	margin: 0;
	border-radius: 999px;
	border: 2px solid var(--hcc-primary);
	box-shadow: none;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
	-webkit-appearance: none;
	appearance: none;
}
/* "Aceptar" y "Rechazar" comparten exactamente el mismo estilo: mismo tamaño y contraste. */
#hcc-banner .hcc-btn--solid,
#hcc-modal .hcc-btn--solid,
.hcc-policy .hcc-btn--solid {
	background: var(--hcc-primary);
	background-color: var(--hcc-primary);
	color: var(--hcc-on-primary);
}
/* Hover: la letra pasa al salmón de la cabecera. */
#hcc-banner .hcc-btn--solid:hover,
#hcc-banner .hcc-btn--solid:focus-visible,
#hcc-modal .hcc-btn--solid:hover,
#hcc-modal .hcc-btn--solid:focus-visible,
.hcc-policy .hcc-btn--solid:hover,
.hcc-policy .hcc-btn--solid:focus-visible {
	background: var(--hcc-primary-dark);
	background-color: var(--hcc-primary-dark);
	border-color: var(--hcc-primary-dark);
	color: var(--hcc-accent);
}
/* Si el acento no contrasta con el botón (p. ej. acento = principal), el hover mantiene el texto legible. */
#hcc-banner .hcc-btn--solid:hover,
#hcc-modal .hcc-btn--solid:hover {
	color: var(--hcc-hover-text, var(--hcc-accent));
}
#hcc-banner .hcc-btn--ghost,
#hcc-modal .hcc-btn--ghost {
	background: transparent;
	background-color: transparent;
	color: var(--hcc-primary);
}
#hcc-banner .hcc-btn--ghost:hover,
#hcc-banner .hcc-btn--ghost:focus-visible,
#hcc-modal .hcc-btn--ghost:hover,
#hcc-modal .hcc-btn--ghost:focus-visible {
	background: transparent;
	background-color: transparent;
	color: var(--hcc-accent);
	border-color: var(--hcc-accent);
}
#hcc-banner .hcc-btn:focus-visible,
#hcc-modal .hcc-btn:focus-visible,
#hcc-modal .hcc-switch:focus-visible,
#hcc-modal .hcc-modal__close:focus-visible {
	outline: 3px solid var(--hcc-accent);
	outline-offset: 2px;
}

/* --- Banner --- */
.hcc-banner {
	position: fixed;
	left: 1rem;
	right: 1rem;
	bottom: 1rem;
	z-index: var(--hcc-z);
	display: flex;
	justify-content: flex-start;
	pointer-events: none;
}
.hcc-banner[hidden] { display: none; }
#hcc-banner .hcc-banner__inner {
	pointer-events: auto;
	box-sizing: border-box;
	width: 100%;
	max-width: 480px;
	background: var(--hcc-bg);
	border-top: 5px solid var(--hcc-accent);
	border-radius: 14px;
	box-shadow: 0 12px 40px var(--hcc-shadow);
	padding: 1.35rem 1.5rem 1.5rem;
}
#hcc-banner.hcc-banner--bottom-right { justify-content: flex-end; }
#hcc-banner.hcc-banner--bottom-center { justify-content: center; }
#hcc-banner.hcc-banner--bottom-center .hcc-banner__inner { max-width: 1100px; }
@media (min-width: 900px) {
	#hcc-banner.hcc-banner--bottom-center .hcc-banner__inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .35rem 2rem; align-items: center; }
	#hcc-banner.hcc-banner--bottom-center .hcc-title { grid-column: 1; margin-bottom: 0; }
	#hcc-banner.hcc-banner--bottom-center .hcc-text { grid-column: 1; margin-bottom: 0; }
	#hcc-banner.hcc-banner--bottom-center .hcc-actions { grid-column: 2; grid-row: 1 / span 2; flex-wrap: nowrap; }
}
@media (max-width: 600px) {
	.hcc-banner { left: 0; right: 0; bottom: 0; }
	.hcc-banner__inner { max-width: none; border-radius: 14px 14px 0 0; padding: 1.1rem 1.1rem 1.25rem; }
	.hcc-banner .hcc-btn--solid { flex: 1 1 calc(50% - .3rem); text-align: center; }
	.hcc-banner .hcc-btn--ghost { flex: 1 1 100%; text-align: center; }
}

/* --- Panel de preferencias --- */
.hcc-modal {
	position: fixed;
	inset: 0;
	z-index: calc(var(--hcc-z) + 1);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}
.hcc-modal[hidden] { display: none; }
.hcc-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(57, 92, 115, 0.55);
}
#hcc-modal .hcc-modal__dialog {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	max-width: 640px;
	max-height: calc(100vh - 2rem);
	overflow-y: auto;
	background: var(--hcc-bg);
	border-top: 5px solid var(--hcc-accent);
	border-radius: 14px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
	padding: 1.75rem 1.75rem 1.5rem;
	outline: none;
}
#hcc-modal .hcc-modal__close {
	position: absolute;
	top: .75rem;
	right: .85rem;
	width: 2.2rem;
	height: 2.2rem;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--hcc-heading);
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
}
#hcc-modal .hcc-modal__close:hover { background: rgba(41, 115, 115, 0.1); color: var(--hcc-accent); }
.hcc-modal__foot { margin: 1rem 0 0; font-family: var(--hcc-sans); font-size: .9rem; }
html.hcc-modal-open { overflow: hidden; }

.hcc-cats {
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 0;
	border-top: 1px solid var(--hcc-border);
}
.hcc-cat {
	margin: 0;
	padding: 1rem 0;
	border-bottom: 1px solid var(--hcc-border);
}
.hcc-cat__head {
	display: flex;
	align-items: center;
	gap: .75rem;
}
#hcc-modal .hcc-cat__label {
	flex: 1;
	font-family: var(--hcc-serif);
	font-weight: 700;
	color: var(--hcc-heading);
	font-size: 1.05rem;
	margin: 0;
	cursor: pointer;
}
#hcc-modal .hcc-cat__always {
	font-family: var(--hcc-sans);
	font-size: .8rem;
	color: var(--hcc-primary);
	font-weight: 500;
}
#hcc-modal .hcc-cat__desc {
	font-family: var(--hcc-sans);
	color: var(--hcc-text);
	font-size: .9rem;
	line-height: 1.55;
	margin: .5rem 0 0;
}

/* Interruptor */
#hcc-modal .hcc-switch {
	-webkit-appearance: none;
	appearance: none;
	flex: none;
	width: 46px;
	height: 26px;
	margin: 0;
	border-radius: 999px;
	background: #C9CFCC;
	border: 0;
	position: relative;
	cursor: pointer;
	transition: background-color .15s ease;
}
.hcc-switch::after {
	content: "";
	position: absolute;
	top: 3px;
	left: 3px;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
	transition: transform .15s ease;
}
.hcc-switch:checked { background: var(--hcc-primary); }
.hcc-switch:checked::after { transform: translateX(20px); }
.hcc-switch:disabled { opacity: .6; cursor: not-allowed; }

/* --- Botón flotante (solo si no se encuentra el pie) --- */
.hcc-fab {
	position: fixed;
	left: 1rem;
	bottom: 1rem;
	z-index: calc(var(--hcc-z) - 1);
	font-family: var(--hcc-sans);
	font-size: .8rem;
	padding: .55rem .9rem;
	border-radius: 999px;
	border: 0;
	background: var(--hcc-primary);
	color: var(--hcc-on-primary);
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
}

/* --- Express Checkout de Stripe bloqueado (Google Pay / Apple Pay) --- */
html.hcc-deny-marketing #wc-stripe-express-checkout-element,
html.hcc-deny-marketing #wc-stripe-express-checkout-button-separator,
html.hcc-deny-marketing #wc-stripe-payment-request-wrapper,
html.hcc-deny-marketing #wc-stripe-payment-request-button-separator {
	display: none !important;
}
.hcc-wallet-note {
	font-family: var(--hcc-sans);
	font-size: .85rem;
	color: var(--hcc-text);
	margin: .5rem 0 1rem;
}
html.hcc-allow-marketing .hcc-wallet-note { display: none; }

/* --- Política de cookies --- */
.hcc-policy h2 {
	font-family: var(--hcc-serif);
	color: var(--hcc-heading);
	margin-top: 2rem;
}
.hcc-policy h3 {
	font-family: var(--hcc-serif);
	color: var(--hcc-primary);
	margin-top: 1.5rem;
}
.hcc-policy__meta {
	font-size: .9rem;
	color: var(--hcc-text);
	opacity: .8;
}
.hcc-policy__status {
	background: var(--hcc-bg);
	border-left: 4px solid var(--hcc-accent);
	padding: .6rem .9rem;
	border-radius: 0 8px 8px 0;
	font-size: .95rem;
}
.hcc-policy__table-wrap { overflow-x: auto; margin: 1rem 0 1.5rem; }
.hcc-policy__table {
	width: 100%;
	border-collapse: collapse;
	font-size: .9rem;
	line-height: 1.5;
}
.hcc-policy__table th,
.hcc-policy__table td {
	text-align: left;
	vertical-align: top;
	padding: .6rem .7rem;
	border-bottom: 1px solid var(--hcc-border);
}
.hcc-policy__table th {
	background: var(--hcc-primary);
	color: var(--hcc-on-primary);
	font-weight: 500;
	white-space: nowrap;
}
.hcc-policy__table code {
	font-size: .85em;
	background: rgba(41, 115, 115, 0.08);
	padding: .1em .35em;
	border-radius: 4px;
	word-break: break-word;
}
@media (max-width: 720px) {
	.hcc-policy__table thead { display: none; }
	.hcc-policy__table tr { display: block; border: 1px solid var(--hcc-border); border-radius: 8px; margin-bottom: .75rem; padding: .25rem 0; }
	.hcc-policy__table td,
	.hcc-policy__table th[scope="row"] { display: block; border: 0; padding: .35rem .8rem; width: auto; }
	.hcc-policy__table td::before { content: attr(data-label); display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; color: var(--hcc-primary); font-weight: 500; }
}

/* --- Aviso legal / Política de privacidad --- */
.hcc-legal h2 { font-family: var(--hcc-serif); color: var(--hcc-heading); margin-top: 2rem; }
.hcc-legal a { color: var(--hcc-primary); }
.hcc-legal .hcc-policy__table th[scope="row"] { background: rgba(41, 115, 115, 0.08); color: var(--hcc-heading); width: 32%; white-space: normal; }
.hcc-legal .hcc-legal__id { max-width: 720px; margin: 1rem 0 1.5rem; }
.hcc-legal__form { background: var(--hcc-bg); border-left: 4px solid var(--hcc-accent); padding: 1rem 1.25rem; margin: 1rem 0 1.5rem; border-radius: 0 8px 8px 0; }
/* El botón flotante no se muestra mientras el banner está visible. */
#hcc-banner:not([hidden]) ~ .hcc-fab { display: none; }
