/* --- 共通・基本スタイル --- */
body {
  font-family: "Outfit", "Noto Sans JP", "ヒラギノ角ゴシック", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "游ゴシック", "Yu Gothic", "游ゴシック体", "YuGothic", "ＭＳ Ｐゴシック", "MS PGothic", "sans-serif";
  line-height: 1.7;
  background-color: #fff;
  margin: 0;
}

p {
  line-height: 2;
}

* { box-sizing: border-box; }

img {
  max-width: 100%;
  height: auto;
  display: block;
  vertical-align: middle;
}

.reco-event-container {
  max-width: 1080px;
  margin: 0 auto;
}

.feature-section {
  margin-top: 80px;
  margin-bottom: 108px;
}
.feature-section:first-child {
  margin-top: 40px;
}
.feature-section:last-child {
  margin-bottom: 40px;
}

.feature-topic-item p{
  text-align: center;
  line-height: 1.5;
  margin-bottom: 18px;
}

.section-title {
  font-weight: 600;
  text-align: center;
  font-size: 28px;
  line-height: 1.5;
  position: relative;
  padding-bottom: 12px;
  margin: 0 auto 40px;
  display: table;
}
.section-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 6px;
  background-color: #fee101;
}

.section-intro {
  max-width: 800px;
  margin: 0 auto 60px auto;
  text-align: left;
  font-size: 16px;
}

/* --- カラーバリエーション：基本スタイル --- */
.color-variation {
  display: flex;
  flex-direction: column;
  gap: 60px;
  margin-bottom: 80px;
}

.variation-item {
  display: flex;
  align-items: center;
  gap: 5%;
}

.variation-title {
  font-size: 24px;
  font-weight: bold;
  color: #fff;
  padding: 8px 24px;
  display: inline-block;
  margin: 0 0 20px 0;
}
.variation-title.silver {
  background-color: #9a9a9a;
}
.variation-title.black {
  background-color: #000;
}
.variation-item p {
    font-size: 15px;
}

.banner-width{
  width: 80%;
  margin: auto;
}

@media screen and (min-width: 1081px) {
  .variation-item .text-content {
    flex: 1.6; /* テキストの比率を大きく */
    max-width: 620px; /* キャプチャに合わせテキスト幅を拡張 */
  }
  .variation-item .image-content {
    flex: 1; /* 画像の比率を小さく */
    display: flex;
    justify-content: center;
  }
  .variation-item .image-content img {
    width: 100%;
    max-width: 420px; /* カメラが巨大化しないよう制限 */
  }
  .variation-item.reverse {
    flex-direction: row-reverse;
  }
}
@media (max-width: 1080px) {
  .feature-topic-item p{
    text-align: left;
  }
}
/* --- スペック・サンプル等 --- */
.spec-points,
.sample-photos {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
  text-align: left;
}

.point-item {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.point-item p {
  margin-top: 0; 
  font-size: 14px;
  line-height: 1.6;
}

.point-item2 {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.point-item2 p {
  margin-top: 0; 
  font-size: 14px;
  line-height: 1.6;
}

.photo-item p {
  margin-top: 15px;
  font-size: 14px;
  line-height: 1.6;
  color: #555;
}

.product-container {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto 40px;
}

.product-container img {
  width: auto;
  height: auto;
  max-width: 200px;
}

.product-container .section-intro {
  margin: 0;
  text-align: left;
  line-height: 1.8;
  font-size: 16px;
}

/* --- その他：オリジナルのまま残しているクラス --- */
.onecolumn-img {
  display:flex;
  justify-content:center;
  margin-bottom:77px;
}
.pager-total {
  display: none;
}

.zf-copy {
    text-align: center;
    font-weight: bold;
    margin-bottom: 16px;
    font-size: 24px;
    color: #393833;
}

/* --- スマホ(SP)版：1080px以下の設定 --- */
@media (max-width: 1080px) {
  .feature-section {
    margin-top: 60px;
    margin-bottom: 60px;
  }
  .feature-section:first-child {
    margin-top: 30px;
  }
  .feature-section:last-child {
    margin-bottom: 30px;
  }

  .section-title {
    font-size: 22px;
    margin-bottom: 30px;
  }

  .section-intro {
    font-size: 15px;
    margin-bottom: 50px;
  }

  .color-variation {
    gap: 50px;
    margin-bottom: 50px;
  }
  .variation-item,
  .variation-item.reverse {
    flex-direction: column;
    gap: 20px;
  }
  .variation-item .text-content {
    max-width: 100%;
  }
  .variation-item .image-content {
    max-width: 75%;
  }
  .variation-title {
    font-size: 20px;
  }
  .variation-item p {
    font-size: 15px;
  }

  .product-container {
    flex-direction: column;
    text-align: center;
    gap: 20px;
  }

  .product-container .section-intro {
    text-align: left;
    max-width: 100%;
    padding: 0 10px;
  }

  .spec-points {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .point-item {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-direction: row;
  }
  .point-item:nth-of-type(2) {
    flex-direction: row-reverse;
  }
  .point-item p {
    margin-top: 0;
    flex: 1;
  }
  .point-item img {
    flex: 0 0 120px;
    width: 120px;
    object-fit: cover;
  }

  .point-item2 {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-direction: row;
  }
  .point-item2:nth-of-type(2) {
    flex-direction: row-reverse;
  }
  .point-item2 p {
    margin-top: 0;
    flex: 1;
  }

  .point-item2 img {
    flex: 0 0 120px;
    width: 180px;
    object-fit: cover;
  }

  .sample-photos {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
  .photo-item p {
    font-size: 12px;
    line-height: 1.5;
  }

    .banner-width{
    width: 100%;
    margin: auto;
  }

}

/* --- ボタン - 共通パーツ --- */
.application_area{
  width: 100%;
  max-width: 640px;
  margin: 0 auto 80px;
}
.application_btn{
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 95px;
  font-size: 24px;
  font-weight: bold;
  color: #fff;
  border-radius: 60px;
}

@media (max-width: 1080px) {
  .application_area{
    margin: 0 auto 50px;
  }
}

/* 使うたびに気分が高まるヘリテージデザイン */
.heritage_design_wrap{
  margin-bottom: 128px;
}
.heritage_design_wrap .color-variation{
  align-items: center;
  gap: 100px;
}
.heritage_design_item:first-of-type .heritage_design_left{
  width: 100%;
  max-width: 420px;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.heritage_design_item:first-of-type .heritage_design_left p{
  font-size: 36px;
  font-weight: bold;
  margin-top: 14px;
  line-height: 1;
}
.heritage_design_item:first-of-type .heritage_design_right{
  flex: 1.6;
  max-width: 620px;
}
.heritage_design_item:nth-of-type(2){
  align-items: stretch;
}
.heritage_design_item:nth-of-type(2) .heritage_design_left, .heritage_design_item:nth-of-type(2) .heritage_design_right{
  max-width: 208px;
  height: auto;
}
.heritage_design_item:nth-of-type(2) .heritage_design_left_text, .heritage_design_item:nth-of-type(2) .heritage_design_right_text{
  display: flex;
  flex-direction: column;
  height: 100%;
}
.heritage_design_item:nth-of-type(2) .heritage_design_left_text{
  align-items: flex-end;
  justify-content: flex-end;
}
.heritage_design_item:nth-of-type(2) .heritage_design_right_text{
  align-items: flex-start;
  justify-content: flex-start;
}
.heritage_design_item:nth-of-type(2) .heritage_design_left_text p span, .heritage_design_item:nth-of-type(2) .heritage_design_right_text p span{
  font-weight: bold;
}
.heritage_design_item:nth-of-type(2) .heritage_design_left_text img, .heritage_design_item:nth-of-type(2) .heritage_design_right_text img{
  width: 113px;
  margin-top: 18px;
}
.heritage_design_item:nth-of-type(2) .heritage_design_center{
  max-width: 680px;
  flex: 6;
}
.heritage_design_item:nth-of-type(3){
  max-width: 919px;
}
@media (max-width: 1080px) {
  .heritage_design_item:first-of-type .heritage_design_left{
    width: 100%;
    max-width: 75%;
    flex: 1;
  }
  .heritage_design_wrap .color-variation{
    gap: 48px;
  }
  .heritage_design_item:first-of-type .heritage_design_left p{
    font-size: 24px;
  }
  .heritage_design_item:nth-of-type(2){
    gap: 16px;
  }
  .heritage_design_item:nth-of-type(2) .heritage_design_left{
    order: 3;
    max-width: none;
  }
  .heritage_design_item:nth-of-type(2) .heritage_design_left_text{
  align-items: flex-start;
  }
  .heritage_design_item:nth-of-type(2) .heritage_design_center{
    order: 2;
  }
  .heritage_design_item:nth-of-type(2) .heritage_design_right{
    order: 1;
    max-width: none;
  }
  .heritage_design_item:nth-of-type(2) .heritage_design_right_text{
    align-items: flex-end;
  }
  .heritage_design_item:nth-of-type(2) .heritage_design_left_text img, .heritage_design_item:nth-of-type(2) .heritage_design_right_text img{
    width: 90px;
    margin-top: 10px;
  }
}