/* =========================================================
   FIVE-ONE / MARVYBOXS
   NEW COMMON CSS
   現行ヘッダー維持 + 新フッター
========================================================= */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-family: "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  color: #333;
  background: #fff;
  font-family: "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;
  font-size: 14px;
  line-height: 1.8;
  overflow-wrap: break-word;
}

html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

img {
  max-width: 100%;
  height: auto;
  border: 0;
}

a {
  color: #3f3129;
  text-decoration: none;
}

a:hover {
  opacity: .72;
}

svg {
  fill: currentColor;
}

button,
input,
select,
textarea {
  font: inherit;
}

.p-layout-container {
  box-sizing: border-box;
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
}

.p-layout-container::after {
  display: block;
  clear: both;
  content: "";
}

.p-page-content {
  max-width: 1600px;
  margin: 0 auto;
}

.c-social-icon {
  width: 22px;
  height: 22px;
  fill: currentColor;
}

/* =========================================================
   OVERLAY / SEARCH STATE
========================================================= */

.state-drawer-nav,
.state-search-form {
  display: none;
}

.c-overlay {
  position: fixed;
  z-index: 2000;
  inset: 0;
  visibility: hidden;
  opacity: 0;
  background: rgba(0,0,0,.7);
  transition: .2s;
}

.state-drawer-nav:checked ~ .close-drawer-nav,
.state-search-form:checked ~ .close-search-form {
  visibility: visible;
  opacity: 1;
}

.c-overlay__icon {
  position: fixed;
  top: 30px;
  right: 10%;
  width: 20px;
  height: 20px;
  color: #fff;
}

/* =========================================================
   CURRENT ADOPTED HEADER
========================================================= */

.p-header ul {
  list-style: none;
}

.p-header__bar {
  display: none;
}

.p-global-header {
  position: relative;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: #fdfcfb !important;
  box-shadow: none !important;
}

.p-global-header::after {
  display: block;
  clear: both;
  content: "";
}

.p-fixed-header,
#js-fixed-header {
  border: 0 !important;
  box-shadow: none !important;
}

.p-fixed-header {
  position: absolute;
  z-index: 1000;
  top: 0;
  width: 100%;
  transition: transform .2s;
}

.p-fixed-header.is-fixed {
  position: fixed;
  box-shadow: 0 1px 2px rgba(0,0,0,.15) !important;
}

.p-fixed-header.is-hidden {
  transform: translateY(-100%);
}

.p-fixed-header.is-top {
  position: absolute;
  box-shadow: none !important;
}

/* 元のショップロゴは非表示。MARVYBOXSヘッダー画像を使用 */
.p-global-header__logo {
  display: none !important;
  visibility: hidden !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.p-global-header__home {
  display: none;
  float: left;
  color: #24533f;
  font-size: 12px;
}

.isnot-top .p-global-header__home {
  display: inline-block;
}

.p-global-header__icon {
  width: 22px;
  height: 22px;
  vertical-align: -.4em;
}

.p-global-header__cart,
.p-global-header__search {
  float: right;
  margin-left: 15px;
  color: #24533f;
}

.p-global-header__cart-count {
  margin-left: 4px;
  color: #d68b31;
}

.p-global-header__cart-icon {
  position: relative;
}

.p-global-header__cart-icon--has-item::after {
  position: absolute;
  top: -5px;
  left: 14px;
  width: 8px;
  height: 8px;
  content: "";
  border: 2px solid #fff;
  border-radius: 50%;
  background: #d68b31;
}

/* PCナビ */
.p-global-nav {
  float: right;
  width: auto !important;
  color: #24533f;
  text-align: right;
  white-space: nowrap;
}

.p-global-nav__unit {
  position: static;
  display: inline-block;
  margin: 0;
  padding: 0 8px;
  vertical-align: top;
  text-align: left;
  font-weight: normal;
  white-space: nowrap;
}

.p-global-nav__heading {
  position: relative;
  cursor: pointer;
  white-space: nowrap;
}

.p-global-nav__heading::after {
  position: absolute;
  bottom: -20px;
  left: 50%;
  width: 0;
  height: 0;
  margin-left: -12px;
  content: "";
  opacity: 0;
  border: 12px solid transparent;
  border-bottom-color: #f6f2ec;
  transition: .2s;
}

.p-global-nav__body {
  position: absolute;
  z-index: 1100;
  right: 0;
  left: 0;
  overflow: hidden;
  height: 0;
  margin: 0;
  opacity: 0;
  transition: .2s;
}

.p-global-nav__body-inner {
  padding: 35px 0 28px;
  background: #f6f2ec;
  box-shadow: 0 8px 18px rgba(0,0,0,.08);
}

.p-global-nav__list {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 20px;
}

.p-global-nav__list::after {
  display: block;
  clear: both;
  content: "";
}

.p-global-nav__list li {
  float: left;
  width: 25%;
  margin-bottom: 9px;
}

.p-global-nav__list li:nth-child(4n + 1) {
  clear: both;
}

.p-global-nav__list a {
  position: relative;
  display: block;
  margin-right: 10px;
  padding: 5px 10px 5px 24px;
  color: #4c3a30;
  border-radius: 3px;
}

.p-global-nav__list a::before {
  position: absolute;
  left: 10px;
  content: "-";
}

.p-global-nav__list a:hover {
  background: rgba(36,83,63,.07);
  opacity: 1;
}

.p-global-nav .is-opened .p-global-nav__heading::after {
  opacity: 1;
}

.p-global-nav .is-opened .p-global-nav__body {
  height: auto;
  padding-top: 20px;
  opacity: 1;
}

/* MARVYBOXS 横長ヘッダー画像 */
.marvy-header-image {
  display:block !important;
  position:relative;
  left:auto !important;

  width:100% !important;
  max-width:none !important;

  margin:0 !important;
  padding:0 !important;

  overflow:hidden;
  border:0 !important;
  line-height:0 !important;
}

.marvy-header-image img {
  display:block !important;

  width:100% !important;
  max-width:100% !important;
  height:auto !important;

  margin:0 !important;
  padding:0 !important;
}

/* 会員名行 */
.ddright {
  margin: 0 !important;
  padding: 0 20px !important;
  color: #24533f;
  text-align: right;
  line-height: 1.5 !important;
}

.member_login_name {
  margin: 0;
  font-size: 11px;
}

/* 深緑サブナビ */
.p-sub-header {
  display: none;
  padding: 15px 0 !important;
  border: 0 !important;
  background: #24533f !important;
}

.p-sub-header::after {
  display: block;
  clear: both;
  content: "";
}

.p-sub-header a {
  color: #fff !important;
}

.p-sub-header__content-nav {
  float: left;
  margin: 0;
  padding: 0;
}

.p-sub-header__content-nav li {
  display: inline-block;
  margin-right: 20px;
  line-height: 30px;
  letter-spacing: .02em;
}
/* =========================================
   PCサブナビ ボタン風デザイン
========================================= */

@media screen and (min-width: 600px) {

  .p-sub-header__content-nav {
    display: flex;
    align-items: center;
    gap: 10px;
  }

  .p-sub-header__content-nav li {
    margin: 0 !important;
    line-height: 1.4;
  }

  .p-sub-header__content-nav li a {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 34px;
    padding: 6px 14px;

    color: #fff !important;
    background: rgba(255,255,255,.04);

    border: 1px solid rgba(255,255,255,.28);
    border-radius: 6px;

    font-size: 13px;
    line-height: 1.4;

    transition:
      background .2s ease,
      border-color .2s ease,
      transform .2s ease;
  }

  .p-sub-header__content-nav li a:hover {
    opacity: 1;
    background: rgba(255,255,255,.10);
    border-color: rgba(255,255,255,.55);
    transform: translateY(-1px);
  }

}

.p-sub-header__social-nav {
  float: right;
  margin: 5px 0;
  padding: 0;
}

.p-sub-header__social-nav li {
  display: inline-block;
}

.p-sub-header .c-social-icon {
  fill: #fff !important;
}

/* PCヘッダー上部情報 */
.p-header__tips {
  position: relative;
  z-index: 0;
  float: right;
  width: 100%;
  margin-right: -460px;
}

.p-header__tips-area {
  overflow: hidden;
  margin-right: 460px;
  padding: 0 1em;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.p-header__user-nav {
  position: relative;
  z-index: 1;
  float: right;
  width: 460px;
  margin: 0;
  padding: 0;
}

.p-header__user-nav li {
  display: table;
  float: right;
  width: 120px;
  margin-right: 1px;
  text-align: center;
}

.p-header__user-nav a {
  display: table-cell;
  color: #333;
  vertical-align: middle;
}

.p-header__user-nav svg {
  width: 16px;
  height: 16px;
  vertical-align: -.2em;
}

/* =========================================================
   SEARCH
========================================================= */

.open-search-form {
  cursor: pointer;
}

.p-search-form {
  position: fixed;
  z-index: -1;
  top: 50px;
  width: 100%;
  opacity: 0;
  transform: translateY(-200px);
  transition: .2s;
}

.state-search-form:checked ~ .p-body .p-search-form {
  z-index: 10000;
  opacity: 1;
  transform: none;
}

.p-search-form__body {
  position: relative;
  display: table;
  width: 90%;
  max-width: 600px;
  margin: 30px auto 0;
  padding-left: .5em;
  border-bottom: 2px solid #fff;
}

.p-search-form__keyword-cell {
  display: table-cell;
  width: auto;
}

.p-search-form__button-cell {
  display: table-cell;
  width: 40px;
}

.p-search-form__keyword {
  display: block;
  width: 100%;
  height: 40px;
  padding: 0;
  color: #fff;
  border: 0;
  outline: 0;
  background: transparent;
}

.p-search-form__keyword::placeholder {
  color: #fff;
}

.p-search-form__button {
  position: absolute;
  right: 0;
  bottom: 2px;
  width: 40px;
  height: 40px;
  padding: 0;
  color: #fff;
  border: 0;
  background: transparent;
}

.p-search-form__icon {
  width: 22px;
  height: 22px;
}

/* =========================================================
   MOBILE HEADER / DRAWER
========================================================= */

.sp-global-header {
  position: absolute;
  z-index: 1000;
  top: 0;
  display: table;
  width: 100%;
  border-bottom: 1px solid #e5e5e5;
  background: #f8f5f1;
}

.sp-global-header__unit {
  display: table-cell;
  width: 33.333%;
  height: 50px;
  color: #24533f;
  text-align: center;
  vertical-align: middle;
  border-right: 1px solid #e5e5e5;
}

.sp-global-header__unit:last-child {
  border-right: 0;
}

.p-drawer-nav {
  position: fixed;
  z-index: -1;
  top: 0;
  left: -80%;
  overflow-y: auto;
  width: 80%;
  height: 100%;
  opacity: 0;
  background: #fff;
  transition: .2s;
}

.state-drawer-nav:checked ~ .p-body .p-drawer-nav {
  z-index: 10000;
  left: 0;
  opacity: 1;
  box-shadow: 1px 0 5px rgba(0,0,0,.3);
}

.p-drawer__heading {
  padding: 12px 10px;
  color: #fff;
  background: #24533f;
}

.p-drawer__list {
  margin: 0;
  padding: 0;
  background: #fff;
}

.p-drawer__list a {
  color: #333;
}

.c-sp-list {
  display: table;
  width: 100%;
  padding: 12px 0 12px 10px;
  border-bottom: 1px solid #eee;
}

.c-sp-list__value {
  display: table-cell;
  width: auto;
  vertical-align: middle;
}

.c-sp-list__nav-icon {
  display: table-cell;
  width: 24px;
  text-align: right;
  vertical-align: middle;
}

.c-sp-list__icon,
.c-sp-list__icon--pulldown {
  width: 20px;
  height: 20px;
}

.p-drawer__pulldown {
  overflow: hidden;
  height: 0;
  margin: 0;
  opacity: 0;
  background: #f8f8f8;
}

.p-drawer__pulldown.is-opened {
  height: auto;
  opacity: 1;
}

/* =========================================================
   NEW FOOTER
========================================================= */

.fo-new-footer {
  width: 100%;
  margin-top: 70px;
  padding: 58px 0 18px;
  color: #fff !important;
  background: #24533f;
}

.fo-new-footer,
.fo-new-footer div,
.fo-new-footer strong {
  color: #fff;
}

.fo-new-footer a {
  color: rgba(255,255,255,.82) !important;
}

.fo-new-footer a:hover {
  color: #f0dda2 !important;
  opacity: 1;
}

.fo-new-footer__main {
  display: grid;
  grid-template-columns: 1.05fr 2fr;
  gap: 70px;
}

.fo-new-footer__brand-title {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 29px;
  letter-spacing: .04em;
}

.fo-new-footer__brand p {
  margin: 12px 0 0;
  color: rgba(255,255,255,.72);
  font-size: 11px;
  line-height: 1.9;
}

.fo-new-footer__social {
  display: flex;
  gap: 8px;
  margin-top: 18px;
}

.fo-new-footer__social a {
  display: inline-flex;
  width: 34px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 50%;
}

.fo-new-footer__nav {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 26px;
}

.fo-new-footer__nav > div {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.fo-new-footer__nav strong {
  margin-bottom: 6px;
  font-family: "Montserrat", sans-serif;
  font-size: 10px;
  letter-spacing: .13em;
}

.fo-new-footer__nav a {
  font-size: 11px;
}

.fo-new-footer__mailmaga {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 35px;
  margin-top: 43px;
  padding: 28px 0;
  align-items: center;
  border-top: 1px solid rgba(255,255,255,.2);
  border-bottom: 1px solid rgba(255,255,255,.2);
}

.fo-new-footer__mailmaga-title span {
  display: block;
  margin-bottom: 4px;
  color: rgba(255,255,255,.55);
  font-family: "Montserrat", sans-serif;
  font-size: 9px;
  letter-spacing: .15em;
}

.fo-new-footer__mailmaga-title strong {
  font-size: 13px;
  font-weight: 500;
}

.fo-new-footer__mailmaga-form form {
  display: flex;
  gap: 8px;
}

.fo-new-footer__mailmaga-form .mailmaga_text {
  flex: 1;
}

.fo-new-footer__mailmaga-form .mailmaga_text input {
  width: 100%;
  height: 42px;
  padding: 0 12px;
  color: #333;
  border: 0;
  background: #fff;
}

.fo-new-footer__mailmaga-form .mailmaga_ins input {
  height: 42px;
  padding: 0 18px;
  color: #fff;
  border: 1px solid rgba(255,255,255,.85);
  background: transparent;
  cursor: pointer;
}

.fo-new-footer__mailmaga-form .mailmaga_del,
.fo-new-footer__mailmaga-form p {
  display: none;
}

.fo-new-footer__bottom {
  display: flex;
  padding-top: 17px;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  color: rgba(255,255,255,.58);
  font-family: "Montserrat", sans-serif;
  font-size: 9px;
}

/* =========================================================
   COMMON SMALL PARTS NEEDED BY CURRENT PAGES
========================================================= */

.c-topic-path {
  max-width: 1240px;
  margin: 25px auto;
  padding: 0 20px;
  color: #777;
  font-size: 11px;
}

.c-topic-path__list {
  margin: 0;
  padding: 0;
}

.c-topic-path__item {
  display: inline-block;
  margin-right: .5em;
}

.c-topic-path svg {
  width: 11px;
  height: 11px;
}

.c-topic-path a {
  color: #555;
}

/* 商品ラベルは現行運用を維持 */
.sp_to_1,.sp_to_2,.sp_to_3,.sp_to_4,.sp_to_5,.sp_to_6,.sp_to_7,.sp_to_8,
.sp_to_9,.sp_to_10,.sp_to_11,.sp_to_12,.sp_to_13,.sp_to_14,.sp_to_15,.sp_to_16,
.sp_to_17,.sp_to_18,.sp_to_19,.sp_to_20,.sp_to_21,.sp_to_22,.sp_to_23,.sp_to_24,
.sp_to_25,.sp_to_26 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 4px 4px 0 0;
  padding: 4px 9px;
  border-radius: 999px;
  color: #fff;
  background: #777;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.2;
}

.sp_to_1{background:#ee9fad}.sp_to_2{background:#d94a63}.sp_to_3{background:#ae7fc8}
.sp_to_4{background:#ea9830}.sp_to_5{background:#2f9c67}.sp_to_6{background:#9db3c8}
.sp_to_7{background:#67bcc5}.sp_to_8{background:#cadb7e;color:#5f6738}.sp_to_9{background:#de4f91}
.sp_to_10{background:#e87924;color:#fff}.sp_to_11{background:#f2d061;color:#594619}
.sp_to_12{background:#5c8fe6}.sp_to_13{background:#2d9d66}.sp_to_14{background:#bd6fda}
.sp_to_15{background:#f0eb6c;color:#154773}.sp_to_16{background:#7f6154}.sp_to_17{background:#8da86f}
.sp_to_18{background:#505050}.sp_to_19{background:#6f9d99}.sp_to_20{background:#7c8fd7}
.sp_to_21{background:#867ba9}.sp_to_22{background:#d0b839}.sp_to_23{background:#6d82a8}
.sp_to_24{background:#b45f5f}.sp_to_25{background:#8a6fbd}.sp_to_26{background:#5f5a64}

/* =========================================
   取り置き対象バッジ アイコン
   バッジ本体の高さには影響させない
========================================= */

.sp_to_11{
  position:relative;
  padding-left:24px;
}

.sp_to_11::before{
  content:"inventory_2";
  font-family:"Material Symbols Outlined";
  font-size:12px;
  font-weight:normal;
  font-style:normal;
  line-height:1;

  position:absolute;
  left:8px;
  top:50%;
  transform:translateY(-50%);

  font-feature-settings:"liga";
  -webkit-font-feature-settings:"liga";
  -webkit-font-smoothing:antialiased;
}

/* =========================================================
   RESPONSIVE
========================================================= */

@media screen and (min-width: 600px) {
  .p-layout-container {
    padding: 0 20px;
  }

  .p-header__bar {
    display: inherit;
    overflow: hidden;
    width: 100%;
    padding-bottom: 1px;
    color: #555;
    background: #fdfcfb;
    font-size: 11px;
    line-height: 36px;
    border-bottom: 1px solid #eee;
  }

  .p-sub-header {
    display: inherit;
  }

  .sp-global-header,
  .p-drawer-nav {
    display: none;
  }
}

@media screen and (max-width: 599px) {
  .p-body {
    padding-top: 50px;
  }

  .p-fixed-header,
  .js-fix-height,
  .marvy-header-image,
  .p-sub-header {
    display: none !important;
  }

  .fo-new-footer {
    margin-top: 50px;
    padding-top: 42px;
  }

  .fo-new-footer__main {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .fo-new-footer__nav {
    grid-template-columns: 1fr 1fr;
    gap: 25px 18px;
  }

  .fo-new-footer__mailmaga {
    grid-template-columns: 1fr;
  }

  .fo-new-footer__mailmaga-form form {
    display: block;
  }

  .fo-new-footer__mailmaga-form .mailmaga_text {
    margin-bottom: 8px;
  }

  .fo-new-footer__mailmaga-form .mailmaga_ins input {
    width: 100%;
  }

  .fo-new-footer__bottom {
    display: block;
    text-align: center;
  }

  .fo-new-footer__bottom a {
    display: inline-block;
    margin-top: 10px;
  }
}

/* =========================================================
   お気に入り・最近チェックした商品
   新サイト用デザイン
========================================================= */

/* 見出し */
.p-page-content > .p-layout-container:has(.c-thumbnail-product-list)
.c-section__heading {
  margin: 0 0 28px;
  padding: 0;
  color: #333;
  text-align: left;
  background: none;
}

.p-page-content > .p-layout-container:has(.c-thumbnail-product-list)
.c-section__heading--title {
  margin: 0;
  padding: 0;
}

.p-page-content > .p-layout-container:has(.c-thumbnail-product-list)
.c-section__heading--title::after {
  display: none;
}

.p-page-content > .p-layout-container:has(.c-thumbnail-product-list)
.c-section__heading--title span {
  display: block;
  padding: 0;
  color: #333;
  background: transparent;
  font-size: 20px;
  font-weight: 500;
}


/* 商品一覧 */
.c-thumbnail-product-list {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 24px 18px;

  width: 100%;
  margin: 0 !important;
  padding: 0 !important;

  list-style: none;
}


/* 商品1件 */
.c-thumbnail-product-list__item {
  float: none !important;

  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;

  min-width: 0;
  text-align: center;
}


/* 非表示商品 */
.c-thumbnail-product-list__item.is-hidden {
  display: none !important;
}


/* 商品画像枠 */
.c-thumbnail-product-list__image-wrap {
  position: relative;

  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;

  margin: 0;
  padding: 0;

  overflow: hidden;

  /* トップページの商品画像とデザイン統一 */
  border: 1px solid #e8e1da !important;
  border-radius: 12px;
  background: #fff;
}


/* 画像ボックス */
.c-thumbnail-product-list .c-image-box {
  position: absolute;

  top: 0;
  right: 0;
  bottom: 0;
  left: 0;

  width: 100%;
  height: 100%;
}


/* 商品画像 */
.c-thumbnail-product-list .c-image-box__image {
  position: absolute;

  top: 50%;
  left: 50%;

  display: block;

  width: auto;
  height: auto;

  max-width: 100%;
  max-height: 100%;

  margin: 0;

  transform: translate(-50%, -50%);

  object-fit: contain;
}


/* 1枚目 */
.c-thumbnail-product-list .c-image-box--main {
  opacity: 1;
  transition: opacity .25s ease;
}


/* 2枚目 */
.c-thumbnail-product-list .c-image-box--otherimg {
  opacity: 0;
  transition: opacity .25s ease;
}


/* PCのみ画像切替 */
@media screen and (min-width: 901px) {

  .c-thumbnail-product-list__image-wrap:hover
  .c-image-box--main {
    opacity: 0;
  }

  .c-thumbnail-product-list__image-wrap:hover
  .c-image-box--otherimg {
    opacity: 1;
  }

}


/* 価格 */
.c-thumbnail-product-list__price {
  margin-top: 11px !important;

  color: #333;
  font-family: "Montserrat", sans-serif;
  font-size: 12px;
  font-weight: 600;

  text-align: center;
}


/* 通常価格 */
.c-thumbnail-product-list__regular-price {
  margin-top: 4px !important;

  color: #999;
  font-size: 10px;
  font-weight: 400;

  text-align: center;
  text-decoration: line-through;
}


/* SOLD OUT */
.c-thumbnail-product-list__soldout {
  margin-top: 11px !important;

  color: #999;
  font-family: "Montserrat", sans-serif;
  font-size: 10px;
  font-weight: 600;

  letter-spacing: .08em;
}


/* 会員特別価格 */
.c-thumbnail-product-list .member-price-label {
  display: block;

  width: fit-content;

  margin: 0 auto 6px;
  padding: 4px 9px;

  color: #876c31;
  background: #fff8dc;
  border: 1px solid #dfca87;
  border-radius: 999px;

  font-size: 9px;
  font-weight: 600;
}


/* もっと見る */
.c-product-list__button {
  margin-top: 30px;
  text-align: center;
}

.c-product-list__button button {
  min-width: 200px;
  padding: 11px 25px;

  color: #24533f;
  background: #fff;
  border: 1px solid #24533f;

  cursor: pointer;
}

.c-product-list__button button:hover {
  color: #fff;
  background: #24533f;
}


/* =========================================================
   タブレット
========================================================= */

@media screen and (max-width: 900px) {

  .c-thumbnail-product-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px 14px;
  }

}


/* =========================================================
   スマートフォン
========================================================= */

@media screen and (max-width: 600px) {

  .p-page-content > .p-layout-container:has(.c-thumbnail-product-list)
  .c-section__heading--title span {
    font-size: 17px;
  }

  .c-thumbnail-product-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px 10px;
  }

  .c-thumbnail-product-list__price {
    font-size: 10px;
  }

}

/* ===============================
   YouTube動画
=============================== */
.iframe-wrapper,
.video,
.movie-wrap{
  position:relative;
  width:100%;
  max-width:920px;
  margin:28px auto;
  aspect-ratio:16/9;
  height:auto;
  padding:0!important;
  overflow:hidden;
}

.iframe-wrapper iframe,
.video iframe,
.movie-wrap iframe{
  position:absolute;
  inset:0;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  border:0;
}

/* ===============================
 作家についてアコーディオン
=============================== */

.dt-lux-accordion {
  margin: 36px 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.dt-lux-accordion summary {
  position: relative;
  padding: 18px 54px 18px 18px;
  margin: 0;
  border: 1px solid #d8cec5;
  border-radius: 10px;
  background: linear-gradient(to bottom, #ffffff, #f9f6f2);
  box-shadow: 0 4px 12px rgba(0,0,0,0.04);
  cursor: pointer;
  list-style: none;
}

.dt-lux-accordion summary::-webkit-details-marker {
  display: none;
}

.dt-lux-accordion summary::after {
  content: "+";
  position: absolute;
  right: 18px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  border: 1px solid #cdbfb2;
  border-radius: 50%;
  text-align: center;
  line-height: 22px;
  font-size: 16px;
  color: #7a5e4f;
  background: #fff;
}

.dt-lux-accordion[open] summary {
  border-radius: 10px 10px 0 0;
}

.dt-lux-accordion[open] summary::after {
  content: "−";
}

.dt-lux-inner {
  padding: 22px 12px 24px;
  background: #fff;
  color: #5b473a;
  border: 1px solid #ddd6cf;
  border-top: 0;
}

.dt-lux-inner h2 {
  font-size: 24px;
  line-height: 1.5;
  color: #4f3c31;
}

.dt-lux-inner h3 {
  font-size: 20px;
  line-height: 1.6;
  color: #4f3c31;
}

.dt-lux-inner div,
.dt-lux-inner td {
  font-size: 15px;
  line-height: 2;
  color: #5b473a;
}

.dt-info-note {
  margin: 8px 0 0;
  padding: 12px 14px;
  border: 1px solid #e7ddd4;
  background: #faf7f3;
  font-size: 14px;
  line-height: 1.9;
  color: #5b473a;
}

.dt-info-icon {
  display: inline-block;
  width: 18px;
  height: 18px;
  margin-right: 6px;
  border: 1px solid #9d7b66;
  border-radius: 50%;
  text-align: center;
  line-height: 16px;
  font-size: 12px;
  font-weight: bold;
  color: #9d7b66;
}

.dt-lux-inner a {
  color: #6b4b3e;
  text-decoration: underline;
}

@media screen and (max-width: 768px) {
  .dt-lux-accordion {
    margin: 28px 0;
  }

  .dt-lux-accordion summary {
    padding: 15px 46px 15px 16px;
    font-size: 14px;
  }

  .dt-lux-accordion summary::after {
    right: 14px;
    width: 22px;
    height: 22px;
    line-height: 20px;
    font-size: 15px;
  }

  .dt-lux-inner {
    padding: 16px 6px 18px;
  }

  .dt-lux-inner h2 {
    font-size: 20px;
  }

  .dt-lux-inner h3 {
    font-size: 18px;
  }

  .dt-lux-inner div,
  .dt-lux-inner td {
    font-size: 14px;
    line-height: 1.9;
  }

  .dt-info-note {
    font-size: 13px;
  }
}

/* ===============================
   商品ステータスバッジ 共通設定
=============================== */
p[class^="sp_to_"]{
  margin:4px 6px 4px 0 !important;
}

/* ===============================
   商品説明 ブランド・商品名ボックス
=============================== */
.en-box{
  display:block;
  width:100%;
  box-sizing:border-box;

  margin:16px 0 24px;
  padding:14px 18px;

  background:#faf8f5;
  border:1px solid #ded5cd;
  border-left:4px solid #b79278;
  border-radius:6px;

  color:#4f3c31;
  font-size:14px;
  font-weight:600;
  line-height:1.6;
}

/* =========================================
   お気に入り・最近チェック 全幅背景
========================================= */

.fo-favorite-section{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:50px !important;
  padding-bottom:50px !important;

  background:#faf8f5;
  box-shadow:0 0 0 100vmax #faf8f5;
  clip-path:inset(0 -100vmax);
}

.fo-history-section{
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:50px !important;
  padding-bottom:55px !important;

  background:#f4f7f5;
  box-shadow:0 0 0 100vmax #f4f7f5;
  clip-path:inset(0 -100vmax);
}

/* フッターとの隙間も削除 */
.fo-new-footer{
  margin-top:0 !important;
}


/* スマホ */
@media screen and (max-width:600px){

  .fo-favorite-section,
  .fo-history-section{
    padding-top:40px !important;
    padding-bottom:45px !important;
  }

}


/* スマホ */
@media screen and (max-width: 600px) {

  .fo-favorite-section,
  .fo-history-section {
    padding-top: 45px;
    padding-bottom: 55px;
  }

}

.fo-new-footer{
  margin-top:0 !important;
}

/* =========================================
   お気に入り → 最近チェック 間の余白を完全に削除
========================================= */

.fo-favorite-section + .fo-history-section {
  margin-top: 0 !important;
}

/* セクションを包んでいる親要素の余白対策 */
.fo-favorite-section {
  margin-bottom: 0 !important;
}

.fo-history-section {
  margin-top: 0 !important;
}

/* =========================================
   トップページだけコンテンツ幅制限を解除
========================================= */

.p-page-content.top{
  max-width:none !important;
  width:100% !important;
  margin:0 !important;
}

/* =========================================
   MARVYBOXS ヘッダー画像
   ホバー時の色・透明度変化を無効化
========================================= */

.marvy-header-image,
.marvy-header-image:hover,
.marvy-header-image:focus,
.marvy-header-image:active{
  opacity:1 !important;
  filter:none !important;
  background:transparent !important;
}

.marvy-header-image img,
.marvy-header-image:hover img,
.marvy-header-image:focus img,
.marvy-header-image:active img{
  opacity:1 !important;
  filter:none !important;
  transform:none !important;
}

/* ========================================
   ページ上部へ戻るボタン
======================================== */

.page-top {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 9999;

  width: 50px;
  height: 50px;
  padding: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  background: #1f5a43;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 50%;

  box-shadow: 0 5px 18px rgba(0,0,0,.18);

  cursor: pointer;

  opacity: 0;
  visibility: hidden;
  transform: translateY(12px);

  transition:
    opacity .25s ease,
    visibility .25s ease,
    transform .25s ease,
    background .2s ease;
}


/* 表示 */
.page-top.is-show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}


/* ↑ 矢印 */
.page-top-arrow {
  width: 11px;
  height: 11px;

  border-top: 2px solid #fff;
  border-left: 2px solid #fff;

  transform: rotate(45deg);
  margin-top: 5px;
}


/* PC：マウスを乗せた時 */
@media (hover: hover) {
  .page-top:hover {
    background: #174633;
    transform: translateY(-3px);
  }
}


/* スマートフォン */
@media (max-width: 767px) {

  .page-top {
    width: 44px;
    height: 44px;

    right: 14px;
    bottom: 18px;
  }

  .page-top-arrow {
    width: 10px;
    height: 10px;
  }

}

/* =========================================
   サブナビ
   メニュー + SNS 全体を中央配置
========================================= */

@media screen and (min-width: 600px) {

  .p-sub-header .p-layout-container {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .p-sub-header__content-nav {
    float: none !important;
    flex: 0 0 auto;
    margin: 0 !important;
    padding: 0;
  }

  .p-sub-header__social-nav {
    float: none !important;
    flex: 0 0 auto;

    /* メルマガとSNSの間隔 */
    margin: 5px 0 5px 28px !important;
    padding: 0;
  }

  .p-sub-header__social-nav li {
    margin-left: 8px;
  }

}

/* ===============================
 決済方法および注意事項 アコーディオン
=============================== */

.toggle{
  display:none;
}

.Label{
  display:block;
  position:relative;
  width:100%;
  max-width:1000px;
  box-sizing:border-box;
  margin:0 auto;
  padding:18px 54px 18px 18px;

  border:1px solid #d8cec5;
  border-radius:10px;

  background:linear-gradient(to bottom,#fff,#f9f6f2);
  box-shadow:0 4px 12px rgba(0,0,0,.04);

  color:#4f3c31;
  font-size:14px;
  font-weight:400;

  cursor:pointer;
}

/* 元のアイコンを非表示 */
.Label .material-symbols-outlined{
  display:none;
}

/* ＋ / − */
.Label::after{
  content:"+";
  position:absolute;
  right:18px;
  top:50%;
  transform:translateY(-50%);

  width:24px;
  height:24px;

  border:1px solid #cdbfb2;
  border-radius:50%;

  background:#fff;
  color:#7a5e4f;

  font-size:16px;
  line-height:22px;
  text-align:center;
}

.toggle:checked + .Label::after{
  content:"−";
}

/* ===============================
 決済方法アコーディオン 内容
=============================== */

.content{
  width:100%;
  max-width:1000px;
  max-height:0;
  box-sizing:border-box;

  margin:0 auto;
  padding:0 18px;

  overflow:hidden;

  background:#fff;
  border:1px solid transparent;
  border-radius:0 0 10px 10px;

  transition:
    max-height .45s ease,
    padding .3s ease;
}

.toggle:checked + .Label{
  border-radius:10px 10px 0 0;
}

.toggle:checked + .Label + .content{
  max-height:5000px;
  padding:22px 18px;
  border:1px solid #d8cec5;
  border-top:0;
}

/* ===============================
 決済方法アコーディオン 内容調整
=============================== */

.content p,
.content div,
.content td,
.content li{
  color:#5b473a;
  font-size:14px;
  line-height:1.9;
}

.content p{
  margin:0 0 12px;
}

.content img{
  max-width:100%;
  height:auto;
}

.content table{
  width:100%;
  max-width:100%;
}

.content a{
  color:#6b4b3e;
  text-decoration:underline;
}

/* ===============================
 決済方法アコーディオン スマホ
=============================== */

@media screen and (max-width:768px){

  .Label{
    padding:15px 46px 15px 16px;
    font-size:14px;
  }

  .Label::after{
    right:14px;
    width:22px;
    height:22px;
    line-height:20px;
  }

  .toggle:checked + .Label + .content{
    padding:16px 12px;
  }

  .content p,
  .content div,
  .content td,
  .content li{
    font-size:13px;
    line-height:1.85;
  }
}

/* =========================================
   会員特別価格 共通バッジ
   トップ・カテゴリー・商品一覧
========================================= */

.fo-member-label,
.member-price-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: fit-content;

  margin: 0 0 7px;
  padding: 4px 9px;

  background: #fff2e7;
  border: 1px solid #e4ad7e;
  border-radius: 999px;

  color: #b85f1f;

  font-size: 11px;
  line-height: 1.3;
  font-weight: 700;

  letter-spacing: .02em;
  white-space: nowrap;
}

/* =========================================
   ハロウィン商品・クリスマス：商品情報を通常カラーに統一
========================================= */

/* 商品名 */
.fo-product-grid--dark .fo-product-card__name,
.fo-product-grid--dark .fo-product-card__name:link,
.fo-product-grid--dark .fo-product-card__name:visited {
  color: #3f352f !important;
}

/* 販売価格 */
.fo-product-grid--dark .fo-product-card__price {
  color: #3f352f !important;
}

/* 通常価格 */
.fo-product-grid--dark .fo-product-card__regular {
  color: #3f352f !important;
}

/* 価格内の要素にも強制適用 */
.fo-product-grid--dark .fo-product-card__price span,
.fo-product-grid--dark .fo-product-card__regular span {
  color: #3f352f !important;
}

/* =========================================
   注文履歴・ご予約確認
========================================= */

.p-header__user-nav .fo-account-nav {
  width: 190px !important;
}

.p-header__user-nav .fo-account-nav a {
  white-space: nowrap;
  font-size: 11px;
}

/* =========================================
   PCサブナビ
   通常メニュー + SNS 8ボタン統一
========================================= */

@media screen and (min-width: 600px) {

  /* サブナビ全体 */
  .p-sub-header .p-layout-container {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 10px;

    flex-wrap: nowrap;
  }


  /* 通常メニュー */
  .p-sub-header__content-nav {
    display: flex !important;
    align-items: center;
    justify-content: center;

    flex: 0 0 auto;
    gap: 10px;

    float: none !important;

    margin: 0 !important;
    padding: 0 !important;
  }


  .p-sub-header__content-nav li {
    display: block;
    margin: 0 !important;
    padding: 0;
    line-height: 1.4;
  }


  /* SNS側 */
  .p-sub-header__social-nav {
    display: flex !important;
    align-items: center;
    justify-content: center;

    flex: 0 0 auto;
    gap: 10px;

    float: none !important;

    margin: 0 !important;
    padding: 0 !important;
  }


  .p-sub-header__social-nav li {
    display: block;
    margin: 0 !important;
    padding: 0;
  }


  /* 全ボタン共通 */
  .p-sub-header__content-nav li a,
  .p-sub-header__social-nav li a {
    display: inline-flex !important;

    align-items: center;
    justify-content: center;

    min-height: 34px;
    padding: 6px 14px;

    color: #fff !important;
    background: rgba(255,255,255,.04);

    border: 1px solid rgba(255,255,255,.28);
    border-radius: 6px;

    font-size: 13px;
    line-height: 1.4;
    white-space: nowrap;

    transition:
      background .2s ease,
      border-color .2s ease,
      transform .2s ease;
  }


  /* ホバー */
  .p-sub-header__content-nav li a:hover,
  .p-sub-header__social-nav li a:hover {
    opacity: 1;

    background: rgba(255,255,255,.10);
    border-color: rgba(255,255,255,.55);

    transform: translateY(-1px);
  }


  /* SNSアイコン */
  .p-sub-header__social-nav .c-social-icon {
    width: 16px;
    height: 16px;

    margin-right: 7px;

    fill: currentColor !important;
  }

}

/* =========================================================
   カート下 お得な情報・公式SNS
========================================================= */

.fo-product-links {
  max-width: 1000px;
  margin: 56px auto 0;
}

.fo-product-links__heading {
  margin: 0 0 22px;
  text-align: center;
}

.fo-product-links__heading span {
  display: block;
  margin-bottom: 5px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .18em;
  color: #9b8c82;
}

.fo-product-links__heading strong {
  font-size: 21px;
  color: #3e342e;
}

.fo-product-links__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.fo-product-link-card {
  position: relative;
  display: block;
  min-height: 118px;
  padding: 20px 42px 20px 20px;
  box-sizing: border-box;

  border: 1px solid #e5ddd5;
  border-radius: 10px;
  background: #fff;

  color: #403832;
  text-decoration: none;

  transition: .2s;
}

.fo-product-link-card:hover {
  background: #faf7f4;
  transform: translateY(-1px);
}

.fo-product-link-card__title {
  margin-bottom: 8px;
  font-size: 15px;
  font-weight: 700;
  color: #4f3c31;
}

.fo-product-link-card__text {
  font-size: 12px;
  line-height: 1.7;
  color: #746b65;
}

.fo-product-link-card__arrow {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);

  font-size: 26px;
  color: #9b8c82;
}

@media screen and (max-width: 767px) {

  .fo-product-links {
    margin-top: 42px;
  }

  .fo-product-links__grid {
    grid-template-columns: 1fr;
  }

  .fo-product-link-card {
    min-height: 0;
    padding: 17px 42px 17px 17px;
  }

}

/* =========================================================
   全商品共通 こちらもおすすめ横スライダー
========================================================= */

.fo-common-recommend {
  width: 100%;
  max-width: 1200px;
  margin: 70px auto 0;
  box-sizing: border-box;
}

/* スマホ */
@media screen and (max-width: 599px) {
  .fo-common-recommend {
    margin-top: 50px;
  }
}

/* ===============================
選別バッジ
=============================== */
.marvy-pass-badge{
  display:flex;
  justify-content:center;  /* ←中央寄せ */
  align-items:center;
  gap:6px;
  margin:0 0 12px;
  padding:6px 14px;
  font-size:12.5px;
  font-weight:600;
  color:#3e5c4a;
  background:#f7f5ef;
  border:1px solid #e2ded2;
  border-radius:30px;
}

.marvy-inspection-box{
  margin:25px 0;
  padding:16px 18px;
  background:#fcfaf7;
  border:1px solid #eee4da;
  border-radius:10px;
  font-size:13px;
  line-height:1.9;
  color:#5b473a;
}

.marvy-btn-link{
  text-decoration:none;
}

.marvy-pass-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin:0 auto;
  padding:10px 18px;
  font-size:13px;
  font-weight:600;
  color:#3e5c4a;
  background:#f7f5ef;
  border:1px solid #cfc7b7;
  border-radius:30px;
  text-align:center;
  letter-spacing:0.04em;
  cursor:pointer;
}

.marvy-btn-note{
  font-size:12px;
  margin-top:8px;
  color:#777;
  text-align:center;
}

.marvy-pass-badge{
  cursor:pointer;
}

/* ===============================
新製品案内ボックス
=============================== */
/* 新製品案内ボックス */
.newproduct-box {
  margin: 20px 0;
  padding: 22px 20px 18px;
  background: #f8f5f1;
  border: 1px solid #d8cec3;
  border-radius: 8px;
  color: #4e433b;
  line-height: 1.9;
  font-size: 14px;
}

/* タイトル */
.newproduct-title {
  text-align: center;
  margin-bottom: 14px;
}

.newproduct-title span {
  display: inline-block;
  font-size: 16px;
  letter-spacing: 0.14em;
  color: #6a5a4d;
  font-weight: 600;
  padding-bottom: 6px;
  border-bottom: 1px solid #cfc3b7;
}


/* =========================================
   全フリーページ 本文フォント統一
========================================= */

.p-page-content[class*=" free"] p,
.p-page-content[class*=" free"] li,
.p-page-content[class*=" free"] td,
.p-page-content[class*=" free"] dd,
.p-page-content[class*=" free"] dt {
  font-family: "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  line-height: 1.8 !important;
  color: #333 !important;
}