/**
 * Homepage — imagem de fundo + overlay
 */

.euromex-home-page #main-container > main,
.euromex-home-page main.site-main {
	padding: 0;
}

.euromex-home img {
	-webkit-user-drag: none;
	user-drag: none;
	user-select: none;
	-webkit-user-select: none;
}

.eu-hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 100dvh;
	isolation: isolate;
	overflow: hidden;
}
 
 .eu-hero__panel {
	 position: relative;
	 z-index: 2;
	 display: grid;
	 grid-template-columns: 1fr 1fr;
	 width: 75vw;
	 height: 80vh;
	 background: #ffffff;
	 border-radius: clamp(36px, 3vw, 56px);
	 box-shadow:
		 0 32px 80px rgba(0, 0, 0, 0.28),
		 0 12px 32px rgba(0, 0, 0, 0.18);
	 overflow: hidden;
 }
 
 .eu-hero__panel-left {
	 position: relative;
	 display: flex;
	 flex-direction: column;
	 min-height: 0;
	 padding: clamp(48px, 3.8vw + 1.2rem, 88px) clamp(44px, 4vw + 1rem, 88px) clamp(32px, 2.6vw + 0.8rem, 64px);
	 background: #ffffff;
	 font-family: "Ubuntu", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	 color: #005a56;
	 overflow: hidden;
 }
 
 .eu-hero__panel-top {
	 display: flex;
	 align-items: flex-start;
	 justify-content: flex-start;
 }
 
 .eu-hero__logo {
	 flex-shrink: 0;
	 margin: 0;
	 padding: 0;
	 line-height: 0;
	 opacity: 0;
	 animation: eu-fade-in 1.1s cubic-bezier(0.4, 0, 0.2, 1) 0.15s forwards;
 }
 
.eu-hero__logo img {
	display: block;
	width: clamp(160px, 9vw + 4.5rem, 300px);
	height: auto;
	margin: 0;
	padding: 0;
}
 
 .eu-hero__plug {
	 position: absolute;
	 top: clamp(-24px, -2.5vw, -8px);
	 right: clamp(-80px, -8vw, -40px);
	 z-index: 1;
	 width: clamp(220px, 18vw + 6rem, 500px);
	 margin: 0;
	 padding: 0;
	 transform: rotate(40deg);
	 transform-origin: center center;
	 line-height: 0;
	 pointer-events: none;
	 opacity: 0;
	 animation: eu-fade-in 1.2s cubic-bezier(0.4, 0, 0.2, 1) 0.35s forwards;
 }
 
.eu-hero__plug img,
.eu-hero__plug svg {
	display: block;
	width: 100%;
	height: auto;
	overflow: visible;
}
 
 .eu-hero__content {
	 flex: 1;
	 display: flex;
	 flex-direction: column;
	 justify-content: center;
	 padding-block: clamp(8px, 1.2vh + 0.3rem, 32px);
 }
 
 .eu-hero__title {
	 margin: 0 0 clamp(8px, 0.7vh + 0.3rem, 18px);
	 font-size: clamp(1.15rem, 0.75rem + 1.05vw, 2.05rem);
	 font-weight: 300;
	 line-height: 1.25;
	 color: #00b2a9;
	 opacity: 0;
	 animation: eu-fade-in 1.1s cubic-bezier(0.4, 0, 0.2, 1) 0.3s forwards;
 }
 
 .eu-hero__title strong {
	 font-weight: 700;
 }
 
 .eu-hero__subtitle {
	 margin: 0 0 clamp(8px, 0.8vh + 0.3rem, 18px);
	 max-width: 38ch;
	 font-size: clamp(1.05rem, 0.7rem + 0.95vw, 1.75rem);
	 font-weight: 400;
	 line-height: 1.2;
	 color: #006D70;
	 opacity: 0;
	 animation: eu-fade-in 1.1s cubic-bezier(0.4, 0, 0.2, 1) 0.45s forwards;
 }
 
 .eu-hero__note {
	 margin: 0;
	 font-size: clamp(0.9rem, 0.65rem + 0.55vw, 1.3rem);
	 font-weight: 400;
	 line-height: 1.2;
	 color: #00b2a9;
	 opacity: 0;
	 animation: eu-fade-in 1.1s cubic-bezier(0.4, 0, 0.2, 1) 0.6s forwards;
 }
 
 .eu-hero__note strong {
	 font-weight: 700;
 }
 
 .eu-hero__actions {
	 display: flex;
	 flex-direction: column;
	 align-items: flex-start;
	 gap: clamp(8px, 0.8vh + 0.3rem, 18px);
 }
 
 .eu-hero__btn {
	 display: inline-flex;
	 align-items: center;
	 justify-content: center;
	 width: max-content;
	 min-width: 0;
	 max-width: calc(clamp(24px, 1.2vw + 0.9rem, 36px) + 10px);
	 padding: 5px;
	 gap: 0;
	 background: #00b2a9;
	 border-radius: 999px;
	 color: #ffffff;
	 font-size: clamp(0.85rem, 0.6rem + 0.55vw, 1.2rem);
	 font-weight: 400;
	 line-height: 1.3;
	 text-decoration: none;
	 overflow: hidden;
	 opacity: 0;
	 transition: background-color 0.2s ease;
	 animation:
		 eu-btn-expand 1.4s cubic-bezier(0.4, 0, 0.2, 1) 0.7s forwards,
		 eu-fade-in 1s cubic-bezier(0.4, 0, 0.2, 1) 0.7s forwards;
 }
 
 .eu-hero__btn:nth-child(2) {
	 animation-delay: 0.95s, 0.95s;
 }
 
 .eu-hero__btn:hover,
 .eu-hero__btn:focus-visible {
	 background: #009a94;
	 color: #ffffff;
 }
 
 .eu-hero__btn-text {
	 max-width: 0;
	 opacity: 0;
	 overflow: hidden;
	 white-space: nowrap;
	 animation: eu-btn-text-in 1.4s cubic-bezier(0.4, 0, 0.2, 1) 0.7s forwards;
 }
 
 .eu-hero__btn:nth-child(2) .eu-hero__btn-text {
	 animation-delay: 0.95s;
 }
 
 .eu-hero__btn-text strong {
	 font-weight: 700;
 }
 
 @keyframes eu-fade-in {
	 from {
		 opacity: 0;
	 }
 
	 to {
		 opacity: 1;
	 }
 }
 
 @keyframes eu-btn-expand {
	 0% {
		 max-width: calc(clamp(24px, 1.2vw + 0.9rem, 36px) + 10px);
		 padding: 5px;
		 gap: 0;
		 justify-content: center;
	 }
 
	 100% {
		 max-width: 100%;
		 padding: 5px 5px 5px clamp(16px, 1vw + 0.5rem, 28px);
		 gap: clamp(10px, 0.8vw + 0.4rem, 24px);
		 justify-content: space-between;
	 }
 }
 
 @keyframes eu-btn-text-in {
	 0% {
		 max-width: 0;
		 opacity: 0;
	 }
 
	 35% {
		 opacity: 0;
	 }
 
	 100% {
		 max-width: 40rem;
		 opacity: 1;
	 }
 }
 
 @media (prefers-reduced-motion: reduce) {
	 .eu-hero__logo,
	 .eu-hero__plug,
	 .eu-hero__title,
	 .eu-hero__subtitle,
	 .eu-hero__note,
	 .eu-hero__panel-right,
	 .eu-hero__btn,
	 .eu-hero__btn-text {
		 animation: none;
		 opacity: 1;
	 }
 
	 .eu-hero__btn {
		 width: max-content;
		 max-width: 100%;
		 padding: 5px 5px 5px clamp(24px, 2.8vw, 32px);
		 gap: clamp(16px, 2.5vw, 28px);
		 border-radius: 999px;
		 justify-content: space-between;
	 }
 
	 .eu-hero__btn-text {
		 max-width: none;
	 }
 }
 
 .eu-hero__btn-icon {
	 display: flex;
	 flex-shrink: 0;
	 align-items: center;
	 justify-content: center;
	 width: clamp(24px, 1.2vw + 0.9rem, 36px);
	 height: clamp(24px, 1.2vw + 0.9rem, 36px);
	 background: #ffffff;
	 border-radius: 50%;
 }
 
 .eu-hero__btn-icon img {
	 display: block;
	 width: clamp(12px, 0.6vw + 0.45rem, 18px);
	 height: auto;
 }
 
 .eu-hero__panel-right {
	 position: relative;
	 min-height: 0;
	 background: #006d70;
	 opacity: 0;
	 animation: eu-fade-in 1.2s cubic-bezier(0.4, 0, 0.2, 1) 0.2s forwards;
 }
 
.eu-hero__slider {
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	background: #006d70;
	touch-action: pan-x;
	--eu-slider-duration: 6s;
}
 
 .eu-hero__slides {
	 position: relative;
	 width: 100%;
	 height: 100%;
 }
 
 .eu-hero__slide {
	 position: absolute;
	 inset: 0;
	 opacity: 0;
	 z-index: 0;
	 pointer-events: none;
	 transition: opacity 1.2s cubic-bezier(0.45, 0, 0.15, 1);
 }
 
 .eu-hero__slide.is-active {
	 opacity: 1;
	 z-index: 1;
	 pointer-events: auto;
 }
 
 .eu-hero__slide img {
	 display: block;
	 width: 100%;
	 height: 100%;
	 object-fit: cover;
	 object-position: center;
 }
 
 .eu-hero__slider-dots {
	 position: absolute;
	 left: 50%;
	 bottom: clamp(20px, 4vh, 36px);
	 z-index: 2;
	 display: flex;
	 align-items: flex-end;
	 justify-content: center;
	 gap: clamp(5px, 0.8vw, 8px);
	 transform: translateX(-50%);
 }
 
 .eu-hero__slider-dot {
	 display: block;
	 width: clamp(26px, 3.2vw, 36px);
	 height: 3px;
	 padding: 0;
	 border: 0;
	 border-radius: 0;
	 background: rgba(255, 255, 255, 0.55);
	 cursor: pointer;
	 transform: scaleY(1);
	 transform-origin: bottom center;
	 transition:
		 background-color 0.45s ease,
		 height 0.85s cubic-bezier(0.4, 0, 0.2, 1),
		 transform 0.85s cubic-bezier(0.4, 0, 0.2, 1);
 }
 
 .eu-hero__slider-dot.is-active {
	 height: clamp(5px, 0.7vw, 7px);
	 background: #00b2a9;
	 animation: eu-dot-progress var(--eu-slider-duration) linear forwards;
 }
 
 .eu-hero__slider-dot:hover,
 .eu-hero__slider-dot:focus-visible {
	 background: rgba(255, 255, 255, 0.85);
 }
 
 .eu-hero__slider-dot.is-active:hover,
 .eu-hero__slider-dot.is-active:focus-visible {
	 background: #00b2a9;
 }
 
 @keyframes eu-dot-progress {
	 0% {
		 transform: scaleY(0.45);
	 }
 
	 22% {
		 transform: scaleY(1);
	 }
 
	 100% {
		 transform: scaleY(1);
	 }
 }
 
 @media (prefers-reduced-motion: reduce) {
	 .eu-hero__slider-dot.is-active {
		 animation: none;
		 height: clamp(5px, 0.7vw, 7px);
	 }
 
	 .eu-hero__slide {
		 transition: none;
	 }
 
	 .eu-hero__backdrop-slide {
		 transition: none;
	 }
 }
 
 .eu-hero__backdrop {
	 position: absolute;
	 inset: 0;
	 z-index: 0;
	 overflow: hidden;
	 pointer-events: none;
	 background: #006d70;
 }
 
 .eu-hero__backdrop-slide {
	 position: absolute;
	 inset: 0;
	 opacity: 0;
	 z-index: 0;
	 transition: opacity 1.2s cubic-bezier(0.45, 0, 0.15, 1);
	 filter: grayscale(100%);
 }
 
 .eu-hero__backdrop-slide.is-active {
	 opacity: 1;
	 z-index: 1;
 }
 
 .eu-hero__backdrop-slide img {
	 display: block;
	 width: 100%;
	 height: 100%;
	 object-fit: cover;
	 object-position: center;
 }
 
 .eu-hero::before {
	 content: "";
	 position: absolute;
	 inset: 0;
	 z-index: 1;
	 background: #00d9d0;
	 opacity: 0.78;
 }
 
 /* —— Responsive —— */
 @media (max-width: 1100px) {
	 .eu-hero__panel {
		 width: 88vw;
		 height: 78vh;
		 border-radius: clamp(28px, 3vw, 44px);
	 }
 
	 .eu-hero__panel-left {
		 padding: clamp(40px, 4.5vw, 56px) clamp(36px, 4.5vw, 52px) clamp(28px, 3.5vw, 40px);
	 }
 
	 .eu-hero__plug {
		 width: clamp(160px, 30vw, 300px);
		 right: clamp(-56px, -6vw, -24px);
	 }
 
	 .eu-hero__title {
		 font-size: clamp(1.35rem, 2.4vw, 1.9rem);
	 }
 
	 .eu-hero__subtitle {
		 font-size: clamp(1.2rem, 2.2vw, 1.55rem);
	 }
 
	 .eu-hero__note {
		 font-size: clamp(1rem, 1.6vw, 1.2rem);
	 }
 
	 .eu-hero__btn {
		 font-size: clamp(0.95rem, 1.4vw, 1.15rem);
	 }
 }
 
@media (max-width: 860px) {
	html:has(body.euromex-home-page),
	body.euromex-home-page {
		height: 100%;
		height: 100dvh;
		max-height: 100dvh;
		overflow: hidden;
		overscroll-behavior: none;
		touch-action: manipulation;
	}

	body.euromex-home-page {
		position: fixed;
		inset: 0;
		width: 100%;
	}

	body.euromex-home-page #main-container,
	body.euromex-home-page main.site-main,
	body.euromex-home-page .euromex-home {
		height: 100%;
		max-height: 100%;
		overflow: hidden;
	}

	.eu-hero {
		align-items: center;
		justify-content: center;
		height: 100%;
		min-height: 0;
		max-height: 100%;
		padding: clamp(12px, 2.5vw, 20px);
		overflow: hidden;
		touch-action: manipulation;
	}

	.eu-hero__slider {
		touch-action: pan-x;
	}
 
	 .eu-hero__panel {
		 grid-template-columns: 1fr;
		 grid-template-rows: minmax(170px, 38%) 1fr;
		 width: min(92vw, 420px);
		 height: min(78vh, 720px);
		 max-height: 78vh;
		 border-radius: 40px;
	 }
 
	 .eu-hero__panel-right {
		 order: -1;
		 min-height: 0;
	 }
 
	 .eu-hero__panel-left {
		 display: flex;
		 flex-direction: column;
		 justify-content: flex-start;
		 gap: 14px;
		 height: 100%;
		 min-height: 0;
		 padding: 32px 24px 30px;
		 overflow: hidden;
	 }
 
	 .eu-hero__panel-top {
		 position: relative;
		 z-index: 2;
		 flex-shrink: 0;
	 }
 
	 .eu-hero__logo img {
		 width: clamp(130px, 36vw, 168px);
	 }
 
	 .eu-hero__plug {
		 display: block;
		 width: clamp(185px, 52vw, 250px);
		 top: 35px;
		 right: -90px;
		 margin: 0;
		 transform: rotate(40deg);
		 transform-origin: top right;
	 }
 
	 .eu-hero__content {
		 flex: 1 1 auto;
		 display: flex;
		 flex-direction: column;
		 justify-content: center;
		 gap: 10px;
		 min-height: 0;
		 padding-block: 0;
	 }
 
	 .eu-hero__title {
		 font-size: clamp(1.35rem, 4.4vw, 1.65rem);
		 margin-bottom: 0;
		 line-height: 1.2;
	 }
 
	 .eu-hero__subtitle {
		 max-width: none;
		 font-size: clamp(1.05rem, 3.5vw, 1.25rem);
		 margin-bottom: 0;
		 line-height: 1.3;
	 }
 
	 .eu-hero__note {
		 font-size: clamp(0.95rem, 3.1vw, 1.1rem);
		 line-height: 1.3;
	 }
 
	 .eu-hero__actions {
		 flex-shrink: 0;
		 gap: 10px;
		 width: 100%;
		 margin-top: 0;
		 padding-top: 0;
	 }
 
	 .eu-hero__btn {
		 width: max-content;
		 max-width: 100%;
		 font-size: clamp(0.98rem, 3.2vw, 1.12rem);
	 }
 
	 .eu-hero__btn-icon {
		 width: 34px;
		 height: 34px;
		 flex-shrink: 0;
	 }
 
	 @keyframes eu-btn-expand {
		 0% {
			 max-width: calc(clamp(32px, 3.5vw, 38px) + 8px);
			 padding: 6px;
			 gap: 0;
			 justify-content: center;
		 }
 
		 100% {
			 max-width: 100%;
			 padding: 6px 6px 6px 18px;
			 gap: 14px;
			 justify-content: space-between;
		 }
	 }
 
	 .eu-hero__slider-dots {
		 bottom: 14px;
	 }
 
	 .eu-hero__slider-dot {
		 width: 20px;
	 }
 }
 
 @media (max-width: 520px) {
	 .eu-hero {
		 padding: 10px;
	 }
 
	 .eu-hero__panel {
		 width: 92vw;
		 height: min(80vh, 680px);
		 max-height: 80vh;
		 border-radius: 36px;
		 grid-template-rows: minmax(150px, 36%) 1fr;
		 box-shadow:
			 0 18px 48px rgba(0, 0, 0, 0.24),
			 0 8px 20px rgba(0, 0, 0, 0.14);
	 }
 
	 .eu-hero__panel-left {
		 gap: 12px;
		 padding: 28px 20px 26px;
		 overflow: hidden;
	 }
 
	 .eu-hero__logo img {
		 width: clamp(118px, 38vw, 150px);
	 }
 
	 .eu-hero__plug {
		 display: block;
		 width: clamp(165px, 60vw, 240px);
		 top: 35px;
		 right: -85px;
		 margin: 0;
		 transform: rotate(40deg);
		 transform-origin: top right;
	 }
 
	 .eu-hero__content {
		 gap: 8px;
	 }
 
	 .eu-hero__title {
		 font-size: clamp(1.2rem, 5vw, 1.4rem);
	 }
 
	 .eu-hero__subtitle {
		 font-size: clamp(0.95rem, 3.8vw, 1.1rem);
		 line-height: 1.25;
	 }
 
	 .eu-hero__note {
		 font-size: clamp(0.88rem, 3.4vw, 1rem);
	 }
 
	 .eu-hero__actions {
		 gap: 8px;
		 padding-top: 0;
	 }
 
	 .eu-hero__btn {
		 font-size: 0.98rem;
	 }
 
	 .eu-hero__btn-icon {
		 width: 32px;
		 height: 32px;
	 }
 
	 @keyframes eu-btn-expand {
		 0% {
			 max-width: calc(clamp(30px, 3.5vw, 36px) + 8px);
			 padding: 5px;
			 gap: 0;
			 justify-content: center;
		 }
 
		 100% {
			 max-width: 100%;
			 padding: 5px 5px 5px 16px;
			 gap: 12px;
			 justify-content: space-between;
		 }
	 }
 
	 .eu-hero__slider-dots {
		 bottom: 10px;
		 gap: 4px;
	 }
 
	 .eu-hero__slider-dot {
		 width: 16px;
		 height: 2px;
	 }
 }
 