/*
** attribute
*/

*[data-justification="left"] {
  text-align: left;
}

*[data-justification="center"] {
  text-align: center;
}

*[data-justification="right"] {
  text-align: right;
}

*[data-fontColor="main"] {
  color: var(--main) !important;
}

*[data-fontColor="dark"] {
  color: var(--dark) !important;
}

*[data-fontColor="light"] {
  color: var(--light) !important;
}

*[data-fontColor="font"] {
  color: var(--font) !important;
}

*[data-fontColor="white"] {
  color: #fff !important;
}

*[data-fontColor="gray"] {
  color: var(--gray) !important;
}

*[data-bgColor],
*[data-bgImage] {
  padding-top: 2.5em;
  padding-bottom: 2.5em;
}

*[data-bgColor="main"] {
  background-color: var(--main) !important;
}

*[data-bgColor="dark"] {
  background-color: var(--dark) !important;
}

*[data-bgColor="light"] {
  background-color: var(--light) !important;
}

*[data-bgColor="font"] {
  background-color: var(--font) !important;
}

*[data-bgColor="white"] {
  background-color: #fff !important;
}

*[data-bgColor="gray"] {
  background-color: var(--gray) !important;
}

*[data-bgImage] {
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}


/*
** .page-header
*/

.page-header {
  padding-top: 5em;
  padding-bottom: 5em;
  margin-bottom: 3em;
}

.page-header:not([data-hImage]) {
  background-image: url(../../image/bg_page-header.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.page-header[data-hImage] {
  position: relative;
}

.page-header__bg {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1;
  display: block;
  width: 100%;
  height: 100%;
}

.page-header__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}


/*
** .section
*/

.section {
  margin-bottom: 6em;
}

.section__header {
  font-weight: 500;
  margin-bottom: 2.5em;
}

.section__contents > *:last-child {
  margin-bottom: 0;
}


/*
** .c-title
*/

.c-title-page__main {
  font-size: 1.75em;
  font-weight: 500;
}

.c-title-page__sub {
  color: var(--main);
}

.c-title-simple {
  font-size: 1.5em;
  font-weight: 500;
}

.c-title-en__main {
  font-size: 1.5em;
  font-weight: 500;
  color: var(--main);
}

.c-title-en__sub {
  font-size: 0.9em;
  color: var(--gray);
}

.c-title-internal {
  font-size: 1.25em;
  font-weight: 500;
  margin-bottom: 1em;
}


/*
** .c-lead
*/

.c-lead {
  font-size: 1.25em;
  font-weight: 500;
  margin-bottom: 1.5em;
}

.c-lead:has(+ .c-button) {
  margin-bottom: unset;
}


/*
** .c-text
*/

.c-text {
  margin-bottom: 3em;
}

.c-text:has(+ .c-button) {
  margin-bottom: unset;
}


/*
** .c-2columns
*/

.c-2columns {
  display: grid;
  grid-template-columns: 100%;
  grid-auto-rows: max-content;
  grid-gap: 1em;
  margin-bottom: 3em;
}

.c-2columns:has(+ .c-button) {
  margin-bottom: unset;
}

.c-2columns__item--image img {
  border-radius: var(--border-radius);
}


/*
** .c-mcolumns
*/

.c-mcolumns {
  display: grid;
  grid-template-columns: 100%;
  grid-auto-rows: max-content;
  grid-gap: 2em;
  margin-bottom: 3em;
}

.c-mcolumns:has(+ .c-button) {
  margin-bottom: unset;
}

.c-mcolumns__item {
  display: grid;
  grid-template-columns: 100%;
  grid-auto-rows: max-content;
}

.c-mcolumns__item-image {
  margin-bottom: 1em;
}

.c-mcolumns__item-image img {
  border-radius: var(--border-radius);
}

.c-mcolumns__item-title {
  font-size: 1.2em;
  font-weight: 500;
  border-left: 3px solid var(--main);
  padding-left: 0.5em;
}

.c-mcolumns__item-title + .c-mcolumns__item-body {
  margin-top: 1em;
}


/*
** .c-image
*/

.c-image {
  margin-bottom: 3em;
}

.c-image:has(+ .c-button) {
  margin-bottom: unset;
}

.c-image img {
  border-radius: var(--border-radius);
}


/*
** .c-button
*/

.c-button {
  margin-top: 2em;
  margin-bottom: 3em;
}

.c-button a {
  position: relative;
  color: #fff;
  background-color: var(--main);
  border-radius: 3em;
  padding: 1.5em 3em;
}

.c-button a::before {
  content: '→';
  position: absolute;
  top: 50%;
  right: 0.5em;
  transform: translateY(-50%) translateX(0);
  -ms-transform: translateY(-50%) translateX(0);
  -webkit-transform: translateY(-50%) translateX(0);
}


/*
** .c-table
*/

.c-table__wrap {
  overflow-x: auto;
  margin-bottom: 3em;
}

.c-table__wrap:has(+ .c-button) {
  margin-bottom: unset;
}

.c-table {
  width: 100%;
  border-collapse: collapse;
  white-space: nowrap;
}

.c-table th {
  background-color: var(--light);
}

.c-table th,
.c-table td {
  vertical-align: middle;
  border: 1px solid var(--gray);
  padding: 1em;
}


/*
** .c-list
*/

.c-list {
  display: grid;
  grid-template-columns: 100%;
  grid-auto-rows: max-content;
  grid-row-gap: 0.5em;
  margin-bottom: 3em;
}

.c-list:has(+ .c-button) {
  margin-bottom: unset;
}

.c-list__item {
  position: relative;
  padding-left: 1.5em;
}

ul.c-list .c-list__item::before {
  content: '●';
  position: absolute;
  top: 0;
  left: 0;
  color: var(--main);
}

ol.c-list {
  counter-reset: number;
}

ol.c-list .c-list__item::before {
  counter-increment: number; /* counter-resetと同じ文字列 */
	content: counter(number)'.'; /* カウントした数に応じて番号を表示 */
  position: absolute;
  top: 0;
  left: 0;
  font-weight: 500;
  color: var(--main);
}

.c-list__item-headline {
  font-weight: 500;
}


/*
** .c-form
*/

.c-form {
  margin-bottom: 3em;
}

.c-form:has(+ .c-button) {
  margin-bottom: unset;
}

.c-form__input-label {
  display: block;
  margin-bottom: 0.25em;
}

.c-form__input-label:not(:first-child) {
  margin-top: 0.5em;
}

.c-form__input-label--required::after {
  content: '※';
  color: #f00;
  margin-left: 0.5em;
}

.c-form__acceptance {
  text-align: center;
  margin-top: 2em;
}

.c-form__acceptance .wpcf7-list-item {
  margin: 0;
}

.c-form__acceptance label a {
  text-decoration: underline;
}

.c-form__submit {
  display: grid;
  grid-template-columns: auto;
  grid-auto-rows: max-content;
  justify-content: center;
  margin-top: 2em;
}

.c-form__submit .wpcf7-submit {
  color: #fff;
  border-radius: 3em;
  border: none;
  background-color: var(--main);
  transition: var(--transition);
  padding: 1.5em 4em;
}

.c-form__submit .wpcf7-submit[disabled] {
  background-color: var(--gray);
}

@media (hover: hover) and (pointer: fine) {
  .c-form__submit .wpcf7-submit {
    cursor: pointer;
  }
}


/*
** .c-post-archive
*/

.c-post-archive {
  margin-bottom: 3em;
}

.c-post-archive:has(+ .c-button) {
  margin-bottom: unset;
}

.c-post-archive__list {
  display: grid;
  grid-template-columns: 100%;
  grid-auto-rows: max-content;
  grid-row-gap: 0.5em;
}

.c-post-archive__list-item:not(:first-child) {
  border-top: 1px solid var(--gray);
  padding-top: 0.5em;
}

.c-post-archive__list-item a {
  display: grid;
  grid-template-columns: 100%;
  grid-auto-rows: max-content;
  width: 100%;
}

.c-post-archive__date {
  font-size: 0.8em;
}

.c-post-archive__title {
  font-size: 1.25em;
}

.c-post-archive__body {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}