/* 画面右端の追従CTA（TOP・下層共通）。SPでは sp-floating-cta に切り替える。 */
.quick-cta {
  --quick-unit: 1rem;
  position: fixed;
  top: calc(14.7 * var(--quick-unit));
  right: 0;
  z-index: 20;
  display: grid;
  gap: calc(.9 * var(--quick-unit));
}

.quick-cta__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: calc(1 * var(--quick-unit));
  width: calc(7.9 * var(--quick-unit));
  min-height: calc(16.2 * var(--quick-unit));
  padding: calc(1.6 * var(--quick-unit)) calc(1 * var(--quick-unit));
  border-radius: calc(1.6 * var(--quick-unit)) 0 0 calc(1.6 * var(--quick-unit));
  color: #fff;
  font-size: calc(1.4 * var(--quick-unit));
  font-weight: 500;
  line-height: 1.3;
  text-decoration: none;
  text-align: center;
  box-shadow: 0 calc(.3 * var(--quick-unit)) calc(1 * var(--quick-unit)) rgb(23 44 87 / 12%);
  transition: opacity .2s;
}

.quick-cta__link--phone {
  background: #0281cd;
}

.quick-cta__link--line {
  background: #06c044;
}

.quick-cta__link--reservation {
  background: #172c57;
}

.quick-cta__link img {
  width: calc(3.4 * var(--quick-unit));
  height: calc(3.4 * var(--quick-unit));
  object-fit: contain;
}

.quick-cta__link--reservation img {
  filter: brightness(0) invert(1);
}

.quick-cta__arrow {
  position: relative;
  display: block;
  width: calc(2.8 * var(--quick-unit));
  height: calc(2.8 * var(--quick-unit));
  border-radius: 50%;
  background: rgb(255 255 255 / 25%);
}

.quick-cta__arrow::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 45%;
  width: calc(.8 * var(--quick-unit));
  height: calc(.8 * var(--quick-unit));
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translate(-50%, -50%) rotate(45deg);
}

.quick-cta__link:focus-visible {
  outline-color: #172c57;
}

/* TOPのFVと同じ比率で縮小する。 */
@media (min-width: 768px) and (max-width: 1567px) {
  .quick-cta { --quick-unit: clamp(8.125px, .6381620932vw, 10px); }
}

@media (min-width: 768px) and (max-width: 1130px) {
  .quick-cta { --quick-unit: 10px; }
}

@media (min-width: 768px) and (max-width: 865px) {
  .quick-cta { --quick-unit: 1.1560693642vw; }
}

@media (max-width: 767px) {
  .quick-cta { display: none; }
}

@media (hover: hover) {
  .quick-cta__link:hover { opacity: .75; }
}

@media (prefers-reduced-motion: reduce) {
  .quick-cta__link { transition: none; }
}

/* XD照合 */
.quick-cta__link {
  font-weight: 600;
}
