/* Pressing face and a stationary hit area, adapted from DBA's .press-cta.
   Keep one ink-image arrow in .control__arrow; pseudo-elements are surfaces only. */
body .edoya-control {
  --control-ink: var(--sumi, #282723);
  --control-paper: var(--kinari, var(--kami, #eeece4));
  --control-surface: var(--control-paper);
  --control-edge: var(--control-ink);
  --control-base: var(--control-ink);
  --control-focus: #855d39;
  --control-padding: 12px 22px;
  --control-radius: 12px;
  --control-face-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), inset 0 -1px 0 rgba(0, 0, 0, .08);
  --control-press-x: 0px;
  --control-press-y: 0px;
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 44px;
  min-height: 48px;
  max-width: calc(100% - 4px);
  padding: var(--control-padding);
  border: 0;
  border-radius: var(--control-radius);
  background: transparent;
  color: var(--control-ink);
  box-shadow: none;
  font-family: var(--font-ja, var(--mincho, "Zen Old Mincho", serif));
  font-weight: 500;
  line-height: 1.45;
  text-align: center;
  text-decoration: none;
  text-shadow: none;
  text-indent: 0;
  vertical-align: middle;
  overflow: visible;
  opacity: 1;
  transform: none;
  transition: none;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

body .edoya-control::before,
body .edoya-control::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid var(--control-edge);
  border-radius: inherit;
  pointer-events: none;
}

body .edoya-control::before {
  z-index: -2;
  background: var(--control-base);
  transform: translate(4px, 6px);
}

body .edoya-control::after {
  z-index: -1;
  background: var(--control-surface);
  box-shadow: var(--control-face-shadow);
}

body .edoya-control::after,
body .edoya-control > .control__label {
  transform: translate(var(--control-press-x), var(--control-press-y));
  transition: transform .2s cubic-bezier(.2, .8, .2, 1), box-shadow .2s;
}

body .edoya-control > .control__label {
  position: relative;
  display: inline-block;
  min-width: 0;
  max-width: 100%;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  overflow-wrap: break-word;
}

body .edoya-control > .control__arrow {
  position: relative;
  display: inline-block;
  flex: 0 0 auto;
  width: var(--control-icon-size, 20px);
  height: var(--control-icon-size, 20px);
  min-width: 0;
  margin: 0;
  color: inherit;
  font-family: var(--font-en, var(--mincho, "Zen Old Mincho", serif));
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  text-align: center;
  /* Independent translation leaves ink-icon's own orientation untouched. */
  translate: var(--control-press-x) var(--control-press-y);
  transition: translate .2s cubic-bezier(.2, .8, .2, 1);
}

body .edoya-control:focus-visible {
  outline: 2px solid var(--control-focus);
  outline-offset: 8px;
}

/* Override earlier page-specific hover fills without moving the hit area. */
body .edoya-control:is(:hover, :active) {
  background: transparent;
  color: var(--control-ink);
  opacity: 1;
  transform: none;
}

@media (hover: hover) and (pointer: fine) {
  body .edoya-control:hover:not(:disabled):not([aria-disabled="true"]) {
    --control-press-x: 4px;
    --control-press-y: 5px;
    --control-face-shadow: inset 0 1px 0 rgba(255, 255, 255, .2);
    opacity: 1;
    transform: none;
  }
}

body .edoya-control:active:not(:disabled):not([aria-disabled="true"]) {
  --control-press-x: 4px;
  --control-press-y: 6px;
  --control-face-shadow: inset 0 2px 4px rgba(0, 0, 0, .14);
}

body .edoya-control:active::after,
body .edoya-control:active > .control__label,
body .edoya-control:active > .control__arrow {
  transition-duration: .08s;
}

/* A quiet, visible disabled state; its original native disabled behavior stays. */
body .edoya-control:is(:disabled, [aria-disabled="true"]) {
  --control-ink: #77746b;
  --control-edge: #aaa69b;
  --control-base: #aaa69b;
  --control-press-x: 0px;
  --control-press-y: 0px;
  --control-face-shadow: none;
  cursor: default;
}

body .float-reserve__btn.edoya-control,
body .cta__btn.edoya-control,
body .reserve-button.edoya-control,
body .jcta__btn.edoya-control {
  --control-radius: 16px;
  min-height: 52px;
}

body .float-reserve__btn.edoya-control {
  --control-padding: 14px 24px;
  white-space: nowrap;
}

body .cta__btn.edoya-control,
body .jcta__btn.edoya-control {
  --control-padding: 16px 32px;
  --control-focus: var(--shiro, var(--kami, #f4efe6));
}

body .reserve-button.edoya-control,
body .hdr__cta.edoya-control,
body .gallery-header-reserve.edoya-control {
  --control-ink: var(--kinari, var(--kami, #eeece4));
  --control-surface: var(--sumi, #282723);
  --control-edge: var(--sumi, #282723);
  --control-base: #100f0d;
}

body .reserve-button.edoya-control { --control-padding: 16px 24px; }

body .hdr__cta.edoya-control,
body .gallery-header-reserve.edoya-control {
  --control-padding: 10px 16px;
  --control-radius: 10px;
  min-height: 44px;
  white-space: nowrap;
}

/* Telephone surfaces remain transparent in every interaction state. */
body .edoya-control:is(.cta__btn--sub, .cta__btn--ghost, .reserve-phone-link) {
  --control-surface: transparent;
  --control-base: transparent;
  --control-face-shadow: none;
  background: transparent;
}

body .edoya-control:is(.cta__btn--sub, .cta__btn--ghost) {
  --control-ink: var(--shiro, #f4efe6);
  --control-edge: var(--shiro, #f4efe6);
}

body .edoya-control:is(.cta__btn--sub, .cta__btn--ghost, .reserve-phone-link):is(:hover, :active) {
  --control-face-shadow: none;
}

body .text-link.edoya-control {
  --control-padding: 11px 18px;
  width: fit-content;
}

body .gallery-more.edoya-control,
body .gallery-retry.edoya-control { --control-padding: 12px 28px; }

body .rail-controls .edoya-control,
body .room-controls .edoya-control,
body .photo-viewer__bottom > .edoya-control {
  --control-radius: 10px;
  --control-padding: 0;
  flex: 0 0 44px;
  width: 44px;
  min-width: 44px;
  max-width: 44px;
  height: 44px;
  min-height: 44px;
}

body .room-controls .edoya-control,
body .photo-viewer .edoya-control { --control-focus: var(--shiro, #f4efe6); }

body .photo-viewer #viewer-close.edoya-control {
  --control-padding: 10px 18px;
  min-height: 44px;
}

body .edoya-control:lang(en) {
  font-family: var(--font-en, var(--mincho, "Zen Old Mincho", serif));
  letter-spacing: .02em;
}

@media (max-width: 819px) {
  body .cta__btn.edoya-control { display: flex; max-width: min(300px, calc(100% - 4px)); }
  body .hdr__cta.edoya-control { --control-padding: 10px 12px; gap: 6px; letter-spacing: .02em; }
  body .hdr__cta.edoya-control > .control__arrow { --control-icon-size: 16px; }
  body .reserve-button.edoya-control { --control-padding: 14px 18px; }
  body .float-reserve__btn.edoya-control { --control-padding: 13px 20px; }
}

@media (prefers-reduced-motion: reduce) {
  body .edoya-control:is(:hover, :active):not(:disabled):not([aria-disabled="true"]) {
    --control-press-x: 0px;
    --control-press-y: 0px;
  }
  body .edoya-control::after,
  body .edoya-control > .control__label,
  body .edoya-control > .control__arrow { transition: none; }
}

@media (forced-colors: active) {
  body .edoya-control::before { display: none; }
  body .edoya-control::after { background: Canvas; border-color: ButtonText; box-shadow: none; }
  body .edoya-control { color: ButtonText; }
  body .edoya-control:is(:disabled, [aria-disabled="true"]) { color: GrayText; }
  body .edoya-control:is(:disabled, [aria-disabled="true"])::after { border-color: GrayText; }
  body .edoya-control:focus-visible { outline-color: Highlight; }
}
