:root {
	--lc-ink: #0e4050;
	--lc-ink-deep: #092f3b;
	--lc-lime: #bfd84d;
	--lc-lime-soft: #eef4cf;
	--lc-surface: #ffffff;
	--lc-surface-muted: #f5f7f7;
	--lc-border: #dce4e6;
	--lc-text: #263b42;
	--lc-muted: #65757b;
	--lc-danger: #a52929;
	--lc-radius-sm: 5px;
	--lc-radius-md: 8px;
	--lc-focus-ring: 0 0 0 3px rgba(191, 216, 77, 0.58);
	--lc-shadow: 0 18px 48px rgba(14, 64, 80, 0.12);
	--lc-entry-duration: 420ms;
	--lc-entry-duration-fast: 300ms;
	--lc-entry-duration-emphasis: 520ms;
}

/*
 * Keep legacy page entrances legible without making navigation feel blocked.
 * These selectors cover WPBakery, Elementor, and The7's animation builder;
 * interaction transitions such as hover and focus feedback stay untouched.
 */
.wpb_animate_when_almost_visible.animated,
.elementor-element.animated,
.mobile-false #page .animate-element.start-animation,
.mobile-false .animate-element.start-animation {
	animation-duration: var(--lc-entry-duration) !important;
}

.wpb_animate_when_almost_visible.animated.fast,
.wpb_animate_when_almost_visible.animated.faster,
.elementor-element.animated.animated-fast {
	animation-duration: var(--lc-entry-duration-fast) !important;
}

.wpb_animate_when_almost_visible.animated.slow,
.wpb_animate_when_almost_visible.animated.slower,
.elementor-element.animated.animated-slow {
	animation-duration: var(--lc-entry-duration-emphasis) !important;
}

.wpb_animate_when_almost_visible.animated.lc-entry-duration-original {
	animation-duration: 1s !important;
}

.lc-motion-static {
	opacity: 1 !important;
	transform: none !important;
	animation: none !important;
	transition: none !important;
}

#primary-menu a:focus-visible,
#mobile-menu a:focus-visible,
.dt-mobile-menu-icon:focus-visible,
.dt-close-mobile-menu-icon:focus-visible {
	position: relative;
	z-index: 5;
	outline: 3px solid var(--lc-lime) !important;
	outline-offset: 4px;
	box-shadow: 0 0 0 6px rgba(14, 64, 80, 0.32);
}

.dt-close-mobile-menu-icon:focus-visible {
	border-radius: 4px;
}

.lc-button,
.lc-icon-button {
	position: relative;
	display: inline-flex;
	box-sizing: border-box;
	min-height: 40px;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 9px 16px;
	border: 1px solid transparent;
	border-radius: 6px;
	outline: none;
	cursor: pointer;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease, color 140ms ease, transform 140ms ease;
	-webkit-tap-highlight-color: transparent;
}

.lc-icon-button {
	width: 40px;
	padding: 0;
}

.lc-button:not(:disabled):not([aria-disabled="true"]):hover,
.lc-icon-button:not(:disabled):not([aria-disabled="true"]):hover {
	transform: translateY(-1px);
}

.lc-button--primary {
	color: #fff;
	background: var(--lc-ink);
}

.lc-button--primary:hover {
	color: var(--lc-ink-deep);
	background: var(--lc-lime);
}

.lc-button--secondary {
	color: var(--lc-ink-deep);
	background: var(--lc-lime);
}

.lc-button--secondary:hover {
	color: var(--lc-ink-deep);
	background: #cce65a;
}

.lc-button--outline {
	border-color: var(--lc-border);
	color: var(--lc-ink);
	background: var(--lc-surface);
}

.lc-button--outline:hover {
	border-color: var(--lc-ink);
	color: var(--lc-ink);
	background: var(--lc-lime-soft);

}

.lc-button--ghost {
	color: var(--lc-ink);
	background: transparent;
}

.lc-button--ghost:hover {
	color: var(--lc-ink-deep);
	background: rgba(191, 216, 77, 0.2);
}

.lc-button--sm {
	min-height: 36px;
	padding: 7px 13px;
	font-size: 13px;

}

.lc-button--icon-sm {
	width: 36px;
	min-height: 36px;
	padding: 0;
}

.lc-button:focus-visible,
.lc-icon-button:focus-visible {
	border-color: var(--lc-ink);
	outline: none;
	box-shadow: var(--lc-focus-ring);
}

.lc-button:disabled,
.lc-button[aria-disabled="true"],
.lc-icon-button:disabled,
.lc-icon-button[aria-disabled="true"] {
	cursor: not-allowed;
	opacity: 0.58;
	transform: none;
}

/*
 * Shadcn-style adapters for The7's legacy controls. The original elements and
 * JavaScript hooks remain intact; only their shared visual and focus treatment
 * is normalized here.
 */
#page .dt-btn.lc-button,
#page input.submit.lc-button {
	box-sizing: border-box;
	min-height: 40px;
	padding: 9px 16px;
	border: 1px solid transparent;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
}

#page input.submit.lc-button {
	color: #fff;
	background: var(--lc-ink);
}

#page input.submit.lc-button:hover {
	color: var(--lc-ink-deep);
	background: var(--lc-lime);
}

#page .proyBotonBack.lc-button {
	border-color: var(--lc-border);
	color: var(--lc-ink);
	background: var(--lc-surface);
}

#page .proyBotonBack.lc-button:hover {
	border-color: var(--lc-ink);
	color: var(--lc-ink-deep);
	background: var(--lc-lime-soft);
}

#page .paginator {
	display: flex;
	gap: 6px;
	align-items: center;
	justify-content: center;
}

#page .paginator .page-numbers,
#page .paginator .nav-prev,
#page .paginator .nav-next {
	display: inline-flex;
	box-sizing: border-box;
	width: 40px;
	min-width: 40px;
	height: 40px;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 0;
	border: 1px solid transparent;
	border-radius: 6px;
	color: var(--lc-ink);
	background: transparent;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: background-color 140ms ease, border-color 140ms ease, box-shadow 140ms ease, color 140ms ease;
}

#page .paginator a.page-numbers:hover {
	color: var(--lc-ink-deep);
	background: var(--lc-lime-soft);
}

#page .paginator .page-numbers.act {
	border-color: var(--lc-lime);
	color: var(--lc-ink-deep);
	background: var(--lc-lime);
}

#page .paginator .disabled {
	cursor: not-allowed;
	opacity: 0.42;
}

#page .scroll-top.lc-icon-button {
	position: fixed;
	box-sizing: border-box;
	width: 44px;
	height: 44px;
	min-height: 44px;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 7px 0 0 7px;
	color: #fff;
	background: var(--lc-ink);
	box-shadow: 0 8px 24px rgba(9, 47, 59, 0.2);
}

#page .scroll-top.lc-icon-button:hover {
	border-color: var(--lc-lime);
	color: var(--lc-ink-deep);
	background: var(--lc-lime);
}

#page .scroll-top.lc-icon-button svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

.dt-close-mobile-menu-icon.lc-icon-button {
	border-radius: 6px;
	transition: background-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

.dt-mobile-menu-icon.lc-icon-button {
	box-sizing: border-box;
	width: 40px;
	height: 40px;
	min-height: 40px;
	padding: 0;
	border-radius: 6px;
	transition: background-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

.dt-mobile-menu-icon.lc-icon-button:hover,
.dt-close-mobile-menu-icon.lc-icon-button:hover {
	background: rgba(191, 216, 77, 0.18);
}

/* Keep the mobile drawer scrim neutral. The exported The7 theme hard-codes
 * this layer to an 82%-opaque lime, which makes the page itself look green. */
.mobile-sticky-header-overlay,
.mobile-sticky-sidebar-overlay {
	background-color: rgba(9, 47, 59, 0.52) !important;
}

#page .filter-categories {
	display: flex;
	gap: 6px;
	align-items: center;
	justify-content: center;
}

#page .filter-categories a.lc-button {
	box-sizing: border-box;
	min-height: 36px;
	margin: 0;
	padding: 7px 13px;
	border: 1px solid transparent;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
}

#page .filter-categories a.lc-button--primary,
#page .filter-categories a.lc-button--primary:hover {
	color: #fff;
	background: var(--lc-ink);
}

#page .filter-categories a.lc-button--ghost:hover {
	color: var(--lc-ink-deep);
	background: var(--lc-lime-soft);
}

.pswp__button.lc-gallery-control:focus-visible,
.owl-nav .owl-prev:focus-visible,
.owl-nav .owl-next:focus-visible,
.project-slider .owl-prev:focus-visible,
.project-slider .owl-next:focus-visible {
	outline: 3px solid var(--lc-lime) !important;
	outline-offset: 3px;
	box-shadow: 0 0 0 6px rgba(14, 64, 80, 0.35);
}

.pswp__button.lc-gallery-control,
.owl-nav .owl-prev,
.owl-nav .owl-next,
.project-slider .owl-prev,
.project-slider .owl-next {
	border-radius: 6px;
	transition: background-color 140ms ease, box-shadow 140ms ease, color 140ms ease, opacity 140ms ease;
}

.pswp__button.lc-gallery-control:hover,
.owl-nav .owl-prev:hover,
.owl-nav .owl-next:hover,
.project-slider .owl-prev:hover,
.project-slider .owl-next:hover {
	background-color: rgba(191, 216, 77, 0.88);
}

/* Sidebar menu links use the same compact button rhythm without changing links into buttons. */
#sidebar .widget-title {
	margin-bottom: 12px;
	color: var(--lc-ink);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

#sidebar .widget_nav_menu a,
#sidebar .widget_categories a,
#sidebar .widget_pages a,
#sidebar .widget_meta a,
#sidebar .widget_archive a {
	display: flex;
	min-height: 38px;
	align-items: center;
	padding: 8px 10px;
	border-radius: 6px;
	color: var(--lc-ink);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
	text-decoration: none;
	transition: background-color 140ms ease, box-shadow 140ms ease, color 140ms ease;
}

#sidebar .widget_nav_menu a:hover,
#sidebar .widget_categories a:hover,
#sidebar .widget_pages a:hover,
#sidebar .widget_meta a:hover,
#sidebar .widget_archive a:hover {
	color: var(--lc-ink-deep);
	background: var(--lc-lime-soft);
}

#sidebar .instagram-photos a.post-rollover {
	box-sizing: border-box;
	border: 2px solid transparent;
	border-radius: 6px;
	overflow: hidden;
	transition: border-color 140ms ease, box-shadow 140ms ease, transform 140ms ease;
}

#sidebar .instagram-photos a.post-rollover:hover {
	border-color: var(--lc-lime);
	box-shadow: 0 5px 16px rgba(14, 64, 80, 0.18);
	transform: translateY(-1px);
}

#sidebar a:focus-visible,
#page .paginator a:focus-visible {
	position: relative;
	z-index: 2;
	outline: 3px solid var(--lc-lime) !important;
	outline-offset: 3px;
	box-shadow: 0 0 0 5px rgba(14, 64, 80, 0.25);
}

.lc-field,
.lc-contact-field {
	display: grid;
	gap: 7px;
}

.lc-field label,
.lc-contact-label {
	color: var(--lc-ink);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.45;
}

.lc-field input,
.lc-field select,
.lc-field textarea,
.lc-contact-field input,
.lc-contact-field textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 46px;
	margin: 0;
	padding: 10px 12px;
	border: 1px solid #cbd6d9;
	border-radius: 6px;
	outline: none;
	color: var(--lc-text);
	background: var(--lc-surface);
	font: inherit;
	font-size: 15px;
	line-height: 1.45;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.lc-field textarea,
.lc-contact-field textarea {
	min-height: 112px;
	resize: vertical;
}

.lc-field input:hover,
.lc-field select:hover,
.lc-field textarea:hover,
.lc-contact-field input:hover,
.lc-contact-field textarea:hover {
	border-color: #9fb0b5;
}

.lc-field input:focus,
.lc-field select:focus,
.lc-field textarea:focus,
.lc-contact-field input:focus,
.lc-contact-field textarea:focus {
	border-color: var(--lc-ink);
	box-shadow: var(--lc-focus-ring);
}

.lc-field [aria-invalid="true"],
.lc-contact-field [aria-invalid="true"] {
	border-color: var(--lc-danger);
}

.lc-field [aria-invalid="true"]:focus,
.lc-contact-field [aria-invalid="true"]:focus {
	box-shadow: 0 0 0 3px rgba(165, 41, 41, 0.16);
}

.lc-field-error {
	display: block;
	color: var(--lc-danger);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.45;
}

.lc-field-error:empty {
	display: none;
}

.lc-alert,
.lc-status {
	display: grid;
	gap: 4px;
	padding: 14px 16px;
	border: 1px solid var(--lc-border);
	border-radius: 6px;
	font-size: 13px;
	line-height: 1.45;
}

.lc-alert--error {
	border-color: rgba(165, 41, 41, 0.35);
	color: #782020;
	background: #fff4f4;
}

.lc-alert--success,
.lc-status--success {
	border-color: rgba(86, 112, 20, 0.35);
	color: #3f5410;
	background: var(--lc-lime-soft);
}

.lc-alert[hidden],
.lc-status[hidden] {
	display: none;
}

.lc-dialog-actions {
	display: flex;
	gap: 12px;
	align-items: center;
	justify-content: flex-end;
}

.lc-contact-form {
	display: grid;
	gap: 18px;
}

.lc-contact-form .form-fields {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.lc-contact-form .lc-contact-label {
	display: block;
}

.lc-contact-form .form-message {
	display: grid;
	gap: 7px;
}

.lc-contact-form > p {
	margin: 0;
}

.lc-contact-submit {
	min-width: 132px;
}

.lc-contact-status:focus {
	outline: 3px solid rgba(165, 41, 41, 0.28);
	outline-offset: 2px;
}

.page-id-45116 .lc-contact-heading {
	line-height: 1.3 !important;
	text-wrap: balance;
}

.lc-site-contact {
	padding: 22px 0;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	color: #fff;
	background: var(--lc-ink);
}

.lc-site-contact__grid {
	display: grid;
	grid-template-columns: 168px repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.lc-site-contact__item {
	display: grid;
	grid-template-columns: 30px minmax(0, 1fr);
	gap: 11px;
	align-items: start;
}

.lc-site-contact__icon {
	display: grid;
	width: 30px;
	height: 30px;
	place-items: center;
	color: var(--lc-lime);
}

.lc-site-contact__item--brand {
	display: flex;
	align-items: center;
}

.lc-site-contact__icon svg {
	display: block;
	width: 22px;
	height: 22px;
}

.lc-site-contact__label,
.lc-site-contact__value {
	display: block;
}

.lc-site-contact__label {
	margin: 0 0 4px;
	color: var(--lc-lime);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.35;
	text-transform: uppercase;
}

.lc-site-contact__value,
.lc-site-contact a.lc-site-contact__value {
	margin: 0;
	color: #fff;
	font-size: 14px;
	font-style: normal;
	font-weight: 500;
	line-height: 1.45;
	text-decoration: none;
}

.lc-site-contact a.lc-site-contact__value:hover {
	color: var(--lc-lime);
}

.lc-site-contact a.lc-site-contact__value:focus-visible {
	border-radius: 3px;
	outline: 3px solid var(--lc-lime);
	outline-offset: 4px;
}

.lc-site-contact__legal {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	margin-top: 12px;
	padding-top: 10px;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
}

.lc-site-contact__brand {
	display: block;
	width: 168px;
	flex: 0 0 auto;
}

.lc-site-contact__brand img {
	display: block;
	width: 100%;
	height: auto;
	opacity: 1;
}

.lc-site-contact__legal p {
	margin: 0;
	color: rgba(255, 255, 255, 0.76);
	font-size: 12px;
	line-height: 1.4;
	text-align: right;
}

.lc-site-contact__brand:focus-visible {
	border-radius: 3px;
	outline: 3px solid var(--lc-lime);
	outline-offset: 4px;
}

#footer #bottom-bar {
	display: none;
}

html.lc-project-gallery-no-caption .pswp__caption {
	display: none !important;
}

.page-id-45116 .vc_custom_1573324790879 {
	padding-top: 70px;
}

@media (max-width: 777px) {
	.lc-contact-form .form-fields {
		grid-template-columns: 1fr;
	}

	.lc-contact-submit {
		width: 100%;
	}

	.lc-dialog-actions {
		align-items: stretch;
		flex-direction: column-reverse;
	}

	.lc-site-contact {
		padding: 24px 0;
	}

	.lc-site-contact__grid {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.lc-site-contact__legal {
		align-items: flex-start;
		justify-content: flex-start;
	}

	.lc-site-contact__legal p {
		text-align: left;
	}

	.page-id-45116 .vc_custom_1573324790879 {
		padding-top: 48px;
	}
}

@media (prefers-reduced-motion: reduce) {
	body .wpb_animate_when_almost_visible.animated[class],
	body .elementor-element.animated[class],
	.mobile-false #page .animate-element.start-animation,
	.mobile-false .animate-element.start-animation {
		animation-delay: 0ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}

	.lc-button,
	.lc-icon-button,
	.lc-field input,
	.lc-field select,
	.lc-field textarea,
	.lc-contact-field input,
	.lc-contact-field textarea {
		transition-duration: 0.01ms !important;
	}
}
