/* ========================================================================
   CSS変数
======================================================================== */
:root {
  --font-main: "Noto Serif JP", serif;
  --font-sub: "Noto Sans JP", sans-serif;
  --color-text: #000000;
  --color-white: #ffffff;
  --color-ink: #231815;
  --color-accent: #e4007f;
}

/* ========================================================================
   ベース
======================================================================== */
html {width: 100%; height: 100%; font-size: 62.5%;}

@media screen and (max-width: 1920px) {
  html {font-size: 0.6944444vw;} /* 10 ÷ 1440 × 100 */
}

@media screen and (max-width: 999px) {
  html {font-size: 2.6666667vw;} /* 10 ÷ 375 × 100 */
}
body {font-family: var(--font-main); font-size: 1.4rem; color: var(--color-text); background: var(--color-white); width: 100%; line-height: 1.5;}
a {color: var(--color-text); text-decoration: none; transition: opacity 0.3s ease;}
a:hover {opacity: 0.7; text-decoration: none;}
img {display: block;}

/* ========================================================================
   ユーティリティ
======================================================================== */
.inner {width: 100%; max-width: 144rem; margin: 0 auto;}

/* PC/SP表示切り替え */
.sp-only {display: none !important;}
.pc-only {display: block !important;}

@media screen and (max-width: 999px) {
  .pc-only {display: none !important;}
  .sp-only {display: block !important;}
}

/* ========================================================================
   ヘッダー
======================================================================== */
.site-header {position: fixed; top: 4.7rem; left: 0; width: 100%; height: 4.4rem; z-index: 100;}
.header-spacer {height: 0;}

.header-inner {max-width: 144rem; height: 100%; margin: 0 auto; padding: 0 1.9rem; display: flex !important; align-items: center;}

.header-logo {flex-shrink: 0;}
.header-logo img {width: 26rem; height: 3.7rem;}

.header-nav-pill {margin-left: auto; width: 94rem; height: 4.3rem; background: var(--color-white); display: flex; align-items: center; justify-content: space-between; padding: 0 3.08rem 0 3rem;}

.header-nav {display: flex; align-items: center; gap: 2.5rem;}
.header-nav-item {position: relative;}
.header-nav-btn {display: flex; align-items: center; gap: 0.7rem; background: none; border: 0; padding: 0; cursor: pointer; font-family: var(--font-main); font-size: 1.3rem; color: var(--color-text); white-space: nowrap; transition: color 0.2s ease;}
.header-nav-btn .arrow {width: 1.3rem; height: 0.688rem; transition: transform 0.2s ease;}
.header-nav-btn.is-active .arrow {transform: rotate(180deg);}
.header-nav-btn.is-active {color: #c40080; font-weight: 500;}
.header-nav-link {font-family: var(--font-main); font-size: 1.3rem; color: var(--color-text); white-space: nowrap;}
.header-nav-link--salon {font-size: 1.4rem;}

.header-icons {display: flex; align-items: center; gap: 3.16rem;}
.header-icons a, .header-icons button {display: flex; background: none; border: 0; padding: 0; cursor: pointer;}
.icon-search img {width: 1.545rem; height: 1.598rem;}

.header-search {position: relative;}
.header-search-form {display: none; position: absolute; top: calc(100% + 1.5rem); right: 0; z-index: 10; width: 28rem; background: var(--color-white); border: 0.1rem solid #d9d9d9; box-shadow: 0 0.4rem 1.2rem rgba(0, 0, 0, 0.08); padding: 1.2rem 1.5rem;}
.header-search-form form {display: flex; align-items: center; height: 4rem; border-bottom: 0.1rem solid #000000;}
.header-search-form input {flex: 1; height: 100%; border: 0; outline: none; background: none; font-family: var(--font-sub); font-size: 1.4rem; color: var(--color-text);}
button.header-search-form-submit {width: 2rem; height: 1.98rem; background: none; border: 0; padding: 0; cursor: pointer;}
.header-search-form button img {width: 100%; height: 100%;}
.icon-mypage img {width: 1.46rem; height: 1.636rem;}
.icon-mail img {width: 1.9rem; height: 1.3rem;}
.icon-cart img {width: 1.792rem; height: 1.933rem;}

@media screen and (max-width: 999px) {
  .site-header {top: 0; height: 9rem;} 
  .header-spacer {height: 9rem;}

  .header-inner {display: none !important;}

  .header-notice-sp {height: 3rem; background: #000000; display: flex !important; align-items: center; justify-content: center;}
  .header-notice-sp p {font-family: var(--font-sub); font-size: 1.2rem; color: var(--color-white); text-align: center;}

  .header-inner-sp {height: 6rem; background: var(--color-white); display: flex !important; align-items: center; justify-content: space-between; padding: 0 1.95rem 0 0.836rem;}
  .header-logo-sp img {width: 16.425rem; height: 2.312rem;}
  .header-inner-sp-right {display: flex; align-items: center; gap: 1.21rem;}
  .icon-cart-sp img {width: 2.6398rem; height: 2.3644rem;}

  button.header-menu-btn {display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; width: 1.6rem; background: none; border: 0; padding: 0; cursor: pointer;}
  .header-menu-btn span {display: block; width: 1.6rem; height: 0.1rem; background: #000000; transition: transform 0.3s ease, opacity 0.3s ease;}
  .header-menu-btn.is-active span:nth-child(1) {transform: translateY(0.55rem) rotate(45deg);}
  .header-menu-btn.is-active span:nth-child(2) {transform: translateY(-0.55rem) rotate(-45deg);}

  .sp-menu {position: fixed; top: 9rem; left: 0; width: 100%; height: calc(100% - 9rem); background: var(--color-white); z-index: 90; overflow-y: auto; -webkit-overflow-scrolling: touch; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease;}
  .sp-menu.is-open {opacity: 1; visibility: visible;}

  .sp-menu-search {padding: 1.5rem 2rem 0;}
  .sp-menu-search form {position: relative; height: 4rem; border-bottom: 0.1rem solid #000000; display: flex; align-items: center;}
  .sp-menu-search input {flex: 1; height: 100%; border: 0; outline: none; background: none; font-family: var(--font-sub); font-size: 1.4rem; color: var(--color-text);}
  .sp-menu-search button {position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); width: 2rem; height: 1.98rem; background: none; border: 0; padding: 0; cursor: pointer;}
  .sp-menu-search button img {width: 100%; height: 100%;}

  .sp-menu-quicklinks {margin-top: 4rem; padding: 0 2rem; display: flex; gap: 1.5rem;}
  .sp-menu-quicklink {flex: 1; height: 4rem; border: 0.1rem solid #000000; display: flex; align-items: center; justify-content: center; gap: 1rem; font-family: var(--font-sub); font-size: 1.2rem; color: var(--color-text);}
  .sp-menu-quicklink img {width: 1.9rem; height: auto;}

  .sp-menu-nav {margin-top: 6rem; display: flex; flex-direction: column; align-items: center; gap: 4rem;}
  .sp-menu-nav-link {font-family: var(--font-main); font-size: 1.3rem; color: var(--color-text);}
  .sp-menu-nav-link.is-current {color: #c40080; font-weight: 500;}
  .sp-menu-nav-link:nth-child(6) {font-size: 1.4rem;}

  .sp-menu-legal {margin-top: 6rem; padding-bottom: 6rem; display: flex; flex-direction: column; align-items: center; gap: 3.3rem;}
  .sp-menu-legal p {font-family: var(--font-main); font-size: 1.2rem; color: var(--color-text);}
}

/* ========================================================================
   共通固定パーツ（新規会員登録プロモ／Back to Top）
======================================================================== */
.fv-promo {position: fixed; left: 1.6rem; bottom: 3rem; z-index: 90; width: 15.3rem; height: 15rem; background: var(--color-white); padding: 3.4rem 1.9rem 0;}
.fv-promo.is-hidden {display: none !important;}
button.fv-promo-close {position: absolute; top: 1rem; right: 1rem; width: 1.3rem; height: 1.3rem; background: none; border: 0; padding: 0; cursor: pointer;}
.fv-promo-close img {width: 100%; height: 100%;}
.fv-promo-text {font-weight: 400; font-size: 1.6rem; line-height: 1.5rem; color: var(--color-text);}
.fv-promo-point {color: var(--color-accent); font-weight: 500; font-size: 1.6rem; display: block; margin-top: 1rem;}
.fv-promo-point-bottom {margin-top: -0.5rem;}
.fv-promo-point strong {font-size: 2.6rem; font-weight: 500;}
.fv-promo-link {display: inline-flex; align-items: center; gap: 0.3rem; margin-top: 1rem; font-size: 1.2rem; color: var(--color-text);}
.fv-promo-link img {width: 1.1rem; height: 0.582rem; transform: rotate(-90deg);}

.fv-backtotop {position: fixed; right: 2.2rem; bottom: 3rem; z-index: 90; display: flex !important; flex-direction: column; align-items: center; gap: 1rem;} /* .pc-onlyのdisplay:block!importantを上書き */
.fv-backtotop-arrow {width: 0.75rem; height: 7.5rem;}
.fv-backtotop span {writing-mode: vertical-rl; font-size: 1.3rem; letter-spacing: 0.05em; color: var(--color-text);}

@media screen and (max-width: 999px) {
  .fv-backtotop {display: none !important;}
}

.fv-cart-float {position: fixed; right: 1rem; bottom: 22rem; z-index: 90; width: 7.5rem; height: 7.5rem; border-radius: 50%; background: #0357b0; display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 0.4rem;}
.fv-cart-float img {width: 2.7rem; height: auto;}
.fv-cart-float span {font-family: var(--font-main); font-weight: 300; font-size: 1.2rem; line-height: 1.6rem; color: var(--color-white);}

@media screen and (max-width: 999px) {
  .fv-cart-float {display: none !important;}
}

/* ========================================================================
   お知らせバー（TOP・商品詳細ページ共通）
======================================================================== */
.obi {background: var(--color-ink); height: 3rem; display: flex !important; align-items: center; justify-content: center;}
.obi p {font-family: var(--font-sub); font-size: 1.3rem; line-height: 1.6; color: var(--color-white); text-align: center;}

@media screen and (max-width: 999px) {
  .obi {display: none !important;}
}

/* ========================================================================
   実績バッジ（TOP「選ばれる理由」・商品詳細ページ「たくさんの方にご愛顧」共通）
======================================================================== */
.reason-list {margin-top: 4.1rem; display: flex; align-items: flex-start; justify-content: center; gap: 3.5rem;}
.reason-badge {position: relative; width: 24.6rem; flex-shrink: 0;}
.reason-badge-img {width: 100%; height: auto; display: block;}

@media screen and (max-width: 999px) {
  .reason-list {margin-top: 2rem; height: auto; display: grid; grid-template-columns: repeat(2, 1fr); justify-items: center; gap: 2rem 3rem; padding: 0 2rem;}
  .reason-badge {position: relative; width: 100%;}
}

/* ========================================================================
   お客様の声（TOP・商品詳細ページ共通）
======================================================================== */
.voice {position: relative; margin-top: 12.4rem;}
.voice-title {font-weight: 400; font-size: 2rem; color: var(--color-text); text-align: center;}
.voice-swiper {margin-top: 3.6rem; overflow: hidden;}
.voice-swiper .swiper-wrapper {align-items: stretch;}
.voice-swiper .swiper-slide {width: 24.8rem; height: auto;}

.voice-card {position: relative; height: 37.5rem; box-sizing: border-box; padding: 1.5rem; background: #f9f9f9;}
.voice-card-head {display: flex; flex-direction: column; gap: 0.3rem;}
.voice-card-tag {font-weight: 700; font-size: 1.4rem; color: var(--color-text);}
.voice-card-product {font-weight: 400; font-size: 1.4rem; color: var(--color-text);}
.voice-card-text {margin-top: 1rem; font-weight: 400; font-size: 1.4rem; line-height: 1.6; color: #1a1a1a;}
.voice-card-text strong {font-weight: bold;}
.voice-card-avatar {position: absolute; top: 1rem; right: 0.9rem; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--color-white); display: flex; align-items: center; justify-content: center;}
.voice-card-avatar img {width: 1.2083rem; height: 1.2083rem;}

.voice-swiper .swiper-button-prev, .voice-swiper .swiper-button-next {position: absolute; top: 50%; transform: translateY(-50%); width: 3rem; height: 3rem; background: none; border: 0; padding: 0; cursor: pointer; z-index: 1;}
.voice-swiper .swiper-button-prev {left: 1.5rem;}
.voice-swiper .swiper-button-next {right: 1.5rem;}
.voice-swiper .swiper-button-prev::after, .voice-swiper .swiper-button-next::after {display: none;}
.voice-swiper .swiper-button-prev img, .voice-swiper .swiper-button-next img {width: 100%; height: 100%;}
.voice-swiper .swiper-button-next img {transform: rotate(180deg);}

@media screen and (max-width: 999px) {
  .voice {margin-top: 8.3rem;}
  .voice-card {height: 100%;}
  .voice-swiper .swiper-slide {width: 28.3333rem;}
  .voice-swiper .swiper-button-prev,
  .voice-swiper .swiper-button-next {width: 3.6rem; height: 3.6rem;}
  .voice-swiper .swiper-button-prev {left: 1rem;}
  .voice-swiper .swiper-button-next {right: 1rem;}
}

/* ========================================================================
   お気に入り・最近チェック（TOP・商品詳細ページ共通）
======================================================================== */
.mini-product-wrap {margin-top: 13.6rem; padding: 8.7rem 0 12.1rem; background: #f9f9f9;}
.mini-product + .mini-product {margin-top: 5.8rem;}
.mini-product-title {font-weight: 400; font-size: 2.6rem; color: var(--color-text); text-align: center;}
.mini-product-list {margin-top: 6rem; max-width: 105.6rem; margin-left: auto; margin-right: auto; overflow: hidden;}
.mini-product-list .swiper-wrapper {align-items: flex-start;}
.mini-product-list .mini-product-card {display: flex; flex-direction: column; gap: 1.2rem; width: 15.6rem; flex-shrink: 0;}
.mini-product-img {width: 100%; aspect-ratio: 1 / 1; object-fit: cover; background: #f0f0f0; display: block;}
.mini-product-price {font-weight: 400; font-size: 1.6rem; color: #8d8d8d; text-align: center;}

@media screen and (max-width: 999px) {
  .mini-product-wrap {padding: 6rem 0; margin-top: 6.5rem;}
  .mini-product-list {margin-top: 3rem; max-width: 100%; padding: 0 2rem;}
  .mini-product-card {width: auto;}
}

/* ========================================================================
   ショッピングガイド（TOP・商品詳細ページ共通）
======================================================================== */
.shopping-guide {margin-top: 13.7rem; padding-bottom: 14rem;}
.shopping-guide-title {font-weight: 400; font-size: 2.6rem; color: var(--color-text); text-align: center;}
.shopping-guide-row {margin-top: 6rem; display: flex; align-items: flex-start; justify-content: center; gap: 4rem;}
.shopping-guide-col {width: 38.4rem; display: flex; flex-direction: column; gap: 2.8rem;}
.shopping-guide-heading {font-weight: 700; font-size: 1.8rem; color: var(--color-text); white-space: nowrap;}
.shopping-guide-items {display: flex; flex-direction: column; gap: 1.8rem;}
.shopping-guide-item {display: flex; flex-direction: column; gap: 0.6rem;}
.shopping-guide-item-title {font-weight: 700; font-size: 1.4rem; color: var(--color-text);}
.shopping-guide-item-desc {font-weight: 400; font-size: 1.4rem; color: #666; line-height: 1.46;}
.shopping-guide-cards {width: 16.2rem; height: 4.4rem; object-fit: contain;}
.shopping-guide-item .payment_img {align-self: flex-start; height: 2.4rem; width: auto; object-fit: contain;}

.shopping-guide-item:has(.payment_img) {display: block;}
.shopping-guide-item:has(.payment_img) .shopping-guide-item-title {display: block; margin-bottom: 0.6rem;}
.shopping-guide-item:has(.payment_img) .shopping-guide-item-desc {display: block; margin-top: 0.6rem;}
.shopping-guide-item:has(.payment_img) .payment_img {display: inline-block; margin: 0 0.6rem 0.6rem 0;}

@media screen and (max-width: 999px) {
  .shopping-guide-row {flex-direction: column; align-items: stretch; gap: 4rem; padding: 0 2rem;}
  .shopping-guide-col {width: auto;}
}

/* ========================================================================
   フッター
======================================================================== */
.site-footer {background: #e5e7eb; padding: 4.2rem 7.5rem; display: flex; flex-direction: column; align-items: center; gap: 3.9rem;}
.footer-top {position: relative; width: 129rem; display: flex; justify-content: flex-end;}
.footer-logo {position: absolute; left: 0; top: 1.5rem; width: 26rem; height: 3.7rem; mix-blend-mode: multiply;}
.footer-logo img {width: 100%; height: 100%; object-fit: cover;}
.footer-nav {display: flex; gap: 8rem;}
.footer-nav-col {display: flex; flex-direction: column; gap: 1.1rem;}
.footer-nav-heading {font-weight: 400; font-size: 1.4rem; color: var(--color-text);}
.footer-nav-col a {font-weight: 400; font-size: 1.4rem; color: var(--color-text); white-space: nowrap;}
.footer-copy {width: 129rem; font-weight: 400; font-size: 1.1rem; color: var(--color-text); text-align: right;}

@media screen and (max-width: 999px) {
  .site-footer {padding: 4rem 2rem;}
  .footer-top {position: static; width: auto; flex-direction: column; align-items: center; gap: 2.4rem;}
  .footer-logo {position: static;}
  .footer-nav {flex-direction: column; align-items: center; gap: 3rem;}
  .footer-nav-col {align-items: center;}
  .footer-copy {width: auto; text-align: center;}
}

/* ========================================================================
   商品一覧・検索結果・固定ページ等（Mighty標準レイアウト）
======================================================================== */
.c-breadcrumbs {margin-top: 8.8rem;}
