/**
 * Duplatech frontend foundations.
 */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	min-width: 0;
	overflow-wrap: break-word;
	text-rendering: optimizelegibility;
	-webkit-font-smoothing: antialiased;
}

img,
svg,
video {
	display: block;
	height: auto;
	max-width: 100%;
}

button,
input,
select,
textarea {
	font: inherit;
}

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--brand-primary);
	outline-offset: 3px;
}

.wp-site-blocks :where(a:not(.wp-element-button, .wp-block-navigation-item__content)) {
	text-decoration-color: transparent;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.25em;
	transition:
		color 180ms ease,
		text-decoration-color 180ms ease;
}

body .wp-site-blocks :where(a:not(.wp-element-button, .wp-block-navigation-item__content)):is(:hover, :focus-visible) {
	color: var(--wp--preset--color--text-primary);
	text-decoration-color: currentcolor;
	text-decoration-line: underline;
}

:where(
.home-product-card,
.home-service-card,
.product-card,
.accessory-card,
.quem-somos__audience-card,
.quem-somos__principle-card,
.contato__info-card
) {
	transition:
		box-shadow 220ms ease,
		transform 220ms ease;
}

:where(
.home-product-card,
.home-service-card,
.product-card,
.accessory-card,
.quem-somos__audience-card,
.quem-somos__principle-card,
.contato__info-card
):is(:hover, :focus-within) {
	box-shadow:
		0 1.25rem 2.5rem rgba(0, 0, 0, 0.28),
		0 0 0 1px color-mix(in srgb, var(--wp--preset--color--brand-primary) 55%, transparent);
	transform: translateY(-0.25rem);
}

:where(.home-product-card__media, .product-card__media, .accessory-card__media) {
	transition: transform 280ms ease;
}

:where(.home-product-card, .product-card, .accessory-card):is(:hover, :focus-within) :where(
.home-product-card__media,
.product-card__media,
.accessory-card__media
) {
	transform: scale(1.025);
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: var(--wp--preset--color--text-primary);
	clip: auto !important;
	clip-path: none;
	color: var(--wp--preset--color--brand-on-primary);
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 1rem;
	padding: 0.75rem 1rem;
	top: 1rem;
	width: auto;
	z-index: 100000;
}

.duplatech-container {
	margin-inline: auto;
	max-width: var(--wp--style--global--wide-size);
	padding-inline: clamp(1rem, 4vw, 2rem);
	width: 100%;
}

.duplatech-grid {
	display: grid;
	gap: var(--wp--preset--spacing--50);
	grid-template-columns: minmax(0, 1fr);
}

.wp-site-blocks {
	overflow: clip;
}

.wp-site-blocks > header.wp-block-template-part + main.wp-block-group {
	margin-block-start: 0;
}

.wp-block-post-content > :where(.alignfull) {
	margin-inline: calc(clamp(1rem, 4vw, 2rem) * -1);
}

.wp-block-navigation__responsive-container.is-menu-open {
	padding: var(--wp--preset--spacing--50);
}

.site-header {
	position: relative;
	z-index: 20;
}

.site-header__inner {
	min-height: 5.125rem;
}

.site-header__inner,
.site-header__actions {
	gap: var(--wp--preset--spacing--30);
}

.site-header .wp-block-navigation-item__content {
	border-radius: 0.35rem;
	color: var(--wp--preset--color--text-secondary);
	padding: 0.55rem 0.7rem;
	position: relative;
}

.site-header .wp-block-navigation-item__content:hover,
.site-header .wp-block-navigation-item__content[aria-current="page"],
.site-header .current-menu-item > .wp-block-navigation-item__content,
.site-header .current-menu-ancestor > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--brand-primary);
}

.site-header .wp-block-navigation-item__content[aria-current="page"],
.site-header .current-menu-item > .wp-block-navigation-item__content {
	background: color-mix(in srgb, var(--wp--preset--color--brand-primary) 10%, transparent);
}

.site-header .wp-block-navigation-item__content[aria-current="page"]::after,
.site-header .current-menu-item > .wp-block-navigation-item__content::after {
	background: var(--wp--preset--color--brand-primary);
	border-radius: 999px;
	bottom: 0.25rem;
	content: "";
	height: 2px;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	width: 0.35rem;
}

.site-header__title {
	font-size: 1.25rem;
	font-weight: 800;
	text-transform: uppercase;
}

.site-header__brand:has(.custom-logo) .site-header__title {
	display: none;
}

.site-header__search {
	margin: 0;
}

.site-header__menu-search {
	display: none;
}

.site-header__search .wp-block-search__inside-wrapper {
	background: color-mix(in srgb, var(--wp--preset--color--text-primary) 11%, transparent);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--text-primary) 10%, transparent);
	border-radius: 999px;
	min-width: 9.75rem;
	overflow: hidden;
	padding: 0;
	width: 9.75rem;
}

.site-header__search input {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--text-primary);
	min-width: 0;
	padding: 0.55rem 0 0.55rem 1rem;
}

.site-header__search button {
	background: transparent;
	border: 0;
	border-radius: 999px;
	color: var(--wp--preset--color--text-primary);
	margin: 0;
	padding: 0.55rem 0.75rem;
}

.site-header__search button:hover {
	background: transparent;
	color: var(--wp--preset--color--brand-primary);
}

.site-footer {
	position: relative;
}

.site-footer::before {
	background: linear-gradient(90deg, transparent, var(--wp--preset--color--brand-primary) 50%, transparent);
	content: "";
	height: 1px;
	left: 0;
	position: absolute;
	right: 0;
	top: 0;
}

.site-footer__grid {
	gap: clamp(2rem, 5vw, 5rem);
}

.site-footer:has(.custom-logo) .wp-block-site-title {
	display: none;
}

.site-footer h3 {
	color: var(--wp--preset--color--text-secondary);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.site-footer a {
	color: inherit;
}

.site-footer__brand > p {
	max-width: 19rem;
}

.site-footer__socials {
	display: flex;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

.site-footer__social {
	align-items: center;
	background: var(--wp--preset--color--surface-raised);
	border: 1px solid var(--wp--preset--color--border-subtle);
	border-radius: 0.75rem;
	display: inline-flex;
	height: 2.5rem;
	justify-content: center;
	width: 2.5rem;
}

.site-footer__social span {
	background-color: var(--wp--preset--color--brand-primary);
	height: 1.1rem;
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;
	width: 1.1rem;
}

.site-footer__social--instagram span {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 2h10a5 5 0 0 1 5 5v10a5 5 0 0 1-5 5H7a5 5 0 0 1-5-5V7a5 5 0 0 1 5-5Zm0 2a3 3 0 0 0-3 3v10a3 3 0 0 0 3 3h10a3 3 0 0 0 3-3V7a3 3 0 0 0-3-3H7Zm10.5 1.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2ZM12 7a5 5 0 1 1 0 10 5 5 0 0 1 0-10Zm0 2a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z'/%3E%3C/svg%3E");
}

.site-footer__social--facebook span {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 8h3V4h-3c-3 0-5 2-5 5v2H6v4h3v7h4v-7h3l1-4h-4V9c0-.7.3-1 1-1Z'/%3E%3C/svg%3E");
}

.site-footer__social--linkedin span {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 3a2 2 0 1 1 0 4 2 2 0 0 1 0-4ZM3 9h4v12H3V9Zm6 0h4v1.7c.8-1.2 2-2.1 4-2.1 3 0 4 2 4 5.3V21h-4v-6.3c0-1.5-.3-2.7-1.9-2.7-1.7 0-2.1 1.3-2.1 2.7V21H9V9Z'/%3E%3C/svg%3E");
}

.site-footer__social:is(:hover, :focus-visible) {
	background: color-mix(in srgb, var(--wp--preset--color--brand-primary) 12%, var(--wp--preset--color--surface-raised));
	border-color: var(--wp--preset--color--brand-primary);
}

.site-footer__nav .wp-block-navigation__container {
	column-gap: 3rem;
	display: grid;
	grid-auto-flow: column;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	grid-template-rows: repeat(3, auto);
	row-gap: 0.65rem;
}

.site-footer__nav .wp-block-navigation-item__content[aria-current="page"] {
	background: color-mix(in srgb, var(--wp--preset--color--brand-primary) 10%, transparent);
	border-radius: 0.4rem;
	color: var(--wp--preset--color--brand-primary);
	padding: 0.45rem 0.75rem;
}

.site-footer__contact-item {
	background-position: left 0.08em;
	background-repeat: no-repeat;
	background-size: 1.1rem;
	margin-block: 0.75rem;
	padding-left: 1.75rem;
}

.site-footer__contact-item--phone {
	background-image: url(../images/icons/phone.svg);
}

.site-footer__contact-item--mail {
	background-image: url(../images/icons/mail.svg);
}

.site-footer__contact-item--location {
	background-image: url(../images/icons/location.svg);
}

.site-footer__legal {
	border-top: 1px solid var(--wp--preset--color--border-subtle);
	margin-top: var(--wp--preset--spacing--70);
	padding-top: var(--wp--preset--spacing--40);
}

.site-footer__legal p {
	margin-block: 0;
}

.duplatech-whatsapp {
	align-items: center;
	background: #25d366;
	border: 2px solid #fff;
	border-radius: 50%;
	bottom: max(1.25rem, env(safe-area-inset-bottom));
	box-shadow: 0 0.75rem 2rem rgba(0, 0, 0, 0.38);
	display: flex;
	height: 3.75rem;
	justify-content: center;
	position: fixed;
	right: max(1.25rem, env(safe-area-inset-right));
	transition: box-shadow 180ms ease, transform 180ms ease;
	width: 3.75rem;
	z-index: 50;
}

.duplatech-whatsapp span {
	background: url(../images/icons/phone.svg) center / contain no-repeat;
	filter: brightness(0) invert(1);
	height: 1.5rem;
	width: 1.5rem;
}

.duplatech-whatsapp:is(:hover, :focus-visible) {
	box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.48);
	transform: translateY(-0.15rem);
}

@media (min-width: 48rem) {

	.duplatech-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 47.99rem) {

	.site-header__inner {
		flex-wrap: nowrap !important;
		gap: 0.5rem;
		min-height: 4.5rem;
		padding-inline: 1rem;
	}

	.site-header__brand {
		flex: 0 1 auto;
		min-width: 0;
	}

	.site-header .custom-logo {
		width: clamp(7.25rem, 34vw, 9rem);
	}

	.site-header__actions {
		flex: 0 0 auto;
		gap: 0.25rem;
	}

	.site-header__actions > .site-header__search {
		display: none;
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .site-header__menu-search {
		display: block;
		margin-top: var(--wp--preset--spacing--50);
		width: 100%;
	}

	.site-header .wp-block-navigation__responsive-container-open,
	.site-header .wp-block-navigation__responsive-container-close {
		align-items: center;
		display: flex;
		height: 2.75rem;
		justify-content: center;
		width: 2.75rem;
	}

	.site-header__search .wp-block-search__inside-wrapper {
		min-height: 2.75rem;
		min-width: 0;
		width: clamp(7rem, 35vw, 9rem);
	}

	.site-header .wp-block-navigation__responsive-container.is-menu-open .site-header__menu-search .wp-block-search__inside-wrapper {
		width: 100%;
	}

	.site-header__search input {
		padding-left: 0.75rem;
		width: 100%;
	}

	.site-header__search button {
		align-items: center;
		display: flex;
		justify-content: center;
		min-height: 2.75rem;
		min-width: 2.75rem;
		padding: 0.5rem;
	}

	.wp-element-button {
		align-items: center;
		display: inline-flex;
		justify-content: center;
		min-height: 2.75rem;
	}

	.site-footer__nav .wp-block-navigation-item__content {
		align-items: center;
		display: flex;
		min-height: 2.75rem;
	}

	.duplatech-whatsapp {
		bottom: max(1rem, env(safe-area-inset-bottom));
		height: 3.5rem;
		right: max(1rem, env(safe-area-inset-right));
		width: 3.5rem;
	}
}

@media (min-width: 64rem) {

	.duplatech-grid--three {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.site-header__inner {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	}

	.site-header__brand {
		justify-self: start;
	}

	.site-header .site-header__actions {
		display: contents;
	}

	.site-header__actions > .wp-block-navigation {
		grid-column: 2;
		justify-self: center;
	}

	.site-header__search {
		grid-column: 3;
		justify-self: end;
	}

	.site-footer__grid {
		display: grid;
		grid-template-columns: 1.05fr 1.15fr 0.9fr;
	}
}

@media (prefers-reduced-motion: reduce) {

	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}

@media (forced-colors: active) {

	:where(a, button, input, select, textarea, summary):focus-visible {
		outline-color: CanvasText;
	}
}
