@charset "utf-8";
/* CSS Document */

:root {
  /* カラー変数定義 */
  --color-primary-green: #3b5044;
  --color-primary-gold: #a0854d;
  --color-secondary-orange: #f5a500;
  --color-accent-yellow: #dae000;
  --color-black: #000000;
  --color-white: #ffffff;
  --color-white-short: #fff;
  --color-border-gray: #dddddd;
  --color-orange-light: rgba(223, 150, 13, 0.3);
  --color-red: #ff0000;

  /* 画像から取得したカラー値 */
  --color-gradient-gold: #bf9e5c;
  --color-gradient-green: #3b5044;

  /* グラデーション定義 */
  --gradient-primary: linear-gradient(
    90deg,
    var(--color-primary-green) 0%,
    var(--color-gradient-gold) 79%
  );
  --gradient-primary-vertical: linear-gradient(
    180deg,
    var(--color-gradient-gold) 0%,
    var(--color-gradient-green) 100%
  );
  --gradient-primary-diagonal: linear-gradient(
    135deg,
    var(--color-gradient-gold) 0%,
    var(--color-gradient-green) 100%
  );
}

.page-corporate {
  background-color: var(--color-white);
  overflow-x: clip;
}

.page-corporate__inner {
  max-width: 85rem;
  margin-inline: auto;
  padding-inline: 2.5rem;
}

@media screen and (max-width: 640px) {
  .page-corporate__inner {
    padding-inline: 1.5rem;
  }
}

/* corporate-section-title.css */
.corporate-section-title {
  font-size: 3.2rem;
  color: var(--color-primary-gold);
  font-weight: 500;
  line-height: 1.5;
}

@media screen and (max-width: 640px) {
  .pc-only {
    display: none;
  }
  
  .corporate-section-title {
    font-size: 2rem;
  }
}

.corporate-section-title.corporate-section-title--sub {
  position: relative;
  width: fit-content;
  margin-inline: auto;
}

.corporate-section-title.corporate-section-title--sub::before,
.corporate-section-title.corporate-section-title--sub::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 6rem;
  height: 1px;
  background: var(--gradient-primary);
}

.corporate-section-title.corporate-section-title--sub::before {
  left: -7.6rem;
}

.corporate-section-title.corporate-section-title--sub::after {
  right: -7.6rem;
}

/* #topmain
----------------------------------------- */

.page-corporate__top {
  width: 100%;
  overflow: hidden;
  height: 26rem;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0px !important;
  position: relative;
  background-image: url("../images/btob/btob_top.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.page-corporate__top-title {
  color: var(--color-primary-green);
  text-align: center;
  font-size: 2.8rem;
  font-weight: 400;
  line-height: 1.5;
  width: 80rem;
  padding-block: 2.8rem;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0) 0%,
    rgba(255, 255, 255, 0.9) 50%,
    rgba(255, 255, 255, 0) 100%
  );
  margin-bottom: 0;
}

@media screen and (max-width: 640px) {
  .page-corporate__top-title {
    font-size: 2rem;
    width: 100%;
  }
}

/* partner-message
----------------------------------------- */
/* partner-message.css */
.page-corporate .partner-message {
  text-align: center;
}

.page-corporate .partner-message__img-wrap {
  aspect-ratio: 1440/209;
  width: 100%;
}

.page-corporate .partner-message__img-wrap img {
  object-fit: cover;
  height: 100%;
}

.page-corporate .partner-message__title {
  text-align: center;
  margin-top: -6.6rem;
}

.page-corporate .partner-message__text-wrap {
  margin-top: 4rem;
  display: grid;
  gap: 3.2rem;
}

.page-corporate .partner-message__text {
  font-size: 1.6rem;
  line-height: 1.8;
}

@media screen and (max-width: 640px) {
  .page-corporate .partner-message__title {
    margin-top: -1.6rem;
  }
  .page-corporate .partner-message__text {
    font-size: 1.5rem;
  }
}

/* reason.css */
.page-corporate .reason {
  margin-top: 8rem;
}

.page-corporate .reason__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3.4rem 3rem;
  margin-top: 4rem;
}

.page-corporate .reason__item {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
}

.page-corporate .reason__image {
  aspect-ratio: 130/130;
  max-width: 13rem;
  position: relative;
  flex-shrink: 0;
}

.page-corporate .reason__image img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 50%;
}

.page-corporate .reason__image::before {
  content: "";
  position: absolute;
  top: 0.8rem;
  right: -5.5rem;
  width: 8.7rem;
  height: 5.4rem;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* 各番号の葉っぱ差し替え（SVGが番号ごとに異なる前提） */
.page-corporate .reason__item:nth-child(1) .reason__image::before {
  background-image: url("../images/btob/leaf_icon01.webp");
}
.page-corporate .reason__item:nth-child(2) .reason__image::before {
  background-image: url("../images/btob/leaf_icon02.webp");
}
.page-corporate .reason__item:nth-child(3) .reason__image::before {
  background-image: url("../images/btob/leaf_icon03.webp");
}
.page-corporate .reason__item:nth-child(4) .reason__image::before {
  background-image: url("../images/btob/leaf_icon04.webp");
}
.page-corporate .reason__item:nth-child(5) .reason__image::before {
  background-image: url("../images/btob/leaf_icon05.webp");
}
.page-corporate .reason__item:nth-child(6) .reason__image::before {
  background-image: url("../images/btob/leaf_icon06.webp");
}

.page-corporate .reason__text {
  font-size: 1.6rem;
  font-weight: 400;
  color: #000;
  line-height: 1.5;
  padding-top: 5.4rem;
}

/* SP（スマホ）対応 */
@media screen and (max-width: 640px) {
  .page-corporate .reason__list {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .page-corporate .reason__text {
    font-size: 1.5rem;
  }
}

/* product-feature.css */
.page-corporate .product-feature {
  margin-top: 13.5rem;
}

.page-corporate .product-feature__top-wrap {
  position: relative;
  width: 100%;
  height: 18rem;
  background: url("../images/btob/main_products.webp") no-repeat center / cover;
  z-index: -1;
}
.page-corporate .product-feature__title {
  display: inline-block;
  line-height: 1.5;
  padding-block: 0.5rem;
  text-align: center;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.45) 0%,
    rgba(255, 255, 255, 0.9) 50%,
    rgba(255, 255, 255, 0.45) 100%
  );
}

.page-corporate .product-feature__subtitle {
  text-align: center;
  margin-top: 10.5rem;
}

.page-corporate .product-feature__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4.4rem 10rem;
  margin-top: 4rem;
}

.page-corporate .product-feature__item img {
  width: 100%;
  height: auto;
  border-radius: 4px;
}

.page-corporate .product-feature__name {
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.5;
  margin-top: 2.4rem;
  color: var(--color-primary-green);
}

.page-corporate .product-feature__desc {
  font-size: 1.6rem;
  line-height: 1.5;
  font-weight: 400;
  color: var(--color-primary-green);
  margin-top: 0.4rem;
}

.page-corporate .product-feature__season-title {
  margin-top: 4rem;
}

/* SP対応 */
@media screen and (max-width: 640px) {
  .page-corporate .product-feature__list {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .page-corporate .product-feature__subtitle {
    font-size: 2rem;
  }

  .page-corporate .product-feature__name {
    font-size: 1.5rem;
  }

  .page-corporate .product-feature__desc {
    font-size: 1.4rem;
  }
}

/* support.css */
.page-corporate .support {
  margin-top: 15.4rem;
}

.page-corporate .support__title {
  text-align: left;
}

.page-corporate .support__content {
  display: flex;
  gap: 1.6rem;
  align-items: flex-end;
  margin-top: 0.4rem;
}

.support__text {
  width: 42.5rem;
  max-width: 100%;
}

.page-corporate .support__list {
  display: grid;
  gap: 1rem;
}

.page-corporate .support__item {
  position: relative;
  font-size: 1.6rem;
  line-height: 1.5;
  font-weight: 500;
  padding-left: 2.9rem;
}

.page-corporate .support__item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5rem;
  background-image: url("../images/btob/support_check.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  width: 1.7rem;
  height: 1.5rem;
}

.page-corporate .support__image {
  width: calc(80rem - (42.5rem + 1.6rem));
  max-width: 100%;
}

.page-corporate .support__image img {
  width: 100%;
  height: auto;
  display: block;
}

/* SP対応 */
@media screen and (max-width: 640px) {
  .page-corporate .support {
    margin-top: 6rem;
  }
  .page-corporate .support__content {
    flex-direction: column;
    align-items: flex-start;
    gap: 2.4rem;
  }

  .page-corporate .support__item {
    font-size: 1.5rem;
  }
  .support__text {
    width: 100%;
  }
  .page-corporate .support__image {
    width: 100%;
  }
}

/* case.css */
.page-corporate .case {
  margin-top: 10rem;
}

.page-corporate .case__list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3.4rem;
  margin-top: 4rem;
}

.page-corporate .case__item img {
  width: 100%;
  height: auto;
  aspect-ratio: 244/162;
  object-fit: cover;
}

.page-corporate .case__text {
  font-size: 1.6rem;
  line-height: 1.5;
  font-weight: 400;
  margin-top: 0.8rem;
  color: var(--color-primary-green);
}

.page-corporate .case__note {
  font-size: 1.6rem;
  line-height: 1.5;
  margin-top: 4rem;
  text-align: left;
}

.page-corporate .case__ashirai {
  margin-top: -2.4rem;
  z-index: -1;
  position: relative;
}

/* SP対応 */
@media screen and (max-width: 640px) {
  .page-corporate .case__list {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .page-corporate .case__text {
    font-size: 1.5rem;
  }

  .page-corporate .case__note {
    font-size: 1.3rem;
  }
}

/* sales.css */
.page-corporate .sales {
  margin-top: 10rem;
}

.page-corporate .sales__note {
  font-size: 1.6rem;
  line-height: 1.5;
  font-weight: 400;
  margin-top: 3.2rem;
  text-align: left;
}

.page-corporate .sales__title {
  margin-top: 10rem;
}
.page-corporate .sales__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 3.5rem 7rem;
  margin-top: 4rem;
}

.page-corporate .sales__item {
  background: #e1e5e2;
  padding: 3.6rem 2.4rem;
  font-size: 1.6rem;
  line-height: 1.5;
  font-weight: 500;
  display: grid;
  place-items: center;
}

/* SP対応 */
@media screen and (max-width: 640px) {
  .page-corporate .sales {
    margin-top: 6rem;
  }
  .page-corporate .sales__title {
    margin-top: 6rem;
  }
  .page-corporate .sales__list {
    grid-template-columns: 1fr;
    gap: 2.4rem;
  }

  .page-corporate .sales__item {
    padding: 1.6rem;
  }

  .page-corporate .sales__item {
    font-size: 1.4rem;
  }
}

/* flow.css */
.page-corporate .flow {
  margin-top: 10rem;
}

/* 画像は1枚。葉っぱは擬似要素で重ねる */
.page-corporate .flow__image {
  position: relative;
  width: 42rem;
  max-width: 100%;
  margin-inline: auto;
  margin-top: 4rem;
}

.page-corporate .flow__image picture,
.page-corporate .flow__image img {
  display: block;
  width: 100%;
  height: auto;
}

/* 左上の葉っぱ */
.page-corporate .flow__image::before {
  content: "";
  position: absolute;
  top: -3rem;
  left: -6rem;
  width: 7.2rem;
  height: 5.5rem;
  background: url("../images/btob/leaf_left.svg") no-repeat center / contain;
  pointer-events: none;
}

/* 右下の葉っぱ */
.page-corporate .flow__image::after {
  content: "";
  position: absolute;
  right: -8.7rem;
  bottom: -7.7rem;
  width: 11.2rem;
  height: 11.2rem;
  background: url("../images/btob/leaf_right.svg") no-repeat center / contain;
  pointer-events: none;
}

/* SP（max-width:640px） */
@media screen and (max-width: 640px) {
  .page-corporate .flow {
    margin-top: 6rem;
  }

  .page-corporate .flow__image {
    width: 100%;
  }

  .page-corporate .flow__image::before {
    top: -2rem;
    left: -5rem;
    width: 10rem;
    height: 4rem;
  }

  .page-corporate .flow__image::after {
    right: -3.9rem;
    bottom: -3.6rem;
    width: 10rem;
    height: 6rem;
  }
}

/* contact-form.css（PCファースト / BP: 640px） */
.page-corporate .contact {
  margin-block: 14.4rem 10rem;
}

.page-corporate .contact__lead {
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1.5;
  margin-top: 0.4rem;
  color: var(--color-primary-gold);
  text-align: left;
}

.page-corporate .contact__lead-mark {
  color: var(--color-red);
}

.page-corporate .contact-form {
  display: grid;
  grid-template-columns: 1fr;
  row-gap: 5.6rem;
  margin-top: 4rem;
  text-align: left;
  width: 70rem;
  max-width: 100%;
  margin-inline: auto;
}

/* ラベル */
.page-corporate .contact-form__label {
  font-size: 1.6rem;
  line-height: calc(24 / 16);
  color: var(--color-primary-green);
  font-weight: 400;
  width: fit-content;
}

.page-corporate .contact-form__label.contact-form__label--req {
  position: relative;
}

.page-corporate .contact-form__label.contact-form__label--req::after {
  content: "※";
  position: absolute;
  top: -0.1rem;
  right: -2rem;
  color: var(--color-red);
  font-size: 1.2rem;
  font-weight: 400;
  line-height: calc(18 / 12);
}

/* 行 - エラーメッセージに対応するため構造変更 */
.page-corporate .contact-form__row {
  display: grid;
  grid-column: 1 / -1;
  grid-template-columns: 18.8rem 1fr;
  align-items: start;
}

/* フィールド全体を包むラッパー */
.page-corporate .contact-form__field-wrapper {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

/* テキスト系 */
.page-corporate .contact-form__input,
.page-corporate .contact-form__textarea,
.page-corporate .contact-form__select {
  width: 100%;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: calc(24 / 16);
  padding: 1.1rem 1.4rem;
  border: none;
  border-radius: 0.5rem;
  background: #f8f8f8;
}

/* プレースホルダーの色設定 */
.page-corporate .contact-form__input::placeholder,
.page-corporate .contact-form__textarea::placeholder {
  color: #b7b7b7;
  font-weight: 400;
}

.page-corporate .contact-form__input:focus,
.page-corporate .contact-form__textarea:focus,
.page-corporate .contact-form__select:focus {
  outline: none;
  border-color: #df960d;
  box-shadow: 0 0 0 0.2rem rgba(223, 150, 13, 0.15);
}

/* テキストエリア */
.page-corporate .contact-form__textarea {
  min-height: 16rem;
  resize: vertical;
}

/* セレクト（▼は疑似要素で） - 強制的に色を適用 */
.page-corporate .contact-form__select {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  background-image: linear-gradient(45deg, transparent 50%, #b7b7b7 50%),
    linear-gradient(135deg, #b7b7b7 50%, transparent 50%),
    linear-gradient(to right, transparent, transparent) !important;
  background-position: calc(100% - 2.4rem) 50%, calc(100% - 1.6rem) 50%, 0 0 !important;
  background-size: 0.8rem 0.8rem, 0.8rem 0.8rem, 100% 100% !important;
  background-repeat: no-repeat !important;
  padding-right: 4.8rem !important;
  color: #b7b7b7 !important; /* 強制的に初期状態を #B7B7B7 に */
}

/* セレクトボックスのオプション個別制御 */
.page-corporate .contact-form__select option[value=""] {
  color: #b7b7b7 !important;
}

.page-corporate .contact-form__select option:not([value=""]) {
  color: #333333 !important;
}

/* JavaScript用のクラス - 最優先 */
.page-corporate .contact-form__select.placeholder-selected {
  color: #b7b7b7 !important;
}

.page-corporate .contact-form__select.option-selected {
  color: #333333 !important;
}

/* エラーメッセージのスタイル */
.page-corporate .contact-form span.error {
  color: var(--color-red);
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 1.4;
  display: block;
  margin-top: 0.4rem;
  grid-column: 2 / -1; /* エラーメッセージを右列に配置 */
}

/* フィールドとエラーのラッパー */
.page-corporate .contact-form .field-with-error {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.page-corporate .contact-form .field-with-error span.error {
  grid-column: auto; /* ラッパー内では通常のフロー */
}

.page-corporate .contact-form__radios {
  display: flex;
  gap: 4rem;
  font-size: 1.6rem;
}

.page-corporate .contact-form__radios label {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  cursor: pointer;
}

.page-corporate .contact-form__radios input[type="radio"] {
  width: 1.6rem;
  height: 1.6rem;
  accent-color: var(--color-primary-green);
  appearance: auto !important;
}

/* MW WP Formのラジオボタン専用スタイル */
.page-corporate .contact-form__radios .mwform-radio-field {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  cursor: pointer;
  margin: 0;
}

.page-corporate .contact-form__radios .mwform-radio-field label {
  display: inline-flex;
  align-items: center;
  gap: 0.8rem;
  cursor: pointer;
  margin: 0;
  font-size: inherit;
}

.page-corporate .contact-form__radios .mwform-radio-field input[type="radio"] {
  width: 1.6rem;
  height: 1.6rem;
  accent-color: var(--color-primary-green);
  appearance: auto !important;
  margin: 0;
}

.page-corporate .contact-form__radios .mwform-radio-field-text {
  font-size: 1.6rem;
  color: var(--color-primary-green);
  font-weight: 400;
}

/* 同意チェック */
.page-corporate .contact-form__agree {
  grid-column: 1 / -1;
  font-size: 1.6rem;
  font-weight: 400;
  line-height: 1.5;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.9rem;
  margin-top: 5.6rem;
}

.page-corporate .contact-form__agree input[type="checkbox"] {
  width: 1.6rem;
  height: 1.6rem;
  accent-color: var(--color-primary-green);
  appearance: auto !important;
}

/* 送信ボタン */
.page-corporate .contact-form__submit {
  grid-column: 1 / -1;
  margin-top: 2.4rem;
  text-align: center;
}

.page-corporate input,
.page-corporate textarea,
.page-corporate select {
  font-family: 'Noto Serif', "ヒラギノ明朝 ProN W3","HiraMinProN-W3","ヒラギノ明朝 ProN W6","HiraMinProN-W6","游明朝",Yu Mincho,"HG明朝E","ＭＳ Ｐ明朝","MS PMincho","MS 明朝",serif !important;
}

.page-corporate .contact-form__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.8rem;
  padding: 1.2rem 2.4rem;
  font-size: 1.6rem;
  border: 1px solid var(--color-primary-green);
  color: #fff;
  background: var(--color-primary-green);
  border-radius: 0.5rem;
  cursor: pointer;
  transition: transform 0.15s ease, opacity 0.15s ease;
}

.page-corporate .contact-form__btn:hover {
  opacity: 0.9;
  transform: translateY(-0.1rem);
}

/* --- SP: 640px以下 --- */
@media screen and (max-width: 640px) {
  .page-corporate .contact {
    margin-block: 6rem 6rem;
  }

  .page-corporate .contact-form {
    grid-template-columns: 1fr;
    row-gap: 1.6rem;
    width: 100%;
  }

  .page-corporate .contact-form__br {
    display: none;
  }

  .page-corporate .contact-form__label {
    padding-top: 0;
    font-size: 1.5rem;
  }

  .page-corporate .contact-form__row--inline {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .page-corporate .contact-form__row {
    grid-template-columns: 1fr;
    row-gap: 1.6rem;
  }

  .page-corporate .contact-form span.error {
    grid-column: 1 / -1;
  }

  .page-corporate .contact-form__textarea {
    min-height: 14rem;
  }

  .page-corporate .contact-form__btn {
    width: 100%;
  }

  .page-corporate .contact__lead {
    text-align: left;
  }

  .page-corporate .contact-form__agree {
    font-size: 1.4rem;
    margin-top: 1.6rem;
  }

  /* SP用エラーメッセージ */
  .page-corporate .contact-form span.error {
    font-size: 1.2rem;
  }

  /* SP用ラジオボタン */
  .page-corporate .contact-form__radios {
    gap: 2rem;
  }

  .page-corporate .contact-form__radios .mwform-radio-field-text {
    font-size: 1.5rem;
  }
  .page-corporate .contact-form__submit {
    margin-top: 3rem;
  }
}

.page-corporate .pp_wrap {
  position: relative;
  margin-top: 60px;
  padding: 35px 0 35px 50px;
  background: #ffffff;
  border: 1px solid #212121;
  width: 100%;
  height: 300px;
}

.page-corporate .privacy_policy {
  padding-right: 45px;
  height: calc(300px - 70px);
  overflow: auto;
  text-align: center;
  font-size: 1.4rem;
  line-height: 1.6;
}

.page-corporate .privacy_policy .child {
  display: inline-block;
}

.page-corporate .privacy_policy h3 {
  font-size: 2rem;
  text-align: center;
  font-weight: normal;
}

.page-corporate .privacy_policy h4 {
  font-size: 1.8rem;
  text-align: center;
  margin-top: 1em;
  font-weight: normal;
}
