/* ===========================================================================
   AVUKATLIK BÜROSU — Animasyon Sistemi (Zenginleştirilmiş)
   IntersectionObserver + GPU-hızlandırılmış mikro etkileşimler
   --------------------------------------------------------------------------- */

/* ===== SCROLL REVEAL — Ana mekanik ====================================== */
[data-avb-reveal] {
	opacity: 0;
	transform: translateY(50px);
	transition:
		opacity 1.1s cubic-bezier(0.16, 1, 0.3, 1),
		transform 1.1s cubic-bezier(0.16, 1, 0.3, 1),
		filter 1.1s cubic-bezier(0.16, 1, 0.3, 1);
	will-change: opacity, transform;
	filter: blur(4px);
}
[data-avb-reveal].is-revealed {
	opacity: 1; transform: translateY(0);
	filter: blur(0);
}

/* Reveal varyasyonları */
[data-avb-reveal="fade"]   { transform: none; }
[data-avb-reveal="left"]   { transform: translateX(-60px); }
[data-avb-reveal="right"]  { transform: translateX(60px); }
[data-avb-reveal="scale"]  { transform: scale(0.88); }
[data-avb-reveal="zoom"]   { transform: scale(1.12); opacity: 0; }
[data-avb-reveal="flip"]   { transform: rotateX(20deg) translateY(40px); transform-origin: bottom; }
[data-avb-reveal="words"]  { transform: none; filter: none; opacity: 1; }

[data-avb-reveal="left"].is-revealed,
[data-avb-reveal="right"].is-revealed { transform: translateX(0); }
[data-avb-reveal="scale"].is-revealed,
[data-avb-reveal="zoom"].is-revealed  { transform: scale(1); }
[data-avb-reveal="flip"].is-revealed  { transform: rotateX(0) translateY(0); }

/* Word-by-word reveal (hero başlık için) */
[data-avb-reveal="words"] .avb-word {
	display: inline-block;
	opacity: 0;
	transform: translateY(40px);
	filter: blur(6px);
	transition:
		opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
		transform 0.9s cubic-bezier(0.16, 1, 0.3, 1),
		filter 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}
[data-avb-reveal="words"].is-revealed .avb-word {
	opacity: 1; transform: translateY(0); filter: blur(0);
}

/* Stagger — kart kart açılma */
[data-avb-stagger] > * {
	opacity: 0;
	transform: translateY(40px);
	transition:
		opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
		transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
}
[data-avb-stagger].is-revealed > * { opacity: 1; transform: translateY(0); }

/* Counter cursor */
[data-avb-counter] { display: inline-block; }

/* ===== MAGNETIC BUTTON ================================================== */
.avb-btn--magnetic { transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease; }

/* ===== PARALLAX (JS uygular) ============================================ */
[data-avb-parallax] { will-change: transform; }

/* ===== HOVER LIFT ======================================================= */
.avb-hover-lift { transition: transform var(--avb-transition), box-shadow var(--avb-transition); }
.avb-hover-lift:hover { transform: translateY(-6px); }

/* ===== SHIMMER (gradient text) ========================================= */
.avb-shimmer {
	background: linear-gradient(110deg, var(--avb-primary) 0%, var(--avb-accent) 50%, var(--avb-primary) 100%);
	background-size: 200% auto;
	-webkit-background-clip: text; background-clip: text;
	color: transparent; -webkit-text-fill-color: transparent;
	animation: avb-shimmer 6s ease-in-out infinite;
}
@keyframes avb-shimmer {
	0%, 100% { background-position: 0% 50%; }
	50% { background-position: 100% 50%; }
}

/* ===== SOFT BREATHE (sayaç ikonları için) ============================== */
.avb-counter__icon { animation: avb-breathe 4s ease-in-out infinite; }
@keyframes avb-breathe {
	0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(201,169,97,0.3); }
	50% { transform: scale(1.06); box-shadow: 0 0 0 10px rgba(201,169,97,0); }
}

/* ===== SERVICE CARD — 3D tilt + glow ================================== */
.avb-service-card {
	transform-style: preserve-3d;
	perspective: 1000px;
}
.avb-service-card::after {
	content: ''; position: absolute; inset: 0;
	background: radial-gradient(circle at var(--mx, 50%) var(--my, 50%), rgba(201,169,97,0.15) 0%, transparent 60%);
	opacity: 0;
	transition: opacity 0.6s ease;
	pointer-events: none;
	border-radius: inherit;
	z-index: 1;
}
.avb-service-card:hover::after { opacity: 1; }
.avb-service-card__body, .avb-service-card__media { position: relative; z-index: 2; }

/* ===== HERO PATTERN — Ken Burns style ============================== */
.avb-hero__bg img {
	animation: avb-kenburns 22s ease-in-out infinite alternate;
}
@keyframes avb-kenburns {
	0%   { transform: scale(1.05) translate(0, 0); }
	100% { transform: scale(1.18) translate(-2%, -3%); }
}

/* ===== HERO CARD — soft glow ============================== */
.avb-hero__card {
	animation: avb-glow 6s ease-in-out infinite alternate;
}
@keyframes avb-glow {
	0%   { box-shadow: 0 20px 60px rgba(201,169,97,0.08); }
	100% { box-shadow: 0 30px 80px rgba(201,169,97,0.20); }
}

/* ===== BRAND MARK — gentle rotate on hover ======================= */
.avb-brand__mark {
	transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.avb-brand:hover .avb-brand__mark { transform: rotate(-10deg) scale(1.06); }

/* ===== CASE CARD — gradient slide overlay ========================== */
.avb-case-card__media::before {
	content: '';
	position: absolute; inset: 0;
	background: linear-gradient(135deg, rgba(10,31,68,0) 0%, rgba(10,31,68,0.4) 100%);
	opacity: 0; transition: opacity 0.6s;
	z-index: 1; pointer-events: none;
}
.avb-case-card:hover .avb-case-card__media::before { opacity: 1; }

/* ===== FAQ — chevron rotation already in main.css ============= */

/* ===== TIMELINE STEP — circle hover ============================== */
.avb-process__step-circle {
	position: relative;
}
.avb-process__step-circle::after {
	content: '';
	position: absolute; inset: -4px;
	border: 2px dashed var(--avb-accent);
	border-radius: 50%;
	opacity: 0; transform: scale(0.92) rotate(0deg);
	transition: opacity 0.6s, transform 0.8s;
}
.avb-process__step:hover .avb-process__step-circle::after {
	opacity: 0.6; transform: scale(1.08) rotate(180deg);
}

/* ===== EYEBROW DOT — pulse ring ============================== */
@keyframes avb-pulse-2 {
	0% { box-shadow: 0 0 0 0 rgba(201,169,97,0.5); }
	100% { box-shadow: 0 0 0 16px rgba(201,169,97,0); }
}
.avb-eyebrow__dot { animation: avb-pulse-2 2.2s ease-out infinite; }

/* ===== SCROLL-INDICATOR ============================================ */
.avb-scroll-progress {
	position: fixed; top: 0; left: 0; right: 0;
	height: 3px; z-index: 99;
	background: transparent; pointer-events: none;
}
.avb-scroll-progress__bar {
	height: 100%;
	background: linear-gradient(90deg, var(--avb-accent), var(--avb-primary));
	transform-origin: left;
	transform: scaleX(0);
	transition: transform 0.1s linear;
}

/* ===== FAB - Smooth scroll & WhatsApp pulse ====================== */
.avb-fab--wa svg { animation: avb-wa-wave 2.5s ease-in-out infinite; }
@keyframes avb-wa-wave {
	0%, 100% { transform: rotate(0deg); }
	25% { transform: rotate(-12deg); }
	75% { transform: rotate(12deg); }
}

/* ===== SECTION TITLE - underline draw on reveal ================== */
.avb-section-title {
	position: relative; display: inline-block;
}
.avb-section-heading--center .avb-section-title { display: inline-block; }

/* ===== TEAM CARD - hover overlay ================================ */
.avb-team-card__media {
	position: relative; overflow: hidden;
}
.avb-team-card__media::after {
	content: '';
	position: absolute; inset: 0;
	background: linear-gradient(180deg, transparent 40%, rgba(10,31,68,0.85) 100%);
	opacity: 0; transition: opacity 0.6s;
	pointer-events: none;
}
.avb-team-card:hover .avb-team-card__media::after { opacity: 1; }

/* ===== HERO TITLE WORD-BY-WORD em emphasis ==================== */
.avb-hero__title em {
	display: inline-block;
	background: linear-gradient(135deg, var(--avb-accent) 0%, #E5C783 100%);
	-webkit-background-clip: text; background-clip: text;
	color: transparent; -webkit-text-fill-color: transparent;
	font-style: italic;
}

/* ===== SMOOTH SCROLL — chip-friendly ===== */
html { scroll-behavior: smooth; }

/* ===== PAGE LOADER (opsiyonel, hızlı sayfa girişi) =============== */
body.avb-loading { overflow: hidden; }
body.avb-loading::before {
	content: '';
	position: fixed; inset: 0; z-index: 99999;
	background: var(--avb-primary);
	animation: avb-loader-out 0.6s 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes avb-loader-out {
	0% { transform: translateY(0); }
	100% { transform: translateY(-100%); }
}

/* ===== PREFERS REDUCED MOTION =================================== */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
	[data-avb-reveal] { opacity: 1; transform: none; filter: none; }
	[data-avb-stagger] > * { opacity: 1; transform: none; }
}
