/* v2.1.7: compact HOME-only floating CTA with a subtle one-shot hover wiggle. */
body.hl-landing-page .hl-floating-cta {
  position: fixed; z-index: 8000; right: 22px; bottom: 22px;
  width: min(380px, calc(100vw - 28px));
  box-sizing: border-box; padding: 21px 22px 22px;
  background: #f2c519; border: 1px solid #e9bc0d;
  border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,.12);
  font-family: "Noto Sans JP", "Hiragino Sans", Meiryo, sans-serif;
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(16px);
  transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
}
body.hl-landing-page .hl-floating-cta.is-visible {
  opacity: 1; visibility: visible; pointer-events: auto; transform: none;
}
body.hl-landing-page .hl-floating-cta * { box-sizing: border-box; }
body.hl-landing-page .hl-floating-cta-close {
  position: absolute; top: 6px; right: 7px;
  display: grid; place-items: center; width: 28px; height: 28px;
  padding: 0; border: 0; border-radius: 50%; background: transparent;
  color: #242424; font-size: 22px; line-height: 1; cursor: pointer;
}
body.hl-landing-page .hl-floating-cta-close:hover { background: rgba(0,0,0,.08); color: #111; }
body.hl-landing-page .hl-floating-cta-eyebrow {
  display: flex; align-items: center; gap: 7px; color: #3d3200;
  font-size: 10px; font-weight: 700; letter-spacing: .14em;
}
body.hl-landing-page .hl-floating-cta-eyebrow span { width: 16px; height: 2px; background: #111; }
body.hl-landing-page .hl-floating-cta-heading {
  position: relative; z-index: 1; margin: 20px 0 20px; color: #111;
  font-size: 28px; font-weight: 900; line-height: 1.28; letter-spacing: -.055em;
}
body.hl-landing-page .hl-floating-cta-link {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; min-height: 40px; padding: 10px 16px;
  border-radius: 100px; background: #111; color: #fff;
  text-decoration: none; font-size: 12px; font-weight: 700;
  transition: background .2s ease;
}
body.hl-landing-page .hl-floating-cta-link:hover { background: #343434; }
body.hl-landing-page .hl-floating-cta-link span { font-size: 17px; }
body.hl-landing-page .hl-floating-cta :focus-visible { outline: 3px solid #111; outline-offset: 3px; }
@media (max-width: 767px) {
  body.hl-landing-page .hl-floating-cta {
    right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    width: min(340px, calc(100vw - 24px));
    padding: 16px 18px 16px;
  }
  body.hl-landing-page .hl-floating-cta-eyebrow { font-size: 9px; }
  body.hl-landing-page .hl-floating-cta-heading {
    margin: 13px 0 14px; font-size: clamp(19px, 5.3vw, 23px); line-height: 1.3;
  }
  body.hl-landing-page .hl-floating-cta-link {
    min-height: 36px; padding: 8px 13px; font-size: 11px;
  }
  body.hl-landing-page .hl-floating-cta-close { top: 4px; right: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  body.hl-landing-page .hl-floating-cta { transition: none; transform: none; }
}

/* A restrained, one-shot nudge on desktop hover. No perpetual motion. */
@media (hover: hover) and (pointer: fine) {
  body.hl-landing-page .hl-floating-cta.is-visible:hover {
    animation: hl-cta-wiggle 480ms ease-in-out 1;
  }
  @keyframes hl-cta-wiggle {
    0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
    18% { transform: translate3d(-3px, 0, 0) rotate(-0.45deg); }
    36% { transform: translate3d(3px, 0, 0) rotate(0.45deg); }
    54% { transform: translate3d(-2px, 0, 0) rotate(-0.25deg); }
    72% { transform: translate3d(1px, 0, 0) rotate(0.15deg); }
  }
}
@media (prefers-reduced-motion: reduce) {
  body.hl-landing-page .hl-floating-cta.is-visible:hover {
    animation: none !important;
  }
}

/* v2.1.8: compact restore tab shown after the CTA is closed. */
body.hl-landing-page .hl-floating-cta-reopen {
  position: fixed; z-index: 8000; right: 22px; bottom: 22px;
  display: flex; align-items: center; justify-content: center; gap: 10px;
  width: auto; min-width: 168px; min-height: 44px; padding: 11px 17px;
  border: 1px solid #e9bc0d; border-radius: 10px;
  background: #f2c519; color: #111;
  box-shadow: 0 7px 22px rgba(0,0,0,.12);
  font-family: "Noto Sans JP", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 12px; font-weight: 800; letter-spacing: .02em;
  cursor: pointer; box-sizing: border-box;
  opacity: 0; visibility: hidden; pointer-events: none;
  transform: translateY(12px);
  transition: opacity .22s ease, transform .22s ease, visibility .22s ease;
}
body.hl-landing-page .hl-floating-cta-reopen.is-visible {
  opacity: 1; visibility: visible; pointer-events: auto; transform: none;
}
body.hl-landing-page .hl-floating-cta-reopen.is-visible:hover {
  background: #f8d74a; transform: translateY(-2px);
}
body.hl-landing-page .hl-floating-cta-reopen:focus-visible {
  outline: 3px solid #111; outline-offset: 3px;
}
body.hl-landing-page .hl-floating-cta-reopen-arrow { font-size: 16px; line-height: 1; }
@media (max-width: 767px) {
  body.hl-landing-page .hl-floating-cta-reopen {
    right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    min-width: 148px; min-height: 42px; padding: 10px 13px; font-size: 11px;
  }
}
@media (prefers-reduced-motion: reduce) {
  body.hl-landing-page .hl-floating-cta-reopen { transition: none; transform: none; }
  body.hl-landing-page .hl-floating-cta-reopen.is-visible:hover { transform: none; }
}
