/* ==========================================================
   AENIR 57 — FLOATING CONTACT BUTTON
   Scope: global floating contact access

   Rules:
   - Excluded from Contact page via Hugo partial logic
   - Hidden while lightbox is active
   - Centered at bottom
   - No redesign of existing architecture
========================================================== */

.floating-contact {
  position: fixed;
  left: 50%;
  right: auto;
  bottom: clamp(0.85rem, 2.4vw, 1.35rem);
  z-index: 800;

  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  gap: 0.75rem;

  transform: translateX(-50%);

  font-family: var(--font-family-primary, "Segoe UI", Arial, sans-serif);
}

body.aenir-lightbox-active .floating-contact {
  display: none;
}

.floating-contact__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 5.4rem;
  min-height: 2.7rem;
  padding: 0.72rem 1.05rem;

  border: 1px solid rgba(24, 38, 45, 0.34);
  border-radius: 999px;

  background:
    linear-gradient(
      to bottom,
      rgba(255, 255, 255, 0.94),
      rgba(232, 238, 238, 0.9)
    );

  color: var(--color-text-primary, #253036);

  box-shadow:
    0 0.55rem 1.6rem rgba(0, 0, 0, 0.16),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);

  cursor: pointer;
}

.floating-contact__button:hover,
.floating-contact__button:focus-visible {
  transform: translateY(-1px);
  box-shadow:
    0 0.75rem 2rem rgba(0, 0, 0, 0.2),
    0 0 0 3px rgba(89, 170, 170, 0.18),
    inset 0 1px 0 rgba(255, 255, 255, 0.95);
}

.floating-contact__button:focus-visible,
.floating-contact__close:focus-visible,
.floating-contact__link:focus-visible {
  outline: 2px solid rgba(42, 128, 138, 0.75);
  outline-offset: 3px;
}

.floating-contact__button-label {
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.floating-contact__panel {
  position: relative;

  width: min(18rem, calc(100vw - 2rem));
  padding: 1rem;

  border: 1px solid rgba(24, 38, 45, 0.22);
  border-radius: 1rem;

  background:
    linear-gradient(
      to bottom,
      rgba(255, 255, 255, 0.97),
      rgba(238, 242, 241, 0.95)
    );

  color: var(--color-text-primary, #253036);

  box-shadow:
    0 1.1rem 2.8rem rgba(0, 0, 0, 0.22),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.floating-contact__close {
  position: absolute;
  top: 0.5rem;
  right: 0.55rem;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 1.8rem;
  height: 1.8rem;

  border: 0;
  border-radius: 999px;
  background: transparent;

  color: inherit;
  font-size: 1.4rem;
  line-height: 1;

  cursor: pointer;
}

.floating-contact__close:hover {
  background: rgba(0, 0, 0, 0.06);
}

.floating-contact__title {
  margin: 0 2rem 0.85rem 0;

  font-size: 0.95rem;
  font-weight: 700;
}

.floating-contact__link {
  display: block;

  padding: 0.7rem 0.75rem;
  margin-top: 0.55rem;

  border: 1px solid rgba(24, 38, 45, 0.14);
  border-radius: 0.75rem;

  background: rgba(255, 255, 255, 0.58);
  color: inherit;

  font-size: 0.94rem;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
}

.floating-contact__link:hover {
  background: rgba(255, 255, 255, 0.88);
  text-decoration: underline;
}

@media (max-width: 520px) {
  .floating-contact {
    bottom: 0.75rem;
  }

  .floating-contact__button {
    min-width: 5.2rem;
    min-height: 2.65rem;
    padding: 0.68rem 1rem;
  }

  .floating-contact__panel {
    width: calc(100vw - 1.7rem);
  }
}