@charset "UTF-8";
/* 共通設定 */
body {
  font-size: 1.5rem;
  color: #322B29;
  text-rendering: auto;
}

main {
  background-color: #F2FFF2;
}

h1 {
  font-size: 2.5em;
  color: #735C5C;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
  text-align: center;
  margin: 64px 0;
}

h2 {
  font-size: 1.5em;
  color: #735C5C;
  font-family: "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 400;
  text-align: center;
  margin: 64px 0;
}

h3 {
  font-size: 1.2em;
}

.en-headline {
  font-family: "Josefin Sans", sans-serif;
}

p {
  font-size: 1em;
  font-family: "Noto Sans JP", sans-serif;
}

a {
  text-decoration: none;
}

/* トップへ戻るボタン */
#pageTop {
  width: 50px;
  height: 50px;
  position: fixed;
  right: -50px;
  bottom: 80px;
  background: #E38D7C;
  opacity: 0.9;
  z-index: 1;
}
#pageTop a {
  position: relative;
  display: block;
  width: 50px;
  height: 50px;
  text-decoration: none;
}
#pageTop a:before {
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: '\f102';
  font-size: 30px;
  color: #fff;
  position: absolute;
  width: 25px;
  height: 25px;
  top: -20px;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
  text-align: center;
}

/* ホバーアニメーションのベース設定（非表示時） */
.fadeIn {
  opacity: 0;
  visibility: hidden;
  transition: opacity 1.2s ease-out, transform 1.2s ease-out, visibility 1.2s;
  transform: translateY(30px);
  will-change: opacity, transform;
}

/* 表示時のスタイル */
.active {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .fadeIn {
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
}
/* ------------------------------ トップfv ------------------------------ */
.fv {
  height: auto;
  position: relative;
}
.fv img {
  width: 100%;
  height: 750px;
  object-fit: cover;
  object-position: 50% 85%;
}
.fv p {
  position: absolute;
  top: 50%;
  left: 77%;
  transform: translate(-50%, -50%);
  padding: 0;
  margin: 0;
  /*font-size: 1.7em;*/
  font-size: clamp(0.75em, calc(0.75rem + 1vw), 1.7em);
  color: #fff;
}

.arrow-button {
  display: inline-block;
  line-height: 60px;
  padding: 10px 40px 10px 20px;
  margin: 64px 64px;
  color: #fff;
  font-size: 36px;
  text-align: center;
  text-decoration: none;
  background-color: #5BC0DE;
  position: relative;
}
.arrow-button:after {
  content: "";
  /* 必須 */
  position: absolute;
  top: 0;
  right: -20px;
  /* 本体要素の右端から三角形の幅分外側へ配置 */
  /* 三角形の作成 */
  border-top: 39px solid transparent;
  border-bottom: 40px solid transparent;
  border-left: 20px solid #5bc0de;
}

.scrolldown {
  position: absolute;
  left: 89%;
  bottom: -130px;
  height: 50px;
}
.scrolldown span {
  position: absolute;
  left: 50px;
  top: -15px;
  color: #000;
  font-size: 0.95em;
  font-family: "Josefin Sans", sans-serif;
  letter-spacing: 0.05em;
  writing-mode: vertical-rl;
}
.scrolldown::after {
  content: "";
  position: absolute;
  top: 0;
  left: 35px;
  width: 1px;
  height: 30px;
  background: #000;
  animation: pathmove 1.7s ease-in-out infinite;
  opacity: 0;
}

/*線のアニメーション設定*/
@keyframes pathmove {
  0% {
    height: 0;
    top: 0;
    opacity: 0;
  }
  30% {
    height: 30px;
    opacity: 1;
  }
  100% {
    height: 0;
    top: 50px;
    opacity: 0;
  }
}
/* ------------------------------ コンセプト ------------------------------ */
.concept-container {
  background-color: #fff;
  margin-right: 128px;
  margin-top: -110px;
  padding: 64px 0;
}
.concept-container img {
  width: 50%;
  margin: 0 auto;
}
.concept-container p {
  text-align: center;
  margin-top: 25px;
}

/* ------------------------------ 『椿』とは ------------------------------ */
.overview-container {
  background-color: #79D68F;
  padding-bottom: 280px;
  position: relative;
}
.overview-container img {
  width: 100%;
  margin: 0 auto;
  height: 580px;
  object-fit: cover;
}
.overview-container__inner {
  position: absolute;
  top: 50%;
  left: 60%;
  background-color: #fff;
  padding: 30px;
  max-width: 550px;
}
.overview-container__inner p {
  text-align: left;
  font-size: 0.75em;
}
.overview-container__inner a {
  display: block;
  margin: 20px 80px 0;
  padding: 20px 0;
  text-align: center;
  font-size: 24px;
  font-family: "Josefin Sans", sans-serif;
  font-weight: 300;
  color: #fff;
  background-color: #07365B;
  border: 1px solid #07365B;
  transition: .5s;
}
.overview-container__inner a:hover {
  color: #07365B;
  background-color: #fff;
}

/* ------------------------------ 『椿』のステップアップシステム ------------------------------ */
.stepup-container {
  background-color: #fff;
  margin-right: 128px;
  margin-top: -110px;
  padding: 64px 0;
}
.stepup-container__inner {
  display: flex;
  gap: 15px;
  padding: 30px 20px;
}
.stepup-container p {
  margin: 16px 0;
  padding: 0 20px;
  text-align: center;
}

.step-item {
  flex: 1;
  /* 親要素の幅に応じて均等に幅を分配 */
  min-width: 280px;
}
.step-item img {
  width: 100%;
  height: 300px;
  object-fit: contain;
}
.step-item p {
  text-align: left;
}

.step-label {
  font-family: "Josefin Sans", sans-serif;
  font-size: 1.5em;
  font-weight: 500;
  color: #555;
  margin: 32px 0 0 0;
}

.step-title {
  font-size: 1.75em;
  margin: 5px 0 10px 0;
}

.step-description {
  font-size: 0.75em;
}

/* ------------------------------ ニュース ------------------------------ */
.news-container {
  margin: 0 64px;
}
.news-container ul {
  padding: 0;
  list-style: none;
}
.news-container ul li {
  display: flex;
  justify-content: flex-start;
  gap: 96px;
  margin: 32px 0;
  font-size: 0.8em;
}
.news-container a {
  display: block;
  width: 30%;
  margin: 20px auto;
  padding: 20px 0;
  text-align: center;
  font-size: 24px;
  font-family: "Josefin Sans", sans-serif;
  font-weight: 300;
  color: #fff;
  background-color: #07365B;
  border: 1px solid #07365B;
  transition: .5s;
}
.news-container a:hover {
  color: #07365B;
  background-color: #fff;
}

/* ------------------------------ SHOP・SNS ------------------------------ */
.shop-container {
  margin: 0 64px;
  display: grid;
  grid-template-columns: repeat(auto-fit, 130px);
  gap: 15px 5px;
  justify-content: space-evenly;
}
.shop-container a {
  display: inline-block;
  /*width: 30%;*/
  text-align: center;
  transition: .2s;
}
.shop-container a:hover {
  opacity: 0.8;
}
.shop-container img {
  /*width: 50%;*/
  margin: 0 auto;
}

/* ------------------------------ ACCESS ------------------------------ */
.map-container {
  text-align: center;
}
.map-container a {
  text-align: center;
  font-size: 0.8em;
  margin: 0 auto;
  color: #322B29;
  transition: .2s;
}
.map-container a:hover {
  opacity: 0.8;
}

.iframe-wrap {
  width: 100%;
  height: auto;
  position: relative;
  padding-top: 25%;
}
.iframe-wrap iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.map-description {
  margin: 16px auto;
  font-size: 0.6em;
}

/* ------------------------------ CONTACT ------------------------------ */
form {
  max-width: 1200px;
  margin: 0 auto;
  border-radius: 10px;
  font-size: 0.7em;
}

input[type="text"], input[type="email"], textarea {
  width: 100%;
  padding: 10px;
  margin: 10px 0;
  border: 1px solid #ccc;
  border-radius: 5px;
  box-sizing: border-box;
  transition: .2s;
}
input[type="text"]:focus, input[type="email"]:focus, textarea:focus {
  border-color: #00FF00;
  box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);
  outline: none;
}

textarea {
  resize: none;
}

.button-area {
  margin: 20px 0;
}

button {
  background-color: #07365B;
  color: #fff;
  padding: 10px 20px;
  border: 1px solid #07365B;
  cursor: pointer;
  font-size: 16px;
  width: 250px;
  display: block;
  margin: 0 auto;
  transition: .5s;
}
button:hover {
  color: #07365B;
  background-color: #fff;
}

.required {
  color: #FF0000;
}

.required-note {
  text-align: right;
  margin-bottom: 16px;
}

/* ------------------------------ CORPORATE OVERVIEW ------------------------------ */
#corporate-overview {
  margin: 0 64px;
  padding-bottom: 64px;
}

table {
  margin: 0 auto;
  font-size: 0.7em;
}
table th, table td {
  padding: 0 10px;
}
table th {
  text-align: left;
  vertical-align: top;
}

/* ------------------------------ 404ページ ------------------------------ */
.notfound {
  padding: 50px 0;
  margin: 0;
}

/* ----------------------------- お問い合わせ確認ぺージ ----------------------------- */
/* 共通 */
label {
  display: block;
}

.form-group label {
  margin: 5px 0;
}

.confirm-message {
  border: 1px solid #eee;
  padding: 10px;
  /*white-space: pre-wrap;*/
}

.error-msg {
  color: #FF0000;
  border: 1px solid #FF0000;
  padding: 15px;
  margin-bottom: 20px;
}
.error-msg h3 {
  font-size: 1em;
}
.error-msg p {
  font-size: 0.8em;
}

/* ------------------------------ お問い合わせ完了ぺージ ------------------------------ */
.error {
  color: #FF0000;
}

.button-area a {
  text-align: center;
  background-color: #07365B;
  color: #fff;
  padding: 10px 20px;
  border: 1px solid #07365B;
  cursor: pointer;
  font-size: 16px;
  width: 250px;
  display: block;
  margin: 0 auto;
  transition: .5s;
}
.button-area a:hover {
  color: #07365B;
  background-color: #fff;
}

.result-wrap {
  margin: 0 64px;
}
.result-wrap p {
  font-size: 0.8em;
}

/* ------------------------------ レスポンシブ対応 (960px以下) ------------------------------ */
@media (max-width: 960px) {
  /* 共通 */
  h1 {
    font-size: 1em;
  }

  .en-headline {
    font-size: 1.4em;
  }

  /* ------------------------------ fv ------------------------------ */
  .fv img {
    height: 500px;
  }

  .fv p {
    top: 75%;
    right: -23%;
  }

  .arrow-button {
    line-height: 26px;
    padding: 10px 20px;
    margin: 16px 16px;
    font-size: 20px;
  }
  .arrow-button:after {
    border-top: 24px solid transparent;
    border-bottom: 22px solid transparent;
    border-left: 20px solid #5bc0de;
  }

  .scrolldown {
    left: 80%;
    bottom: -130px;
    height: 50px;
  }
  .scrolldown span {
    left: 43px;
    top: -15px;
    font-size: 0.5em;
    letter-spacing: 0.05em;
  }
  .scrolldown span::after {
    top: 54px;
    left: 37px;
    width: 1px;
    height: 30px;
  }

  /* ------------------------------ コンセプト ------------------------------ */
  .concept-container {
    margin-top: -90px;
    margin-right: 0;
    padding: 32px 0;
  }
  .concept-container img {
    width: 70%;
  }
  .concept-container p {
    font-size: 0.6em;
    margin: 16px;
  }

  /* ------------------------------ 『椿』とは ------------------------------ */
  .overview-container {
    padding-bottom: 210px;
  }
  .overview-container img {
    height: 240px;
  }
  .overview-container__inner {
    top: 70%;
    left: 50%;
    padding: 15px;
    min-width: 320px;
    transform: translate(-50%, -50%);
  }
  .overview-container__inner p {
    font-size: 0.5em;
  }
  .overview-container__inner a {
    margin: 10px 65px 0;
    padding: 10px 0;
    font-size: 16px;
  }

  /* ------------------------------ 『椿』のステップアップシステム ------------------------------ */
  .stepup-container {
    margin-right: 0;
    margin-top: -80px;
  }
  .stepup-container p {
    margin: 8px 0;
  }
  .stepup-container__inner {
    flex-direction: column;
    padding: 10px 20px;
  }
  .stepup-container__explanatory {
    font-size: 0.65em;
  }

  .step-item img {
    width: 80%;
    margin: 0 auto;
  }

  .step-label {
    font-size: 1.3em;
  }

  .step-title {
    font-size: 1.5em;
    margin: 5px 0 10px 0;
  }

  .step-description {
    font-size: 0.6em;
  }

  /* ------------------------------ ニュース ------------------------------ */
  .news-container {
    margin: 0 16px;
  }
  .news-container ul li {
    display: block;
    margin: 32px 0;
    font-size: 0.65em;
  }
  .news-container a {
    width: 70%;
    padding: 10px 0;
    font-size: 16px;
  }

  /* ------------------------------ SHOP・SNS ------------------------------ */
  .shop-container {
    margin: 0 32px;
  }

  /* ------------------------------ ACCESS ------------------------------ */
  .iframe-wrap {
    padding-top: 65%;
  }

  /* ------------------------------ CONTACT ------------------------------ */
  form {
    width: 80%;
    font-size: 0.6em;
  }

  .required-note {
    font-size: 0.75rem;
  }

  /* ------------------------------ CORPORATE OVERVIEW ------------------------------ */
  #corporate-overview {
    margin: 0 16px;
  }

  table {
    font-size: 0.5em;
  }
}
/*@media screen and (min-width:768px) and (max-width:1024px) {
    .footer-logo img {
        width: 40%;
    }
}*/
