/*!
 * Theme Name: HTML5 Blank
 * Theme URI: http://html5blank.com
 * Description: HTML5 Blank WordPress Starter Theme
 * Version: 1.5.1
 * Author: Robert DeVore
 * Author URI: http://robertdevore.com
 * Tags: HTML5, CSS3, starter, framework
 *
 * License: MIT
 * License URI: http://opensource.org/licenses/mit-license.php
 */

/*
 * Custom component CSS (not Tailwind).
 * Tailwind utilities live in the Alcastromol plugin stylesheet.
 */

/* Subfactory hero entrance. */

/* Gutenberg content shown at the end of the home page. */
.home-content-accordion > summary::-webkit-details-marker {
	display: none;
}

.home-content-accordion > summary::marker {
	content: '';
}

.home-content-accordion[open] .home-content-accordion__icon span:last-child {
	transform: translate(-50%, -50%) rotate(90deg) scaleY(0);
}

.home-gutenberg-content {
	font-size: 18px;
	line-height: 1.65;
}

.home-gutenberg-content > * + * {
	margin-top: 1.25rem;
}

.home-gutenberg-content h2,
.home-gutenberg-content h3,
.home-gutenberg-content h4 {
	font-weight: 900;
	line-height: 1.2;
}

.home-gutenberg-content h2 {
	margin-top: 2.5rem;
	font-size: 32px;
	text-transform: uppercase;
}

.home-gutenberg-content h2:first-child {
	margin-top: 0;
}

.home-gutenberg-content h3 {
	margin-top: 2rem;
	font-size: 25px;
}

.home-gutenberg-content h4 {
	margin-top: 1.75rem;
	font-size: 21px;
}

.home-gutenberg-content ul,
.home-gutenberg-content ol {
	padding-left: 1.5rem;
}

.home-gutenberg-content ul {
	list-style: disc;
}

.home-gutenberg-content ol {
	list-style: decimal;
}

.home-gutenberg-content li + li {
	margin-top: .45rem;
}

.home-gutenberg-content a {
	color: #E5323B;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.home-gutenberg-content a:hover,
.home-gutenberg-content a:focus-visible {
	color: #f8ba30;
}

.home-gutenberg-content table {
	display: block;
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
	border-collapse: collapse;
	white-space: nowrap;
}

.home-gutenberg-content th,
.home-gutenberg-content td {
	border: 1px solid #d7d7d7;
	padding: 12px 16px;
	text-align: left;
}

.home-gutenberg-content th {
	background: #1d1e1c;
	color: #fff;
	font-weight: 800;
}

.home-gutenberg-content tbody tr:nth-child(even) {
	background: #f5f5f5;
}

@media (max-width: 767px) {
	.home-gutenberg-content {
		font-size: 16px;
		line-height: 1.6;
	}

	.home-gutenberg-content h2 {
		margin-top: 2rem;
		font-size: 25px;
	}

	.home-gutenberg-content h3 {
		font-size: 21px;
	}

	.home-gutenberg-content h4 {
		font-size: 18px;
	}

	.home-gutenberg-content th,
	.home-gutenberg-content td {
		padding: 10px 12px;
	}
}

@keyframes equipo-hero-enter {
	from { opacity: 0; }
	to { opacity: 1; }
}

@media (prefers-reduced-motion: no-preference) {
	.equipo-hero-content {
		animation: equipo-hero-enter .8s ease-out both;
	}
}

.subfactory-product-card {
	clip-path: polygon(100% 0, 12.32% 0, 0 10.52%, 0 100%, 87.68% 100%, 100% 88.88%);
}

.subfactory-quote {
	clip-path: polygon(9.9% 0, 100% 0, 100% 55.88%, 90.1% 100%, 0 100%, 0 44.12%);
}

@keyframes subfactory-title-enter {
	from { opacity: 0; transform: translateY(28px); }
	to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: no-preference) {
	.subfactory-hero-title {
		animation: subfactory-title-enter .8s ease-out both;
	}
}

/* Service cards: shared image/overlay mask and touch accessibility. */
.service-card-visual {
	clip-path: polygon(10% 0, 100% 0, 100% 90%, 90% 100%, 0 100%, 0 10%);
}

/* Shared red CTA with a separate arrow segment, matching the reference site. */
.site-arrow-button {
	display: inline-flex !important;
	min-height: 48px;
	max-width: 100%;
	align-items: stretch !important;
	justify-content: center;
	gap: 8px;
	padding: 0 !important;
	border: 0;
	background: transparent !important;
	color: #fff;
	line-height: 1.2;
	text-decoration: none;
}

.site-arrow-button > span:first-child {
	display: flex;
	min-width: 0;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	padding: 12px 28px;
	border-radius: 3px;
	background: #ed323b !important;
	text-align: center;
	transition: background-color .2s ease;
}

.site-arrow-button > svg,
.site-arrow-button > span:last-child:not(:first-child) {
	display: flex;
	width: 48px !important;
	height: 48px !important;
	flex: 0 0 48px;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	padding: 12px;
	clip-path: polygon(0 0, 100% 0, 100% 68%, 72% 100%, 0 100%);
	background: #ed323b !important;
	transition: background-color .2s ease;
}

.site-arrow-button > span:last-child:not(:first-child) > svg {
	width: 24px;
	height: 24px;
	flex: 0 0 24px;
}

.site-arrow-button:hover > span,
.site-arrow-button:hover > svg,
.site-arrow-button:focus-visible > span,
.site-arrow-button:focus-visible > svg {
	background: #bd2730 !important;
}

@media (max-width: 479px) {
	.site-arrow-button > span:first-child {
		padding-right: 22px;
		padding-left: 22px;
	}
}

@media (hover: none), (max-width: 767px) {
	.service-card .service-card-description {
		position: relative;
		opacity: 1;
		background: #1d1e1c;
	}
}

@media (prefers-reduced-motion: reduce) {
	.service-card .service-card-description,
	.service-card .service-card-link {
		transition: none;
	}
}

/* Keep the hidden attribute authoritative after Tailwind's display utilities. */
[data-solutions] [hidden] {
	display: none !important;
}

.solution-tab {
	clip-path: polygon(10% 0, 100% 0, 100% 75%, 90% 100%, 0 100%, 0 25%);
}

.solution-tab[aria-selected="true"] {
	transform: translateY(-6px);
	box-shadow: inset 0 -5px 0 rgba(0, 0, 0, .35);
}

.solution-tab:focus-visible {
	outline: none;
	box-shadow: inset 0 0 0 5px #1d1e1c, inset 0 0 0 8px #fff;
}

html.menu-is-open,
html.menu-is-open body {
	overflow: hidden;
}

.header-menu-link {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	min-height: 40px;
	padding: 0 10px;
	color: inherit;
	text-decoration: none;
	-webkit-transition: color 180ms ease;
	-o-transition: color 180ms ease;
	transition: color 180ms ease;
}

.header-navigation > ul > li {
	border: 1px solid rgba(255, 255, 255, 0.65);
}

.header-services-link {
	padding-right: 0;
}

.header-menu-link:hover,
.header-menu-link:focus-visible {
	color: #f8ba30;
}

.header-submenu {
	opacity: 0;
	visibility: hidden;
	-webkit-transform: translateY(8px);
	    -ms-transform: translateY(8px);
	        transform: translateY(8px);
	pointer-events: none;
	-webkit-transition: opacity 180ms ease, visibility 180ms ease, -webkit-transform 180ms ease;
	transition: opacity 180ms ease, visibility 180ms ease, -webkit-transform 180ms ease;
	-o-transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
	transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
	transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease, -webkit-transform 180ms ease;
}

.header-menu-parent:hover > .header-submenu,
.header-menu-parent:focus-within > .header-submenu,
.header-menu-parent.is-open > .header-submenu {
	opacity: 1;
	visibility: visible;
	-webkit-transform: translateY(0);
	    -ms-transform: translateY(0);
	        transform: translateY(0);
	pointer-events: auto;
}

.header-submenu a {
	display: block;
	padding: 12px 20px;
	line-height: 1.35;
	-webkit-transition: background-color 180ms ease, color 180ms ease;
	-o-transition: background-color 180ms ease, color 180ms ease;
	transition: background-color 180ms ease, color 180ms ease;
}

.header-submenu a:hover,
.header-submenu a:focus-visible {
	background: #f3f3f3;
	color: #E5323B;
}

.header-toggle-lines,
.header-toggle-lines span {
	display: block;
	width: 25px;
}

.header-toggle-lines span {
	height: 2px;
	margin: 5px 0;
	background: currentColor;
	-webkit-transition: opacity 200ms ease, -webkit-transform 200ms ease;
	transition: opacity 200ms ease, -webkit-transform 200ms ease;
	-o-transition: transform 200ms ease, opacity 200ms ease;
	transition: transform 200ms ease, opacity 200ms ease;
	transition: transform 200ms ease, opacity 200ms ease, -webkit-transform 200ms ease;
}

[data-menu-toggle][aria-expanded="true"] .header-toggle-lines span:nth-child(1) {
	-webkit-transform: translateY(7px) rotate(45deg);
	    -ms-transform: translateY(7px) rotate(45deg);
	        transform: translateY(7px) rotate(45deg);
}

[data-menu-toggle][aria-expanded="true"] .header-toggle-lines span:nth-child(2) {
	opacity: 0;
}

[data-menu-toggle][aria-expanded="true"] .header-toggle-lines span:nth-child(3) {
	-webkit-transform: translateY(-7px) rotate(-45deg);
	    -ms-transform: translateY(-7px) rotate(-45deg);
	        transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 1024px) {
	.header-navigation {
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		-webkit-transform: translateY(-12px);
		    -ms-transform: translateY(-12px);
		        transform: translateY(-12px);
		-webkit-transition: opacity 200ms ease, visibility 200ms ease, -webkit-transform 200ms ease;
		transition: opacity 200ms ease, visibility 200ms ease, -webkit-transform 200ms ease;
		-o-transition: opacity 200ms ease, transform 200ms ease, visibility 200ms ease;
		transition: opacity 200ms ease, transform 200ms ease, visibility 200ms ease;
		transition: opacity 200ms ease, transform 200ms ease, visibility 200ms ease, -webkit-transform 200ms ease;
	}

	.header-navigation.is-open {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		-webkit-transform: translateY(0);
		    -ms-transform: translateY(0);
		        transform: translateY(0);
	}

	.header-menu-link {
		min-height: 58px;
		padding: 0;
	}

	.header-navigation > ul > li {
		border: 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.15);
	}

	.header-submenu {
		max-height: 0;
		overflow: hidden;
		opacity: 1;
		visibility: visible;
		-webkit-transform: none;
		    -ms-transform: none;
		        transform: none;
		pointer-events: auto;
		-webkit-transition: max-height 250ms ease;
		-o-transition: max-height 250ms ease;
		transition: max-height 250ms ease;
	}

	.header-menu-parent:not(.is-open) > .header-submenu {
		max-height: 0;
	}

	.header-menu-parent.is-open > .header-submenu {
		max-height: 340px;
	}

	.header-menu-parent.is-open [data-submenu-toggle] svg {
		-webkit-transform: rotate(180deg);
		    -ms-transform: rotate(180deg);
		        transform: rotate(180deg);
	}

	.header-submenu a {
		padding: 11px 16px;
		border-top: 1px solid rgba(255, 255, 255, 0.08);
	}

	.header-submenu a:hover,
	.header-submenu a:focus-visible {
		background: rgba(255, 255, 255, 0.08);
		color: #f8ba30;
	}
}

@media (prefers-reduced-motion: reduce) {
	.header-navigation,
	.header-submenu,
	.header-toggle-lines span {
		-webkit-transition: none;
		-o-transition: none;
		transition: none;
	}
}

/**==============================================
 *                Footer
 *=============================================**/

.footer-social-link {
	display: -webkit-inline-box;
	display: -ms-inline-flexbox;
	display: inline-flex;
	height: 34px;
	width: 34px;
	-webkit-box-align: center;
	    -ms-flex-align: center;
	        align-items: center;
	-webkit-box-pack: center;
	    -ms-flex-pack: center;
	        justify-content: center;
	color: rgba(255, 255, 255, 0.32);
	-webkit-transition: color 180ms ease, -webkit-transform 180ms ease;
	transition: color 180ms ease, -webkit-transform 180ms ease;
	-o-transition: color 180ms ease, transform 180ms ease;
	transition: color 180ms ease, transform 180ms ease;
	transition: color 180ms ease, transform 180ms ease, -webkit-transform 180ms ease;
}

.footer-social-link svg {
	height: 24px;
	width: 24px;
}

.footer-social-link:hover,
.footer-social-link:focus-visible {
	color: #f8ba30;
	-webkit-transform: translateY(-2px);
	    -ms-transform: translateY(-2px);
	        transform: translateY(-2px);
}

.footer-service-link {
	display: block;
	font-size: 14px;
	font-weight: 800;
	line-height: 1.55;
	text-transform: uppercase;
	-webkit-transition: color 180ms ease;
	-o-transition: color 180ms ease;
	transition: color 180ms ease;
}

.footer-service-link:hover,
.footer-service-link:focus-visible {
	color: #f8ba30;
}

.hero-slide {
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: scale(1.015);
	transition: opacity 700ms ease, visibility 700ms ease, transform 900ms ease;
}

.hero-slide.is-active {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: scale(1);
}

.hero-arrow {
	position: absolute;
	top: 50%;
	z-index: 20;
	display: inline-flex;
	height: 50px;
	width: 50px;
	transform: translateY(-50%);
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(255, 255, 255, 0.45);
	background: rgba(0, 0, 0, 0.2);
	color: #fff;
	opacity: 0;
	transition: opacity 180ms ease, border-color 180ms ease, color 180ms ease;
}

.hero-slider:hover .hero-arrow,
.hero-arrow:focus-visible {
	opacity: 1;
}

.hero-arrow:hover,
.hero-arrow:focus-visible {
	border-color: #f8ba30;
	color: #f8ba30;
}

.hero-arrow svg {
	height: 26px;
	width: 26px;
}

.hero-dot {
	height: 11px;
	width: 11px;
	border: 2px solid rgba(255, 255, 255, 0.92);
	border-radius: 999px;
	background: transparent;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
	transition: background-color 180ms ease, transform 180ms ease;
}

.hero-dot.is-active,
.hero-dot:hover,
.hero-dot:focus-visible {
	background: #E5323B;
	transform: scale(1.15);
}

@media (prefers-reduced-motion: reduce) {
	.hero-slide,
	.hero-arrow,
	.hero-dot {
		transition: none;
	}
}

.clients-track {
	scrollbar-width: none;
}
.clients-track::-webkit-scrollbar {
	display: none;
}
.clients-track:focus-visible {
	outline: 2px solid #E5323B;
	outline-offset: 4px;
}
.client-dot {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 44px;
}
.client-dot::before {
	content: '';
	width: 12px;
	height: 12px;
	border: 1px solid #999;
	border-radius: 50%;
	background: #ddd;
}
.client-dot[aria-current="true"]::before {
	background: #1d1e1c;
	border-color: #1d1e1c;
}
.client-dot:focus-visible {
	outline: 2px solid #E5323B;
	outline-offset: -2px;
}


/* CF7 owns submission and validation; these styles target its generated controls. */
.ps-contact-form .ps-contact-input {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	min-height: 44px;
	border: 1px solid #ddd;
	border-radius: 0;
	background-color: #fff;
	color: #1d1e1c;
	padding: 10px 12px;
	font: inherit;
	font-size: 16px;
}
.ps-contact-form textarea.ps-contact-input {
	min-height: 110px;
	resize: vertical;
}
.ps-contact-form .ps-contact-input:focus-visible {
	outline: 2px solid #E5323B;
	outline-offset: 2px;
}
.ps-contact-form .ps-contact-input[aria-invalid="true"] { border-color: #b91c1c; }
.ps-contact-form .ps-contact-submit {
	min-height: 48px;
	width: 220px;
	max-width: 100%;
	border: 0;
	border-radius: 0;
	padding: 12px 24px;
	background: #E5323B;
	color: #fff;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}
.ps-contact-form .ps-contact-submit:hover { background: #1d1e1c; }
.ps-contact-form .ps-contact-submit:focus-visible { outline: 2px solid #E5323B; outline-offset: 4px; }
.ps-contact-form .ps-contact-submit:disabled { opacity: .6; cursor: wait; }
.ps-contact-form .wpcf7-spinner { display: block; margin: 10px auto 0; }
.ps-contact-form .wpcf7-not-valid-tip { margin-top: 6px; color: #b91c1c; font-size: 14px; }
.ps-contact-form .wpcf7-response-output { margin: 16px 0 0; padding: 12px; }
.ps-contact-form p { margin: 0; }
.ps-service-contact-form .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 767px) {
	.ps-service-contact-form .md\:grid-cols-2 { grid-template-columns: minmax(0, 1fr); }
}

/* Global SubFactory promotion. It reopens on each page load, like the reference site. */
.global-popup {
	position: fixed;
	right: 0;
	bottom: -100vh;
	left: 0;
	z-index: 99991;
	padding: 1.041667vw;
	border-top: 1px solid #e6323b;
	border-radius: .520833vw .520833vw 0 0;
	background: #1d1e1c;
	transition: bottom .2s ease;
}
.global-popup.is-active { bottom: 0; }
.global-popup__content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 77.083333vw;
	margin: 0 auto;
}
.global-popup__texts-content {
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	gap: .78125vw;
	min-width: 0;
}
.global-popup__icon {
	display: flex;
	width: 2.864583vw;
	height: 2.864583vw;
	flex: 0 0 2.864583vw;
	align-items: center;
	justify-content: center;
	clip-path: polygon(30% 0, 100% 0, 100% 100%, 0 100%, 0 30%);
	background: #e6323b;
	color: #fff;
}
.global-popup__icon svg { width: 1.5625vw; height: 1.5625vw; }
.global-popup__texts { min-width: 0; color: #fff; }
.global-popup__texts h2 {
	margin: 0;
	font-size: 1.302083vw;
	font-weight: 900;
	line-height: 1.2;
}
.global-popup__texts p {
	margin: 0;
	font-size: 1.041667vw;
	font-weight: 400;
	line-height: 1.2;
}
.global-popup__actions {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: .78125vw;
}
.global-popup__actions a,
.global-popup__actions button {
	display: flex;
	height: 2.083333vw;
	align-items: center;
	justify-content: center;
	border: 0;
	background: #e6323b;
	color: #fff;
	font: inherit;
	font-size: 1.041667vw;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
}
.global-popup__actions a {
	width: 9.322917vw;
	clip-path: polygon(9.9% 0, 100% 0, 100% 55.88%, 90.1% 100%, 0 100%, 0 44.12%);
}
.global-popup__actions button {
	width: 2.083333vw;
	padding: 0;
	clip-path: polygon(0 100%, 100% 100%, 100% 30.61%, 69.39% 0, 0 0);
}
.global-popup__actions a:hover,
.global-popup__actions button:hover { background: #f8b334; }
.global-popup__actions a:focus-visible,
.global-popup__actions button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

@media (max-width: 767px) {
	.global-popup {
		padding: 4.166667vw 0;
		border-radius: 1.666667vw 1.666667vw 0 0;
	}
	.global-popup__content {
		flex-direction: column;
		gap: 4.166667vw;
		width: 89.583333%;
	}
	.global-popup__texts-content { width: 100%; gap: 3.125vw; }
	.global-popup__icon { display: none; }
	.global-popup__texts { width: 84.166667%; margin: 0 auto; text-align: center; }
	.global-popup__texts h2 { font-size: 4.583333vw; line-height: 1.2; }
	.global-popup__texts p { font-size: 3.75vw; line-height: 1.2; }
	.global-popup__actions { width: 100%; justify-content: center; gap: 3.125vw; }
	.global-popup__actions a,
	.global-popup__actions button { height: 8.333333vw; font-size: 4.166667vw; }
	.global-popup__actions a { width: 37.291667vw; }
	.global-popup__actions button { width: 8.333333vw; }
}

.case-dialog { width: min(1100px, 92vw); max-height: 90dvh; padding: 0; border: 0; color: #1d1e1c; background: white; overflow: auto; }
.case-dialog::backdrop { background: rgba(0, 0, 0, .75); }
html.case-dialog-open { overflow: hidden; }
