/*
 * Guía Construcción · Sistema global de botones v4.8.0
 *
 * Esta hoja se carga después del estilo principal y utiliza propiedades
 * importantes únicamente en la capa visual del botón. El objetivo es impedir
 * que Elementor o el tema sustituyan colores, tipografía, bordes y espaciado,
 * sin afectar botones editoriales ubicados fuera de los componentes GC.
 */

:root {
	--gc-button-primary: #ff7438;
	--gc-button-primary-hover: #e85f24;
	--gc-button-dark: #1f1f1f;
	--gc-button-muted: #6b7280;
	--gc-button-border: #dfe2e7;
	--gc-button-soft: #f6f7f9;
	--gc-button-white: #ffffff;
	--gc-button-danger: #c9362b;
	--gc-button-danger-soft: #fff0ee;
	--gc-button-radius: 9px;
	--gc-button-shadow: 0 5px 16px -7px rgba(255, 116, 56, .62);
}

/* Base compartida: solo familias de controles pertenecientes al plugin. */
.gc-button,
.gc-btn-outline,
.gc-btn-ghost,
.gc-cta,
.gce-btn,
.gcd-cta,
.gcd-locked__cta {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	min-height: 42px;
	margin: 0;
	padding: 11px 18px !important;
	border: 1.5px solid transparent !important;
	border-radius: var(--gc-button-radius) !important;
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
	font-size: 14px !important;
	font-style: normal !important;
	font-weight: 650 !important;
	line-height: 1.15 !important;
	letter-spacing: 0 !important;
	text-align: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	white-space: normal;
	cursor: pointer;
	transition:
		background-color .16s ease,
		border-color .16s ease,
		color .16s ease,
		box-shadow .16s ease,
		transform .12s ease !important;
}

/* Primarios. La duplicación de clase aumenta la especificidad frente a Elementor. */
.gc-button.gc-button,
.gc-cta.gc-cta--primary,
.gce-btn.gce-btn--primary,
.gcd-cta.gcd-cta,
.gcd-locked__cta.gcd-locked__cta {
	background: var(--gc-button-primary) !important;
	border-color: var(--gc-button-primary) !important;
	color: var(--gc-button-white) !important;
	box-shadow: var(--gc-button-shadow) !important;
}

.gc-button.gc-button:hover,
.gc-button.gc-button:focus-visible,
.gc-cta.gc-cta--primary:hover,
.gc-cta.gc-cta--primary:focus-visible,
.gce-btn.gce-btn--primary:hover,
.gce-btn.gce-btn--primary:focus-visible,
.gcd-cta.gcd-cta:hover,
.gcd-cta.gcd-cta:focus-visible,
.gcd-locked__cta.gcd-locked__cta:hover,
.gcd-locked__cta.gcd-locked__cta:focus-visible {
	background: var(--gc-button-primary-hover) !important;
	border-color: var(--gc-button-primary-hover) !important;
	color: var(--gc-button-white) !important;
	box-shadow: 0 7px 20px -8px rgba(232, 95, 36, .72) !important;
	transform: translateY(-1px);
}

/* Secundarios: borde limpio, fondo blanco y contraste estable. */
.gc-button.gc-btn-outline,
.gc-btn-outline.gc-btn-outline,
.gc-cta.gc-cta--outline,
.gce-btn.gce-btn--ghost {
	background: var(--gc-button-white) !important;
	border-color: var(--gc-button-border) !important;
	color: var(--gc-button-dark) !important;
	box-shadow: 0 1px 2px rgba(15, 23, 42, .04) !important;
}

.gc-button.gc-btn-outline:hover,
.gc-button.gc-btn-outline:focus-visible,
.gc-btn-outline.gc-btn-outline:hover,
.gc-btn-outline.gc-btn-outline:focus-visible,
.gc-cta.gc-cta--outline:hover,
.gc-cta.gc-cta--outline:focus-visible,
.gce-btn.gce-btn--ghost:hover,
.gce-btn.gce-btn--ghost:focus-visible {
	background: #fff7f3 !important;
	border-color: var(--gc-button-primary) !important;
	color: #d95519 !important;
	box-shadow: 0 0 0 3px rgba(255, 116, 56, .11) !important;
	transform: translateY(-1px);
}

/* Botón secundario oscuro disponible en los componentes CTA. */
.gc-cta.gc-cta--secondary {
	background: var(--gc-button-dark) !important;
	border-color: var(--gc-button-dark) !important;
	color: var(--gc-button-white) !important;
	box-shadow: 0 4px 14px -7px rgba(31, 31, 31, .55) !important;
}

.gc-cta.gc-cta--secondary:hover,
.gc-cta.gc-cta--secondary:focus-visible {
	background: #333333 !important;
	border-color: #333333 !important;
	color: var(--gc-button-white) !important;
	transform: translateY(-1px);
}

/* Terciarios para cancelar, limpiar, ver y acciones discretas. */
.gc-button.gc-btn-ghost,
.gc-btn-ghost.gc-btn-ghost,
.gc-cta.gc-cta--ghost {
	background: transparent !important;
	border-color: transparent !important;
	color: var(--gc-button-muted) !important;
	box-shadow: none !important;
}

.gc-button.gc-btn-ghost:hover,
.gc-button.gc-btn-ghost:focus-visible,
.gc-btn-ghost.gc-btn-ghost:hover,
.gc-btn-ghost.gc-btn-ghost:focus-visible,
.gc-cta.gc-cta--ghost:hover,
.gc-cta.gc-cta--ghost:focus-visible {
	background: var(--gc-button-soft) !important;
	border-color: var(--gc-button-soft) !important;
	color: var(--gc-button-dark) !important;
	box-shadow: none !important;
	transform: none;
}

/* Tamaños y ancho. */
.gc-button.gc-btn-sm,
.gc-btn-outline.gc-btn-sm,
.gc-btn-ghost.gc-btn-sm,
.gc-cta.gc-cta--sm {
	min-height: 36px;
	padding: 8px 13px !important;
	font-size: 13px !important;
}

.gc-cta.gc-cta--lg {
	min-height: 48px;
	padding: 13px 24px !important;
	font-size: 15px !important;
}

.gc-button.gc-button--block,
.gc-cta.gc-cta--block {
	display: flex !important;
	width: 100% !important;
}

/* Iconos: no heredan dimensiones ni rellenos de los widgets Elementor. */
.gc-button > svg,
.gc-button > :is(i[data-lucide], svg.lucide),
.gc-btn-outline > svg,
.gc-btn-outline > :is(i[data-lucide], svg.lucide),
.gc-btn-ghost > svg,
.gc-btn-ghost > :is(i[data-lucide], svg.lucide),
.gc-cta > svg,
.gc-cta > :is(i[data-lucide], svg.lucide),
.gce-btn > svg,
.gce-btn > :is(i[data-lucide], svg.lucide),
.gcd-cta > svg,
.gcd-cta > :is(i[data-lucide], svg.lucide) {
	width: 17px !important;
	height: 17px !important;
	flex: 0 0 17px !important;
	margin: 0 !important;
}

/* Controles compactos de tarjetas, cabecera, carrusel y ventanas. */
.gc-icon-btn,
.gc-card__fav,
.gce-nav-btn,
.gcd-topbar__action,
.gcd-modal__close,
.gc-alert__close,
.gc-password-toggle {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	border: 1px solid var(--gc-button-border) !important;
	border-radius: 9px !important;
	background: var(--gc-button-white) !important;
	color: var(--gc-button-muted) !important;
	box-shadow: 0 1px 2px rgba(15, 23, 42, .04) !important;
	text-decoration: none !important;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease, transform .12s ease !important;
}

.gc-icon-btn,
.gcd-topbar__action,
.gcd-topbar__toggle {
	width: 38px !important;
	height: 38px !important;
}

.gc-card__fav,
.gce-nav-btn {
	width: 40px !important;
	height: 40px !important;
}

.gcd-modal__close,
.gc-alert__close,
.gc-password-toggle {
	width: 36px !important;
	height: 36px !important;
}

.gc-icon-btn:hover,
.gc-icon-btn:focus-visible,
.gc-card__fav:hover,
.gc-card__fav:focus-visible,
.gce-nav-btn:hover,
.gce-nav-btn:focus-visible,
.gcd-topbar__action:hover,
.gcd-topbar__action:focus-visible,
.gcd-modal__close:hover,
.gcd-modal__close:focus-visible,
.gc-alert__close:hover,
.gc-alert__close:focus-visible,
.gc-password-toggle:hover,
.gc-password-toggle:focus-visible,
.gc-sidebar-toggle:hover,
.gc-sidebar-toggle:focus-visible {
	background: #fff7f3 !important;
	border-color: var(--gc-button-primary) !important;
	color: #d95519 !important;
	transform: translateY(-1px);
}

.gc-card__fav.is-active {
	background: #fff1ea !important;
	border-color: var(--gc-button-primary) !important;
	color: var(--gc-button-primary) !important;
}

/* Desplegables de cuenta y apertura del panel de filtros. */
.gc-account-menu__trigger {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	min-height: 42px;
	padding: 10px 15px !important;
	border: 1.5px solid var(--gc-button-border) !important;
	border-radius: var(--gc-button-radius) !important;
	background: var(--gc-button-white) !important;
	color: var(--gc-button-dark) !important;
	box-shadow: 0 1px 2px rgba(15, 23, 42, .04) !important;
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
	font-size: 14px !important;
	font-weight: 650 !important;
	line-height: 1.15 !important;
	text-decoration: none !important;
	text-transform: none !important;
	cursor: pointer;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease !important;
}

.gc-account-menu__trigger:hover,
.gc-account-menu__trigger:focus-visible {
	background: #fff7f3 !important;
	border-color: var(--gc-button-primary) !important;
	color: #d95519 !important;
	box-shadow: 0 0 0 3px rgba(255, 116, 56, .11) !important;
}

.gc-account-menu__trigger:focus-visible {
	outline: 3px solid rgba(255, 116, 56, .28) !important;
	outline-offset: 2px !important;
}

/*
 * Estos controles cambian entre display:none y display:flex según el ancho.
 * No se fuerza display para conservar esa lógica responsive.
 */
.gc-market__filters-toggle,
.gc-market__filters-close,
.gcd-topbar__toggle,
.gc-sidebar-toggle {
	-webkit-appearance: none !important;
	appearance: none !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	min-height: 38px;
	padding: 0 12px !important;
	border: 1px solid var(--gc-button-border) !important;
	border-radius: 9px !important;
	background: var(--gc-button-white) !important;
	color: var(--gc-button-muted) !important;
	box-shadow: 0 1px 2px rgba(15, 23, 42, .04) !important;
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
	font-size: 14px !important;
	font-weight: 650 !important;
	line-height: 1.15 !important;
	text-transform: none !important;
	cursor: pointer;
}

.gc-market__filters-close,
.gcd-topbar__toggle,
.gc-sidebar-toggle {
	width: 38px !important;
	height: 38px !important;
	padding: 0 !important;
}

.gc-market__filters-toggle:hover,
.gc-market__filters-toggle:focus-visible,
.gc-market__filters-close:hover,
.gc-market__filters-close:focus-visible,
.gcd-topbar__toggle:hover,
.gcd-topbar__toggle:focus-visible,
.gc-sidebar-toggle:hover,
.gc-sidebar-toggle:focus-visible {
	background: #fff7f3 !important;
	border-color: var(--gc-button-primary) !important;
	color: #d95519 !important;
}

.gc-market__filters-toggle:focus-visible,
.gc-market__filters-close:focus-visible,
.gcd-topbar__toggle:focus-visible,
.gc-sidebar-toggle:focus-visible {
	outline: 3px solid rgba(255, 116, 56, .28) !important;
	outline-offset: 2px !important;
}

/* Acciones destructivas: siempre distinguibles de una acción primaria. */
.gc-icon-btn.gc-icon-btn--danger {
	color: var(--gc-button-danger) !important;
}

.gc-icon-btn.gc-icon-btn--danger:hover,
.gc-icon-btn.gc-icon-btn--danger:focus-visible {
	background: var(--gc-button-danger-soft) !important;
	border-color: var(--gc-button-danger) !important;
	color: var(--gc-button-danger) !important;
}

/* Interacción accesible y estados de sistema. */
.gc-button:focus-visible,
.gc-btn-outline:focus-visible,
.gc-btn-ghost:focus-visible,
.gc-cta:focus-visible,
.gce-btn:focus-visible,
.gcd-cta:focus-visible,
.gcd-locked__cta:focus-visible,
.gc-icon-btn:focus-visible,
.gc-card__fav:focus-visible,
.gce-nav-btn:focus-visible,
.gcd-topbar__action:focus-visible,
.gcd-modal__close:focus-visible,
.gc-alert__close:focus-visible,
.gc-password-toggle:focus-visible {
	outline: 3px solid rgba(255, 116, 56, .28) !important;
	outline-offset: 2px !important;
}

.gc-button:active,
.gc-btn-outline:active,
.gc-btn-ghost:active,
.gc-cta:active,
.gce-btn:active,
.gcd-cta:active,
.gcd-locked__cta:active,
.gc-icon-btn:active,
.gc-card__fav:active,
.gce-nav-btn:active {
	transform: translateY(0) scale(.98) !important;
}

.gc-button[disabled],
.gc-button.is-disabled,
.gc-btn-outline[disabled],
.gc-btn-ghost[disabled],
.gc-cta[disabled],
.gc-cta.is-disabled,
.gce-btn[disabled],
.gcd-cta[disabled],
.gcd-locked__cta[disabled],
.gc-icon-btn[disabled],
.gc-card__fav[disabled],
.gce-nav-btn[disabled] {
	opacity: .48 !important;
	filter: grayscale(.18);
	cursor: not-allowed !important;
	pointer-events: none !important;
	box-shadow: none !important;
	transform: none !important;
}

/* Elementor: refuerzo acotado. Nunca toca .elementor-button u otros widgets. */
.elementor .gc-button,
.elementor .gc-btn-outline,
.elementor .gc-btn-ghost,
.elementor .gc-cta,
.elementor .gce-btn,
.elementor .gcd-cta,
.elementor .gcd-locked__cta {
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
	text-decoration: none !important;
	text-transform: none !important;
}

@media (max-width: 767px) {
	.gc-button,
	.gc-btn-outline,
	.gc-btn-ghost,
	.gc-cta,
	.gce-btn,
	.gcd-cta,
	.gcd-locked__cta {
		min-height: 44px;
		padding: 11px 16px !important;
	}

	.gc-account-menu__trigger,
	.gc-market__filters-toggle {
		min-height: 44px;
	}

	.gc-form__actions,
	.gc-empty__actions,
	.gc-job-preview__actions,
	.gce-hero__actions {
		gap: 10px !important;
	}

	.gc-form__actions > .gc-button,
	.gc-form__actions > .gc-btn-outline,
	.gc-form__actions > .gc-btn-ghost {
		flex: 1 1 auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.gc-button,
	.gc-btn-outline,
	.gc-btn-ghost,
	.gc-cta,
	.gce-btn,
	.gcd-cta,
	.gcd-locked__cta,
	.gc-icon-btn,
	.gc-card__fav,
	.gce-nav-btn {
		transition: none !important;
	}
}
