@charset "UTF-8";

/*-------------------------------
  コンポーネント
-------------------------------*/

/* お知らせ */
.o-info > h2 {
  margin-bottom: 6vw;
}
@media (min-width: 40em) {
  .o-info > h2 {
    margin-bottom: 30px;
  }
}
.o-entry-content .o-info-items {
  margin: 0;
}
.o-entry-content .o-info-item {
  list-style: none;
}
.o-info__date {
  font-size: var(--px-to-vw_13);
  margin-right: 1.5em;
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  justify-content: flex-start;
  width: 15vw;
}
@media (min-width: 40em) {
  .o-info__date {
    font-size: var(--px-to-rem_14);
    margin-right: 1.5em;
    width: 60px;
  }
}
a.o-info__cat {
  display: inline-block;
  font-size: var(--px-to-vw_11);
  font-weight: bold;
  background-color: var(--color-main);
  color: var(--color-text-w);
  padding: 0 2em;
  line-height: 1.8em;
  margin-right: 1em;
}
a.o-info__cat:last-child {
  margin-right: 0;
}
@media (min-width: 40em) {
  a.o-info__cat {
    font-size: var(--px-to-rem_12);
    line-height: 1.8em;
  }
  a.o-info__cat:last-child {
    margin-right: 2rem;
  }
}
.o-info-item {
  border-top: 1px solid var(--color-gray);
  padding: 6vw 0;
}
.o-info-item:last-child {
  border-bottom: 1px solid var(--color-gray);
}
.o-info-item i {
  color: var(--color-main);
  font-size: var(--px-to-vw_16);
}
a.o-info__link {
  margin-top: 0.8em;
  margin-right: 1em;
  line-height: 1.5;
  font-size: var(--px-to-vw_15);
  transition: 0.2s;
  flex: 1 1 90%;
}
.o-info__link-icon .fa-arrow-right::before {
  display: inline-block;
  transition: transform 0.3s ease;
}
.o-info-item:hover .o-info__link-icon .fa-arrow-right::before {
  transform: translateX(6px);
}
@media (min-width: 40em) {
  .o-info-item {
    padding: 20px;
  }
  a.o-info__link {
    margin-top: 0;
    margin-right: 30px;
    font-size: var(--px-to-rem_16);
    flex: 1 1 0%;
  }
  a.o-info__link:hover {
    opacity: 0.8;
  }
  .o-info-item i {
    font-size: var(--px-to-rem_18);
  }
}
.o-info__btn {
  padding: 6.667vw 0 13.5vw;
}
@media (min-width: 40em) {
  .o-info__btn {
    padding: 20px 0 0;
  }
}

/* エントリーフォーム */
.o-entry-form {
  margin: 0 0 50px;
}

.c-form-table {
  width: 100%;
  border-collapse: collapse;
}

/* 1行をブロック化 */
.c-form-table tr {
  display: block;
}

/* th・td を縦に */
.c-form-table th,
.c-form-table td {
  display: block;
  width: 100%;
  box-sizing: border-box;
}

/* th */
.c-form-table th {
  border-top: 1px solid #c8c8c8;
  background-color: #f3f3f3;
  padding: 10px 24px 10px 30px;
  position: relative;
  vertical-align: middle;
}

.c-form-table th::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 20px;
  width: 2px;
  height: 60%;
  transform: translateY(-50%);
  background-color: #fe0000;
}

/* td */
.c-form-table td {
  border-top: none; /* thと重ならないように */
  padding: 10px;
}

/* 行の区切り線 */
.c-form-table tr {
  border-top: 1px solid #c8c8c8;
}

.c-form-table tr:last-child {
  border-bottom: 1px solid #c8c8c8;
}

@media (min-width: 40em) {
  .c-form-table {
    display: table;
  }

  .c-form-table tr {
    display: table-row;
    border: none;
  }

  .c-form-table td {
    display: table-cell;
    width: auto;
  }

  .c-form-table th {
    display: table-cell;
    width: 14vw;
  }

  .c-form-table th,
  .c-form-table td {
    border-top: 1px solid #c8c8c8;
  }

  .c-form-table tr:last-child th,
  .c-form-table tr:last-child td {
    border-bottom: 1px solid #c8c8c8;
  }
}

.c-asterisk {
  color: #fe0000;
}

.c-form-submit {
  position: relative;
  margin: 50px auto 0;
  width: fit-content;
  transition: 0.3s;
}

.c-form-submit--nomargin {
  margin-top: 0;
  margin-left: 0;
  margin-right: 0;
}

.c-form-submit-flex {
  display: flex;
   flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 30px;
}

@media (min-width: 40em) {
  .c-form-submit--nomargin {
    margin-top: 0;
    margin-left: 0;
    margin-right: 0;
  }

  .c-form-submit-flex {
    flex-direction: row;
  }
}

/* submit ボタン */
.c-form-submit input {
  width: auto;
  height: auto;
  font-size: var(--px-to-vw_16);
  font-weight: bold;
  padding: 0 3em 0 2.5em;
  background-color: var(--color-main) !important;
  border: 1px solid var(--color-main);
  color: #fff !important;
  line-height: 3;
  cursor: pointer;
}
.reverse.c-form-submit input {
  padding: 0 3em 0 4em;
  background-color: var(--color-gray) !important;
  border: 1px solid var(--color-gray);
  color: var(--color-text) !important;
}
@media (min-width: 40em) {
  .c-form-submit input {
    font-size: var(--px-to-rem_16);
  }
}

.c-form-submit i {
  position: absolute;
  right: 1.5em;
  top: 50%;
  transform: translateY(-50%);
  color: #fff;
  pointer-events: none;
  right: 10%;
}
.reverse.c-form-submit i {
  color: var(--color-text);
  left: 1.5em;
}
@media (min-width: 40em) {
  .c-form-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 12px rgba(0,0,0,0.15);
  }
  .c-form-submit:hover .c-btn__icon {
    transform: translateY(-50%)  translateX(6px);
  }
  .reverse.c-form-submit:hover .c-btn__icon {
    transform: translateY(-50%) translateX(-6px);
  }
}

.c-form-submit .wpcf7-spinner {
  display: none;
}

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


/* お問い合わせ */
.o-form {
  margin: 0 0 50px;
}

.c-privacy-scroll {
  height: 300px;
  overflow-y: auto;
  padding: 16px;
  border: 1px solid #ccc;
  background-color: #fafafa;
  line-height: 1.7;
}

.c-form-title {
  position: relative;
  padding-left: 1.4em;
}

.c-form-title::before {
  content: "●";
  color: #fe0000;
  position: absolute;
  left: 0;
  top: 0;
}

.c-form-tel {
  font-size: clamp(20px, 4vw, 30px);
  font-weight: bold;
}

.o-form .c-table--gray td.text-area,
.o-entry-form .c-table--gray td.text-area {
  white-space: pre-line;
  margin: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.5;
}
