@charset "UTF-8";

html,
body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong,
sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas,
details, figcaption, figure, footer, header, hgroup, menu, nav, section,
summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

body {
  line-height: 1;
  -webkit-text-size-adjust: 100%;
}

article, aside, details, figcaption, figure, footer, header, hgroup,
menu, nav, section {
  display: block;
}

nav ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: "";
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}

/* change colours to suit your needs */
ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

/* change colours to suit your needs */
mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title], dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* change border colour to suit your needs */
hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0;
}

input, select {
  vertical-align: middle;
}

html {
  scroll-behavior: smooth;
}

body {
  color: #333;
  line-height: 1.8;
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", "Meiryo", sans-serif;
}

body * {
  box-sizing: border-box;
  word-break: break-all;
}

p {
  margin-bottom: 1.5em;
}

p:last-child {
  margin-bottom: 0;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
}

img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

ul {
  list-style: none;
}

p a {
  color: #333;
  text-decoration: underline;
}

@media (hover: hover) {
  p a:hover {
    text-decoration: none;
  }
}

a {
  color: #333;
  text-decoration: none;
}

@media (hover: hover) {
  a:hover {
    text-decoration: none;
  }
}

@media screen and (max-width: 767px) {
  ._onlyPc {
    display: none;
  }
}

._onlySp {
  display: none;
}

@media screen and (max-width: 767px) {
  ._onlySp {
    display: block;
  }
}

._medium {
  font-weight: 500;
}

._bold {
  font-weight: 700;
}

._mt0 {
  margin-top: 0 !important;
}

._mb0 {
  margin-bottom: 0 !important;
}

/* --------------------------------------------
 * 　フェードイン
 * -------------------------------------------- */
._jsSmoothFadeIn {
  opacity: 0;
  transition: opacity ease 1.2s;
}

._jsSmoothFadeInFromBottom {
  opacity: 0;
  translate: 0 80px;
  transition: opacity ease 1.2s, translate ease 1.2s;
}

._jsSmoothFadeInFromTop {
  opacity: 0;
  translate: 0 -80px;
  transition: opacity ease 1.2s, translate ease 1.2s;
}

._jsSmoothFadeInFromLeft {
  opacity: 0;
  translate: -80px 0;
  transition: opacity ease 1.2s, translate ease 1.2s;
}

._jsSmoothFadeInFromRight {
  opacity: 0;
  translate: 80px 0;
  transition: opacity ease 1.2s, translate ease 1.2s;
}

._jsSharpFadeIn {
  overflow: hidden;
}

._jsSharpFadeIn__inner {
  translate: 0 100%;
}

._jsSharpFadeIn._animated ._jsSharpFadeIn__inner {
  -webkit-animation: sharpFadeIn ease 1.2s 0.2s both;
  animation: sharpFadeIn ease 1.2s 0.2s both;
}

@-webkit-keyframes sharpFadeIn {
  0% {
    translate: 0 100%;
  }

  100% {
    translate: 0;
  }
}

@keyframes sharpFadeIn {
  0% {
    translate: 0 100%;
  }

  100% {
    translate: 0;
  }
}

._jsSharpFadeInVertical {
  display: block;
  overflow: hidden;
}

._jsSharpFadeInVertical__inner {
  translate: -100% 0;
  display: block;
}

._jsSharpFadeInVertical._animated ._jsSharpFadeInVertical__inner {
  -webkit-animation: sharpFadeInVertical ease 1.2s 0.2s both;
  animation: sharpFadeInVertical ease 1.2s 0.2s both;
}

@-webkit-keyframes sharpFadeInVertical {
  0% {
    translate: -100% 0;
  }

  100% {
    translate: 0;
  }
}

@keyframes sharpFadeInVertical {
  0% {
    translate: -100% 0;
  }

  100% {
    translate: 0;
  }
}

/* --------------------------------------------
 * 　テキストアニメーション
 * -------------------------------------------- */
._textAnimation {
  opacity: 0;
}

._textAnimation span {
  display: inline-block;
  opacity: 0;
  transform: translateY(20px);
  transition: transform 0.8s ease, opacity 0.8s ease;
}

._textAnimation span.show {
  opacity: 1;
  transform: translateY(0);
}

.wp-editor ._jsSmoothFadeIn {
  opacity: 1;
  transition: none;
}

.wp-editor ._jsSmoothFadeInFromBottom {
  opacity: 1;
  translate: none;
  transition: none;
}

.wp-editor ._jsSmoothFadeInFromTop {
  opacity: 1;
  translate: none;
  transition: none;
}

.wp-editor ._jsSmoothFadeInFromLeft {
  opacity: 1;
  translate: none;
  transition: none;
}

.wp-editor ._jsSmoothFadeInFromRight {
  opacity: 1;
  translate: none;
  transition: none;
}

.wp-editor ._textAnimation {
  opacity: 1;
}

.wp-editor ._textAnimation span {
  opacity: 1;
  translate: none;
  transition: none;
}

/* --------------------------------------------
 * 　ボーダーアニメーション
 * -------------------------------------------- */
._jsBorderDrawerVertical {
  position: relative;
}

._jsBorderDrawerVertical__inner {
  position: absolute;
  top: 0;
  right: 0;
  width: 1px;
  height: 0px;
  background: #222;
  transition: height ease 0.8s;
}

._jsBorderDrawerHorizontal {
  position: relative;
}

._jsBorderDrawerHorizontal__inner {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1px;
  background: #222;
  transition: width ease 0.8s;
}

/* --------------------------------------------
 * 　基本ブロック幅
 * -------------------------------------------- */
.blContainer {
  width: 92%;
  max-width: 1200px;
  margin-right: auto;
  margin-left: auto;
      letter-spacing: 0;
  line-height: 22px;
}

.blContainer1040 {
  width: 92%;
  max-width: 1040px;
  margin-right: auto;
  margin-left: auto;
}

.blContainer960 {
  width: 92%;
  max-width: 960px;
  margin-right: auto;
  margin-left: auto;
}

/* --------------------------------------------
 * 　パンくず
 * -------------------------------------------- */
.breadcrumb {
  padding-top: 5px;
  padding-bottom: 3px;
  font-size: 0.75rem;
  color: #666666;
}

.breadcrumb._bgColorGreen {
  background: #F3F5EA;
}

/* --------------------------------------------
 * 　ページネーション
 * -------------------------------------------- */
.navigation.pagination {
  margin-top: 30px;
}

.navigation.pagination .nav-links .prev {
  border: none !important;
}

.navigation.pagination .nav-links .next {
  border: none !important;
}

.navigation.pagination .nav-links .current {
  padding: 6px 11px;
  background: #333;
  border: 1px solid #333;
  border-radius: 3px;
  color: #ffffff;
}

.navigation.pagination .nav-links a {
  padding: 6px 11px;
  border: 1px solid #333;
  border-radius: 3px;
}

.navigation.pagination .nav-links a:hover {
  background: #333;
  border: 1px solid #333;
  color: #ffffff;
  text-decoration: none;
}

/* --------------------------------------------
 * 　ボタン
 * -------------------------------------------- */
.button {
  display: inline-block;
  text-align: center;
  min-width: 160px;
  background: #008891;
  border: 1px solid #222;
  color: #fff;
  padding: 0.5em 1.2em;
  transition: all ease 0.3s;
}

@media (hover: hover) {
  .button:hover {
    text-decoration: none;
    background: #fff;
    color: #222;
  }
}

.buttonSquare {
  background: #fff;
  font-size: 1.125rem;
  font-weight: 500;
  padding: 2.5em;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 5px 5px 20px 0px rgba(0, 0, 0, 0.14);
  position: relative;
  transition: all ease 0.3s;
}

@media (hover: hover) {
  .buttonSquare:hover {
    box-shadow: 1px 1px 4px 0px rgba(0, 0, 0, 0.2);
  }
}

@media screen and (max-width: 1024px) {
  .buttonSquare {
    font-size: 1.0625rem;
    padding: 2em 1.5em;
  }
}

.buttonSquare::before {
  content: "";
  width: 18px;
  height: 12px;
  background: url("https://d2w53g1q050m78.cloudfront.net/hashimotomasayos/uploads/img/icon_arrow_right.svg") no-repeat center/contain;
  position: absolute;
  bottom: 1em;
  right: 1em;
}

/* --------------------------------------------
 * 　カートボタン
 * -------------------------------------------- */
.cartButton__soldout {
  display: block;
  width: 100%;
  background: #333;
  padding: 14px 14px 12px;
  text-align: center;
  color: #fff;
  border: none;
}

.cartButton__expectedArrival {
  margin-top: 5px;
  font-size: 0.75rem;
}

.cartButton__purchase input {
  display: block;
  width: 100%;
  background: #E0E721;
  border: 1px solid #222;
  padding: 23px 14px 20px;
  text-align: center;
  color: #222;
  transition: all ease 0.3s;
}

.cartButton__purchase a {
  display: block;
  width: 100%;
  background: #E0E721;
  border: 1px solid #222;
  padding: 23px 14px 20px;
  text-align: center;
  color: #222;
  transition: all ease 0.3s;
}

@media (hover: hover) {
  .cartButton__purchase input:hover {
    cursor: pointer;
    background: #fff;
    color: #222;
  }
}

@media (hover: hover) {
  .cartButton__purchase a:hover {
    cursor: pointer;
    background: #fff;
    color: #222;
  }
}

/* --------------------------------------------
 * 　マーカー見出し
 * -------------------------------------------- */
.lineMarker {
  display: inline-block;
  background: #E0E721;
  padding: 0.2em;
  line-height: 1.2;
}

/* --------------------------------------------
 * 　タブ
 * -------------------------------------------- */
.tabs__item._active {
  display: block;
}

.tabsContent__item {
  display: none;
}

.tabsContent__item._active {
  display: block;
}

/* --------------------------------------------
 * 　リスト
 * -------------------------------------------- */
.list {
  list-style: disc;
  margin-left: 20px;
}

.list__item {
  margin-bottom: 0.2em;
}

.circleBulletList {
  line-height: 2;
}

.circleBulletList__item {
  margin-bottom: 0.3em;
}

.circleBulletList__heading {
  display: flex;
  gap: 4px;
}

.circleBulletList__heading::before {
  content: "●";
  flex: 0 0 auto;
}

.circleBulletList__content {
  margin-bottom: 20px;
}

.circleBulletList__content a {
  text-decoration: underline;
}

/* --------------------------------------------
 * 　ヘッダー
 * -------------------------------------------- */
.home .header {
  background: #F5F2D0;
}

@media screen and (max-width: 1200px) {
  .home .header {
    padding-bottom: 0;
    height: 65px;
  }
}

.header {
  padding-bottom: 20px;
}

@media screen and (max-width: 1200px) {
  .header {
    padding-top: 5px;
    padding-bottom: 5px;
  }
}

.header__inner {
  display: flex;
}

@media screen and (max-width: 1200px) {
  .header__inner {
    align-items: center;
    height: 100%;
  }
}

.header__left {
  margin-right: auto;
}

@media screen and (max-width: 1305px) {
  .header__left {
    flex: 0 1 265px;
  }
}

.header__right {
  margin-left: 25px;
}

@media screen and (max-width: 1200px) {
  .header__right {
    display: none;
  }
}

.header__tagLine {
  margin-top: 7px;
  margin-bottom: 15px;
  font-size: 0.75rem;
  color: #555;
    letter-spacing: 0;
    line-height: 22px;
}

.header__tagLine br {
  display: none;
}

@media screen and (max-width: 1305px) {
  .header__tagLine br {
    display: block;
  }
}

@media screen and (max-width: 1200px) {
  .header__tagLine {
    margin-top: 0;
    margin-bottom: 0;
  }
}

@media screen and (max-width: 767px) {
  .header__tagLine {
    font-size: 0.625rem;
     line-height: 18px;
        padding-bottom: 7px;
  }
}

.header__logo {
  width: 240px;
}

@media screen and (max-width: 1200px) {
  .header__logo {
    width: 180px;
  }
}

.header__stickyBanner {
  position: fixed;
  top: 50%;
  right: 0;
  z-index: 7999;
  transform: translateY(-50%);
}

@media screen and (max-width: 1380px) {
  .header__stickyBanner {
    top: unset;
    bottom: 10px;
    right: 10px;
    transform: none;
    box-shadow: 5px 5px 20px 0px rgba(0, 0, 0, 0.14);
    transition: all ease 0.3s;
  }
}

@media screen and (max-width: 1380px) and (hover: hover) {
  .header__stickyBanner:hover {
    box-shadow: 1px 1px 4px 0px rgba(0, 0, 0, 0.2);
  }
}

@media screen and (max-width: 767px) {
  .header__stickyBanner {
    display: none;
  }
}

.headerMenu__buttons {
  margin-bottom: 10px;
}

.headerMenu__subMenu {
  margin-bottom: 6px;
}

.mainButtons {
  font-size: 0.875rem;
  display: flex;
  justify-content: flex-end;
  gap: 3px;
}

.mainButtons__item i {
  margin-right: 6px;
}

.mainButtons__item._line .mainButtons__link {
  background: #06C755;
  display: flex;
  align-items: center;
  gap: 5px;
  padding-left: 0.5em;
}

.mainButtons__item._line .mainButtons__link::before {
  content: "";
  width: 24px;
  height: 24px;
  background: url("https://d2w53g1q050m78.cloudfront.net/hashimotomasayos/uploads/img/icon_line.svg") no-repeat center/contain;
}

.mainButtons__link {
  display: block;
  background: #222;
  border-radius: 0 0 5px 5px;
  padding: 0.3em 1em 0.3em 0.7em;
  display: flex;
  align-items: center;
  gap: 5px;
  color: #fff;
  position: relative;
      line-height: 25px;
        letter-spacing: 0;
}

.mainButtons__link._cart::before {
  content: "";
  width: 18px;
  height: 18px;
  background: url(https://d2w53g1q050m78.cloudfront.net/hashimotomasayos/uploads/img/icon_cart_white.svg) no-repeat center/contain;
}

.mainButtons__link._account::before {
  content: "";
  width: 18px;
  height: 18px;
  background: url(https://d2w53g1q050m78.cloudfront.net/hashimotomasayos/uploads/img/icon_account_white.svg) no-repeat center/contain;
}

.mainButtons__link:hover {
  text-decoration: none;
}

.subMenu {
  font-size: 0.875rem;
  display: flex;
  justify-content: flex-end;
  gap: 20px;
      letter-spacing: 0;
    line-height: 25px;
}

.mainMenu {
  font-size: 0.9375rem;
  display: flex;
  justify-content: flex-end;
  font-weight: 500;
  gap: 24px;
        letter-spacing: 0;
        line-height: 27px;
}

@media screen and (max-width: 1305px) {
  .mainMenu {
    gap: 20px;
  }
}

.mainMenu__item:hover .menuChildren {
  visibility: visible;
  transform: translateY(0);
  opacity: 1;
}

.mainMenu__item:hover::before {
  right: 0;
}

.mainMenu__link {
  position: relative;
}

@media (hover: hover) {
  .mainMenu__link:hover::before {
    right: 0;
  }
}

.mainMenu__link::before {
  content: "";
  transition: all ease 0.25s;
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -2px;
  height: 2px;
  background: #090406;
  transform-origin: bottom;
}

.mainMenu__link._noLink::before {
  display: none;
}

.menuChildren {
  visibility: hidden;
  transform: translateY(12px);
  opacity: 0;
  position: absolute;
  background: #fff;
  padding: 10px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  z-index: 1000;
  transition: all ease 0.25s;
}

.menuChildren__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.menuChildren__item {
  margin: 0;
}

.menuChildren__link {
  display: block;
  color: #222;
  text-decoration: none;
  padding: 5px 10px;
}

@media (hover: hover) {
  .menuChildren__link:hover {
    background-color: #f0f0f0;
  }
}

/* --------------------------------------------
 * 　サブページヘッダー
 * -------------------------------------------- */
.subpageHeader {
  font-size: 1.5rem;
  font-weight: 700;
  padding-top: 2em;
  padding-right: 4%;
  padding-left: 4%;
  padding-bottom: 1.8em;
  background: #E0E721;
  text-align: center;
  color: #000000;
  letter-spacing: 0.04em;
}

@media screen and (max-width: 767px) {
  .subpageHeader {
    font-size: 1.25rem;
  }
}

/* --------------------------------------------
 * 　スマホメニュー
 * -------------------------------------------- */
.headerSp {
  display: none;
}

@media screen and (max-width: 1200px) {
  .headerSp {
    display: flex;
    gap: 10px;
    margin-right: 55px;
  }
}

.headerSp__cart {
  font-size: 1.25rem;
}
.headerSp__cart::before {
    content: "";
    display: block;
    width: 35px;
    height: 35px;
    background: url(https://d2w53g1q050m78.cloudfront.net/hashimotomasayos/uploads/img/icon_cart.svg) no-repeat center / contain;
}

.headerSp__account {
  font-size: 1.25rem;
}
.headerSp__account::before {
    content: "";
    display: block;
    width: 35px;
    height: 35px;
    background: url(https://d2w53g1q050m78.cloudfront.net/hashimotomasayos/uploads/img/icon_account.svg) no-repeat center / contain;
}

.spMenu {
  visibility: hidden;
  overflow-y: auto;
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 8000;
  background: #F5F2D0;
  transform: translateX(-105vw);
  transition: transform ease 0.25s;
  padding: 100px 40px 60px;
}

.spMenu__logo {
  max-width: 220px;
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 50px;
}

.spMenu__line {
  text-align: center;
  margin-bottom: 30px;
}

.spMenu__lineLink {
  box-shadow: 5px 5px 20px 0px rgba(0, 0, 0, 0.14);
  transition: all ease 0.25s;
}

@media (hover: hover) {
  .spMenu__lineLink:hover {
    box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.14);
  }
}

.spMenu__list {
  display: flex;
  flex-direction: column;
  max-width: 600px;
  margin-right: auto;
  margin-left: auto;
}

.spMenu__item {
  border-bottom: 1px solid #222;
}

.spMenu__item._open .spMenu__link._hasChildren::after {
  transform: rotate(0);
  opacity: 0;
}

.spMenu__link {
  display: block;
  padding: 1.2em 0.2em 1em;
      line-height: 28.8px;
        letter-spacing: 0;
}

.spMenu__link._hasChildren {
  position: relative;
}

.spMenu__link._hasChildren::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  width: 20px;
  height: 1px;
  background: #222;
}

.spMenu__link._hasChildren::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%);
  width: 20px;
  height: 1px;
  background: #222;
  transform: rotate(90deg);
  transition: all ease 0.25s;
}

@media (hover: hover) {
  .spMenu__link:hover {
    cursor: pointer;
  }
}

.spMenu__subList {
  max-width: 600px;
  margin-right: auto;
  margin-left: auto;
  margin-top: 50px;
  margin-bottom: 50px;
      line-height: 28.8px;
    letter-spacing: 0;
}

.spMenu__subItem {
  margin-bottom: 10px;
}

.spMenu__subItem:last-child {
  margin-bottom: 0;
}

.spMenu__subLink {
  display: block;
}

.spMenu__iconList {
  display: flex;
  justify-content: center;
  gap: 20px;
  text-align: center;
  font-size: 0.875rem;
}

.spMenu__iconList i {
  font-size: 1.75rem;
}

.spMenu__iconItem {
  flex: 0 0 80px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  position: relative;
}

.spMenu__iconItem._cart::before {
  content: "";
  display: block;
  width: 35px;
  height: 35px;
  background: url(https://d2w53g1q050m78.cloudfront.net/hashimotomasayos/uploads/img/icon_cart.svg) no-repeat center/contain;
}

.spMenu__iconItem._account::before {
  content: "";
  display: block;
  width: 35px;
  height: 35px;
  background: url(https://d2w53g1q050m78.cloudfront.net/hashimotomasayos/uploads/img/icon_account.svg) no-repeat center/contain;
}

.home .hamburger {
  top: 17px;
}

.hamburger {
  position: fixed;
  top: 18px;
  right: 4vw;
  width: 52px;
  height: 39px;
  z-index: 9999;
  transition: all ease 0.2s;
}

.hamburger:hover {
  cursor: pointer;
}

.hamburger span {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 5px;
  right: 5px;
  height: 3px;
  background: #101841;
  transition: all ease 0.2s;
}

.hamburger span::after {
  content: "";
  position: absolute;
  top: 10px;
  left: 0;
  right: 0;
  height: 3px;
  background: #101841;
  transition: all ease 0.2s;
}

.hamburger span::before {
  content: "";
  position: absolute;
  bottom: 10px;
  left: 0;
  right: 0;
  height: 3px;
  background: #101841;
  transition: all ease 0.2s;
}

#menuToggle {
  position: fixed;
  left: -200vw;
}

#menuToggle:focus-visible~.hamburger {
  box-shadow: 1px 1px 5px 0px rgba(0, 0, 0, 0.3);
}

#menuToggle:checked~.hamburger span {
  background: rgba(0, 0, 0, 0);
}

#menuToggle:checked~.hamburger span::after {
  transform: rotate(-45deg);
  top: 0;
}

#menuToggle:checked~.hamburger span::before {
  transform: rotate(45deg);
  bottom: 0;
}

#menuToggle:checked~.spMenu {
  visibility: visible;
  transform: translateX(0);
}

.spMenuChildren {
  overflow: hidden;
  height: 0em;
  transition: height ease 0.25s;
}

.spMenuChildren__list {
  list-style: none;
  margin-left: 20px;
}

.spMenuChildren__item {
  margin: 0;
}

.spMenuChildren__link {
  display: block;
  text-decoration: none;
  line-height: 1.5;
  padding-top: 0.25em;
  padding-bottom: 0.25em;
}

.spMenu__item._open .spMenuChildren {
  height: 11.5em;
}

/* --------------------------------------------
 * 　キービジュアル
 * -------------------------------------------- */
.keyVisual {
  background: #E0E721;
  overflow: hidden;
}

.keyVisual__inner {
  min-height: 720px;
  display: flex;
  gap: 50px;
}

@media screen and (max-width: 1200px) {
  .keyVisual__inner {
    min-height: 650px;
  }
}

@media screen and (max-width: 1024px) {
  .keyVisual__inner {
    min-height: 550px;
    gap: 25px;
  }
}

@media screen and (max-width: 767px) {
  .keyVisual__inner {
    min-height: 500px;
    gap: 0;
  }
}

@media screen and (max-width: 575px) {
  .keyVisual__inner {
    display: block;
    padding-top: 80px;
  }
}

.keyVisual__textArea {
  flex: 0 1.4 400px;
  margin-right: auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.keyVisual__imgArea {
  flex: 0 1 482px;
  align-self: flex-end;
  margin-right: 60px;
}

@media screen and (max-width: 1024px) {
  .keyVisual__imgArea {
    flex: 0 1 440px;
  }
}

@media screen and (max-width: 767px) {
  .keyVisual__imgArea {
    flex: 0 1 370px;
    margin-right: 0;
  }
}

@media screen and (max-width: 575px) {
  .keyVisual__imgArea {
    text-align: right;
    margin-top: -120px;
    margin-right: -35px;
  }
}

@media screen and (max-width: 575px) {
  .keyVisual__imgArea img {
    width: 260px;
  }
}

.keyVisual__logo {
  margin-bottom: 50px;
}

@media screen and (max-width: 1024px) {
  .keyVisual__logo {
    margin-bottom: 40px;
  }
}

@media screen and (max-width: 575px) {
  .keyVisual__logo {
    max-width: 80%;
  }
}

.keyVisual__catch {
  font-family: "Noto Serif JP", serif;
  font-size: 3.1875rem;
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 55px;
}

@media screen and (max-width: 1024px) {
  .keyVisual__catch {
    font-size: 2.375rem;
    margin-bottom: 40px;
  }
}

@media screen and (max-width: 767px) {
  .keyVisual__catch {
    font-size: 2rem;
    margin-bottom: 40px;
  }
}

/* --------------------------------------------
 * 　フロント
 * -------------------------------------------- */
.frontAbout {
  padding-top: 140px;
  padding-bottom: 70px;
}

@media screen and (max-width: 767px) {
  .frontAbout {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

.frontAbout__inner {
  margin-right: auto;
  margin-left: auto;
  display: flex;
  justify-content: center;
  gap: 90px;
}

@media screen and (max-width: 1024px) {
  .frontAbout__inner {
    gap: 70px;
  }
}

@media screen and (max-width: 767px) {
  .frontAbout__inner {
    gap: 40px;
  }
}

@media screen and (max-width: 575px) {
  .frontAbout__inner {
    gap: 25px;
  }
}

.frontAbout__heading {
  display: flex;
  gap: 5px;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: flex-start;
}

@media screen and (max-width: 767px) {
  .frontAbout__heading {
    justify-content: center;
    margin-bottom: 30px;
  }
}

.frontAbout__heading>span {
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.4;
  letter-spacing: 0.3em;
  writing-mode: vertical-rl;
}

@media screen and (max-width: 1024px) {
  .frontAbout__heading>span {
    font-size: 1.875rem;
    line-height: 2;
  }
}

@media screen and (max-width: 767px) {
  .frontAbout__heading>span {
    font-size: 1.625rem;
    line-height: 1.8;
  }
}

@media screen and (max-width: 575px) {
  .frontAbout__heading>span {
    font-size: 1.25rem;
  }
}

.frontAbout__body {
  margin-top: -0.7em;
}

.frontAbout__heading {
  font-size: 2.1875rem;
  font-weight: 700;
  margin-bottom: 10px;
}

@media screen and (max-width: 575px) {
  .frontAbout__heading {
    font-size: 1.75rem;
  }
}

.frontAbout__text {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 2.6;
}

@media screen and (max-width: 575px) {
  .frontAbout__text {
    font-size: 0.9375rem;
    line-height: 2.4;
  }

  .frontAbout__text br {
    display: none;
  }
}

.frontAbout__imgs {
  margin-top: -70px;
  display: flex;
  justify-content: space-between;
}

@media screen and (max-width: 1200px) {
  .frontAbout__imgs {
    margin-top: -55px;
  }
}

@media screen and (max-width: 1024px) {
  .frontAbout__imgs {
    margin-top: -20px;
  }
}

@media screen and (max-width: 767px) {
  .frontAbout__imgs {
    margin-top: 7px;
  }
}

.frontAbout__imgs img {
  max-width: 20vw;
}

@media screen and (max-width: 767px) {
  .frontAbout__imgs img {
    max-width: 37vw;
  }
}

.frontAbout__imgProduct {
  margin-top: -15px;
}

.frontMethod {
  background: #F3F5EA;
  padding-top: 120px;
  padding-bottom: 120px;
}

@media screen and (max-width: 767px) {
  .frontMethod {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

.frontMethod__inner {
  display: flex;
  align-items: center;
  gap: 110px;
}

@media screen and (max-width: 1305px) {
  .frontMethod__inner {
    gap: 60px;
  }
}

@media screen and (max-width: 1024px) {
  .frontMethod__inner {
    display: block;
  }
}

.frontMethod__header {
  flex: 1 1 300px;
}

@media screen and (max-width: 1305px) {
  .frontMethod__header {
    flex: 1 1 440px;
    margin-bottom: 40px;
  }
}

.frontMethod__body {
  flex: 1 1 790px;
}

@media screen and (max-width: 1305px) {
  .frontMethod__body {
    flex: 1 1 700px;
  }
}

.frontMethod__headingSub {
  font-size: 1.1875rem;
  font-weight: 500;
  margin-bottom: 30px;
}

.frontMethod__heading {
  font-size: 2.1875rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 10px;
}

.frontMethod__heading span {
  font-size: 4rem;
}

@media screen and (max-width: 575px) {
  .frontMethod__heading {
    font-size: 1.75rem;
  }

  .frontMethod__heading span {
    font-size: 3.5rem;
  }
}

.frontMethod__cards {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}

@media screen and (max-width: 1305px) {
  .frontMethod__cards {
    grid-template: repeat(2, 1fr)/repeat(6, 1fr);
    grid-template-areas: "a a b b c c" "d e e f f g";
  }
}

@media screen and (max-width: 767px) {
  .frontMethod__cards {
    grid-template: repeat(9, 1fr)/repeat(2, 1fr);
    grid-template-areas: "a x" "a b" "a b" "c b" "c d" "c d" "e d" "e y" "e y";
  }
}

.frontMethod__card {
  flex: 0 1 150px;
}

.frontMethod__card:first-child {
  background: #DCD3EA;
  transform: translateY(-20px);
}

@media screen and (max-width: 1305px) {
  .frontMethod__card:first-child {
    grid-area: a;
    transform: translateY(0);
  }
}

@media screen and (max-width: 767px) {
  .frontMethod__card:first-child {
    grid-area: a;
  }
}

.frontMethod__card:nth-child(2) {
  background: #D3DEEA;
  transform: translateY(20px);
}

@media screen and (max-width: 1305px) {
  .frontMethod__card:nth-child(2) {
    grid-area: b;
    transform: translateY(0);
  }
}

.frontMethod__card:nth-child(3) {
  background: #D3EAD4;
  transform: translateY(-20px);
}

@media screen and (max-width: 1305px) {
  .frontMethod__card:nth-child(3) {
    grid-area: c;
    transform: translateY(0);
  }
}

.frontMethod__card:nth-child(4) {
  background: #EAD3DE;
  transform: translateY(20px);
}

@media screen and (max-width: 1305px) {
  .frontMethod__card:nth-child(4) {
    grid-area: e;
    transform: translateY(0);
  }
}

@media screen and (max-width: 767px) {
  .frontMethod__card:nth-child(4) {
    grid-area: d;
  }
}

.frontMethod__card:nth-child(5) {
  background: #E9EAD3;
  transform: translateY(-20px);
}

@media screen and (max-width: 1305px) {
  .frontMethod__card:nth-child(5) {
    grid-area: f;
    transform: translateY(0);
  }
}

@media screen and (max-width: 767px) {
  .frontMethod__card:nth-child(5) {
    grid-area: e;
  }
}

.methodCards {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 12px;
}

@media screen and (max-width: 1305px) {
  .methodCards {
    grid-template: repeat(2, 1fr)/repeat(6, 1fr);
    grid-template-areas: "a a b b c c" "d e e f f g";
  }
}

@media screen and (max-width: 767px) {
  .methodCards {
    grid-template: repeat(9, 1fr)/repeat(2, 1fr);
    grid-template-areas: "a x" "a b" "a b" "c b" "c d" "c d" "e d" "e y" "e y";
  }
}

.methodCards__card {
  flex: 0 1 150px;
}

.methodCards__card:first-child {
  background: #DCD3EA;
  transform: translateY(-20px);
}

@media screen and (max-width: 1305px) {
  .methodCards__card:first-child {
    grid-area: a;
    transform: translateY(0);
  }
}

@media screen and (max-width: 767px) {
  .methodCards__card:first-child {
    grid-area: a;
  }
}

.methodCards__card:nth-child(2) {
  background: #D3DEEA;
  transform: translateY(20px);
}

@media screen and (max-width: 1305px) {
  .methodCards__card:nth-child(2) {
    grid-area: b;
    transform: translateY(0);
  }
}

.methodCards__card:nth-child(3) {
  background: #D3EAD4;
  transform: translateY(-20px);
}

@media screen and (max-width: 1305px) {
  .methodCards__card:nth-child(3) {
    grid-area: c;
    transform: translateY(0);
  }
}

.methodCards__card:nth-child(4) {
  background: #EAD3DE;
  transform: translateY(20px);
}

@media screen and (max-width: 1305px) {
  .methodCards__card:nth-child(4) {
    grid-area: e;
    transform: translateY(0);
  }
}

@media screen and (max-width: 767px) {
  .methodCards__card:nth-child(4) {
    grid-area: d;
  }
}

.methodCards__card:nth-child(5) {
  background: #E9EAD3;
  transform: translateY(-20px);
}

@media screen and (max-width: 1305px) {
  .methodCards__card:nth-child(5) {
    grid-area: f;
    transform: translateY(0);
  }
}

@media screen and (max-width: 767px) {
  .methodCards__card:nth-child(5) {
    grid-area: e;
  }
}

.methodCard {
  display: inline-block;
  transition: all ease 0.25s;
}

.methodCard__link {
  display: block;
  padding: 18px 16px 10px;
}

@media (hover: hover) {
  .methodCard__link:hover {
    text-decoration: none;
  }

  .methodCard__link:hover .methodCard__inner {
    background: transparent;
  }
}

.methodCard__inner {
  text-align: center;
  background: rgba(255, 255, 255, 0.53);
  padding: 25px 12px;
  transition: all ease 0.25s;
}

.methodCard__icon {
  margin-bottom: 10px;
}

.methodCard__text {
  font-size: 1.125rem;
  font-weight: 500;
}

.methodCard__arrow {
  text-align: center;
  padding: 5px;
  padding-bottom: 4px;
  transition: all ease 0.3s;
}

.methodCard__arrow img {
  vertical-align: middle;
}

.methodCardsV2 {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px;
}

@media screen and (max-width: 1024px) {
  .methodCardsV2 {
    gap: 30px;
  }
}

@media screen and (max-width: 767px) {
  .methodCardsV2 {
    gap: 15px;
  }
}

.methodCardsV2__card {
  flex: 0 0 calc((100% - 80px) / 5);
  height: 280px;
}

@media screen and (max-width: 1024px) {
  .methodCardsV2__card {
    flex: 0 0 calc((100% - 60px) / 3);
  }
}

@media screen and (max-width: 767px) {
  .methodCardsV2__card {
    flex: 0 0 calc((100% - 15px) / 2);
    height: 220px;
  }
}

.methodCardsV2__card:first-child {
  background: #DCD3EA;
}

.methodCardsV2__card:nth-child(2) {
  background: #D3DEEA;
}

.methodCardsV2__card:nth-child(3) {
  background: #D3EAD4;
}

.methodCardsV2__card:nth-child(4) {
  background: #EAD3DE;
}

.methodCardsV2__card:nth-child(5) {
  background: #E9EAD3;
}

.methodCardV2 {
  display: inline-block;
  transition: all ease 0.3s;
}

.methodCardV2__link {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 18px 16px 10px;
}

@media (hover: hover) {
  .methodCardV2__link:hover {
    text-decoration: none;
  }

  .methodCardV2__link:hover .methodCardV2__inner {
    background: transparent;
  }
}

.methodCardV2__inner {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  background: rgba(255, 255, 255, 0.53);
  padding: 25px 12px;
  transition: all ease 0.3s;
}

.methodCardV2__icon {
  margin-bottom: 10px;
}

.methodCardV2__text {
  font-size: 1.125rem;
  font-weight: 500;
}

.methodCardV2__arrow {
  text-align: center;
  padding: 5px;
  padding-bottom: 4px;
  transition: all ease 0.3s;
}

.methodCardV2__arrow img {
  vertical-align: middle;
}

.frontLine {
  background: #E9F1E9;
  padding-top: 100px;
  padding-bottom: 100px;
}

@media screen and (max-width: 767px) {
  .frontLine {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

.frontLine__inner {
  display: flex;
  align-items: center;
  gap: 70px;
}

@media screen and (max-width: 1024px) {
  .frontLine__inner {
    display: block;
  }
}

.frontLine__header {
  flex: 1 1 410px;
}

.frontLine__body {
  flex: 1 6 720px;
  line-height: 2.2;
}

@media screen and (max-width: 1024px) {
  .frontLine__body {
    margin-top: 30px;
  }
}

.frontLine__heading {
  font-size: 1.375rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 5px;
  margin-bottom: 30px;
}

@media screen and (max-width: 767px) {
  .frontLine__heading {
    font-size: 1.25rem;
  }
}

.frontLine__headingImg img {
  vertical-align: middle;
  margin-top: -4px;
}

.frontLine__catch {
  font-size: 1.8125rem;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 30px;
}

@media screen and (max-width: 575px) {
  .frontLine__catch {
    font-size: 1.4125rem;
  }
}

.frontLine__headingBottom {
  display: flex;
  align-items: center;
  gap: 30px;
  justify-content: space-between;
}

@media screen and (max-width: 1024px) {
  .frontLine__headingBottom {
    align-items: flex-start;
  }
}

@media screen and (max-width: 1024px) {
  .frontLine__sample {
    margin-top: -70px;
  }
}

@media screen and (max-width: 767px) {
  .frontLine__sample {
    margin-top: -20px;
  }
}

.frontJournal {
  background: #F3F5EA;
  padding-top: 90px;
  padding-bottom: 110px;
}

@media screen and (max-width: 767px) {
  .frontJournal {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

.frontJournal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

@media screen and (max-width: 1024px) {
  .frontJournal__header {
    display: block;
  }
}

.frontJournal__headerRight {
  font-size: 5.5rem;
  font-weight: 600;
  color: #EBEFDC;
  font-family: "Oswald", serif;
}

@media screen and (max-width: 1024px) {
  .frontJournal__headerRight {
    font-size: 4.125rem;
    margin-bottom: 30px;
  }
}

@media screen and (max-width: 1024px) {
  .frontJournal__headerRight {
    font-size: 2.625rem;
  }
}

.frontJournal__headingSub {
  font-size: 1.1875rem;
  font-weight: 500;
  margin-bottom: 20px;
}

.frontJournal__heading {
  font-size: 2.1875rem;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 10px;
}

.frontJournal__heading span {
  font-size: 4rem;
}

.columns2 {
  background: linear-gradient(to right, #92C0CD 50%, #E0E721 50%);
}

@media screen and (max-width: 767px) {
  .columns2 {
    background: none;
  }
}

.columns2__inner {
  display: flex;
}

@media screen and (max-width: 767px) {
  .columns2__inner {
    display: block;
    width: 100%;
  }
}

.columns2__inner>* {
  flex: 0 0 50%;
}

.frontLibrary {
  padding-top: 90px;
  padding-bottom: 90px;
  background: #92C0CD;
  position: relative;
}

@media screen and (max-width: 767px) {
  .frontLibrary {
    padding-top: 70px;
    padding-bottom: 70px;
    padding-right: 4%;
    padding-left: 4%;
  }
}

.frontLibrary__heading {
  position: absolute;
  top: 90px;
  left: 0;
  z-index: 20;
  font-size: 3rem;
  background: #fff;
  color: #222;
  line-height: 1.2;
  padding: 0.15em 0.1em;
  writing-mode: vertical-rl;
  letter-spacing: 0.1em;
  font-family: "Noto Serif JP", serif;
}

.frontLibrary__heading br {
  display: none;
}

@media screen and (max-width: 1024px) {
  .frontLibrary__heading {
    font-size: 2rem;
    left: -10px;
  }
}

@media screen and (max-width: 767px) {
  .frontLibrary__heading {
    left: 4%;
    font-size: 2.5erm;
  }

  .frontLibrary__heading br {
    display: block;
  }
}

.frontLibrary__img {
  position: absolute;
  bottom: 10px;
  left: -20px;
}

@media screen and (max-width: 767px) {
  .frontLibrary__img {
    width: 160px;
  }
}

.frontProduct {
  padding-top: 90px;
  padding-bottom: 90px;
  background: #E0E721;
  position: relative;
}

@media screen and (max-width: 767px) {
  .frontProduct {
    padding-top: 70px;
    padding-bottom: 70px;
    padding-right: 4%;
    padding-left: 4%;
  }
}

.frontProduct__heading {
  position: absolute;
  bottom: 90px;
  right: 0;
  z-index: 20;
  font-size: 3rem;
  background: #fff;
  color: #222;
  line-height: 1.2;
  padding: 0.15em 0.1em;
  writing-mode: vertical-rl;
  letter-spacing: 0.1em;
  font-family: "Noto Serif JP", serif;
}

.frontProduct__heading br {
  display: none;
}

@media screen and (max-width: 1024px) {
  .frontProduct__heading {
    font-size: 2.125rem;
    right: -10px;
  }
}

@media screen and (max-width: 767px) {
  .frontProduct__heading {
    right: 4%;
    font-size: 2.5erm;
  }

  .frontProduct__heading br {
    display: block;
  }
}

.frontProduct__img {
  position: absolute;
  top: 20px;
  right: 0;
}

.bannerBlock {
  position: relative;
  z-index: 10;
  text-align: center;
}

.bannerBlock__headingSub {
  font-size: 1.125rem;
  font-weight: 700;
  margin-bottom: 20px;
}

@media screen and (max-width: 1024px) {
  .bannerBlock__headingSub {
    font-size: 1rem;
  }
}

.bannerBlock__heading {
  font-size: 1.6875rem;
  font-weight: 700;
  margin-bottom: 40px;
}

.bannerBlock__heading br {
  display: none;
}

@media screen and (max-width: 767px) {
  .bannerBlock__heading br {
    display: block;
  }
}

@media screen and (max-width: 1024px) {
  .bannerBlock__heading {
    font-size: 1.3125rem;
  }
}

.bannerBlock__headingEn {
  font-size: 3.625rem;
  font-weight: 600;
  font-family: "Oswald", serif;
  line-height: 1.4;
  margin-bottom: 30px;
}

@media screen and (max-width: 1024px) {
  .bannerBlock__headingEn {
    font-size: 3rem;
    line-height: 1.2;
  }
}

.bannerBlock._library .bannerBlock__headingEn {
  color: #A1CAD6;
}

.bannerBlock._product .bannerBlock__headingEn {
  color: #EBF144;
}

.frontOtherLinks {
  padding-top: 90px;
  padding-bottom: 90px;
}

@media screen and (max-width: 767px) {
  .frontOtherLinks {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

.frontOtherLinks_bgColor {
  background: #E9F1E9;
}

.links {
  display: flex;
  flex-wrap: wrap;
  gap: 55px 80px;
}

@media screen and (max-width: 1024px) {
  .links {
    gap: 35px 40px;
  }
}

@media screen and (max-width: 767px) {
  .links {
    display: block;
  }
}

.links__item {
  flex: 1 1 calc((100% - 80px) / 2);
}

@media screen and (max-width: 1024px) {
  .links__item {
    flex: 1 1 calc((100% - 40px) / 2);
  }
}

@media screen and (max-width: 767px) {
  .links__item {
    margin-bottom: 25px;
  }

  .links__item:last-child {
    margin-bottom: 0;
  }
}

.frontProfile {
  background: #F3F5EA;
  padding-top: 90px;
  padding-bottom: 110px;
}

@media screen and (max-width: 767px) {
  .frontProfile {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

.frontProfile__heading {
  font-size: 2.1875rem;
  font-weight: 700;
  margin-bottom: 57px;
}

.frontProfile__heading span {
  font-size: 1.125rem;
}

@media screen and (max-width: 767px) {
  .frontProfile__heading {
    font-size: 1.625rem;
    margin-bottom: 30px;
  }

  .frontProfile__heading span {
    font-size: 1rem;
  }
}

.frontProfile__detail {
  margin-top: 100px;
  display: none;
  gap: 90px;
}

@media screen and (max-width: 1024px) {
  .frontProfile__detail {
    margin-top: 50px;
    gap: 45px;
  }
}

@media screen and (max-width: 575px) {
  .frontProfile__detail {
    margin-top: 30px;
  }
}

.frontProfile__detail._active {
  display: flex;
}

.frontProfile__tabs {
  flex: 0 0 190px;
}

@media screen and (max-width: 767px) {
  .frontProfile__tabs {
    display: none;
  }
}

.frontProfile__content {
  flex: 1 1 920px;
}

.frontProfile__tabsItem {
  background: #D7D7D7;
  text-align: center;
  font-size: 1.375rem;
  font-weight: 500;
  padding: 0.8em 1.2em;
  margin-bottom: 25px;
}

@media screen and (max-width: 1024px) {
  .frontProfile__tabsItem {
    font-size: 1.25rem;
  }
}

.frontProfile__tabsItem:last-child {
  margin-bottom: 0;
}

.frontProfile__tabsItem._active {
  background: #E0E721;
}

.frontProfile__tabsItem:hover {
  cursor: pointer;
}

.frontProfile__contentItem {
  line-height: 2.4;
}

.profileCard {
  display: flex;
  gap: 7%;
}

@media screen and (max-width: 1024px) {
  .profileCard {
    gap: 5%;
  }
}

@media screen and (max-width: 575px) {
  .profileCard {
    gap: 0;
  }
}

.profileCard__item {
  flex: 1 1 33%;
}

@media (hover: hover) {
  .profileCard__item:hover {
    cursor: pointer;
  }

  .profileCard__item:hover .profileCard__img {
    background: #d1d747;
  }
}

@media screen and (max-width: 575px) {
  .profileCard__item {
    border-right: 1px solid #ccc;
  }

  .profileCard__item:last-child {
    border-right: 1px solid transparent;
  }
}

.profileCard__heading {
  text-align: center;
  background: #222;
  font-size: 1.375rem;
  font-weight: 500;
  color: #fff;
  padding: 0.5em 1em;
}

@media screen and (max-width: 1024px) {
  .profileCard__heading {
    font-size: 1.25rem;
  }
}

@media screen and (max-width: 767px) {
  .profileCard__heading {
    font-size: 1rem;
  }
}

@media screen and (max-width: 575px) {
  .profileCard__heading {
    padding: 0.3em 0.3em;
    font-size: 0.9375rem;
  }
}

.profileCard__img {
  padding: 12%;
  background: #E0E721;
  transition: all ease 0.3s;
}

@media screen and (max-width: 575px) {
  .profileCard__img {
    padding: 0;
  }
}

.biography__item {
  display: flex;
  gap: 24px;
  margin-bottom: 20px;
}

.biography__item:last-child {
  margin-bottom: 0;
}

.biography__year {
  flex: 0 0 auto;
}

.bookBulletList__item {
  margin-bottom: 10px;
}

.frontSponsor {
  padding-top: 80px;
  padding-bottom: 80px;
}

@media screen and (max-width: 767px) {
  .frontSponsor {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

.frontSponsor__heading {
  font-size: 1.5rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 25px;
}

@media screen and (max-width: 767px) {
  .frontSponsor__heading {
    font-size: 1.25rem;
  }
}

/* --------------------------------------------
 * 　５つの力
 * -------------------------------------------- */
.pageMethod {
  padding-top: 80px;
  padding-bottom: 80px;
}

@media screen and (max-width: 767px) {
  .pageMethod {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

.pageMethod__heading {
  text-align: center;
  margin-bottom: 80px;
  font-size: 1.5rem;
  font-weight: 700;
}

.pageMethod__headingInner {
  display: inline-block;
  background: #222;
  padding: 0.2em;
  line-height: 1.2;
  color: #fff;
}

/* --------------------------------------------
 * 　健康ジャーナル
 * -------------------------------------------- */
@media screen and (max-width: 767px) {
  .blog .breadcrumb {
    background: #F3F5EA;
  }
}

@media screen and (max-width: 767px) {
  .category .breadcrumb {
    background: #F3F5EA;
  }
}

.pageJournal {
  padding-top: 70px;
  padding-bottom: 70px;
}

@media screen and (max-width: 767px) {
  .pageJournal {
    padding-top: 50px;
    padding-bottom: 50px;
    background: #F3F5EA;
  }
}

.blogList {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}

@media screen and (max-width: 1024px) {
  .blogList {
    gap: 20px;
  }
}

.blogList__item {
  flex: 0 0 calc((100% - 60px) / 3);
}

@media screen and (max-width: 1024px) {
  .blogList__item {
    flex: 0 0 calc((100% - 20px) / 2);
  }
}

.blogList__goArchive {
  text-align: center;
  margin-top: 40px;
}

@media (hover: hover) {
  .blogItem:hover .blogItem__thumbnail img {
    scale: 1.05;
  }
}

.blogItem__item {
  display: block;
  height: 100%;
  padding: 40px 40px 35px;
  background: #EBEFD8;
}

@media screen and (max-width: 1200px) {
  .blogItem__item {
    padding: 25px 25px 20px;
  }
}

@media screen and (max-width: 1024px) {
  .blogItem__item {
    padding: 20px 20px 15px;
  }
}

@media screen and (max-width: 767px) {
  .blogItem__item {
    background: none;
    padding: 0;
  }
}

.blogItem__thumbnail {
  overflow: hidden;
  margin-bottom: 7px;
  position: relative;
}

.blogItem__thumbnail::before {
  content: "";
  display: block;
  padding-top: 67%;
}

.blogItem__thumbnail img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  transition: all ease 0.3s;
}

.blogItem__date {
  font-family: "Oswald", serif;
  font-size: 0.8125rem;
  font-weight: 400;
  color: #67833D;
}

.blogItem__info {
  display: flex;
  gap: 15px;
  font-size: 0.8125rem;
  font-weight: 400;
  color: #67833D;
  margin-bottom: 7px;
}

@media screen and (max-width: 767px) {
  .blogItem__info {
    display: block;
    font-size: 0.6875rem;
    line-height: 1.6;
  }
}

.blogItem__title {
  font-size: 0.9375rem;
  font-weight: 500;
}

@media screen and (max-width: 767px) {
  .blogItem__title {
    line-height: 1.6;
    font-size: 0.875rem;
  }
}

.journalCatList__guide {
  font-size: 1.125rem;
  font-weight: 700;
  color: #888;
  margin-bottom: 10px;
}

@media screen and (max-width: 767px) {
  .journalCatList__guide {
    font-size: 1rem;
  }
}

.journalCatList__current {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 10px;
}

@media screen and (max-width: 767px) {
  .journalCatList__current {
    font-size: 1.375rem;
  }
}

.journalCatList__current span {
  font-size: 1.25rem;
  color: #888;
}

@media screen and (max-width: 767px) {
  .journalCatList__current span {
    font-size: 1rem;
  }
}

.journalCatList__inner {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 30px;
}

@media screen and (max-width: 767px) {
  .journalCatList__inner {
    gap: 7px;
  }
}

.journalCatList__item {
  font-size: 1.125rem;
  text-align: center;
  min-width: 6em;
  padding: 0.4em 1em 0.4em;
  background: #222;
  color: #fff;
}

@media screen and (max-width: 767px) {
  .journalCatList__item {
    font-size: 0.875rem;
    padding: 0.4em 0.8em 0.4em;
    min-width: 5em;
  }
}

.journalCatList_small .journalCatList__item {
  font-size: 0.875rem;
}

@media screen and (max-width: 767px) {
  .journalCatList_small .journalCatList__item {
    font-size: 0.8125rem;
  }
}

.articleJournal {
  padding-top: 70px;
  padding-bottom: 70px;
}

.articleJournal__title {
  font-size: 2.25rem;
  font-weight: 700;
  margin-bottom: 40px;
}

@media screen and (max-width: 767px) {
  .articleJournal__title {
    font-size: 1.75rem;
  }
}

.articleJournal__date {
  font-size: 0.875rem;
}

.articleJournal__category {
  font-size: 0.875rem;
  margin-bottom: 15px;
}

.articleJournal__content {
  margin-top: 40px;
}

.journalContainer h1 {
  font-size: 1.75rem;
  font-weight: bold;
  line-height: 1.6;
}

@media screen and (max-width: 767px) {
  .journalContainer h1 {
    font-size: 1.5rem;
  }
}

.journalContainer h2 {
  font-size: 1.62rem;
  font-weight: 700;
  margin: 60px 0 30px;
  border-bottom: 2px solid #222;
  line-height: 1.6;
  padding-bottom: 0.2em;
}

@media screen and (max-width: 767px) {
  .journalContainer h2 {
    font-size: 1.375rem;
  }
}

.journalContainer h3 {
  font-size: 1.375rem;
  font-weight: 700;
  margin: 50px 0 20px;
  line-height: 1.6;
}

@media screen and (max-width: 767px) {
  .journalContainer h3 {
    font-size: 1.125rem;
  }
}

.journalContainer h4 {
  font-size: 1rem;
  margin: 25px 0 10px;
  border-bottom: 1px solid #ddd;
  line-height: 1.6;
}

.journalContainer p {
  margin: 0 0 15px;
}

.journalContainer a {
  text-decoration: underline;
}

.journalContainer a:hover {
  text-decoration: none;
}

.journalContainer table {
  width: 100%;
  margin: 15px 0 15px;
}

.journalContainer table th {
  text-align: left;
  font-weight: 700;
  border: 1px solid #ddd;
}

.journalContainer table th.has-text-align-center {
  text-align: center;
}

.journalContainer table td {
  padding: 5px 5px 2px;
  border: 1px solid #ddd;
}

.journalContainer ul, .journalContainer ol {
  margin: 20px 0 20px;
}

.journalContainer ul li {
  list-style: disc;
  margin-left: 25px;
  margin-bottom: 7px;
}

.journalContainer ol li {
  list-style: decimal;
  margin-left: 25px;
  margin-bottom: 7px;
}

.journalContainer figure {
  margin: 5px 0 5px;
}

.journalContainer figure table {
  margin-top: 0;
  margin-bottom: 0;
}

.journalContainer figure img {
  margin-top: 0;
  margin-bottom: 0;
}

.journalContainer figure figcaption {
  font-size: 13px;
  font-style: italic;
  color: #888;
}

.journalContainer blockquote {
  background: #f2f2f2;
  padding: 30px 30px 25px;
}

.journalContainer blockquote p:last-child {
  margin-bottom: 0;
}

.journalContainer img {
  margin: 15px 0 15px;
}

.journalContainer .wp-caption {
  font-size: 13px;
  color: #555;
}

/* --------------------------------------------
 * 　地域企業
 * -------------------------------------------- */
.pageLocal {
  padding-top: 120px;
  padding-bottom: 120px;
  background: url("../img/local_lead_bg.png") no-repeat center top 50px/contain, #F3F5EA;
}

@media screen and (max-width: 767px) {
  .pageLocal {
    padding-top: 80px;
    background: url("../img/local_lead_bg_sp.png") no-repeat center top 50px/contain, #F3F5EA;
  }
}

.pageLocal__lead {
  display: flex;
  align-items: center;
  gap: 80px;
  padding-bottom: 40px;
}

@media screen and (max-width: 1024px) {
  .pageLocal__lead {
    gap: 60px;
    margin-bottom: 25px;
  }
}

@media screen and (max-width: 767px) {
  .pageLocal__lead {
    display: block;
    padding-bottom: 0;
    margin-bottom: 30px;
  }
}

.pageLocal__catch {
  display: flex;
  gap: 5px;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: flex-start;
}

@media screen and (max-width: 767px) {
  .pageLocal__catch {
    justify-content: center;
    margin-bottom: 30px;
  }
}

.pageLocal__catch>span {
  font-size: 2.375rem;
  font-weight: 700;
  line-height: 2.4;
  letter-spacing: 0.3em;
  writing-mode: vertical-rl;
}

@media screen and (max-width: 1024px) {
  .pageLocal__catch>span {
    font-size: 2rem;
    line-height: 2;
  }
}

@media screen and (max-width: 767px) {
  .pageLocal__catch>span {
    font-size: 1.75rem;
    line-height: 1.8;
  }
}

.pageLocal__text {
  font-weight: 500;
  line-height: 2.4;
  max-width: 565px;
}

@media screen and (max-width: 767px) {
  .pageLocal__text {
    max-width: 100%;
  }
}

@media screen and (max-width: 767px) {
  .pageLocal__text br {
    display: none;
  }
}

.pageLocal__leadImgs {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
}

@media screen and (max-width: 767px) {
  .pageLocal__leadImgs {
    align-items: flex-start;
    flex-direction: column-reverse;
    gap: 15px;
  }
}

@media screen and (max-width: 767px) {
  .pageLocal__leadImg2 {
    max-width: 70%;
  }
}

.pageLocal__body {
  margin-top: 180px;
}

@media screen and (max-width: 1024px) {
  .pageLocal__body {
    margin-top: 120px;
  }
}

@media screen and (max-width: 767px) {
  .pageLocal__body {
    margin-top: 80px;
  }
}

.localStory__heading {
  text-align: center;
  margin-bottom: 90px;
}

@media screen and (max-width: 767px) {
  .localStory__heading {
    margin-bottom: 50px;
  }
}

.localStory__headingInner {
  display: inline-block;
  font-size: 1.75rem;
  font-weight: 500;
  color: #FFF;
  background: #222;
  padding: 0.1em 0.6em;
}

.localStory__headingInner br {
  display: none;
}

@media screen and (max-width: 575px) {
  .localStory__headingInner br {
    display: block;
  }
}

@media screen and (max-width: 1024px) {
  .localStory__headingInner {
    font-size: 1.625rem;
  }
}

@media screen and (max-width: 767px) {
  .localStory__headingInner {
    font-size: 1.5rem;
  }
}

@media screen and (max-width: 575px) {
  .localStory__headingInner {
    font-size: 1.375rem;
    padding: 0.3em 0.6em;
  }
}

.localStory__block {
  margin-bottom: 120px;
}

.localStory__block:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 1024px) {
  .localStory__block {
    margin-bottom: 100px;
  }
}

@media screen and (max-width: 767px) {
  .localStory__block {
    margin-bottom: 60px;
  }
}

.localStorySec {
  display: flex;
  gap: 90px;
}

@media screen and (max-width: 1024px) {
  .localStorySec {
    gap: 45px;
  }
}

@media screen and (max-width: 575px) {
  .localStorySec {
    gap: 25px;
  }
}

.localStorySec__secHeading {
  font-family: "Noto Serif JP", serif;
  padding: 30px 8px 0 2px;
  display: flex;
  gap: 5px;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: flex-start;
  border-top: 1px solid #000;
}

@media screen and (max-width: 575px) {
  .localStorySec__secHeading {
    padding-right: 5px;
  }
}

.localStorySec__secHeadingSub {
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: 0.3em;
  writing-mode: vertical-rl;
}

@media screen and (max-width: 1024px) {
  .localStorySec__secHeadingSub {
    font-size: 1rem;
  }
}

@media screen and (max-width: 575px) {
  .localStorySec__secHeadingSub {
    font-size: 0.875rem;
  }
}

.localStorySec__secHeadingMain {
  font-size: 2.125rem;
  font-weight: 700;
  letter-spacing: 0.3em;
  writing-mode: vertical-rl;
}

@media screen and (max-width: 1024px) {
  .localStorySec__secHeadingMain {
    font-size: 1.875rem;
    line-height: 1.6;
  }
}

@media screen and (max-width: 767px) {
  .localStorySec__secHeadingMain {
    font-size: 1.625rem;
    line-height: 1.6;
  }
}

@media screen and (max-width: 575px) {
  .localStorySec__secHeadingMain {
    font-size: 1.375rem;
    line-height: 1.6;
  }
}

.localStorySec__content {
  padding-top: 22px;
  line-height: 2.4;
}

@media screen and (max-width: 767px) {
  .localStorySec__content {
    font-size: 0.9375rem;
  }
}

.localStoryClose {
  margin-top: 170px;
}

@media screen and (max-width: 1024px) {
  .localStoryClose {
    margin-top: 140px;
  }
}

@media screen and (max-width: 767px) {
  .localStoryClose {
    margin-top: 100px;
  }
}

.localStoryClose__heading {
  text-align: center;
  margin-bottom: 70px;
}

@media screen and (max-width: 767px) {
  .localStoryClose__heading {
    margin-bottom: 35px;
  }
}

.localStoryClose__headingInner {
  font-family: "Noto Serif JP", serif;
  display: inline-block;
  font-size: 2.125rem;
  font-weight: 700;
  padding-bottom: 0.1em;
}

@media screen and (max-width: 767px) {
  .localStoryClose__headingInner {
    font-size: 1.625rem;
  }
}

@media screen and (max-width: 575px) {
  .localStoryClose__headingInner {
    font-size: 1.5rem;
  }
}

.localStoryClose__content {
  text-align: center;
  line-height: 2.4;
  max-width: 860px;
  margin-right: auto;
  margin-left: auto;
}

.localStoryClose__contentVoice {
  font-weight: 500;
  margin-top: 2em;
  margin-bottom: 2em;
}

/* --------------------------------------------
 * 　出版社・書店
 * -------------------------------------------- */
.pagePublishing {
  background: #F3F5EA;
  padding-top: 80px;
  padding-bottom: 80px;
}

.pagePublishing__lead {
  line-height: 2.4;
  margin-bottom: 80px;
}

@media screen and (max-width: 767px) {
  .pagePublishing__lead {
    margin-bottom: 45px;
  }
}

.profileForPublishing {
  display: flex;
  align-items: flex-start;
  gap: 65px;
}

@media screen and (max-width: 1024px) {
  .profileForPublishing {
    gap: 45px;
  }
}

@media screen and (max-width: 767px) {
  .profileForPublishing {
    display: block;
  }
}

.profileForPublishing__menu {
  flex: 0 0 200px;
}

@media screen and (max-width: 1024px) {
  .profileForPublishing__menu {
    flex: 0 0 160px;
  }
}

.profileForPublishing__content {
  flex: 1 1 935px;
}

.menuPublishing {
  position: -webkit-sticky;
  position: sticky;
  top: 20px;
}

@media screen and (max-width: 767px) {
  .menuPublishing {
    position: static;
    margin-bottom: 40px;
  }
}

.menuPublishing__item {
  font-weight: 500;
}

.menuPublishing__link {
  display: block;
  padding: 21px 2px 8px;
  border-bottom: 1px solid #222;
}

@media screen and (max-width: 1024px) {
  .menuPublishing__link {
    font-size: 0.9375rem;
  }
}

@media screen and (max-width: 767px) {
  .menuPublishing__link br {
    display: none;
  }
}

.profilePubItem {
  margin-bottom: 70px;
}

@media screen and (max-width: 767px) {
  .profilePubItem {
    margin-bottom: 50px;
  }
}

.profilePubItem:last-child {
  margin-bottom: 0;
}

.profilePubItem__heading {
  font-size: 1.375rem;
  font-weight: 700;
  margin-bottom: 25px;
}

@media screen and (max-width: 1024px) {
  .profilePubItem__heading {
    font-size: 1.25rem;
  }
}

@media screen and (max-width: 767px) {
  .profilePubItem__heading {
    font-size: 1.125rem;
    margin-bottom: 12px;
  }
}

.profilePubItem__heading span {
  font-size: 1rem;
}

.profilePubItem__section {
  line-height: 2.4;
}

.profilePubItem__subHeading {
  font-size: 1.125rem;
  font-weight: 700;
  margin-top: 50px;
  margin-bottom: 15px;
}

.profilePubItem__subHeading:first-child {
  margin-top: 0;
}

@media screen and (max-width: 767px) {
  .profilePubItem__subHeading {
    font-size: 1rem;
    margin-top: 30px;
    margin-bottom: 0;
  }
}

.profilePubItem__textArea {
  margin-top: 20px;
  margin-bottom: 20px;
  line-height: 2.4;
}

.profilePubItem__textArea a {
  text-decoration: underline;
}

.profilePubItem__note a {
  text-decoration: underline;
}

.profilePubTable__header {
  white-space: nowrap;
  font-size: 0.9375rem;
  font-weight: 400;
  text-align: left;
  padding-right: 2em;
  padding-bottom: 0.5em;
}

.profilePubTable__data {
  font-size: 0.9375rem;
}

.pubHistory {
  width: 100%;
  display: flex;
  line-height: 2;
}

@media screen and (max-width: 767px) {
  .pubHistory {
    display: block;
    margin-bottom: 5px;
  }
}

.pubHistory__date {
  flex: 0 0 105px;
}

@media screen and (max-width: 767px) {
  .pubHistory__date {
    font-weight: 500;
  }
}

.pubHistory__content {
  flex: 1 1 auto;
}

@media screen and (max-width: 767px) {
  .pubHistory__content {
    line-height: 1.8;
  }
}

/* --------------------------------------------
 * 　TV・メディアの方へ
 * -------------------------------------------- */
.pageMedia {
  padding-top: 130px;
  padding-bottom: 100px;
  background: #F3F5EA;
}

@media screen and (max-width: 767px) {
  .pageMedia {
    padding-top: 80px;
    padding-bottom: 80px;
  }
}

.mediaLead {
  display: flex;
  justify-content: center;
  gap: 105px;
  padding-bottom: 100px;
}

@media screen and (max-width: 1200px) {
  .mediaLead {
    gap: 80px;
  }
}

@media screen and (max-width: 1024px) {
  .mediaLead {
    gap: 65px;
  }
}

@media screen and (max-width: 767px) {
  .mediaLead {
    display: block;
    padding-bottom: 80px;
  }
}

.mediaLead__heading {
  flex: 0 1 auto;
  display: flex;
  gap: 5px;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: flex-start;
}

@media screen and (max-width: 767px) {
  .mediaLead__heading {
    justify-content: center;
    margin-bottom: 40px;
  }
}

@media screen and (max-width: 575px) {
  .mediaLead__heading {
    gap: 5px;
  }
}

.mediaLead__heading>span {
  font-size: 2.375rem;
  font-weight: 700;
  line-height: 2.4;
  letter-spacing: 0.3em;
  writing-mode: vertical-rl;
}

@media screen and (max-width: 1024px) {
  .mediaLead__heading>span {
    font-size: 2rem;
    line-height: 2;
  }
}

@media screen and (max-width: 767px) {
  .mediaLead__heading>span {
    font-size: 1.75rem;
    line-height: 1.8;
  }
}

.mediaLead__content {
  flex: 0 1 860px;
  line-height: 2;
}

.mediaGuide {
  padding-top: 90px;
  padding-bottom: 90px;
  background: #FBFBF2;
}

@media screen and (max-width: 767px) {
  .mediaGuide {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

.mediaGuide__block {
  margin-bottom: 70px;
}

.mediaGuide__block:last-child {
  margin-bottom: 0;
}

.mediaGuide__heading {
  margin-bottom: 50px;
}

.mediaGuide__headingInner {
  display: inline-block;
  font-size: 1.75rem;
  font-weight: 500;
  color: #FFF;
  background: #222;
  padding: 0.1em 0.6em;
}

@media screen and (max-width: 1024px) {
  .mediaGuide__headingInner {
    font-size: 1.5rem;
  }
}

@media screen and (max-width: 767px) {
  .mediaGuide__headingInner {
    font-size: 1.25rem;
  }
}

.mediaGuide__lead {
  margin-bottom: 50px;
}

.mediaGuide__blockHeading {
  font-size: 1.125rem;
  font-weight: 700;
  margin-bottom: 20px;
}

.mediaGuide__blockText {
  line-height: 2;
}

.mediaGuideTarget {
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  padding-top: 40px;
  padding-bottom: 40px;
  display: flex;
  gap: 50px;
}

@media screen and (max-width: 575px) {
  .mediaGuideTarget {
    gap: 35px;
  }
}

.mediaGuideTarget__heading {
  flex: 0 0 auto;
  font-size: 1.125rem;
  font-weight: 700;
}

.mediaGuideTarget__item {
  margin-bottom: 5px;
}

.mediaGuideOtherIdea {
  margin-top: 50px;
}

.mediaProfile {
  display: flex;
  align-items: flex-start;
  gap: 65px;
  background: #F3F5EA;
  padding-top: 80px;
}

@media screen and (max-width: 1024px) {
  .mediaProfile {
    gap: 45px;
  }
}

@media screen and (max-width: 767px) {
  .mediaProfile {
    padding-top: 70px;
    display: block;
  }
}

.mediaProfile__menu {
  flex: 0 0 200px;
}

@media screen and (max-width: 1024px) {
  .mediaProfile__menu {
    flex: 0 0 170px;
  }
}

.mediaProfile__content {
  flex: 1 1 935px;
}

.menuMedia {
  position: -webkit-sticky;
  position: sticky;
  top: 20px;
}

@media screen and (max-width: 767px) {
  .menuMedia {
    position: static;
    margin-bottom: 40px;
  }
}

.menuMedia__item {
  font-weight: 500;
}

@media screen and (max-width: 1024px) {
  .menuMedia__item {
    font-size: 0.9375rem;
  }
}

.menuMedia__link {
  display: block;
  padding: 21px 2px 8px;
  border-bottom: 1px solid #222;
}

.profileMedia {
  margin-bottom: 70px;
}

.profileMedia:last-child {
  margin-bottom: 0;
}

.profileMedia__heading {
  font-size: 1.375rem;
  font-weight: 700;
  margin-bottom: 25px;
}

.profileMedia__heading span {
  font-size: 1rem;
}

.profileMedia__section {
  margin-bottom: 40px;
}

.profileMedia__subHeading {
  font-size: 1.125rem;
  font-weight: 700;
  margin-top: 50px;
  margin-bottom: 15px;
}

.profileMedia__subHeading:first-child {
  margin-top: 0;
}

.profileMedia__textArea {
  line-height: 2.4;
}

.profileMedia__textArea a {
  text-decoration: underline;
}

.profileMedia__note a {
  text-decoration: underline;
}

/* --------------------------------------------
 * 　5つの力
 * -------------------------------------------- */
.fiveEssentials {
  margin-top: 60px;
  margin-bottom: 80px;
}

.fiveEssentials__inner {
  border: 1px solid #eee;
}

@media screen and (max-width: 767px) {
  .fiveEssentials__inner {
    border: none;
  }
}

.fiveEssentials__thumb img {
  margin: 0 !important;
}

.fiveEssentials__article {
  padding: 60px 65px;
}

@media screen and (max-width: 767px) {
  .fiveEssentials__article {
    padding: 0;
    margin-top: 30px;
  }
}

.fiveEssentials h1 {
  font-size: 1.75rem;
  font-weight: bold;
  line-height: 1.6;
}

@media screen and (max-width: 767px) {
  .fiveEssentials h1 {
    font-size: 1.5rem;
  }
}

.fiveEssentials h2 {
  font-size: 1.62rem;
  font-weight: 700;
  margin: 80px 0 30px;
  line-height: 1.6;
  padding: 1em;
  background: #F3F5EA;
}

.fiveEssentials h2:first-child {
  margin-top: 0;
}

@media screen and (max-width: 767px) {
  .fiveEssentials h2 {
    font-size: 1.375rem;
  }
}

.fiveEssentials h3 {
  font-size: 1.375rem;
  font-weight: 700;
  margin: 60px 0 20px;
  padding-bottom: 0.3em;
  border-bottom: 1px solid #000;
  line-height: 1.6;
}

@media screen and (max-width: 767px) {
  .fiveEssentials h3 {
    font-size: 1.125rem;
  }
}

.fiveEssentials h4 {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 35px 0 20px;
  border-bottom: 1px solid #ddd;
  line-height: 1.6;
}

.fiveEssentials h5 {
  font-size: 1.125rem;
  font-weight: 700;
  margin: 30px 0 20px;
}

.fiveEssentials p {
  margin-bottom: 2em;
}

.fiveEssentials p:last-child {
  margin-bottom: 0;
}

.fiveEssentials a {
  text-decoration: underline;
}

.fiveEssentials a:hover {
  text-decoration: none;
}

.fiveEssentials table {
  width: 100%;
  margin: 15px 0 15px;
}

.fiveEssentials table th {
  text-align: left;
  font-weight: 500;
  border: 1px solid #ddd;
}

.fiveEssentials table th.has-text-align-center {
  text-align: center;
}

.fiveEssentials table td {
  padding: 5px 5px 2px;
  border: 1px solid #ddd;
}

.fiveEssentials ul, .fiveEssentials ol {
  margin: 20px 0 20px;
}

.fiveEssentials ul li {
  list-style: disc;
  margin-left: 25px;
  margin-bottom: 7px;
}

.fiveEssentials ol li {
  list-style: decimal;
  margin-left: 25px;
  margin-bottom: 7px;
}

.fiveEssentials figure {
  margin: 5px 0 5px;
}

.fiveEssentials figure table {
  margin-top: 0;
  margin-bottom: 0;
}

.fiveEssentials figure img {
  margin-top: 0;
  margin-bottom: 0;
}

.fiveEssentials figure figcaption {
  font-size: 13px;
  font-style: italic;
  color: #888;
}

.fiveEssentials blockquote {
  background: #f2f2f2;
  padding: 30px 30px 25px;
}

.fiveEssentials blockquote p:last-child {
  margin-bottom: 0;
}

.fiveEssentials img {
  margin: 15px 0 15px;
}

.fiveEssentials .wp-caption {
  font-size: 13px;
  color: #555;
}

.fiveEssentials ._box {
  background: #f2f2f2;
  padding: 2em;
  margin-top: 20px;
  margin-bottom: 20px;
}

@media screen and (max-width: 767px) {
  .fiveEssentials ._box {
    padding: 1.5em;
  }
}

.fiveEssentials ._note {
  font-size: 0.8125rem;
  margin-top: 1px;
  margin-bottom: 1em;
}

.fiveEssentials ._note p {
  margin-bottom: 0.5em;
}

/* --------------------------------------------
 * 　公式LINE
 * -------------------------------------------- */
.lineKeyVisual {
  background: #F3F5EA;
  padding-top: 80px;
  padding-bottom: 80px;
}

@media screen and (max-width: 767px) {
  .lineKeyVisual {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

.lineKeyVisual__inner {
  display: flex;
  gap: 60px;
}

@media screen and (max-width: 767px) {
  .lineKeyVisual__inner {
    gap: 40px;
    display: block;
  }
}

.lineKeyVisual__textArea {
  flex: 1 1 790px;
}

@media screen and (max-width: 767px) {
  .lineKeyVisual__textArea {
    margin-bottom: 30px;
  }
}

.lineKeyVisual__imgArea {
  flex: 1 1 350px;
}

@media screen and (max-width: 767px) {
  .lineKeyVisual__imgArea {
    max-width: 300px;
    margin-right: auto;
    margin-left: auto;
  }
}

.lineKeyVisual__title {
  font-size: 1.375rem;
  font-weight: 700;
  margin-bottom: 30px;
}

.lineKeyVisual__catch {
  font-size: 2.1875rem;
  font-weight: 700;
  line-height: 1.6;
  margin-bottom: 40px;
}

@media screen and (max-width: 575px) {
  .lineKeyVisual__catch {
    font-size: 1.75rem;
  }
}

.lineKeyVisual__button {
  margin-top: 75px;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .lineKeyVisual__button {
    margin-top: 30px;
  }
}

.lineButton {
  display: inline-flex;
  width: 490px;
  max-width: 100%;
  gap: 10px;
  padding: 30px;
  background: #fff;
  text-align: center;
  box-shadow: 5px 5px 20px 0px rgba(0, 0, 0, 0.14);
  transition: all ease 0.35s;
}

@media screen and (max-width: 575px) {
  .lineButton {
    padding: 12px;
    gap: 7px;
  }
}

@media (hover: hover) {
  .lineButton:hover {
    box-shadow: 0px 0px 2px 0px rgba(0, 0, 0, 0.14);
  }
}

.lineButton__icon {
  flex: 0 0 65px;
}

.lineButton__icon img {
  width: 100%;
}

@media screen and (max-width: 575px) {
  .lineButton__icon {
    flex: 0 0 55px;
  }
}

.lineButton__text {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.125rem;
  color: #fff;
  background: #222;
  padding: 0.7em;
}

@media screen and (max-width: 767px) {
  .lineButton__text {
    font-size: 0.9375rem;
  }
}

@media screen and (max-width: 575px) {
  .lineButton__text {
    font-size: 0.875rem;
    padding: 0.5em;
    line-height: 1.4;
  }
}

.lineButton__text br {
  display: none;
}

@media screen and (max-width: 575px) {
  .lineButton__text br {
    display: block;
  }
}

.linePoint {
  padding-top: 80px;
  padding-bottom: 100px;
}

@media screen and (max-width: 767px) {
  .linePoint {
    padding-top: 70px;
    padding-bottom: 80px;
  }
}

.linePoint__inner {
  display: flex;
  align-items: flex-start;
  gap: 70px;
}

@media screen and (max-width: 1024px) {
  .linePoint__inner {
    gap: 45px;
  }
}

@media screen and (max-width: 767px) {
  .linePoint__inner {
    display: block;
  }
}

.linePoint__textArea {
  flex: 1 1 360px;
  position: -webkit-sticky;
  position: sticky;
  top: 15px;
}

@media screen and (max-width: 1024px) {
  .linePoint__textArea {
    flex: 1 1 320px;
  }
}

@media screen and (max-width: 767px) {
  .linePoint__textArea {
    position: static;
  }
}

.linePoint__imgArea {
  flex: 1 5 770px;
}

.linePoint__heading {
  font-size: 1.4375rem;
  font-weight: 700;
  margin-bottom: 40px;
}

@media screen and (max-width: 767px) {
  .linePoint__heading {
    margin-bottom: 30px;
  }
}

@media screen and (max-width: 767px) {
  .linePoint__list {
    margin-bottom: 40px;
  }
}

.linePoint__link {
  display: block;
  font-weight: 500;
  padding-top: 1em;
  padding-bottom: 1em;
  padding-left: 1.5em;
  border-bottom: 1px solid #ccc;
  position: relative;
}

@media screen and (max-width: 767px) {
  .linePoint__link {
    padding-left: 5px;
  }
}

.linePoint__link:hover {
  cursor: pointer;
}

.linePoint__link._active {
  background: #222;
  color: #fff;
}

@media screen and (max-width: 767px) {
  .linePoint__link._active {
    background: none;
    color: #222;
  }
}

.linePoint__link._active::before {
  content: "";
  width: 8px;
  height: 13px;
  background: url("../img/icon_arrow_triangle_white.svg") no-repeat center/contain;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0.5em;
}

@media screen and (max-width: 767px) {
  .linePoint__link._active::before {
    display: none;
  }
}

.linePoint__detailItem {
  margin-bottom: 55px;
}

.linePoint__detailItem:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 1024px) {
  .linePoint__detailItem {
    padding: 20px;
    border: 1px solid #98d3a4;
    margin-bottom: 35px;
  }
}

.linePoint__button {
  margin-top: 90px;
  text-align: center;
}

@media screen and (max-width: 767px) {
  .linePoint__button {
    margin-top: 65px;
  }
}

.lineDetail {
  display: flex;
  gap: 45px;
}

@media screen and (max-width: 1024px) {
  .lineDetail {
    display: block;
  }
}

.lineDetail__imgArea {
  flex: 1 1 215px;
}

@media screen and (max-width: 1024px) {
  .lineDetail__imgArea {
    max-width: 250px;
  }
}

@media screen and (max-width: 767px) {
  .lineDetail__imgArea {
    margin-right: auto;
    margin-left: auto;
  }
}

.lineDetail__textArea {
  flex: 1 1 510px;
  margin-top: 15px;
}

.lineDetail__heading {
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 20px;
}

@media screen and (max-width: 767px) {
  .lineDetail__heading {
    text-align: center;
  }
}

.lineDetail__content {
  font-weight: 400;
}

.lineStory {
  padding-top: 130px;
  padding-bottom: 130px;
  background: #F3F5EA;
}

@media screen and (max-width: 767px) {
  .lineStory {
    padding-top: 70px;
    padding-bottom: 70px;
  }
}

.lineStory__heading {
  text-align: center;
  margin-bottom: 70px;
}

@media screen and (max-width: 767px) {
  .lineStory__heading {
    margin-bottom: 40px;
  }
}

.lineStory__subTitle {
  font-weight: 400;
  margin-bottom: 5px;
}

.lineStory__title {
  font-size: 1.75rem;
  font-weight: 600;
  font-family: "Noto Serif JP", serif;
}

@media screen and (max-width: 767px) {
  .lineStory__title {
    font-size: 1.5rem;
    margin-bottom: 0;
  }
}

.lineStory__lead {
  border-bottom: 7px solid #E4E8D0;
  padding-bottom: 55px;
}

.lineStory__leadTitle {
  font-size: 1.125rem;
  text-align: center;
  margin-bottom: 30px;
}

.lineStory__text {
  font-size: 0.9375rem;
}

.lineStory__article {
  margin-top: 70px;
}

@media screen and (max-width: 767px) {
  .lineStory__article {
    margin-top: 50px;
  }
}

.lineStory__item {
  margin-bottom: 50px;
}

.lineStory__item:last-child {
  margin-bottom: 0;
}

.lineStoryItem__title {
  font-size: 1.3125rem;
  font-weight: 700;
  margin-bottom: 10px;
}

.lineStoryItem__text {
  font-size: 0.9375rem;
}

.lineCta {
  padding-bottom: 130px;
  background: #F3F5EA;
}

@media screen and (max-width: 767px) {
  .lineCta {
    padding-bottom: 90px;
  }
}

.lineCta__catch {
  font-size: 2rem;
  font-weight: 700;
  margin-bottom: 45px;
}

@media screen and (max-width: 767px) {
  .lineCta__catch {
    font-size: 1.75rem;
  }
}

.lineCta__container {
  display: flex;
  gap: 40px;
}

@media screen and (max-width: 767px) {
  .lineCta__container {
    display: block;
  }
}

.lineCta__textArea {
  font-size: 1.125rem;
}

@media screen and (max-width: 767px) {
  .lineCta__textArea {
    margin-bottom: 20px;
  }
}

/* --------------------------------------------
 * 　ブランドストーリー
 * -------------------------------------------- */
.brandStory {
  background: linear-gradient(242deg, #F7F8F0 0.79%, #EBF1D2 96.71%);
}

.brandLead {
  display: flex;
  flex-direction: row-reverse;
  align-items: flex-start;
  gap: 85px;
  padding-top: 120px;
  margin-bottom: 180px;
}

@media screen and (max-width: 1200px) {
  .brandLead {
    gap: 60px;
  }
}

@media screen and (max-width: 1024px) {
  .brandLead {
    gap: 35px;
    margin-bottom: 140px;
  }
}

@media screen and (max-width: 767px) {
  .brandLead {
    gap: 45px;
    align-items: center;
    flex-direction: column-reverse;
    padding-top: 80px;
    margin-bottom: 70px;
  }
}

.brandLead__mainText {
  flex: 1 1 780px;
}

@media screen and (max-width: 767px) {
  .brandLead__mainText {
    display: contents;
  }
}

.brandLead__content {
  flex: 1 1 505px;
  line-height: 2.4;
  font-size: 0.9375rem;
}

@media screen and (max-width: 767px) {
  .brandLead__content {
    order: 3;
  }
}

.brandLead__content span {
  font-weight: 700;
}

.brandLead__pageHeading {
  margin-bottom: 40px;
}

@media screen and (max-width: 767px) {
  .brandLead__pageHeading {
    order: 1;
    text-align: center;
    margin-bottom: 20px;
  }
}

.brandLead__pageHeadingJa {
  font-size: 0.8125rem;
  font-weight: 700;
}

.brandLead__pageHeadingEn {
  font-size: 2.875rem;
  line-height: 1.5;
  font-family: "Oswald", serif;
}

@media screen and (max-width: 767px) {
  .brandLead__pageHeadingEn {
    font-size: 2.25rem;
  }
}

.brandLead__secHeading {
  display: flex;
  gap: 40px;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: flex-start;
  font-family: "Noto Serif JP", serif;
}

@media screen and (max-width: 1200px) {
  .brandLead__secHeading {
    gap: 20px;
  }
}

@media screen and (max-width: 1024px) {
  .brandLead__secHeading {
    gap: 7px;
  }
}

@media screen and (max-width: 767px) {
  .brandLead__secHeading {
    order: 2;
  }
}

.brandLead__secHeadingSub {
  display: flex;
  gap: 5px;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: flex-start;
}

.brandLead__secHeadingSub>span {
  font-size: 2.0625rem;
  font-weight: 700;
  line-height: 2.4;
  letter-spacing: 0.3em;
  writing-mode: vertical-rl;
}

@media screen and (max-width: 1200px) {
  .brandLead__secHeadingSub>span {
    font-size: 1.5rem;
  }
}

@media screen and (max-width: 1024px) {
  .brandLead__secHeadingSub>span {
    font-size: 1.1875rem;
  }
}

.brandLead__secHeadingMain {
  margin-top: 80px;
  display: flex;
  gap: 5px;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: flex-start;
}

.brandLead__secHeadingMain>span {
  font-size: 2.875rem;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 0.3em;
  writing-mode: vertical-rl;
}

@media screen and (max-width: 1200px) {
  .brandLead__secHeadingMain>span {
    font-size: 2.375rem;
  }
}

@media screen and (max-width: 1024px) {
  .brandLead__secHeadingMain>span {
    font-size: 2rem;
  }
}

.brandMain {
  padding-bottom: 120px;
}

@media screen and (max-width: 767px) {
  .brandMain {
    padding-bottom: 80px;
  }
}

.brandMain__section {
  display: grid;
  grid-template-columns: 22% 56% 22%;
  grid-template-areas: "a b c";
  margin-bottom: 80px;
}

@media screen and (max-width: 1024px) {
  .brandMain__section {
    grid-template-columns: 15% 70% 15%;
  }
}

@media screen and (max-width: 767px) {
  .brandMain__section {
    grid-template-columns: auto 1fr auto;
    margin-bottom: 55px;
  }
}

.brandMain__section:last-child {
  margin-bottom: 0;
}

.brandMain__section:nth-child(even) {
  flex-direction: row-reverse;
}

.brandMain__section:nth-child(even) .brandMain__heading {
  grid-area: c;
  margin-left: 0;
}

@media screen and (max-width: 767px) {
  .brandMain__section:nth-child(even) .brandMain__heading {
    margin-right: 0;
    margin-left: 15px;
  }
}

@media screen and (max-width: 575px) {
  .brandMain__section:nth-child(even) .brandMain__heading {
    margin-right: 0;
    margin-left: 10px;
  }
}

.brandMain__section:nth-child(even) .brandMain__textArea {
  grid-area: b;
}

.brandMain__heading {
  font-family: "Noto Serif JP", serif;
  justify-self: center;
  margin-left: -20px;
  display: flex;
  gap: 5px;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: flex-start;
}

@media screen and (max-width: 767px) {
  .brandMain__heading {
    margin-left: 0;
    margin-right: 25px;
  }
}

@media screen and (max-width: 575px) {
  .brandMain__heading {
    margin-right: 15px;
  }
}

.brandMain__heading>span {
  font-size: 2.0625rem;
  font-weight: 700;
  line-height: 2.4;
  letter-spacing: 0.3em;
  writing-mode: vertical-rl;
}

@media screen and (max-width: 1200px) {
  .brandMain__heading>span {
    font-size: 1.75rem;
    line-height: 2;
  }
}

@media screen and (max-width: 1024px) {
  .brandMain__heading>span {
    font-size: 1.5625rem;
    line-height: 1.8;
  }
}

@media screen and (max-width: 575px) {
  .brandMain__heading>span {
    font-size: 1.1875rem;
    line-height: 1.7;
  }
}

.brandMain__textArea {
  line-height: 2.4;
  font-size: 0.9375rem;
}

.brandMain__img {
  margin-bottom: 25px;
}

@media screen and (max-width: 767px) {
  .brandMain__img {
    margin-bottom: 12px;
  }
}

.brandMain__last {
  margin-top: 150px;
}

@media screen and (max-width: 767px) {
  .brandMain__last {
    margin-top: 80px;
  }
}

.brandMain__lastHeader {
  display: flex;
  justify-content: center;
  gap: 65px;
  margin-bottom: 70px;
}

@media screen and (max-width: 1024px) {
  .brandMain__lastHeader {
    gap: 40px;
  }
}

@media screen and (max-width: 767px) {
  .brandMain__lastHeader {
    gap: 25px;
    margin-bottom: 40px;
  }
}

.brandMain__lastHeading {
  font-family: "Noto Serif JP", serif;
  flex: 0 1 auto;
  display: flex;
  gap: 5px;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: flex-start;
}

@media screen and (max-width: 575px) {
  .brandMain__lastHeading {
    gap: 5px;
  }
}

.brandMain__lastHeading>span {
  font-size: 2.125rem;
  font-weight: 700;
  line-height: 2.4;
  letter-spacing: 0.3em;
  writing-mode: vertical-rl;
}

@media screen and (max-width: 1200px) {
  .brandMain__lastHeading>span {
    font-size: 1.75rem;
    line-height: 2;
  }
}

@media screen and (max-width: 1024px) {
  .brandMain__lastHeading>span {
    font-size: 1.5625rem;
    line-height: 1.8;
  }
}

@media screen and (max-width: 767px) {
  .brandMain__lastHeading>span {
    font-size: 1.25rem;
  }
}

.brandMain__lastBody {
  font-size: 1.125rem;
  max-width: 540px;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
  line-height: 2.4;
  font-weight: 700;
}

@media screen and (max-width: 767px) {
  .brandMain__lastBody {
    font-size: 1.0625rem;
  }
}

.brandApproach {
  background: linear-gradient(270deg, #F1F3E6 0%, #FBFBF2 50%, #F1F3E6 100%);
  padding-top: 110px;
  padding-bottom: 100px;
}

@media screen and (max-width: 767px) {
  .brandApproach {
    padding-top: 75px;
    padding-bottom: 80px;
  }
}

.brandApproach__heading {
  text-align: center;
  font-size: 2.25rem;
  font-weight: 700;
  margin-bottom: 50px;
}

@media screen and (max-width: 1024px) {
  .brandApproach__heading {
    font-size: 1.8125rem;
  }
}

@media screen and (max-width: 767px) {
  .brandApproach__heading {
    font-size: 1.375rem;
  }
}

.brandApproach__headingInner {
  display: inline-block;
}

.brandApproach__lead {
  text-align: center;
  line-height: 2;
  margin-bottom: 120px;
}

@media screen and (max-width: 767px) {
  .brandApproach__lead {
    margin-bottom: 70px;
  }
}

.brandApproachItem {
  display: grid;
  grid-template-columns: 120px 1fr 120px;
  margin-bottom: 100px;
}

@media screen and (max-width: 1024px) {
  .brandApproachItem {
    grid-template-columns: 80px 1fr 80px;
  }
}

@media screen and (max-width: 767px) {
  .brandApproachItem {
    grid-template-columns: auto 1fr auto;
    margin-bottom: 80px;
  }
}

.brandApproachItem:last-child {
  margin-bottom: 0;
}

.brandApproachItem__number {
  align-self: start;
  color: #DDE3C7;
  font-size: 6.625rem;
  line-height: 1;
  transform: translateY(-50%);
  font-family: "Oswald", serif;
}

@media screen and (max-width: 1024px) {
  .brandApproachItem__number {
    font-size: 4.5rem;
  }
}

@media screen and (max-width: 1024px) {
  .brandApproachItem__number {
    font-size: 3rem;
    margin-right: 10px;
  }
}

.brandApproachItem__content {
  border-top: 1px solid #BDBDBD;
  padding-top: 75px;
}

@media screen and (max-width: 767px) {
  .brandApproachItem__content {
    padding-top: 40px;
  }
}

.brandApproachItem__heading {
  font-size: 1.75rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 25px;
}

@media screen and (max-width: 1024px) {
  .brandApproachItem__heading {
    font-size: 1.5rem;
  }
}

@media screen and (max-width: 767px) {
  .brandApproachItem__heading {
    text-align: left;
    font-size: 1.1875rem;
    margin-bottom: 12px;
  }
}

.brandApproachItem__text {
  line-height: 2.4;
}

.brandApproachItem__button {
  text-align: center;
  margin-top: 30px;
}

@media screen and (max-width: 767px) {
  .brandApproachItem__button {
    margin-top: 24px;
    text-align: left;
  }
}

.brandApproachItem__list {
  margin-top: 2em;
  margin-bottom: 2em;
}

.brandMessage {
  background: #F3F5EA;
  padding-top: 100px;
  padding-bottom: 110px;
}

@media screen and (max-width: 767px) {
  .brandMessage {
    padding-top: 70px;
    padding-bottom: 80px;
  }
}

.brandMessage__heading {
  font-family: "Noto Serif JP", serif;
  font-size: 1.75rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 30px;
}

@media screen and (max-width: 1024px) {
  .brandMessage__heading {
    font-size: 1.625rem;
  }
}

.brandMessage__content {
  text-align: center;
  font-weight: 500;
  line-height: 2.4;
}

/* --------------------------------------------
 * 　製品一覧
 * -------------------------------------------- */
.pageProduct {
  background: #F3F5EA;
  padding-top: 80px;
  padding-bottom: 100px;
}

@media screen and (max-width: 767px) {
  .pageProduct {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

.products__list {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}

.products__item {
  flex: 0 0 calc((100% - 60px) / 3);
}

@media screen and (max-width: 1024px) {
  .products__item {
    flex: 0 0 calc((100% - 30px) / 2);
  }
}

@media screen and (max-width: 575px) {
  .products__item {
    flex: 0 0 100%;
  }
}

.products__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 30px;
  background: #FFF;
}

@media (hover: hover) {
  .products__link:hover .products__img {
    scale: 1.05;
  }
}

@media screen and (max-width: 1024px) {
  .products__link {
    padding: 25px;
  }
}

@media screen and (max-width: 575px) {
  .products__link {
    padding: 25px;
  }
}

.products__imgContainer {
  margin-bottom: 15px;
  position: relative;
}

.products__imgInner {
  overflow: hidden;
  padding-top: 70%;
  position: relative;
}

.products__img {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover;
  transition: all ease 0.3s;
}

.products__name {
  font-weight: 500;
  margin-bottom: 10px;
  text-align: center;
}

.products__description {
  margin-bottom: auto;
  font-size: 0.875rem;
}

.products__goDetail {
  margin-top: 30px;
  max-width: 130px;
  margin-right: auto;
  margin-left: auto;
  font-size: 0.875rem;
  text-align: center;
  padding: 0.5em 1em;
  line-height: 1.6;
  border: 1px solid #222;
}

.productEpisode {
  margin-top: 90px;
}

@media screen and (max-width: 767px) {
  .productEpisode {
    margin-top: 50px;
    padding-bottom: 90px;
  }
}

.productEpisode__headingEn {
  font-size: 6.0625rem;
  font-weight: 600;
  color: #fff;
  font-family: "Oswald", serif;
  margin-left: 295px;
}

@media screen and (max-width: 1024px) {
  .productEpisode__headingEn {
    margin-left: 220px;
  }
}

@media screen and (max-width: 767px) {
  .productEpisode__headingEn {
    font-size: 5rem;
    margin-left: 0;
  }
}

.productEpisode__lead {
  margin-top: -50px;
  margin-bottom: 120px;
}

@media screen and (max-width: 767px) {
  .productEpisode__lead {
    margin-bottom: 70px;
  }
}

.productEpisode__start {
  margin-bottom: 110px;
}

@media screen and (max-width: 767px) {
  .productEpisode__start {
    margin-bottom: 60px;
  }
}

.productEpisode__start .episodeDetail__headerImg {
  margin-left: -30px;
}

.productEpisode__birth {
  margin-bottom: 130px;
}

@media screen and (max-width: 767px) {
  .productEpisode__birth {
    margin-bottom: 70px;
  }
}

.productEpisode__message {
  font-size: 1.25rem;
  font-weight: 500;
  text-align: center;
  line-height: 2.6;
}

@media screen and (max-width: 767px) {
  .productEpisode__message {
    font-size: 1.125rem;
    line-height: 2.4;
  }
}

.episodeLead {
  display: flex;
  gap: 80px;
}

@media screen and (max-width: 767px) {
  .episodeLead {
    gap: 24px;
  }
}

.episodeLead__header {
  flex: 0 1 240px;
  display: flex;
  gap: 5px;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: flex-start;
}

@media screen and (max-width: 767px) {
  .episodeLead__header {
    gap: 0;
  }
}

.episodeLead__header>span {
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.4;
  letter-spacing: 0.3em;
  writing-mode: vertical-rl;
}

@media screen and (max-width: 1024px) {
  .episodeLead__header>span {
    font-size: 1.75rem;
    line-height: 2;
  }
}

@media screen and (max-width: 767px) {
  .episodeLead__header>span {
    font-size: 1.475rem;
    line-height: 1.8;
  }
}

@media screen and (max-width: 575px) {
  .episodeLead__header>span {
    font-size: 1.125rem;
    line-height: 1.8;
  }
}

.episodeLead__body {
  flex: 0 1 720px;
  margin-top: 70px;
}

@media screen and (max-width: 767px) {
  .episodeLead__body {
    margin-top: 35px;
  }
}

.episodeLead__img {
  margin-bottom: 25px;
}

@media screen and (max-width: 767px) {
  .episodeLead__img {
    margin-bottom: 18px;
  }
}

.episodeLead__detail {
  line-height: 2.4;
  font-size: 0.9375rem;
}

@media screen and (max-width: 767px) {
  .episodeLead__detail {
    line-height: 2.1;
  }
}

.episodeDetail {
  display: flex;
  gap: 80px;
  align-items: flex-start;
}

@media screen and (max-width: 767px) {
  .episodeDetail {
    gap: 30px;
  }
}

.episodeDetail_reverse {
  flex-direction: row-reverse;
}

.episodeDetail__header {
  flex: 1 1 200px;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

.episodeDetail__body {
  flex: 1 1 920px;
}

.episodeDetail__headerText {
  font-size: 3rem;
  writing-mode: vertical-rl;
  background: #fff;
  letter-spacing: 0.2em;
  line-height: 1.4;
  padding-top: 0.3em;
  padding-bottom: 0.2em;
  font-family: "Noto Serif JP", serif;
}

@media screen and (max-width: 767px) {
  .episodeDetail__headerText {
    font-size: 1.75rem;
  }
}

.episodeDetail__headerImg {
  position: absolute;
  bottom: 17px;
  z-index: 2;
  transform: translateY(100%);
}

@media screen and (max-width: 767px) {
  .episodeDetail__headerImg {
    bottom: 5px;
  }
}

.episodeDetail__section {
  margin-bottom: 60px;
}

@media screen and (max-width: 767px) {
  .episodeDetail__section {
    margin-bottom: 35px;
  }
}

.episodeDetail__section:last-child {
  margin-bottom: 0;
}

.episodeDetail__heading {
  font-size: 1.125rem;
  font-weight: 700;
  margin-bottom: 10px;
}

.episodeDetail__content {
  line-height: 2;
  font-size: 0.875rem;
}

.episodeDetail__list {
  list-style: disc;
  margin-left: 20px;
}

/* --------------------------------------------
 * 　製品詳細
 * -------------------------------------------- */
.product {
  padding-top: 80px;
  padding-bottom: 100px;
}

@media screen and (max-width: 767px) {
  .product {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

.product__main {
  display: flex;
  gap: 50px;
  margin-bottom: 70px;
}

@media screen and (max-width: 1024px) {
  .product__main {
    gap: 30px;
  }
}

@media screen and (max-width: 767px) {
  .product__main {
    display: block;
    margin-bottom: 50px;
  }
}

.product__imgArea {
  flex: 1 1 580px;
}

@media screen and (max-width: 767px) {
  .product__imgArea {
    margin-bottom: 40px;
  }
}

.product__textArea {
  flex: 1 1 550px;
}

.product__catch {
  font-size: 1.375rem;
  font-weight: bold;
  line-height: 1.6;
  margin-bottom: 20px;
}

@media screen and (max-width: 767px) {
  .product__catch {
    margin-bottom: 25px;
  }
}

.product__name {
  font-size: 1.625rem;
  font-weight: 700;
  margin-bottom: 3px;
}

.product__note {
  font-size: 0.875rem;
  margin-bottom: 5px;
}

.product__price {
  margin-bottom: 20px;
  display: flex;
  align-items: flex-end;
  padding-top: 10px;
  padding-bottom: 10px;
}

.product__priceNumber {
  font-size: 1.5rem;
  line-height: 1;
}

.product__priceUnit {
  font-size: 0.6875rem;
  line-height: 1;
  margin-bottom: 1px;
  color: #999;
}

.product__description {
  margin-bottom: 18px;
}

.product__imgAreaMain {
  margin-bottom: 7px;
}

.product__imgAreaSub {
  display: flex;
  gap: 7px;
}

.product__imgAreaSub>img {
  width: 110px;
  max-width: calc((100% - 21px) / 4);
  opacity: 0.75;
  border: 3px solid #fff;
}

.product__imgAreaSub>img:hover {
  cursor: pointer;
  opacity: 1;
  border: 3px solid #eba865;
}

.product__imgAreaSub>img._active {
  opacity: 1;
  border: 3px solid #eba865;
}

.product__detailUpper {
  margin-top: 80px;
  margin-bottom: 80px;
}

@media screen and (max-width: 767px) {
  .product__detailUpper {
    margin-top: 65px;
    margin-bottom: 65px;
  }
}

.product__detailUpper .cartButton {
  max-width: 300px;
}

@media screen and (max-width: 767px) {
  .product__detailUpper .cartButton {
    max-width: 100%;
  }
}

.product__video {
  padding-top: 80px;
  padding-bottom: 80px;
  background: #FAFAFA;
}

@media screen and (max-width: 767px) {
  .product__video {
    margin-top: 65px;
    padding-top: 65px;
    padding-bottom: 65px;
  }
}

.productVideo__heading {
  font-weight: bold;
  margin-bottom: 30px;
  font-size: 1.875rem;
}

@media screen and (max-width: 767px) {
  .productVideo__heading {
    margin-bottom: 25px;
  }
}

.productVideo__videos {
  display: flex;
  gap: 20px;
}

@media screen and (max-width: 767px) {
  .productVideo__videos {
    flex-direction: column;
  }
}

.productVideo__video {
  flex: 1 1 100%;
  aspect-ratio: 16 / 9;

}

.productVideo__video iframe {
  width: 100%;
  height: 100%;
}

.product__story {
  margin-bottom: 80px;
  padding-top: 80px;
  padding-bottom: 80px;
}

@media screen and (max-width: 767px) {
  .product__story {
    margin-bottom: 65px;
    padding-top: 65px;
    padding-bottom: 65px;
  }
}

.product__spec {
  margin-top: 60px;
  margin-bottom: 80px;
}

.productContentBlock {
  margin-bottom: 12px;
}

.productContentBlock iframe {
  max-width: 100%;
}

.productContentBlock__heading {
  font-size: 1.25rem;
  font-weight: 500;
  background: #F2F2F2;
  padding: 0.5em 0.8em;
  position: relative;
}

.productContentBlock__body {
  margin-top: 20px;
  margin-bottom: 40px;
}

.productContentBlock__body h1 {
  font-size: 1.625rem;
  font-weight: bold;
  line-height: 1.6;
}

@media screen and (max-width: 767px) {
  .productContentBlock__body h1 {
    font-size: 1.5rem;
  }
}

.productContentBlock__body h2 {
  font-size: 1.5rem;
  margin: 45px 0 25px;
  border-bottom: 3px solid #999;
  line-height: 1.6;
}

@media screen and (max-width: 767px) {
  .productContentBlock__body h2 {
    font-size: 1.375rem;
  }
}

.productContentBlock__body h3 {
  font-size: 1.25rem;
  margin: 40px 0 20px;
  border-left: 3px solid #999;
  padding: 3px 0 2px 10px;
  line-height: 1.6;
}

@media screen and (max-width: 767px) {
  .productContentBlock__body h3 {
    font-size: 1.125rem;
  }
}

.productContentBlock__body p {
  margin: 0 0 15px;
}

.productContentBlock__body p:last-child {
  margin-bottom: 0;
}

.productContentBlock__body a {
  text-decoration: underline;
}

.productContentBlock__body a:hover {
  text-decoration: none;
}

.productContentBlock__body table {
  width: 100%;
  margin: 20px 0 20px;
}

.productContentBlock__body table td {
  padding: 5px 5px 2px;
  border: 1px solid #ddd;
}

.productContentBlock__body ul, .productContentBlock__body ol {
  margin: 20px 0 20px;
}

.productContentBlock__body ul li {
  list-style: disc;
  margin-left: 25px;
  margin-bottom: 7px;
}

.productContentBlock__body ol li {
  list-style: decimal;
  margin-left: 25px;
  margin-bottom: 7px;
}

.productContentBlock__body figure {
  margin: 20px 0 20px;
}

.productContentBlock__body figure figcaption {
  font-size: 13px;
  font-style: italic;
  color: #888;
}

.productContentBlock__body blockquote {
  padding: 30px 30px 25px;
}

.productContentBlock__body blockquote p:last-child {
  margin-bottom: 0;
}

.productContentBlock__body img {
  margin: 20px 0 20px;
}

.productContentBlock__body .wp-caption {
  font-size: 0.75rem;
  color: #555;
}

/* --------------------------------------------
 * 　アコーディオン
 * -------------------------------------------- */
.accordion__header {
  position: relative;
}

.accordion__header:hover {
  cursor: pointer;
}

.accordion__header._open::before {
  rotate: -180deg;
}

.accordion__header::before {
  content: "\f078";
  position: absolute;
  top: 50%;
  translate: 0 -50%;
  right: 10px;
  font: var(--fa-font-light);
}

.accordion__header:hover {
  cursor: pointer;
}

.accordion__body {
  display: none;
}

.productStory {
  background: #F3F5EA;
}

.productStory__heading {
  font-weight: bold;
  margin-bottom: 80px;
  font-size: 1.875rem;
}

@media screen and (max-width: 767px) {
  .productStory__heading {
    margin-bottom: 55px;
  }
}

.productStory__item {
  margin-bottom: 90px;
}

.productStory__item:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 767px) {
  .productStory__item {
    margin-bottom: 35px;
  }
}

.productStoryItem {
  display: flex;
  align-items: flex-start;
  gap: 90px;
}

@media screen and (max-width: 767px) {
  .productStoryItem {
    gap: 60px;
    display: block;
  }
}

.productStoryItem__text ul {
  list-style: disc;
  margin-left: 20px;
  margin-top: 15px;
  margin-bottom: 15px;
}

.productStoryItem__text ol {
  margin-left: 20px;
  margin-top: 15px;
  margin-bottom: 15px;
}

.productStoryItem__textArea {
  flex: 1 1 390px;
  position: -webkit-sticky;
  position: sticky;
  top: 0;
}

@media screen and (max-width: 767px) {
  .productStoryItem__textArea {
    position: static;
    margin-bottom: 30px;
  }
}

.productStoryItem__imgArea {
  flex: 1 1 720px;
}

.productStoryItem__label {
  font-size: 3.5rem;
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 5px;
}

@media screen and (max-width: 767px) {
  .productStoryItem__label {
    font-size: 2.75rem;
  }
}

.productStoryItem__heading {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 2.2;
  margin-bottom: 20px;
  display: inline;
  padding-bottom: 0.3em;
  border-bottom: 1px solid #000;
}

.productStoryItem__text {
  margin-bottom: 20px;
  line-height: 2.1;
}

.productStoryItem__img {
  text-align: center;
}

.productVoice__item {
  display: flex;
  gap: 20px;
  margin-bottom: 20px;
}

@media screen and (max-width: 575px) {
  .productVoice__item {
    gap: 13px;
  }
}

.productVoice__item:last-child {
  margin-bottom: 0;
}

.productVoice__imgArea {
  flex: 0 0 150px;
}

.productVoice__imgArea img {
  margin-top: auto;
  margin-bottom: auto;
}

@media screen and (max-width: 575px) {
  .productVoice__imgArea {
    flex: 0 0 75px;
  }
}

.productVoice__textArea {
  flex: 1 1 auto;
}

.productVoice__name {
  font-size: 0.875rem;
  margin-bottom: 5px;
}

.productVoice__title {
  font-weight: bold;
  font-size: 1rem;
  margin-bottom: 5px;
}

.productVoice__text {
  font-size: 0.875rem;
}

.productSpecTable__heading {
  font-size: 1.25rem;
  font-weight: 500;
  padding-bottom: 15px;
  border-bottom: 1px solid #000;
  margin-bottom: 30px;
}

.tableSplitVertical {
  border-collapse: separate;
  border-spacing: 15px;
  font-size: 0.875rem;
}

.tableSplitVertical__header {
  vertical-align: middle;
  border-right: 1px solid #E5E5E5;
  min-width: 110px;
  max-width: 160px;
  padding-right: 30px;
}

@media screen and (max-width: 767px) {
  .tableSplitVertical__header {
    padding-right: 20px;
    min-width: 80px;
  }
}

.tableSplitVertical__data {
  padding-left: 23px;
}

@media screen and (max-width: 767px) {
  .tableSplitVertical__data {
    padding-left: 20px;
  }
}

/* --------------------------------------------
 * 　推薦図書
 * -------------------------------------------- */
.pageRecommendedBooks {
  background: #F3F5EA;
  padding-top: 80px;
  padding-bottom: 100px;
}

@media screen and (max-width: 767px) {
  .pageRecommendedBooks {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

.pageRecommendedBooks__lead {
  margin-bottom: 110px;
}

.pageRecommendedBooks__list {
  margin-bottom: 170px;
}

@media screen and (max-width: 767px) {
  .pageRecommendedBooks__list {
    margin-bottom: 70px;
  }
}

.recommendedLead {
  display: flex;
  gap: 65px;
  margin-bottom: 110px;
}

@media screen and (max-width: 767px) {
  .recommendedLead {
    gap: 40px;
    margin-bottom: 70px;
  }
}

@media screen and (max-width: 575px) {
  .recommendedLead {
    gap: 30px;
  }
}

.recommendedLead__heading {
  flex: 0 0 auto;
  writing-mode: vertical-rl;
  font-size: 3rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0.1em;
  font-family: "Noto Serif JP", serif;
}

@media screen and (max-width: 767px) {
  .recommendedLead__heading {
    font-size: 2.25rem;
  }
}

@media screen and (max-width: 575px) {
  .recommendedLead__heading {
    font-size: 2rem;
  }
}

.recommendedLead__headingEn {
  margin-top: -20px;
  font-size: 3.625rem;
  color: #FFF;
  font-family: "Oswald", serif;
}

@media screen and (max-width: 767px) {
  .recommendedLead__headingEn {
    font-size: 2.75rem;
    line-height: 1.3;
    margin-bottom: 20px;
  }
}

.recommendedLead__button a {
  background: #fff;
  font-size: 1.125rem;
  font-weight: 500;
  padding: 2.5em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 5px 5px 20px 0px rgba(0, 0, 0, 0.14);
  position: relative;
  transition: all ease 0.3s;
}

@media (hover: hover) {
  .recommendedLead__button a:hover {
    box-shadow: 1px 1px 4px 0px rgba(0, 0, 0, 0.2);
  }
}

@media screen and (max-width: 1024px) {
  .recommendedLead__button a {
    padding: 2em;
  }
}

@media screen and (max-width: 767px) {
  .recommendedLead__button a {
    padding: 1.25em;
  }
}

.bookList {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
}

@media screen and (max-width: 1024px) {
  .bookList {
    gap: 20px;
  }
}

.bookList__item {
  flex: 0 0 calc((100% - 120px) / 4);
  background: #fff;
  padding: 30px 30px 25px;
}

@media screen and (max-width: 1024px) {
  .bookList__item {
    flex: 0 0 calc((100% - 60px) / 4);
    padding: 20px 20px 15px;
  }
}

@media screen and (max-width: 767px) {
  .bookList__item {
    flex: 0 0 calc((100% - 20px) / 2);
    padding: 18px 18px 12px;
  }
}

.bookList__thumbnail {
  width: 100%;
  margin-bottom: 15px;
}

.bookList__thumbnailInner {
  padding-top: 120%;
  position: relative;
}

.bookList__thumbnailInner img {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
  object-fit: contain;
}

.bookList__title {
  font-weight: 500;
  margin-bottom: 6px;
  line-height: 1.7;
}

@media screen and (max-width: 767px) {
  .bookList__title {
    line-height: 1.5;
    margin-bottom: 10px;
  }
}

.bookList__price {
  font-weight: 500;
}

.bookList__price span {
  font-size: 0.75rem;
}

.bookStory {
  display: flex;
  gap: 80px;
}

@media screen and (max-width: 767px) {
  .bookStory {
    gap: 50px;
  }
}

@media screen and (max-width: 575px) {
  .bookStory {
    display: block;
  }
}

.bookStory__header {
  flex: 0 0 215px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
}

@media screen and (max-width: 767px) {
  .bookStory__header {
    flex: 0 1 240px;
    justify-content: flex-start;
  }
}

@media screen and (max-width: 575px) {
  .bookStory__header {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-bottom: 30px;
  }
}

.bookStory__body {
  flex: 1 1 auto;
}

.bookStory__heading {
  display: flex;
  gap: 5px;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: flex-start;
}

@media screen and (max-width: 575px) {
  .bookStory__heading {
    gap: 5px;
  }
}

.bookStory__heading>span {
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.4;
  letter-spacing: 0.3em;
  writing-mode: vertical-rl;
}

@media screen and (max-width: 1024px) {
  .bookStory__heading>span {
    font-size: 1.75rem;
    line-height: 2;
  }
}

@media screen and (max-width: 767px) {
  .bookStory__heading>span {
    font-size: 1.475rem;
    line-height: 1.8;
  }
}

@media screen and (max-width: 575px) {
  .bookStory__heading>span {
    font-size: 1.25rem;
  }
}

.bookStorySection {
  margin-bottom: 20px;
}

.bookStorySection:last-child {
  margin-bottom: 0;
}

@media screen and (max-width: 767px) {
  .bookStorySection {
    margin-bottom: 40px;
  }
}

.bookStorySection__heading {
  display: inline-block;
  background: #222;
  color: #fff;
  font-size: 1.25rem;
  font-weight: 700;
  margin-bottom: 10px;
  padding: 0.2em 0.4em;
  line-height: 1.6;
}

@media screen and (max-width: 767px) {
  .bookStorySection__heading {
    font-size: 1.0625rem;
  }
}

.bookStorySection__content {
  font-size: 0.9375rem;
}

.book {
  background: #F3F5EA;
  padding-top: 90px;
  padding-bottom: 90px;
}

.book__main {
  display: flex;
  gap: 110px;
  margin-bottom: 85px;
}

@media screen and (max-width: 1200px) {
  .book__main {
    gap: 70px;
  }
}

@media screen and (max-width: 1024px) {
  .book__main {
    gap: 40px;
  }
}

@media screen and (max-width: 767px) {
  .book__main {
    display: block;
  }
}

.book__imgArea {
  flex: 1 1 490px;
  display: flex;
  gap: 15px;
}

@media screen and (max-width: 767px) {
  .book__imgArea {
    max-width: 450px;
    margin-bottom: 30px;
  }
}

.book__textArea {
  flex: 1 1 600px;
}

.book__imgAreaMain {
  flex: 1 1 400px;
}

.book__imgAreaSub {
  flex: 1 1 75px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}

@media screen and (max-width: 767px) {
  .book__imgAreaSub {
    flex: 0 1 75px;
  }
}

.book__imgAreaSub img {
  cursor: pointer;
}

.book__title {
  font-size: 1.75rem;
  font-weight: 500;
}

@media screen and (max-width: 767px) {
  .book__title {
    font-size: 1.5rem;
  }
}

.book__price {
  font-size: 1.5rem;
  margin-bottom: 30px;
}

@media screen and (max-width: 767px) {
  .book__price {
    font-size: 1.25rem;
  }
}

.book__price span {
  font-size: 0.8125rem;
}

.book__author {
  margin-bottom: 5px;
}

.book__isbn {
  margin-bottom: 5px;
}

.book__spec {
  margin-bottom: 5px;
}

.book__cartButton {
  margin-top: 40px;
}

.bookDetail {
  background: #fff;
  padding: 60px;
  display: flex;
  gap: 80px;
}

@media screen and (max-width: 1024px) {
  .bookDetail {
    padding: 45px;
    gap: 60px;
  }
}

@media screen and (max-width: 767px) {
  .bookDetail {
    gap: 15px;
    padding: 15px;
  }
}

.bookDetail__tab {
  flex: 0 0 140px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

@media screen and (max-width: 767px) {
  .bookDetail__tab {
    flex: 0 0 auto;
  }
}

.bookDetail__tabItem {
  padding: 0.6em 0.7em;
  background: #fff;
  color: #222;
  font-size: 1.375rem;
  font-weight: 600;
}

@media screen and (max-width: 767px) {
  .bookDetail__tabItem {
    font-size: 1rem;
    white-space: nowrap;
  }
}

@media screen and (max-width: 575px) {
  .bookDetail__tabItem {
    font-size: 0.875rem;
  }
}

.bookDetail__tabItem._active {
  background: #222;
  color: #fff;
}

.bookDetail__tabItem:hover {
  cursor: pointer;
}

.bookDetail__container {
  flex: 1 1 auto;
}

@media screen and (max-width: 575px) {
  .bookDetail__container {
    font-size: 0.9375rem;
  }
}

/* --------------------------------------------
 * 　よくある質問・お問い合わせ
 * -------------------------------------------- */
.pageContact {
  padding-top: 80px;
  padding-bottom: 100px;
}

@media screen and (max-width: 767px) {
  .pageContact {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

.faq__heading {
  font-size: 1.625rem;
  font-weight: 700;
  padding-bottom: 5px;
  margin-bottom: 20px;
  border-bottom: 1px solid #000;
}

@media screen and (max-width: 767px) {
  .faq__heading {
    font-size: 1.375rem;
  }
}

.faq__lead {
  margin-bottom: 40px;
}

@media screen and (max-width: 767px) {
  .faq__lead {
    margin-bottom: 30px;
  }
}

.faq__categoryName {
  font-size: 1.25rem;
  font-weight: 500;
  background: #F2F2F2;
  padding: 10px 15px;
  margin-bottom: 10px;
  position: relative;
}

@media screen and (max-width: 767px) {
  .faq__categoryName {
    font-size: 1.125rem;
  }
}

.faq__inner {
  margin-top: 30px;
}

.faq__item {
  padding-left: 10px;
  padding-right: 10px;
  padding-bottom: 40px;
  margin-bottom: 40px;
  border-bottom: 1px solid #ccc;
}

.faq__item:last-child {
  margin-bottom: 40px;
}

.faq__question {
  display: flex;
  gap: 5px;
  font-size: 1.125rem;
  font-weight: 500;
  margin-bottom: 12px;
}

.faq__question::before {
  flex: 0 0 auto;
  content: "Q.";
  margin-top: -1px;
}

.faq__answer {
  display: flex;
  gap: 7px;
}

.faq__answer::before {
  font-size: 1.125rem;
  font-weight: 500;
  flex: 0 0 auto;
  content: "A.";
  margin-top: -3px;
}

.contactForm {
  border-top: 1px solid #aaa;
  margin-top: 100px;
  padding-top: 90px;
}

@media screen and (max-width: 767px) {
  .contactForm {
    margin-top: 60px;
    padding-top: 50px;
  }
}

.contactForm__heading {
  font-size: 1.625rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 20px;
}

.contactForm__lead {
  text-align: center;
  margin-bottom: 50px;
}

/* --------------------------------------------
 * 　フォーム：テーブル部分
 * -------------------------------------------- */
.formTable {
  width: 100%;
  font-size: 16px;
}

.formTable__head {
  width: 25%;
  padding: 11px 0.5em 0 0;
  font-weight: normal;
  text-align: left;
  line-height: 1.4;
}

@media screen and (max-width: 767px) {
  .formTable__head {
    display: block;
    width: 100%;
    padding-top: 15px;
    padding-bottom: 7px;
    padding-right: 0;
  }
}

.formTable__head_pt0 {
  padding-top: 0;
}

.formTable__headInner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

@media screen and (max-width: 767px) {
  .formTable__headInner {
    justify-content: flex-start;
  }
}

@media screen and (max-width: 767px) {
  .formTable__headItem {
    margin-right: 0.75em;
  }
}

.formTable__validate {
  flex: 0 0 auto;
  font-size: 0.75em;
}

.formTable__validate_required {
  display: inline-block;
  color: #fff;
  background: #D84949;
  padding: 0.5em 1em;
  margin-left: 5px;
  line-height: 1;
}

.formTable__validate_optional {
  display: inline-block;
  color: #fff;
  background: #888;
  padding: 0.5em 1em;
  margin-left: 5px;
  line-height: 1;
}

.formTable__data {
  width: 75%;
  vertical-align: middle;
  padding: 0 0.2em 1em;
}

@media screen and (max-width: 767px) {
  .formTable__data {
    display: block;
    width: 100%;
    padding: 0;
  }
}

.formTable input, .formTable textarea, .formTable select {
  background: #f2f2f2;
  border: none;
  outline: none;
}

.formTable input, .formTable select {
  width: 100%;
  min-height: 45px;
  padding: 5px 5px 3px;
  border-radius: 3px;
  border: none;
  font-size: 16px;
}

.formTable textarea {
  width: 100%;
  height: 150px;
  padding: 5px 5px 3px;
  border-radius: 3px;
  font-size: 16px;
}

.label_optional {
  background: #7db978;
}

input[type=checkbox] {
  width: 20px;
  height: 20px;
}

button[type=submit][name=submit] {
  color: #fff;
  border: 1px solid #333;
  background: #333;
  padding: 15px 30px 13px;
  display: block;
  width: 100%;
  max-width: 220px;
  margin-top: 40px;
  margin-right: auto;
  margin-left: auto;
}

button[type=submit][name=submit]:hover {
  cursor: pointer;
}

.mw_wp_form_complete {
  text-align: center;
  padding-top: 75px;
  padding-bottom: 75px;
}

.mw_wp_form_send_error {
  text-align: center;
  padding-top: 75px;
  padding-bottom: 75px;
}

.checkPrivacy {
  text-align: center;
  font-size: 0.8125rem;
}

.checkPrivacy a {
  text-decoration: underline;
}

.underForm__acceptance {
  text-align: center;
}

.underForm__acceptance input[type=checkbox] {
  margin-top: -1px;
}

.underForm__acceptanceLink {
  text-decoration: underline;
}

.screen-reader-response {
  display: none;
}

.wpcf7-not-valid-tip {
  color: #D84949;
  font-size: 0.875rem;
}

.wpcf7-response-output {
  text-align: center;
  margin-top: 20px;
  color: #D84949;
}

.wpcf7-submit {
  display: block;
  width: 92%;
  max-width: 390px;
  color: #fff;
  padding: 1.7em;
  background: #222;
  margin-right: auto;
  margin-left: auto;
  margin-top: 20px;
  box-shadow: none;
  border: none;
}

.wpcf7-submit:hover {
  cursor: pointer;
}

.wpcf7-submit:disabled {
  background: #aaa;
}

/* --------------------------------------------
 * 　特定商取引法
 * -------------------------------------------- */
.pageTokuteisho {
  padding-top: 80px;
  padding-bottom: 100px;
}

@media screen and (max-width: 767px) {
  .pageTokuteisho {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

/* --------------------------------------------
 * 　表組み：ブロック
 * -------------------------------------------- */
.tableBlock {
  width: 100%;
}

.tableBlock__header {
  white-space: nowrap;
  padding: 15px 16px 13px;
  background: #F5F5F5;
  border: 1px solid #E2E2E2;
  text-align: left;
  font-weight: normal;
}

@media screen and (max-width: 767px) {
  .tableBlock__header {
    display: block;
    padding: 10px 7px 7px;
    font-size: 0.875rem;
    white-space: unset;
    border: none;
  }
}

.tableBlock__data {
  width: 100%;
  padding: 15px 16px 13px;
  border: 1px solid #E2E2E2;
  font-size: 0.9375rem;
}

@media screen and (max-width: 767px) {
  .tableBlock__data {
    display: block;
    padding: 10px 7px 7px;
    font-size: 0.875rem;
    border: none;
    margin-bottom: 20px;
  }
}

/* --------------------------------------------
 * 　利用規約/個人情報
 * -------------------------------------------- */
.pagePrivacy {
  padding-top: 80px;
  padding-bottom: 100px;
}

@media screen and (max-width: 767px) {
  .pagePrivacy {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

.pagePrivacy__dateEnactment {
  text-align: right;
}

.pageTerms {
  padding-top: 80px;
  padding-bottom: 100px;
}

@media screen and (max-width: 767px) {
  .pageTerms {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}

.pageTerms__dateEnactment {
  text-align: right;
}

.terms {
  margin-bottom: 50px;
}

.terms__block {
  margin-bottom: 50px;
}

.terms__heading {
  font-size: 1.125rem;
  font-weight: 500;
  margin-bottom: 10px;
  letter-spacing: 0.2em;
}

.terms__content {
  font-size: 0.9375rem;
}

.terms__list {
  list-style: decimal;
  margin-left: 20px;
}

.terms__listItem {
  margin-bottom: 5px;
}

.terms__subList {
  margin-top: 10px;
  list-style: none;
  counter-reset: number;
}

.terms__subListItem {
  margin-bottom: 5px;
  counter-increment: number;
  display: flex;
  gap: 3px;
}

.terms__subListItem::before {
  flex: 0 0 auto;
  content: "(" counter(number) ")";
}

/* --------------------------------------------
 * 　フッター
 * -------------------------------------------- */
.footer {
  background: #FAFAFA;
}

.footerMain {
  padding-top: 50px;
  padding-bottom: 50px;
}

.footerMain__top {
  display: flex;
  align-items: center;
  gap: 30px;
  justify-content: space-between;
  margin-bottom: 40px;
}

@media screen and (max-width: 767px) {
  .footerMain__top {
    display: block;
  }
}

.footerMain__tagLine {
  font-size: 0.75rem;
  margin-bottom: 20px;
  letter-spacing: 0;
    line-height: 22px;
}

@media screen and (max-width: 767px) {
  .footerMain__tagLine {
    font-size: 0.625rem;
    margin-bottom: 15px;
  }
}

.footerMain__logo {
  max-width: 270px;
}

@media screen and (max-width: 767px) {
  .footerMain__logo {
    margin-bottom: 25px;
  }
}

.footerButtons {
  font-size: 0.875rem;
  display: flex;
  justify-content: flex-end;
  gap: 8px;
}

@media screen and (max-width: 767px) {
  .footerButtons {
    justify-content: flex-start;
  }
}

.footerButtons__link {
  background: #222;
  padding: 0.3em 1em 0.3em 0.5em;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 5px;
      line-height: 25px;
    letter-spacing: 0;
}

@media screen and (max-width: 767px) {
  .footerButtons__link {
    padding: 0.3em 0.6em;
  }
}

.footerButtons__link._cart {
  padding-left: 0.7em;
}

.footerButtons__link._cart::before {
  content: "";
  width: 18px;
  height: 18px;
  background: url(https://d2w53g1q050m78.cloudfront.net/hashimotomasayos/uploads/img/icon_cart_white.svg) no-repeat center/contain;
}

.footerButtons__link._account {
  padding-left: 0.7em;
}

.footerButtons__link._account::before {
  content: "";
  width: 18px;
  height: 18px;
  background: url(https://d2w53g1q050m78.cloudfront.net/hashimotomasayos/uploads/img/icon_account_white.svg) no-repeat center/contain;
}

.footerButtons__link._line {
  background: #06C755;
  display: flex;
  align-items: center;
  gap: 5px;
  padding-left: 0.5em;
}

.footerButtons__link._line::before {
  content: "";
  width: 24px;
  height: 24px;
  background: url("https://d2w53g1q050m78.cloudfront.net/hashimotomasayos/uploads/img/icon_line.svg") no-repeat center/contain;
}

.footerMenu {
  display: flex;
  gap: 70px;
      letter-spacing: 0;
    line-height: 27px;
}

@media screen and (max-width: 1305px) {
  .footerMenu {
    gap: 60px;
  }
}

@media screen and (max-width: 1024px) {
  .footerMenu {
    flex-wrap: wrap;
  }
}

@media screen and (max-width: 767px) {
  .footerMenu {
    display: block;
  }
}

.footerMenu__block {
  flex: 0 1 auto;
}

@media screen and (max-width: 767px) {
  .footerMenu__block {
    padding-bottom: 30px;
    margin-bottom: 30px;
    border-bottom: 1px solid #ddd;
  }

  .footerMenu__block:last-child {
    padding-bottom: 0;
    margin-bottom: 0;
    border-bottom: none;
  }
}

.footerMenu__blockIn2Colum {
  display: flex;
  gap: 60px;
}

@media screen and (max-width: 767px) {
  .footerMenu__blockIn2Colum {
    gap: 40px;
  }
}

.footerMenu__blockIn2Colum>* {
  flex: 0 1 50%;
}

.footerMenu__item {
  font-size: 0.9375rem;
  font-weight: 500;
  margin-bottom: 10px;
}

.footerMenu__item:last-child {
  margin-bottom: 0;
}

.footerMenu__link {
  white-space: nowrap;
}

.footerMenu__subListOuter {
  display: flex;
  gap: 30px;
}

@media screen and (max-width: 767px) {
  .footerMenu__subListOuter {
    display: block;
  }
}

.footerMenu__subList {
  margin-top: 10px;
  margin-left: 1em;
}

.footerMenu__subItem {
  font-size: 0.875rem;
  font-weight: 400;
  margin-bottom: 10px;
  line-height: 1.6;
}

@media screen and (max-width: 767px) {
  .footerMenu__subItem {
    margin-bottom: 10px;
  }
}

.footerMenu__subItem:last-child {
  margin-bottom: 0;
}

.footerMenu__subLink {
  color: #424242;
}

.footerOtherMenu {
  border-top: 1px solid #DDD;
  padding-top: 30px;
  padding-bottom: 30px;
}

.footerOtherMenu__list {
  display: flex;
  gap: 20px;
  margin-bottom: 10px;
}

@media screen and (max-width: 767px) {
  .footerOtherMenu__list {
    display: block;
    margin-bottom: 20px;
  }
}

.footerOtherMenu__item {
  font-size: 0.9375rem;
  font-weight: 500;
}

@media screen and (max-width: 767px) {
  .footerOtherMenu__item {
    margin-bottom: 8px;
  }
}

.footerOtherMenu__relatedSite {
  font-size: 0.9375rem;
  font-weight: 500;
}

.footerBottom {
  background: #E0E721;
  padding-top: 9px;
  padding-bottom: 8px;
}

.footerBottom__list {
  display: flex;
  gap: 25px;
}

@media screen and (max-width: 767px) {
  .footerBottom__list {
    display: block;
  }
}

.footerBottom__item {
  font-size: 0.875rem;
  font-weight: 400;
}

@media screen and (max-width: 767px) {
  .footerBottom__item {
    font-size: 0.75rem;
  }
}

/* --------------------------------------------
 * 　reCAPTCHA
 * -------------------------------------------- */
.googleRecaptchaText {
  margin-top: 40px;
  font-size: 0.6875rem;
  text-align: center;
  color: #888;
  line-height: 1.5;
}

.googleRecaptchaText a {
  text-decoration: underline;
}

.grecaptcha-badge {
  visibility: hidden;
}

/* --------------------------------------------
 * 　404
 * -------------------------------------------- */
.page404 {
  text-align: center;
  padding-top: 30vh;
  padding-bottom: 30vh;
}

.page404__heading {
  font-size: 2.5rem;
  font-weight: bold;
  color: #aaa;
  margin-bottom: 30px;
}

.page404__message a {
  text-decoration: underline;
}

.page404__link {
  margin-top: 30px;
}

/* --------------------------------------------
 * 　ブロックエディタ カスタム
 * -------------------------------------------- */
.wp-block-buttons {
  margin-top: 20px !important;
  margin-bottom: 20px !important;
}

@media screen and (max-width: 767px) {
  .wp-block-button {
    width: 100% !important;
  }
}

/* --------------------------------------------
 * 　目次
 * -------------------------------------------- */
@media screen and (max-width: 767px) {
  .toc_list {
    font-size: 0.875rem;
  }
}

/* --------------------------------------------
 * 　プッシュワン
 * -------------------------------------------- */
/*# sourceMappingURL=style.css.map */