/******************************/
/* SLIDER */
/******************************/
@media screen and (max-width: 1031px) {
  .slider {
    margin-left: -20px;
    margin-right: -20px;
    position: relative;
  }
}
#slider div {
  width: 100%;
  max-width: 100%;
  height: auto;
}
.bx-wrapper {
  z-index: 0;
}
.bx-wrapper img {
  width: 100%;
  height: auto;
}
.bx-wrapper .bx-viewport {
  box-shadow: none !important;
  border: 0 !important;
  left: 0 !important;
}
.bx-wrapper .bx-pager {
  bottom: -27px !important;
}
.bx-wrapper .bx-pager.bx-default-pager a {
  margin: 0 3px !important;
  padding-top: 15px;
  width: 100px !important;
  height: 1px !important;
  background: transparent !important;
  border-bottom: 1px solid #cccccc;
  border-radius: 0 !important;
}
.bx-wrapper .bx-pager.bx-default-pager a:hover, .bx-wrapper .bx-pager.bx-default-pager a.active {
  background: transparent !important;
  border-bottom: 1px solid #000000;
}
/******************************/
/* TOP CONCEPT */
/******************************/
.p-concept-list {
  margin-top: 60px;
}
@media screen and (max-width: 767px) {
  .p-concept-list {
    margin-top: 30px;
  }
}
.p-concept-list__item {
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 135px;
}
@media screen and (max-width: 1030px) {
  .p-concept-list__item {
    margin-bottom: 60px;
  }
}
@media screen and (max-width: 767px) {
  .p-concept-list__item {
    display: block;
    margin-left: 0;
    margin-right: 0;
    margin-bottom: 30px;
  }
}
.p-concept-list__item:last-child {
  margin-bottom: 60px;
}
@media screen and (max-width: 767px) {
  .p-concept-list__item:last-child {
    margin-bottom: 0px;
  }
}
.p-concept-list__item:nth-child(even) .p-concept-list__txt {
  margin-left: 100px;
  margin-right: 130px;
  order: -1;
}
@media screen and (max-width: 1030px) {
  .p-concept-list__item:nth-child(even) .p-concept-list__txt {
    margin-left: 50px;
    margin-right: 50px;
  }
}
@media screen and (max-width: 767px) {
  .p-concept-list__item:nth-child(even) .p-concept-list__txt {
    margin-left: 0;
    margin-right: 0;
  }
}
.p-concept-list__img {
  position: relative;
  box-sizing: border-box;
  width: 50%;
}
@media screen and (max-width: 767px) {
  .p-concept-list__img {
    width: auto;
    text-align: center;
  }
}
.p-concept-list__img:before {
  content: "";
  position: absolute;
  top: 150px;
  bottom: 15px;
  right: 90px;
  left: 90px;
  z-index: -1;
  background: transparent;
  transform: scaleY(2.3) perspective(0.6em) rotateX(2deg);
  transform-origin: bottom;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.4);
}
@media screen and (max-width: 767px) {
  .p-concept-list__img:before {
    bottom: 20px;
    right: 20%;
    left: 20%;
  }
}
.p-concept-list__txt {
  flex: 1;
  margin-left: 130px;
  margin-right: 100px;
}
@media screen and (max-width: 1030px) {
  .p-concept-list__txt {
    margin-left: 50px;
    margin-right: 50px;
  }
}
@media screen and (max-width: 767px) {
  .p-concept-list__txt {
    padding: 20px;
    margin-left: 0;
    margin-right: 0;
  }
}
.p-concept-list__ttl {
  font-size: 18px;
  font-weight: normal;
}
.p-concept-list__body {
  color: #909090;
}
/******************************/
/* TOP RANKING */
/******************************/
.p-ranking-list .slick-track {
  margin-left: 0;
  margin-right: 0;
}
.p-ranking-list .slick-prev, .p-ranking-list .slick-next {
  top: 80px;
  width: 30px;
  height: 30px;
  transition: all 0.4s ease;
  z-index: 1;
  background: rgba(255,255,255,0.4);
}
@media screen and (max-width: 767px) {
  .p-ranking-list .slick-prev, .p-ranking-list .slick-next {
    top: calc(50% - 50px);
    width: 45px;
    height: 45px;
  }
}
.p-ranking-list .slick-prev:before, .p-ranking-list .slick-next:before {
  content: "";
  position: absolute;
  top: 7px;
  left: 10px;
  width: 15px;
  height: 15px;
  border-left: 1px solid #000000;
  border-top: 1px solid #000000;
  transition: all 0.4s ease;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .p-ranking-list .slick-prev:before, .p-ranking-list .slick-next:before {
    top: 15px;
  }
}
.p-ranking-list .slick-prev {
  left: 20px;
}
@media screen and (max-width: 767px) {
  .p-ranking-list .slick-prev {
    left: 0px;
  }
}
.p-ranking-list .slick-prev:before {
  transform: rotate(-45deg);
}
@media screen and (max-width: 767px) {
  .p-ranking-list .slick-prev:before {
    left: 17px;
  }
}
.p-ranking-list .slick-next {
  right: 20px;
}
@media screen and (max-width: 767px) {
  .p-ranking-list .slick-next {
    right: 0px;
  }
}
.p-ranking-list .slick-next:before {
  left: 4px;
  transform: rotate(135deg);
}
@media screen and (max-width: 767px) {
  .p-ranking-list .slick-next:before {
    left: 13px;
  }
}
.p-ranking-list__item {
  position: relative;
  box-sizing: border-box;
  margin-right: 20px;
  margin-left: 20px;
  padding-bottom: 25px;
  word-break: break-all;
}
@media screen and (max-width: 1030px) {
  .p-ranking-list__item {
    margin-right: 5px;
    margin-left: 5px;
  }
}
.p-ranking-list__img {
  margin-bottom: 35px;
}
@media screen and (max-width: 767px) {
  .p-ranking-list__img {
    text-align: center;
  }
}
.p-ranking-list__num {
  position: absolute;
  top: 0;
  left: 1px;
  width: 24px;
  line-height: 24px;
  font-size: 12px;
  font-weight: bold;
  background: #000000;
  color: #ffffff;
  text-align: center;
}
.p-ranking-list__ttl img {
  vertical-align: middle;
}
.p-ranking-list__price {
  color: #909090;
  margin-top: 20px;
}
.p-ranking-list__btn {
  display: block;
  position: absolute;
  right: 0px;
  bottom: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #d8d8d8;
  cursor: pointer;
  text-align: center;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.p-ranking-list__btn.is-added {
  color: #000000;
}
.p-ranking-list__btn svg {
  width: 20px;
  height: 20px;
  fill: currentColor;
}
/******************************/
/* TOP STYLING */
/******************************/
.p-styling {
  margin-bottom: 90px;
}
@media screen and (max-width: 767px) {
  .p-styling {
    margin-bottom: 0;
  }
}
/******************************/
/* TOP INFORMATION */
/******************************/
.p-information {
  padding-bottom: 0;
}
@media screen and (max-width: 1030px) {
  .p-information {
    padding-bottom: 45px;
  }
}
.p-information__body {
  margin-left: 60px;
  margin-right: 60px;
  line-height: 2;
}
@media screen and (max-width: 1030px) {
  .p-information__body {
    margin-left: 0;
    margin-right: 0;
  }
}
/******************************/
/* TOP FREE */
/******************************/
.p-free__body {
  margin-left: 60px;
  margin-right: 60px;
  line-height: 2;
}
@media screen and (max-width: 1030px) {
  .p-free__body {
    margin-left: 0;
    margin-right: 0;
  }
}
/******************************/
/* TOP BANNER */
/******************************/
.p-bnr {
  box-sizing: border-box;
  padding-left: 0px;
  padding-right: 0px;
}
@media screen and (max-width: 1030px) {
  .p-bnr {
    padding-left: 0px;
    padding-right: 0px;
  }
}
.p-bnr-list {
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}
@media screen and (max-width: 767px) {
  .p-bnr-list {
    width: 100%;
    height: auto;
    display: block;
  }
}
.p-bnr-list__item {
  box-sizing: border-box;
  padding-left: 0px;
  padding-right: 0px;
  width: 33.333%;
}
@media screen and (max-width: 1030px) {
  .p-bnr-list__item {
    padding-left: 0px;
    padding-right: 0px;
  }
}
@media screen and (max-width: 767px) {
  .p-bnr-list__item {
    padding-left: 0;
    padding-right: 0;
    margin-bottom: 0px;
    width: auto;
    text-align: center;
  }
}

/******************************/
/* FEATURES */
/******************************/
.p-features {
  padding-bottom: 30px;
}

.p-features-list {
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  margin-left: -25px;
  margin-right: -25px;
}

@media screen and (max-width: 1030px) {
  .p-features-list {
    margin-left: 0;
    margin-right: 0;
    flex-wrap: nowrap;
  }
}

.p-features-list__item {
  box-sizing: border-box;
  margin-bottom: 50px;
  padding-left: 25px;
  padding-right: 25px;
  width: 33.3333%;
}

@media screen and (max-width: 1030px) {
  .p-features-list__item {
    margin-right: 10px;
    margin-bottom: 0;
    padding-left: 0;
    padding-right: 0;
    width: 300px;
  }
}

.p-features-list__in {
  box-sizing: border-box;
  position: relative;
}

.p-features-list__in:before {
  content: "";
  position: absolute;
  top: 150px;
  bottom: 30px;
  right: 10px;
  left: 10px;
  z-index: -1;
  background: transparent;
  transform: scaleY(2.3) perspective(0.6em) rotateX(2deg);
  transform-origin: bottom;
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

@media screen and (max-width: 1030px) {
  .p-features-list__in:before {
    top: 150px;
    bottom: 30px;
    right: 15px;
    left: 15px;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.4);
  }
}

.p-features-list__in:hover:before {
  content: "";
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.4);
}

.p-features-list__in:hover .p-features-list__img img {
  transform: scale(1.05, 1.05);
}

/* ★ここが根本修正：inline-block → block（ズレや余白計算のブレ防止） */
.p-features-list__img {
  display: block;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.p-features-list__img img {
  width: 100%;
  transform: scale(1, 1);
  transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.p-features-list__txt {
  box-sizing: border-box;
  padding: 30px;
  background: #ffffff;
}

@media screen and (max-width: 1030px) {
  .p-features-list__txt {
    padding: 30px 20px;
    width: 300px;
  }
}

.p-features-list__ttl {
  font-weight: bold;
}

.p-features-list__body {
  color: #909090;
}

@media screen and (max-width: 1030px) {
  .p-features-list__body {
    white-space: initial;
  }
}


/******************************/
/* FEATURES: スマホは1画面=1バナー */
/******************************/
@media screen and (max-width: 767px) {

  /* 横スクロールの器（div.u-overflow-slide） */
  .u-overflow-slide {
    overflow-x: auto;
    overflow-y: visible;              /* 念のため：縦方向はクリップしない */
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 0;
  }

  /* リストを横並びに */
  .p-features-list {
    display: flex;
    flex-wrap: nowrap;
    margin: 0;
    padding: 0;
    gap: 0;
  }

  /* ★ここが根本修正：100vw → 100%（端末差のズレ防止） */
  .p-features-list__item {
    width: 100%;
    flex: 0 0 100%;
    margin-right: 0;
    scroll-snap-align: start;
    scroll-snap-stop: always;
    box-sizing: border-box;

    /* ★左右の幅を均等にする（余白は親で管理） */
    padding-left: 16px;
    padding-right: 16px;
  }

  /* 中の画像・テキストも幅に追従 */
  .p-features-list__img,
  .p-features-list__txt {
    width: 100%;
  }

  .p-features-list__img img {
    display: block;
    width: 100%;
    height: auto;
  }

  /* スマホで固定幅300pxを解除（重要） */
  .p-features-list__txt {
    width: auto;
  }
}

.gb-news { margin:0; padding:0; list-style:none; border-top:1px solid #E5E5E5; }
.gb-news br { display:none; }
.gb-news__item { border-bottom:1px solid #E5E5E5; }
.gb-news__item a, .gb-news__item > span { display:flex; align-items:center; gap:12px; padding:14px 4px; color:#464E54; text-decoration:none; }
.gb-news__item a:hover { background:#FAFAFA; }
.gb-news__date { flex-shrink:0; font-size:13px; color:#999; letter-spacing:.05em; }
.gb-news__tag { flex-shrink:0; min-width:64px; padding:2px 8px; border-radius:2px; font-size:11px; font-weight:bold; text-align:center; color:#fff; background:#464E54; }
.gb-news__tag--media { background:#B30000; }
.gb-news__tag--new   { background:#2E7D32; }
.gb-news__tag--stock { background:#1565C0; }
.gb-news__title { flex:1; font-size:14px; line-height:1.6; }
.gb-news__item a .gb-news__title::after { content:" \203A"; color:#B30000; font-weight:bold; }
.gb-mailmaga { display:block; margin-top:24px; padding:14px 16px; border:1px solid #E5E5E5; border-radius:4px; color:#464E54; font-size:13px; text-decoration:none; }
.gb-mailmaga strong { color:#B30000; }

@media (max-width:767px) {
  .gb-news__item a, .gb-news__item > span { flex-wrap:wrap; gap:6px 10px; }
  .gb-news__title { flex-basis:100%; }
}

/* トップページの CATEGORY バナーを非表示（コードは残してある） */
.p-free { display:none; }
/* STYLING：Instagramの投稿スライダー */
.gb-insta__lead { margin:-24px 0 24px; font-size:14px; line-height:1.8; }
.gb-insta-slider { position:relative; }
.gb-insta { display:flex; gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding:0 0 4px; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
.gb-insta::-webkit-scrollbar { display:none; }
.gb-insta__item { flex:0 0 300px; scroll-snap-align:start; }
.gb-insta__item iframe { display:block; width:100%; height:620px; border:1px solid #DBDBDB; border-radius:4px; background:#fff; }
.gb-insta__btn { position:absolute; top:310px; z-index:2; width:44px; height:44px; margin-top:-22px; padding:0; border:0; border-radius:50%; background:#B30000; color:#fff; font-size:26px; line-height:44px; text-align:center; cursor:pointer; box-shadow:0 2px 6px rgba(0,0,0,.2); }
.gb-insta__btn:disabled { opacity:0; pointer-events:none; }
.gb-insta__prev { left:-12px; }
.gb-insta__next { right:-12px; }
.gb-insta__dots { display:flex; justify-content:center; gap:8px; margin:14px 0 0; padding:0; list-style:none; }
.gb-insta__dots button { width:8px; height:8px; padding:0; border:0; border-radius:50%; background:#D0D0D0; cursor:pointer; }
.gb-insta__dots button.is-active { background:#B30000; }
.gb-insta__more { margin:28px 0 0; text-align:center; }
.gb-insta__more a { display:inline-block; min-width:280px; padding:16px 40px; border:2px solid #B30000; border-radius:999px; background:#B30000; color:#fff; font-size:17px; font-weight:bold; letter-spacing:.05em; text-decoration:none; transition:background .2s,color .2s; }
.gb-insta__more a:hover { background:#fff; color:#B30000; }
@media (max-width:767px) {
  .gb-insta__lead { margin-top:-12px; }
    .gb-insta__more a { display:block; min-width:0; padding:14px 16px; font-size:16px; }
  .gb-insta__btn { width:36px; height:36px; margin-top:-18px; font-size:22px; line-height:36px; }
  .gb-insta__prev { left:-6px; }
  .gb-insta__next { right:-6px; }
}