/* FB charset */
@charset "utf-8";

/* 変数(カスタムプロパティ) */
:root {
  /* 例)グローバル変数 */
  --variable: value;

  /* カラー */
  --text-color: #333333;
  --gray2: #4C524C;
  --gray1: #9A9A9A;
  --white: #FFFFFF;
  --sub-color2: #DAE2DB;
  --sub-color1: #F0F5F0;
  --main-color: #73A776;
  --base-color: #FDF7F3;

  /* フォント */
  --ff-base: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo sans-serif;
  --ff-en: Arial, sans-serif;

  /* グリッドシステム カラム54:ガター32*/
  --col-width: 5.4;
  --col-gap: 3.2;
}

.box {
  /* 例)ローカル変数 */
  --variable: value;
  /* 変数の使用例 */
  background: var(--main-colors, yellow);
}

/* ============================
ベーススタイル
============================ */
html {
  /* ページ内リンクでアニメーションをかける */
  scroll-behavior: smooth;
    /* ベースのフォントサイズを定義（１rem=10px） 16px*62.5%=10px */
  font-size: 62.5%;
}

body {
  /* 全体フォント指定　Noto Sans */
  font-family: var(--ff-base);
  font-size: 1.4rem;
      /* 標準のフォントウェイト */
  font-weight: 400;
  /* 英語フォントだと行間１、５、日本語は1．７くらいがおすすめ */
  line-height: 1.7;
  color: var(--text-color);
}

a {
  color: var(--main-color);
  text-decoration: none;
}


/* ============================
  コンポーネント
============================ */
/* ボタン */
/* 基本 */
.c-btn {
  display: inline-block;
  width: 200px;
  height: 60px;
  border: 1px solid var(--gray2);
  background-color: var(--white);
  line-height: 60px;
  text-align: center;
  color: var(--text-color);
  font-family: var(--ff-en);
  font-size: 1.8rem;
  letter-spacing: 0.1em;
  position: relative;
  /* 後述の要素が上書きされる（スタックオーダー（重ね順））をコントロールするのがpositionプロパティ */
  /* isolationはスタックオーダーから抜けるプロパティisolateは分離する属性　テキストは抜けてないので上にいるが擬似要素beforeはZ-index-1で後ろに回る */
  isolation: isolate;
}

.c-btn::after {
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: var(--main-color);
  left: 0;
  top: 0;
  z-index: -1;
  transform: scaleY(0);
  /* デフォルトセンターセンター */
  transform-origin: center top;
  opacity: 0;
  transition: .3s;
}

.c-btn:hover {
  color: var(--white);
  border-color: var(--main-color);
}

.c-btn:hover::after {
  transform: scaleY(1);
  opacity: 1;
}

/* 白バージョン */
.c-btn.c-btn--white {
  border: 1px solid var(--white);
  background-color: rgba(255, 255, 255, .2);
  color: var(--white);
}

.c-btn.c-btn--white::after {
    /* 擬似要素自体を出てこなくする */
  content: none;
}

/* アクセントボタン */
.c-btn.c-btn--accent {
  border: none;
  background-color: var(--main-color);
  color: var(--white);
}

.c-btn.c-btn--icon::before {
  content: '';
  display: inline-block;
  width: 24px;
  height: 24px;
    /* 領域確認用 */
  background-color: var(--text-color);
  vertical-align: middle;
  margin-right: 8px;
  mask-repeat: no-repeat;
  mask-position: center center;
  mask-size: contain;
}

/* マウスオーバー時 アイコンの色（マスクなので背景色）を変える*/
.c-btn.c-btn--icon:hover::before {
  background-color: var(--white);
}

.c-btn.c-btn--iconOuterLink::before {
  mask-image: url(../img/common/icon-outerlink.svg);
}
/* カートアイコン付き */
.c-btn.c-btn--iconCart::before {
  mask-image: url(../img/common/icon-shopping-cart.svg);
}
/* 電話アイコン付き */
.c-btn.c-btn--iconPhone::before {
  mask-image: url(../img/common/icon-phone.svg);
}
/* 白ボタン */
.c-btn.c-btn--white.c-btn--icon::before {
  background-color: var(--white);
}
/* アクセントボタン */
.c-btn.c-btn--accent.c-btn--icon::before {
  background-color: var(--white);
}

/* 電話ボタン */
.c-btnPhone {
  background-color: var(--sub-color1);
  border-radius: 8px;
  padding: 16px 24px;
  color: #000;
  font-family: var(--ff-en);
  font-size: 1.8rem;
  letter-spacing: .1em;
}
/* 電話アイコン */
.c-btnPhone::before {
  content: '';
  display: inline-block;
  width: 24px;
  height: 24px;
  background-color: var(--main-color);
  vertical-align: middle;
  margin-right: 8px;
  mask: url(../img/common/icon-phone.svg) no-repeat center center / contain;
}

/* セクションタイトル 見出し */
.c-sectTitle {
  min-width: 327px;
  text-align: center;
  display: table;
  margin-left: auto;
  margin-right: auto;
}

.c-sectTitle__jp {
  font-size: 2.4rem;
  font-weight: 500;
  color: var(--main-color);
  letter-spacing: .1em;
  margin-bottom: 5px;
}

.c-sectTitle__en {
  font-family: var(--ff-en);
  font-size: 1.4rem;
  letter-spacing: .1em;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.c-sectTitle__en::before,
.c-sectTitle__en::after {
  content: '';
  display: block;
  width: 100px;
  height: 1px;
  background-color: var(--gray2);
}
/* セクションタイトル白バージョン */
.c-sectTitle.c-sectTitle--white .c-sectTitle__jp {
  color: var(--white);
}

.c-sectTitle.c-sectTitle--white .c-sectTitle__en {
  color: var(--white);
}

.c-sectTitle.c-sectTitle--white .c-sectTitle__en::before,
.c-sectTitle.c-sectTitle--white .c-sectTitle__en::after {
  background-color: var(--white);
}

/* 見出しA */
.c-headingA {
  font-size: 2.2rem;
  font-weight: 500;
  color: var(--text-color);
  position: relative;
  text-align: center;
  padding-bottom: 10px;
}
/* 見出しA下線 */
.c-headingA::after {
  content: '';
  position: absolute;
  width: 100px;
  height: 2px;
  background-color: var(--text-color);
  left: 50%;
  bottom: 0;
  /* transform: translateX(-50%); */
  translate: -50% 0;
}
/* PC状態の時は左寄せの設定 */
@media screen and (min-width: 768px) {
  .c-headingA {
    text-align: start;
  }

  .c-headingA::after {
    left: 0;
    translate: 0 0;
  }
}

/* 見出しB */
.c-headingB {
  font-size: 1.5rem;
  font-weight: 500;
  border-top: 1px solid var(--sub-color2);
  border-bottom: 3px solid var(--sub-color2);
  padding: 12px 0;
}

/* オンラインショップ */
.c-onlineShop {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  height: 280px;
  gap: 40px;
  background: url(../img/common/online-shop.webp) no-repeat center center / cover;
  position: relative;
  isolation: isolate;
}

.c-onlineShop::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(115, 167, 118, .32);
  backdrop-filter: blur(10px);
  z-index: -1;
}

/* ページタイトル */
    /* 文字部分 */
.c-pageTitle__heading {
  background-color: var(--sub-color1);
  height: 100px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.c-pageTitle__headingText {
  background-color: var(--white);
  width: 200px;
  height: 60px;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 2rem;
  font-weight: 400;
  font-family: var(--ff-en);
  letter-spacing: .1em;
}
    /* 画像部分 */
.c-pageTitle__img {
  height: 120px;
}

.c-pageTitle__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* PC状態の時は画像大きめの設定 */
@media screen and (min-width: 768px) {
  .c-pageTitle__heading {
    height: 180px;
  }

  .c-pageTitle__headingText {
    width: 340px;
    height: 140px;
    font-size: 3.4rem;
  }

  .c-pageTitle__img {
    height: 400px;
  }
}

/* リードテキスト */
.c-sectLead {
  font-size: 1.5rem;
  text-align: center;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

.c-sectLead p:not(:last-child) {
  margin-bottom: .8rem;
}

/* ============================
  レイアウト
============================ */
body {
  padding-top: 70px;
}

/* ＝＝＝＝ヘッダー＝＝＝ */
/* ヘッダー 箱*/
.l-header {
  background-color: var(--white);
  height: 70px;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding-left: 24px;
  padding-right: 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 99999;
}

/* ヘッダーのロゴ */
.l-header__logo {
  width: 140px;
    /* 画面幅を縮めても小さくならないようにする */
  flex-shrink: 0;
}
/* ヘッダーのナブボタン（３本線）の箱*/
.l-header__navBtn {
  width: 44px;
  height: 44px;
    /* ボタンの装飾を取り払う  all:unset; で術tのプロパティを取り払うことも可能*/
  appearance: none;
  border: none;
  background: none;
  /* 全てのプロパティの値を破棄する */
  /* all: unset; */
  position: relative;
}
/* ボタン３本線 */
/* 真ん中 */
.l-header__navBtn span,
/* 上 */
.l-header__navBtn::before,
/* 下 */
.l-header__navBtn::after {
  content: '';
  background-color: var(--main-color);
  width: 24px;
  height: 2px;
  display: block;
  position: absolute;
  /* アブソリュートした上で全部中央寄せ */
  top: 50%;
  left: 50%;
  translate: -50% -50%;
}
/* 重なってる線２pxを上下に7pxずつずらす */
.l-header__navBtn::before {
  top: calc(50% - 9px);
}

.l-header__navBtn::after {
  top: calc(50% + 9px);
}


.l-header__nav {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--main-color);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  animation: fadeIn 1s ease forwards;

  /*TODO: あとで消す*/
  /* display: none; */
}

/* 閉じるボタンSP用 のbutton */
.l-header__navClose {
    /* 右上での位置調整 */
  position: absolute;
  right: 16px;
  top: 16px;
  width: 44px;
  height: 44px;
    /* スタイルリセット */
  appearance: none;
  border: none;
  background: none;
}

.l-header__navClose::before,
.l-header__navClose::after {
  content: '';
  width: 20px;
  height: 2px;
  background-color: var(--white);
  position: absolute;
  left: 50%;
  top: 50%;
  translate: -50% -50%;
}

.l-header__navClose::before {
  rotate: -45deg;
}
/* ×の線を斜めに回転 */
.l-header__navClose::after {
  rotate: 45deg;
}
/* ×の線を反対の斜めに回転 */
.l-header__navLogo {
  width: 110px;
  margin-bottom: 16px;
}

.l-header__navList {
  list-style: none;
  margin: 0;
  margin-bottom: 40px;
  padding: 0;
  display: flex;
    /* spではカラム、PCでrow */
  flex-direction: column;
}

.l-header__navItem a {
  display: block;
  padding-top: 12px;
  padding-bottom: 12px;
  color: var(--white);
  text-align: center;
}
/* 改行用 */
.l-header__navItemEn,
.l-header__navItemJp {
  display: block;
}

.l-header__navItemEn {
  font-family: var(--ff-en);
  font-size: 1.6rem;
  letter-spacing: .1em;
    /* 大文字に変換 */
  text-transform: uppercase;
}

.l-header__navItemJp {
  font-size: 1.2rem;
}
/* PCボタン（sp時） */
.l-header__navOnlineShopPc {
  display: none;
}



/* PC状態 */
@media screen and (min-width: 1050px) {

  .l-header {
    padding-left: 16px;
    padding-right: 0;
  }
  /* ボタンもsp時以外いらないので消す */
  .l-header__navBtn {
    display: none;
  }

  .l-header__nav {
    position: static;
    width: auto;
    background-color: transparent;
    flex-direction: row;
    justify-content: flex-end;
    align-items: stretch;
  }

  .l-header__navClose {
    display: none;
  }

  .l-header__navLogo {
    display: none;
  }
  /* ナブリストを横並び */
  .l-header__navList {
    margin-bottom: 0;
    flex-direction: row;
  }

  .l-header__navItem {
    width: 140px;
  }

  /* ナブリストの文字色変更および行間 */
  .l-header__navItem a {
    color: var(--text-color);
    padding-top: 0;
    padding-bottom: 0;
    height: 100%;
    display: flex;
    justify-content: center;
    flex-direction: column;
  }

  .l-header__navItemJp {
    color: var(--main-color);
  }
  /* PC用のオンラインショップボタン出す */
  .l-header__navOnlineShopPc {
    display: block;
    height: 100%;
    line-height: 70px;
  }
  /* sp用のオンラインボタン消す */
  .l-header__navOnlineShopSp {
    display: none;
  }
}











/* ＝＝＝＝ヘッダーここまで＝＝＝ */

/* ====フッター＝＝＝＝ */
.l-footer__nav {
  background-color: var(--sub-color1);
}

.l-footer__navList {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  list-style: none;
}

.l-footer__navItem {
  text-align: center;
  border-bottom: 1px solid var(--sub-color2);
}
/* 最後の段からは枠線除外 */
.l-footer__navItem:last-child {
  border-bottom: none;
}
/* ナブリスト行間とフォント */
.l-footer__navItem a {
  display: block;
  padding-top: 10px;
  padding-bottom: 10px;
  font-size: 2rem;
  font-family: var(--ff-en);
  text-transform: uppercase;
  letter-spacing: .1em;
  line-height: 1;
}

.l-footer__navLink--outer::after {
  content: '';
  display: inline-block;
  margin-left: 10px;
  width: 24px;
  height: 24px;
  background-color: var(--main-color);
  mask: url(../img/common/icon-outerlink.svg) no-repeat center center / contain;
  vertical-align: middle;
  margin-top: -5px;
}

.l-footer__brand {
  background-color: var(--gray2);
  padding-top: 45px;
  padding-bottom: 10px;
}

.l-footer__brandLogo {
  width: 230px;
  margin: 0 auto 20px;
}

.l-footer__copyright {
  display: block;
  text-align: center;
  color: var(--white);
  font-family: var(--ff-en);
  font-size: 1.2rem;
}

@media screen and (min-width: 768px) {
  .l-footer__nav {
    background-color: var(--gray2);
    padding-top: 16px;
  }

  .l-footer__navList {
    flex-direction: row;
    justify-content: center;
  }

  .l-footer__navItem {
    border-bottom: none;
  }

  .l-footer__navItem:not(:first-child) {
    margin-left: 24px;
  }

  .l-footer__navItem a {
    color: var(--white);
    font-size: 1.4rem;
  }

  .l-footer__navLink--outer::after {
    width: 14px;
    height: 14px;
    margin-left: 8px;
    background-color: var(--white);
  }
}

/* グリッドシステム */
.l-columns {
  display: flex;
  column-gap: calc(var(--col-gap) * 1%);
  /* 折り返しできるように */
  flex-wrap: wrap;
}

/* 中央寄せモディファイや */
.l-columns.l-columns--center {
  justify-content: center;
}
/* 左寄せ */
.l-columns.l-columns--start {
  justify-content: flex-start;
}
/* 　右寄せ */
.l-columns.l-columns--end {
  justify-content: flex-end;
}
/* 領域確認用 */
/* [class*=l-columns__] {
  border: 1px solid gold;
  background: rgba(255, 255, 0, .4);
} */

.l-columns>* {
  width: 100%;
}

.l-columns__col1 {
  width: calc(var(--col-width) * 1%);
}

.l-columns__col2 {
  width: calc(var(--col-width) * 2% + var(--col-gap) * 1%);
}

.l-columns__col3 {
  width: calc(var(--col-width) * 3% + var(--col-gap) * 2%);
}

.l-columns__col4 {
  width: calc(var(--col-width) * 4% + var(--col-gap) * 3%);
}

.l-columns__col5 {
  width: calc(var(--col-width) * 5% + var(--col-gap) * 4%);
}

.l-columns__col6 {
  width: calc(var(--col-width) * 6% + var(--col-gap) * 5%);
}

.l-columns__col7 {
  width: calc(var(--col-width) * 7% + var(--col-gap) * 6%);
}

.l-columns__col8 {
  width: calc(var(--col-width) * 8% + var(--col-gap) * 7%);
}

.l-columns__col9 {
  width: calc(var(--col-width) * 9% + var(--col-gap) * 8%);
}

.l-columns__col10 {
  width: calc(var(--col-width) * 10% + var(--col-gap) * 9%);
}

.l-columns__col11 {
  width: calc(var(--col-width) * 11% + var(--col-gap) * 10%);
}

.l-columns__col12 {
  width: calc(var(--col-width) * 12% + var(--col-gap) * 11%);
}

@media screen and (min-width: 768px) {
      /* 中央寄せモディファイヤPC */
  .l-columns.l-columns--center-pc {
    justify-content: center;
  }
/* 左寄せ */
  .l-columns.l-columns--start-pc {
    justify-content: flex-start;
  }
/* 　右寄せ */
  .l-columns.l-columns--end {
    justify-content: flex-end;
  }

  .l-columns__col1-pc {
    width: calc(var(--col-width) * 1%);
  }

  .l-columns__col2-pc {
    width: calc(var(--col-width) * 2% + var(--col-gap) * 1%);
  }

  .l-columns__col3-pc {
    width: calc(var(--col-width) * 3% + var(--col-gap) * 2%);
  }

  .l-columns__col4-pc {
    width: calc(var(--col-width) * 4% + var(--col-gap) * 3%);
  }

  .l-columns__col5-pc {
    width: calc(var(--col-width) * 5% + var(--col-gap) * 4%);
  }

  .l-columns__col6-pc {
    width: calc(var(--col-width) * 6% + var(--col-gap) * 5%);
  }

  .l-columns__col7-pc {
    width: calc(var(--col-width) * 7% + var(--col-gap) * 6%);
  }

  .l-columns__col8-pc {
    width: calc(var(--col-width) * 8% + var(--col-gap) * 7%);
  }

  .l-columns__col9-pc {
    width: calc(var(--col-width) * 9% + var(--col-gap) * 8%);
  }

  .l-columns__col10-pc {
    width: calc(var(--col-width) * 10% + var(--col-gap) * 9%);
  }

  .l-columns__col11-pc {
    width: calc(var(--col-width) * 11% + var(--col-gap) * 10%);
  }

  .l-columns__col12-pc {
    width: calc(var(--col-width) * 12% + var(--col-gap) * 11%);
  }
}


/* コンテナ */
.l-container {
  padding-right: 24px;
  padding-left: 24px;
  /* 1160px + 24px + 24px = 1208px */
  max-width: 1208px;
  margin-right: auto;
  margin-left: auto;
}

/* ============================
  プロジェクト
============================ */
/* TOPページ */
/* MVの箱 */
.p-topMv {
  height: 250px;
}
/* トップページ＞MV画像 */
.p-topMv img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media screen and (min-width: 768px) {
  .p-topMv {
    height: calc(100vh - 70px);
  }
}
/* トップページ＞コンセプト */
.p-topConcept {
  padding-top: 64px;
  padding-bottom: 64px;
}
/* セクションタイトル下余白 */
.p-topConcept .c-sectTitle {
  margin-bottom: 56px;
}
/* コンセプトの文章とボタンの間の余白　フォントサイズ */
.p-topConcept__text {
  margin-bottom: 32px;
  font-size: 1.5rem;
}
/* 文字感の余白 */
.p-topConcept__text p:not(:first-child) {
  margin-top: .8rem;
}
/* sp状態でbrを無効化 */
.p-topConcept__text p br {
  display: none;
}
/* コンセプトボタンの文字中央寄せ */
.p-topConcept__link {
  text-align: center;
}
/* PC */
@media screen and (min-width: 768px) {
  /*　コンセプト文章中央寄せ */
  .p-topConcept__text {
    text-align: center;
  }
  /* sp状態で無効化していたbrタグを有効化 */
  .p-topConcept__text p br {
    display: block;
  }
}

/* js用クラス */

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.js-none{
  display: none;
  transition: display 1s ease-in-out;
}

