@charset "UTF-8";

/*
 * index.css（キャンペーンLP）
 * 構成: ベース / ヘッダー・MV / PCナビ / SPメニュー / フッター / 共通パーツ / 各セクション
 */

/*==========================================================
  ベース・レイアウト
==========================================================*/
body {
  font-size: 15px;
  font-weight: 400;
  line-height: 1.466;
  font-family: "Noto Sans JP", "游ゴシック", sans-serif;
  background: #e60012 url(../img/bg_gold.png) 50% 0 repeat;
  background-size: 80px auto;
}

#wrapper {
  overflow: hidden;
}
#l-header,
#l-container {
  background: #fff;
  max-width: 1310px;
  margin: 0 auto;
}
#l-container {
  padding: 0 150px 150px 150px;
  border-radius: 0 0 30px 30px;
}
@media screen and (max-width: 1400px) {
  #l-container {
    padding: 0 4vw 15vw 4vw;
    width: 93.33%;
  }
}
@media screen and (max-width: 767px) {
  #l-container {
    width: 100%;
    border-radius: 0;
    padding: 0 4vw 13.333vw 4vw;
  }
}

/*********************************************
  HEADER
*********************************************/
#l-header {
  position: relative;
  width: 93.33%;
  background: #ffa200;
  background-color: hsla(38, 100%, 50%, 0.7);
}
#l-header::after {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  top: min(18.98vw, 205px);
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  background-image: linear-gradient(0deg, #ffa200, transparent);
}

/* PC はロゴ列を赤帯（.mv-k-logo）の上に重ねる */
.mv_header {
  position: absolute;
  top: -140px;
  left: 0;
  right: 0;
  height: 140px;
  box-sizing: border-box;
}
.mv_header > * {
  z-index: 2;
}

.mv-logo {
  position: absolute;
  top: 32px;
  right: 7.15%;
  width: 9.63%;
  max-width: 125.7px;
  height: auto;
}
.mv-logo img {
  width: 100%;
  height: auto;
}
/* padding-top は全幅で重ねた mv_new.png（.mv_img1）のぶんの逃げ 259.36/1305 */
.mv_main {
  position: relative;
  overflow: hidden;
  z-index: 0;
  padding: 19.87% 0 0;
  background: url(../img/mv_bg_top.jpg) no-repeat center center / cover , #FFA200 repeat
}
.mv_main::before,
.mv_main::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  width: 100%;
}
.mv_main .mv_img1,
.mv_main .mv_prize,
.mv_main .mv_note {
  display: block;
  z-index: 5;
  position: relative;
}

.mv_main .mv_img2 {
  display: block;
  width: 100%;
  aspect-ratio: 2610 / 979;
  position: relative;
  user-select: none;
  -webkit-touch-callout: none;
  margin: -40px auto 0;
}
.mv_main .mv_img2 img {
  max-width: inherit;
  width: 100%;
  height: 100%;
}

.mv_head_img {
  display: block;
  width: 100%;
}
.mv-k-logo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  height: 140px;
  margin: 0 auto;
  background-color: #ce0000;
}
.mv-k-logo_txt {
  width: 345.65px;
  height: 34.52px;
  margin-right: 16px;
}
.mv-k-logo_img {
  width: 116.27px;
  height: 115.39px;
}
.mv_main .notice {
  z-index: 5;
  display: block;
  margin: -2.26% auto 0;
  color: #000;
  font-weight: 400;
  font-size: 18px;
  line-height: 25px;
  text-align: center;
}
.mv_img1 {
  max-width: 1390px;
  margin: -40px auto 0;
  position: absolute;
  /* 左右 0 + margin auto で絶対配置のまま左右中央に寄せる */
  left: 0;
  right: 0;
  z-index: 1;
}

.mv_note {
  margin-top: 2.35%;
  padding-bottom: 2.38%;
}
.mv_img3 {
  display: block;
  width: 100%;
}
.mv_img3 img {
  display: block;
  width: 100%;
  height: auto;
}
.mv_note .note-list {
  z-index: 5;
  /* 88.89% = 100% - 左右 5.55%（枠が 996px を確保できない幅では自動で内側に寄る） */
  width: min(996px, 88.89%);
  margin: 1.58% auto 0;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 0.01em;
  text-align: justify;
}

/*----- 応募期間（Figma: #FFEDCF ＋ 10px 白斜線 ＋ 肉球） -----*/
.mv_date {
  position: relative;
  width: 100%;
  margin: 0 auto;
  padding: 2.605% 0;
  overflow: hidden;
  box-sizing: border-box;
  background: #ffedcf;
}
.mv_date::before,
.mv_date::after {
  content: "";
  display: block;
  position: absolute;
  z-index: 2;
  background: url(../img/mv_date_paw.svg) no-repeat 50% 50% / 100% 100%;
}
/* 左側は右側の左右反転配置 */
.mv_date::before {
  top: 8.95%;
  left: 8.51%;
  width: 6.9%;
  aspect-ratio: 90 / 100;
  transform: scaleX(-1);
}
.mv_date::after {
  top: 43.16%;
  left: 88.35%;
  width: 6.23%;
  aspect-ratio: 81.29 / 90;
}
.mv_date-lines {
  position: absolute;
  z-index: 1;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(135deg, #fff 0 1.2px, rgba(255, 255, 255, 0) 1.2px 7.07px);
}
.mv_date-img {
  position: relative;
  z-index: 3;
  display: block;
  width: min(783px, 60.08%);
  height: auto;
  margin: 0 auto;
}

@media only screen and (max-width: 767px) {
  /* MV（SP: Figma 375×730 基準。vw = px / 375 × 100） */
  #l-header::after {
    content: none;
  }
  .mv_main::before,
  .mv_main::after {
    content: none;
  }
  /* padding-top は mv_new（.mv_img1）を重ねるための逃げ 115/375 */
  .mv_main {
    padding: 30.6667vw 0 7.4667vw;
    background: url(../img/mv_bg_top_sp.jpg) no-repeat center center / cover;
  }
  .mv_main .mv_img2 {
    aspect-ratio: 375 / 203;
    margin: 0 auto 0;
  }
  /* mv_new 351×107 / 上端 y=11.5px */
  .mv_img1 {
    width: 93.6vw;
    max-width: none;
    margin: 3.0667vw auto 0;
  }

  /* 375px 基準: vw = px / 375 × 100 */
  .mv-k-logo {
    height: 13.3333vw;
  }
  .mv-k-logo_txt {
    width: 34.6507vw;
    height: 3.4613vw;
    margin-right: 2.6667vw;
  }
  .mv-k-logo_img {
    width: 10.6667vw;
    height: 10.6667vw;
  }
  .mv_main .notice {
    z-index: 5;
    display: block;
    margin: 0 0 8vw;
    padding: 0 4vw 0 4.2667vw;
    color: #000;
    font-weight: 400;
    font-size: 3.73vw;
    line-height: 6.6667vw;
    text-align: left;
  }
  /* margin-top は notice 下端 368px → mv_txt 上端 407px の逃げ */
  .mv_note {
    margin-top: auto;
    padding-bottom: 0;
    background: none;
  }
  .mv_main .note-list {
    width: 100%;
    margin: 5.3333vw auto 0;
    padding: 0 4vw 0 4.5333vw;
    box-sizing: border-box;
    font-size: 4vw;
    line-height: 6.6667vw;
  }
  /* 応募期間（SP） */
  .mv_date-lines {
    display: none;
  }
  .mv_date {
    padding: 5.333vw 4vw;
  }
  .mv_date::before {
    display: none;
  }
  .mv_date::after {
    display: none;
  }
  .mv_date-img {
    width: 100%;
    max-width: 100%;
  }
}

/* NAVI */
.navi {
  position: relative;
  z-index: 9997;
  height: auto;
  min-height: 85px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 5.55%;
}
ul.gnav.fixed {
  position: fixed;
  z-index: 999;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  animation: slideIn 1s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}
@keyframes slideIn {
  0% {
    transform: translateY(-105%);
    opacity: 0;
  }
  100% {
    transform: translateY(0);
  }
  40%,
  100% {
    opacity: 1;
  }
}
.navi ul.gnav {
  background: #fff;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  max-width: 1000px;
  width: 100%;
  box-sizing: border-box;
  padding: 20px 0;
}
@media only screen and (min-width: 768px) {
  .navi ul.gnav.fixed {
    max-width: none;
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    padding: 20px max(24px, calc(50% - 500px));
    box-sizing: border-box;
  }
}
.navi ul.gnav li {
  position: relative;
  width: auto;
  height: auto;
}
.navi ul.gnav span {
  position: relative;
  display: block;
  text-indent: 0;
  line-height: 1.5;
  grid-column: 2;
  grid-row: 1;
  justify-self: start;
  align-self: center;
  min-width: 0;
}
.navi ul.gnav a {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 8px;
  row-gap: 5px;
  width: auto;
  height: auto;
  font-size: clamp(20px, 1.45vw, 20px);
  font-weight: 700;
  color: #111;
  background-repeat: no-repeat;
  background-size: auto;
}
.navi ul.gnav a::before {
  content: "";
  grid-column: 1;
  grid-row: 1;
  width: 34px;
  height: 24px;
  background: 50% 50% / contain no-repeat;
}
.navi ul.gnav a::after {
  content: "";
  grid-column: 1 / -1;
  grid-row: 2;
  width: 12px;
  height: 8px;
  justify-self: center;
  background: 50% 50% / contain no-repeat;
}
.navi ul.gnav li a::before {
  background-image: url(../img/spnav-icon-orange.svg);
}
.navi ul.gnav li a::after {
  background-image: url(../img/spnav-chevron-orange.svg);
}

.hnbg {
  display: none;
  border: none;
  background: transparent;
  padding: 0;
  margin: 0;
  cursor: pointer;
  font: inherit;
  color: inherit;
  -webkit-tap-highlight-color: transparent;
}
.hnbg:focus-visible {
  outline: 2px solid #ea5514;
  outline-offset: 3px;
}

/* ----- SP: ヘッダー・ハンバーガー・ドロワーナビ ----- */
@keyframes fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@media only screen and (max-width: 767px) {
  /* 固定ヘッダー高・SP 背景 */
  #l-header {
    --sp-header-h: calc(5.3333vw + 10.6667vw + 1.3333vw);
    width: 100%;
    padding-top: 0;
    background-color: hsla(345, 76%, 74%, 0.7);
    background-size: cover;
  }
  .mv_header {
    position: fixed;
    top: 0;
    z-index: 9999;
    height: auto;
    min-height: var(--sp-header-h);
    box-sizing: border-box;
    overflow: visible;
    transition: background-color 0.2s ease;
  }
  #wrapper.open .mv_header {
    background: #fff;
  }
  .mv_header > * {
    z-index: 9999;
  }
  .hnbg {
    display: flex;
    align-items: center;
    position: absolute;
    top: 5.3333vw;
    right: 5.3333vw;
    left: auto;
  }
  .hnbg__icon {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 1.3333vw;
    width: 10.6667vw;
    height: 10.6667vw;
    padding: 0 2.6667vw;
    box-sizing: border-box;
    background: #fff;
    border-radius: 0.8vw;
    box-shadow: 0 0.5333vw 1.6vw rgba(0, 0, 0, 0.12);
    transition: box-shadow 0.2s ease;
  }
  .hnbg__bar {
    display: block;
    height: 0.5333vw;
    border-radius: 1.3333vw;
    background: #ea5514;
    transition:
      transform 0.3s ease,
      opacity 0.2s ease,
      width 0.3s ease;
  }
  .hnbg__bar:nth-child(1) {
    width: 5.3333vw;
  }
  .hnbg__bar:nth-child(2) {
    width: 4.8vw;
  }
  .hnbg__bar:nth-child(3) {
    width: 4vw;
  }
  .open .hnbg__icon {
    align-items: center;
    justify-content: center;
    padding: 0;
    position: relative;
  }
  .open .hnbg__bar:nth-child(1) {
    position: absolute;
    width: 5.3333vw;
    transform: rotate(45deg);
  }
  .open .hnbg__bar:nth-child(2) {
    opacity: 0;
    width: 5.3333vw;
  }
  .open .hnbg__bar:nth-child(3) {
    position: absolute;
    width: 5.3333vw;
    transform: rotate(-45deg);
  }
  .mv-logo {
    top: 3.2vw;
    left: 5.3333vw;
    right: auto;
    width: 13.3333vw;
    height: auto;
  }
  .navi {
    transition-duration: 0s;
    animation: fade 0.2s linear forwards;
    display: none;
  }
  .navi ul.gnav {
    opacity: 0;
    display: none;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    max-width: 100%;
    width: 100%;
    gap: 0;
    border-top: none;
    padding: 0 13.3333vw;
    margin: 0 auto;
    background-color: transparent;
    box-sizing: border-box;
  }
  .navi ul.gnav li {
    width: 100% !important;
    height: auto;
    min-height: 0;
    padding: 0;
    border-bottom: none;
  }
  .navi ul.gnav li + li {
    position: relative;
    border-top: none;
  }
  .navi ul.gnav li + li::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 0.2667vw;
    pointer-events: none;
    background: repeating-linear-gradient(
      to right,
      #d7d7d7 0,
      #d7d7d7 1.0667vw,
      transparent 1.0667vw,
      transparent 1.8667vw
    );
  }
  .navi ul.gnav span {
    min-width: 0;
    text-align: left;
    font-size: 4.8vw;
    line-height: 6.6667vw;
    font-weight: 700;
    flex: 1 1 auto;
  }
  .navi ul.gnav a {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    column-gap: 3.2vw;
    row-gap: 0;
    width: 100%;
    height: auto;
    min-height: 14.9333vw;
    padding: 3.7333vw 1.0667vw 3.7333vw 0;
    text-align: left;
    font-size: 4.8vw;
    font-weight: 700;
    color: #111;
    box-sizing: border-box;
  }
  .navi ul.gnav a::before {
    content: "";
    width: 8vw;
    height: 6.4vw;
    background: 50% 50% / contain no-repeat;
  }
  .navi ul.gnav a::after {
    content: "";
    width: 3.2vw;
    height: 2.133vw;
    margin-left: auto;
    background: 50% 50% / contain no-repeat;
    transform: rotate(-90deg);
  }
  .open .navi {
    position: fixed;
    top: var(--sp-header-h);
    left: 0;
    right: 0;
    z-index: 9998;
    max-width: 100%;
    width: 100%;
    padding: 0 0 4.467vw;
    background: #fff;
    box-sizing: border-box;
    height: auto;
    -webkit-overflow-scrolling: touch;
    overflow-x: hidden;
    overflow-y: auto;
    display: block;
    opacity: 1;
    border-radius: 0 0 5.3333vw 5.3333vw;
    transition:
      opacity 0.25s ease,
      box-shadow 0.25s ease;
  }
  .open .navi ul.gnav {
    opacity: 1;
    display: flex;
    animation: fade 0.25s ease forwards;
  }
  .open .navi ul.gnav.fixed {
    position: relative;
    width: auto;
  }
}

/*********************************************
  FOOTER
*********************************************/
#l-footer {
  background: #e60012;
  text-align: center;
  padding: 30px 0 30px;
  margin: 150px auto 0;
}
#l-footer .logo {
  width: 200px;
  margin: 0 auto 10px;
}
#l-footer .copy {
  font-size: 14px;
  font-weight: 700;
  color: #fff;
}
@media only screen and (max-width: 767px) {
  #l-footer {
    padding: 8vw 0 30vw;
    margin: 0 auto 0;
  }
  #l-footer .copy {
    font-size: 3.7333vw;
  }
}

#js-fixedarea {
  position: fixed;
  right: 0;
  bottom: 0;
  z-index: 10000;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition:
    opacity 0.35s ease,
    visibility 0.35s ease,
    transform 0.35s ease,
    box-shadow 0.2s ease;
}
#js-fixedarea.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
/* ページ先頭へ */
.pagetop {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  border-radius: 10px;
  background: #fff;
  box-shadow:
    0 4px 12px rgba(0, 0, 0, 0.12),
    0 2px 4px rgba(0, 0, 0, 0.06);
}
.pagetop__icon {
  display: block;
  width: 28px;
  height: auto;
  flex-shrink: 0;
  transform: rotate(180deg);
}
/* 固定ボタン */
.fixed_btn {
  position: fixed;
  right: 0;
  bottom: 110px;
  z-index: 10000;
  width: 135px;
  height: 120px;
}
.fixed_btn img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
@media (prefers-reduced-motion: reduce) {
  .pagetop {
    transition:
      opacity 0.2s ease,
      visibility 0.2s ease;
  }
}
@media only screen and (max-width: 767px) {
  #js-fixedarea {
    bottom: 0;
    width: 100vw;
  }
  /* fixed_btn_sp(75/518) の表示高＋セーフエリア＋隙間 — iOS で CTA に被さらないよう bottom を算出 */
  .pagetop {
    right: 5.333vw;
    left: auto;
    width: 8vw;
    height: 8vw;
    border-radius: 1.333vw;
    bottom: calc(env(safe-area-inset-bottom, 0px) + (75 * (100vw - 10.666vw) / 518) + 2.133vw);
  }
  .pagetop__icon {
    width: 3.2vw;
  }
  /* vw＋中央寄せ。セーフエリアは padding ではなく ::after（iOS で下端だけ全幅に化けるのを防ぐ） */
  .fixed_btn {
    right: auto;
    left: 50%;
    bottom: 0;
    width: calc(100vw - 10.666vw);
    height: auto;
    padding: 0;
    border-radius: 5.333vw 5.333vw 0 0;
    background-color: #ea5514;
    transform: translate3d(-50%, 0, 0);
    box-sizing: border-box;
  }
  .fixed_btn::after {
    content: "";
    display: block;
    width: 100%;
    height: constant(safe-area-inset-bottom);
    height: env(safe-area-inset-bottom, 0px);
    background-color: #ea5514;
  }
  .fixed_btn a {
    display: block;
  }
  .fixed_btn img {
    width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
  }
}

/*********************************************
  CONTAINER（共通コンポーネント）
*********************************************/
/* section */
.section {
  margin: 12% auto 0;
  position: relative;
  z-index: 0;
}
.section-header {
  text-align: center;
  position: relative;
  margin-bottom: min(4.62vw, 50px);
}
.section-title {
  display: block;
  position: relative;
  font-size: 40px;
  font-weight: 700;
  color: #f94c76;
  background-color: #ffd2dc;
  border-radius: 50px;
  margin: 0 auto;
  padding: 5px 0 10px;
}
#dogfood_content .section-title {
  color: #ea5514;
  background-color: #ffd1bd;
}
.section-title.lineup-title {
  margin-bottom: 40px;
  margin-bottom: 4%;
  font-size: 30px;
  padding: 20px 0 20px;
}
.section-title.lineup-title::after {
  content: none;
}
.section-title.orange {
  color: #ea5514;
  background-color: #ffd1bd;
}
.section-title.yellow {
  color: #ea5514;
  background-color: #ffe9c3;
}
.section-title::after {
  content: "";
  display: block;
  position: absolute;
  border-style: solid;
  border-right: 15px solid transparent;
  border-left: 15px solid transparent;
  border-top: 15px solid #ffd2dc;
  border-bottom: 0;
  left: 50%;
  margin-left: -15px;
  bottom: -14px;
}
.section-title.orange::after {
  border-top: 15px solid #ffd1bd;
}
.section-title.yellow::after {
  border-top: 15px solid #ffe9c3;
}
.section-title2 {
  font-size: 20px;
  font-weight: 700;
  color: #ea5514;
  background-color: #fff4f0ff;
  border-radius: 50px;
  display: block;
  margin: 0 auto;
  padding: 15px 0 15px 0;
  text-align: center;
}
.section-contents {
  padding: 0;
  font-size: 18px;
  font-weight: 400;
  line-height: 166.667%;
}
.section-contents + .section-contents {
  margin-top: 40px;
}
@media only screen and (max-width: 767px) {
  .section {
    margin: 13.333vw auto 0;
  }
  .section-header {
    margin-bottom: 5.333vw;
  }
  .section-title {
    font-size: 5.333vw;
    padding: 2.66vw 0;
  }
  .section-title.lineup-title {
    margin-bottom: 5.333vw;
    font-size: 4.8vw;
    margin-top: 6vw;
    padding: 2.66vw 0;
  }
  .section-title2 {
    font-size: 4.8vw;
    margin-bottom: 5.3333vw;
  }
  .section-title2::before {
    border-top-width: 1px;
  }
  .section-contents {
    padding: 2.66vw 0;
    font-size: 4.533vw;
    line-height: 1.5;
    text-align: left;
  }
}

/* sub section */
.sub-section:not(:first-child) {
  margin-top: 40px;
}
.sub-section > .ttl {
  color: #000;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.05em;
  border-bottom: 1px solid #ff8da8;
  position: relative;
  padding-left: 40px;
  padding-bottom: 10px;
  margin-bottom: 10px;
}
.sub-section > .ttl::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0.1em;
  width: 1.7em;
  height: 1.4em;
  background: url(../img/subttl-mark.svg) 0 0 no-repeat;
  background-size: contain;
}

/* box section */
.box-section {
  border: 3px solid #ff8da8;
  margin: 40px auto 60px;
  border-radius: 30px;
  overflow: hidden;
}
.box-section > .box-ttl {
  background-color: #ffdde5;
  color: #f94c76;
  text-align: center;
  font-size: 20px;
  letter-spacing: 0.05em;
  font-weight: 700;
  padding: 15px 0;
}
.box-section .box-body {
  padding: 30px;
  background-color: #fff;
}
@media only screen and (max-width: 767px) {
  .sub-section:not(:first-child) {
    margin-top: 5.3333vw;
  }
  .sub-section > .ttl {
    font-size: 4.8vw;
    letter-spacing: 0;
    padding-left: 10.666vw;
    padding-bottom: 2.666vw;
    margin-bottom: 2.666vw;
  }
  .sub-section > .ttl::before {
    top: 0;
    width: 8vw;
    height: 100%;
  }

  .box-section > .box-ttl {
    font-size: 4.8vw;
    padding: 2.666vw 2.666vw;
  }
  .box-section .box-body {
    padding: 5.333vw 4vw;
  }
}

/* btn */
p.btn {
  min-width: 370px;
  max-width: 100%;
  width: fit-content;
  margin: 40px auto 20px;
}
p.btn span,
p.btn a {
  display: block;
  background: #5e9ce5;
  font-size: 22px;
  color: #fff;
  text-align: center;
  position: relative;
  border-radius: 1.36em;
  padding: 0.55em 1.86em 0.75em;
  font-weight: 700;
  box-shadow: 5px 10px 0 rgba(94, 156, 229, 0.5);
}
p.btn a::after {
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  border-color: transparent transparent transparent currentColor;
  border-width: 0.325em 0.6em;
  border-style: solid;
  margin-left: 0.25em;
  margin-right: -0.85em;
}
p.btn-w {
  min-width: 400px;
  max-width: 100%;
  width: fit-content;
  margin: 50px auto 0;
}
p.btn-w a {
  display: block;
  background: #fff;
  font-size: 32px;
  color: #da1f00;
  text-align: center;
  position: relative;
  border-radius: 1.25em;
  padding: 0.5em 1.86em 0.55em;
  letter-spacing: 0.05em;
  font-weight: 700;
  box-shadow: 5px 10px 0 #a87e21;
}
@media only screen and (max-width: 767px) {
  p.btn {
    min-width: 280px;
  }
  p.btn span,
  p.btn a {
    font-size: 16px;
    line-height: 1.25;
    border-radius: 1.875em;
    min-height: 3.75em;
    box-shadow: 4px 6px 0 rgba(94, 156, 229, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  p.btn a::after {
    position: absolute;
    top: 50%;
    right: 20px;
    margin-top: -0.3em;
  }
  p.btn-w {
    min-width: 280px;
    margin: 30px auto;
  }
  p.btn-w a {
    font-size: 18px;
    line-height: 1.25;
    border-radius: 1.875em;
    min-height: 3.75em;
    box-shadow: 4px 6px 0 #a87e21;
    display: flex;
    align-items: center;
    justify-content: center;
  }
}

/* txt */
p.txt:not(:last-child) {
  margin-bottom: 1em;
}
p.txt.date + .date {
  margin-top: -1em;
}
.bold {
  font-weight: bold;
}
.note {
  text-indent: -1em;
  margin-left: 1em;
}
.t-center {
  text-align: center;
}
.t-red {
  color: #f00;
}

/* list */
ul.list li {
  text-indent: -1.05em;
  padding-left: 1.05em;
}
ul.list li::before {
  content: "・";
}
ul.list li.nomark {
  text-indent: 0;
  padding-left: 0;
}
ul.list li.nomark::before {
  content: none;
}

/* disc list */
ul.disc-list li {
  margin-left: 2em;
  letter-spacing: 0.05em;
  list-style-type: disc;
}

/* note list */
ul.note-list {
  margin: 1em 0;
}
ul.note-list li {
  text-indent: -1.05em;
  padding-left: 1.05em;
}

/* dl */
dl.dl {
  letter-spacing: 0.05em;
}
dl.dl:not(:last-child) {
  margin-bottom: 1.5em;
}
dl.dl dt {
  font-weight: 700;
}
dl.dl dd {
  font-weight: 400;
}
dl.mark-dl {
  padding-left: 1em;
  letter-spacing: 0.05em;
}
dl.mark-dl:not(:last-child) {
  margin-bottom: 2em;
}
dl.mark-dl dt {
  margin-left: -1em;
  font-weight: 700;
}
dl.mark-dl dt .note {
  font-weight: 400;
  text-indent: 0;
  margin-left: 0;
}
.text-pc {
  display: block !important;
}
.text-sp {
  display: none !important;
}
@media only screen and (max-width: 767px) {
  .text-pc {
    display: none !important;
  }
  .text-sp {
    display: block !important;
  }
}

/*********************************************
  PRIZE
*********************************************/
#prize {
  z-index: 0;
  overflow: visible;
}
#prize .section-contents {
  margin-left: auto;
  margin-right: auto;
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

/* A賞（Figma 997×512） */
.prize_a {
  position: relative;
  width: 100%;
  aspect-ratio: 997 / 610;
  container-type: inline-size;
  container-name: prize-a;
}
.prize_a::before {
  content: "";
  position: absolute;
  z-index: 0;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  background: #fff6e6;
  border: min(10px, 1.003cqi) solid #ffa200;
  border-radius: min(30px, 3.009cqi);
}
.prize_a-paw {
  position: absolute;
  z-index: 1;
  display: block;
  height: auto;
  pointer-events: none;
}
.prize_a-paw01 {
  top: 7.705%;
  left: 58.676%;
  width: 7.623%;
}
.prize_a-paw02 {
  top: 45.039%;
  left: 3.31%;
  width: 12.97%;
}
.prize_a-medal {
  position: absolute;
  z-index: 2;
  top: 10.328%;
  left: 5.617%;
  width: 13.039%;
  height: auto;
}
.prize_a-badge,
.prize_a-name,
.prize_a-value {
  position: absolute;
  z-index: 2;
  left: 22.869%;
  margin: 0;
  color: #ea5514;
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-weight: 700;
}
.prize_a-badge {
  top: 8.852%;
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.401cqi;
  box-sizing: border-box;
  width: max-content;
  min-width: 28.084cqi;
  height: 5.517cqi;
  padding: 0 2.207cqi 0.35cqi;
  white-space: nowrap;
  border: 0.301cqi solid #ea5514;
  border-radius: 100px;
  line-height: 1;
}
.prize_a-badge::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: 0.702cqi;
  top: 0.401cqi;
  width: 100%;
  height: 100%;
  background: #ffa200;
  opacity: 0.2;
  border-radius: 100px;
}
.prize_a-badge-label,
.prize_a-badge-unit {
  flex-shrink: 0;
  font-size: 2.508cqi;
  white-space: nowrap;
}
.prize_a-badge-num {
  flex-shrink: 0;
  font-size: 4.012cqi;
  white-space: nowrap;
}
.prize_a-name {
  top: 20.656%;
  font-size: 4.514cqi;
  line-height: 6.018cqi;
}
.prize_a-value {
  top: 31.107%;
  line-height: 8.074cqi;
  letter-spacing: 0.05em;
}
.prize_a-value-num {
  font-size: 7.523cqi;
}
.prize_a-value-unit {
  font-size: 4.037cqi;
}
.prize_a-notice {
  position: absolute;
  z-index: 2;
  top: 46.23%;
  left: 22.869%;
  margin: 0;
  color: #919191;
  font-weight: 400;
  font-size: 1.605cqi;
  line-height: 2.508cqi;
  width: 44.333cqi;
}
.prize_a-img {
  position: absolute;
  z-index: 3;
  top: 0.492%;
  left: 67.703%;
  width: 29.504%;
  height: 82.623%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.prize_a-img img {
  display: block;
  width: 83.74%;
  height: auto;
  transform: rotate(0);
}
@media only screen and (max-width: 767px) {
  /* A賞 SP（Figma 344×615） */
  .prize_a {
    aspect-ratio: 344 / 615;
  }
  .prize_a::before {
    border: min(3px, 0.872cqi) solid #ea5514;
    border-radius: min(10px, 2.907cqi);
  }
  .prize_a-medal {
    top: 3.659%;
    left: 3.779%;
    width: 27.035%;
  }
  .prize_a-badge,
  .prize_a-name {
    left: 5.331%;
  }
  .prize_a-badge {
    top: 22.179%;
    gap: 0.3cqi;
    min-width: 48.9cqi;
    height: 9.605cqi;
    padding: 0 3.843cqi 0.35cqi;
    border-width: 0.524cqi;
  }
  .prize_a-badge::before {
    left: 1.224cqi;
    top: 0.701cqi;
  }
  .prize_a-badge-label,
  .prize_a-badge-unit {
    font-size: 4.36cqi;
  }
  .prize_a-badge-num {
    font-size: 7.267cqi;
  }
  .prize_a-name {
    top: 28.943%;
    font-size: 6.395cqi;
    line-height: 10.516cqi;
  }
  .prize_a-value {
    top: 35.122%;
    left: 3.779%;
    line-height: 15.547cqi;
  }
  .prize_a-value-num {
    font-size: 14.535cqi;
  }
  .prize_a-value-unit {
    font-size: 7.267cqi;
  }
  .prize_a-notice {
    top: 47.154%;
    left: 5.814%;
    width: 87.209%;
    font-size: 4.07cqi;
    line-height: 5.814cqi;
    letter-spacing: 0;
  }
  .prize_a-img {
    top: 1.789%;
    left: 54.942%;
    width: 40.995%;
    height: 39.285%;
  }
  .prize_a-paw01 {
    top: 39.512%;
    left: 80.233%;
    width: 13.953%;
  }
  .prize_a-paw02 {
    top: 6.179%;
    left: 39.244%;
    width: 22.114%;
  }
}

/* B賞（Figma 997×1580） */
.prize_b {
  position: relative;
  width: 100%;
  margin-top: 7.936%;
  aspect-ratio: 997 / 1580;
  container-type: inline-size;
  container-name: prize-b;
}
.prize_b::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  box-sizing: border-box;
  background: #fff5f0;
  border: min(10px, 1.003cqi) solid #ff9566;
  border-radius: min(30px, 3.009cqi);
}
.prize_b-paw,
.prize_b-medal,
.prize_b-title,
.prize_b-img01,
.prize_b-img02,
.prize_b-flow-title {
  position: absolute;
  display: block;
  height: auto;
}
.prize_b-paw {
  z-index: 1;
  top: 15.19%;
  left: 4.614%;
  width: 13.441%;
  pointer-events: none;
}
.prize_b-medal {
  z-index: 2;
  top: 3.038%;
  left: 5.316%;
  width: 13.039%;
}
.prize_b-title {
  z-index: 2;
  top: 3.038%;
  left: 22.568%;
  width: 36.911%;
  margin: 0;
}
.prize_b-title img {
  display: block;
  width: 100%;
  height: auto;
}
.prize_b-img01 {
  z-index: 3;
  top: 2.911%;
  left: 55.968%;
  width: 40.12%;
}
.prize_b-img02 {
  z-index: 3;
  top: 23.228%;
  left: 72.217%;
  width: 23.771%;
}
.prize_b-lead {
  position: absolute;
  z-index: 2;
  top: 21.013%;
  left: 22.568%;
  width: 46.138%;
  color: #000;
  font-size: 1.805cqi;
  font-weight: 400;
  line-height: 1.667;
  text-align: justify;
}
.prize_b-lead p {
  margin: 0;
}
.prize_b-lead a {
  display: block;
  color: #000;
  text-decoration: underline;
}
.prize_b-lead strong,
.prize_b-step-text strong {
  font-weight: 700;
  color: #ea5514;
}
.prize_b-panel {
  position: absolute;
  z-index: 2;
  left: 4.714%;
  top: 41.709%;
  width: 90.271%;
  height: 52.532%;
  background: #fff;
  border-radius: min(30px, 3.009cqi);
}
.prize_b-flow-title {
  z-index: 3;
  top: 42.975%;
  left: 28.586%;
  width: 42.528%;
}
.prize_b-steps {
  position: absolute;
  z-index: 3;
  top: 48.671%;
  left: 7.422%;
  width: 84.855%;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}
.prize_b-step {
  width: 30.142%;
}
.prize_b-step img {
  display: block;
  width: 100%;
  height: auto;
}
.prize_b-step:nth-child(2) {
  width: 30.733%;
}
.prize_b-step:nth-child(2) img {
  width: 98.077%;
}
.prize_b-step:nth-child(2) .prize_b-step-label,
.prize_b-step:nth-child(2) .prize_b-step-text {
  margin-left: 1.923%;
  width: 98.077%;
}
.prize_b-step-label {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 5.016cqi;
  margin: 1.204cqi 0 0;
  padding: 0 0.4em;
  background: #fff6e6;
  border-radius: min(10px, 1.003cqi);
  color: #ea5514;
  font-size: 1.805cqi;
  font-weight: 700;
  line-height: 1.389;
  text-align: center;
}
.prize_b-step-text {
  margin: 2.006cqi 0 0;
  color: #000;
  font-size: 1.805cqi;
  font-weight: 400;
  line-height: 1.667;
  text-align: justify;
}
.prize_b-legal {
  position: absolute;
  z-index: 3;
  top: 75.38%;
  left: 7.021%;
  width: 85.757%;
  color: #000;
  font-size: 1.605cqi;
  font-weight: 400;
  line-height: 1.5625;
}
.prize_b-legal p {
  margin: 0;
}
.prize_b-legal ul {
  margin: 0;
  padding-left: 1.5em;
  list-style: disc;
}
.prize_b-legal li {
  list-style: disc;
}
.prize_b-notice {
  position: absolute;
  z-index: 2;
  top: 95.506%;
  left: 4.714%;
  margin: 0;
  color: #919191;
  font-size: 1.605cqi;
  font-weight: 400;
  line-height: 1.5625;
}
@media only screen and (max-width: 767px) {
  /* B賞 SP（Figma 344×3196） */
  .prize_b {
    margin-top: 5.797%;
    aspect-ratio: 344 / 3196;
  }
  .prize_b::before {
    border: min(3px, 0.872cqi) solid #ff9566;
    border-radius: min(10px, 2.907cqi);
  }
  .prize_b-medal {
    top: 0.626%;
    left: 3.488%;
    width: 27.326%;
  }
  .prize_b-title {
    top: 4.5%;
    left: 5.523%;
    width: 88.953%;
  }
  .prize_b-img01 {
    top: 0;
    left: 31.105%;
    width: 70.349%;
  }
  .prize_b-img02 {
    top: 24.844%;
    left: 31.105%;
    width: 66.86%;
  }
  .prize_b-paw {
    top: 25.125%;
    left: 6.395%;
    width: 23.837%;
  }
  .prize_b-lead {
    top: 10.388%;
    left: 4.942%;
    width: 91.279%;
    font-size: 5.233cqi;
  }
  .prize_b-lead a {
    overflow-wrap: anywhere;
  }
  .prize_b-panel {
    left: 4.651%;
    top: 32.979%;
    width: 90.116%;
    height: 66.709%;
    border-radius: min(10px, 2.907cqi);
  }
  .prize_b-flow-title {
    top: 33.605%;
    left: 9.884%;
    width: 74.419%;
  }
  .prize_b-flow-title img {
    width: 100%;
    height: auto;
    display: block;
  }
  .prize_b-steps {
    top: 37.047%;
    left: 12.791%;
    width: 74.128%;
    flex-direction: column;
  }
  .prize_b-step,
  .prize_b-step:nth-child(2) {
    width: 100%;
  }
  .prize_b-step:nth-child(2) img {
    width: 100%;
  }
  .prize_b-step:nth-child(2) .prize_b-step-label,
  .prize_b-step:nth-child(2) .prize_b-step-text {
    margin-left: 0;
    width: 100%;
  }
  .prize_b-step + .prize_b-step {
    margin-top: 5.814cqi;
  }
  .prize_b-step-label {
    height: 14.535cqi;
    margin-top: 3.488cqi;
    border-radius: min(10px, 2.907cqi);
    font-size: 5.233cqi;
  }
  .prize_b-step-text {
    margin-top: 2.907cqi;
    font-size: 4.942cqi;
    line-height: 1.471;
  }
  .prize_b-legal {
    top: 70.745%;
    left: 12.791%;
    width: 73.547%;
    font-size: 4.651cqi;
  }
  .prize_b-notice {
    top: 97.184%;
    left: 12.791%;
    width: 73.547%;
    font-size: 4.07cqi;
    line-height: 5.814cqi;
    letter-spacing: 0;
  }
}
/*********************************************
  SUBJECT
*********************************************/
#subject .note-list {
  margin-bottom: 45px;
}
#subject .card-ttl {
  margin-bottom: 40px;
}
#subject .pink-card .card-ttl img {
  max-height: 70px;
}
#subject .blue-card .card-ttl img {
  max-height: 75px;
}
@media only screen and (max-width: 767px) {
  #subject {
    background-repeat: repeat-y;
  }
  #subject .note-list,
  #subject .txt {
    font-size: 16px;
    line-height: 1.375;
    margin-bottom: 25px;
  }
  #subject .card .card-ttl {
    padding: 25px;
    margin-bottom: 20px;
  }
  #subject .card .card-ttl img {
    max-height: 54px;
  }
  #subject .lineup-list {
    margin: 0;
    margin-bottom: 0px;
    margin-bottom: -4.31%;
    column-gap: 3.88%;
    grid-template-columns: auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: left;
  }
}

/*タブ切り替え全体のスタイル*/
.lineup-tabs {
  width: 100%;
  margin: 0 auto;
  text-align: center;
}

/*タブのスタイル*/
.lineup-tabs .tab-nav {
  position: relative;
  text-align: center;
  display: flex;
  justify-content: center;
}
.lineup-tabs .tab_item {
  width: calc(100% / 2 - 20px);
  height: 80px;
  border-radius: 30px 30px 0 0;
  background-color: transparent;
  display: inline-block;
  align-content: center;
  text-align: center;
  transition: all 0.2s ease;
  cursor: pointer;
  z-index: 1;
  color: #fff;
  /* 一行のまま、幅に応じて 12px〜30px（Figma PC 30px 上限） */
  font-size: clamp(12px, 3.2vw, 30px);
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  box-sizing: border-box;
}
.lineup-tabs .tab_item:hover {
  opacity: 0.75;
}

/*ラジオボタンを全て消す*/
.lineup-tabs input[name="tab_item"] {
  display: none;
}

/*タブ切り替えの中身のスタイル*/
.lineup-tabs .tab_content {
  display: none;
  padding: 6% 4.5% 12%;
  clear: both;
  border-radius: 30px;
  margin-top: -3px;
  background-position: -10px -20px;
  background-size: 80px auto;
  position: relative;
}
.lineup-tabs .tab_content#catfood_content {
  background-color: #ffeff3;
  border: 10px solid #ff8da8;
}
.lineup-tabs .tab_content#dogfood_content {
  border: 10px solid #ff9566;
  background: #ffebe2;
}
@media only screen and (max-width: 767px) {
  .lineup-tabs .tab_content {
    border-radius: 4vw;
    padding: 6% 4.5% 25%;
  }
  .lineup-tabs .tab_content#catfood_content {
    border: 0.8vw solid #ff8da8;
  }
  .lineup-tabs .tab_content#dogfood_content {
    border: 0.8vw solid #ff9566;
  }
}

/*選択されているタブのコンテンツのみを表示*/
#catfood:checked ~ #catfood_content,
#dogfood:checked ~ #dogfood_content {
  display: block;
}

/*選択されているタブのスタイルを変える*/
.lineup-tabs input:checked + .tab_item {
  border-bottom: 0 none;
  position: relative;
}

.lineup-tabs input#catfood:checked + .tab_item {
  background-color: #ff8da8;
}
.lineup-tabs input#catfood + .tab_item {
  background-color: #ff8da8;
}
.lineup-tabs input#dogfood:checked + .tab_item {
  background-color: #ff9566;
}
.lineup-tabs input#dogfood + .tab_item {
  background-color: #ff9566;
}

.lineup-section {
  position: relative;
}
.lineup-section + .lineup-section {
  margin-top: 13%;
}
.tab_content_ttl {
  margin-bottom: 4%;
}
.tab_content_ttl.ttl_img:nth-of-type(1) {
  width: 100%;
  max-width: 632.85px;
  aspect-ratio: 632.85 / 55.72;
  height: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.tab_content_ttl.ttl_img:nth-of-type(2) {
  width: 100%;
  max-width: 502.66px;
  aspect-ratio: 502.66 / 54.48;
  height: auto;
  display: block;
  margin-top: 13%;
  margin-left: auto;
  margin-right: auto;
}
#catfood_content .oyatsu .tab_content_ttl.ttl_img {
  width: 100%;
  max-width: 256.61px;
  aspect-ratio: 256.61 / 24.44;
  height: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
#dogfood_content .tab_content_ttl.ttl_img:nth-of-type(1) {
  width: 161.43px;
  aspect-ratio: 161.43 / 57.27;
  height: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
  line-height: 0;
}
#dogfood_content .tab_content_ttl.ttl_img:nth-of-type(1) img {
  width: 100%;
  height: auto;
  display: block;
}
#dogfood_content .half-wetfood .tab_content_ttl.ttl_img {
  width:229px;
  aspect-ratio: 229 / 58;
  height: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.tab_content_ttl img {
  width: 100%;
  max-width: inherit;
}
.lineup-wrap {
  position: relative;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}
#dogfood_content .lineup-wrap {
  position: relative;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  column-gap: 36px;
}
#dogfood_content .dryfood .lineup-wrap {
  flex-direction: column;
}
#dogfood_content .dryfood .lineup-wrap + .lineup-wrap {
  margin-top: 100px;
}
#dogfood_content .dryfood .lineup-wrap .lineup-ttl {
  height: auto;
  background: none;
  color: #ea5514;
  font-size: 30px;
}
#dogfood_content .dryfood .lineup-wrap .lineup-ttl span {
  font-size: 20px;
  margin-left: 10px;
}
@media only screen and (max-width: 767px) {
  #dogfood_content .dryfood .lineup-wrap + .lineup-wrap {
    margin-top: 5.33333333vw;
  }
  #dogfood_content .dryfood .lineup-wrap .lineup-ttl {
    font-size: 4.8vw;
    display: block;
    margin: 0 auto 5.33333333vw;
    padding: 0;
  }
  #dogfood_content .dryfood .lineup-wrap .lineup-ttl span {
    display: block;
    font-size: 4.8vw;
  }
}

.lineup-wrap + .lineup-wrap {
  margin-top: 5.8%;
}

/* カテゴリ帯（Figma: 白ピル × 赤文字） */
.lineup-ttl {
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  /* max-width: 900px; */
  height: 60px;
  margin: 0 auto 40px;
  padding: 0 20px;
  border-radius: 100px;
  box-sizing: border-box;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
  color: #c2221f;
  background: #fff;
  aspect-ratio: auto;
}

#catfood_content .dryfood .lineup-wrap .lineup-list,
#catfood_content .oyatsu .lineup-wrap .lineup-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px;
  margin: 0 auto;
  z-index: 1;
  position: relative;
}
#catfood_content .dryfood .lineup-wrap .lineup-list li,
#catfood_content .oyatsu .lineup-wrap .lineup-list li {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 125px;
  max-width: 125px;
  margin: 0;
  text-align: center;
}
#catfood_content .dryfood .lineup-wrap .lineup-list li img,
#catfood_content .oyatsu .lineup-wrap .lineup-list li img {
  width: 100%;
  height: auto;
}

#dogfood_content .lineup-wrap .lineup-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  width: auto;
  margin: 0 auto;
  margin-bottom: -40px;
}
#dogfood_content .hamigaki-gam .lineup-wrap .lineup-list {
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  width: auto;
  margin: 0 auto;
  margin-bottom: -40px;
}
#dogfood_content .half-wetfood .lineup-wrap .lineup-list {
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
  width: auto;
  margin: 0 auto;
  margin-bottom: -40px;
}
#dogfood_content .lineup-wrap .lineup-list li {
  max-width: 125px;
  margin-bottom: 0;
}

.wetfood .lineup-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: -15px;
  position: relative;
  z-index: 0;
}
.wetfood .lineup-list li {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 125px;
  max-width: 125px;
  text-align: center;
  margin-bottom: 4%;
  order: 0;
}

.wetfood-img {
  max-width: 780px;
  width: 100%;
}

/* 商品キャプション（Figma: 薄ピンクピル） — catfood 内で表示 */
.lineup-list .caption {
  display: none;
}
.lineup-txt {
  max-width: 693px;
  margin: 5.8% auto;
}
.lineup-img {
  margin: 0 auto;
}

@media only screen and (max-width: 767px) {
  /* ----- SP tabs / 枠（375基準 / Figma 345枠） ----- */
  .lineup-tabs .tab_item {
    width: calc(100% / 2 - 2.667vw);
    height: auto;
    min-height: 21.333vw;
    padding: 3.2vw 1.333vw;
    border-radius: 5.333vw 5.333vw 0 0;
    font-size: 4.8vw;
    line-height: 1.35;
  }
  .lineup-tabs .tab_content {
    border-radius: 2.667vw;
    padding: 5.333vw 4vw 16vw;
  }
  .lineup-tabs .tab_content#catfood_content {
    border-width: 0.8vw;
  }
  .lineup-tabs .tab_content#dogfood_content {
    border-width: 0.8vw;
  }

  #catfood_content .lineup-section + .lineup-section {
    margin-top: 10.667vw;
  }
  #catfood_content .section-title.lineup-title {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 13.333vw;
    margin: 0 auto 5.333vw;
    padding: 0;
    font-size: 4.8vw;
    line-height: 1.2;
    border-radius: 26.667vw;
    box-sizing: border-box;
  }
  #catfood_content .tab_content_ttl.ttl_img:nth-of-type(1) {
    width: 81.6vw;
    max-width: 100%;
    aspect-ratio: auto;
    height: auto;
    display: block;
    margin: 0 auto 4vw;
  }
  #catfood_content .tab_content_ttl.ttl_img:nth-of-type(2) {
    width: 82.667vw;
    max-width: 100%;
    aspect-ratio: auto;
    height: auto;
    display: block;
    margin: 10.667vw auto 5.333vw;
  }
  #catfood_content .oyatsu .tab_content_ttl.ttl_img {
    width: 100%;
    max-width: 50vw;
    aspect-ratio: auto;
    height: auto;
    display: block;
    margin: 0 auto 5.333vw;
  }
  #catfood_content .wetfood .tab_content_ttl {
    margin: 0 auto 5.333vw;
    font-size: 4.8vw;
    line-height: 1.67;
  }
  #catfood_content .wetfood .tab_content_ttl:last-of-type {
    margin-top: 10.667vw;
  }
  #dogfood_content .dryfood .section-title.lineup-title {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 13.333vw;
    margin: 0 auto 5.333vw;
    padding: 0;
    font-size: 4.8vw;
    line-height: 1.2;
    border-radius: 26.667vw;
    box-sizing: border-box;
  }
  #dogfood_content .lineup-wrap .lineup-list li {
    width: 33.333vw;
    max-width: 33.333vw;
  }
  #dogfood_content .tab_content_ttl.ttl_img:nth-of-type(1) {
    width: 43.048vw; /* 161.43 / 375 */
    max-width: 100%;
    height: auto;
    display: block;
    margin: 0 auto 5.333vw;
    line-height: 0;
  }
  #dogfood_content .tab_content_ttl.ttl_img:nth-of-type(1) img {
    width: 100%;
    height: auto;
    display: block;
  }
  #dogfood_content .half-wetfood .tab_content_ttl.ttl_img {
    width: 43.304vw;
    aspect-ratio: auto;
    height: auto;
    display: block;
    margin-top: 0;
    margin-bottom: 5.333vw;
  }
  .tab_content_ttl img {
    max-height: inherit;
    width: 100%;
    display: block;
  }

  /* ----- SP カテゴリ帯（Figma 314×30） ----- */
  #catfood_content .lineup-ttl {
    width: 100%;
    max-width: none;
    height: 8vw;
    min-height: 8vw;
    margin: 0 auto 5.333vw;
    padding: 0 4vw;
    border-radius: 26.667vw;
    font-size: 4.8vw;
    line-height: 8vw;
  }

  /* ----- SP 2カラム商品グリッド（Figma 125幅） ----- */
  #catfood_content .oyatsu .lineup-wrap .lineup-list,
  #catfood_content .wetfood .lineup-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    column-gap: 5.333vw;
    row-gap: 5.333vw;
    width: 100%;
    margin: 0 auto;
    padding: 0;
  }
  #catfood_content .dryfood .lineup-wrap .lineup-list {
    gap: 5.333vw;
    margin-bottom: 0;
    padding: 0 6%;
    /* display: grid; */
    display: flex;
    grid-template-columns: repeat(2, 1fr);
  }
  .lineup-tabs
    .tab_content#catfood_content
    .lineup-section.dryfood
    .lineup-wrap
    + .lineup-wrap
    .lineup-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }

  #catfood_content .wetfood .lineup-list {
    margin-bottom: 0;
  }
  #catfood_content .dryfood .lineup-wrap .lineup-list li,
  #catfood_content .oyatsu .lineup-wrap .lineup-list li,
  #catfood_content .wetfood .lineup-list li,
  #dogfood_content .dryfood .lineup-wrap + .lineup-wrap .lineup-list li {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 33.333vw;
    max-width: 33.333vw;
    margin: 0;
    text-align: center;
  }
  #catfood_content .dryfood .lineup-wrap .lineup-list li img,
  #catfood_content .oyatsu .lineup-wrap .lineup-list li img,
  #catfood_content .wetfood .lineup-list li img {
    width: 100%;
    height: auto;
  }
  /* 4連スープ: 素材は余白込みのため高さ基準でFigma相当に合わせる */
  #catfood_content .wetfood .lineup-list:last-of-type {
    row-gap: 8vw;
  }
  #catfood_content .wetfood .lineup-list:last-of-type li img {
    width: auto;
    max-width: 100%;
    height: 99.2vw;
  }

  .lineup-wrap + .lineup-wrap {
    margin-top: 8vw;
  }
  .lineup-wrap {
    flex-direction: column;
    align-items: center;
  }
  .lineup-wrap .lineup-list {
    width: 100%;
    justify-content: center;
  }

  #subject .lineup-list {
    display: grid;
    justify-content: left;
    grid-template-columns: repeat(2, 1fr);
    gap: 5.3333vw;
    margin: 0 auto;
    padding: 0 5%;
  }
  #dogfood_content .lineup-wrap .lineup-list {
    grid-template-columns: repeat(2, 1fr);
    gap: 5.3333vw;
    margin-bottom: 0;
  }
  #dogfood_content .dryfood .lineup-wrap + .lineup-wrap .lineup-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 5.333vw;
    margin-bottom: 0;
    padding: 0 6%;
  }
  /* #dogfood_content .dryfood .lineup-wrap + .lineup-wrap .lineup-list li{width:100%;max-width:100%;} */
  #dogfood_content .half-wetfood .lineup-wrap .lineup-list {
    grid-template-columns: repeat(2, 1fr);
    gap: 5.3333vw;
    margin-bottom: 0;
  }
  #dogfood_content .hamigaki-gam .lineup-wrap .lineup-list {
    grid-template-columns: repeat(2, 1fr);
    gap: 5.3333vw;
    margin-bottom: 0;
  }

  .card .lineup-list::before,
  .card .lineup-list::after {
    content: none;
  }
  .lineup-tabs .tab_item:hover {
    opacity: 1;
  }
}

/*********************************************
  SUBJECT: ラインナップ装飾・CTA
*********************************************/
.lineup-section.wetfood .tab_content_ttl {
  color: #f94c76;
  text-align: center;
  font-size: 30px;
  font-weight: 700;
  height: auto;
  margin-top: 0;
  margin-bottom: 4%;
}
.lineup-section.wetfood .tab_content_ttl:last-of-type {
  margin-top: 6%;
  position: relative;
  line-height: 1.2;
}
.section-title.lineup-title::before {
  content: "";
  display: block;
  position: absolute;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: 0 0;
  z-index: 1;
}
.lineup-section.wetfood::after,
.lineup-section.hamigaki-gam::after {
  content: "";
  display: block;
  position: absolute;
  z-index: 1;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: 0 0;
}
#catfood_content .lineup-section:nth-of-type(1) .section-title.lineup-title::before {
  background-image: url(../img/lineup-cat-01.png);
  width: 9.8%;
  aspect-ratio: 94 / 111;
  left: 4.16%;
  top: 0;
  transform: translateY(-80%);
}
#catfood_content .lineup-section:nth-of-type(2) .section-title.lineup-title::before {
  background-image: url(../img/lineup-cat-02.png);
  width: 16.8%;
  aspect-ratio: 161 / 124;
  padding-top: 0;
  right: 4.16%;
  bottom: 0;
  transform: translateY(0%);
}
#catfood_content .lineup-section:nth-of-type(3) .section-title.lineup-title::before {
  background-image: url(../img/lineup-cat-03.png);
  width: 24.6%;
  aspect-ratio: 236 / 110;
  padding-top: 0;
  left: 0;
  bottom: 0;
  transform: translateY(10%);
}
#catfood_content .lineup-section.wetfood::after {
  background-image: url(../img/lineup-cat-04.png);
  width: 19.4%;
  aspect-ratio: 186 / 145;
  padding-top: 0;
  right: 0;
  bottom: 18px;
  transform: translateY(120%);
}

#dogfood_content .lineup-section.dryfood .section-title.lineup-title::before {
  background-image: url(../img/lineup-dog-01.png);
  width: 18.2%;
  aspect-ratio: 175 / 168;
  top: 0;
  right: 0;
  left: auto;
  bottom: 0;
  transform: translateY(-53%);
}
#dogfood_content .lineup-section.half-wetfood .section-title.lineup-title::before {
  background-image: url(../img/lineup-dog-02.png);
  width: 16.8%;
  aspect-ratio: 161 / 168;
  padding-top: 0;
  right: auto;
  left: 0;
  bottom: -30%;
  transform: translateY(0%);
}
#dogfood_content .lineup-section.hamigaki-gam::after {
  background-image: url(../img/lineup-dog-03.png);
  background-size: cover;
  width: 14.9%;
  aspect-ratio: 143 / 180;
  padding-top: 0;
  right: -4%;
  bottom: 14%;
  transform: translateY(100%);
}

/* 懐石logo */
#catfood_content .lineup-section::before,
#catfood_content .lineup-section.dryfood .lineup-wrap:nth-of-type(1)::before,
#catfood_content .tab_content_ttl.ttl_img:nth-of-type(2)::before,
#catfood_content .lineup-section.wetfood .tab_content_ttl:nth-of-type(2)::before,
#catfood_content .lineup-section.wetfood::before {
  content: "";
  display: block;
  position: absolute;
  background-image: url(../img/cat-kaiseki_logo.png);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: 0 0;
  z-index: 0;
}

#catfood_content .lineup-section.dryfood .lineup-wrap:nth-of-type(1)::before {
  width: 100%;
  max-width: 185px;
  aspect-ratio: 185 / 185;
  padding-top: 0;
  right: 5%;
  bottom: 0;
  transform: translateY(0%);
}
#catfood_content .tab_content_ttl.ttl_img:nth-of-type(2)::before {
  width: 100%;
  max-width: 170px;
  aspect-ratio: 170 / 170;
  padding-top: 0;
  right: 0%;
  bottom: 30.5%;
  transform: translateY(0%);
  display: none;
}
#catfood_content .lineup-section.wetfood::before {
  width: 100%;
  max-width: 170px;
  aspect-ratio: 170 / 170;
  padding-top: 0;
  right: 4%;
  bottom: 10%;
  transform: translateY(0%);
}

#dogfood_content .lineup-section::before {
  content: "";
  display: block;
  position: absolute;
  background-image: url(../img/dog-kaiseki_logo.png);
  background-repeat: no-repeat;
  background-size: contain;
  background-position: 0 0;
  z-index: 0;
}
#dogfood_content .lineup-section:nth-of-type(1)::before {
  width: 100%;
  max-width: 170px;
  aspect-ratio: 170 / 170;
  padding-top: 0;
  right: 0;
  top: 0;
  transform: translateY(130%);
}
#dogfood_content .lineup-section:nth-of-type(2)::before {
  width: 100%;
  max-width: 224px;
  aspect-ratio: 224 / 224;
  padding-top: 0;
  right: 0;
  top: 0;
  transform: translateY(40%);
}

@media only screen and (max-width: 767px) {
  #catfood_content .lineup-section:nth-of-type(1) .section-title.lineup-title::before {
    width: 16vw;
    left: 7.16%;
    transform: inherit;
    top: -2vw;
  }
  #catfood_content .lineup-section:nth-of-type(2) .section-title.lineup-title::before {
    width: 28vw;
    right: 0;
  }
  #catfood_content .lineup-section:nth-of-type(3) .section-title.lineup-title::before {
    width: 32vw;
    transform: translateY(57%);
    left: -6%;
    display: none;
  }
  #catfood_content .lineup-section.wetfood::after {
    display: none;
  }
  #catfood_content .lineup-section.wetfood::before {
    display: none;
  }
  .lineup-section.wetfood .tab_content_ttl {
    font-size: 4.8vw;
  }
  #catfood_content .tab_content_ttl.ttl_img:nth-of-type(2)::before {
    right: 4%;
    bottom: 16%;
    aspect-ratio: 130 / 130;
    max-width: 34.93333333vw;
  }
  #catfood_content .lineup-section.dryfood .lineup-wrap:nth-of-type(1)::before {
    max-width: 34.933vw;
    aspect-ratio: 110 / 110;
    right: 5%;
    transform: translateY(-40%);
    display: none;
  }
  #catfood_content .lineup-section.dryfood .lineup-wrap:nth-of-type(2)::before {
    max-width: 34.933vw;
    aspect-ratio: 110 / 110;
    right: 5%;
    transform: translateY(-40%);
  }
  #catfood_content .lineup-section.oyatsu .lineup-wrap::before {
    content: none;
  }
  #catfood_content .lineup-section.wetfood .tab_content_ttl:nth-of-type(2)::before {
    display: none;
  }

  #dogfood_content .lineup-section.dryfood .section-title.lineup-title::before {
    width: 24.53vw;
    transform: translateY(0);
    top: -11vw;
  }
  #dogfood_content .lineup-section:nth-of-type(2) .section-title.lineup-title::before {
    display: none;
  }
  #dogfood_content .lineup-section.half-wetfood .section-title.lineup-title::before {
    display: block;
    width: 24.8vw;
    aspect-ratio: 93 / 95;
    left: -6%;
  }
  #dogfood_content .lineup-section.hamigaki-gam::after {
    width: 13.333vw; /* 50 / 375 */
    height: 28.533vw; /* 107 / 375 */
    aspect-ratio: 50 / 107;
    right: 0;
    left: auto;
    top: -18%;
    bottom: auto;
    transform: none;
    background-size: cover;
  }
  #dogfood_content .lineup-section:nth-of-type(1)::before,
  #dogfood_content .lineup-section:nth-of-type(2)::before {
    content: none;
  }
}

/*********************************************
  ENTRY ESSENTIALS
*********************************************/
.prize-note dd {
  margin-top: 1em;
  text-align: justify;
}
#entry-essentials .sub-section > .note.t-red {
  font-weight: 700;
  letter-spacing: 0.05em;
}
#entry-essentials .btn {
  min-width: 452px;
}
#entry-essentials .btn a {
  background-color: transparent;
  box-shadow: none;
  padding: 0;
  border-radius: 0;
  display: block;
  box-sizing: border-box;
  height: 0;
  padding-top: 18.66%;
  position: relative;
  text-indent: -9999em;
  overflow: hidden;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: top center;
  background-image: url(../img/btn-post.png);
}
#entry-essentials .btn a::after {
  content: none;
}
@media only screen and (max-width: 767px) {
  #entry-essentials .btn {
    min-width: 0;
    width: 100%;
  }
}

.btn-box .btn {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 42%;
  height: 60px;
  margin: 0 auto;
  padding: 15px 0;
  border-radius: 30px;
  background: #ea5514;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0;
  text-align: center;
}

.btn-box .btn.large {
  max-width: 900px;
  font-size: 25px;
  box-shadow: 7px 7px 0 0 rgba(255, 149, 102, 0.3);
}

.button-group {
  display: flex;
  justify-content: center;
  /*max-width:770px;*/
  margin: 60px auto 0;
}

.btn-box .btn.medium {
  max-width: 46%;
}

.btn-box .txt {
  margin: 0 auto;
  font-size: 18px;
  font-weight: 400;
  line-height: 166.667%;
  text-align: center;
}

.btn-box .btn::after {
  content: "";
  position: absolute;
  top: 53%;
  right: 20px;
  width: 12px;
  height: 100%;
  transform: translateY(-50%);
  background-image: url(../img/spnav-chevron-white.svg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: auto;
}

@media only screen and (max-width: 767px) {
  .btn-box .btn {
    max-width: 66.666%;
    height: 13.333vw;
    padding: 0;
    border-radius: 12vw;
    font-size: 4.8vw;
  }
  .btn-box .btn::after {
    right: 5.333vw;
    width: 2.733vw;
    background-size: contain;
  }
  .btn-box .btn.medium {
    max-width: 100%;
  }
  .btn-box .btn.large {
    max-width: 100%;
    font-size: 4.8vw;
  }
  .button-group {
    display: block;
    margin: 0 auto;
  }
  .btn-box .txt {
    margin-bottom: 10vw !important;
    font-size: 4.8vw;
    text-align: left;
  }
  .button-group .btn:nth-of-type(2) {
    margin: 13.333vw auto 0;
  }
}

/*********************************************
  ENTRY METHOD
*********************************************/
.step-wrap {
  display: flex;
  column-gap: 4.5%;
  margin: 30px auto 0;
}
.step-item {
  width: 30.33%;
  position: relative;
}
.step-item:not(:last-child)::before {
  content: "";
  display: block;
  width: 20px;
  height: 22px;
  box-sizing: border-box;
  position: absolute;
  left: 100%;
  top: 30%;
  margin-left: 10px;
  transform: translateY(100%);
  background: url(../img/step-flow-arrow.svg) no-repeat 50% 50% / 100% 100%;
}
.step-item .note {
  text-align: justify;
}
.step-item:nth-child(2) .note {
  font-feature-settings: "palt";
}
.step-head {
  text-align: center;
  font-size: 20px;
  font-weight: 700;
}
.step-num {
  position: relative;
  border: 2px solid #ea5514;
  color: #ea5514;
  display: block;
  border-radius: 2em;
  margin-bottom: 1em;
  font-size: 1em;
  padding: 3px 0;
}
.step-num::before {
  content: "";
  position: absolute;
  top: 10px;
  left: 10px;
  width: 100%;
  height: 100%;
  background-color: #fff4f0ff;
  border-radius: 100vh;
  z-index: -1;
}
.step-num .big {
  font-size: 2.5em;
  font-family: "Noto Sans", sans-serif;
  font-weight: 700;
  line-height: 1;
}
.step-ttl {
  letter-spacing: 0.1em;
  line-height: 1.3;
  display: block;
  margin-bottom: 2em;
}
.step-txt {
  margin-top: 30px;
  font-size: 18px;
  letter-spacing: 0.1em;
  text-align: center;
  font-weight: 500;
  line-height: 1.625;
  min-height: 6.5em;
  margin-bottom: 1em;
}
.step-item-a .step-ttl {
  margin-bottom: 1em;
}
.step-item-b .step-ttl {
  margin-bottom: 1em;
}
.step-item-a .step-txt {
  margin-top: 23px;
  text-align: justify;
  min-height: auto;
  margin-bottom: 0;
}
.step-item-b .step-txt {
  text-align: center;
  margin-top: 20px;
}
.step-item-a .step-txt + .step-txt {
  margin-top: 0px;
}
.r_border-box {
  border: 3px solid #a87e21;
  border-radius: 30px;
  padding: 40px;
  margin: 40px auto;
  box-shadow: 10px 10px 0px 0px rgba(227, 215, 189, 1);
}
.r_border-box .ttl {
  text-align: center;
  font-weight: 700;
  color: #a87e21;
  font-size: 26px;
  letter-spacing: 0.05em;
  margin-bottom: 0.5em;
}
.r_border-box .list li {
  border-bottom: 1px solid #d1bd91;
  padding-top: 0.75em;
  padding-bottom: 0.75em;
}
.r_border-box .list li:last-child {
  border-bottom: none;
}
.r_border-box .list li::before {
  content: "・";
}
@media only screen and (max-width: 767px) {
  .step-wrap {
    flex-direction: column;
  }
  .step-item {
    width: 100%;
    max-width: inherit;
  }
  .step-item + .step-item {
    margin-top: 16vw;
  }
  .step-item:not(:last-child)::before {
    top: 100%;
    left: 50%;
    width: 5.8666vw;
    height: 5.333vw;
    margin-top: 25px;
    margin-left: 0;
    transform: translateX(-50%) rotate(90deg);
  }
  .step-item .note {
    margin-top: 2.666vw;
    font-size: 4.533vw;
  }
  .step-item:nth-child(2) .note{
    width: 80%;
    margin: 2.666vw auto;
  }
  .step-head {
    width: 64.7066vw;
    margin: 0 auto;
    font-size: 4.26vw;
    text-align: center;
  }
  .step-num {
    margin-bottom: 0.5em;
    padding: 0.5vw 0;
  }
  .step-num .big {
    font-size: 10.66vw;
  }
  .step-ttl {
    margin: 5.333vw auto 2.666vw;
    font-size: 4.8vw;
    min-height: inherit;
  }
  .step-txt {
    margin: 2.666vw auto 0;
    font-size: 4.533vw;
    line-height: 1.5;
    min-height: inherit;
  }
  .step-img img {
    display: block;
    width: 100%;
    margin: 0 auto;
  }
  .r_border-box {
    margin: 13.3333vw auto;
    padding: 4vw;
    border-radius: 5.33333vw;
  }
  .r_border-box .ttl {
    font-size: 4.8vw;
  }
  .r_border-box .list {
    font-size: 4.533vw;
  }
}

.btn_area {
  margin: 0 auto;
  background-color: #fff;
  width: 100%;
}
.btn_area .inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  gap: 7%;
  margin: 0 auto;
  padding: 7.633% 0 0;
}
@media only screen and (max-width: 767px) {
  .btn_area .inner {
    flex-direction: column;
    gap: 2.666vw;
    padding: 13.333vw 0 0;
  }
}
.txt a {
  text-decoration: underline;
}
.privacy-policy {
  font-size: 14px;
  color: #FFF;
  text-decoration: underline;
  font-weight: 700;
  margin: 15px auto 10px;
  display: block;
}
@media only screen and (max-width: 767px) {
  .privacy-policy  {
    font-size: 3.7333vw;
    margin: 4.2666vw auto 2.666vw;
  }
}