@charset "utf-8";
/* CSS Document */

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto;
  }
  * {
    animation: none !important;
    transition: none !important;
  }
}

body {
  color: #000000;
  background-color: #fff0d6;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", "BIZ UDPGothic", Meiryo, sans-serif;
  font-size: 1.5rem;
  line-height: 1.8;
  margin: 0;
  padding: 0; 
}


/* 改行　共通 */
.cp-br { display: block; }
.sp-br { display: none; }

/* スマホ・タブレット（～767px）で逆転 */
@media (max-width: 767px) {
  .cp-br { display: none; }
  .sp-br { display: block; }
}

/* PC・スマホどちらの方でも改行 */
.br-resp { display: block; } 

@media (max-width: 768px) {
  .br-resp { display: inline; }
}

/* リンクのフォーカス可視化 */
a {
  color: inherit;
  text-decoration: none;
}
a:hover {
  opacity: 0.85;
}
a:focus-visible {
  outline: 3px solid #ffbf47;
  outline-offset: 2px;
  border-radius: 4px;
}


/* コンテナとレイアウト */
main {
  padding: 2rem;
}

.container {
  margin: 0 auto;
  text-align: center;
  padding: 2rem;
}

@media (max-width: 768px) {
  .container {
    padding: 1rem;
  }
}

@media (max-width: 480px) {
  header, footer {
    font-size: 0.9rem;
  }
}

/* ヘッダーグループ */
header {
  max-width: 800px; 
  margin: 0 auto;
  text-align: center;
}

.box {
  margin: 0 auto;
  max-width: 700px;
	height: 20px;
  background-color: #d7000f; 
  margin-top: 20px;
}

@media (max-width: 768px) {
  .box {
    height: 15px;
  }
}
@media (max-width: 480px) {
  .box {
    height: 10px;
  }
}

.topimg {
  text-align: center;
}

.topimg img {
  max-width: 100%;
  height: auto;
  display: block;
  margin: 20px auto;
}
/* パソコンで見たときは"pc"のclassがついた画像が表示される */
.pc-img { display: block !important; }
.sp-img { display: none !important; }
 
/* スマートフォンで見たときは"sp"のclassがついた画像が表示される */
@media only screen and (max-width: 750px) {
    .pc-img { display: none !important; }
    .sp-img { display: block !important; }
}

p.topsentence {
  text-align: center;
  padding-top: 20px;
  font-weight: bold; 
  font-size: 2rem;
  margin-bottom: 20px;
}

@media (max-width: 768px) {
  p.topsentence {
    font-size: 1.7rem;
    padding-top: 10px;
  }
}

@media (max-width: 480px) {
  p.topsentence {
    font-size: 1.7rem;
    padding-top: 10px;
  }
}

/* TOPに戻るボタン */
.pagetop {
  height: 56px;
  width: 56px;
  position: fixed;
  right: 24px;
  bottom: 24px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 2;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  box-shadow: 0 8px 18px rgba(0,0,0,0.2);
  will-change: transform;
}
.pagetop:hover {
  transform: translateY(-2px);
}
.pagetop.is-pressed {
  transform: scale(0.95);
  box-shadow: 0 4px 12px rgba(0,0,0,0.18);
}

/* 画像サイズが大きい場合の調整（任意） */
.pagetop__arrow {
  transition: transform 0.18s ease;
}
.pagetop.is-pressed .pagetop__arrow {
  transform: translateY(-1px);
}

.pagetop__arrow {
  height: 70px;
  width: 70px;
}

@media (max-width: 480px) {
  .pagetop__arrow {
  height: 50px;
  width: 50px;
  }
}

 /* 目次（シリーズボタン） */
.Character_list {
  list-style: none;
  display: grid;
  column-gap: 2em;
  row-gap: 1rem;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  justify-content: center; /* 中央揃え */
  padding: 0;
  margin: 0 auto 2rem; 
  max-width: 700px;
}

.Character_list a {
  font-size: 2.3rem;
  font-weight: bold;
}


.Character_button {
  display: flex;
  align-items: center;
  position: relative; /* 絶対位置 */
  overflow: hidden;
  width: 100%;
  max-width: 400px; /* 最大幅を設定して広がりすぎないように */
  min-width: 280px; /* 最小幅を設定して狭くなりすぎないように */
  border: 2px solid #d7000f;
  background-color: #fff;
  margin: 0 auto;
  height: 64px;
  
}

.Character_button::before {
  content: '';
  position: absolute; /* 絶対位置に対する相対位置 */
  top: -150%;
  left: -120px;
  width: 200px;
  height: 300%;
  transform: rotate(25deg);
  background: #d7000f;
  z-index: 0;
}

.Character_button span {
  font-size: 4rem;
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: #fff;
  line-height: 1;
  z-index: 1;
  font-weight: 700;
}

.Character_text {
  font-size: 1.8rem;
  padding-left: 90px;
  flex-grow: 1;
  white-space: nowrap;
  z-index: 1;
}

.Character_text a {
  display: block;
  padding: 1rem 1.2rem;
}

@media (max-width: 768px) {
  .Character_list {
    grid-template-columns: 1fr; /* 1列に変更 */
    row-gap: 0.8rem; /* 縦の間隔を追加 */
    justify-items: center; /* 中央揃え（任意） */  
  }
  .Character_button {
    height: 56px;
    max-width: 360px;
  }
}

@media (max-width: 480px) {
  .Character_button {
    width: 100%;
    max-width: 320px; /* スマホ向けに最大幅を少し小さく */
    height: 56px;
  }
  .Character_button span {
    font-size: 3.4rem;
    left: 10px;
  }
  .Character_text {
    font-size: 1.4rem;
    padding-left: 72px;  
  }
}

/* 各種バナー */
.banner_tittle {
  margin: 32px auto 0;
  text-align: center;
  max-width: 700px;
  background-color: #d7000f;
  color: #fff;
  font-size: 3.2rem;
  line-height: 1.2;
  padding: 1rem;
  border-radius: 6px;
  font-family: 'Kaisei Opti', 'Yomogi', "Hiragino Mincho ProN", "Yu Mincho", serif;
  font-weight: 900; /* Kaisei Optiの太字を使う場合 */
}

/* 画面幅が768px以下のスマートフォン表示用 */
@media screen and (max-width: 640px) {
  .banner_tittle {
    width: 100%; /* 画面幅に合わせて縮小 */
    font-size: 2.5rem; /* フォントサイズも調整 */
    padding: 0.8rem;
    margin-top: 24px; /* ← ここで下にずらす */
  }
}


/* 共通: セクション本文の上下余白 */
section > article,
section > div,
section > .member4 {
  margin: 0 auto;
  max-width: 700px;
  text-align: center;
}

/* 共通＠media */
@media (max-width: 768px) {
  .marujoh h2,
  maru_list h2,
  .suigyouza h2,
  .zawameku h2,
  .salad1 h2,
  .salad2 h2,
  .salad3 h2,
  .salad4 h2 {
    font-size: 3rem;
  }
}
@media (max-width: 480px) {
  .marujoh h2,
  .suigyouza h2,
  .zawameku h2,
  .salad1 h2,
  .salad2 h2,
  .salad3 h2,
  .salad4 h2 {
    font-size: 2rem;
  }
}

@media (max-width: 480px) {
  .marujoh p,
  .suigyouza p,
  .zawameku p,
  .salad1 p,
  .salad2 p,
  .salad3 p,
  .salad4 p {
    font-size: 1.7rem;
  }
}


/* 餃子シリーズ */
.marujoh img {
  display: block;
  margin: 40px auto;
  object-fit: contain;
  max-height: 300px;
  max-width: 100%;
  height: auto;
}

@media screen and (max-width: 480px) {
  .marujoh img {
    margin: 24px auto;
    max-height: 200px;
  }
}

.marujoh h3 {
  margin: 0 auto 8px;
  text-align: center;
}

.marujoh p {
  text-align: center;
  margin: 0 auto 16px;
}

/* 餃子サブ */
.marujoh_sub {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
}

.maru_list img {
  display: block;
  margin: 24px auto 12px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  max-height: 200px;
}
.maru_list h2 {
  margin: 0 0 6px;
  font-size: 2rem;
}
.maru_list p {
  margin: 0 0 16px;
  font-size: 1.5rem;
}
@media (max-width: 480px) {
  .maru_list h2 {
  margin: 0 0 6px;
  font-size: 2rem;
  }
  .maru_list p {
  margin: 0 0 16px;
  font-size: 1.7rem;
  }
}


/* 水餃子シリーズ */

.suigyouza img {
  display: block;
  margin: 40px auto; 
  object-fit: contain;
  max-width: 100%;
  height: auto;
  max-height: 370px;
}

@media screen and (max-width: 480px) {
  .suigyouza img {
    max-height: 250px;
    margin: 24px auto;
  }

  .name1 {
    font-size: 1.5rem;
  }

  .name_text {
    font-size: 1.2rem;
    padding: 0 1rem;
  }
}  
  

/* 焼売シリーズ */
.zawameku img {
  display: block;
  margin: 40px auto;
  object-fit: contain;
  width: 100%;
  max-width: 400px;
  height: auto;
}

  
/* サラダシリーズ */
.salad1,
.salad2,
.salad3,
.salad4 {
  margin: 0 auto;
  text-align: center;
  max-width: 700px;
}
.salad1 img,
.salad2 img,
.salad3 img {
  display: block;
  margin: 40px auto 0;
  object-fit: contain;
  width: 100%;
  max-width: 400px;
  height: auto;
}

.salad4 img {
  display: block;
  margin: 40px auto 0;
  object-fit: contain;
  width: 100%;
  max-width: 500px;
  height: auto;
}

.salad1 h2,
.salad2 h2,
.salad3 h2,
.salad4 h2 {
  padding-top: 32px;
  margin: 8px auto;
  text-align: center;
}

.salad1 p,
.salad2 p,
.salad3 p,
.salad4 p {
  text-align: center;
  padding-bottom: 30px;
  margin: 0;
}

/* サラダ共通パッケージ紹介 */
.card {
  display: flex;
  gap: 2px;                  /* ← ここを20pxから8pxに変更して寄せる */
  align-items: center;
  background: #fff;
  border: 1px solid #e3e6ea;
  border-radius: 12px; /* 角丸部分 */
  box-shadow: 0 4px 14px rgba(0,0,0,0.06);
  padding: 16px;             /* 余白もやや詰める（20px → 16px） */
  max-width: 600px;
  margin: 0 auto;
}

.card__media {
  flex: 0 0 230px;
  max-width: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
    
.card__media img {
  object-position: center center; /* ← 常に中央基準でトリミング */
  display: block;
  color: #444;
}

 .content h3 {
  font-size: 1.5rem; /* わずかに縮小 */
  font-weight: 700;
  margin: 0 0 6px; /* 8px → 6px にして詰める */
  padding-top: 32px;
  margin: 8px auto;
  text-align: center;
}

.content p {
  margin: 0 0 12px; /* 16px → 12px にして詰める */
  color: #444;
  font-size: 1.4rem;
  padding-right: 10px;
  text-align: center;
  padding-bottom: 30px;
  margin: 0;
}

/* スマホ時: 縦並び＋画像を中央に */
@media (max-width: 680px) {
  .card {
    flex-direction: column;      /* 縦並び */
    align-items: center;          /* 子要素を中央に */
    gap: 2px;
    width: 280px;
    height: 340px;
  }
  .card__media {
    flex: 0 0 auto;               /* 固定幅を解除 */
    width: 80%;                   /* 親幅いっぱい */
    max-width: 80%;
    aspect-ratio: 16 / 9;          /* 見栄えの良い比率（必要に応じて4/3などへ） */
    border-radius: 10px;
    margin-inline: auto;           /* 念のため中央 */
  }
  .card__body {
    width: 80%;
    text-align: left;
    }
  .content h3 {
    font-size: 1.5rem;
  }
  .content p {
    font-size: 1.3rem;
  }
  }



    /* ノッチ安全領域 */
    @supports (padding: max(0px)) {
      body {
        padding-left: max(12px, env(safe-area-inset-left));
        padding-right: max(12px, env(safe-area-inset-right));
      }
    }

.striped-hr {
    height: 7px;
    border: 0;
    background-size: 5px 5px;
    background-repeat: repeat;
    background-image: linear-gradient(-45deg, #ffffff 25%, #FFA872 25%, #FFA872 50%, #ffffff 50%, #ffffff 75%, #FFA872 75%, #FFA872);
    margin-bottom: 12px; /* replaces &nbsp; padding */
    margin-top: 20px;
  }

.text2 {
  margin: 0 auto;
  padding: 15px;
  margin-top: 50px;
  margin-bottom: 30px;
  background-color: #fff0d6;
  border: double 10px #d7000f;
  font-size: 2.5rem;
  color: #000;
  width: 400px;
  font-weight: bold;
}

@media (max-width: 640px) {
  .text2 {
  margin: 0 auto;
  padding: 20px;
  margin-top: 50px;
  margin-bottom: 30px;
  background-color: #fff0d6;
  border: double 7px #d7000f;
  font-size: 2rem;
  color: #000;
  width: 280px;
  font-weight: bold;
  }   
}



/* 公式サイトに戻る */
.official_button {
  text-align: center;
  margin-top: 30px;
}
*,
*:before,
*:after {
  -webkit-box-sizing: inherit;
  box-sizing: inherit;
}

html {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  font-size: 62.5%;
}

.btn,
a.btn,
button.btn {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
  position: relative;
  display: inline-block;
  padding: 1rem 4rem;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #212529;
  border-radius: 0.5rem;
}

a.btn--circle {
  width: 140px;
  height: 140px;
  padding: 20px 0 0;
  border-radius: 50%;
  color: #fff;
  background: #eb6877;
  -webkit-box-shadow: 0 7px 0 #e53b4e;
  box-shadow: 0 7px 0 #e53b4e;
}

a.btn--circle i {
  font-size: 150%;
}

.fa-position-bottom {
  position: absolute;
  bottom: 1rem;
  left: calc(50% - 0.5rem);
}

a.btn--circle:hover {
  -webkit-transform: translate(0, 4px);
  transform: translate(0, 4px);
  color: #fff;
  -webkit-box-shadow: 0 3px 0 #e53b4e;
  box-shadow: 0 3px 0 #e53b4e;
}


/* フッターグループ */

footer {
  background-color: #d7000f;
  max-width: 700px;
  margin: 50px auto 0;
  padding: 70px 0 30px;
  color: #fff;
}

/* スマホ時、キャラクターセクションの背景色を左右端まで広げる */
@media (max-width: 640px) {
  /* mainや外側のパディングが背景を削っている場合の対策 */
  footer {
    padding-left: 0;
    padding-right: 0;
    margin-left: 50%;
    margin-right: 50%;
    transform: translateX(-50%);
    width: 100vw;          /* 画面幅に合わせる */
  
  }
  }
  
  
.heading-16 {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  font-size: 1.5em;
}

.heading-16::before,
.heading-16::after {
  width: 3px;
  height: 40px;
  background-color: #fff;
  content: '';
}

.heading-16::before {
  transform: rotate(-35deg);
  margin-right: 30px;
}

.heading-16::after {
  transform: rotate(35deg);
  margin-left: 30px;
}

/* SNS */
.sns_text {
  text-align: center;
  color: #fff;
  font-size: 1.8rem;
}

.sns_list {
  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none;
  padding-left: 0;
  margin: 12px 0 0;
  gap: 12px;
  
}


.sns_list li {
  width: 46px;
  flex: 0 0 46px;
  
}

.sns-icon {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 6px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.sns-icon:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0,0,0,0.25);
}


p.copyright {
  text-align: center;
  margin-top: 10px;
}

.text1 {
  text-align: center;
  margin-top: 10px;
  font-size: 1.6rem;
}

.text1 strong {
  color: #ebfabb;
}

/* 追加の微調整（余白・タイポ） */
h2, h3 {
  line-height: 1.3;
  color: #d7000f;
  margin-top: 0;
}
p {
  margin: 0;
}

/* 小型端末での余白最適化 */
@media (max-width: 480px) {
  .salad1 p,
  .salad2 p,
  .salad3 p,
  .salad4 p {
    padding-bottom: 32px;
  }
  footer {
    padding: 48px 0 24px;
    margin-top: 36px;
  }
}

/* 通販ボタン */
.online_1{
    margin-top:12px;
  padding:16px;
  border:1px dashed var(--brand-2);
  border-radius:var(--radius);
}
  
.online_1 h2 {
  font-size:1.6rem;
  margin:0 0 10px;
  color: #000;
}

.cta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 16px;
  border-radius:999px;
  background:var(--brand-2);
  background-color: cornflowerblue;
  color: #fff;
  text-decoration:none;
  box-shadow:0 8px 18px rgba(46,134,228,.25)
}

.cta:hover {
  filter:brightness(1.05);
  transform:translateY(-1px)
}

.cta p {
  font-size: 1.8rem;
}

/* セクション共通の背景ブロック設定 */
.character1,
.character2,
.character3,
.character4 {
  /* 背景色の切替に備えて共通の余白と分離感を付与 */
  padding: 32px 0;        /* セクション上下余白 */
  width: 100%;
}
/* 内側ラッパー：中央寄せ＋幅制限 */
.section-inner {
  max-width: 700px;          /* 既存レイアウトに合わせる */
  margin: 0 auto;
  padding: 0 16px;           /* 端の余白（小画面での張り付き防止） */
  text-align: center;
}

/* 既存の「共通: セクション本文の上下余白」調整
   すでに section > article などに max-width 指定があるため、
   今回は .section-inner でまとめて幅制御するのが簡潔です。 */
section > article,
section > div,
section > .member4 {
  max-width: none; /* 既存のmax-width:700px を打ち消し、.section-innerに集約 */
}

/* スマホ時、キャラクターセクションの背景色を左右端まで広げる */
@media (max-width: 640px) {
  /* mainや外側のパディングが背景を削っている場合の対策 */
  main {
    padding-left: 0;
    padding-right: 0;
  }

  /* セクションはビューポート幅いっぱいに */
  .character1,
  .character2,
  .character3,
  .character4 {
    margin-left: 50%;
    margin-right: 50%;
    transform: translateX(-50%);
    width: 100vw;          /* 画面幅に合わせる */
    padding-left: 0;       /* 外側の左右パディングは0に */
    padding-right: 0;
  }

  /* 内側の読みやすさは維持（左右16pxの余白は内側で確保） */
  .character1 .section-inner,
  .character2 .section-inner,
  .character3 .section-inner,
  .character4 .section-inner {
    padding-left: 30px;
    padding-right: 30px;
  }
}


/* 背景色 */
.character1 { background-color: #fcf8f0; }  /* 餃子: 温かみのある薄いオレンジ */
.character2 { background-color: #e6f5ff; }  /* 水餃子: さわやかな薄いブルー */
.character3 { background-color: #fcdbca; }  /* 焼売: 落ち着いた薄い黄緑 */
.character4 { background-color: #eff7cb; }  /* サラダ: 優しい薄いラベンダー */

/* 見出しバナーの色味を背景に合わせて微調整（任意） */
.character1 .banner_title { background-color: #d86f00; } /* 既存 var(--brand-1) から少し変化させる場合 */
.character2 .banner_title { background-color: #2e86e4; } /* var(--brand-2) と同系 */
.character3 .banner_title { background-color: #a83aa8; }
.character4 .banner_title { background-color: #6a9b00; }

/* バナーの文字色は白のまま（コントラスト確保） */
.character1 .banner_title,
.character2 .banner_title,
.character3 .banner_title,
.character4 .banner_title {
  color: #fff;
}

/* 既存の「共通: セクション本文の上下余白」への影響を最小化 */
section > article,
section > div,
section > .member4 {
  /* 既存のmax-widthやtext-alignは活かす */
  margin-left: auto;
  margin-right: auto;
}

/* CTAブロックは背景上でも視認性を保つ */
.character1 .online_1,
.character2 .online_1,
.character3 .online_1,
.character4 .online_1 {
  background: rgba(255,255,255,0.7); /* ほんのり白背景を重ねる（任意） */
  border-color: rgba(0,0,0,0.1);
}

/* フッターは独立した背景のため上マージンを少し増やす（任意） */
footer {
  margin-top: 64px; /* 既存の50pxから調整して背景色の切替後も余白を確保 */
}

section.character1 .section-inner .banner_title,
section.character2 .section-inner .banner_title,
section.character3 .section-inner .banner_title,
section.character4 .section-inner .banner_title {
  margin-left: auto;
  margin-right: auto;
}

.container {
  max-width: 1980px;
}

