/* Pianíssimo Bem Vindo */
.pbv-widget{
	--pbv-columns:4;
	--pbv-gap:16px;
	--pbv-lift:6px;
	--pbv-scale:1.02;
	--pbv-icon-scale:1.04;
	--pbv-animation-color:#d09a53;
	--pbv-animation-duration:7.2s;
	position:relative;
	width:100%;
}

.pbv-swiper{
	position:relative;
	overflow:hidden;
	padding:6px 4px 42px;
}

.pbv-widget.is-grid .pbv-swiper{
	overflow:visible;
	padding-bottom:0;
}

.pbv-cards{
	display:grid;
	grid-template-columns:repeat(var(--pbv-columns),minmax(0,1fr));
	gap:var(--pbv-gap);
	align-items:stretch;
}

.pbv-widget.is-carousel .pbv-cards{
	display:flex;
	gap:0;
}

.pbv-card{
	position:relative;
	overflow:hidden;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:flex-start;
	min-width:0;
	min-height:235px;
	padding:20px 18px 18px;
	text-align:center;
	text-decoration:none;
	color:inherit;
	border:1px solid rgba(191,141,75,.24);
	border-radius:22px;
	background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.80));
	box-shadow:0 16px 34px rgba(84,55,26,.07),inset 0 1px 0 rgba(255,255,255,.88);
	transition:transform .36s cubic-bezier(.2,.8,.2,1),border-color .36s ease,box-shadow .36s ease,background .36s ease;
}

.pbv-widget.is-grid .pbv-card{
	width:auto!important;
	margin-right:0!important;
}

.pbv-card:focus-visible{
	outline:2px solid var(--pbv-animation-color);
	outline-offset:3px;
}

.pbv-hover-lift .pbv-card:hover{
	transform:translateY(calc(-1 * var(--pbv-lift)));
}

.pbv-hover-scale .pbv-card:hover{
	transform:scale(var(--pbv-scale));
}

.pbv-hover-lift_scale .pbv-card:hover{
	transform:translateY(calc(-1 * var(--pbv-lift))) scale(var(--pbv-scale));
}

.pbv-card:hover{
	border-color:rgba(191,141,75,.56);
	box-shadow:0 22px 44px rgba(84,55,26,.12),0 0 18px rgba(191,141,75,.08);
}

.pbv-card::before{
	content:"";
	position:absolute;
	inset:0;
	z-index:0;
	border-radius:inherit;
	padding:1px;
	background:linear-gradient(135deg,rgba(193,139,75,.18),var(--pbv-animation-color),rgba(193,139,75,.18));
	-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
	-webkit-mask-composite:xor;
	mask-composite:exclude;
	opacity:.30;
	pointer-events:none;
}

.pbv-shine .pbv-card::after{
	content:"";
	position:absolute;
	top:0;
	left:-145%;
	z-index:1;
	width:75%;
	height:100%;
	transform:skewX(-22deg);
	background:linear-gradient(90deg,transparent,rgba(255,255,255,.48),transparent);
	opacity:0;
	pointer-events:none;
}

.pbv-sequential .pbv-card{
	animation:pbvFocus var(--pbv-animation-duration) ease-in-out infinite;
	animation-delay:var(--pbv-sequence-delay, 0s);
}

.pbv-sequential.pbv-shine .pbv-card::after{
	animation:pbvShine var(--pbv-animation-duration) ease-in-out infinite;
	animation-delay:var(--pbv-sequence-delay, 0s);
}

.pbv-card > *{
	position:relative;
	z-index:2;
}

.pbv-tag{
	display:inline-block;
	margin:0 0 12px;
	padding:6px 11px;
	border-radius:999px;
	background:rgba(191,141,75,.10);
	color:#a36f36;
	font-size:10px;
	font-weight:700;
	line-height:1.2;
	letter-spacing:1.2px;
	text-transform:uppercase;
}

.pbv-icon{
	display:flex;
	align-items:center;
	justify-content:center;
	flex:0 0 auto;
	width:68px;
	height:68px;
	margin:0 auto 14px;
	border-radius:20px;
	background:#fff;
	color:#b57b38;
	box-shadow:0 14px 28px rgba(84,55,26,.08),inset 0 1px 0 rgba(255,255,255,.90);
	transition:transform .36s ease,box-shadow .36s ease;
}

.pbv-card:hover .pbv-icon{
	transform:translateY(-2px) scale(var(--pbv-icon-scale));
	box-shadow:0 18px 32px rgba(84,55,26,.12),0 0 18px rgba(191,141,75,.08);
}

.pbv-icon img,
.pbv-icon svg{
	display:block;
	width:40px;
	height:40px;
	object-fit:contain;
}

.pbv-icon i{
	font-size:40px;
}

.pbv-symbol{
	font-family:Georgia,"Times New Roman",serif;
	font-size:40px;
	line-height:1;
}

.pbv-crown{
	font-size:44px;
	text-shadow:0 2px 0 rgba(255,255,255,.9),0 8px 18px rgba(181,123,56,.16);
}

.pbv-eyebrow{
	margin:0 0 8px;
	color:#8f7c69;
	font-size:11px;
	font-weight:700;
	line-height:1.3;
	letter-spacing:1.1px;
	text-transform:uppercase;
}

.pbv-impact{
	margin:0 0 8px;
	color:#332921;
	font-family:"Cormorant Garamond",Georgia,serif;
	font-size:34px;
	line-height:1.05;
	font-weight:700;
	letter-spacing:.2px;
	text-wrap:balance;

	/* Mantém números como 5, 50 e 1.000 na mesma altura das letras */
	font-variant-numeric:lining-nums proportional-nums;
	font-feature-settings:"lnum" 1,"onum" 0,"pnum" 1;
	-webkit-font-feature-settings:"lnum" 1,"onum" 0,"pnum" 1;
}

.pbv-stars{
	display:flex;
	justify-content:center;
	gap:4px;
	margin:0 0 8px;
	color:#c28a43;
	filter:drop-shadow(0 4px 8px rgba(194,138,67,.16));
}

.pbv-stars span{
	font-size:17px;
	line-height:1;
}

.pbv-support{
	max-width:230px;
	margin:0 auto;
	color:#b0783b;
	font-size:12px;
	line-height:1.45;
	font-weight:700;
	letter-spacing:.8px;
	text-transform:uppercase;
}

.pbv-arrow{
	position:absolute;
	top:50%;
	z-index:10;
	display:none!important;
	align-items:center;
	justify-content:center;
	width:42px;
	height:42px;
	padding:0;
	border:1px solid rgba(191,141,75,.26);
	border-radius:50%;
	background:#fff;
	color:#a36f36;
	box-shadow:0 10px 24px rgba(84,55,26,.10);
	cursor:pointer;
	transform:translateY(-50%);
	transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}

.pbv-arrow:hover{
	transform:translateY(-50%) scale(1.06);
	border-color:rgba(191,141,75,.55);
	box-shadow:0 14px 28px rgba(84,55,26,.14);
}


.pbv-prev{left:8px}
.pbv-next{right:8px}

.pbv-widget.show-arrows .pbv-arrow{
	display:flex!important;
}

.pbv-widget:not(.show-arrows) .pbv-arrow{
	display:none!important;
	visibility:hidden!important;
	pointer-events:none!important;
}

.pbv-pagination{
	display:none!important;
	bottom:6px!important;
}

.pbv-widget.show-dots .pbv-pagination{
	display:block!important;
}

.pbv-widget:not(.show-dots) .pbv-pagination{
	display:none!important;
	visibility:hidden!important;
	pointer-events:none!important;
}

.pbv-pagination .swiper-pagination-bullet{
	width:8px;
	height:8px;
	background:#d8c2a5;
	opacity:1;
	transition:width .25s ease,border-radius .25s ease,background-color .25s ease;
}

.pbv-pagination .swiper-pagination-bullet-active{
	width:22px;
	border-radius:999px;
	background:#b0783b;
}

@keyframes pbvFocus{
	0%,17%,100%{
		border-color:rgba(191,141,75,.24);
		box-shadow:0 16px 34px rgba(84,55,26,.07),inset 0 1px 0 rgba(255,255,255,.88);
	}
	6%,11%{
		border-color:var(--pbv-animation-color);
		box-shadow:0 22px 44px rgba(84,55,26,.13),0 0 22px color-mix(in srgb,var(--pbv-animation-color) 30%,transparent),inset 0 1px 0 rgba(255,255,255,.95);
	}
}

@keyframes pbvShine{
	0%,17%,100%{left:-145%;opacity:0}
	5%,11%{left:135%;opacity:.85}
}

@media (max-width:1024px){
	.pbv-cards{--pbv-columns:2}
}

@media (max-width:767px){
	.pbv-cards{--pbv-columns:1}
	.pbv-impact{font-size:30px}
	.pbv-card{min-height:220px}
}

@media (prefers-reduced-motion:reduce){
	.pbv-card,
	.pbv-card::after{
		animation:none!important;
		transition:none!important;
	}
}


/* Correção de algarismos aplicada também no editor e no frontend */
.elementor-widget-pianissimo_bem_vindo .pbv-impact,
.elementor-editor-active .elementor-widget-pianissimo_bem_vindo .pbv-impact{
	font-variant-numeric:lining-nums proportional-nums!important;
	font-feature-settings:"lnum" 1,"onum" 0,"pnum" 1!important;
	-webkit-font-feature-settings:"lnum" 1,"onum" 0,"pnum" 1!important;
}


/* =========================================================
   CORREÇÃO V1.0.3 — NÚMEROS 5, 50, 1.000 E OUTROS
   ========================================================= */
.pbv-number{
	display:inline-block;
	font-family:Montserrat,Arial,Helvetica,sans-serif;
	font-style:normal;
	font-variant-numeric:lining-nums proportional-nums;
	font-feature-settings:"lnum" 1,"onum" 0,"pnum" 1;
	-webkit-font-feature-settings:"lnum" 1,"onum" 0,"pnum" 1;
	text-transform:none;
	line-height:1;
	vertical-align:baseline;
}

/* Evita heranças de fontes decorativas com algarismos antigos */
.elementor-widget-pianissimo_bem_vindo .pbv-impact .pbv-number{
	font-variant-numeric:lining-nums proportional-nums!important;
	font-feature-settings:"lnum" 1,"onum" 0,"pnum" 1!important;
	-webkit-font-feature-settings:"lnum" 1,"onum" 0,"pnum" 1!important;
}


/* V1.0.4 — controles e visibilidade das setas/bullets */
.pbv-arrow i,
.pbv-arrow svg{
	display:block;
	width:16px;
	height:16px;
	font-size:16px;
	fill:currentColor;
}

.pbv-widget.is-grid .pbv-arrow,
.pbv-widget.is-grid .pbv-pagination{
	display:none!important;
	visibility:hidden!important;
	pointer-events:none!important;
}

.pbv-widget.is-carousel:not(.show-arrows) .pbv-arrow{
	display:none!important;
}

.pbv-widget.is-carousel:not(.show-dots) .pbv-pagination{
	display:none!important;
}

/* Evita reaproveitamento de classes antigas no editor do Elementor */
.elementor-editor-active .pbv-widget:not(.show-arrows) .pbv-arrow,
.elementor-editor-active .pbv-widget:not(.show-dots) .pbv-pagination{
	display:none!important;
	visibility:hidden!important;
	opacity:0!important;
	pointer-events:none!important;
}


/* V1.0.5 — cards com mesma altura no mobile e nos demais dispositivos */
.pbv-swiper .swiper-wrapper{
	align-items:stretch;
}

.pbv-swiper .swiper-slide{
	height:auto;
	display:flex;
}

.pbv-swiper .swiper-slide .pbv-card{
	width:100%;
	height:100%;
}

.pbv-widget.pbv-equal-height .pbv-card{
	height:100%;
}

@media (max-width:767px){
	.pbv-swiper .swiper-slide{
		align-self:stretch;
	}
	.pbv-widget.pbv-equal-height .pbv-card{
		min-height:var(--pbv-equal-mobile-height, 235px);
	}
}


/* V1.0.6 — quebra manual e sequência real, um card por vez */
.pbv-manual-break{
	display:block;
	content:"";
}

.pbv-sequential .pbv-card{
	animation-delay:var(--pbv-sequence-delay, 0s)!important;
}

.pbv-sequential.pbv-shine .pbv-card::after{
	animation-delay:var(--pbv-sequence-delay, 0s)!important;
}

/* Destaque curto para não sobrepor a animação do card seguinte */
@keyframes pbvFocus{
	0%,12%,100%{
		border-color:rgba(191,141,75,.24);
		box-shadow:0 16px 34px rgba(84,55,26,.07),inset 0 1px 0 rgba(255,255,255,.88);
	}
	3%,8%{
		border-color:var(--pbv-animation-color);
		box-shadow:0 22px 44px rgba(84,55,26,.13),0 0 22px color-mix(in srgb,var(--pbv-animation-color) 30%,transparent),inset 0 1px 0 rgba(255,255,255,.95);
	}
}

@keyframes pbvShine{
	0%,12%,100%{left:-145%;opacity:0}
	3%,8%{left:135%;opacity:.85}
}


/* V1.0.8 — sequência corrigida: apenas um card destacado por vez */
.pbv-sequential .pbv-card{
	animation-name:pbvFocus;
	animation-duration:var(--pbv-animation-duration);
	animation-timing-function:linear;
	animation-iteration-count:infinite;
	animation-delay:var(--pbv-sequence-delay, 0s)!important;
	animation-fill-mode:both;
}

.pbv-sequential.pbv-shine .pbv-card::after{
	animation-name:pbvShine;
	animation-duration:var(--pbv-animation-duration);
	animation-timing-function:linear;
	animation-iteration-count:infinite;
	animation-delay:var(--pbv-sequence-delay, 0s)!important;
	animation-fill-mode:both;
}

/*
 * A área ativa ocupa menos de 1/4 do ciclo.
 * Assim o destaque termina antes de o próximo card começar.
 */
@keyframes pbvFocus{
	0%,20%,100%{
		border-color:rgba(191,141,75,.24);
		box-shadow:
			0 16px 34px rgba(84,55,26,.07),
			inset 0 1px 0 rgba(255,255,255,.88);
	}
	4%,14%{
		border-color:var(--pbv-animation-color);
		box-shadow:
			0 22px 44px rgba(84,55,26,.13),
			0 0 24px color-mix(in srgb,var(--pbv-animation-color) 34%,transparent),
			inset 0 1px 0 rgba(255,255,255,.95);
	}
}

@keyframes pbvShine{
	0%,20%,100%{
		left:-145%;
		opacity:0;
	}
	4%{
		left:-145%;
		opacity:0;
	}
	14%{
		left:135%;
		opacity:.85;
	}
}
