@charset "UTF-8";
/**
 * base
 * NOTE:
 * 
 * input要素のスタイルの上書きが難しくなることを避ける目的で
 * input要素をbase.cssにおいて、input[type="submit"]のように書かないでください。
 * [type="submit"] や [type="checkbox"]など属性セレクタのみにしてください。
 * ※この記述ならば優先度が低いためクラス名1つで上書きが可能です。
 * 
 * ラッパー、ボタン、フォームのレスポンシブの調整はvariable.cssで可能です。
 * 
**/

/**
 * CSSリセット
 * 参照元：http: //meyerweb.com/eric/tools/css/reset/
**/
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit
}
input.btn, button, textarea, select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  border-radius: 0;
  outline: none;
  font-size: 16px
}
/* iOS */
[type="submit"], [type="button"] {
  border-radius: 0;
  -webkit-appearance: button;
  -moz-appearance: button;
  appearance: button;
  border: none;
  box-sizing: border-box;
  cursor: pointer;
}
[type="submit"]::-webkit-search-decoration, [type="button"]::-webkit-search-decoration {
  display: none
}
[type="submit"]::focus, [type="button"]::focus {
  outline-offset: -2px
}
label {
  cursor: pointer;
}
.select {
  position: relative;
}
.select__dummy-select,
.select select {
  box-shadow: 0 2px 4px rgba(0, 0, 0, .1);
  border-radius: var(--btn-radius);
  border: 1px solid #e9eced;
  background: #fff;
  line-height: var(--btn-height);
  height: var(--btn-height);
  padding: 0 2.25em 0 1em;
  cursor: pointer;
}
.select__dummy-select {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.select__dummy-select[data-text-selected]::before {
  content: attr(data-text-selected);
}
.select__dummy-select:not([data-text-selected])::before,
.select__dummy-select[data-text-selected=""]::before {
  /* NOTE: data-text-selectedが空の時はデフォルトテキストを採用 */
  content: attr(data-text-default);
}


.select select::-ms-expand {
  display: none;
}
.select:has(span) span::after,
.select::after {
  content: '';
  display: block;
  border-top: 1px solid;
  border-right: 1px solid;
  width: 0.5em;
  height: 0.5em;
  position: absolute;
  top: 50%;
  right: 1em;
  transform: translate(0,-50%) rotate(135deg);
}
.select:has(span)::after {
  display: none;
}
@media (max-width: 959.98px) {
  .select__dummy-select,
  .select select {
    font-size: 12px;
  }
}


summary {
  list-style: none;
}
summary::-webkit-details-marker {
  display: none;
}
summary {
  position: relative;
  padding-left: 1.5em;
  cursor: pointer;
}
summary::before {
  content: '';
  position: absolute;
  right: 0.25em;
  left: auto;
  top: 50%;
  transform: translateY(-50%) rotate(90deg);
  width: 1em;
  height: 1em;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2"><polyline points="9 18 15 12 9 6"></polyline></svg>'); /* 自前のSVGや画像パス */
  background-size: contain;
  transition: transform 0.3s;
}
details[open] summary::before {
  transform: translateY(-50%) rotate(90deg) scaleX(-1);
}


/**
 * .select-rich
 * NOTE: mbase-select-rich.jsの補助が必要です。
**/
.select-rich {
  display: inline-block;
  position: relative;
}
.select-rich__selected {
  border-radius: 2em;
  background: var(--font-c-blue-light);
  color: var(--font-c-blue);
  padding: 4px 1.5em 4px 0.5em;
}
.select-rich__options {
  border-radius: var(--ui-radius-box);
  border: solid 1px var(--font-c);
  background: #fff;
  min-width: 100%;
  padding: 12px 15px;
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 100;
}
.select-rich__options>li {
  white-space: nowrap;
  margin: 0;
  padding: 0;
}
.select-rich__options>*+li {
  border-top: 1px solid #ddd;
  margin-top: 8px;
  padding-top: 8px;
}

.select-rich__option {
  background-image: none;
  background-repeat: no-repeat;
  background-position: right 0% top 50%;
  background-size: 1em auto;
  background-color: #fff;
  padding: 0 1.5em 0 0;
}
.select-rich__option:hover {
  background-color: var(--font-c-gray-light);
  background-image: url(../images/icon-ui-check.svg);
}
.select-rich__option:has(:checked) {
  background-color: #fff;
  background-image: url(../images/icon-ui-check.svg);
}

.select-rich__option>[type="checkbox"],
.select-rich__option>[type="radio"] {
  position: absolute;
  opacity: 0 !important;
}



::placeholder {
  color: var(--font-c-gray-medium);
}

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
  transition: 0.6s;
}
body {
  line-height: 1;
}
ol, ul {
  list-style: none;
}
blockquote, q {
  quotes: none;
}
blockquote::before, blockquote::after, q::before, q::after {
  content: '';
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
img {
  margin: 0;
  padding: 0;
  vertical-align: bottom;
}


/**
 * 再定義
**/
html {
  font-size: 62.5%;
  scroll-behavior: smooth
}
body {
  background: #fffaea;
  color: var(--font-c);
  font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  font-weight: 400;
  font-size: 15px;
  line-height: 1.5;
  -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%;
}
body > .wrap {
  overflow: hidden;
  padding-top: var(--header-height);
}
table {
  letter-spacing: 0;
  empty-cells: show;
}
tbody {
  position: unset;
}
table tr, table th, table td {
  empty-cells: show;
  transition: 0.6s;
  position: unset;
}
input, select, textarea {
  font-size: 90%;
  background: none;
  transition: 0.6s;
}
[type="checkbox"], [type="radio"] {
  width: 18px;
  height: 18px;
  margin: 1px 5px 0 0;
}
p {
  line-height: 1.65;
}
a {
  color: var(--font-c);
  text-decoration: none;
  cursor: pointer;
  transition: 0.2s;
}
a:hover {
  color: var(--font-c);
  cursor: pointer;
  opacity: 0.9;
}
a.active {
  color: var(--font-c);
}
img {
  border: none;
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  vertical-align: bottom;
  transition: 0.6s;
}
*, ::before, ::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  /* NOTE: ここにpositionは設定しないでください。 */
}

/**
 * font weight
**/
.fw--100 {font-weight: 100;}
.fw--200 {font-weight: 200;}
.fw--300 {font-weight: 300;}
.fw--400 {font-weight: 400;}
.fw--500 {font-weight: 500;}
.fw--600 {font-weight: 600;}
.fw--700 {font-weight: 700;}
.fw--800 {font-weight: 800;}
.fw--900 {font-weight: 900;}

/**
 * font color
**/
.fc__color {
  color: var(--main-c)
}
.fc__red,
.fc__pink {
  color: var(--font-c-red);
}
.fc__blue {
  color: var(--font-c-blue);
}
/**
 * background color
**/
.bg__color {
  background: var(--bg-c-light);
}
.bg__gray {
  background: var(--bg-c-dark);
}
.bg__white {
  background: #fff;
}


/**
 * marker
 * NOTE: 
**/
.c-maker {}
.c-maker.c-maker--default {
  background: linear-gradient(transparent 40%, var(--sub-c-light) 80%);
}
.c-maker.c-maker--yellow {
  background: linear-gradient(transparent 40%, #fefea1 80%);
}


/**
 * display
**/
@media (min-width: 768px) {
  .sp-disp,
  .sp_disp,
  .sp--disp {
    display: none !important;
  }
}
@media (max-width: 767.98px) {
  .pc-disp,
  .pc_disp,
  .pc--disp {
    display: none !important;
  }
}


/**
 * clearfix
**/
.cf::after,
.clearfix::after {
  content: '';
  display: table;
  clear: both;
}


/**
 * section
**/
section {
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  padding: 40px 0;
}
@media (max-width: 959.98px) {
  section {
    padding: 30px 0;
  }
}


/**
 * container
**/
.base_wrap,/* pbase移植用 */
.l-container {
  width: 100%;
  max-width: var(--basewrap-width);
  margin: 0 auto;
  padding: 0 var(--basewrap-padding-inline);
  position: relative;
}


/**
 * icon
 * NOTE: vertical-alignは変更しないでください（微調整はtransformまたはmask-positionで個別に行う想定です）
**/
.c-icon {
  display: inline-block;
  background-color: currentColor;
  -webkit-mask: no-repeat center / contain;
  mask: no-repeat center / contain;
  width: 1em;
  height: 1em;
  margin: 0;
  padding: 0;
  vertical-align: baseline;/* NOTE: vertical-alignは変更しないでください */
}

.c-icon--ui-arrow-down-thin {-webkit-mask-image: url(../images/icon-ui-arrow-down-thin.svg);mask-image: url(../images/icon-ui-arrow-down-thin.svg);}
.c-icon--ui-calendar {-webkit-mask-image: url(../images/icon-ui-calendar.svg);mask-image: url(../images/icon-ui-calendar.svg);}
.c-icon--ui-car {-webkit-mask-image: url(../images/icon-ui-car.svg);mask-image: url(../images/icon-ui-car.svg);}
.c-icon--ui-cars-red {-webkit-mask-image: url(../images/icon-ui-cars-red.svg);mask-image: url(../images/icon-ui-cars-red.svg);}
.c-icon--ui-display {-webkit-mask-image: url(../images/icon-ui-display.svg);mask-image: url(../images/icon-ui-display.svg);}
.c-icon--ui-gear {-webkit-mask-image: url(../images/icon-ui-gear.svg);mask-image: url(../images/icon-ui-gear.svg);}
.c-icon--ui-help-red {-webkit-mask-image: url(../images/icon-ui-help-red.svg);mask-image: url(../images/icon-ui-help-red.svg);}
.c-icon--ui-home {-webkit-mask-image: url(../images/icon-ui-home.svg);mask-image: url(../images/icon-ui-home.svg);}
.c-icon--ui-info {-webkit-mask-image: url(../images/icon-ui-info.svg);mask-image: url(../images/icon-ui-info.svg);}
.c-icon--ui-info-alarm-red {-webkit-mask-image: url(../images/icon-ui-info-alarm-red.svg);mask-image: url(../images/icon-ui-info-alarm-red.svg);}
.c-icon--ui-list {-webkit-mask-image: url(../images/icon-ui-list.svg);mask-image: url(../images/icon-ui-list.svg);}
.c-icon--ui-login {-webkit-mask-image: url(../images/icon-ui-login.svg);mask-image: url(../images/icon-ui-login.svg);}
.c-icon--ui-man {-webkit-mask-image: url(../images/icon-ui-man.svg);mask-image: url(../images/icon-ui-man.svg);}
.c-icon--ui-menu {-webkit-mask-image: url(../images/icon-ui-menu.svg);mask-image: url(../images/icon-ui-menu.svg);}
.c-icon--ui-options {-webkit-mask-image: url(../images/icon-ui-options.svg);mask-image: url(../images/icon-ui-options.svg);}
.c-icon--ui-search {-webkit-mask-image: url(../images/icon-ui-search.svg);mask-image: url(../images/icon-ui-search.svg);}
.c-icon--ui-user {-webkit-mask-image: url(../images/icon-ui-user.svg);mask-image: url(../images/icon-ui-user.svg);}

/* button icon */
.c-icon--btn-contact-w {-webkit-mask-image: url(../images/icon-btn-contact-w.svg);mask-image: url(../images/icon-btn-contact-w.svg);}
.c-icon--btn-faq {-webkit-mask-image: url(../images/icon-btn-faq.svg);mask-image: url(../images/icon-btn-faq.svg);}
/* faq icon (Q,A text icon) */
.c-icon--faq-A {-webkit-mask-image: url(../images/icon-faq-A.svg);mask-image: url(../images/icon-faq-A.svg);}
.c-icon--faq-Q {-webkit-mask-image: url(../images/icon-faq-Q.svg);mask-image: url(../images/icon-faq-Q.svg);}
/* page illust icon (large size illust icon) */
.c-icon--page-hint {-webkit-mask-image: url(../images/icon-page-hint.svg);mask-image: url(../images/icon-page-hint.svg);}
.c-icon--page-list-red {-webkit-mask-image: url(../images/icon-page-list-red.svg);mask-image: url(../images/icon-page-list-red.svg);}
.c-icon--page-note {-webkit-mask-image: url(../images/icon-page-note.svg);mask-image: url(../images/icon-page-note.svg);}
.c-icon--page-pin-red {-webkit-mask-image: url(../images/icon-page-pin-red.svg);mask-image: url(../images/icon-page-pin-red.svg);}

/**
 * link
**/
.c-link {
  color: var(--text-link-c);
}
.c-link--underline {
  text-decoration: underline;
}
.c-link--arrow {
  display: inline-flex;
  align-items: center;
  gap: 1ex;
}
.c-link--arrow::after {
  content: '\f105';
  display: var(--fa-display, inline-block);
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "Font Awesome 7 Free";
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-style: normal;
  font-variant: normal;
  color: inherit;
  font-size: 1em;
  font-weight: 700;
  line-height: 1;
  text-rendering: auto;
  transform: scale(0.9) translate(0,6.66%);
  pointer-events: none;
}

.c-link--blank {
  display: inline-flex;
  align-items: center;
  gap: 1ex;
}
.c-link--blank::after {
  content: '\f35d';
  display: var(--fa-display, inline-block);
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "Font Awesome 7 Free";
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-style: normal;
  font-variant: normal;
  color: var(--font-c);
  font-size: 1em;
  font-weight: 700;
  line-height: 1;
  text-rendering: auto;
  transform: scale(0.9) translate(0,6.66%);
  pointer-events: none;
}

/**
 * display flex
**/
.flex,/* pbase移植用 */
.c-flex {
  display: flex;
}
.flex_wrap,/* pbase移植用 */
.c-flex--wrap {
  flex-wrap: wrap;
}
.c-flex--between {
  justify-content: space-between;
}

.flex_wrap {/* pbase移植用 */
  display: flex;
  justify-content: space-between;
}


/**
 * subpage-head
**/
.subpage-head {
  padding: 40px 0 20px;
}

/**
 * TITLE
**/
.c-head {
  display: flex;
  flex-flow: column nowrap;
  align-items: stretch;
  margin-bottom: 40px;
  position: relative;
}
.c-head--second {
  margin-top: 80px;
}
.c-head--center {
  align-items: center;
}
.c-head__logo {
  background: transparent;
  box-shadow: none;
  width: 144px;
  margin-bottom: 20px;
  padding: 0;
}
.c-head__ttl {
  font-size: 32px;
  font-weight: 700;
}
.c-head__ttl-link {
  display: inline-block;
  letter-spacing: -10px;
  transform: scale(0.6, 1);
}
.c-head__txt {
  margin-top: 15px;
}
@media (max-width: 959.98px) {
  .c-head {
    margin-bottom: 30px;
  }
  .c-head--second {
    margin-top: 50px;
  }
  .c-head__ttl {
    font-size: 26px;
  }
}
@media (max-width: 767.98px) {
  .c-head__ttl {
    font-size: 20px;
  }
}


/**
 * box
**/
.c-box-info {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  border-radius: var(--ui-radius-box);
  background-color: var(--sub-c-dark);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.7;
  margin: 0 0 20px;
  padding: 20px 32px;
}
*+.c-box-info {
  margin-top: 20px;
}
.c-box-info::before {
  content: '';
  display: block;
  background-image: url(../images/icon-page-hint.svg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  min-width: 16px;
  height: 24px;
  flex: initial;
}
.c-box-info__body {
  flex: auto;
  padding: 0 0 0 8px;
}
@media (max-width: 767.98px) {
  .c-box-info {
    font-size: 14px;
    padding: 16px;
  }
  .c-box-info::before {
    min-width: 16px;
    height: 24px;
  }
  *+.c-box-info {
    margin-top: 16px;
  }
}


/**
 * button
**/
.btn {
  width: 100%;
  margin-top: 40px;
  max-width: 256px;
  font-weight: 700;
  position: relative;
}

@media only screen and (max-width: 959.98px) {
  .btn {
    margin-top: 32px;
  }
}

@media only screen and (max-width: 767.98px) {
  .btn {
    margin-top: 32px;
  }
}

.btn>a,
.btn>[type="submit"],
.btn>[type="button"],
.btn>button,
.btn>span {
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.08);
  box-shadow: none;
  border-radius: var(--btn-radius);
  border: solid 1px var(--main-c);
  background: #fff;
  color: var(--main-c);
  font-weight: 700;
  text-align: center;
  width: 100%;
  height: var(--btn-height);
  padding-inline: 1.5em 2.5em;
  padding-inline: 1em;
  position: relative;
  transition:
    box-shadow 0.2s ease,
    border 0.2s ease,
    background 0.2s ease,
    color 0.2s ease,
    opacity 0.2s ease;
  cursor: pointer;
}

.btn>a:hover,
.btn>[type="submit"]:hover,
.btn>[type="button"]:hover,
.btn>button:hover,
.btn>span:hover {
  border: solid 1px var(--main-c);
  background: #fff;
  color: var(--main-c);
  opacity: 0.7;
}

.btn>a::after,
.btn>[type="submit"]::after,
.btn>[type="button"]::after,
.btn>button::after,
.btn>span::after {
  content: '\f105';
  display: var(--fa-display, inline-block);
  display: flex;
  display: none;
  justify-content: center;
  align-items: center;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font-family: "Font Awesome 7 Free";
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-style: normal;
  font-variant: normal;
  font-size: 13px;
  /* NOTE: アイコンの大きさはfont-sizeで調整 */
  font-weight: 700;
  line-height: 1;
  text-rendering: auto;
  width: 1.5em;
  height: auto;
  aspect-ratio: 1 / 1;
  position: absolute;
  right: 1em;
  top: 50%;
  z-index: 1;
  transform: translate(0, -50%);
  transform-origin: right center;
}

@media only screen and (max-width: 767.98px) {

  .btn>a,
  .btn>[type="submit"],
  .btn>[type="button"],
  .btn>button,
  .btn>span {
    padding-inline: 0.75em 2em;
    padding-inline: 0.75em;
  }

  .btn>a::after,
  .btn>[type="submit"]::after,
  .btn>[type="button"]::after,
  .btn>button::after,
  .btn>span::after {
    font-size: 11px;
    /* NOTE: アイコンの大きさはfont-sizeで調整 */
    right: 0.5em;
  }
}

.btn__attract {
  margin: 0 auto 30px;
  max-width: 350px;
}

.btn__correction {
  margin: 0 auto 30px;
  max-width: 300px;
}


.btn--small {
  width: 100%;
  max-width: 250px;
  position: relative
}

.btn--small>a,
.btn--small>[type="submit"],
.btn--small>[type="button"],
.btn--small>button,
.btn--small>span {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  border: 1px solid var(--main-c);
  background: #fff;
  color: var(--main-c);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  width: 100%;
  height: var(--btn-small-height);
  padding: 0 10px;
  transition:
    box-shadow 0.2s ease,
    border 0.2s ease,
    background 0.2s ease,
    color 0.2s ease,
    opacity 0.2s ease;
  cursor: pointer;
}

.btn--small>a:hover,
.btn--small>[type="submit"]:hover,
.btn--small>[type="button"]:hover,
.btn--small>button:hover,
.btn--small>span:hover {
  opacity: 0.7;
}

@media only screen and (max-width: 767.98px) {

  .btn--small>a,
  .btn--small>[type="submit"],
  .btn--small>[type="button"],
  .btn--small>button,
  .btn--small>span {
    font-size: 10px;
    padding: 0 5px;
  }
}


/* button large */
.btn--large {
  max-width: 360px;
}

.btn--large>a,
.btn--large>[type="submit"],
.btn--large>[type="button"],
.btn--large>button,
.btn--large>span {
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.08);
  border-radius: var(--btn-radius);
  border: solid 1px var(--main-c);
  background: #fff;
  color: var(--main-c);
  font-size: 18px;
  width: 100%;
  height: calc(var(--btn-height) * 1.5);
  padding-inline: 1.5em;
  position: relative;
  transition:
    box-shadow 0.2s ease,
    border 0.2s ease,
    background 0.2s ease,
    color 0.2s ease,
    opacity 0.2s ease;
  cursor: pointer;
}

.btn--large>a:hover,
.btn--large>[type="submit"]:hover,
.btn--large>[type="button"]:hover,
.btn--large>button:hover,
.btn--large>span:hover {
  opacity: 0.7;
}

.btn--large>span::after,
.btn--large>a::after {
  font-size: 15px;
  /* NOTE: アイコンの大きさはfont-sizeで調整 */
  right: 0.75em;
}

@media only screen and (max-width: 767.98px) {

  .btn--large>a,
  .btn--large>[type="submit"],
  .btn--large>[type="button"],
  .btn--large>button,
  .btn--large>span {
    font-size: 16px;
  }

  .btn--large>span::after,
  .btn--large>a::after {
    font-size: 13px;
    /* NOTE: アイコンの大きさはfont-sizeで調整 */
    right: 0.5em;
  }
}


/* button align center */
.btn--center {
  margin-inline: auto;
}


/* button size tight */
.btn--tight {
  width: fit-content;
  margin: 0;
}

.btn.btn--tight {
  margin-inline: 0;
}

.btn.btn--tight>a,
.btn.btn--tight>[type="submit"],
.btn.btn--tight>[type="button"],
.btn.btn--tight>button,
.btn.btn--tight>span {
  /* NOTE: iconが着くことを想定したpadding */
  padding-inline: 1em 2.5em;
}

.btn.btn--tight>a::after,
.btn.btn--tight>[type="submit"]::after,
.btn.btn--tight>[type="button"]::after,
.btn.btn--tight>button::after,
.btn.btn--tight>span::after {
  /* NOTE: iconの位置を調整 */
  right: 0.5em;
}

.btn--small.btn--tight>a,
.btn--small.btn--tight>[type="submit"],
.btn--small.btn--tight>[type="button"],
.btn--small.btn--tight>button,
.btn--small.btn--tight>span {
  white-space: nowrap;
}


/* button like */
.btn--like>a,
.btn--like>button,
.btn--like>span,
.btn--like>*:hover,
.btn--like>a:hover,
.btn--like>button:hover,
.btn--like>span:hover {
  border: 1px solid var(--main-c);
  background: #fff;
  color: var(--main-c);
  gap: 1.5ex;
}

.btn--like>a::before,
.btn--like>button::before,
.btn--like>span::before {
  content: '\f004';
  display: flex;
  justify-content: center;
  align-items: center;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: "Font Awesome 7 Free";
  font-style: normal;
  font-variant: normal;
  font-weight: 400;
  line-height: 1;
  text-rendering: auto;

  width: 1em;
  height: auto;
  aspect-ratio: 1 / 1;

  /* NOTE: 以下、.btn、.btn--smallのスタイルの解除 */
  border-radius: 0;
  color: inherit;
  font-size: inherit;
  /*aspect-ratio: 1 / 1;*/
  position: static;
  right: auto;
  top: auto;
  transform: scale(1.25);
  transform-origin: center center;

  filter: grayscale(1) contrast(0);
  opacity: 0.25;
  transition: all 0.4s ease;
}

.btn--like>a:hover::before,
.btn--like>button:hover::before,
.btn--like>span:hover::before {
  font-weight: 400;
  filter: grayscale(0);
  opacity: 1;
}

.btn--like.is--active>a::before,
.btn--like.is--active>button::before,
.btn--like.is--active>span::before {
  font-weight: 900;
  filter: grayscale(0);
  opacity: 1;
}

.btn--like.is--active>a:hover::before,
.btn--like.is--active>button:hover::before,
.btn--like.is--active>span:hover::before {
  font-weight: 900;
  filter: grayscale(1) contrast(0);
  opacity: 0.25;
}

.btn--like>a::after,
.btn--like>button::after,
.btn--like>span::after {
  display: none;
}


/* button massage */
.btn--message>a,
.btn--message>button,
.btn--message>span {
  border: 1px solid var(--main-c);
  background: #fff;
  color: var(--main-c);
  gap: 1ex;
}

.btn--message>a::before,
.btn--message>button::before,
.btn--message>span::before {
  content: '\f075';
  display: flex;
  justify-content: center;
  align-items: center;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: "Font Awesome 7 Free";
  font-style: normal;
  font-variant: normal;
  font-weight: 900;
  line-height: 1;
  text-rendering: auto;
  opacity: 1;
  position: static;
  top: auto;
  right: auto;
  bottom: auto;
  left: auto;
  z-index: 1;
  transition: all 0.4s ease;

  /* NOTE: 以下、.btn、.btn--smallのスタイルの解除 */
  border-radius: 0;
  color: inherit;
  /*font-family: inherit;*/
  /*font-style: inherit;*/
  /*font-variant: inherit;*/
  font-size: inherit;
  /*aspect-ratio: 1 / 1;*/
  /*position: static;*/
  /*right: auto;*/
  /*top: auto;*/
  transform: scale(1.125);
  transform-origin: center center;
}

.btn--message>a:hover::before,
.btn--message>button:hover::before,
.btn--message>span:hover::before {
  background: #edf9ff
}

.btn--message>a::after,
.btn--message>button::after,
.btn--message>span::after {
  display: none;
}


/* アイコンボタン　お気に入り（いいね） */
.btn--fav {
  max-width: none;
  margin: 0;
}

.btn--fav>a,
.btn--fav>[type="submit"],
.btn--fav>[type="button"],
.btn--fav>button,
.btn--fav>span {
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: none;
  border-radius: 0;
  border: none;
  background: transparent;
  color: var(--main-c);
  width: auto;
  height: 1em;
  padding: 0;
  position: relative;
  filter: grayscale(1) contrast(0);
  opacity: 0.25;
  transition: all 0.4s ease;
}

.btn--fav>a:hover,
.btn--fav>[type="submit"]:hover,
.btn--fav>[type="button"]:hover,
.btn--fav>button:hover,
.btn--fav>span:hover {
  font-weight: 400;
  filter: grayscale(0);
  opacity: 1;
}

.btn--fav.is--active>a,
.btn--fav.is--active>[type="submit"],
.btn--fav.is--active>[type="button"],
.btn--fav.is--active>button,
.btn--fav.is--active>span {
  font-weight: 900;
  filter: grayscale(0);
  opacity: 1;
}

.btn--fav.is--active>a:hover,
.btn--fav.is--active>[type="submit"]:hover,
.btn--fav.is--active>[type="button"]:hover,
.btn--fav.is--active>button:hover,
.btn--fav.is--active>span:hover {
  font-weight: 900;
  filter: grayscale(1) contrast(0);
  opacity: 0.25;
}

.btn--fav>a::after,
.btn--fav>[type="submit"]::after,
.btn--fav>[type="button"]::after,
.btn--fav>button::after,
.btn--fav>span::after {
  content: '\f004';
  display: flex;
  justify-content: center;
  align-items: center;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: "Font Awesome 7 Free";
  font-style: normal;
  font-variant: normal;
  font-weight: inherit;
  line-height: 1;
  text-rendering: auto;

  width: 1em;
  height: auto;
  aspect-ratio: 1 / 1;

  /* NOTE: 以下、.btn、.btn--smallのスタイルの解除 */
  border-radius: 0;
  color: inherit;
  font-family: inherit;
  font-style: inherit;
  font-variant: inherit;
  font-size: inherit;
  /*aspect-ratio: 1 / 1;*/
  position: static;
  right: auto;
  top: auto;
  transform: translate(0, 0);
  transform-origin: center center;
}

/* アイコンボタン　メッセージ */
.btn--msg {
  max-width: none;
  margin: 0;
}

.btn--msg>a,
.btn--msg>[type="submit"],
.btn--msg>[type="button"],
.btn--msg>button,
.btn--msg>span {
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: none;
  border-radius: 0;
  border: none;
  background: transparent;
  color: var(--font-c-blue);
  width: auto;
  height: 1em;
  padding-inline: 0;
  position: relative;
}

.btn--msg>a:hover,
.btn--msg>[type="submit"]:hover,
.btn--msg>[type="button"]:hover,
.btn--msg>button:hover,
.btn--msg>span:hover {}

.btn--msg>a::before,
.btn--msg>[type="submit"]::after,
.btn--msg>[type="button"]::after,
.btn--msg>button::before,
.btn--msg>span::before {
  content: '\f075';
  display: flex;
  justify-content: center;
  align-items: center;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: "Font Awesome 7 Free";
  font-style: normal;
  font-variant: normal;
  font-weight: 400;
  line-height: 1;
  text-rendering: auto;
  opacity: 1;
  transition: all 0.4s ease;
}

.btn--msg>a::after,
.btn--msg>[type="submit"]::after,
.btn--msg>[type="button"]::after,
.btn--msg>button::after,
.btn--msg>span::after {
  content: '\f075';
  display: flex;
  justify-content: center;
  align-items: center;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-family: "Font Awesome 7 Free";
  font-style: normal;
  font-variant: normal;
  font-weight: 900;
  line-height: 1;
  text-rendering: auto;
  opacity: 0;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 10;
  transition: all 0.4s ease;

  /* NOTE: 以下、.btn、.btn--smallのスタイルの解除 */
  border-radius: 0;
  color: inherit;
  /*font-family: inherit;*/
  /*font-style: inherit;*/
  /*font-variant: inherit;*/
  font-size: inherit;
  /*aspect-ratio: 1 / 1;*/
  /*position: static;*/
  /*right: auto;*/
  /*top: auto;*/
  transform: translate(0, 0);
  transform-origin: center center;
}

.btn--msg>a:hover::before,
.btn--msg>[type="submit"]:hover::before,
.btn--msg>[type="button"]:hover::before,
.btn--msg>button:hover::before,
.btn--msg>span:hover::before {
  opacity: 0;
}

.btn--msg>a:hover::after,
.btn--msg>[type="submit"]:hover::after,
.btn--msg>[type="button"]:hover::after,
.btn--msg>button:hover::after,
.btn--msg>span:hover::after {
  opacity: 1;
}



/* button link */
.btn--link [type="submit"],
.btn--link [type="button"],
.btn--link span,
.btn--link a,
.btn--link [type="submit"]:hover,
.btn--link [type="button"]:hover,
.btn--link span:hover,
.btn--link a:hover {
  border: 1px solid var(--main-c);
  background: #fff;
  color: var(--main-c);
}


/* button checkbox and radio */
.btn--checkbox {
  max-width: none;
  width: auto;
  margin: 0;
  position: relative;
  cursor: pointer;
}

.btn--checkbox [type="checkbox"],
.btn--checkbox [type="radio"] {
  position: absolute;
  opacity: 0;
}

.btn--checkbox>a,
.btn--checkbox>[type="submit"],
.btn--checkbox>[type="button"],
.btn--checkbox>button,
.btn--checkbox>span {
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.08);
  border-radius: var(--btn-height);
  border: solid 1px var(--main-c);
  background: #fff;
  color: var(--main-c);
}

.btn--checkbox>a:hover,
.btn--checkbox>[type="submit"]:hover,
.btn--checkbox>[type="button"]:hover,
.btn--checkbox>button:hover,
.btn--checkbox>span:hover {
  border: solid 1px var(--main-c);
  background: #fff;
  color: var(--main-c);
  opacity: 0.7;
}

.btn--checkbox>a::after,
.btn--checkbox>[type="submit"]::after,
.btn--checkbox>[type="button"]::after,
.btn--checkbox>button::after,
.btn--checkbox>span::after {
  content: '\f00c';
  font-size: 13px;
  /* NOTE: アイコンの大きさはfont-sizeで調整 */
  width: 1.5em;
  height: auto;
  aspect-ratio: 1 / 1;
  position: absolute;
  left: 1em;
  right: auto;
  top: 50%;
  z-index: 1;
  transform: translate(0, -50%);
  transform-origin: center center;
  opacity: 0;
  transition:
    opacity 0.8s ease;
}

/* checked */
.btn--checkbox:has(:checked)>a,
.btn--checkbox:has(:checked)>[type="submit"],
.btn--checkbox:has(:checked)>[type="button"],
.btn--checkbox:has(:checked)>button,
.btn--checkbox:has(:checked)>span {
  border: solid 1px var(--main-c);
  background: var(--main-c);
  color: #fff;
}

.btn--checkbox:has(:checked)>a::after,
.btn--checkbox:has(:checked)>[type="submit"]::after,
.btn--checkbox:has(:checked)>[type="button"]::after,
.btn--checkbox:has(:checked)>button::after,
.btn--checkbox:has(:checked)>span::after {
  background: #fff;
  color: var(--main-c);
  opacity: 1;
}


/* button toggle */
.btn--toggle {
  max-width: none;
  width: auto;
  margin: 0;
  position: relative;
  cursor: pointer;
}

.btn--toggle>a,
.btn--toggle>[type="submit"],
.btn--toggle>[type="button"],
.btn--toggle>button,
.btn--toggle>span {
  /*box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.08);*/
  box-shadow: none;
  border-radius: var(--btn-height);
  border: solid 1px var(--main-c);
  background: #fff;
  color: var(--main-c);
  height: 24px;
}

.btn--toggle>a:hover,
.btn--toggle>[type="submit"]:hover,
.btn--toggle>[type="button"]:hover,
.btn--toggle>button:hover,
.btn--toggle>span:hover {
  border: solid 1px var(--main-c);
  background: #fff;
  color: var(--main-c);
  opacity: 0.7;
}

.btn--toggle>a::after,
.btn--toggle>[type="submit"]::after,
.btn--toggle>[type="button"]::after,
.btn--toggle>button::after,
.btn--toggle>span::after {
  content: '';
  box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.08);
  font-size: 10px;
  /* NOTE: アイコンの大きさはfont-sizeで調整 */
  width: 1.5em;
  height: auto;
  aspect-ratio: 1 / 1;
  position: absolute;
  left: 1em;
  right: auto;
  top: 50%;
  z-index: 1;
  transform: translate(0, -50%);
  transform-origin: center center;
}

/* on */
.btn--toggle.on>a,
.btn--toggle.on>[type="submit"],
.btn--toggle.on>[type="button"],
.btn--toggle.on>button,
.btn--toggle.on>span {
  border: solid 1px var(--main-c);
  background: var(--main-c);
  color: #fff;
}

.btn--toggle.on>a::after,
.btn--toggle.on>[type="submit"]::after,
.btn--toggle.on>[type="button"]::after,
.btn--toggle.on>button::after,
.btn--toggle.on>span::after {
  background: #fff;
  color: var(--main-c);
  position: absolute;
  left: auto;
  right: 0.66em;
  top: 50%;
  z-index: 1;
  transform: translate(0, -50%);
  transform-origin: center center;
}

/* off */
.btn--toggle.off>a,
.btn--toggle.off>[type="submit"],
.btn--toggle.off>[type="button"],
.btn--toggle.off>button,
.btn--toggle.off>span {
  border: 1px solid var(--font-c-gray);
  background: var(--bg-c-silvergray);
  color: #fff;
}

.btn--toggle.off>a::after,
.btn--toggle.off>[type="submit"]::after,
.btn--toggle.off>[type="button"]::after,
.btn--toggle.off>button::after,
.btn--toggle.off>span::after {
  background: #fff;
  color: var(--font-c-gray);
  position: absolute;
  left: 0.66em;
  right: auto;
  top: 50%;
  z-index: 1;
  transform: translate(0, -50%);
  transform-origin: center center;
}


/* button gray color */
.btn--gray>a,
.btn--gray>[type="submit"],
.btn--gray>[type="button"],
.btn--gray>button,
.btn--gray>span {
  border: 1px solid var(--font-c-gray);
  background: #fff;
  color: var(--font-c-gray);
}
.btn--gray>a:hover,
.btn--gray>[type="submit"]:hover,
.btn--gray>[type="button"]:hover,
.btn--gray>button:hover,
.btn--gray>span:hover {
  border: 1px solid var(--font-c-gray);
  background: #fff;
  color: var(--font-c-gray);
}

.btn--gray-fill>a,
.btn--gray-fill>[type="submit"],
.btn--gray-fill>[type="button"],
.btn--gray-fill>button,
.btn--gray-fill>span {
  border: 1px solid var(--bg-c-silvergray);
  background: var(--bg-c-silvergray);
  color: var(--font-c);
}
.btn--gray-fill>a:hover,
.btn--gray-fill>[type="submit"]:hover,
.btn--gray-fill>[type="button"]:hover,
.btn--gray-fill>button:hover,
.btn--gray-fill>span:hover {
  border: 1px solid var(--bg-c-silvergray);
  background: var(--bg-c-silvergray);
  color: var(--font-c);
}


/* button red color */
.btn--red>a,
.btn--red>[type="submit"],
.btn--red>[type="button"],
.btn--red>button,
.btn--red>span {
  border: 1px solid var(--font-c-red);
  background: #fff;
  color: var(--font-c-red);
}
.btn--red>a:hover,
.btn--red>[type="submit"]:hover,
.btn--red>[type="button"]:hover,
.btn--red>button:hover,
.btn--red>span:hover {
  border: 1px solid var(--font-c-red);
  background: #fff;
  color: var(--font-c-red);
}

.btn--red-fill>a,
.btn--red-fill>[type="submit"],
.btn--red-fill>[type="button"],
.btn--red-fill>button,
.btn--red-fill>span {
  border: 1px solid var(--font-c-red);
  background: var(--font-c-red);
  color: #fff;
}
.btn--red-fill>a:hover,
.btn--red-fill>[type="submit"]:hover,
.btn--red-fill>[type="button"]:hover,
.btn--red-fill>button:hover,
.btn--red-fill>span:hover {
  border: 1px solid var(--font-c-red);
  background: var(--font-c-red);
  color: #fff;
}

/* button main color */
.btn--main>a,
.btn--main>[type="submit"],
.btn--main>[type="button"],
.btn--main>button,
.btn--main>span {
  border: 1px solid var(--main-c);
  background: #fff;
  color: var(--main-c);
}
.btn--main>a:hover,
.btn--main>[type="submit"]:hover,
.btn--main>[type="button"]:hover,
.btn--main>button:hover,
.btn--main>span:hover {
  border: 1px solid var(--main-c);
  background: #fff;
  color: var(--main-c);
}

.btn--main-fill>a,
.btn--main-fill>[type="submit"],
.btn--main-fill>[type="button"],
.btn--main-fill>button,
.btn--main-fill>span {
  border: 1px solid var(--main-c);
  background: var(--main-c);
  color: #fff;
}
.btn--main-fill>a:hover,
.btn--main-fill>[type="submit"]:hover,
.btn--main-fill>[type="button"]:hover,
.btn--main-fill>button:hover,
.btn--main-fill>span:hover {
  border: 1px solid var(--main-c);
  background: var(--main-c);
  color: #fff;
}
/* No33: LINE系ボタンはLINEブランドカラー(#06C755)で統一（.btn--main-fill より後に定義して上書き） */
.btn-line>a,
.btn-line>[type="submit"],
.btn-line>[type="button"],
.btn-line>button,
.btn-line>span {
  border: 1px solid #06C755;
  background: #06C755;
  color: #fff;
}
.btn-line>a:hover,
.btn-line>[type="submit"]:hover,
.btn-line>[type="button"]:hover,
.btn-line>button:hover,
.btn-line>span:hover {
  border: 1px solid #05b34c;
  background: #05b34c;
  color: #fff;
}


/* button black color */
.btn--black>a,
.btn--black>[type="submit"],
.btn--black>[type="button"],
.btn--black>button,
.btn--black>span {
  border: 1px solid var(--font-c);
  background: #fff;
  color: var(--font-c);
}

.btn--black>a:hover,
.btn--black>[type="submit"]:hover,
.btn--black>[type="button"]:hover,
.btn--black>button:hover,
.btn--black>span:hover {
  border: 1px solid var(--font-c);
  background: #fff;
  color: var(--font-c);
}

.btn--black-fill>a,
.btn--black-fill>[type="submit"],
.btn--black-fill>[type="button"],
.btn--black-fill>button,
.btn--black-fill>span {
  border: 1px solid var(--font-c);
  background: var(--font-c);
  color: #fff;
}
.btn--black-fill>a:hover,
.btn--black-fill>[type="submit"]:hover,
.btn--black-fill>[type="button"]:hover,
.btn--black-fill>button:hover,
.btn--black-fill>span:hover {
  border: 1px solid var(--font-c);
  background: var(--font-c);
  color: #fff;
}

/* button delete */
.btn--delete>a,
.btn--delete>[type="submit"],
.btn--delete>[type="button"],
.btn--delete>button,
.btn--delete>span {
  border: 1px solid var(--bg-c-silvergray);
  background: var(--bg-c-underlayer);
  color: var(--font-c-gray);
}

.btn--delete>a::after,
.btn--delete>[type="submit"]::after,
.btn--delete>[type="button"]::after,
.btn--delete>button::after,
.btn--delete>span::after {
  background: transparent;
  color: #fff;
}


/* button other icon */
/* icon blank page */
.btn--icon-blank>a::after,
.btn--icon-blank>[type="submit"]::after,
.btn--icon-blank>[type="button"]::after,
.btn--icon-blank>button::after,
.btn--icon-blank>span::after {
  content: '\f35d';
  display: var(--fa-display, inline-block);
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: transparent;
  color: var(--main-c);
  font-family: "Font Awesome 7 Free";
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-style: normal;
  font-variant: normal;
  font-size: 13px;
  /* NOTE: アイコンの大きさはfont-sizeで調整 */
  font-weight: 700;
  line-height: 1;
  text-rendering: auto;
  width: 1.5em;
  height: auto;
  aspect-ratio: 1 / 1;
  position: absolute;
  right: 1.5em;
  top: 50%;
  z-index: 1;
  transform: translate(0, -50%);
  transform-origin: right center;
}

/* icon faq */
.btn--icon-faq>a::after,
.btn--icon-faq>[type="submit"]::after,
.btn--icon-faq>[type="button"]::after,
.btn--icon-faq>button::after,
.btn--icon-faq>span::after {
  content: '';
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 0;
  background: none;
  background-color: currentColor;
  -webkit-mask: no-repeat center / contain;
  mask: no-repeat center / contain;
  -webkit-mask-image: url(../images/icon-btn-faq.svg);
  mask-image: url(../images/icon-btn-faq.svg);
  color: inherit;
  font-style: normal;
  font-variant: normal;
  font-size: inherit;
  font-weight: inherit;
  width: 1.5em;
  height: auto;
  aspect-ratio: 1 / 1;
  position: absolute;
  right: 1.5em;
  top: 50%;
  z-index: 1;
  transform: translate(0, -50%);
  transform-origin: right center;
}
.btn--icon-faq>a:hover::after,
.btn--icon-faq>[type="submit"]:hover::after,
.btn--icon-faq>[type="button"]:hover::after,
.btn--icon-faq>button:hover::after,
.btn--icon-faq>span:hover::after {
  color: inherit;
}

/* icon contact */
.btn--icon-contact>a::after,
.btn--icon-contact>[type="submit"]::after,
.btn--icon-contact>[type="button"]::after,
.btn--icon-contact>button::after,
.btn--icon-contact>span::after {
  content: '';
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 0;
  background: none;
  background-color: currentColor;
  -webkit-mask: no-repeat center / contain;
  mask: no-repeat center / contain;
  -webkit-mask-image: url(../images/icon-btn-contact-w.svg);
  mask-image: url(../images/icon-btn-contact-w.svg);
  color: inherit;
  font-style: normal;
  font-variant: normal;
  font-size: inherit;
  font-weight: inherit;
  width: 1.5em;
  height: auto;
  aspect-ratio: 1 / 1;
  position: absolute;
  right: 1.5em;
  top: 50%;
  z-index: 1;
  transform: translate(0, -50%);
  transform-origin: right center;
}
.btn--icon-contact>a:hover::after,
.btn--icon-contact>[type="submit"]:hover::after,
.btn--icon-contact>[type="button"]:hover::after,
.btn--icon-contact>button:hover::after,
.btn--icon-contact>span:hover::after {
  color: inherit;
}


/* icon align left */
.btn--icon-left>a,
.btn--icon-left>[type="submit"],
.btn--icon-left>[type="button"],
.btn--icon-left>button,
.btn--icon-left>span {
  padding-inline: 2.5em 1.5em;
}
.btn--icon-left>a::after,
.btn--icon-left>[type="submit"]::after,
.btn--icon-left>[type="button"]::after,
.btn--icon-left>button::after,
.btn--icon-left>span::after {
  left: 1em;
  right: auto;
  top: 50%;
  transform: translate(0, -50%);
  transform-origin: left center;
}
@media only screen and (max-width: 767.98px) {
  .btn--icon-left>a,
  .btn--icon-left>[type="submit"],
  .btn--icon-left>[type="button"],
  .btn--icon-left>button,
  .btn--icon-left>span {
    padding-inline: 2em 0.75em;
  }
  .btn--icon-left>a::after,
  .btn--icon-left>[type="submit"]::after,
  .btn--icon-left>[type="button"]::after,
  .btn--icon-left>button::after,
  .btn--icon-left>span::after {
    left: 0.5em;
    right: auto;
  }
}

/* icon align right */
.btn--icon-right>a,
.btn--icon-right>[type="submit"],
.btn--icon-right>[type="button"],
.btn--icon-right>button,
.btn--icon-right>span {
  padding-inline: 1.5em 2.5em;
}
.btn--icon-right>a::after,
.btn--icon-right>[type="submit"]::after,
.btn--icon-right>[type="button"]::after,
.btn--icon-right>button::after,
.btn--icon-right>span::after {
  left: auto;
  right: 1em;
  top: 50%;
  transform: translate(0, -50%);
  transform-origin: right center;
}
@media only screen and (max-width: 767.98px) {
  .btn--icon-right>a,
  .btn--icon-right>[type="submit"],
  .btn--icon-right>[type="button"],
  .btn--icon-right>button,
  .btn--icon-right>span {
    padding-inline: 0.75em 2em;
  }
  .btn--icon-right>a::after,
  .btn--icon-right>[type="submit"]::after,
  .btn--icon-right>[type="button"]::after,
  .btn--icon-right>button::after,
  .btn--icon-right>span::after {
    left: auto;
    right: 0.5em;
  }
}



/* icon none */
.btn--icon-none>a::after,
.btn--icon-none>[type="submit"]::after,
.btn--icon-none>[type="button"]::after,
.btn--icon-none>button::after,
.btn--icon-none>span::after {
  display: none;
}



/* button disabled color */
.btn--disabled {
  filter: grayscale(1);
}


/* ボタン上・下の文言 */
/* NOTE: 文字の大きさ調整は、親セレクタと合わせた新しいセレクタを作ってください */
.btn-over-txt {
  display: block;
  font-size: 13px;
  text-align: center;
  margin-bottom: 1em;
}
.btn-over-txt a {
  color: var(--main-c);
}

.btn-under-txt {
  display: block;
  font-size: 13px;
  text-align: center;
  margin-top: 1em;
}
.btn-under-txt a {
  color: var(--main-c);
}

@media only screen and (max-width: 767.98px) {}


/** 横並びボタン **/
.box-btn,
.btnBox {
  --box-btn-gap: 12px;
  width: 100%;
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-content: center;
  align-items: center;
  gap: var(--box-btn-gap);
}

@media only screen and (max-width: 767.98px) {

  .box-btn,
  .btnBox {
    --box-btn-gap: 8px;
    gap: var(--box-btn-gap);
  }
}

.box-btn .btn,
.btnBox .btn {
  max-width: none;
  width: calc((100% - var(--box-btn-gap))/2);
}

.box-btn .btn--small,
.btnBox .btn--small {
  max-width: none;
  width: calc((100% - var(--box-btn-gap)*1)/2);
}


/**
 * swipe
 * NOTE: --basewrap-width
**/
@media (max-width: 767.98px) {
  .swipe {
    width: auto;
    padding: 10px;
    display: block;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overflow-scrolling: touch;
    overflow: auto;
  }
}


/**
 * formset
 * NOTE: .formset ラッパーは使用しない場合があります。
**/
@media (min-width: 768px) {
  .formset {
    margin-bottom: 32px;
    padding: 40px;
    background: #fff;
    border: 1px solid var(--ui-input-c-border);
    border-radius: var(--btn-radius);
    box-shadow: 0 2px 4px rgba(0, 0, 0, .1);
  }
}

@media (max-width: 767.98px) {
  .formset {
    padding-bottom: 20px;
    border-bottom: 1px solid var(--ui-input-c-border);
  }
}

/* formset box */
/* NOTE: フォームのグループ分け（使用しない場合あり） */
.formset__box {
  margin-bottom: 32px;
  padding: 12px 20px 20px;
}
@media (max-width: 959.98px) {
  .formset__box {
    margin-bottom: 16px;
    padding: 12px 0 20px;
  }
}
@media (max-width: 767.98px) {
  .formset__box {
    margin-bottom: 16px;
    padding: 12px 0 20px;
  }
}


/* formset h2 */
/* NOTE: h2に相当する見出しで横100％の領域（使用しない場合あり・タグにh2要素を使わなくてもOK） */
.formset__h2 {
  flex: 1 100%;
  border-bottom: 1px solid #e5e5e5;
  border-radius: 4px;
  font-size: 18px;
  letter-spacing: 0.05ex;
  text-decoration: none;
  height: 32px;
  margin: 20px 20px 0;
  position: relative;
}

.formset__h2[data-acc-ttl] {
  position: relative;
  transition: background 0.2s ease;
  cursor: pointer;
}

.formset__h2[data-acc-ttl]:hover {
  background: #f1f1f1;
}

.formset__h2[data-acc-ttl]::after {
  content: '\f0d7';
  display: var(--fa-display, inline-block);
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  border: 1px solid #e5e5e5;
  background: #fff;
  color: #ccc;
  font-family: "Font Awesome 6 Free";
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-style: normal;
  font-variant: normal;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  text-rendering: auto;
  width: 1.5em;
  height: auto;
  aspect-ratio: 1 / 1;
  position: absolute;
  right: 0;
  top: 50%;
  z-index: 1;
  transform: translate(0, -50%);
  transform-origin: right center;
  transition: all 0.2s ease;
  pointer-events: none;
}

.formset__h2.is--active[data-acc-ttl]::after {
  border: 1px solid var(--main-c);
  background: var(--main-c);
  color: #fff;
  transform: translate(0, -50%) scaleY(-1);
}

.formset__h2 span {
  font-size: 14px;
  margin-left: 2em;
}

.formset__h2::before {
  content: '';
  display: block;
  border-bottom: 1px solid var(--main-c);
  width: 80px;
  margin-bottom: -1px;
  position: absolute;
  bottom: 0;
}

@media (max-width: 767.98px) {
  .formset__h2 {
    margin: 12px 0 0;
  }
}


/* formset 2col */
/* NOTE: formset__itemを横に2つ並べたい時に使います（SPでも強制的に2列になるので注意） */
.formset__2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--formset-gap);
}
.formset__2col *+.formset__item {
  margin-top: 0;
}
*+.formset__2col {
  margin-top: var(--formset-items-row-gap);
}


/* formset item */
/* NOTE: タイトルと入力部品をラップするもの */
.formset__item {
  display: flex;
  flex-flow: row nowrap;
  justify-content: flex-start;
  align-items: stretch;
  line-height: 1.4;
  width: 100%;
  margin: 0 auto;
  gap: var(--formset-gap);
}
.formset__item.formset__item--column {
  display: flex;
  flex-flow: column nowrap;
  justify-content: flex-start;
  align-items: stretch;
}
*+.formset__item {
  margin-top: var(--formset-items-row-gap);
}
@media (max-width: 767.98px) {
  .formset__item {
    flex-flow: row wrap;
    justify-content: flex-start;
    align-content: stretch;
    align-items: stretch;
  }
}
@media (max-width: 560.98px) {
  .formset__item {
    flex-flow: row wrap;
    justify-content: flex-start;
    align-content: stretch;
    align-items: stretch;
  }
}


/* formset ttl, formset input  */
/* タイトル */
.formset__ttl {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  align-content: center;
  align-items: center;
  color: var(--font-c-gray-dark);
  font-feature-settings: 'palt';
  font-weight: 700;
  letter-spacing: 0.05ex;
  min-width: var(--formset-ttl-width);
  padding: 0;
}
.formset__item.formset__item--column .formset__ttl {
  min-width: 0;
  width: auto;
  padding: 0;
}

/* タイトル挿入用ラベル要素 */
/* NOTE: 必ずlabelでタイトルをラップしてください。（ここでのlabelはfor属性は基本的に不要） */
.formset__ttl>label {
  display: block;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-feature-settings: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  cursor: inherit;
}

/* 必須マーク */
.formset__must {
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--btn-radius);
  background: #ec5937;
  color: #fff;
  font-size: 11px;
  line-height: 1.25;
  width: fit-content;
  height: 20px;
  margin: 0 0 0 auto;
  padding: 0 1ex;
}

/* 入力部品をラップするもの */
.formset__input {
  display: flex;
  flex-flow: row nowrap;
  justify-content: flex-start;
  align-content: center;
  align-items: center;
  /* NOTE: 上下中央 */
  width: 100%;
  /* NOTE: タイトルなければ横100%、複数あれば均等配置 */
  padding: 0;
}
.formset__item.formset__item--column .formset__input {
  width: auto;
  padding: 0;
}

@media (max-width: 767.98px) {
  .formset__ttl,
  .formset__input {
    width: 100%;
    padding: 0;
  }
  .formset__ttl {
    flex-flow: row nowrap;
  }
  .formset__ttl>label+* {
    margin-left: auto;
  }
}


/* 入力部品をラップするもの（flex-wrapをwrapさせる場合） */
.formset__input:has(ul),
.formset__input:has(p.formset__notes) {
  flex-flow: row wrap;
}

@media (min-width: 768px) {

  /* NOTE: スマホ限定なし、もしくはただの.item--flex-breakの場合 */
  .formset__input:has(.item--flex-break:not(.sp--disp)) {
    flex-flow: row wrap;
  }

  /**
   * NOTE:
   * ただし、.item--flex-break.pc--dispと.item--flex-break.sp--dispが
   * .formset__inputに混在の場合には常にwrapします
  **/
}

@media (max-width: 767.98px) {

  /* NOTE: PC限定なし、もしくはただの.item--flex-breakの場合 */
  .formset__input:has(.item--flex-break:not(.pc--disp)) {
    flex-flow: row wrap;
  }

  /**
   * NOTE:
   * ただし、.item--flex-break.pc--dispと.item--flex-break.sp--dispが
   * .formset__inputに混在の場合には常にwrapします
  **/
}


.formset__input img {
  border-radius: var(--btn-radius);
  width: 180px;
  height: auto;
  margin-bottom: 12px;
  margin-right: 12px;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.formset__input [src*="s.gif"] {
  border: solid 1px var(--bg-c-lightgray);
}

@media (max-width: 767.98px) {
  .formset__input img {
    width: 120px;
    height: auto;
  }
}

.formset__input>ul {
  width: 100%;
  margin: 0;
}

.formset__input ul li {
  display: inline-flex;
  margin: 0 12px 12px 0;
  padding: 4px;
  transition: color 0.4s ease;
}

/* formset__ul */
.formset__input .formset__ul,
.formset__ul,
.formset__input .formset__ul>ul,
.formset__ul>ul {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

@media (min-width: 768px) {
  /* NOTE: カラム数の変更は、PCサイズにのみ適用され、SPサイズでは通常通り２カラムになります。 */
  .formset__input .formset__ul.col--3,
  .formset__ul.col--3,
  .formset__input .formset__ul.col--3>ul,
  .formset__ul.col--3>ul {
    grid-template-columns: 1fr 1fr 1fr;
  }
  .formset__input .formset__ul.col--4,
  .formset__ul.col--4,
  .formset__input .formset__ul.col--4>ul,
  .formset__ul.col--4>ul {
    grid-template-columns: 1fr 1fr 1fr;
  }
}
@media (max-width: 767.98px) {
.formset__input .formset__ul,
  .formset__ul,
  .formset__input .formset__ul>ul,
  .formset__ul>ul {
    grid-template-columns: 1fr 1fr;
  }
}
/* NOTE: 1カラムは、PCサイズ、SPサイズ、どちらも適用されます。 */
.formset__input .formset__ul.col--1,
.formset__ul.col--1,
.formset__input .formset__ul.col--1>ul,
.formset__ul.col--1>ul {
  grid-template-columns: 1fr;
}


.formset__input .formset__ul,
.formset__ul {
  margin: 0;
}

.formset__input .formset__ul:has(ul),
.formset__ul:has(ul) {
  display: block;
}

.formset__input .formset__ul>ul,
.formset__ul>ul {
  margin: 0;
}

.formset__input .formset__ul li,
.formset__ul li {
  display: flex;
  margin: 0;
  padding: 4px;
}

/* JSなどから取得したテキストを表示させるもの */
.formset__dispaly-text {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  border-bottom: solid 1px var(--ui-input-c-border);
  font-size: 28px;
  font-weight: 600;
  text-align: center;
  max-width: none;
  width: 100%;
  height: var(--ui-input-height);
  padding: 0 0 4px;
}

/* 入力部品*/
.input-select,
.formset__input [type="text"],
.formset__input [type="email"],
.formset__input [type="tel"],
.formset__input [type="password"],
.formset__input [type="datetime-local"],
.formset__input [type="date"],
.formset__input [type="time"],
.formset__input [type="month"],
.formset__input [type="week"],
.formset__input [type="search"],
.formset__input [type="number"],
textarea {
  border-radius: var(--btn-radius);
  border: 1px solid var(--ui-input-c-border);
  background: #fff;
  font-size: var(--ui-input-fs);
  /* フォーム入力時のの自動拡大を防ぐため必ず --ui-input-fs変数を使用してfont-sizeを指定し、16px以下にしないように注意してください。 */
  max-width: none;
  width: 100%;
  height: var(--ui-input-height);
  padding: 0 1em;
  margin: 0;
}

.input-select {
  height: var(--ui-input-height);
}
.input-select.select {
  height: var(--ui-input-height);
  padding: 0;
}
.input-select.select select {
  border: none;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  font-family: inherit;
  font-size: 16px;
  font-weight: inherit;
  line-height: var(--ui-input-height);
  width: 100%;
  height: var(--ui-input-height);
  margin: 0;
  padding: 0 2em 0 1em;
}

/* 査定モーダルSTEP1（無料査定）のメーカー/車種は、別モーダルを開く疑似セレクト
   （.select > .select__dummy-select）。formset内では幅指定が無く内容幅に縮んで
   崩れるため、他のフォーム項目と同じ全幅・高さで表示する。
   ※ main-vis-search の .select は .formset__input 外（影響なし）。 */
.formset__input .select {
  width: 100%;
}
.formset__input .select .select__dummy-select {
  width: 100%;
  height: var(--ui-input-height);
  line-height: var(--ui-input-height);
  /* 実セレクト(.input-select.select select)と見た目を統一: 影なし・同じ枠色/文字サイズ/余白 */
  box-shadow: none;
  border-color: var(--ui-input-c-border);
  font-size: var(--ui-input-fs);
  padding: 0 2em 0 1em;
}

.formset__input [type="datetime-local"],
.formset__input [type="date"],
.formset__input [type="month"],
.formset__input [type="week"],
.formset__input [type="number"] {
  max-width: 160px;
  width: auto;
}

.formset__input .input-time,
.formset__input [type="time"] {
  max-width: 6em;
  max-width: 160px;
  width: auto;
}


/* ラッパー付きパスワード */
.formset__input .input-password:has([type="text"]),
.formset__input .input-password:has([type="password"]) {
  overflow: hidden;
  padding: 0;
  position: relative;
}

.formset__input .input-password>[type="text"],
.formset__input .input-password>[type="password"] {
  border-radius: inherit;
  border: none;
  background: transparent;
  font-size: inherit;
  max-width: none;
  width: 100%;
  height: 100%;
  padding: 0 1.5em 0 1em;
  margin: 0;
  position: relative;
  z-index: 1;
}

.formset__input .input-password>[type="button"] {
  color: var(--bg-c-silvergray);
  position: absolute;
  z-index: 2;
  right: 4px;
  top: 50%;
  transform: translate(0, -50%);
}

.formset__input .input-password>[type="button"]::before {
  content: '\f06e';
  display: var(--fa-display, inline-block);
  display: flex;
  justify-content: center;
  align-items: center;
  font-family: "Font Awesome 6 Free";
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-style: normal;
  font-variant: normal;
  color: inherit;
  font-size: 1em;
  font-weight: 700;
  line-height: 1;
  text-rendering: auto;
}

.formset__input .input-password.is--show>[type="button"]::before {
  content: '\f070';
}

.formset__input textarea {
  line-height: 1.55;
  max-width: none;
  height: 8em;
  padding: 15px;
}

.formset__input .formset__calendar,
.formset__calendar {
  max-width: 160px;
}

.formset__input .formset__gap,
.formset__gap,
.formset__input .formset__wage,
.formset__wage {
  max-width: 160px;
}

@media (max-width: 767.98px) {

  .input-select,
  .formset__input [type="text"],
  .formset__input [type="email"],
  .formset__input [type="tel"],
  .formset__input [type="password"],
  .formset__input [type="datetime-local"],
  .formset__input [type="date"],
  .formset__input [type="time"],
  .formset__input [type="month"],
  .formset__input [type="week"],
  .formset__input [type="search"],
  .formset__input [type="number"],
  .formset__input textarea {
    font-size: var(--ui-input-fs);
    /* フォーム入力時のの自動拡大を防ぐため必ず --ui-input-fs変数を使用してfont-sizeを指定し、16px以下にしないように注意してください。 */
    padding-inline: 1em;
  }

  .formset__input ul {
    margin-top: 10px;
  }

  .formset__input ul li {
    padding: 2px 0;
  }

  .input-select.select select {
    font-size: var(--ui-input-fs);
    /* フォーム入力時のの自動拡大を防ぐため必ず --ui-input-fs変数を使用してfont-sizeを指定し、16px以下にしないように注意してください。 */
  }

  .formset__input .input-time,
  .formset__input [type="time"] {
    max-width: calc((100vw - var(--basewrap-padding-inline) * 4 - 6em) / 2);
  }

  .formset__input .formset__calendar,
  .formset__calendar {
    max-width: 160px;
  }

  .formset__input .formset__gap,
  .formset__gap {
    max-width: calc((100vw - var(--basewrap-padding-inline) * 4 - 6em) / 2);
  }

  .formset__input .formset__wage,
  .formset__wage {
    max-width: calc((100vw - var(--basewrap-padding-inline) * 4 - 6em) / 2);
  }
}


/* ボタン式ラジオボタン、チェックボックス */
.formset__btn-checkbox {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: var(--formset-gap);
  width: 100%;
}
.formset__btn-checkbox-item {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: var(--btn-radius);
  border: solid 1px var(--ui-input-c-border);
  background: #fff;
  font-size: var(--ui-input-fs);
  text-align: center;
  height: var(--ui-input-height);
  padding: 0 8px;
}
.formset__btn-checkbox-item>[type="radio"],
.formset__btn-checkbox-item>[type="checkbox"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.formset__btn-checkbox-item:has(:checked) {
  border: solid 1px var(--main-c);
  background: var(--sub-c-light);
  font-weight: 700;
}

.formset__btn-select-all {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: var(--btn-radius);
  border: solid 1px var(--ui-input-c-border);
  background: #fff;
  font-size: var(--ui-input-fs);
  text-align: center;
  height: var(--ui-input-height);
  padding: 0 8px;
}

/* 決定ボタンやキャンセルボタン、戻るボタンなど */
/* NOTE: ただし、複数ボタンを配置する場合は、以下のように.box-btnを使ってください。 */
/*
<div class="formset">
  <div class="formset__item">
    <div class="formset__ttl"><label></label></div>
    <div class="formset__input"></div>
  </div>
  <div class="box-btn">
    <div class="btn btn--main-fill">
      <button type="button">登録する</button>
    </div>
    <div class="btn btn--main">
      <button type="button">削除する</button>
    </div>
  </div>
</div>
*/
.formset__btn {
  max-width: 100%;
  min-width: 256px;
  width: fit-content;
  margin-inline: auto;
}

.formset__btn+.formset__btn {
  margin-top: 1em;
}

.formset__btn>[type="button"],
.formset__btn>[type="submit"] {
  /* NOTE: line-height, white-space, height, min-height以外の記述は禁止（不具合がでます） */
  line-height: 1.25;
  white-space: normal;
  height: auto;
  min-height: var(--btn-height);
}

@media (max-width: 767.98px) {
  .login .formset+.formset__btn {
    margin-top: 20px;
  }
}

.formset__btn--back {
  margin-top: 10px;
}

.formset__btn--back button {
  color: var(--main-c);
  background: #fff;
  border: 1px solid var(--main-c);
}

.formset__btn--back button:hover {
  background: #edf9ff;
}


/* type file */
.formset__input [type="file"] {
  border-radius: var(--btn-radius);
  background: rgba(0, 0, 0, 0.04);
  color: var(--font-c-gray);
  min-width: 280px;
  margin: 0;
  padding: 6px 10px 6px 6px;
}

.formset__input [type="file"]::file-selector-button {
  border-radius: var(--btn-radius);
  border: 1px solid var(--ui-input-c-border);
  background: #fff;
  color: var(--font-c);
  font-size: 16px;
  width: auto;
  height: var(--ui-input-height);
  margin: 0 8px 0 0;
  padding: 0 0.5em;
}

.formset__file-delete {
  display: block;
  margin: 0;
}

.txt-delete {}

[type="radio"]+.txt-delete,
[type="checkbox"]+.txt-delete {
  display: inline-block;
  transform: translate(0, -3px);
}


/* 郵便番号 */
.formset__input .input-zip {
  max-width: 14ex;
}

/* break */
.item--flex-break {
  width: 100%;
}

@media (min-width: 768px) {
  .item--flex-break.sp--disp+* {
    margin-left: var(--ui-input-gap);
  }
}

@media (max-width: 767.98px) {
  .item--flex-break.pc--disp+* {
    margin-left: var(--ui-input-gap);
  }
}


/* 単位 */
.item--unit {
  white-space: nowrap;
}

.formset__calc-total+.item--unit,
.input-select+.item--unit,
.formset__input [type="text"]+.item--unit,
.formset__input [type="email"]+.item--unit,
.formset__input [type="tel"]+.item--unit,
.formset__input [type="password"]+.item--unit,
.formset__input [type="date"]+.item--unit,
.formset__input [type="datetime-local"]+.item--unit,
.formset__input [type="time"]+.item--unit,
.formset__input [type="month"]+.item--unit,
.formset__input [type="week"]+.item--unit,
.formset__input [type="search"]+.item--unit,
.formset__input [type="number"]+.item--unit {
  /* NOTE: margin-left以外を記述すると不具合が出ます */
  margin-left: var(--ui-input-gap);
}

/* セパレータ（～、＋などの記号） */
.item--sep {
  white-space: nowrap;
}

.formset__calc-total+.item--sep,
.input-select+.item--sep,
.formset__input [type="text"]+.item--sep,
.formset__input [type="email"]+.item--sep,
.formset__input [type="tel"]+.item--sep,
.formset__input [type="password"]+.item--sep,
.formset__input [type="date"]+.item--sep,
.formset__input [type="datetime-local"]+.item--sep,
.formset__input [type="time"]+.item--sep,
.formset__input [type="month"]+.item--sep,
.formset__input [type="week"]+.item--sep,
.formset__input [type="search"]+.item--sep,
.formset__input [type="number"]+.item--sep {
  /* NOTE: margin-left以外を記述すると不具合が出ます */
  margin-left: var(--ui-input-gap);
}

.item--sep+.formset__calc-total,
.item--sep+.input-select,
.formset__input .item--sep+[type="text"],
.formset__input .item--sep+[type="email"],
.formset__input .item--sep+[type="tel"],
.formset__input .item--sep+[type="password"],
.formset__input .item--sep+[type="date"],
.formset__input .item--sep+[type="datetime-local"],
.formset__input .item--sep+[type="time"],
.formset__input .item--sep+[type="month"],
.formset__input .item--sep+[type="week"],
.formset__input .item--sep+[type="search"],
.formset__input .item--sep+[type="number"] {
  /* NOTE: margin-left以外を記述すると不具合が出ます */
  margin-left: var(--ui-input-gap);
}


/* ちょっとしたラベル */
.formset__input .item--label {
  display: inline-block;
  font-size: inherit;
  min-width: 64px;
}

.item--label+.formset__calc-total,
.item--label+.input-select,
.formset__input .item--label+[type="text"],
.formset__input .item--label+[type="email"],
.formset__input .item--label+[type="tel"],
.formset__input .item--label+[type="password"],
.formset__input .item--label+[type="date"],
.formset__input .item--label+[type="datetime-local"],
.formset__input .item--label+[type="time"],
.formset__input .item--label+[type="month"],
.formset__input .item--label+[type="week"],
.formset__input .item--label+[type="search"],
.formset__input .item--label+[type="number"] {
  /* NOTE: margin-left以外を記述すると不具合が出ます */
  margin-left: var(--ui-input-gap);
}

*+.item--label {
  margin-left: var(--ui-input-gap);
}

@media (min-width: 768px) {

  /* 改行後 */
  .item--flex-break:not(.sp--disp)+.item--label {
    margin-left: 0;
  }
}

@media (max-width: 767.98px) {
  .formset__input .item--label {
    min-width: 64px;
  }

  .formset__input .item--label+[type="date"] {
    width: calc(100% - 80px);
  }

  /* 改行後 */
  .item--flex-break:not(.pc--disp)+.item--label {
    margin-left: 0;
  }
}


/* 合計金額の表示領域 */
.formset__calc-total {
  display: inline-block;
  border-bottom: solid 1px;
  font-size: 20px;
  font-weight: 700;
  font-feature-settings: 'palt';
  letter-spacing: 0.05ex;
  line-height: 1;
  text-align: right;
  min-width: var(--formset-ttl-width);
  width: fit-content;
  padding: 0 0 4px;
}

.formset__calc-total.item--tight {
  display: inline-block;
  min-width: 0;
  margin: 4px 0 0;
  padding: 0 0 4px 1ex;
}

@media (max-width: 767.98px) {
  .formset__calc-total.item--tight {
    /*margin-left: auto;*/
  }
}


/* 注釈 */
.formset__notes {
  color: var(--font-c-gray-medium);
  font-size: 14px;
  font-weight: 400;
  font-feature-settings: 'palt';
  letter-spacing: 0.05ex;
  width: auto;
}

p.formset__notes {
  display: flex;
  justify-content: flex-start;
  align-items: baseline;
  width: 100%;
  gap: 0.75ex;
}

.formset__ttl .formset__notes {
  display: block;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-feature-settings: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  width: 100%;
  cursor: inherit;
}

.formset__calc-total+.formset__notes,
.input-select+.formset__notes,
.formset__input [type="text"]+.formset__notes,
.formset__input [type="email"]+.formset__notes,
.formset__input [type="tel"]+.formset__notes,
.formset__input [type="password"]+.formset__notes,
.formset__input [type="date"]+.formset__notes,
.formset__input [type="datetime-local"]+.formset__notes,
.formset__input [type="time"]+.formset__notes,
.formset__input [type="month"]+.formset__notes,
.formset__input [type="week"]+.formset__notes,
.formset__input [type="search"]+.formset__notes,
.formset__input [type="number"]+.formset__notes {
  /* NOTE: margin-left以外を記述すると不具合が出ます */
  margin-left: var(--ui-input-gap);
}

.formset__calc-total+p.formset__notes,
.input-select+p.formset__notes,
.formset__input [type]+p.formset__notes {
  /* NOTE: margin-left以外を記述すると不具合が出ます */
  margin-left: 0;
}

@media (max-width: 767.98px) {
  .formset__notes {
    font-size: 12px;
  }

  .formset__ttl .formset__notes {
    width: auto;
  }
}


/* サンクスメッセージ */
.formset__thanks-msg {
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: 700;
  text-align: center;
  width: 100%;
}
*+.formset__thanks-msg {
  margin-top: var(--formset-items-row-gap);
}
.formset__thanks-msg *+p {
  margin-top: 0.5em;
}

/* 規約 */
.formset__terms {
  border-radius: var(--btn-radius);
  border: 1px solid var(--bg-c-underlayer);
  background: var(--bg-c-underlayer);
  font-size: 13px;
  font-feature-settings: 'palt';
  line-height: 2;
  max-width: 768px;
  width: 100%;
  height: 200px;
  margin: 4px 0 0;
  padding: 1em;
  overflow-x: hidden;
  overflow-y: auto;
}

.formset__terms.formset__terms--no-scroll {
  height: auto;
  overflow: visible;
}

*+.formset__terms {
  margin-top: 8px;
}

.formset__terms__ttl {
  text-align: center;
  margin: 0 0 8px;
}

.formset__terms__ttl i {
  margin-right: 0.75ex;
}

@media (max-width: 767.98px) {
  .formset__terms {
    font-size: 10px;
  }
}

.formset__terms>p {
  line-height: inherit;
}

.formset__terms>*+p {
  margin-top: 0.5em;
}


/* トグルボタン */
.formset__toggle {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 4px 0 0;
}

.formset__toggle-label {
  font-size: 14px;
  font-weight: inherit;
  margin: 0;
  padding: 0 1em 0 0;
}

.formset__toggle-button.btn,
.formset__toggle-button {
  max-width: none;
  width: 64px;
  margin: 0;
}

@media (max-width: 767.98px) {
  .formset__toggle-label {
    font-size: 12px;
  }
}


/* formset tag */
.formset__tag {
  display: inline-flex;
  justify-content: flex-start;
  align-items: center;
  border-radius: 2em;
  background: var(--font-c-blue-light);
  color: var(--font-c-blue);
  padding: 4px 0.75em;
  gap: 8px;
  cursor: default;
}
.formset__tag:has(button):hover {
  background: var(--sub-c-light);
  color: var(--font-c);
}
.formset__tag button {
  color: inherit;
  font-size: 10px;
  cursor: pointer;
}
.formset__tag button:hover {
  opacity: 0.5;
}

/* formset item フォーム step */
/* NOTE: pbaseより移植 */
.formset__step {
  --stepflow-height: 44px;
  border: none;
  font-size: 14px;
  font-weight: 500;
  margin: 0 0 12px;
  padding: 0;
}
@media (max-width: 767.98px) {
  .formset__step {
    --stepflow-height: 56px;
    font-size: 12px;
  }
}

.formset__step-list,
.formset__step .formset__step-list {
  display: flex;
  justify-content: center;
  align-items: stretch;
  width: 100%;
  /*height: var(--stepflow-height);*/
  gap: 8px;
}
.formset__step li {
  display: flex;
  justify-content: center;
  align-items: center;
  border-bottom: solid 3px var(--font-c-gray);
  color: var(--font-c-gray);
  font-feature-settings: 'palt';
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  padding: 0 0 8px;
  flex: 1 1;
  position: relative;
}
.formset__step .is--active {
  border-bottom-color: var(--main-c);
  color: var(--font-c);
}

/* input to page from modal */
.formset-modal-input {
  width: 100%;
}
.formset-modal-input__ttl {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 8px;
}
.formset-modal-input__ttl:hover {
  background-color: var(--font-c-gray-light);
}
.formset-modal-input__ttl>i{
  color: var(--font-c-gray-medium);
}
.formset-modal-input__ttl>*+i{
  margin-left: auto;
}
.formset-modal-input__selected:has(*) {
  border-top: 1px solid #ddd;
  margin-top: 8px;
  padding-top: 8px;
}


/**
 * tableset
 * NOTE: テーブルスタイル
**/
.tableset {
  display: block;
  background: #fff;
  width: 100%;
  margin: 0 0 16px;
  padding: 16px 0;
}
.tableset thead,
.tableset tbody,
.tableset tfoot {
  display: block;
  margin: 0;
}
@media (min-width: 768px) {
  .tableset {
    display: block;
    border-radius: var(--ui-radius);
    border: 1px solid var(--ui-input-c-border);
    margin: 0 0 30px;
    padding: 30px 30px;
  }
}

.tableset__list {
  display: table;
  border-collapse: collapse;
  border-spacing: 0;
  table-layout: auto;
  width: 100%;
  text-align: left;
}
.tableset__ttl {
  display: table-cell;
  font-weight: 700;
  font-size: 15px;
  vertical-align: middle;
  width: 320px;
  padding: 20px 40px;
}
.tableset__txt {
  display: table-cell;
  font-weight: 400;
  font-size: 15px;
  padding: 20px;
}
@media (max-width: 959.98px) {
  .tableset__ttl {
    width: 210px;
  }
}
@media (max-width: 767.98px) {
  .tableset__ttl {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
    padding: 8px 16px;
  }
  .tableset__ttl>label+* {
    margin-left: auto;
  }
  .tableset__txt {
    display: block;
    width: 100%;
    padding: 8px 16px;
  }
}

.tableset__must {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 10px;
  background: #ec5937;
  border-radius: var(--btn-radius);
  float: right;
  height: 20px;
  padding: 0 8px;
}
@media (max-width: 767.98px) {
  .tableset__ttl>label+* {
    margin-left: auto;
  }
}

.tableset__notes {
  display: block;
}
.tableset__ttl .tableset__notes {
  display: block;
}
.tableset__txt .tableset__notes {
  display: block;
}


.tableset__txt img {
  border-radius: var(--btn-radius);
  width: 180px;
  height: auto;
  aspect-ratio: 1 / 1;
  margin-bottom: 10px;
  object-fit: cover;
}

@media (max-width: 767.98px) {
  .tableset__txt img {
    width: 120px;
    height: auto;
  }
}

.tableset__txt ul li {
  display: inline-flex;
  margin: 0 10px 10px 0
}

.tableset__txt [type="text"],
.tableset__txt [type="email"],
.tableset__txt [type="tel"],
.tableset__txt [type="password"],
.tableset__txt [type="datetime-local"],
.tableset__txt [type="date"],
.tableset__txt [type="time"],
.tableset__txt [type="month"],
.tableset__txt [type="week"],
.tableset__txt [type="search"],
.tableset__txt [type="number"],
.tableset__txt textarea {
  border-radius: var(--btn-radius);
  border: 1px solid var(--ui-input-c-border);
  background: #fff;
  font-size: var(--ui-input-fs);
  /* フォーム入力時のの自動拡大を防ぐため必ず --ui-input-fs変数を使用してfont-sizeを指定し、16px以下にしないように注意してください。 */
  max-width: 768px;
  width: 100%;
  height: var(--ui-input-height);
  padding: 0 1em;
}

.tableset__txt [type="datetime-local"],
.tableset__txt [type="date"],
.tableset__txt [type="time"],
.tableset__txt [type="month"],
.tableset__txt [type="week"],
.tableset__txt [type="number"] {
  max-width: 210px;
  width: auto;
}

.tableset__txt textarea {
  line-height: 1.55;
  max-width: none;
  height: auto;
  padding: 15px;
}

@media (max-width: 767.98px) {

  .tableset__txt [type="text"],
  .tableset__txt [type="email"],
  .tableset__txt [type="tel"],
  .tableset__txt [type="password"],
  .tableset__txt [type="datetime-local"],
  .tableset__txt [type="date"],
  .tableset__txt [type="time"],
  .tableset__txt [type="month"],
  .tableset__txt [type="week"],
  .tableset__txt [type="search"],
  .tableset__txt [type="number"] {
    font-size: var(--ui-input-fs);
    /* フォーム入力時のの自動拡大を防ぐため必ず --ui-input-fs変数を使用してfont-sizeを指定し、16px以下にしないように注意してください。 */
    padding-inline: 1em;
  }
}

.tableset__btn {
  margin-left: auto;
  margin-right: auto;
}


/* error for jquery.validate.js */
/* NOTE: CDN https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.5/jquery.validate.js */

/* NOTE: 通常（初回サブミット後のみの実行は利用しない場合） */
/*.form_support_wrap > div > div > .jquery-validate--error,
.formset__input .jquery-validate--error,
.formset__input-select .jquery-validate--error,
.formset__input .jquery-validate--error,
.tableset__txt .jquery-validate--error,
.jquery-validate--error {
  border: 1px solid #c00 !important;
  background: #eed1d1 !important;
}
.form_support_wrap > div > div > .jquery-validate--error:focus,
.formset__input .jquery-validate--error:focus,
.formset__input-select .jquery-validate--error:focus,
.formset__input .jquery-validate--error:focus,
.tableset__txt .jquery-validate--error:focus,
.jquery-validate--error:focus {
  outline-color: #c00 !important;
}
.form_support_wrap > div > div .select:has(.jquery-validate--error),
.formset__input .select:has(.jquery-validate--error),
.formset__input-select .select:has(.jquery-validate--error),
.formset__input .select:has(.jquery-validate--error),
.tableset__txt .select:has(.jquery-validate--error),
.select:has(.jquery-validate--error) {
  border: 1px solid #c00 !important;
  background: #eed1d1 !important;
}
.form_support_wrap > div > div .select .jquery-validate--error:not(span),
.formset__input .select .jquery-validate--error:not(span),
.formset__input-select .select .jquery-validate--error:not(span),
.formset__input .select .jquery-validate--error:not(span),
.tableset__txt .select .jquery-validate--error:not(span),
.select .jquery-validate--error:not(span) {
  border: none !important;
  background: transparent !important;
}
.form_support_wrap > div > div .select .jquery-validate--error:not(span):focus,
.formset__input .select .jquery-validate--error:not(span):focus,
.formset__input-select .select .jquery-validate--error:not(span):focus,
.formset__input .select .jquery-validate--error:not(span):focus,
.tableset__txt .select .jquery-validate--error:not(span):focus,
.jquery-validate--error:not(span):focus {
  outline-color: transparent !important;
}
*/


/* NOTE: 初回サブミット後のみ実行する場合 */
/* .select 以外 */
.p-after-first-validate .form_support_wrap>div>div .jquery-validate--error:not(span),
/* PBASEのフォーム向け */
.p-after-first-validate .formset__input .jquery-validate--error:not(span),
.p-after-first-validate .formset__input-select .jquery-validate--error:not(span),
.p-after-first-validate .formset__input .jquery-validate--error:not(span),
.p-after-first-validate .tableset__txt .jquery-validate--error:not(span),
.p-after-first-validate .jquery-validate--error:not(span) {
  border: 1px solid #c00 !important;
  background: #eed1d1 !important;
}

.p-after-first-validate .form_support_wrap>div>div .jquery-validate--error:not(span):focus,
/* PBASEのフォーム向け */
.p-after-first-validate .formset__input .jquery-validate--error:not(span):focus,
.p-after-first-validate .formset__input-select .jquery-validate--error:not(span):focus,
.p-after-first-validate .formset__input .jquery-validate--error:not(span):focus,
.p-after-first-validate .tableset__txt .jquery-validate--error:not(span):focus,
.p-after-first-validate .jquery-validate--error:not(span):focus {
  outline-color: #c00 !important;
}

/* .select の場合 */
.p-after-first-validate .form_support_wrap>div>div .select:has(.jquery-validate--error),
/* PBASEのフォーム向け */
.p-after-first-validate .formset__input .select:has(.jquery-validate--error),
.p-after-first-validate .formset__input-select .select:has(.jquery-validate--error),
.p-after-first-validate .formset__input .select:has(.jquery-validate--error),
.p-after-first-validate .tableset__txt .select:has(.jquery-validate--error),
.p-after-first-validate .select:has(.jquery-validate--error) {
  border: 1px solid #c00 !important;
  background: #eed1d1 !important;
}

.p-after-first-validate .form_support_wrap>div>div .select .jquery-validate--error:not(span),
/* PBASEのフォーム向け */
.p-after-first-validate .formset__input .select .jquery-validate--error:not(span),
.p-after-first-validate .formset__input-select .select .jquery-validate--error:not(span),
.p-after-first-validate .formset__input .select .jquery-validate--error:not(span),
.p-after-first-validate .tableset__txt .select .jquery-validate--error:not(span),
.p-after-first-validate .select .jquery-validate--error:not(span) {
  border: none !important;
  background: transparent !important;
}

.p-after-first-validate .form_support_wrap>div>div .select .jquery-validate--error:not(span):focus,
/* PBASEのフォーム向け */
.p-after-first-validate .formset__input .select .jquery-validate--error:not(span):focus,
.p-after-first-validate .formset__input-select .select .jquery-validate--error:not(span):focus,
.p-after-first-validate .formset__input .select .jquery-validate--error:not(span):focus,
.p-after-first-validate .tableset__txt .select .jquery-validate--error:not(span):focus,
.p-after-first-validate .jquery-validate--error:not(span):focus {
  outline-color: transparent !important;
}

.form_support_wrap>div>div>span.jquery-validate--error,
/* PBASEのフォーム向け */
.tableset__txt span.jquery-validate--error,
.formset__input span.jquery-validate--error,
span.jquery-validate--error {
  display: block;
  border: none !important;
  background: transparent !important;
  color: #c00 !important;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-align: left;
  padding: 6px 0;
}

/* errorのラッパー */
.item--error-wrapper {
  display: inline-block;
  align-self: stretch;
  font-size: 13px;
  text-align: left;
  position: relative;
}

.item--error-wrapper~*:not(.item--error-wrapper) {
  margin-top: 17px;
}

.item--error-wrapper .jquery-validate--error {
  white-space: nowrap;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
  transform: translate(0, 0);
  /* NOTE: 横方向、縦方向の微調整はtranslateで */
}

.form_support_wrap>div>div>.item--error-wrapper span.jquery-validate--error,
/* PBASEのフォーム向け */
.tableset__txt .item--error-wrapper span.jquery-validate--error,
.formset__input .item--error-wrapper span.jquery-validate--error,
.item--error-wrapper span.jquery-validate--error {
  line-height: 1.25;
  text-align: inherit;
  padding: 0;
}

ul>.item--error-wrapper {
  display: block;
  width: 100%;
}

ul>.item--error-wrapper .jquery-validate--error {
  width: 100% !important;
}

ul>.item--error-wrapper~* {
  color: #c00 !important;
}

@media (max-width: 767.98px) {
  .item--error-wrapper {
    font-size: 10px;
    text-align: right;
  }

  .item--error-wrapper~*:not(.item--error-wrapper) {
    margin-top: 14px;
  }
}


/**
 * エフェクト
**/
.effect-fade {
  opacity: 0;
  transform: translate(0, 45px);
  transition: all 1000ms
}
.effect-fade-2 {
  transform: translate(0, 90px)
}
.effect-fade-3 {
  transform: translate(0, 135px)
}
.effect-fade-4 {
  transform: translate(0, 180px)
}
.effect-fade-5 {
  transform: translate(0, 225px)
}
.effect-fade-6 {
  transform: translate(0, 270px)
}
.fade-t {
  transform: translate(0, -45px)
}
.fade-r {
  transform: translate(45px, 0)
}
.fade-l {
  transform: translate(-45px, 0)
}
.effect-fade.effect-scroll {
  opacity: 1;
  transform: translate(0, 0)
}

/* 忍者ツールズ
--------------------------------- */
@media (max-width: 768.98px) {
  .ninja_onebutton_output_overlay, .ninja_onebutton_output_overlay.show {
    display: table !important;
    /* NOTE: .showがbootstrapとコンフリクトしているため、!importantが必要です。 */
    width: 100%;
    top: auto;
    right: auto;
    bottom: 0;
    left: 0;
  }
}
/* NOTE: twitterをXに変更 */
.ninja_onebutton_output_overlay .twitter, .ninja_onebutton_output_responsive .twitter,
.wrap .ninja_onebutton_output_overlay .twitter,
.wrap .ninja_onebutton_output_responsive .twitter,
.ninja_onebutton_output_overlay .twitter,
.ninja_onebutton_output_responsive .twitter {

  /* ninja default style */
  /*background-color: #55acee;*/
  /*color: #ffffff;*/

  background-color: #444 !important;
  color: rgba(0, 0, 0, 0) !important;
}
.wrap .ninja_onebutton_output_overlay [class*='onebtn_overlay'].twitter::before,
.wrap .ninja_onebutton_output_responsive [class*='onebtn_responsive_'].twitter::before,
.ninja_onebutton_output_overlay [class*='onebtn_overlay'].twitter::before,
.ninja_onebutton_output_responsive [class*='onebtn_responsive_'].twitter::before {

  /* NOTE: 元のアイコンを非表示 */

  /* ninja default style */
  /*content: "\e606";*/
  /*font-family: 'omatome_icomoon', sans-serif;*/
  /*vertical-align: middle;*/

  display: inline-block;
  /* X logo mark svg */
  /* 
   * NOTE:
   * URLデコードなので直接文言変更でSVGを編集出来ます。
   * 「fill%3D%22white」というキーワードを探して色を変更してください。
   * 「white」の部分に色をCSSの記法で指定できます。
   * 例えば#333などは、%23333です。「%23」が「#」
  */
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20viewBox%3D%220%200%201200%201227%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M714.163%20519.284L1160.89%200H1055.03L667.137%20450.887L357.328%200H0L468.492%20681.821L0%201226.37H105.866L515.491%20750.218L842.672%201226.37H1200L714.137%20519.284H714.163ZM569.165%20687.828L521.697%20619.934L144.011%2079.6944H306.615L611.412%20515.685L658.88%20583.579L1055.08%201150.3H892.476L569.165%20687.854V687.828Z%22%20fill%3D%22white%22%2F%3E%3C%2Fsvg%3E');
  background-position: center center;
  background-repeat: no-repeat;
  background-color: transparent;
  background-size: contain;
  color: rgba(0, 0, 0, 0);
  transform: scale(0.9);
}
