/* WordPress標準ブロッククラスのリセット */
.wp-block-custom-blocks-button {
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  box-shadow: none !important;
}

/* ラッパー要素のレイアウト */
.button-wrapper {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.block-editor-block-list__block:has(> .button-wrapper) {
  width: 100%;
}

/* 左寄せ配置 */
.button-wrapper.align-left {
  text-align: left;
}
.button-wrapper.align-left .custom-button {
  margin-right: auto;
}

/* 中央寄せ配置 */
.button-wrapper.align-center {
  text-align: center;
}
.button-wrapper.align-center .custom-button {
  margin-left: auto;
  margin-right: auto;
}

/* 右寄せ配置 */
.button-wrapper.align-right {
  text-align: right;
}
.button-wrapper.align-right .custom-button {
  margin-left: auto;
}

/* ボタン基本スタイル */
.custom-button {
  font-family: var(--custom-font-family);
  font-weight: 700;
  font-size: 1rem;
  padding: 0.75em 2em;
  text-decoration: none;
  transition:
    opacity 0.2s ease-in-out,
    background 0.2s ease-in-out,
    color 0.2s ease-in-out,
    border 0.2s ease-in-out;
  cursor: pointer;
  border: none;
  line-height: 1.5;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.button-container {
  display: inline-flex;
  width: fit-content;
  box-sizing: border-box;
}

.button-text {
  transition: 0.3s ease;
}

.button-icon {
  transition: 0.3s ease;
}

.button-container.transparent {
  width: fit-content;
  min-width: 0;
}

@media screen and (min-width: 1024px) {
  .button-container {
    min-width: clamp(0px, 100%, 354px);
  }

  .button-container:hover .button-text {
    opacity: 0.6;
  }

  .button-container:hover .button-icon {
    transform: translateX(8px);
  }

  .custom-button {
    padding: 18px 40px;
    font-size: 20px;
  }
}

@media screen and (min-width: 768px) and (max-width: 1023px) {
  .button-container {
    min-width: clamp(0px, 100%, 210px);
  }
  .custom-button {
    padding: 14px 40px;
    font-size: 16px;
  }
}

@media screen and (max-width: 768px) {
  .button-container {
    min-width: clamp(0px, 100%, 210px);
  }
  .custom-button {
    padding: 10px 40px;
    font-size: 14px;
  }
}

/* Primary */
.custom-button.primary.navy {
  background: var(--custom-background-color-navy);
  color: var(--custom-text-secondary);
}
.custom-button.primary.white {
  background: var(--custom-background-color-white);
  color: var(--custom-text-primary);
  border: 1.5px solid var(--custom-border-navy);
}

/* Secondary */
.custom-button.secondary {
  justify-content: start;
}
.custom-button.secondary.navy {
  background: var(--custom-background-color-navy);
  color: var(--custom-text-secondary);
  border: 1.5px solid var(--custom-border-navy);
}
.custom-button.secondary.white {
  background: var(--custom-background-color-white);
  color: var(--custom-text-primary);
  border: 1.5px solid var(--custom-border-navy);
}

/* Transparent */
.custom-button.transparent {
  background: transparent;
  color: var(--custom-text-primary);
  padding-left: 0;
  padding-right: 0;
  min-width: 0;
}

/* アイコン */
.custom-button .button-icon {
  display: inline-block;
  vertical-align: middle;
  margin-left: 0.5em;
  width: 1.5em;
  height: 1.5em;
}
.custom-button .button-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}

/* アイコン色の設定 */
.custom-button.primary.navy .button-icon svg path,
.custom-button.secondary.navy .button-icon svg path {
  fill: var(--custom-text-secondary);
}

.custom-button.primary.white .button-icon svg path,
.custom-button.secondary.white .button-icon svg path,
.custom-button.transparent .button-icon svg path {
  fill: var(--custom-text-primary);
}
