@charset "UTF-8";
html {
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  font-size-adjust: 0.525;
  font-size: 62.5%;
}

html, body {
  height: 100%;
}

@property --100vw {
  syntax: "<length>";
  initial-value: 0px;
  inherits: false;
}
:root {
  --100vw: 100vw;
  --window-width: tan(atan2(var(--100vw), 1px));
  --px: calc(1px * max(1440, var(--window-width)) / 1440);
  --rem: calc(1rem * max(1440, var(--window-width)) / 1440);
  --max-width: calc(1440 * var(--px));
  --txt-size-md: clamp(1.4 * var(--rem), var(--window-width) / 1000 * .188rem + 1.3295 * var(--rem), 1.6 * var(--rem));
  --txt-size-exs: calc(1.1 * var(--rem));
  --color-base: #333;
  --color-key: #00A6C6;
  --color-key-b: #32B5CE;
  --color-key2: #E83362;
  --color-key2-b: #EA597F;
  --color-key3: #0B6475;
  --color-key3-b: #3f717b;
  --color-sub: #888;
  --color-sub2: #aaa;
  --color-bg: #f3f3f3;
  --color-bg2: #B2E9F3;
  --color-bg3: #FFF9D8;
  --color-border: #ccc;
  --color-grd: linear-gradient(135deg, #76cad9, #6bc5d6, #60c0d3, #54bbd0, #47b5ce, #39b0cb, #26abc8, #00a6c6);
  --input-bg: #fff;
  --input-bg-focus: #fff;
  --input-error: #DF1046;
}

body,
input,
textarea,
select,
button {
  color: var(--color-base);
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", "メイリオ", Meiryo, Arial, Helvetica, "sans-serif";
  font-size: var(--txt-size-md);
  font-weight: 400;
  line-height: 1.5;
  -webkit-font-feature-settings: "pkna";
          font-feature-settings: "pkna";
  letter-spacing: 0.01em;
  -webkit-font-smoothing: antialiased;
}

@media all and (-ms-high-contrast: none) {
  body,
  input,
  textarea,
  select,
  button {
    font-family: "メイリオ", Meiryo, "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  }
}
h1, h2, h3, h4, h5, h6 {
  font-size: var(--txt-size-md);
  font-weight: 700;
}

input,
textarea,
select,
button {
  outline: none;
}

a,
button {
  color: var(--color-key3);
  text-decoration: underline;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

a:hover,
button:hover {
  opacity: 0.8;
  text-decoration: none;
  cursor: pointer;
}

button {
  background: transparent;
}

textarea {
  overflow: auto;
  resize: vertical;
}

@media screen and (max-width: 374px) {
  body {
    font-size: calc(1.3 * var(--rem));
  }
}
*::-moz-selection {
  background-color: var(--color-key);
  color: #fff;
}
*::selection,
-webkit-tap-highlight-color {
  background-color: var(--color-key);
  color: #fff;
}

/*
layout
-------------------*/
.contents-body {
  overflow: hidden;
}

.wrapper {
  width: min(90%, 1200 * var(--px));
  margin-left: auto;
  margin-right: auto;
}
.wrapper-m {
  width: 90%;
  max-width: calc(900 * var(--px));
  margin-left: auto;
  margin-right: auto;
}
.wrapper-s {
  width: 90%;
  max-width: calc(0.5 * var(--max-width));
  margin-left: auto;
  margin-right: auto;
}
.wrapper.xs {
  max-width: calc(0.3 * var(--max-width));
}
@media screen and (min-width: 1200px) {
  .wrapper-m, .wrapper-s {
    width: 80%;
  }
}

.contents {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  gap: 5em 5%;
  width: min(90%, 1200 * var(--px));
  margin: 2.5em auto 5em;
}
.contents-main {
  width: 100%;
}
.contents-side {
  width: 100%;
}
@media screen and (min-width: 990px) {
  .contents {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    margin: 3em auto 6.25em;
  }
  .contents-main {
    width: 75%;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
  .contents-side {
    width: min(20%, 320 * var(--px));
  }
}
.contents-single {
  margin: 2.5em auto 5em;
}
@media screen and (min-width: 990px) {
  .contents-single {
    margin: 3em auto 6.25em;
  }
}

.section-block:not(:last-child) {
  padding-bottom: 5em;
}

.inlineblock {
  display: inline-block;
}

.block {
  display: block;
}

@media screen and (max-width: 687px) {
  .forpc {
    display: none;
  }
}
@media screen and (min-width: 688px) {
  .forsp {
    display: none;
  }
}
/* column */
.row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1.5em 4%;
}
.row.reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
.row.aligncenter {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.row.center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.col38,
.col48,
.col58 {
  width: 100%;
}

@media screen and (min-width: 990px) {
  .col38 {
    width: 38%;
  }
  .col48 {
    width: 48%;
  }
  .col58 {
    width: 58%;
  }
}
/*
parts
-------------------*/
.img-fix {
  width: 100%;
  height: auto;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.img-fit {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

.contents-paragraph {
  line-height: 1.8;
  -webkit-font-feature-settings: "pkna";
          font-feature-settings: "pkna";
}
.contents-paragraph:not(:last-of-type) {
  margin-bottom: 1em;
}

.contents-list:not(:last-of-type) {
  margin-bottom: 1em;
}
.contents-list li {
  margin-left: 1em;
}
.contents-list li:not(:last-of-type) {
  margin-bottom: 0.5em;
}

ul.contents-list li {
  list-style: disc outside;
}

ol.contents-list li {
  list-style: decimal outside;
  margin-left: 1.5em;
}

.bgf {
  background-color: #fff;
}

.bg1 {
  background-color: var(--color-bg);
}

.bg2 {
  background-color: var(--color-bg2);
}

.bg3 {
  background-color: var(--color-bg3);
}

.bgtx {
  background-image: url(../img/bg_tx.png);
  background-image: -webkit-image-set(url(../img/bg_tx.webp) type("image/webp"), url(../img/bg_tx.png) type("image/png"));
  background-image: image-set(url(../img/bg_tx.webp) type("image/webp"), url(../img/bg_tx.png) type("image/png"));
}

.fcbase {
  color: var(--color-base);
}

.fcf {
  color: #fff;
}

.fce {
  color: var(--input-error);
}

.fckey {
  color: var(--color-key);
}

.fckey2 {
  color: var(--color-key2);
}

.fckey3 {
  color: var(--color-key3);
}

.mark {
  display: block;
  padding-left: 1em;
  text-indent: -1em;
}

.marker {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(50%, rgba(255, 255, 255, 0)), color-stop(50%, var(--color-bg2)));
  background: linear-gradient(rgba(255, 255, 255, 0) 50%, var(--color-bg2) 50%);
  font-weight: 700;
  color: var(--color-key3);
}

.tac {
  text-align: center;
}

.tal {
  text-align: left;
}

.tar {
  text-align: right;
}

.bold {
  font-weight: 700;
}

.black {
  font-weight: 900;
}

.nomal {
  font-weight: 400;
}

.fz75 {
  font-size: 75%;
}
.fz87 {
  font-size: 87.5%;
}
.fz112 {
  font-size: 112.5%;
}
.fz125 {
  font-size: 125%;
}
.fz137 {
  font-size: 137.5%;
}
.fz150 {
  font-size: 150%;
}
.fz166 {
  font-size: 166%;
}
.fz175 {
  font-size: 175%;
}
.fz187 {
  font-size: 187.5%;
}
.fz200 {
  font-size: 200%;
}
.fz225 {
  font-size: 225%;
}
.fz250 {
  font-size: 250%;
}

.mb05 {
  margin-bottom: 0.5em;
}
.mb1 {
  margin-bottom: 1em;
}
.mb2 {
  margin-bottom: 2em;
}
.mb3 {
  margin-bottom: 3em;
}
.mb4 {
  margin-bottom: 4em;
}
.mb5 {
  margin-bottom: 5em;
}

.mt05 {
  margin-top: 0.5em;
}
.mt1 {
  margin-top: 1em;
}
.mt2 {
  margin-top: 2em;
}
.mt3 {
  margin-top: 3em;
}
.mt4 {
  margin-top: 4em;
}
.mt5 {
  margin-top: 5em;
}

.mr05 {
  margin-right: 0.5em;
}
.mr1 {
  margin-right: 1em;
}

.ml05 {
  margin-left: 0.5em;
}
.ml1 {
  margin-left: 1em;
}

@media screen and (min-width: 688px) {
  .pc-break:before {
    content: "\a";
    white-space: pre;
  }
}
@media screen and (max-width: 687px) {
  .sp-break:before {
    content: "\a";
    white-space: pre;
  }
}
/*
common
-------------------*/
/* header */
.section-header {
  font-size: 150%;
  font-weight: 700;
  line-height: 1.2;
  position: relative;
  z-index: 0;
  border-bottom: var(--color-border) 1px solid;
  padding: 0 0 0.5em 1em;
  margin-bottom: 1em;
}
.section-header::before {
  content: "";
  display: block;
  position: absolute;
  z-index: 0;
  top: 0.2em;
  left: 0;
  background: var(--color-grd);
  border-radius: 1em;
  width: calc(5 * var(--px));
  height: calc(100% - 0.7em);
}
.section-header2 {
  font-size: 125%;
  font-weight: 900;
  line-height: 1.2;
  position: relative;
  z-index: 0;
  padding: 0 0 0.4em 1.5em;
}
.section-header2::before {
  content: "";
  display: block;
  position: absolute;
  z-index: 0;
  top: 0.6em;
  left: 0;
  background: var(--color-grd);
  border-radius: 1em;
  width: 1em;
  height: calc(4 * var(--px));
}
@media screen and (min-width: 990px) {
  .section-header2 {
    font-size: 135%;
  }
}

.header-hr {
  display: block;
  overflow: hidden;
}
.header-hr-inner {
  display: inline-block;
  position: relative;
  z-index: 0;
}
.header-hr-inner::before {
  content: "";
  display: block;
  width: 100vw;
  height: 0;
  position: absolute;
  top: 50%;
  left: calc(100% + 0.5em);
  z-index: 0;
  pointer-events: none;
  border-top: var(--color-border) 1px solid;
}

.side-header {
  background-color: var(--color-bg2);
  padding: 0.6em 1em 0.6em 1.5em;
  position: relative;
  z-index: 0;
  color: var(--color-key3);
  font-size: 87.5%;
  font-weight: 700;
}
.side-header::before {
  content: "";
  display: block;
  width: 0.75em;
  height: calc(3 * var(--px));
  background-color: #fff;
  position: absolute;
  top: calc(50% - 1 * var(--px));
  left: 0;
}

/* btn */
.btn {
  display: inline-block;
  cursor: pointer;
  text-decoration: none;
  color: #fff;
  line-height: 1.3;
  text-align: center;
  font-weight: 700;
  border: 0;
  border-radius: 1.8em;
  border: transparent 2px solid;
  width: min(100%, 300 * var(--px));
  padding: 1em 1.5em;
  -webkit-transition: all 0.3s cubic-bezier(0.17, 0.84, 0.44, 1);
  transition: all 0.3s cubic-bezier(0.17, 0.84, 0.44, 1);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}
.btn .icon-right, .btn .icon-left {
  -webkit-transition: all 0.2s cubic-bezier(0.17, 0.84, 0.44, 1);
  transition: all 0.2s cubic-bezier(0.17, 0.84, 0.44, 1);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
}
.btn .icon-right {
  padding-left: 0.5em;
}
.btn .icon-left {
  padding-right: 0.5em;
}
.btn.auto {
  width: auto;
}
.btn.min {
  padding: 0.5em 1em;
}
.btn:hover {
  opacity: 1;
}
.btn:hover .icon-right {
  -webkit-transform: translateX(0.5em);
          transform: translateX(0.5em);
}
.btn:hover .icon-left {
  -webkit-transform: translateX(-0.5em);
          transform: translateX(-0.5em);
}
.btn.grd {
  overflow: hidden;
  position: relative;
  z-index: 0;
  border: 0 !important;
  padding: calc(1em + 2px) calc(1.5em + 2px);
}
.btn.grd::before {
  content: "";
  display: block;
  position: absolute;
  pointer-events: none;
  z-index: -1;
  width: 200%;
  height: 100%;
  top: 0;
  left: 0;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  background: -webkit-gradient(linear, left top, right top, from(#76cad9), color-stop(#60c0d3), color-stop(#47b5ce), color-stop(#26abc8), color-stop(#00a6c6), color-stop(#00a6c6), color-stop(#00a6c6), to(#00a6c6));
  background: linear-gradient(90deg, #76cad9, #60c0d3, #47b5ce, #26abc8, #00a6c6, #00a6c6, #00a6c6, #00a6c6);
}
.btn.grd:hover::before {
  left: -100%;
}
.btn.grd.min {
  padding: calc(0.5em + 2px) calc(1em + 2px);
}
.btn.submit {
  background-color: var(--color-key-b);
  border-color: var(--color-key-b);
  color: #fff;
}
.btn.submit:hover {
  background-color: var(--color-key);
  border-color: var(--color-key);
}
.btn.submit.inversion {
  background-color: transparent;
  color: var(--color-key);
}
.btn.submit.inversion:hover {
  background-color: var(--color-key-b);
  border-color: var(--color-key-b);
  color: #fff;
}
.btn.back {
  background-color: var(--color-key3-b);
  border-color: var(--color-key3-b);
  color: #fff;
}
.btn.back:hover {
  background-color: var(--color-key3);
  border-color: var(--color-key3);
}
.btn.back.inversion {
  background-color: transparent;
  color: var(--color-key3-b);
}
.btn.back.inversion:hover {
  background-color: var(--color-key3-b);
  border-color: var(--color-key3-b);
  color: #fff;
}
.btn.pale {
  background-color: var(--color-bg2);
  color: var(--color-key3);
  border-color: var(--color-bg2);
}
.btn.pale:hover {
  background-color: var(--color-key-b);
  color: #fff;
  border-color: var(--color-key-b);
}
.btn.pale.inversion {
  background-color: transparent;
}
.btn.pale.inversion:hover {
  background-color: var(--color-bg2);
  color: var(--color-key3);
  border-color: var(--color-bg2);
}
.btn.strong {
  background-color: var(--color-key2-b);
  border-color: var(--color-key2-b);
  color: #fff;
}
.btn.strong:hover {
  background-color: var(--color-key2);
  border-color: var(--color-key2);
}
.btn.strong.inversion {
  background-color: transparent;
  color: var(--color-key2);
}
.btn.strong.inversion:hover {
  background-color: var(--color-key2-b);
  border-color: var(--color-key2-b);
  color: #fff;
}
.btn:disabled {
  background-color: var(--color-border) !important;
  border-color: var(--color-border) !important;
  color: var(--color-sub) !important;
  cursor: default;
}
.btn:disabled:hover .icon-right, .btn:disabled:hover .icon-left {
  -webkit-transform: translateX(0);
          transform: translateX(0);
}
.btn-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.8em;
}
.btn-row.reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

.tooltip-btn {
  background-color: var(--color-key-b);
  color: #fff;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 75%;
  width: 1.5em;
  line-height: 1.5;
  border-radius: 50%;
}

/* tel */
.tel-number {
  color: var(--color-base);
  font-size: 200%;
  font-weight: 700;
  text-decoration: none;
}
.tel-reception {
  color: var(--color-sub);
  font-size: 87.5%;
  text-decoration: none;
}
.tel-btn {
  display: block;
  text-align: center;
  text-decoration: none;
  line-height: 1.2;
}
@media screen and (max-width: 687px) {
  .tel-btn {
    border: var(--color-border) 2px solid;
    border-radius: 1em;
    background-color: #fff;
    padding: 1em 1.5em;
  }
}

@media screen and (min-width: 688px) {
  .dialbtn:hover {
    opacity: 1;
    cursor: default;
  }
}
/* credit card */
.payment-methods {
  height: 2em;
  width: 100%;
}
.payment-methods img {
  max-height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: 0 0;
     object-position: 0 0;
}

/* banner */
.linkbanner {
  background-color: #fff;
  border: var(--color-border) 1px solid;
  border-radius: 1em;
  display: block;
  padding: 0.2em 4em;
  width: min(100%, 380 * var(--px));
}
.linkbanner img {
  -o-object-fit: contain;
     object-fit: contain;
}
@media screen and (min-width: 990px) {
  .linkbanner {
    padding: 0.6em 1.5em;
  }
}

/* table */
.basic-table {
  width: 100%;
  border-collapse: collapse;
  border-top: var(--color-border) calc(1 * var(--px)) solid;
}
.basic-table > * > tr > th,
.basic-table > * > tr > td {
  padding: 1.2em 0;
  vertical-align: top;
  border-bottom: var(--color-border) calc(1 * var(--px)) solid;
}
.basic-table > * > tr > th {
  padding-right: 1em;
  font-weight: 700;
  text-align: left;
  width: 25%;
  min-width: 9em;
}

.contents-table {
  width: 100%;
  border-collapse: collapse;
  border-top: var(--color-border) calc(1 * var(--px)) solid;
}
.contents-table > * > tr > th,
.contents-table > * > tr > td {
  padding: 0.5em 0.9em;
  vertical-align: center;
  border-bottom: var(--color-border) calc(1 * var(--px)) solid;
}
.contents-table > * > tr > th {
  background-color: var(--color-bg2);
  color: var(--color-key3);
  font-weight: 700;
  text-align: left;
  width: min(25%, 9em);
}

.box {
  padding: 1.5em;
}
@media screen and (min-width: 688px) and (max-width: 989px) {
  .box {
    padding: 2em;
  }
}
@media screen and (min-width: 1200px) {
  .box {
    padding: 2em;
  }
}
@media screen and (min-width: 1440px) {
  .box {
    padding: 3em;
  }
}
.box-min {
  padding: 1em;
}
@media screen and (min-width: 688px) {
  .box-min {
    padding: 1.5em;
  }
}

.round {
  border-radius: 1em;
  overflow: hidden;
}

.wave {
  padding-bottom: 0.3em;
  background: url(../img/wave.png) repeat-x 0 100%/auto 0.3em;
}

/*
header
-------------------*/
.header {
  width: 100%;
  position: relative;
  top: 0;
  left: 0;
  z-index: 6001;
  background-color: #fff;
  border-top: var(--color-key) 4px solid;
  -webkit-box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.1);
          box-shadow: 0px 0px 15px 0px rgba(0, 0, 0, 0.1);
}
.header-ctrl-btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1em;
}
.header-ctrl-btn {
  text-decoration: none;
  font-weight: 700;
}
.header .wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 50px;
}
.header-logo {
  margin-left: 60px;
  width: 135px;
}
.header-btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.5em;
}
@media screen and (max-width: 989px) {
  .header-ctrl {
    position: absolute;
    z-index: 0;
    top: 0;
    right: 10px;
  }
  .header-ctrl .wrapper {
    width: 100%;
  }
  .header-ctrl-greeting {
    display: none;
  }
  .header-ctrl-btns {
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    height: 50px;
    gap: 10px;
  }
  .header-ctrl-btn {
    display: block;
    font-size: 10px;
    color: var(--color-sub2);
    line-height: 1.2;
    text-align: center;
  }
  .header-ctrl-btn i {
    color: var(--color-base);
    font-size: 1.8em;
  }
  .header-ctrl-btn-txt {
    display: block;
  }
  .header .wrapper {
    width: 100%;
  }
  .header-nav {
    display: none;
  }
  .header-btns {
    margin-left: auto;
    margin-right: 0.8em;
  }
  .header-btns .btn {
    border-radius: 5px;
    padding: 0.5em 0;
    width: 7em;
    font-size: 10px;
    line-height: 1;
    text-align: center;
  }
  .header-btns .btn i {
    display: block;
    font-size: 180%;
  }
}
@media screen and (max-width: 374px) {
  .header-logo {
    width: 120px;
  }
}
@media screen and (min-width: 990px) {
  .header-main {
    padding: 1em 0;
  }
  .header .wrapper {
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
  }
  .header-logo {
    margin-left: 0;
    width: calc(210 * var(--px));
  }
  .header-nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 0;
  }
  .header-nav-item {
    font-weight: 700;
  }
  .header-nav-item:not(:first-child) {
    margin-left: 1em;
  }
  .header-nav-item:not(:first-child)::before {
    content: "／";
    color: var(--color-sub2);
    display: inline-block;
    margin-right: 1em;
  }
  .header-nav-item a {
    color: var(--color-base);
    text-decoration: none;
  }
  .header-nav .btn {
    margin-left: 2em;
    padding: 0.8em 2.5em;
    width: auto;
  }
  .header-ctrl {
    background-color: #f1f1f1;
  }
  .header-ctrl .wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: end;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 2em;
    font-size: 87.5%;
    height: 2em;
  }
  .header-ctrl-btn {
    color: var(--color-base);
  }
  .header-ctrl-btn i {
    padding-right: 0.5em;
  }
  .header-btns .btn {
    min-width: 10em;
  }
  .header-btns .btn i {
    display: none;
  }
}

/*
nav
-------------------*/
.nav-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 6000;
}

.drawer-overlay {
  background-color: rgba(10, 18, 19, 0.8);
  z-index: 5999;
  height: 100%;
  top: 0px;
  -webkit-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}

.drawer--left.drawer-open .drawer-nav {
  background-color: #fff;
  width: min(80%, 300 * var(--px));
}

.menu-btn {
  background-color: var(--color-key);
  position: absolute;
  top: 4px;
  left: 0;
  width: 50px;
  height: 50px;
  -webkit-transition: all 0.6s;
  transition: all 0.6s;
  z-index: 6002;
  cursor: pointer;
}
.menu-btn:hover .hamburger-bar:nth-child(2) {
  width: 15px;
}

.hamburger-bar {
  position: absolute;
  top: 50%;
  left: 12px;
  display: block;
  height: 2px;
  background-color: #fff;
  width: 26px;
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
  -webkit-transition: opacity 0.4s, width 0.4s, -webkit-transform 0.6s;
  transition: opacity 0.4s, width 0.4s, -webkit-transform 0.6s;
  transition: transform 0.6s, opacity 0.4s, width 0.4s;
  transition: transform 0.6s, opacity 0.4s, width 0.4s, -webkit-transform 0.6s;
}
.hamburger-bar:nth-child(1) {
  margin-top: -8px;
}
.hamburger-bar:nth-child(2) {
  opacity: 1;
}
.hamburger-bar:nth-child(3) {
  margin-top: 8px;
}

.drawer-open .hamburger-bar:nth-child(1) {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  margin-top: 0;
}
.drawer-open .hamburger-bar:nth-child(2) {
  opacity: 0;
}
.drawer-open .hamburger-bar:nth-child(3) {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  margin-top: 0;
}

.drawer-nav-content {
  padding-top: 65px;
  padding-bottom: 65px;
  width: 100%;
}
.drawer-nav-wrapper {
  padding: 1em 5%;
}
.drawer-nav-wrapper.bt {
  border-top: var(--color-border) 1px solid;
}
.drawer-nav-list > li {
  background-color: var(--color-bg);
  border-bottom: var(--color-border) 1px solid;
  padding: 0.5em 5% 0.5em calc(5% + 1.5em);
  position: relative;
  z-index: 0;
  font-weight: 700;
}
.drawer-nav-list > li:first-child {
  border-top: var(--color-border) 1px solid;
}
.drawer-nav-list > li::before {
  content: "";
  display: block;
  width: 10px;
  height: 2px;
  position: absolute;
  z-index: 0;
  top: 1.2em;
  left: 5%;
  background-color: var(--color-key);
}
.drawer-nav-list a {
  color: var(--color-base);
  font-weight: 700;
  text-decoration: none;
}
.drawer-nav-list.sub {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.drawer-nav-list.sub li {
  background-color: #fff;
  border: 0;
  padding: 0.3em 0 0.3em 12px;
  font-size: 78.5%;
  width: 48%;
}
.drawer-nav-list.sub li::before {
  width: 5px;
  height: 1px;
  background-color: var(--color-sub2);
  left: 0;
}
.drawer-nav-list.sub li a {
  font-weight: 400;
}

@media screen and (min-width: 990px) {
  .menu-btn {
    display: none;
  }
}
/*
side
-------------------*/
.side-order {
  border: var(--color-key) 2px solid;
  padding: 3px;
}
.side-order-inner {
  background-color: #fff;
  border: var(--color-key-b) 1px solid;
  padding: 1.2em 0.5em;
  background-image: url(../img/side_order.png);
  background-image: -webkit-image-set(url(../img/side_order.webp) type("image/webp"), url(../img/side_order.png) type("image/png"));
  background-image: image-set(url(../img/side_order.webp) type("image/webp"), url(../img/side_order.png) type("image/png"));
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover;
  text-align: center;
}
.side-order-main {
  margin: 0 auto 1em;
  width: min(95%, 18em);
}
.side-order-note {
  font-size: var(--txt-size-exs);
}
.side-order .btn {
  margin-top: 0.3em;
  padding: 0.8em 2em;
}
.side-linkbtn {
  display: block;
  background-color: #fff;
  border: var(--color-border) 2px solid;
  border-radius: 1em;
  width: 100%;
  padding: 1em 14%;
  color: var(--color-base);
  font-size: 87.5%;
  text-decoration: none;
}
.side-linkbtn-main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1em;
  font-weight: 700;
}
.side-linkbtn-main i {
  background-color: var(--color-key-b);
  border-radius: 50%;
  color: #fff;
  width: 1.5em;
  height: 1.5em;
  line-height: 1.6;
  text-align: center;
}
.side-linkbtn-main + * {
  margin-top: 1em;
  border-top: var(--color-border) 1px solid;
  padding-top: 0.8em;
}
.side-bnr-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.5em 4%;
}
@media screen and (min-width: 688px) and (max-width: 989px) {
  .side-bnr-row > a {
    width: 48%;
  }
  .side-bnr-row .side-linkbtn {
    padding-left: 5%;
    padding-right: 5%;
  }
}

/*
footer
-------------------*/
.footer {
  background-color: #4a4a4a;
  color: #fff;
  padding: 2.5em 0;
}
.footer-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 5%;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}
.footer-nav-container {
  display: none;
}
.footer-content {
  width: 100%;
  text-align: center;
}
.footer-logo {
  display: block;
  width: min(32%, 9em);
  margin: auto;
}
.footer-social {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1em;
  margin-top: 1.25em;
  color: var(--color-border);
}
.footer-social-icons {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.3em;
}
.footer-social-icons a {
  display: inline-block;
  width: 2em;
  height: 2em;
  border-radius: 2em;
  background-color: var(--color-base);
  font-size: 150%;
  line-height: 1.8;
  text-align: center;
  color: var(--color-key);
}
.footer .copyright {
  font-size: 75%;
  color: var(--color-sub);
  font-weight: 700;
  margin-top: 3em;
}
@media screen and (min-width: 688px) {
  .footer {
    padding: 4em 0;
  }
}
@media screen and (min-width: 990px) {
  .footer-content {
    text-align: left;
    width: auto;
  }
  .footer-logo {
    margin: 0;
    width: 9em;
  }
  .footer-nav {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 1.75em;
  }
  .footer-nav-container {
    display: block;
    width: auto;
  }
  .footer-nav .nav-group {
    padding-right: 1.75em;
    border-right: 1px solid var(--color-border);
  }
  .footer-nav .nav-group:last-child {
    border-right: 0;
    padding-right: 0;
  }
  .footer-nav-row {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 2em;
  }
  .footer-nav h4 {
    font-weight: 700;
    color: var(--color-border);
    margin-bottom: 1em;
  }
  .footer-nav li a {
    color: #fff;
    text-decoration: none;
    font-size: 87.5%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 1em;
    margin: 0.5em 0;
  }
  .footer-nav li a::before {
    content: "";
    display: block;
    width: 0.5em;
    height: calc(2 * var(--px));
    background-color: var(--color-bg2);
  }
}
.footerinfo {
  padding: 2.5em 0;
}
.footerinfo-title {
  display: none;
}
.footerinfo-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 2em 3.5%;
}
.footerinfo-item {
  width: 100%;
}
.footerinfo-item-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 1.5em 4%;
}
.footerinfo-item-row.center {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.footerinfo-item-inner {
  width: 100%;
}
.footerinfo-tel {
  display: block;
  background-color: #fff;
  border: var(--color-border) 2px solid;
  border-radius: 1em;
  padding: 0.8em 1.5em;
  font-size: 112.5%;
  text-decoration: none;
  text-align: center;
}
.footerinfo-tel:hover {
  opacity: 1;
  cursor: default;
}
.footerinfo-mail.btn {
  width: 100%;
  font-size: 140%;
  padding-left: 0.6em;
  padding-right: 0.6em;
}
.footerinfo .linkbanner {
  padding: 2.2em;
}
@media screen and (min-width: 688px) {
  .footerinfo {
    padding: 4em 0;
  }
  .footerinfo-item-inner {
    width: 48%;
  }
}
@media screen and (min-width: 990px) {
  .footerinfo-title {
    display: block;
    font-size: 125%;
    font-weight: 900;
    color: var(--color-key);
    margin-bottom: 1em;
  }
  .footerinfo-item {
    width: 31%;
  }
  .footerinfo-item-inner {
    width: 100%;
  }
}

.cal_wrapper > table {
  width: 100%;
}
.cal_wrapper tr:not(:first-child) th,
.cal_wrapper tr:not(:first-child) td {
  border-bottom: var(--color-border) 1px solid;
  text-align: center;
  padding: calc(2 * var(--px));
}
.cal_wrapper td div {
  font-weight: 900;
  padding: 0.2em;
}
.cal_wrapper .headline td {
  color: #aaa;
  font-weight: 700;
}
.cal_wrapper .Sat,
.cal_wrapper .Sun,
.cal_wrapper .Holyday {
  background-color: #f7bfd0;
}
.cal_wrapper .backward {
  background-color: transparent;
  color: #ccc;
}
.cal_wrapper .Today {
  color: var(--color-key3);
}
.cal_wrapper .cal_ui {
  background-color: #76cad9;
  border-radius: 2em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0 1em;
}
.cal_wrapper .cal_ui > input {
  width: auto;
  border-radius: 0;
  border: 0;
}
.cal_wrapper .cal_ui > input:hover {
  background-color: transparent;
}
.cal_wrapper .cal_prev,
.cal_wrapper .cal_next,
.cal_wrapper .cal_current {
  background-color: transparent;
  border: 0;
  color: #fff;
  font-weight: 900;
  padding: 0.5em;
  text-align: center;
  cursor: pointer;
}
.cal_wrapper .cal_arrow {
  background-image: url(../img/cheveron_left.svg);
  background-position: 50% 50%;
  background-repeat: no-repeat;
  background-size: 60% auto;
  text-indent: -5em;
  -webkit-filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(199deg) brightness(101%) contrast(102%);
          filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(199deg) brightness(101%) contrast(102%);
}
.cal_wrapper .cal_arrow.cal_next {
  background-image: url(../img/cheveron_right.svg);
}

.cal-note {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5em;
  font-size: 87.5%;
}
.cal-note .holiday-marker {
  display: inline-block;
  width: 2em;
  height: 1.5em;
  background-color: #f7bfd0;
}

.pagetop {
  display: block;
  background-color: var(--color-key);
  border-radius: 1em 1em 0 0;
  color: #fff;
  font-size: 162.5%;
  line-height: 2;
  text-align: center;
  position: fixed;
  width: 2em;
  height: 3em;
  z-index: 10;
  bottom: 0;
  left: calc(100% - 2.5em);
  -webkit-transform: translateY(3.5em);
          transform: translateY(3.5em);
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.pagetop:hover {
  opacity: 1;
  height: 3.5em;
}
@media screen and (min-width: 1200px) {
  .pagetop {
    left: 95%;
  }
}
.pagetop.fixed {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

@media screen and (min-width: 990px) and (max-width: 1199px) {
  .header {
    font-size: 90%;
  }
  .contents-side,
  .footer,
  .footerinfo {
    font-size: 85%;
  }
}
/*
common block
-------------------*/
.caution-box {
  border: var(--color-border) 3px double;
}

.double-box {
  border: var(--color-key-b) calc(3 * var(--px)) solid;
  padding: calc(3 * var(--px));
}
.double-box .inner {
  border: var(--color-key-b) calc(1 * var(--px)) solid;
  padding: 1.5em;
}
@media screen and (min-width: 688px) and (max-width: 989px) {
  .double-box .inner {
    padding: 2em;
  }
}
@media screen and (min-width: 1200px) {
  .double-box .inner {
    padding: 2em;
  }
}
@media screen and (min-width: 1440px) {
  .double-box .inner {
    padding: 3em;
  }
}
.double-box.pale {
  border-color: var(--color-bg2);
}
.double-box.pale .inner {
  border-color: var(--color-bg2);
}

.border-box {
  border: var(--color-border) calc(3 * var(--px)) solid;
  padding: max(1em, 3%);
}

.pagenation {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.2em;
}
.pagenation a,
.pagenation span {
  display: block;
  width: 2em;
  height: 2em;
  line-height: 2;
  border-radius: calc(5 * var(--px));
  text-align: center;
  font-weight: 900;
  background-color: var(--color-border);
  color: var(--color-base);
  text-decoration: none;
}
.pagenation .disabled a,
.pagenation .disabled span {
  color: var(--color-sub);
}
.pagenation .disabled a:hover,
.pagenation .disabled span:hover {
  opacity: 1;
  cursor: default;
}
.pagenation .active a,
.pagenation .active span {
  background-color: var(--color-key-b);
  color: #fff;
}
.pagenation .active a:hover,
.pagenation .active span:hover {
  opacity: 1;
  cursor: default;
}
@media screen and (max-width: 459px) {
  .pagenation a,
  .pagenation span {
    width: 1.5em;
    height: 1.5em;
    line-height: 1.5;
  }
}

/*
information
-------------------*/
.information-list {
  border-top: var(--color-border) 1px solid;
}
.information-list li {
  border-bottom: var(--color-border) 1px solid;
}
.information-list a {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.3em 0.8em;
  padding: 0.8em 3em 0.6em 0;
  position: relative;
  z-index: 0;
  background-color: #fff;
  text-decoration: none;
}
.information-list a::after {
  content: "\f061";
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  line-height: 1;
  color: var(--color-sub);
  position: absolute;
  top: calc(50% - 0.5em);
  right: 1em;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
}
.information-list a:hover::after {
  -webkit-transform: translateX(1em);
          transform: translateX(1em);
}
.information-list-date {
  display: block;
  font-size: 87.5%;
  color: var(--color-sub);
  width: auto;
}
.information-list-cat {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: #fff;
  font-size: 75%;
  font-weight: 700;
  text-align: center;
  border-radius: 2em;
  width: 7em;
}
.information-list-cat.info {
  background-color: #5B8DD8;
}
.information-list-cat.essential {
  background-color: #C63759;
}
.information-list-cat.news {
  background-color: #9ED265;
}
.information-list-ttl {
  display: block;
  color: var(--color-base);
  font-weight: 700;
  width: 100%;
}
.information-single-header {
  margin-bottom: 3em;
}
.information-single-header-main {
  color: var(--color-key);
  font-size: 125%;
  font-weight: 900;
  line-height: 1.2;
}
.information-single-header-sub {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.8em;
  margin-top: 0.5em;
}

.section-header + .information-list {
  margin-top: -1.5em;
  border-top: 0;
}

.single-body {
  margin-bottom: 5em;
}
.single-body p,
.single-body ul,
.single-body ol,
.single-body dl,
.single-body table,
.single-body blockquote,
.single-body img,
.single-body hr {
  margin-top: 1em;
  margin-bottom: 1em;
}
.single-body h1,
.single-body h2,
.single-body h3,
.single-body h4,
.single-body h5,
.single-body h6 {
  margin-top: 1.8em;
  margin-bottom: 1em;
}
.single-body h1,
.single-body h2 {
  font-size: calc(1.25 * var(--txt-size-md));
  font-weight: 700;
  color: var(--color-key3);
  line-height: 1.2;
  background-color: var(--color-bg2);
  padding: 0.6em 1em 0.6em 1.5em;
  position: relative;
  z-index: 0;
}
.single-body h1::before,
.single-body h2::before {
  content: "";
  display: block;
  width: 0.75em;
  height: calc(3 * var(--px));
  background-color: #fff;
  position: absolute;
  top: calc(50% - 1 * var(--px));
  left: 0;
}
.single-body h3 {
  font-size: calc(1.25 * var(--txt-size-md));
  font-weight: 700;
  line-height: 1.2;
  padding: 0 0 0.4em 1.5em;
  position: relative;
  z-index: 0;
}
.single-body h3::before {
  content: "";
  display: block;
  position: absolute;
  z-index: 0;
  top: 0.6em;
  left: 0;
  background: var(--color-grd);
  border-radius: 1em;
  width: 1em;
  height: calc(4 * var(--px));
}
.single-body h4 {
  font-size: calc(1.12 * var(--txt-size-md));
  font-weight: 900;
  color: var(--color-key3);
  line-height: 1.3;
}
.single-body h5,
.single-body h6 {
  font-size: calc(1 * var(--txt-size-md));
  font-weight: 900;
  line-height: 1.3;
}
.single-body p {
  line-height: 2;
}
.single-body ul li {
  list-style: disc outside;
  margin-left: 1em;
}
.single-body ol li {
  list-style: decimal outside;
  margin-left: 1em;
}
.single-body dl dt {
  font-weight: 700;
}
.single-body table {
  border-collapse: collapse;
}
.single-body th, .single-body td {
  padding: 0.8em;
  border-top: var(--color-border) 1px solid;
  border-bottom: var(--color-border) 1px solid;
}
.single-body th {
  background-color: var(--color-bg);
  font-weight: 400;
}
.single-body figcaption {
  color: var(--color-sub2);
  font-size: 87.5%;
  text-align: center;
}
.single-body img {
  max-width: 100% !important;
  height: auto !important;
}
.single-body img.alignleft {
  display: block;
  float: left;
  margin-right: 15px;
}
.single-body img.aligncenter {
  clear: both;
  display: block;
  float: none;
  margin-left: auto;
  margin-right: auto;
}
.single-body img.alignright {
  display: block;
  float: right;
  margin-left: 15px;
}
.single-body img.alignnone {
  float: none;
}
.single-body blockquote {
  background-color: var(--input-bg);
  padding: calc(2 * var(--txt-size-md)) calc(2.5 * var(--txt-size-md));
  position: relative;
}
.single-body blockquote::before, .single-body blockquote::after {
  display: block;
  position: absolute;
  pointer-events: none;
  font-size: calc(2.4 * var(--txt-size-md));
  font-weight: 700;
  line-height: 1;
  color: #999;
}
.single-body blockquote::before {
  content: "“";
  top: calc(1 * var(--rem));
  left: calc(1 * var(--rem));
}
.single-body blockquote::after {
  content: "”";
  bottom: calc(1 * var(--rem));
  right: calc(1 * var(--rem));
}
.single-body hr {
  border: 0;
  border-top: var(--color-border) 1px solid;
}
.single-body > *:first-child {
  margin-top: 0;
}
.single-body > *:last-child {
  margin-bottom: 0;
}
.single-body del {
  text-decoration: line-through;
}
.single-body strong, .single-body b {
  font-weight: 700;
}
.single-body em {
  font-style: italic;
}
.single-body a {
  cursor: pointer;
  display: inline-block;
}
.single-body a:hover {
  opacity: 1;
  text-decoration: none;
}

/*
form item
-------------------*/
/* select */
.select-wrap {
  display: inline-block;
  position: relative;
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
}
.select-wrap::after {
  content: "\f107";
  color: var(--color-key-b);
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  display: inline-block;
  position: absolute;
  top: 50%;
  right: -1.7em;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  pointer-events: none;
}
.select-wrap select {
  outline: none;
  text-indent: 0.01px; /*text-overflow: '';*/
  background: none transparent;
  vertical-align: middle;
  font-size: inherit;
  color: inherit;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}
.select-wrap select option {
  background-color: var(--input-bg);
  color: var(--color-base);
}
.select-wrap select::-ms-expand {
  display: none;
}
.select-wrap select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #828c9a;
}

select.form-input {
  border: var(--color-border) 2px solid;
  background-color: var(--input-bg);
  border-radius: 3px;
  padding: 0.7em 1.7em 0.7em 0.7em;
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
}
select.form-input:focus {
  background-color: var(--input-bg-focus);
}

/* radio */
input[type=radio].form { /*display: none;*/
  opacity: 0;
  position: absolute;
}

.form-radio {
  cursor: pointer;
  display: inline-block;
  position: relative;
  padding-left: 1.8em;
  vertical-align: middle;
}
.form-radio::before, .form-radio::after {
  content: "";
  display: inline-block;
  position: absolute;
  border-radius: 50%;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
.form-radio::before {
  top: calc(50% - 0.5em);
  left: 0;
  width: 1.2em;
  height: 1.2em;
  border: var(--color-border) 2px solid;
  background-color: var(--input-bg);
}
.form-radio::after {
  top: calc(50% - 0.5em + 4px);
  left: 4px;
  width: calc(1.2em - 8px);
  height: calc(1.2em - 8px);
  background-color: var(--color-key-b);
  opacity: 0;
}

.form-radio:hover::before,
input[type=radio]:checked + .form-radio::before {
  background-color: var(--input-bg-focus);
}

input[type=radio]:checked + .form-radio::after {
  opacity: 1;
}

/* check */
input[type=checkbox].form { /*display: none;*/
  opacity: 0;
  position: absolute;
}

.form-check {
  cursor: pointer;
  display: inline-block;
  position: relative;
  padding-left: 1.8em;
  vertical-align: middle;
}
.form-check::before, .form-check::after {
  font-size: calc(1.6 * var(--rem));
  content: "";
  display: inline-block;
  position: absolute;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
.form-check::before {
  top: 50%;
  left: 0;
  margin-top: -0.5em;
  width: 1em;
  height: 1em;
  border-radius: 3px;
  border: var(--color-border) 2px solid;
  background-color: var(--input-bg);
}
.form-check::after {
  top: calc(50% - 0.375em);
  left: 0.3125em;
  opacity: 0;
  width: 0.375em;
  height: 0.625em;
  border-bottom: var(--color-key-b) 3px solid;
  border-right: var(--color-key-b) 3px solid;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

.form-check:hover::before {
  background-color: var(--input-bg-focus);
}

input[type=checkbox]:checked + .form-check::before {
  background-color: var(--input-bg-focus);
}

input[type=checkbox]:checked + .form-check::after {
  opacity: 1;
}

/* password */
.password-wrapper {
  position: relative;
  z-index: 0;
  width: 100%;
}
.password-wrapper i {
  color: var(--color-sub);
  cursor: pointer;
  display: inline-block;
  font-size: 1.5em;
  line-height: 1.6;
  position: absolute;
  z-index: 1;
  top: calc(50% - 0.8em);
  right: 0;
  padding: 0 0.5em;
}

/* input */
.form-input {
  display: inline-block;
  position: relative;
  border: var(--color-border) 2px solid;
  border-radius: 5px;
  background: var(--input-bg);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0.5em;
  width: 100%;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.form-input:focus, .form-input:active {
  background: var(--input-bg-focus);
}
.form-input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px var(--input-bg-focus) inset;
}
.form-input.text-s {
  width: 5em;
}
.form-input.text-m {
  width: 80%;
}
.form-input.text-l {
  width: 100%;
}

textarea.form-input {
  height: 8em;
}

@media screen and (max-width: 687px) {
  /* file */
  input[type=file].form {
    -webkit-transform: scale(0.8) translateX(-10%);
            transform: scale(0.8) translateX(-10%);
  }
}
/* input type=button */
#payjp_checkout_box input[type=button] {
  display: inline-block;
  cursor: pointer;
  text-decoration: none;
  line-height: 1.3;
  font-weight: 700;
  text-align: center;
  background-color: transparent;
  color: var(--color-key-b);
  border-radius: 1.8em;
  border: var(--color-key) 2px solid;
  width: calc(300 * var(--px));
  padding: 1em 0.5em;
  -webkit-transition: all 0.3s cubic-bezier(0.17, 0.84, 0.44, 1);
  transition: all 0.3s cubic-bezier(0.17, 0.84, 0.44, 1);
}
#payjp_checkout_box input[type=button]:hover {
  background-color: var(--color-key);
  color: #fff;
}

/* require / notice */
.form-item-badge {
  color: #fff;
  font-size: min(75%, 0.75 * var(--txt-size-md));
  font-weight: 700;
  line-height: 1;
  border-radius: 1em;
  display: inline-block;
  padding: 0.3em 1em;
  white-space: nowrap;
  vertical-align: middle;
}
.form-item-badge.require {
  background-color: var(--color-key2);
}
.form-item-badge.optional {
  background-color: var(--color-key3);
}

.form-note {
  font-size: 87.5%;
  margin-top: 0.5rem;
}

/* label */
.label-name {
  display: inline-block;
  width: 2em;
  text-align: right;
  letter-spacing: 0;
}

/* validate error */
.form-error input[type=email],
.form-error input[type=password],
.form-error input[type=url],
.form-error input[type=search],
.form-error input[type=tel],
.form-error input[type=text],
.form-error select,
.form-error textarea,
.form-error .form-check::before,
.form-error .form-radio::before,
.form-error input[type=radio]:checked + .form-radio::before,
.form-error input[type=checkbox]:checked + .form-check::before {
  background-color: var(--input-bg-focus);
  border-color: var(--input-error);
}
.form-error .form-check::after {
  border-color: #fff;
}
.form-error .form-radio::after {
  background-color: #fff;
}
.form-error input[type=radio]:checked + .form-radio::before,
.form-error input[type=checkbox]:checked + .form-check::before {
  background-color: var(--color-key2-b);
  border-color: var(--input-error);
}
.form-error-txt {
  color: var(--input-error);
  font-size: 87.5%;
  display: none;
  margin-top: 0.3em;
}
.form-error-txt::before {
  background-color: var(--input-error);
  border-radius: 1em;
  content: "×";
  color: #fff;
  display: inline-block;
  font-size: 90%;
  font-weight: 700;
  line-height: 1.5;
  width: 1.5em;
  margin-right: 0.2em;
  text-align: center;
}
.form-error .form-error-txt {
  display: block;
}

/* layout */
fieldset {
  border: 0;
  padding: 0;
}

.form-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0;
  border-top: var(--color-border) 1px solid;
}
.form-item:last-of-type {
  border-bottom: var(--color-border) 1px solid;
}
.form-item.has-bottom-border {
  border-bottom: var(--color-border) 1px solid;
}
.form-item-ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1em;
  font-weight: 700;
  background-color: var(--color-bg);
}
.form-item-input {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5em 1em;
}
.form-item-input .form-item-inner {
  width: 100%;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.form-item-input .form-item-inner.auto {
  width: auto;
  -webkit-box-flex: initial;
      -ms-flex: initial;
          flex: initial;
}
.form-item-input .form-item-inner-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.5em;
}
.form-item-input .form-item-inner-row.wrap {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.form-item-input.wrap {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}
.form-item-input.wrap .form-item-inner {
  -webkit-box-flex: initial;
      -ms-flex: initial;
          flex: initial;
}

.section-header + * .form-item:first-child {
  margin-top: -1.5em;
  border-top: 0;
}

.form-btns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1rem;
  margin-top: min(4vw, 2em);
}
.form-btns .btn:not(.auto) {
  padding-left: 0.5em;
  padding-right: 0.5em;
}
.form-btns > * {
  width: min(100%, 300 * var(--px));
}

@media screen and (max-width: 687px) {
  .form-item-ttl {
    padding: 0.6em 0.8em;
    width: 100%;
  }
  .form-item-input {
    padding: 0.8em 0;
    width: 100%;
  }
  .form-item:not(:last-of-type) {
    margin-bottom: 1em;
  }
}
@media screen and (min-width: 688px) {
  .form-item-ttl, .form-item-input {
    padding: 0.8em 1em;
  }
  .form-item-ttl {
    width: 30%;
  }
  .form-item-input {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
  }
}
/* confirm */
.confirm .form-item-input .form-item-inner {
  width: auto;
  -webkit-box-flex: initial;
      -ms-flex: initial;
          flex: initial;
}

/* option-select */
.option-select {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: calc(1 * var(--px));
  position: absolute;
  z-index: 0;
  bottom: 0;
  left: 0;
  width: 100%;
}
.option-select-item {
  width: 100%;
}
.option-select-item.full {
  width: 100%;
}
.option-select-item.form-error .option-select-main {
  border: var(--input-error) calc(2 * var(--px)) solid;
  height: auto;
}
.option-select-main {
  border: var(--color-border) calc(1 * var(--px)) solid;
  border-radius: 1em;
  overflow: hidden;
  position: relative;
  z-index: 0;
  padding-bottom: 4em;
  height: 100%;
}
.option-select > li {
  width: 100%;
}
.option-select-label {
  background-color: var(--color-border);
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.1em;
  height: 4em;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.option-select-label::before {
  content: "";
  display: block;
  border-left: #fff calc(4 * var(--px)) solid;
  border-bottom: #fff calc(4 * var(--px)) solid;
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
  width: 0;
  height: 0;
  opacity: 0;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}
.option-select-label:hover {
  opacity: 0.9;
}
.option-select input:checked + .option-select-label {
  background-color: var(--color-key-b);
  color: #fff;
}
.option-select input:checked + .option-select-label::before {
  width: 1em;
  height: 0.7em;
  opacity: 1;
  margin-right: 0.5em;
}
@media screen and (min-width: 688px) {
  .option-select-item {
    width: 48%;
  }
}

/*
term
-------------------*/
.terms p:not(last-of-type),
.terms-box p:not(last-of-type) {
  margin-bottom: 1em;
}
.terms h2,
.terms-box h2 {
  font-size: 125%;
  font-weight: 900;
  margin-top: 2em;
  margin-bottom: 0.8em;
}
.terms h2:first-child,
.terms-box h2:first-child {
  margin-top: 0;
}
.terms h3,
.terms-box h3 {
  color: var(--color-key3);
  font-size: 112.5%;
  font-weight: 900;
  margin-top: 1.5em;
  margin-bottom: 0.8em;
}
.terms h3:first-child,
.terms-box h3:first-child {
  margin-top: 0;
}
.terms > ol,
.terms-box > ol {
  margin-left: 1.5em;
}
.terms > ol:not(last-of-type),
.terms-box > ol:not(last-of-type) {
  margin-bottom: 1em;
}
.terms > ol > li,
.terms-box > ol > li {
  list-style-type: decimal;
  margin-bottom: 1em;
}
.terms > ol > li ol,
.terms-box > ol > li ol {
  margin-left: 1.5em;
}
.terms > ol > li ol > li,
.terms-box > ol > li ol > li {
  list-style-type: none;
  counter-increment: cnt;
  position: relative;
  margin: 0.3em 0;
}
.terms > ol > li ol > li::before,
.terms-box > ol > li ol > li::before {
  content: "(" counter(cnt) ")";
  display: inline-block;
  margin-left: -3.5em;
  width: 3em;
  text-align: right;
  position: absolute;
  top: 0;
  left: 0;
}
.terms > ol > li ol > li > ol > li,
.terms-box > ol > li ol > li > ol > li {
  counter-increment: subcount;
}
.terms > ol > li ol > li > ol > li::before,
.terms-box > ol > li ol > li > ol > li::before {
  content: "(" counter(subcount) ")";
}

.terms-box {
  font-size: 87.5%;
  border: var(--color-border) 1px solid;
  padding: max(2vw, 1em);
  width: 100%;
  height: 25em;
  overflow-y: scroll;
}
.terms-box h2 {
  color: var(--color-key3);
  font-size: 112.5%;
}
.terms-box h3 {
  font-size: 105%;
}

@media (prefers-reduced-motion: reduce) {
  *,
  ::before,
  ::after {
    -webkit-transition-duration: 1ms !important;
            transition-duration: 1ms !important;
    -webkit-animation-duration: 1ms !important;
            animation-duration: 1ms !important;
    -webkit-animation-iteration-count: 1 !important;
            animation-iteration-count: 1 !important;
    -webkit-animation-delay: 0 !important;
            animation-delay: 0 !important;
    -webkit-transition-delay: 0 !important;
            transition-delay: 0 !important;
    scroll-behavior: auto !important;
  }
}
@media all and (-ms-high-contrast: none) {
  /* IE */
  body {
    overflow-x: hidden;
  }
}