/* Background noise overlay */
.noise {
  background-image:
    radial-gradient(circle at 10% 10%, rgba(255,255,255,0.12), transparent 40%),
    radial-gradient(circle at 90% 20%, rgba(255,255,255,0.10), transparent 45%),
    radial-gradient(circle at 40% 90%, rgba(255,255,255,0.08), transparent 40%);
}

html { scroll-behavior: smooth; }

/* Button float */
.btn-float {
  transition: transform 180ms ease-out, box-shadow 180ms ease-out, background-color 180ms ease-out;
  will-change: transform;
}
.btn-float:hover { transform: translateY(-2px); }
.btn-float:active { transform: translateY(0px); }
.btn-float--primary:hover { box-shadow: 0 18px 45px rgba(2, 6, 23, 0.22); }
.btn-float--secondary:hover { box-shadow: 0 14px 35px rgba(2, 6, 23, 0.14); }

/* Link hover */
.link-float {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  transition: transform 180ms ease-out, color 180ms ease-out;
  will-change: transform;
}
.link-float:hover { transform: translateY(-2px); }
.link-float:active { transform: translateY(0px); }

.link-underline {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  text-decoration: none;
}
.link-underline::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -4px;
  height: 2px;
  width: 100%;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 220ms ease-out;
  opacity: 0.45;
}
.link-underline:hover::after { transform: scaleX(1); }

/* Bubble / cards hover */
.bubble-hover {
  transition: transform 180ms ease-out, box-shadow 180ms ease-out, background-color 180ms ease-out, color 180ms ease-out, border-color 180ms ease-out;
  will-change: transform;
  transform: translateY(0);
}
.bubble-hover:hover { transform: translateY(-2px); }

.bubble-hover--light { box-shadow: 0 0 0 rgba(2, 6, 23, 0); }
.bubble-hover--light:hover { box-shadow: 0 14px 30px rgba(2, 6, 23, 0.08); }

.bubble-hover--dark { --tw-shadow: 0 0 #0000; }
.bubble-hover--dark:hover {
  --tw-shadow: 0 14px 30px rgba(0, 0, 0, 0.25);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}

/* KPI shadow (ring-compatible) */
.kpi-shadow { --tw-shadow: 0 0 #0000; transition: box-shadow 180ms ease-out; }
.kpi-shadow:hover {
  --tw-shadow: 0 14px 30px rgba(0, 0, 0, 0.25);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}

/* Tilt card */
.tilt-card {
  transform-style: preserve-3d;
  will-change: transform, box-shadow;
  transition: transform 180ms ease-out, box-shadow 180ms ease-out;
}
.tilt-card:hover {
  --tw-shadow: 0 22px 55px rgba(0, 0, 0, 0.28);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}

/* Form button icon */
.btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}
.btn-icon svg {
  transition: transform 220ms ease-out, opacity 220ms ease-out;
  will-change: transform;
  transform: translateX(0) translateY(0) rotate(0deg);
  opacity: 0.95;
}
.btn-icon:hover svg {
  transform: translateX(6px) translateY(-1px) rotate(-10deg);
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  .btn-icon svg { transition: none; transform: none; }
}

/* Card hover shadow */
.hover-shadow { --tw-shadow: 0 0 #0000; transition: box-shadow 180ms ease-out; }
.hover-shadow:hover {
  --tw-shadow: 0 18px 45px rgba(2, 6, 23, 0.12);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
}

/* Tabs (no JS) */
.tabs input { display: none; }
.tab-panel { display: none; }

#seg-mikro:checked ~ .tab-panels #panel-mikro { display: block; }
#seg-kkv:checked  ~ .tab-panels #panel-kkv  { display: block; }
#intl-egyeni:checked ~ .tab-panels #panel-intl-egyeni { display: block; }
#intl-kkv:checked   ~ .tab-panels #panel-intl-kkv   { display: block; }

.tab-label {
  cursor: pointer;
  user-select: none;
  transition: background-color 180ms ease-out, color 180ms ease-out, box-shadow 180ms ease-out;
}

#seg-mikro:checked ~ .tab-controls label[for="seg-mikro"],
#seg-kkv:checked  ~ .tab-controls label[for="seg-kkv"],
#intl-egyeni:checked ~ .tab-controls label[for="intl-egyeni"],
#intl-kkv:checked   ~ .tab-controls label[for="intl-kkv"] {
  background: rgba(37, 99, 235, 0.10);
  color: rgb(29, 78, 216);
  box-shadow: 0 14px 30px rgba(2, 6, 23, 0.08);
}

/* Sticky header offset for anchor links */
:root { --header-h: 4rem; } /* 64px */
section[id] { scroll-margin-top: calc(var(--header-h) + 16px); }