body {
  margin: 0;
  padding: 0;
  font-family: "Noto Serif JP", serif;
  background-color: #fff;
}
#container {
  width: 100%;        /* 画面幅に合わせて広がる */
  max-width: 750px;   /* 最大でも750px */
  min-width: 320px;   /* 最小でもスマホ幅に収める */
  margin: 0 auto;     /* 中央寄せ */
  background: #fff;
  border-left: 1px solid #ccc;
  border-right: 1px solid #ccc;
  text-align: center;
}



img {
  max-width: 100%;
  height: auto;
  display: block; 
}


/* ▼FVここから */
.fv {
  position: relative;
  width: 100%;
  max-width: 750px; 
  margin: 0 auto;
}

.fv-bg {
  width: 100%;
  height: auto;
  display: block;
}

.fv-label {
  position: absolute;
  top: 5%;   /* FV画像の左上に置くイメージ（調整OK） */
  left: 76%;
  font-family: "Noto Serif JP", serif;
  font-size: 40px;
  font-weight: 600;
  color: #ffffff;
  text-align: center;
  line-height: 1.2;
  padding: 5px 10px;
  border-radius: 4px;
  white-space: nowrap; 
}

.fv-text {
  position: absolute;
  top: 72%;  
  left: 50%;
  transform: translateX(-50%);
  font-family: "Noto Serif JP", serif;
  font-size: 40px;
  font-weight: 500;
  color: #ffffff;
  text-align: center;
  line-height: 1.4;
  padding: 5px 15px;
  border-radius: 5px;
  white-space: nowrap; 
}

/* CTAボタン */
.cta-button img {
  position: absolute;
  width: 80%; 
  height: auto;
  position: absolute;
  bottom: 13%;
  left: 10%;
}

/* ▼スマホ用調整 */
@media (max-width: 768px) {
  .fv-label {
    font-size: 38px;
    top: 5%;
    left: 76%;
  }

  .fv-text {
    font-size: 40px;
    top: 73%;
    line-height: 1.3;
  }

  .cta-button img {
    width: 100%; 
    max-width: 600px;
    bottom: 13%;
  }
}

@media (max-width: 480px) {
  .fv-label {
    font-size: 20px;
    top: 4.8%;
    left: 75%;
  }

  .fv-text {
    font-size: 22px;
    top: 73%;
    line-height: 1.3;
  }

  .cta-button img {
    width: 90%; 
    max-width: 320px;
    bottom: 12%;
    left: 8%;
  }
}
/* ▲FVここまで */
/* ▼こだわりセクションここから */
.section-image {
  width: 100%;
  max-width: 750px; 
  margin: 0 auto;
}

.section-image img {
  width: 100%;
  height: auto;
  display: block;
}
/* ▲こだわりセクションここまで */
/* ▼お客様の声セクションここから */
.koe-image {
  width: 100%;
  max-width: 750px; 
  margin: 0 auto;
}

.koe-image img {
  width: 100%;
  height: auto;
  display: block;
}
/* ▲お客様の声ここまで */
/* ▼おすすめセクションここから */
.osusume-image {
  width: 100%;
  max-width: 750px; 
  margin: 0 auto;
}

.osusume-image img {
  width: 100%;
  height: auto;
  display: block;
}
/* ▲おすすめここまで */
/* ▼メインセクションここから */
.main-image {
  position: relative;
  width: 100%;
  max-width: 750px;
  margin: 0 auto;
}

.main-bg {
  width: 100%;
  height: auto;
  display: block;
}

/* おせち写真 */
.osechi-photo {
  position: absolute;
  top: 15%;  
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  max-width: 600px;
}

.osechi-photo img {
  width: 100%;
  height: auto;
  display: block;
}

.main-image .cta-button img {
  position: absolute;
  width: 80%; 
  height: auto;
  position: absolute;
  bottom: 8%;
  left: 10%;
}

/* ▼スマホ用調整 */
@media (max-width: 768px) {
  .osechi-photo {
    width: 90%;       /* 画面幅に合わせて縮小 */
    max-width: 550px;
    top: 14%;
  }

}

@media (max-width: 480px) {
  .osechi-photo {
    width: 85%;       /* スマホでは少し大きめに見せる */
    max-width: 320px;
    top: 14%;
  }
}
/* ▲メインここまで */
/* ▼メニューセクションここから */
.menu-section {
  position: relative;
  max-width: 750px;
  margin: 0 auto;
}

.menu-bg {
  width: 100%;
  display: block;
}

.osechi {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 100%; 
  max-width: 600px;
}

.osechi1 {
  top: 15%; 
}

.osechi2 {
  top: 40%; 
}

.menu-title {
  position: absolute;
  top: -1%;        
  left: 50%;
  transform: translateX(-50%);
  font-size: 60px;  
  font-family: "Noto Serif JP", serif; 
  color: #292929;
  text-align: center;
  white-space: nowrap;
}
.menu-footer {
  position: absolute;
  bottom: 7%;  
  left: 50%;
  transform: translateX(-50%);
  text-align: center;
  width: 90%;
  max-width: 700px;
}

.menu-note {
  position: absolute;
  bottom: 116%;   
  left: 10px;     
  font-size: 17px;
  line-height: 1.5;
  color: #292929;
  text-align: left; 
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 200;  
}


.pickup-img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

@media screen and (max-width: 750px) {
  .menu-title {
    font-size: 32px;   /* 60px → 32px に縮小 */
  }
  .osechi {
    max-width: 300px; 
  }
  .menu-note {
    font-size: 10px;
    line-height: 1.4;
    bottom: 113%;  
  }
}

/* ▲メニューここまで */
/* ▼こまどりについてセクションここから */
.komadori-image {
  width: 100%;
  max-width: 750px; 
  margin: 0 auto;
}

.komadori-image img {
  width: 100%;
  height: auto;
  display: block;
}
/* ▲こまどりについてここまで */
/* ▼Planセクションここから */
.Plan-image {
  position: relative; 
  width: 100%;
  max-width: 750px; 
  margin: 0 auto;
}

.Plan-image img {
  width: 100%;
  height: auto;
  display: block;
}

.plan-section {
  position: absolute; 
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  font-family: "Noto Serif JP", serif;
  text-align: center;
  pointer-events: none; 
}

.plan-price {
  margin: 0;
  color: #292929;
  white-space: nowrap; 
}


.unit {
  font-size: 25px;
}
.tax {
  font-size: 18px;
}

/* スタンダード・プレミアム */
.num-large {
  font-size: 36px;
}
.price {
  font-size: 50px;
  color: #fe1300; 
}
.yen {
  font-size: 30px;
}

/* ハーフサイズ */
.num-medium {
  font-size: 30px;
}
.unit-medium {
  font-size: 20px;
}
.price-small {
  font-size: 40px;
  color: #fe1300;
}
.yen-small {
  font-size: 24px;
}

.plan-standard {
  position: absolute;
  top: 640px;
  left: 50%;
  transform: translateX(-50%);
}

.plan-premium {
  position: absolute;
  top: 1150px;
  left: 50%;
  transform: translateX(-50%);
}

.plan-half {
  position: absolute;
  top: 1500px;
  left: 65%;
  transform: translateX(-50%);
}

.plan-pickup {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
}

@media screen and (max-width: 700px) {
  .plan-price {
    text-align: center;
    margin: 2vw 0;         /* 相対マージン */
    line-height: 1.3;
    font-size: 4vw;        /* 基準フォントサイズを端末幅に比例 */
  }

  .num-large {
    font-size: 1.6em;      /* 基準の1.6倍 */
    font-weight: bold;
    vertical-align: middle;
  }

  .unit {
    font-size: 1em;        /* 基準サイズ */
    vertical-align: middle;
  }

  .price {
    font-size: 1.7em;      /* 少し大きめ */
    font-weight: bold;
    vertical-align: middle;
  }

  .yen {
    font-size: 1em;
    vertical-align: middle;
  }

  .tax {
    font-size: 0.9em;      /* 小さめ */
    color: #555;
    margin-left: 0.3em;    /* 相対余白 */
    vertical-align: middle;
    position: relative;
    top: 0.2em;            /* ほんの少し下げる */
  }

  /* プレミアム専用 */
  .plan-premium .price {
    font-size: 1.8em;
  }

  /* ハーフサイズ専用 */
  .num-medium {
    font-size: 1.4em;
    font-weight: bold;
    vertical-align: middle;
  }
  .unit-medium {
    font-size: 0.9em;
    vertical-align: middle;
  }
  .price-small {
    font-size: 1.5em;
    font-weight: bold;
    vertical-align: middle;
  }
  .yen-small {
    font-size: 0.9em;
    vertical-align: middle;
  }
    .plan-premium {
    top: 150vw;            /* 画面幅の75%あたりに配置 */
    left: 53%;            /* 中央 */
    transform: translateX(-50%);
    letter-spacing: -0.05em;
  }
  
  .plan-standard {
    top: 82vw;            /* 画面幅の40%あたり */
    left: 53%;
    transform: translateX(-50%);
    letter-spacing: -0.05em;
  }
  
  .plan-half {
    top: 198vw;           /* 下に余裕をもたせて */
    left: 70%;            
    transform: translateX(-50%);
    letter-spacing: -0.05em;
  }
.plan-price .tax {
  left: -0.8em;
}
}

/* ▲Planセクションここまで */
/* ▼予約セクションここから */
.yoyaku-section {
  max-width: 750px;
  margin: 0 auto;
  text-align: center;
}
.yoyaku-wrapper {
  position: relative;
  max-width: 750px;
  margin: 0 auto;
}

.yoyaku-bg {
  width: 100%;
  height: auto;
  display: block;
}

/* 電話番号 */
.yoyaku-tel {
  position: absolute;
  top: 27%;   
  left: 49%;
  transform: translateX(-50%);
  font-size: 50px;
  font-weight: bold;
}
.yoyaku-tel a {
  color: #0000ee;
  text-decoration: none;
  text-decoration: underline;  
  text-decoration-thickness: 2px; 
  text-underline-offset: 4px;
}

/* 受付時間 */
.yoyaku-time {
  position: absolute;
  top: 31%;   
  left: 50%;
  transform: translateX(-50%);
  font-size: 18px;
  color: #333;
}

/* LINEボタン */
.yoyaku-line {
  position: absolute;
  top: 52%;   
  left: 52%;
  transform: translateX(-50%);
}
.yoyaku-line img {
  max-width: 437px
}

/* 注文フォームボタン */
.yoyaku-form {
  position: absolute;
  top: 75%;   
  left: 52%;
  transform: translateX(-50%);
}
.yoyaku-form img {
  max-width: 437px;
}
@media screen and (max-width: 600px) {
.yoyaku-tel {
  top: 26.5%;   
  left: 49%;
  transform: translateX(-50%);
  font-size: 28px;
  white-space: nowrap; 
}
.yoyaku-time {
  position: absolute;
  top: 31%;   
  left: 50%;
  transform: translateX(-42%);
  font-size: 12px;
  white-space: nowrap; 
}
}
@media screen and (max-width: 700px) {
  .yoyaku-line img,
  .yoyaku-form img {
    width: 100% !important;   /* 強制的に縮小 */
    max-width: 260px !important; 
    height: auto !important;
    display: block;
    margin: 0 auto;
  }
}

/* ▲予約セクションここまで */
/* ▼Googleマップここから */

.map {
  margin: 30px 0;
  text-align: center;
}

.map iframe {
  width: 90%;   
  max-width: 750px;
  height: 300px;
  border: 0;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
}
/* スマホ用（画面幅600px以下で適用） */
@media (max-width: 600px) {
  .map iframe {
    width: 90%;       
    max-width: 100%;   
    height: 250px;     
  }
  .map {
  margin: 30px 0;
  text-align: center;
}
}
/* ▲Googleマップここまで */
/* ▼フッターはここから */
.futter-image {
  width: 100%;
  max-width: 750px; 
  margin: 0 auto;
}

.futter-image img {
  width: 100%;
  height: auto;
  display: block;
}
/* ▲フッターはここまで */

