/* ========================================================================== 
   Guía Construcción · Aislamiento visual frente a Elementor y el tema

   Esta hoja se carga después de los tres módulos del buscador. Todos los
   selectores están encapsulados: no modifican botones, campos ni enlaces del
   resto del sitio.
   ========================================================================== */

/* Base del componente ------------------------------------------------------ */
body .gcb,
body .gcbd,
body .gcbd-page,
body .gcm {
	font-family: inherit !important;
	font-style: normal !important;
	line-height: 1.4 !important;
	text-align: left !important;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

body .gcb[hidden],
body .gcb [hidden],
body .gcbd[hidden],
body .gcbd [hidden],
body .gcm[hidden],
body .gcm [hidden] {
	display: none !important;
}

body .gcb *,
body .gcb *::before,
body .gcb *::after,
body .gcbd *,
body .gcbd *::before,
body .gcbd *::after,
body .gcbd-page *,
body .gcbd-page *::before,
body .gcbd-page *::after,
body .gcm *,
body .gcm *::before,
body .gcm *::after {
	box-sizing: border-box !important;
}

body .gcb svg,
body .gcbd svg,
body .gcbd-page svg,
body .gcm svg {
	display: block;
	max-width: none !important;
	fill: none !important;
	stroke: currentColor;
}

/* Buscador AJAX ------------------------------------------------------------ */
body .gcb .gcb__bar {
	display: flex !important;
	background-color: #fff !important;
	border: 1px solid var(--gcb-border) !important;
	border-radius: 999px !important;
	padding: 6px 8px 6px 18px !important;
	box-shadow: 0 1px 2px rgba(16, 24, 40, .04) !important;
}

body .gcb .gcb__bar:focus-within {
	border-color: var(--gcb-primary) !important;
	box-shadow: 0 0 0 4px rgba(255, 116, 56, .12) !important;
}

body .gcb input.gcb__input {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: block !important;
	width: auto !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 10px 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	outline: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--gcb-dark) !important;
	font: inherit !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}

body .gcb input.gcb__input:focus {
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
}

body .gcb input.gcb__input::placeholder {
	opacity: 1 !important;
	color: var(--gcb-muted) !important;
}

body .gcb button.gcb__region-btn,
body .gcb button.gcb__region-opt {
	-webkit-appearance: none !important;
	appearance: none !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	font-family: inherit !important;
	font-style: normal !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}

body .gcb button.gcb__region-btn {
	display: inline-flex !important;
	padding: 9px 14px !important;
	border: 1px solid var(--gcb-border) !important;
	border-radius: 999px !important;
	background: #fff !important;
	color: var(--gcb-dark) !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.25 !important;
}

body .gcb button.gcb__region-btn:hover,
body .gcb button.gcb__region-btn:focus-visible {
	border-color: #d7d9de !important;
	background: var(--gcb-soft) !important;
	color: var(--gcb-dark) !important;
	box-shadow: none !important;
}

body .gcb button.gcb__region-opt {
	display: block !important;
	width: 100% !important;
	padding: 10px 12px !important;
	border: 0 !important;
	border-radius: 9px !important;
	background: transparent !important;
	color: var(--gcb-dark) !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.35 !important;
	text-align: left !important;
}

body .gcb button.gcb__region-opt:hover,
body .gcb button.gcb__region-opt:focus-visible {
	background: var(--gcb-soft) !important;
	color: var(--gcb-dark) !important;
	outline: 2px solid rgba(255, 116, 56, .22) !important;
	outline-offset: -2px !important;
}

body .gcb button.gcb__region-opt.is-active {
	background: rgba(255, 116, 56, .1) !important;
	color: var(--gcb-primary) !important;
	font-weight: 600 !important;
}

body .gcb ul.gcb__region-menu {
	margin: 0 !important;
	padding: 6px !important;
	list-style: none !important;
	background: #fff !important;
	border: 1px solid var(--gcb-border) !important;
	border-radius: 14px !important;
	box-shadow: 0 12px 30px rgba(16, 24, 40, .12) !important;
}

body .gcb ul.gcb__region-menu > li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body .gcb .gcb__results {
	background: #fff !important;
	border: 1px solid var(--gcb-border) !important;
	border-radius: 16px !important;
	box-shadow: 0 16px 40px rgba(16, 24, 40, .14) !important;
}

body .gcb a.gcb__item,
body .gcb a.gcb__item:visited {
	display: flex !important;
	color: inherit !important;
	text-decoration: none !important;
	box-shadow: none !important;
}

body .gcb a.gcb__item:hover,
body .gcb a.gcb__item:focus-visible {
	background: var(--gcb-soft) !important;
	color: inherit !important;
	text-decoration: none !important;
	outline: 2px solid rgba(255, 116, 56, .2) !important;
	outline-offset: -2px !important;
}

/* Buscador dirigido -------------------------------------------------------- */
body .gcbd {
	background: var(--gcbd-primary) !important;
	border: 0 !important;
	border-radius: 18px !important;
	padding: 24px !important;
	box-shadow: 0 8px 24px rgba(255, 116, 56, .2) !important;
	color: #fff !important;
}

body .gcbd button.gcbd__tab,
body .gcbd button.gcbd__field-caret,
body .gcbd button.gcbd__where-opt,
body .gcbd button.gcbd__submit {
	-webkit-appearance: none !important;
	appearance: none !important;
	height: auto !important;
	min-height: 0 !important;
	margin-top: 0;
	margin-bottom: 0;
	box-shadow: none !important;
	font-family: inherit !important;
	font-style: normal !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}

body .gcbd button.gcbd__tab {
	display: inline-flex !important;
	padding: 11px 20px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: rgba(255, 255, 255, .14) !important;
	color: #fff !important;
	font-size: 14.5px !important;
	font-weight: 600 !important;
	line-height: 1.25 !important;
}

body .gcbd button.gcbd__tab:hover,
body .gcbd button.gcbd__tab:focus-visible {
	background: rgba(255, 255, 255, .24) !important;
	color: #fff !important;
	outline: 2px solid rgba(255, 255, 255, .7) !important;
	outline-offset: 2px !important;
}

body .gcbd button.gcbd__tab.is-active,
body .gcbd button.gcbd__tab.is-active:hover {
	background: #fff !important;
	color: var(--gcbd-primary) !important;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .08) !important;
}

body .gcbd .gcbd__box {
	display: flex !important;
	background: #fff !important;
	border: 0 !important;
	border-radius: 14px !important;
	padding: 8px !important;
	box-shadow: 0 2px 6px rgba(16, 24, 40, .08) !important;
}

body .gcbd input.gcbd__q,
body .gcbd input.gcbd__w {
	-webkit-appearance: none !important;
	appearance: none !important;
	display: block !important;
	width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 2px 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	outline: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--gcbd-dark) !important;
	font: inherit !important;
	font-size: 15px !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}

body .gcbd input.gcbd__q:focus,
body .gcbd input.gcbd__w:focus {
	border: 0 !important;
	outline: 0 !important;
	box-shadow: none !important;
}

body .gcbd input.gcbd__q::placeholder,
body .gcbd input.gcbd__w::placeholder {
	opacity: 1 !important;
	color: var(--gcbd-muted) !important;
}

body .gcbd .gcbd__label {
	margin: 0 0 2px !important;
	padding: 0 !important;
	color: var(--gcbd-muted) !important;
	font-family: inherit !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	line-height: 1.25 !important;
	letter-spacing: .06em !important;
	text-transform: uppercase !important;
}

body .gcbd button.gcbd__field-caret {
	display: inline-flex !important;
	margin: 0 !important;
	padding: 4px !important;
	border: 0 !important;
	border-radius: 6px !important;
	background: transparent !important;
	color: var(--gcbd-muted) !important;
}

body .gcbd button.gcbd__field-caret:hover,
body .gcbd button.gcbd__field-caret:focus-visible {
	background: var(--gcbd-soft) !important;
	color: var(--gcbd-dark) !important;
	outline: 2px solid rgba(255, 116, 56, .22) !important;
}

body .gcbd ul.gcbd__where-list {
	margin: 0 !important;
	padding: 6px !important;
	list-style: none !important;
	background: #fff !important;
	border: 1px solid var(--gcbd-border) !important;
	border-radius: 12px !important;
	box-shadow: 0 16px 40px rgba(16, 24, 40, .14) !important;
}

body .gcbd ul.gcbd__where-list > li {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body .gcbd button.gcbd__where-opt {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 10px 12px !important;
	border: 0 !important;
	border-radius: 8px !important;
	background: transparent !important;
	color: var(--gcbd-dark) !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.35 !important;
	text-align: left !important;
}

body .gcbd button.gcbd__where-opt:hover,
body .gcbd button.gcbd__where-opt:focus-visible {
	background: var(--gcbd-soft) !important;
	color: var(--gcbd-dark) !important;
	outline: 2px solid rgba(255, 116, 56, .22) !important;
	outline-offset: -2px !important;
}

body .gcbd button.gcbd__submit {
	display: inline-flex !important;
	margin-left: 6px !important;
	padding: 0 24px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: var(--gcbd-primary) !important;
	color: #fff !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.25 !important;
}

body .gcbd button.gcbd__submit:hover,
body .gcbd button.gcbd__submit:focus-visible {
	background: var(--gcbd-primary-dark) !important;
	color: #fff !important;
	outline: 2px solid rgba(232, 95, 36, .28) !important;
	outline-offset: 2px !important;
}

body .gcbd .gcbd__hint,
body .gcbd .gcbd__hint strong {
	color: #fff !important;
}

/* Resultados -------------------------------------------------------------- */
body .gcbd-page h1,
body .gcbd-page h2,
body .gcbd-page h3,
body .gcbd-page p {
	font-family: inherit !important;
	font-style: normal !important;
	text-transform: none !important;
}

body .gcbd-page a.gcbd__card,
body .gcbd-page a.gcbd__card:visited {
	display: flex !important;
	padding: 16px !important;
	border: 1px solid var(--gcbd-border, #e7e8ec) !important;
	border-radius: 14px !important;
	background: #fff !important;
	box-shadow: none !important;
	color: inherit !important;
	text-decoration: none !important;
}

body .gcbd-page a.gcbd__card:hover,
body .gcbd-page a.gcbd__card:focus-visible {
	border-color: #ff7438 !important;
	background: #fff !important;
	box-shadow: 0 6px 16px rgba(16, 24, 40, .08) !important;
	color: inherit !important;
	text-decoration: none !important;
	outline: 2px solid rgba(255, 116, 56, .22) !important;
	outline-offset: 2px !important;
}

body .gcbd-page .gcbd__card-name {
	margin: 0 !important;
	color: #1f1f1f !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
}

body .gcbd-page .gcbd__card-loc,
body .gcbd-page .gcbd__card-desc {
	text-transform: none !important;
	letter-spacing: normal !important;
}

body .gcbd-redirect a.gcbd-redirect__link,
body .gcbd-redirect a.gcbd-redirect__link:visited {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 11px 18px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: #ff7438 !important;
	box-shadow: none !important;
	color: #fff !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.25 !important;
	text-decoration: none !important;
}

body .gcbd-redirect a.gcbd-redirect__link:hover,
body .gcbd-redirect a.gcbd-redirect__link:focus-visible {
	background: #e85f24 !important;
	color: #fff !important;
	text-decoration: none !important;
	outline: 2px solid rgba(232, 95, 36, .28) !important;
	outline-offset: 2px !important;
}

/* Mega menú --------------------------------------------------------------- */
body .gcm button.gcm__btn,
body .gcm button.gcm__cat {
	-webkit-appearance: none !important;
	appearance: none !important;
	height: auto !important;
	min-height: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	font-family: inherit !important;
	font-style: normal !important;
	letter-spacing: normal !important;
	text-transform: none !important;
}

body .gcm button.gcm__btn {
	display: inline-flex !important;
	padding: 11px 16px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: var(--gcm-primary) !important;
	color: #fff !important;
	font-size: 14.5px !important;
	font-weight: 600 !important;
	line-height: 1 !important;
}

body .gcm button.gcm__btn:hover,
body .gcm button.gcm__btn:focus-visible {
	background: #f0651f !important;
	color: #fff !important;
	outline: 2px solid rgba(240, 101, 31, .28) !important;
	outline-offset: 2px !important;
}

body .gcm .gcm__panel {
	background: #fff !important;
	border: 1px solid var(--gcm-border) !important;
	border-radius: 16px !important;
	box-shadow: 0 20px 50px rgba(16, 24, 40, .16) !important;
}

body .gcm button.gcm__cat {
	display: flex !important;
	width: 100% !important;
	padding: 10px 12px !important;
	border: 0 !important;
	border-radius: 10px !important;
	background: transparent !important;
	color: var(--gcm-dark) !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.35 !important;
	text-align: left !important;
}

body .gcm button.gcm__cat:hover,
body .gcm button.gcm__cat:focus-visible {
	background: var(--gcm-soft) !important;
	color: var(--gcm-dark) !important;
	outline: 2px solid rgba(255, 116, 56, .2) !important;
	outline-offset: -2px !important;
}

body .gcm button.gcm__cat.is-active,
body .gcm button.gcm__cat.is-active:hover {
	background: rgba(255, 116, 56, .1) !important;
	color: var(--gcm-primary) !important;
	font-weight: 600 !important;
}

body .gcm a.gcm__seeall,
body .gcm a.gcm__sub,
body .gcm a.gcm__cta-btn {
	font-family: inherit !important;
	font-style: normal !important;
	text-transform: none !important;
}

body .gcm a.gcm__seeall,
body .gcm a.gcm__seeall:visited {
	color: var(--gcm-primary) !important;
	text-decoration: none !important;
}

body .gcm a.gcm__sub,
body .gcm a.gcm__sub:visited {
	display: block !important;
	padding: 8px 4px !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: #3a3f47 !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.35 !important;
	text-decoration: none !important;
}

body .gcm a.gcm__sub:hover,
body .gcm a.gcm__sub:focus-visible {
	color: var(--gcm-primary) !important;
	text-decoration: none !important;
	outline: 2px solid rgba(255, 116, 56, .2) !important;
	outline-offset: 2px !important;
}

body .gcm a.gcm__cta-btn,
body .gcm a.gcm__cta-btn:visited {
	display: inline-flex !important;
	padding: 10px 18px !important;
	border: 0 !important;
	border-radius: 9px !important;
	background: var(--gcm-primary) !important;
	box-shadow: none !important;
	color: #fff !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.25 !important;
	text-decoration: none !important;
}

body .gcm a.gcm__cta-btn:hover,
body .gcm a.gcm__cta-btn:focus-visible {
	background: #f0651f !important;
	color: #fff !important;
	text-decoration: none !important;
	outline: 2px solid rgba(240, 101, 31, .28) !important;
	outline-offset: 2px !important;
}

/* El mismo shortcode se convierte en un disparador circular en móvil. */
@media (max-width: 820px) {
	body .gcm button.gcm__btn {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 46px !important;
		height: 46px !important;
		min-width: 46px !important;
		min-height: 46px !important;
		padding: 0 !important;
		border-radius: 999px !important;
	}
	body .gcm button.gcm__btn > span,
	body .gcm button.gcm__btn > .gcm__btn-caret,
	body .gcm button.gcm__btn > .gcm__btn-ic--desktop {
		display: none !important;
	}
	body .gcm button.gcm__btn > .gcm__btn-ic--mobile {
		display: block !important;
		width: 22px !important;
		height: 22px !important;
	}
}

/* Responsive reforzado ---------------------------------------------------- */
@media (max-width: 720px) {
	body .gcbd {
		padding: 18px !important;
	}

	body .gcbd .gcbd__box {
		display: flex !important;
		flex-direction: column !important;
		padding: 6px !important;
	}

	body .gcbd button.gcbd__submit {
		width: 100% !important;
		margin: 4px 0 0 !important;
		padding: 14px 22px !important;
		justify-content: center !important;
	}
}

@media (max-width: 560px) {
	body .gcb .gcb__bar {
		border-radius: 20px !important;
		padding: 8px 12px !important;
	}

	body .gcb input.gcb__input {
		width: 100% !important;
		padding: 6px 0 !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	body .gcb *,
	body .gcbd *,
	body .gcbd-page *,
	body .gcm * {
		scroll-behavior: auto !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}
