@charset "UTF-8";

/* -------------------------------------------------------
name : base.css
version : 2.0
viewport : sp -599,tb 600-1024 pc 1024-
----------------------------------------------------------- */

/* default settings
---------------------------------------------------------------- */
body {
  background: var(--white);
  color: var(--black);
  letter-spacing: 0;
  letter-spacing: 0.05em;
  /*font-feature-settings: 'palt';*/
  word-wrap: break-word;
  width: 100%;
}
h1 {
  font-size: var(--fs-ttl-l);
  line-height: 1.5;
}
h2 {
  font-size: var(--fs-ttl-m);
  line-height: 1.5;
}
h3,
h4 {
  font-size: var(--fs-ttl-s);
  line-height: 1.5;
}
h5 {
  font-size: var(--fs-ttl-xs);
}
p {
  font-size: var(--fs-default);
  line-height: 1.7;
}
a {
  color: var(--black);
  text-decoration: none;
}
a,
a img {
  transition: all 0.3s;
}
a:hover {
  opacity: 0.7;
  transition: 0.3s ease-in-out;
}
:focus-visible {
  outline: var(--cl-main) 2px solid;
}
button {
  background-color: transparent;
  padding: 0;
  appearance: none;
}
[type='button'] {
  text-align: center;
}
input[type='text'],
input[type='number'],
input[type='tel'],
input[type='email'],
input[type='url'],
input[type='password'],
input[type='search'],
input[type='date'],
textarea {
  display: inline-block;
  font-size: 1.6rem;
  padding: 0.5em 0.8em;
  border: var(--gray03) 1px solid;
  border-radius: 8px;
  width: 100%;
}
select {
  display: inline-block;
  font-size: 1.6rem;
  padding: 0.5em 0.8em;
  background: var(--white);
  border: var(--gray03) 1px solid;
  border-radius: 8px;
  width: 100%;
}
/* バー */
input[type='range'] {
  outline: none;
  height: 5px;
  width: 100%;
  background: var(--gray01);
  border-radius: 8px;
}
/* つまみ */
input[type='range']::-webkit-slider-thumb {
  -webkit-appearance: none;
  background: var(--gray01);
  width: 1.5em;
  height: 1.5em;
  border-radius: 50%;
  box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.15);
}
input[type='range']::-moz-range-thumb {
  background: var(--gray01);
  width: 1.5em;
  height: 1.5em;
  border-radius: 50%;
  box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.15);
  border: none;
}
/* Firefoxで点線が周りに表示されてしまう問題の解消 */
input[type='range']::-moz-focus-outer {
  border: 0;
}
/* つまみをドラッグしているときのスタイル */
input[type='range']:active::-webkit-slider-thumb {
  box-shadow: 0px 5px 10px -2px rgba(0, 0, 0, 0.3);
}
input[type='color'] {
  border: var(--gray03) 1px solid;
  border-radius: 3px;
  padding: 3px;
}
input[type='submit'],
input[type='reset'] {
  border: var(--gray03) 1px solid;
  border-radius: 8px;
  padding: 0.5em 0.8em;
  width: 100%;
  text-align: center;
}

/* form style
---------------------------------------------------------------- */
/* セレクトボックス ---------- */
.select-styled {
  position: relative;
  width: 100%;
}
.select-styled::after {
  content: '';
  position: absolute;
  top: 50%;
  right: 0.5em;
  transform: translateY(-50%);
  border-style: solid;
  border-width: 0.6em 0.6em 0 0.6em;
  border-color: var(--gray03) transparent transparent transparent;
}
/* ラジオボタン ---------- */
.radio-styled {
  position: relative;
}
.radio-styled + .radio-styled {
  margin: 0.5em 0 0;
}
.radio-styled input[type='radio'] {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  width: 1.5em;
  height: 1.5em;
}
.radio-styled label {
  display: inline-block;
  white-space: nowrap;
  cursor: pointer;
}
.radio-styled label span {
  padding-left: 2em;
}
.radio-styled label:hover {
  opacity: 0.6;
  transition: 0.3s ease-in-out;
}
.radio-styled label span::before {
  content: '';
  background: var(--white);
  border-radius: 100%;
  border: 1px solid var(--gray03);
  display: inline-block;
  width: 1.5em;
  height: 1.5em;
  position: absolute;
  top: 0;
  left: 0;
  margin-right: 0.3em;
  vertical-align: top;
  text-align: center;
  transition: all 250ms ease;
}
.radio-styled input[type='radio']:checked + span,
.radio-styled input[type='radio']:checked + label span {
  color: var(--cl-main);
}
.radio-styled input[type='radio']:checked + span::before,
.radio-styled input[type='radio']:checked + label span::before {
  background-color: var(--cl-main);
  box-shadow: inset 0 0 0 4px var(--white);
  border-color: var(--cl-main);
}
.radio-styled input[type='radio']:disabled + span::before,
.radio-styled input[type='radio']:disabled + label span::before {
  box-shadow: inset 0 0 0 4px var(--white);
  border-color: var(--gray03);
  background: var(--gray03);
}
.radio-styled input[type='radio'] + span:empty::before,
.radio-styled input[type='radio'] + label span:empty::before {
  margin-right: 0;
}
.radio-styled input[type='radio']:focus-visible + span,
.radio-styled input[type='radio']:focus-visible + label span {
  border-color: var(--cl-main);
  border-width: 2px;
}

/* チェックボックス ---------- */
.checkbox-styled {
  position: relative;
}
.checkbox-styled + .checkbox-styled {
  margin: 0.5em 0 0;
}
.checkbox-styled input[type='checkbox'] {
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  width: 1.5em;
  height: 1.5em;
}
.checkbox-styled label {
  display: inline-block;
  cursor: pointer;
  white-space: nowrap;
}
.checkbox-styled label:hover {
  opacity: 0.6;
  transition: 0.3s ease-in-out;
}
.checkbox-styled label span {
  position: absolute;
  top: 0;
  left: 0;
  padding-left: 2em;
  display: inline-block;
}
.checkbox-styled label span:before {
  content: '';
  display: block;
  width: 1.5em;
  height: 1.5em;
  border: 1px solid var(--gray03);
  background: var(--white);
  position: absolute;
  left: 0;
  top: 0;
  -webkit-transition: all 0.12s, border-color 0.08s;
  transition: all 0.12s, border-color 0.08s;
}
.checkbox-styled input[type='checkbox']:checked + span,
.checkbox-styled input[type='checkbox']:checked + label span {
  color: var(--cl-main);
}
.checkbox-styled label input[type='checkbox']:checked + span::before,
.checkbox-styled input[type='checkbox']:checked + label span::before {
  width: 0.8em;
  top: -5px;
  left: 5px;
  border-radius: 0;
  opacity: 1;
  border: 1px solid var(--cl-main);
  background: transparent;
  border-top-color: transparent;
  border-left-color: transparent;
  transform: rotate(45deg);
}
.checkbox-styled input[type='checkbox']:focus-visible + span,
.checkbox-styled input[type='checkbox']:focus-visible + label span {
  border-color: var(--cl-main);
  border-width: 2px;
}

/* ファイル選択 ---------- */
.file-styled {
  display: flex;
  align-items: center;
  gap: 0.5em;
}
.file-styled button {
  padding: 0.5em 0.8em;
  background: var(--white);
  border: var(--gray03) 1px solid;
  border-radius: 8px;
  transition: 0.3s all;
}
.file-styled button:hover {
  color: var(--white);
  background: var(--black);
}
.file-styled input {
  display: none;
}

/* 同意チェックボックス */
.privacy-check-box-area {
  padding: 1em 2em;
  background: var(--cl-base);
}
.checkbox-01 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
.checkbox-01 label {
  display: flex;
  flex-wrap: wrap;
  cursor: pointer;
  position: relative;
  margin: 0.3em 0.3em 0.3em 0.6em;
}
.checkbox-01 label span {
  display: flex;
}
.checkbox-01 label span:before {
  content: '';
  display: block;
  position: relative;
  background-color: var(--white);
  width: 25px;
  min-width: 25px;
  height: 25px;
  transform-origin: center;
  border: 1px solid var(--gray03);
  transition: background-color 150ms 200ms, transform 350ms cubic-bezier(0.78, -1.22, 0.17, 1.89);
  margin: 0 0.5em 0 0;
}
.checkbox-01 label span:after {
  content: '';
  width: 0px;
  height: 0px;
  border-top: 1px solid var(--white);
  border-right: 1px solid var(--white);
  position: absolute;
  transform: rotate(135deg);
  top: 0.5em;
  left: 1.3em;
  transition: 0.3s all;
  transform-origin: 0% 0%;
}
.checkbox-01 label:hover span:after {
  width: 14px;
  height: 10px;
  border-top: 2px solid var(--gray05);
  border-right: 2px solid var(--gray05);
}
.checkbox-01 input[type='checkbox'] {
  display: none;
}
.checkbox-01 input[type='checkbox']:checked + label {
  color: var(--cl-main);
}
.checkbox-01 input[type='checkbox']:checked + label span:before {
  transform: scale(1.25);
  border: 2px solid var(--cl-main);
  transition: background-color 150ms 200ms, transform 350ms cubic-bezier(0.78, -1.22, 0.17, 1.89);
}
.checkbox-01 input[type='checkbox']:checked + label span:after {
  width: 14px;
  height: 10px;
  border-top: 2px solid var(--cl-main);
  border-right: 2px solid var(--cl-main);
  transition: background-color 150ms 200ms, transform 350ms cubic-bezier(0.78, -1.22, 0.17, 1.89);
}
.checkbox-01 input[type='checkbox']:checked + label:hover span:before {
  transform: scale(1.25);
  transition: background-color 150ms 200ms, transform 350ms cubic-bezier(0.78, -1.22, 0.17, 1.89);
}
.checkbox-01 input[type='checkbox']:checked + label:hover span:after {
  width: 14px;
  transition: background-color 150ms 200ms, transform 350ms cubic-bezier(0.78, -1.22, 0.17, 1.89);
}
@media only screen and (max-width: 1024px) {
  .checkbox-01 label:hover span:after {
    border-top: 1px solid var(--white);
    border-right: 1px solid var(--white);
  }
}
@media only screen and (max-width: 599px) {
  .privacy-check-box-area {
    padding: 1em;
  }
}

/* フォーム確認・送信ボタン */
.btn-form-submit,
.btn-form-back {
  position: relative;
  width: 100%;
}
.btn-form-submit input {
  font-size: var(--fs-default);
  font-weight: bold;
  background: var(--cl-accent);
  color: var(--white);
  text-decoration: none !important;
  width: 100%;
  height: 100%;
  padding: 0.8em 0;
  border: none;
  border-radius: var(--btn-br);
  cursor: pointer;
  transition: all 0.3s;
  -webkit-appearance: none;
}
.btn-form-submit::after {
  content: '';
  position: absolute;
  color: var(--white);
  border-top: 2px solid var(--white);
  border-right: 2px solid var(--white);
  width: 0.6em;
  height: 0.6em;
  top: 0;
  bottom: 0;
  right: 20px;
  margin: auto;
  transition: 0.3s;
  transform: rotate(45deg);
}
.btn-form-submit:hover::after {
  right: 15px;
}
.btn-form-submit input:disabled {
  background: var(--gray03);
}

/* 確認画面へ戻るボタン */
.btn-form-back input {
  font-size: 1.6rem;
  font-weight: bold;
  background: var(--gray01);
  color: var(--white);
  text-decoration: none !important;
  width: 100%;
  height: 100%;
  padding: 0.8em 0;
  border: none;
  border-radius: var(--btn-br);
  cursor: pointer;
  transition: all 0.3s;
  -webkit-appearance: none;
}
.btn-form-back::before {
  content: '';
  position: absolute;
  color: var(--white);
  border-top: 2px solid var(--white);
  border-right: 2px solid var(--white);
  width: 0.6em;
  height: 0.6em;
  top: 0;
  bottom: 0;
  left: 20px;
  margin: auto;
  transition: 0.3s;
  transform: rotate(-135deg);
}
.btn-form-back:hover::before {
  left: 15px;
}

.form-container {
  border: var(--gray03) 2px solid;
  padding: 2em;
  margin-left: auto;
  margin-right: auto;
}
.form-container dl {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  padding: 1.5em 0;
}
.form-container dl + dl {
  border-top: var(--gray03) 1px solid;
}
.form-container dl dt {
  position: relative;
  width: 30%;
  font-weight: bold;
}
.form-container dl dd {
  width: 70%;
  padding-left: 1em;
}
/* 郵便番号 */
.form-container input[name='postal'] {
  width: 60%;
}
.form-container input[name='postal'] + a {
  display: inline-block;
  padding: 0.5em 1em;
  border: 1px solid var(--cl-main);
  border-radius: 3px;
  background: var(--cl-main);
  font-size: 16px;
  line-height: normal;
  color: var(--white);
  text-decoration: none;
  margin-left: 0.5em;
  cursor: pointer;
}

/* -- span.required, span.optional --*/
.form-container dl dt i {
  position: absolute;
  top: 0;
  right: 0.5em;
}
.form-container dl dt span.required,
.form-container dl dt span.optional {
  display: inline-block;
  font-size: 85%;
  color: var(--white);
  padding: 0.2em 0.8em;
  border-radius: 3px;
  font-style: normal;
}
.form-container dl dt span.required {
  background: var(--red);
  border: 1px solid var(--red);
}
.form-container dl dt span.optional {
  background: var(--gray03);
  border: 1px solid var(--gray03);
}

/* -- error message --*/
.form-container dl dd span.error_blank,
.form-container dl dd span.error_format,
.form-container dl dd span.error_match {
  display: block;
  color: var(--red);
  margin-top: 5px;
}

/* -- confirm --*/
div#confirm_field {
  display: none;
}

@media only screen and (max-width: 1024px) {
  .form-container {
    max-width: 600px;
    padding: 1em;
  }
  .form-container dl dt,
  .form-container dl dd {
    width: 100%;
    padding: 0.5em 0;
  }
  .form-container dl dt i {
    position: relative;
    right: auto;
    margin-left: 0.5em;
  }
}

@media only screen and (max-width: 599px) {
  .form-container input[name='postal'] {
    width: 100%;
  }
  .form-container input[name='postal'] + a {
    position: absolute;
    top: 1.8em;
    right: 0;
    margin: 0;
    font-size: 1.4rem;
  }
}

/* ステップ */
.form-steps {
  width: 100%;
  margin: 0 auto;
}
.form-steps ul {
  display: flex;
  justify-content: space-between;
}
.form-steps ul li {
  position: relative;
  text-align: center;
  background: var(--gray03);
  width: calc(100% / 3);
}
.form-steps ul li:first-of-type {
  border-radius: 5px 0 0 5px;
}
.form-steps ul li:last-of-type {
  border-radius: 0 5px 5px 0;
}
.form-steps ul li:nth-child(n + 2) {
  margin-left: 28px;
}
.form-steps ul li:nth-child(n + 2):before {
  content: '';
  position: absolute;
  top: 50%;
  border: 0 solid var(--gray03);
  border-width: 25px 20px;
  width: 0;
  height: 0;
  left: -20px;
  border-left-color: transparent;
  transform: translateY(-50%);
}
.form-steps ul li.active:nth-child(n + 2):before {
  content: '';
  position: absolute;
  top: 50%;
  border: 0 solid var(--cl-main);
  border-width: 25px 20px;
  width: 0;
  height: 0;
  left: -20px;
  border-left-color: transparent;
  transform: translateY(-50%);
}
.form-steps ul li span {
  position: relative;
  display: block;
  height: 50px;
  line-height: 50px;
}
.form-steps ul li span:after {
  content: '';
  position: absolute;
  top: 50%;
  border: 0 solid var(--gray03);
  border-width: 25px 20px;
  width: 0;
  height: 0;
  left: 100%;
  border-color: transparent;
  border-left-color: var(--gray03);
  transform: translateY(-50%);
}
.form-steps ul li:last-of-type span::after {
  display: none;
}
.form-steps ul li.active {
  background: var(--cl-main);
}
.form-steps ul li.active span {
  color: var(--white);
}
.form-steps ul li.active span:after {
  border-left-color: var(--cl-main);
}

/* table
---------------------------------------------------------------- */
.d-table {
  display: table;
  width: 100%;
}
.d-table-cell {
  display: table-cell;
  vertical-align: top;
}
table {
  border-collapse: collapse;
}
table th,
table td {
  border: var(--gray03) 1px solid;
  padding: 0.5em;
}

/* パンくずリスト
---------------------------------------------------------------- */
.breadcrumbs {
  font-size: var(--fs-default);
  padding: 0.5em 0 1em;
}
.breadcrumbs a {
  color: var(--black);
}
@media only screen and (max-width:599px){
  .breadcrumbs {
    font-size: var(--fs-notes);
  }
}

/* iframe  google map / youtube
---------------------------------------------------------------- */
/* iframe */
:where(.editor-page, .single-news) iframe {
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 9;
}

/* animation
---------------------------------------------------------------- */
/* スクロールCSS */
.fade-in {
  opacity: 0;
  transition-duration: 1000ms;
  transition-property: opacity, transform;
}
.fade-in-up {
  transform: translate(0, 50px);
}
.fade-in-down {
  transform: translate(0, -50px);
}
.fade-in-left {
  transform: translate(-50px, 0);
}
.fade-in-right {
  transform: translate(50px, 0);
}
.scroll-in {
  opacity: 1;
  transform: translate(0, 0);
}

/* zoom */
.zoom-in,
.zoom-out {
  transition: 0.2s ease-in-out;
}
.zoom-in:hover {
  transform: scale(1.1);
}
.zoom-out:hover {
  transform: scale(0.95);
}

/* shake */
.shake:hover {
  display: inline-block;
  animation: shake 0.1s infinite;
}
@keyframes shake {
  0% {
    transform: translate(0px, 0px) rotateZ(0deg);
  }
  25% {
    transform: translate(2px, 2px) rotateZ(1deg);
  }
  50% {
    transform: translate(0px, 2px) rotateZ(0deg);
  }
  75% {
    transform: translate(2px, 0px) rotateZ(-1deg);
  }
  100% {
    transform: translate(0px, 0px) rotateZ(0deg);
  }
}

/* wordpress css ------------------------------------------------------------------------------------------- */

/* ブロックエディタ使用ページ
---------------------------------------------------------------- */
.editor-page {
  /* clear: both;
  overflow: hidden; */
}
.edit-post-visual-editor__content-area {
  width: 100%;
}
.editor-styles-wrapper {
  max-width: calc(var(--contents-max-width) + 6%);
  padding: 0 3% 3% !important;
}
.editor-page :is(.wp-block-image .aligncenter, .wp-block-image .alignleft, .wp-block-image .alignright, .wp-block-image.aligncenter, .wp-block-image.alignleft, .wp-block-image.alignright) {
  display: block;
}

/* リストスタイル---------------- */
.editor-page ul li {
  list-style-type: disc;
  list-style-position: outside;
  margin-left: 20px;
}
.editor-page ol li {
  list-style-type: decimal;
  list-style-position: outside;
  margin-left: 20px;
}

/* 画像配置---------------- */
.editor-page img.alignright {
  float: right;
}
.editor-page img.alignleft {
  float: left;
}
.editor-page img.aligncenter {
  display: block;
  margin: 0 auto;
}

@media only screen and (max-width: 768px) {
  .editor-page img.alignright {
    float: none;
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
  .editor-page img.alignleft {
    float: none;
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
}

/* 編集ボタン */
.btn-edit {
  margin-bottom: 2em;
  text-align: right;
}
.btn-edit a {
  background: var(--cl-accent);
  color: var(--white) !important;
  padding: 0.8em;
  border-radius: 8px;
  font-size: var(--fs-default);
  box-shadow: 0 3px 6px rgb(0 0 0 / 20%);
}
.btn-edit a i {
  font-size: 1.5em;
  margin-right: 0.3em;
}

/* ページナビゲーション
---------------------------------------------------------------- */
/* prev next btns */
.prev-next-btns a {
  display: flex;
  color: var(--black);
  align-items: start;
  width: 49.5%;
  padding: 10px;
  position: relative;
  font-size: 1.4rem;
  margin-left: 0.5%;
  margin-right: 0.5%;
  border: var(--cl-main) 2px solid;
  border-radius: 8px;
}
.prev-next-btns a .thumb-img {
  position: relative;
  overflow: hidden;
  max-width: 30%;
  max-height: 67px;
  display: flex;
  align-items: center;
}
.prev-next-btns a .thumb-img img {
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.prev-next-btns .prev-next-txt-area {
  width: 68%;
}
.prev-next-btns h5 {
  position: relative;
  display: inline-block;
  line-height: 2;
  color: var(--cl-main);
}
.prev-link h5 {
  padding-left: 1.5rem;
}
.prev-link h5:before,
.next-link h5:after {
  position: absolute;
  content: '';
  width: 0.5em;
  height: 0.5em;
  display: inline-block;
  border-top: 2px solid var(--cl-main);
  border-left: 2px solid var(--cl-main);
  transform: translateY(-50%) rotate(135deg);
  top: 50%;
}
.prev-link h5:before {
  left: 0;
  transform: translateY(-50%) rotate(315deg);
}
.next-link h5:after {
  right: -1.5rem;
}
.prev-next-btns a span {
  font-weight: bold;
}

.prev-next-btns .prev-next-txtonly .prev-next-txt-area {
  width: 100%;
}

@media only screen and (max-width: 599px) {
  .prev-next-btns a {
    width: 100%;
    font-size: 1.2rem;
  }
  .prev-next-btns a.next-link {
    margin-top: 10px;
  }
  .prev-next-btns a.prev-next-txtonly {
    width: 49.5%;
  }
  .prev-next-btns a.prev-next-txtonly.next-link {
    margin-top: 0;
  }
}

/* 投稿内のページャー */
.content-inner-pager {
  margin: 3em 0;
}
.content-inner-pager .post-page-numbers {
  border: var(--cl-main) 2px solid;
  color: var(--cl-main);
  padding: 0.5em;
}
.content-inner-pager .post-page-numbers.current {
  background: var(--cl-main);
  color: var(--white);
}
