/**
 * TIBOMED — jonlantiruvchi animatsiyalar
 */

/* ── Keyframes ── */
@keyframes tibo-fade-up {
	from {
		opacity: 0;
		transform: translateY(28px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes tibo-fade-in {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes tibo-scale-in {
	from {
		opacity: 0;
		transform: scale(0.92);
	}
	to {
		opacity: 1;
		transform: scale(1);
	}
}

@keyframes tibo-slide-right {
	from {
		opacity: 0;
		transform: translateX(-20px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

@keyframes tibo-float {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-10px); }
}

@keyframes tibo-line-grow {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}

@keyframes tibo-shimmer {
	0% { transform: translateX(-120%) skewX(-15deg); }
	100% { transform: translateX(220%) skewX(-15deg); }
}

@keyframes tibo-pulse-soft {
	0%, 100% { box-shadow: 0 0 0 0 rgba(67, 160, 71, 0.35); }
	50% { box-shadow: 0 0 0 10px rgba(67, 160, 71, 0); }
}

/* ── Scroll reveal ── */
.tibo-reveal {
	opacity: 0;
	transform: translateY(32px);
	transition:
		opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--tibo-stagger, 0s);
}

.tibo-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.tibo-reveal--scale {
	transform: translateY(20px) scale(0.96);
}

.tibo-reveal--scale.is-visible {
	transform: translateY(0) scale(1);
}

.tibo-reveal--left {
	transform: translateX(-28px);
}

.tibo-reveal--left.is-visible {
	transform: translateX(0);
}

/* ── Header scroll ── */
.tibo-header {
	transition: box-shadow 0.35s ease, transform 0.35s ease;
}

.tibo-header.is-scrolled {
	box-shadow: 0 8px 32px rgba(46, 125, 50, 0.12);
}

body.tibo-home-page:not(.tibo-anim-ready) .tibo-header {
	animation: tibo-slide-right 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}

body.tibo-home-page:not(.tibo-anim-ready) .tibo-bar--top {
	animation: tibo-fade-in 0.45s ease both;
}

/* ── Hero entrance ── */
.tibo-hero.is-loaded .tibo-banner--main .tibo-banner__tag {
	animation: tibo-fade-up 0.6s cubic-bezier(0.22, 1, 0.36, 1) 0.05s both;
}

.tibo-hero.is-loaded .tibo-banner--main .tibo-banner__title {
	animation: tibo-fade-up 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.12s both;
}

.tibo-hero.is-loaded .tibo-banner--main .tibo-banner__sub {
	animation: tibo-fade-up 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both;
}

.tibo-hero.is-loaded .tibo-banner--main .tibo-banner__list {
	animation: tibo-fade-up 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.28s both;
}

.tibo-hero.is-loaded .tibo-banner--main .tibo-btn-pill {
	animation: tibo-fade-up 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.36s both;
}

.tibo-hero.is-loaded .tibo-banner--main .tibo-banner__media img {
	animation:
		tibo-scale-in 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.15s both,
		tibo-float 5s ease-in-out 1.1s infinite;
}

.tibo-hero.is-loaded .tibo-banner--side {
	animation: tibo-fade-up 0.65s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.tibo-hero.is-loaded .tibo-hero__side .tibo-banner--side:nth-child(1) {
	animation-delay: 0.45s;
}

.tibo-hero.is-loaded .tibo-hero__side .tibo-banner--side:nth-child(2) {
	animation-delay: 0.58s;
}

.tibo-hero.is-loaded .tibo-banner--side .tibo-banner__product {
	animation: tibo-float 4.5s ease-in-out 1s infinite;
}

/* Section heading line */
.tibo-sec-head.is-visible .tibo-sec-head__line,
.tibo-sec-head--left.is-visible .tibo-sec-head__line {
	transform-origin: left center;
	animation: tibo-line-grow 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.15s both;
}

/* ── Kategoriya iconlari — silliq hover (box-shadow/scale yo'q) ── */
.tibo-cat-icon {
	transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.tibo-cat-icon:hover {
	transform: translateY(-3px);
	box-shadow: none !important;
	color: var(--t-text) !important;
}

.tibo-cat-icon:hover .tibo-cat-icon__name {
	color: var(--t-green) !important;
}

.tibo-cat-icon__name {
	transition: color 0.25s ease, font-weight 0.2s ease;
}

.tibo-cat-icon:hover .tibo-cat-icon__name {
	font-weight: 600;
}

.tibo-cat-icon__circle {
	transition:
		background 0.28s ease,
		border-color 0.28s ease,
		box-shadow 0.28s ease,
		transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.tibo-cat-icon:hover .tibo-cat-icon__circle {
	background: var(--t-green);
	border-color: var(--t-green);
	box-shadow: 0 6px 18px rgba(25, 118, 210, 0.18);
	transform: none;
}

.tibo-cat-icon__svg {
	transition: color 0.25s ease;
}

.tibo-cat-icon:hover .tibo-cat-icon__svg {
	color: #fff !important;
}

/* Kategoriya filter tugmalari */
.tibo-cat-filter {
	transition:
		border-color 0.25s ease,
		background 0.25s ease,
		color 0.25s ease,
		box-shadow 0.25s ease;
}

.tibo-cat-filter:hover {
	transform: none;
	border-color: var(--t-green);
	color: var(--t-green) !important;
	box-shadow: 0 4px 14px rgba(25, 118, 210, 0.1);
}

.tibo-cat-filter.is-active {
	animation: none;
	border-color: var(--t-blue);
	background: var(--t-green-pale);
	color: var(--t-blue) !important;
	box-shadow: 0 2px 10px rgba(46, 125, 50, 0.1);
}

.tibo-cat-filter__icon {
	transition: background 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.tibo-cat-filter:hover .tibo-cat-filter__icon {
	transform: scale(1.05);
}

/* ── Boshqa hoverlar ── */
.tibo-pcard {
	transition:
		box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1),
		transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.tibo-pcard:hover {
	transform: translateY(-6px);
}

.tibo-pcard__media img {
	transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s ease;
}

.tibo-pcard:hover .tibo-pcard__media img {
	transform: scale(1.08);
}

.tibo-pcard__action {
	transition: transform 0.25s ease, background 0.2s, color 0.2s, border-color 0.2s;
}

.tibo-pcard:hover .tibo-pcard__action {
	transform: scale(1.1);
}

.tibo-btn-pill {
	position: relative;
	overflow: hidden;
}

.tibo-btn-pill::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(105deg, transparent 40%, rgba(255, 255, 255, 0.28) 50%, transparent 60%);
	transform: translateX(-120%) skewX(-15deg);
	pointer-events: none;
}

.tibo-btn-pill:hover::after {
	animation: tibo-shimmer 0.75s ease;
}

.tibo-btn-pill:hover {
	transform: translateY(-2px);
}

.tibo-btn-pill__icon {
	transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.tibo-btn-pill:hover .tibo-btn-pill__icon {
	transform: translateX(3px);
}

.tibo-promo-row__item,
.tibo-banner--side,
.tibo-review,
.tibo-blog-card,
.tibo-trust__item {
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease;
}

.tibo-promo-row__item:hover,
.tibo-blog-card:hover,
.tibo-review:hover {
	transform: translateY(-4px);
	box-shadow: var(--t-shadow-lg);
}

.tibo-trust__item:hover {
	transform: translateY(-3px);
}

.tibo-trust__icon {
	transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.tibo-trust__item:hover .tibo-trust__icon {
	transform: scale(1.12) rotate(-4deg);
}

.tibo-carousel__arrow {
	transition: transform 0.25s ease, background 0.2s, box-shadow 0.2s;
}

.tibo-carousel__arrow:hover {
	transform: scale(1.08);
}

.tibo-carousel__dot {
	transition: width 0.3s ease, background 0.3s ease, transform 0.3s ease;
}

.tibo-carousel__dot.is-active {
	transform: scale(1.05);
}

.tibo-banner--side:hover .tibo-banner__product {
	transform: scale(1.05);
}

.tibo-banner__product {
	transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

/* Deal zone subtle bg shift */
.tibo-deal {
	position: relative;
	overflow: hidden;
}

.tibo-deal::before {
	content: "";
	position: absolute;
	inset: -50%;
	background: radial-gradient(circle at 30% 50%, rgba(67, 160, 71, 0.06) 0%, transparent 55%);
	pointer-events: none;
	animation: tibo-float 12s ease-in-out infinite;
}

@media (prefers-reduced-motion: reduce) {
	.tibo-reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}

	.tibo-hero.is-loaded .tibo-banner__media img,
	.tibo-hero.is-loaded .tibo-banner--side .tibo-banner__product,
	.tibo-deal::before {
		animation: none !important;
	}

	.tibo-cat-filter.is-active {
		animation: none;
	}

	.tibo-btn-pill:hover::after {
		animation: none;
	}
}
