@charset "UTF-8";

/**
 * base
 * NOTE:
 *
 * input要素のスタイルの上書きが難しくになることを避ける目的で
 * input要素をbase.cssにおいて、input[type="submit"]などと書かないでください。
 * [type="submit"] や [type="checkbox"]など属性セレクタのみにしてください。
 * ※この記述ならば優先度が低いためクラス名1つで上書きが可能です。
 *
**/
/**
 * 変数
 * NOTE:
**/
:root {

  --site-c-main: #FF8080;
  --site-c-main-light: #f4c3d2;
  --site-c-black: #565656;
  --site-c-gray: #868686;
  --site-c-silvergray: #ccc;
  --site-c-lightgray: #dbdbdb;
  --site-c-disabledgray: #e9e9e9;
  /* .result__item、.card__itemなどカード風スタイルのdisabledカラー */
  --site-c-underlayer: #fafafa;
  --site-c-blue: #00C8D9;
  --site-c-green: #00AE2E;
  --site-radius: 30px;
  --site-radius-small: 16px;
  --site-radius-btn: 6px;
  --site-btn-height: 48px;
  --site-btn-small-height: 36px;
  --site-input-height: 48px;
  --site-input-fs: 16px;
  /* フォーム入力時のの自動拡大を防ぐため必ず --site-input-fs変数を使用してfont-sizeを指定し、16px以下にしないように注意してください。 */
  --site-section-padding-block: 40px;
  --site-container-width: 1524px;
  --site-container-padding-inline: 80px;
  --site-subpage-bg-height: 260px;
  --site-subpage-bg-offset: 160px;
}

@media only screen and (max-width: 1440px) {
  :root {
    --site-radius: 30px;
    --site-radius-btn: 6px;
    --site-btn-height: 48px;
    --site-input-height: 48px;
    --site-section-padding-block: 40px;
    --site-container-padding-inline: 40px;
    --site-subpage-bg-height: 260px;
    --site-subpage-bg-offset: 160px;
  }
}

@media only screen and (max-width: 959px) {
  :root {
    --site-radius: 16px;
    --site-radius-small: 12px;
    --site-radius-btn: 6px;
    --site-btn-height: 48px;
    --site-input-height: 48px;
    --site-section-padding-block: 40px;
    --site-container-padding-inline: 20px;
    --site-subpage-bg-height: 176px;
    --site-subpage-bg-offset: 104px;
  }
}

@media screen and (max-width: 767px) {
  :root {
    --site-radius: 16px;
    --site-radius-small: 12px;
    --site-radius-btn: 6px;
    --site-btn-height: 48px;
    --site-btn-small-height: 32px;
    --site-input-height: 48px;
    --site-section-padding-block: 32px;
    --site-container-padding-inline: 16px;
    --site-subpage-bg-height: 160px;
    --site-subpage-bg-offset: 96px;
  }
}

@media screen and (max-width: 560px) {
  :root {
    --site-radius: 16px;
    --site-radius-small: 12px;
    --site-radius-btn: 6px;
    --site-btn-height: 48px;
    --site-btn-small-height: 32px;
    --site-input-height: 40px;
    --site-section-padding-block: 32px;
    --site-container-padding-inline: 16px;
    --site-subpage-bg-height: 160px;
    --site-subpage-bg-offset: 88px;
  }
}


/**
 * 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;
  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
}

.select {
  display: inline-block;
  position: relative;
}
.select select {
  box-shadow: 0 2px 4px rgba(0, 0, 0, .1);
  border-radius: var(--site-radius-btn);
  border: 1px solid var(--site-c-lightgray);
  background: #fff;
  color: var(--site-c-black);
  font-size: var(--site-input-fs);
  /* フォーム入力時のの自動拡大を防ぐため必ず --site-input-fs変数を使用してfont-sizeを指定し、16px以下にしないように注意してください。 */
  line-height: calc( var(--site-input-height) - 2px );
  height: var(--site-input-height);
  padding: 0 2em 0 1em;
}
.select select::-ms-expand {
  display: none
}
.select::after {
  content: '\f107';
  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;
  position: absolute;
  right: 1ex;
  top: 50%;
  z-index: 1;
  transform: translate(0, -41.666%) scale(0.8333);
  transform-origin: right center;
  transition: all 0.2s ease;
  pointer-events: none;
}

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


.input-time {
  /* NOTE: 不具合が出るためプロパティ追加の際、以下のプロパティたち以外は !importantの記述禁止 */
  /* NOTE: アイコンの色変更は fill%3D%22%23313131 の313131を変更 */
  background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23313131%22%20d%3D%22M464%20256A208%20208%200%201%201%2048%20256a208%20208%200%201%201%20416%200zM0%20256a256%20256%200%201%200%20512%200A256%20256%200%201%200%200%20256zM232%20120l0%20136c0%208%204%2015.5%2010.7%2020l96%2064c11%207.4%2025.9%204.4%2033.3-6.7s4.4-25.9-6.7-33.3L280%20243.2%20280%20120c0-13.3-10.7-24-24-24s-24%2010.7-24%2024z%22%2F%3E%3C%2Fsvg%3E') !important;
  background-repeat: no-repeat !important;
  background-position: right 1ex top 50% !important;
  background-size: 1em auto !important;
  padding-right: calc( 1.5em + 1ex ) !important;
}


/* HTML5 display-role reset for older browsers */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
  transition: all 0.4s ease;
}

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 {
  font-family: "Noto Sans JP", "Yu Gothic", "游ゴシック", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  -moz-osx-font-smoothing: grayscale;
  font-size: 15px;
  -webkit-text-size-adjust: 100%;
  line-height: 1.5;
  font-weight: 400;
  color: var(--site-c-black);
}

body::before {
  content: '';
  display: block;
  background-image: url('/common/images/bg-ellipse-w.svg'), url('/common/images/bg-default.jpg');
  background-repeat: no-repeat;
  background-position: left 50% top var(--site-subpage-bg-offset), center top;
  /* NOTE: 調整は変数の値を変更してください。 */
  background-size: calc(var(--site-subpage-bg-offset)*3*5) calc(var(--site-subpage-bg-offset)*3), cover;
  width: 100%;
  height: var(--site-subpage-bg-height);
  /* NOTE: 調整は変数の値を変更してください。 */
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}

body>.wrap {
  overflow: hidden;
  position: relative;
  z-index: 10;
}

table {
  letter-spacing: 0;
  empty-cells: show
}

tbody {
  position: unset
}

table tr,
table th,
table td {
  empty-cells: show;
  transition: all 0.4s ease;
  position: unset;
}

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

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

[type="checkbox"],
[type="radio"] {
  accent-color: #ff0000;
  filter: contrast(150%);
  opacity: 0.66;
  width: 18px;
  height: 18px;
  margin: 3px 6px 0 0;
}

[type="checkbox"]:checked,
[type="radio"]:checked {
  opacity: 0.45;
}

p {
  line-height: 1.65
}

a {
  color: #333;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
}

a:hover {
  color: var(--site-c-main);
  cursor: pointer;
  opacity: 0.9
}

a.active {
  color: var(--site-c-main) !important
}

strong {
  font-weight: 700;
}

img {
  border: none;
  width: 100%;
  height: auto;
  margin: 0;
  padding: 0;
  vertical-align: bottom;
  transition: all 0.4s ease;
}

*,
::before,
::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}


/**
 * font color
**/
.fc__color {
  color: var(--site-c-main);
}

.fc__red {
  color: #ec5937;
}

.fc__pink {
  color: var(--site-c-main);
}

.fc__blue {
  color: #aee5d8;
}


/**
 * font color
**/
.fw__900 {
  font-weight: 900;
}

.fw__bold,
.fw__700 {
  font-weight: 700;
}

.fw__600 {
  font-weight: 600;
}

.fw__500 {
  font-weight: 500;
}

.fw__400 {
  font-weight: 400;
}

/**
 * filter
**/
.c-filter-color {
  filter: invert(88%) sepia(43%) saturate(379%) hue-rotate(288deg) brightness(95%) contrast(94%);
}

/**
 * background color
**/
.bg__color {
  background: #ebf5ff;
}

.bg__gray {
  background: var(--site-c-underlayer);
}


/**
 * display
 * NOTE: none以外の記述は禁止です
**/
@media only screen and (min-width: 768px) {
  .sp--disp {
    display: none;
  }
}

@media only screen and (max-width: 767px) {
  .pc--disp {
    display: none;
  }
}

@media only screen and (min-width: 400px) {
  .sp-xs--disp {
    display: none;
  }
}


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


/**
 * section
**/
section {
  padding: var(--site-section-padding-block) 0;
}

.sub section {}


/**
 * container
**/
.l-container {
  width: 100%;
  max-width: var(--site-container-width);
  margin: 0 auto;
  padding: 0 var(--site-container-padding-inline);
  position: relative;
}


/**
 * display flex
**/
.c-flex {
  display: flex;
}

.c-flex--wrap {
  flex-wrap: wrap;
}

.c-flex--between {
  justify-content: space-between;
}


/**
 * icon
 * NOTE: アイコンは主に詳細ページで主に使用します
**/
.c-icon {
  display: inline-block;
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  width: 1.25em;
  height: 1.25em;
  margin: 0 0 0.5em;
  padding: 0;
  vertical-align: bottom;
}
/* NOTE: アイコンにPNGやSVG使う場合 */
.c-icon--bosyu {background-image: url("/common/images/icon-bosyu.png");}
.c-icon--search {background-image: url("/common/images/icon-magnify.svg");}
.c-icon--money {background-image: url("/common/images/icon-money-c-bold.svg");}
.c-icon--money-b {background-image: url("/common/images/icon-money.svg");}
.c-icon--clinic {background-image: url("/common/images/icon-hospital-buil.svg");}
.c-icon--syoukai {background-image: url("/common/images/icon-syoukai.png");}
.c-icon--train {background-image: url("/common/images/icon-train.png");}
.c-icon--map {background-image: url("/common/images/icon-map.svg");}
.c-icon--user {background-image: url("/common/images/icon-user-man.svg");}

/* NOTE: アイコンの形をスタイルで装飾する場合 */
.c-icon--circle {
  border-radius: 50%;
  border: solid 2.5px var(--site-c-main);
}

/* NOTE: アイコンにフォントアイコンを使う場合（Ioniconまたはfont-awesome） */
.c-icon[class*="ion-"],
.c-icon[class*="fa-"] {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background: transparent;
  color: var(--site-c-main);
}
.c-icon[class*="ion-"]::before,
.c-icon[class*="fa-"]::before {
  transform: translate(0,-3.333%) scale(1.25);
  transform-origin: center top;
}

/* NOTE: アイコンに独自の文字を挿入したい場合（フォントアイコンとの併用不可） */
.c-icon[data-icon-text] {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: var(--site-c-main);
  color: #fff;
  vertical-align: bottom;
  transform: translate(0,12.5%) scale(1);
  transform-origin: left center;
}
.c-icon[data-icon-text]::before {
  content: attr(data-icon-text);
  display: block;
  font-family: "Dangrek", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 0.8125em;
  letter-spacing: -0.05ex;
  transform: translate(0,1.666%);
}



/**
 * LIST
**/

/* ※リスト */
.c-list-notes {
  line-height: inherit;
}
*+.c-list-notes {
  margin-top: 8px;
}
.c-list-notes>li {
  line-height: inherit;
  position: relative;
  padding: 0 0 0 1.5em;
}
.c-list-notes>li+li {
  margin-top: 0.5em;
}
.c-list-notes>li::before {
  content: '※';
  display: flex;
  justify-content: flex-start;
  align-items: center;
  line-height: inherit;
  height: 1lh;
  position: absolute;
  left: 0;
  top: 0;
  z-index: 1;
}


/**
 * TITLE
**/
.c-head {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  margin: 0 0 40px;
  position: relative;
}
.c-head--second {
  margin-top: 80px;
}
.c-head--center {
  align-items: center;
}
.c-head__top {
  margin-top: 0 !important;
}
@media only screen and (max-width: 959px) {
  .c-head {
    margin-bottom: 32px;
  }
  .c-head--second {
    margin-top: 48px;
  }
}
.c-head__logo {
  box-shadow: none;
  background: transparent;
  width: 72px;
  margin-bottom: 32px;
  padding: 0;
  filter: grayscale(1) brightness(1.45);
}
.c-head__ttl {
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.1666ex;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .c-head__ttl {
    font-size: 20px;
  }
}
.c-head__ttl-link {
  display: inline-block;
  letter-spacing: -0.01ex;
  transform: scale(0.6);
}
.c-head__txt {
  font-size: 16px;
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.2ex;
  margin-top: 1em;
}

.c-head__box-btn.box-btn,
.c-head__box-btn {
  font-size: inherit;
  max-width: 768px;
  margin-inline: auto;
}
@media only screen and (max-width: 767px) {
  .c-head__box-btn.box-btn,
  .c-head__box-btn {
    font-size: 14px;
  }
}


/**
 * c-subhead
 * NOTE: フォントは20px以上にしないでください。
**/
.c-subhead {
  font-size: 18px;
  font-weight: 700;
  font-feature-settings: 'palt';
  letter-spacing: 0.1ex;
  line-height: 1.4;
  text-align: left;
  margin: 0 0 0.75em;
}
@media only screen and (max-width: 767px) {
  .c-subhead {
    font-size: 18px;
  }
}


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

.subpage-head .c-head {
  display: flex;
  flex-flow: column nowrap;
  align-items: center;
  margin: 0;
}

.subpage-head .c-head__ttl {
  font-size: 32px;
  font-weight: 600;
  text-align: center;
}

@media only screen and (max-width: 767px) {
  .subpage-head .c-head__ttl {
    font-size: 24px;
  }
}

.subpage-head .c-head__txt {
  color: var(--site-c-gray);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.75;
  text-align: center;
  margin: 0.666em 0 0;
}

@media only screen and (max-width: 767px) {
  .subpage-head .c-head__txt {
    font-size: 14px;
  }
}


/* 上部余白の調整（パンくず有無） */
/* パンくずのないページ */
.subpage-head {
  margin-top: calc(var(--site-subpage-bg-offset) + 40px);
}

@media screen and (max-width: 959px) {
  .subpage-head {
    margin-top: calc(var(--site-subpage-bg-offset) + 32px);
  }
}

@media screen and (max-width: 767px) {
  .subpage-head {
    margin-top: calc(var(--site-subpage-bg-offset) + 20px);
  }
}

@media screen and (max-width: 560px) {
  .subpage-head {
    margin-top: calc(var(--site-subpage-bg-offset) + 24px);
  }
}

/* パンくずのあるページ */
body:has(.breadcrumb) .subpage-head {
  margin-top: 0;
}


/**
 * button
**/
.btn {
  width: 100%;
  margin-top: 40px;
  max-width: 256px;
  font-weight: 700;
  position: relative;
}
@media only screen and (max-width: 959px) {
  .btn {
    margin-top: 32px;
  }
}
@media only screen and (max-width: 767px) {
  .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);
  border-radius: var(--site-radius-btn);
  border: solid 1px var(--site-c-main);
  background: #fff;
  color: var(--site-c-main);
  text-align: center;
  width: 100%;
  height: var(--site-btn-height);
  padding-inline: 1.5em 2.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>a:hover,
.btn>[type="submit"]:hover,
.btn>[type="button"]:hover,
.btn>button:hover,
.btn>span:hover {
  border: solid 1px var(--site-c-main);
  background: #fff;
  color: var(--site-c-main);
  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;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: var(--site-c-main);
  color: #fff;
  font-family: "Font Awesome 6 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: 767px) {
  .btn>a,
  .btn>[type="submit"],
  .btn>[type="button"],
  .btn>button,
  .btn>span {
    padding-inline: 0.75em 2em;
  }
  .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: 300px;
}
.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(--site-c-main);
  background: #fff;
  color: var(--site-c-main);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  width: 100%;
  height: var(--site-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:767px) {
  .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(--site-radius-btn);
  border: solid 1px var(--site-c-main);
  background: #fff;
  color: var(--site-c-main);
  font-size: 18px;
  width: 100%;
  height: calc(var(--site-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:767px) {

  .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(--site-c-main);
  background: #fff;
  color: var(--site-c-main);
  gap: 1.5ex;
}

.btn--like>a::before,
.btn--like>button::before,
.btn--like>span::before {
  content: '';
  display: block;
  background-image: url('/common/images/img-fav-active.svg');
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  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: 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 {
  filter: grayscale(0);
  opacity: 1;
}

.btn--like.is--active>a::before,
.btn--like.is--active>button::before,
.btn--like.is--active>span::before {
  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 {
  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(--site-c-main);
  background: #fff;
  color: var(--site-c-main);
  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 6 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(--site-c-main);
  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 {
  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 {
  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 {
  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: '';
  display: block;
  background-image: url('/common/images/img-fav-active.svg');
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  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(--site-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 6 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 6 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(--site-c-main);
  background: #fff;
  color: var(--site-c-main);
}


/* 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(--site-btn-height);
  border: solid 1px var(--site-c-main);
  background: #fff;
  color: var(--site-c-main);
}
.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(--site-c-main);
  background: #fff;
  color: var(--site-c-main);
  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(--site-c-main);
  background: var(--site-c-main);
  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(--site-c-main);
  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(--site-btn-height);
  border: solid 1px var(--site-c-main);
  background: #fff;
  color: var(--site-c-main);
  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(--site-c-main);
  background: #fff;
  color: var(--site-c-main);
  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(--site-c-main);
  background: var(--site-c-main);
  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(--site-c-main);
  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(--site-c-gray);
  background: var(--site-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(--site-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(--site-c-gray);
  background: #fff;
  color: var(--site-c-gray);
}
.btn--gray>a::after, .btn--gray>[type="submit"]::after, .btn--gray>[type="button"]::after, .btn--gray>button::after, .btn--gray>span::after {
  background: var(--site-c-silvergray);
  color: #fff;
}
.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(--site-c-silvergray);
  background: var(--site-c-silvergray);
  color: #fff;
}
.btn--gray-fill>a::after, .btn--gray-fill>[type="submit"]::after, .btn--gray-fill>[type="button"]::after, .btn--gray-fill>button::after, .btn--gray-fill>span::after {
  background: #fff;
  color: var(--site-c-silvergray);
}


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

.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(--site-c-main);
  background: var(--site-c-main);
  color: #fff;
}
.btn--main-fill>a::after,
.btn--main-fill>[type="submit"]::after,
.btn--main-fill>[type="button"]::after,
.btn--main-fill>button::after,
.btn--main-fill>span::after {
  background: #fff;
  color: var(--site-c-main);
}
.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(--site-c-main);
  background: var(--site-c-main);
  color: #fff;
}
.btn--main-fill>a:hover::after,
.btn--main-fill>[type="submit"]:hover::after,
.btn--main-fill>[type="button"]:hover::after,
.btn--main-fill>button:hover::after,
.btn--main-fill>span:hover::after {
  background: #fff;
  color: var(--site-c-main);
}


/* button delete */
.btn--delete>a,
.btn--delete>[type="submit"],
.btn--delete>[type="button"],
.btn--delete>button,
.btn--delete>span {
  border: 1px solid var(--site-c-silvergray);
  background: var(--site-c-underlayer);
  color: var(--site-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: #fff;
  color: var(--site-c-gray);
}


/* 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(--site-c-main);
  font-family: "Font Awesome 6 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;
}



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


/** ボタン上・下の文言 **/
.btn-over-txt {
  display: block;
  text-align: center;
  margin-bottom: 1em;
}

.btn-over-txt a {
  color: var(--site-c-main);
}

.btn-under-txt {
  display: block;
  text-align: center;
  margin-top: 1em;
}

.btn-under-txt a {
  color: var(--site-c-main);
}

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

label.btn [type="button"] {
  pointer-events: none;
}


/** 横並びボタン **/
.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: 767px) {

  .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
**/
@media only screen and (max-width: 767px) {
  .swipe {
    width: auto;
    padding: 10px;
    display: block;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    overflow-scrolling: touch;
    overflow: auto
  }
}


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

@media screen and (max-width: 767px) {
  .formset {
    padding-bottom: 20px;
    border-bottom: 1px solid var(--site-c-lightgray);
  }
}

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

@media only screen and (max-width: 959px) {
  .formset__box {
    margin-bottom: 16px;
    padding: 12px 0 20px;
  }
}

@media screen and (max-width: 767px) {
  .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(--site-c-main);
  background: var(--site-c-main);
  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(--site-c-main);
  width: 80px;
  margin-bottom: -1px;
  position: absolute;
  bottom: 0;
}
@media screen and (max-width: 767px) {
  .formset__h2 {
    margin: 12px 0 0;
  }
}


/* formset item */
/* NOTE: タイトルと入力部品をラップするもの */
.formset__item {
  --formset-ttl-width: 200px;
  --formset-gap: 32px;
  display: flex;
  flex-flow: row nowrap;
  justify-content: flex-start;
  align-items: stretch;
  width: 100%;
  margin: 0 auto;
  gap: var(--formset-gap);
}
*+.formset__item {
  margin-top: 20px;
}
/* NOTE: 2025.06.14 ozawa モーダル内部で上部余白調整はここです */
.modal-content *+.formset__item {
  margin-top: 12px;
}

@media only screen and (max-width: 959px) {
  .formset__item {
    --formset-ttl-width: 200px;
    --formset-gap: 20px;
    gap: var(--formset-gap);
  }
  *+.formset__item {
    margin-top: 20px;
  }
}
@media screen and (max-width: 767px) {
  .formset__item {
    --formset-ttl-width: 200px;
    --formset-gap: 12px;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-content: stretch;
    align-items: stretch;
    gap: var(--formset-gap);
  }
  *+.formset__item {
    margin-top: 20px;
  }
}
@media screen and (max-width: 560px) {
  .formset__item {
    --formset-ttl-width: 200px;
    --formset-gap: 12px;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-content: stretch;
    align-items: stretch;
    gap: var(--formset-gap);
  }
  *+.formset__item {
    margin-top: 20px;
  }
  /* NOTE: 2025.06.14 ozawa モーダル内部でのタイトルの幅調整はここです */
  .modal-content .formset__item {
    --formset-ttl-width: 80px;
    --formset-gap: 12px;
    flex-flow: row nowrap;
    gap: var(--formset-gap);
  }
  /* NOTE: 2025.06.14 ozawa モーダル内部で上部余白調整はここです */
  .modal-content *+.formset__item {
    margin-top: 12px;
  }
}


/* formset ttl, formset input  */
/* タイトル */
.formset__ttl {
  display: flex;
  flex-flow: row wrap;
  justify-content: flex-start;
  align-content: center;
  align-items: center;
  color: var(--site-c-main);
  font-feature-settings: 'palt';
  letter-spacing: 0.05ex;
  min-width: var(--formset-ttl-width);
  padding: 0 0 20px;
}
/* タイトル挿入用ラベル要素 */
/* 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(--site-radius-btn);
  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 0 20px;
}
@media screen and (max-width: 767px) {
  .formset__ttl,
  .formset__input {
    width: 100%;
    padding: 0;
  }
  .formset__ttl {
    flex-flow: row nowrap;
  }
  .formset__ttl > label+* {
    margin-left: auto;
  }
}
@media screen and (max-width: 560px) {
  .modal-content .formset__ttl {
    min-width: var(--formset-ttl-width);
    width: auto;
  }
  .modal-content .formset__input {
    width: 100%;
  }
}


/* 入力部品をラップするもの（flex-wrapをwrapさせる場合） */
.formset__input:has(p.formset__notes) {
  flex-flow: row wrap;
}
@media screen and (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 screen and (max-width: 767px) {
  /* 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(--site-radius-btn);
  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(--site-c-lightgray);
}

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

.formset__input>ul {
  margin: 4px 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;
}
.formset__input .formset__ul,
.formset__ul {
  margin: 4px 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;
}



.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(--site-radius-btn);
  border: 1px solid var(--site-c-lightgray);
  background: #fff;
  font-size: var(--site-input-fs);
  /* フォーム入力時のの自動拡大を防ぐため必ず --site-input-fs変数を使用してfont-sizeを指定し、16px以下にしないように注意してください。 */
  max-width: 768px;
  width: 100%;
  height: var(--site-input-height);
  padding: 0 1em;
  margin: 4px 0;
}

.input-select {
  display: inline-block;
  width: auto;
  height: var(--site-input-height);
}
.input-select.select {
  display: inline-block;
  width: auto;
  height: var(--site-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(--site-input-height);
  height: var(--site-input-height);
  margin: 0;
  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 textarea {
  line-height: 1.55;
  max-width: none;
  height: auto;
  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 screen and (max-width: 767px) {

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

  .formset__input .input-time,
  .formset__input [type="time"] {
    max-width: calc( ( 100vw - var(--site-container-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(--site-container-padding-inline) * 4 - 6em ) / 2 );
  }
  .formset__input .formset__wage,
  .formset__wage {
    max-width: calc( ( 100vw - var(--site-container-padding-inline) * 4 - 6em ) / 2 );
  }
}


/* 決定ボタンやキャンセルボタン、戻るボタンなど */
/* 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(--site-btn-height);
}
@media screen and (max-width: 767px) {
  .login .formset+.formset__btn {
    margin-top: 20px;
  }
}

.formset__btn--back {
  margin-top: 10px;
}
.formset__btn--back button {
  color: var(--site-c-main);
  background: #fff;
  border: 1px solid var(--site-c-main);
}
.formset__btn--back button:hover {
  background: #edf9ff;
}


/* type file */
.formset__input [type="file"] {
  border-radius: var(--site-radius-btn);
  background: rgba(0, 0, 0, 0.04);
  color: var(--site-c-gray);
  min-width: 280px;
  margin: 4px 0;
  padding: 6px 10px 6px 6px;
}
.formset__input [type="file"]::file-selector-button {
  border-radius: var(--site-radius-btn);
  border: 1px solid var(--site-c-lightgray);
  background: #fff;
  color: var(--site-c-black);
  font-size: 16px;
  width: auto;
  height: var(--site-input-height);
  margin: 0 8px 0 0;
  padding: 0 0.5em;
}
.formset__file-delete {
  display: block;
  margin: 4px 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 screen and (min-width: 768px) {
  .item--flex-break.sp--disp+* {
    margin-left: 1ex;
  }
}
@media screen and (max-width: 767px) {
  .item--flex-break.pc--disp+* {
    margin-left: 1ex;
  }
}


/* 単位 */
.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: 1ex;
}

/* セパレータ（～、＋などの記号） */
.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: 1ex;
}

.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: 1ex;
}


/* ちょっとしたラベル */
.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: 1ex;
}
*+.item--label {
  margin-left: 1ex;
}
@media (min-width: 768px) {
  /* 改行後 */
  .item--flex-break:not(.sp--disp)+.item--label {
    margin-left: 0;
  }
}
@media (max-width: 767px) {
  .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: 767px) {
  .formset__calc-total.item--tight {
    /*margin-left: auto;*/
  }
}


/* 注釈 */
.formset__notes {
  color: var(--site-c-gray);
  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: 1ex;
}
.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: 767px) {
  .formset__notes {
    font-size: 12px;
  }
  .formset__ttl .formset__notes {
    width: auto;
  }
}


/* 規約 */
.formset__terms {
  border-radius: var(--site-radius-btn);
  border: 1px solid var(--site-c-underlayer);
  background: var(--site-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;f
}
@media (max-width: 767px) {
  .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: 767px) {
  .formset__toggle-label {
    font-size: 12px;
  }
}


/**
 * tableset
 * NOTE: テーブルスタイル
**/
.tableset {
  border-collapse: separate;
  width: 100%;
  background: #fff;
}

@media screen and (min-width: 768px) {
  .tableset {
    border-radius: var(--site-radius);
    border: 1px solid var(--site-c-lightgray);
    margin-bottom: 30px;
    padding: 10px 40px;
  }
}

.tableset__list {
  width: 100%;
  display: table;
  text-align: left;
}

.tableset__list:first-child {
  margin-top: 40px
}

.tableset__list:last-child {
  margin-bottom: 40px
}

.tableset__ttl {
  width: 320px;
  display: table-cell;
  vertical-align: middle;
  padding: 20px 40px;
  font-weight: 700;
}

.tableset__must {
  height: 20px;
  padding: 0 8px;
  color: #fff;
  font-size: 10px;
  background: #ec5937;
  border-radius: var(--site-radius-btn);
  float: right;
  display: flex;
  align-items: center;
  justify-content: center
}
.tableset__notes {
  display: block;
}
.tableset__ttl .tableset__notes {
  display: block;
}
.tableset__txt .tableset__notes {
  display: block;
}

.tableset__txt {
  display: table-cell;
  padding: 20px
}

@media only screen and (max-width: 959px) {
  .tableset__ttl {
    width: 210px;
  }
}
@media screen and (max-width: 767px) {
  .tableset__ttl {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
    padding: 10px 15px;
  }
  .tableset__ttl > label + * {
    margin-left: auto;
  }

  .tableset__txt {
    display: block;
    width: 100%;
    padding: 10px 15px;
  }
  .tableset__list:first-child {
    margin-top: 0;
  }
}

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

@media screen and (max-width: 767px) {
  .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(--site-radius-btn);
  border: 1px solid var(--site-c-lightgray);
  background: #fff;
  font-size: var(--site-input-fs);
  /* フォーム入力時のの自動拡大を防ぐため必ず --site-input-fs変数を使用してfont-sizeを指定し、16px以下にしないように注意してください。 */
  max-width: 768px;
  width: 100%;
  height: var(--site-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 screen and (max-width: 767px) {

  .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(--site-input-fs);
    /* フォーム入力時のの自動拡大を防ぐため必ず --site-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 screen and (max-width: 767px) {
  .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)
}



/**
 * js alert
**/
[data-alert] {
  display: flex;
  flex-flow: row nowrap;
  justify-content: center;
  align-items: center;
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.12);
  border-radius: var(--site-radius);
  border: none;
  background: #fff;
  max-width: 300px;
  width: 100%;
  margin: 0;
  padding: 20px;
  gap: 1ex;
  position: fixed;
  top: 8px;
  left: 50%;
  z-index: 100000;

  transform: translate(-50%,-125%);
  opacity: 0;
  transition:
    opacity 0.6s ease,
    transform 0.6s ease;
  pointer-events: none;
}
[data-alert].is--active {
  transform: translate(-50%,0);
  opacity: 1;
}
[data-alert] i {
  display: block;
  color: var(--site-c-blue);
}
[data-alert] [data-alert-text] {
  display: block;
  color: var(--site-c-black);
}


/**
 * js slick
**/
.wrap .slick-prev::before,
.wrap .slick-next::before {
  content: "";
  color: #fff;
  font-family: "Font Awesome 6 Free";
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  display: var(--fa-display, inline-block);
  font-style: normal;
  font-variant: normal;
  font-weight: 700;
  line-height: 1;
  text-rendering: auto;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: var(--site-c-main);
  color: #fff;
  font-size: 14px;
  width: 32px;
  height: auto;
  aspect-ratio: 1 / 1;
}
.wrap .slick-prev::before {
  content: "\f104";
}
[dir="rtl"] .wrap .slick-prev::before {
  content: "\f105";
}
.wrap .slick-next::before {
  content: "\f105";
}
[dir="rtl"] .wrap .slick-next::before {
  content: "\f104";
}




/**
 * 調整
**/

.date__invalid:invalid {
  border-color: #ec5937 !important;
  background-color: #ffb6c1 !important;
}
.formset__invalid select:invalid {
  border-color: #ec5937 !important;
  background-color: #ffb6c1 !important;
}
.formset__invalid:invalid,
textarea:invalid {
  border-color: #ec5937;
  background-color: #ffb6c1;
}
