/* ============================================================
   福一厳選おせち 紹介ページ — order-web.html と同一のデザイントークン
   ============================================================ */
:root{
  --sumi:#1a1512;
  --aka:#6b1220;
  --aka-dark:#4a0d16;
  --kin:#b8975a;
  --kin-light:#d4b57a;
  --washi:#f2ede6;
  --shiro:#faf8f4;
  --gray:#6b6560;
  --line:#ddd6cc;
  --red:#8b1a1a;
  --aka-vivid:#c8102e;
  --aka-vivid-dark:#a10d25;
  --font-jp:'Noto Serif JP', serif;
  --font-sans:'Noto Sans JP', sans-serif;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:var(--font-sans);
  background:var(--shiro);
  color:var(--sumi);
  line-height:1.8;
  padding-bottom:80px;
}
img{max-width:100%;display:block;}

/* ── ページ全体：左右エッジの雲（固定・常時表示） ─── */
.page-cloud{
  position:fixed;
  top:0;
  height:100vh;
  height:100dvh;
  width:280px;
  max-width:38vw;
  z-index:5;
  overflow:hidden;
  pointer-events:none;
}
.page-cloud--left{left:0;}
.page-cloud--right{right:0;}
.page-cloud img{
  position:absolute;
  top:50%;
  width:460px;
  max-width:none;
  opacity:0.85;
  filter:drop-shadow(0 0 3px rgba(255,255,255,0.55)) drop-shadow(0 0 3px rgba(0,0,0,0.55));
  transform:translateY(-50%) translateX(0);
  animation:cloudSway 12s ease-in-out infinite;
}
.page-cloud--left img{left:-90px;}
.page-cloud--right img{right:-90px;}
@keyframes cloudSway{
  0%,100%{transform:translateY(-50%) translateX(-14px);}
  50%{transform:translateY(-50%) translateX(14px);}
}
@media (max-width:768px){
  .page-cloud{display:none;}
}
@media (prefers-reduced-motion:reduce){
  .page-cloud img{animation:none;}
}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px;}
.section{padding:80px 0;}
.section--tight{padding:56px 0;}
.section-head{text-align:center;max-width:600px;margin:0 auto 48px;}
.section-head__label{
  font-size:13px;
  letter-spacing:0.2em;
  color:var(--aka);
  margin:0 0 10px;
}
.section-head__title{
  font-family:var(--font-jp);
  font-size:clamp(24px,4vw,32px);
  font-weight:700;
  margin:0;
  color:var(--sumi);
}
.section-head__lead{
  font-size:14px;
  color:var(--gray);
  margin:14px 0 0;
}

/* ── ヒーロー ─────────────────────────────── */
.hero{
  position:relative;
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  align-items:flex-end;
  background:#0c0a08;
  overflow:hidden;
}
.hero__bg{
  position:absolute;inset:0;
  z-index:0;
  background:url("../img/osechi-hero.webp") center 30%/cover no-repeat;
  animation:heroZoom 26s ease-in-out infinite alternate;
  will-change:transform;
}
.hero::before{
  content:"";
  position:absolute;inset:0;
  z-index:1;
  background:linear-gradient(180deg, rgba(12,10,8,0.05) 0%, rgba(12,10,8,0.15) 45%, rgba(12,10,8,0.05) 100%);
}
@keyframes heroZoom{
  0%{transform:scale(1) translate(0,0);}
  100%{transform:scale(1.12) translate(-1.5%,-1.5%);}
}

/* ── ヒーロー：金箔ふわり ─────────────────── */
.hero__gold{
  position:absolute;inset:0;
  z-index:2;
  overflow:hidden;
  pointer-events:none;
}
.hero__gold span{
  position:absolute;
  top:-5%;
  border-radius:50%;
  background:radial-gradient(circle, var(--kin-light) 0%, var(--kin) 70%, transparent 100%);
  box-shadow:0 0 6px 1px rgba(212,181,122,0.6);
  opacity:0;
  animation-name:goldFall;
  animation-timing-function:ease-in-out;
  animation-iteration-count:infinite;
}
@keyframes goldFall{
  0%{transform:translate(0,0) rotate(0deg);opacity:0;}
  8%{opacity:0.9;}
  50%{transform:translate(14px,55vh) rotate(180deg);}
  92%{opacity:0.7;}
  100%{transform:translate(-10px,112vh) rotate(360deg);opacity:0;}
}
@media (prefers-reduced-motion:reduce){
  .hero__bg{animation:none;}
  .hero__gold span{animation:none;display:none;}
}

.hero__stage{
  position:absolute;
  inset:0;
  z-index:3;
  width:100%;
  max-width:1080px;
  margin:0 auto;
  padding:0 24px;
  color:var(--shiro);
  text-align:center;
}
.hero__top{
  position:absolute;
  top:64px;
  left:24px;
  right:24px;
}
.hero__bottom{
  position:absolute;
  bottom:96px;
  left:24px;
  right:24px;
  margin-top:0;
}
@media (min-width:769px){
  .hero{align-items:stretch;}
  .hero__top{
    right:auto;
    max-width:480px;
    text-align:left;
  }
  .hero__bottom{
    left:auto;
    bottom:128px;
    right:24px;
    text-align:right;
  }
}
.hero__badge{
  display:inline-block;
  border:1px solid var(--kin);
  color:var(--kin-light);
  font-size:12px;
  letter-spacing:0.15em;
  padding:6px 18px;
  border-radius:999px;
  margin-bottom:22px;
}
.hero__eyebrow{
  font-size:12px;
  letter-spacing:0.3em;
  color:var(--kin-light);
  margin:0 0 14px;
}
.hero__title{
  font-family:var(--font-jp);
  font-size:clamp(34px,7vw,56px);
  font-weight:900;
  margin:0;
  letter-spacing:0.05em;
  line-height:1.3;
}
.hero__title small{
  display:block;
  font-size:0.4em;
  font-weight:500;
  letter-spacing:0.2em;
  color:var(--kin-light);
  margin-bottom:10px;
}
.hero__title-svg{
  margin:0;
  line-height:0;
}
.hero__title-svg img{
  display:block;
  width:479px;
  max-width:92vw;
}
@media (min-width:769px){
  .hero__title-svg img{margin:0;}
}
@keyframes heroTitlePulse{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.08);}
}

.hero__badge250{
  position:absolute;
  top:64px;
  right:24px;
  z-index:4;
}
.hero__badge250 img{
  display:block;
  width:346px;
  max-width:40vw;
  transform-origin:center;
  animation:heroTitlePulse 2.4s ease-in-out infinite;
}
@media (prefers-reduced-motion:reduce){
  .hero__badge250 img{animation:none;}
}
@media (max-width:768px){
  .hero__top{
    top:28px;
  }
  .hero__badge250{
    top:auto;
    left:auto;
    right:24px;
    bottom:calc(96px + (100vw - 48px) * 0.4722 + 24px);
    transform:none;
  }
  .hero__badge250 img{
    margin:0 0 0 auto;
    width:200px;
    max-width:56vw;
  }
}

.hero__price{
  margin:26px 0 34px;
  font-size:15px;
}
.hero__price-regular{
  text-decoration:line-through;
  opacity:0.6;
  font-size:14px;
  margin-right:10px;
}
.hero__price-web strong{
  font-size:30px;
  color:var(--kin-light);
  margin-left:6px;
}
.btn-cta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:var(--aka-vivid);
  color:var(--shiro);
  font-family:var(--font-jp);
  font-weight:700;
  font-size:17px;
  letter-spacing:0.2em;
  padding:18px 46px 18px 52px;
  border-radius:2px;
  text-decoration:none;
  border:1px solid var(--kin);
  transition:background 0.2s ease;
}
.btn-cta:hover{background:var(--aka-vivid-dark);}
.btn-cta__arrow{
  display:inline-block;
  font-family:var(--font-sans);
  letter-spacing:0;
  animation:ctaArrowMove 1.4s ease-in-out infinite;
}
@keyframes ctaArrowMove{
  0%,100%{transform:translateX(0);}
  50%{transform:translateX(6px);}
}
@media (prefers-reduced-motion:reduce){
  .btn-cta__arrow{animation:none;}
}
.cta-band__note{
  display:block;
  margin:16px 0 0;
  font-size:12px;
  letter-spacing:0.05em;
  color:var(--kin-light);
  opacity:0.85;
}

/* ── フローティング予約バナー ─────────────── */
.floating-cta{
  position:fixed;
  left:0;right:0;bottom:0;
  z-index:500;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  text-align:center;
  background:var(--aka-vivid);
  color:var(--shiro);
  font-family:var(--font-sans);
  text-decoration:none;
  padding:12px 16px;
  border-top:2px solid var(--kin);
  box-shadow:0 -4px 16px rgba(26,21,18,0.25);
  overflow:hidden;
}
.floating-cta::after{
  content:"";
  position:absolute;
  top:0;
  left:-60%;
  width:35%;
  height:100%;
  background:linear-gradient(115deg, transparent 0%, rgba(255,255,255,0) 35%, rgba(255,244,214,0.6) 50%, rgba(255,255,255,0) 65%, transparent 100%);
  transform:skewX(-20deg);
  animation:ctaShine 4.5s ease-in-out infinite;
}
@keyframes ctaShine{
  0%{left:-60%;}
  30%{left:130%;}
  100%{left:130%;}
}
@media (prefers-reduced-motion:reduce){
  .floating-cta::after{animation:none;display:none;}
}
.floating-cta:hover{background:var(--aka-vivid-dark);}
.floating-cta__badge{
  display:inline-block;
  flex-shrink:0;
  order:2;
  background:var(--shiro);
  border:1px solid rgba(255,255,255,0.35);
  border-radius:999px;
  padding:6px 16px;
  font-size:13px;
  font-weight:700;
  color:var(--sumi);
  line-height:1.3;
  white-space:nowrap;
}
.floating-cta__main{
  display:block;
  order:1;
  font-family:var(--font-jp);
  font-weight:700;
  font-size:calc(clamp(34px,7vw,56px) * 0.55);
  letter-spacing:0.2em;
}
@media (max-width:400px){
  .floating-cta__badge{
    white-space:normal;
    font-size:12px;
  }
}
.hero__price-svg{
  display:inline-block;
  max-width:94vw;
  margin:0 0 10px;
  padding:14px 20px;
  background:rgba(107,18,32,.7);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
  border-radius:6px;
}
.hero__price-svg img{
  display:block;
  width:640px;
  max-width:100%;
}
/* PC：商品写真に被りすぎないよう、背景をかなり薄く */
@media (min-width:769px){
  .hero__price-svg{
    padding:8px 14px;
    background:rgba(107,18,32,.3);
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
}
@media (max-width:768px){
  .hero__bottom{
    left:0;
    right:0;
  }
  .hero__price-svg{
    display:block;
    max-width:none;
    padding:10px 0;
    border-radius:0;
  }
  .hero__price-svg img{
    display:block;
    width:100%;
    max-width:none;
  }
}

.hero__note{
  margin-top:18px;
  font-size:12px;
  color:var(--kin-light);
  opacity:0.85;
}

/* ── 訴求バッジ帯（EC的な安心材料） ───────── */
.perks{
  background:var(--shiro);
  border-bottom:1px solid var(--line);
  padding:16px 0;
}
.perks__inner{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
}
.perks__item{
  display:inline-flex;
  align-items:center;
  font-size:13px;
  font-weight:700;
  padding:7px 16px;
  border-radius:999px;
  background:var(--washi);
  color:var(--sumi);
  white-space:nowrap;
}
.perks__item::before{
  content:"✓";
  margin-right:5px;
  color:var(--kin);
  font-weight:900;
}
.perks__item--accent{
  background:var(--aka);
  color:var(--shiro);
}
.perks__item--accent::before{
  content:"🔥";
  margin-right:5px;
}
@media (max-width:600px){
  .perks{padding:12px 0;}
  .perks__inner{gap:8px;padding:0 16px;}
  .perks__item{font-size:12px;padding:6px 12px;}
}

/* ── 商品紹介（一の重・二の重） ───────────── */
.intro__points{
  list-style:none;
  padding:0;
  margin:26px 0 0;
  display:grid;
  gap:14px;
}
.intro__points li{
  display:flex;
  gap:12px;
  font-size:14px;
  align-items:flex-start;
}
.intro__points li::before{
  content:"";
  width:6px;height:6px;
  margin-top:8px;
  background:var(--kin);
  flex-shrink:0;
  border-radius:50%;
}
/* ── 福一こだわり（南まぐろ頭肉時雨煮） ───── */
.feature-box{
  display:grid;
  grid-template-columns:200px 1fr;
  gap:28px;
  align-items:center;
  margin:0 0 44px;
  padding:28px;
  background:var(--washi);
  border:1px solid var(--kin);
}
.feature-box__media{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
}
.feature-box__media img{
  width:100%;
  height:auto;
  object-fit:contain;
  display:block;
  filter:drop-shadow(0 10px 14px rgba(26,21,18,0.28));
}
.feature-box__badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:var(--aka);
  color:var(--shiro);
  font-size:12px;
  font-weight:700;
  letter-spacing:0.1em;
  padding:5px 16px;
  border-radius:999px;
  margin-bottom:12px;
}
.feature-box__title{
  font-family:var(--font-jp);
  font-size:20px;
  font-weight:700;
  margin:0 0 12px;
  color:var(--sumi);
}
.feature-box__text{
  font-size:14px;
  color:var(--sumi);
  margin:0 0 8px;
  line-height:1.8;
}
.feature-box__text sup{
  font-size:0.65em;
  vertical-align:super;
  line-height:0;
}
.feature-box__note{
  font-size:11px;
  color:var(--gray);
  margin:0;
}
@media (max-width:768px){
  .feature-box{
    grid-template-columns:1fr;
    padding:22px;
    text-align:center;
  }
  .feature-box__media{
    max-width:220px;
    margin:0 auto;
  }
  .feature-box__badge{margin-bottom:10px;}
}
@media (min-width:1024px){
  .feature-box__title{font-size:22px;}
  .feature-box__text{font-size:16px;}
  .feature-box__note{font-size:12px;}
}

.tier{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
  margin-bottom:56px;
}
.tier--reverse .tier__media{order:2;}
.tier--reverse .tier__body{order:1;}
.tier__media{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  border-radius:2px;
  box-shadow:0 12px 32px rgba(26,21,18,0.18);
}
.tier__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.photo-note{
  position:absolute;
  right:10px;
  bottom:8px;
  font-size:11px;
  color:#fff;
  background:rgba(26,21,18,0.5);
  padding:2px 8px;
  border-radius:2px;
  letter-spacing:0.05em;
}

/* ── ヒーロー：写真注釈 ───────────────────── */
.hero__photo-note{
  position:absolute;
  left:14px;
  bottom:6px;
  z-index:3;
  text-align:left;
  font-size:11px;
  color:rgba(250,248,244,0.6);
  letter-spacing:0.05em;
  pointer-events:none;
}
.tier__label{
  display:inline-block;
  font-family:var(--font-jp);
  font-size:18px;
  font-weight:700;
  color:var(--shiro);
  background:var(--aka);
  padding:6px 22px;
  margin:0 0 18px;
}
.tier__list{
  list-style:none;
  margin:0;
  padding:0;
  columns:2;
  column-gap:24px;
}
.tier__list li{
  font-size:14px;
  padding:7px 0;
  border-bottom:1px solid var(--line);
  break-inside:avoid;
}
.tier__list li::before{
  content:"◆";
  color:var(--kin);
  font-size:10px;
  margin-right:8px;
}

/* ── ご利用の流れ ─────────────────────────── */
.flow{
  background:var(--sumi);
  color:var(--shiro);
}
.flow .section-head__title{color:var(--shiro);}
.flow-steps{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:2px;
  background:rgba(255,255,255,0.12);
}
.flow-step{
  background:var(--sumi);
  padding:32px 22px;
  position:relative;
}
.flow-step__num{
  font-family:var(--font-jp);
  font-size:13px;
  color:var(--kin-light);
  letter-spacing:0.1em;
  margin:0 0 14px;
}
.flow-step__title{
  font-size:16px;
  font-weight:700;
  margin:0 0 8px;
}
.flow-step__desc{
  font-size:13px;
  color:#c9c2ba;
  margin:0;
}

/* ── お届け・お支払い ─────────────────────── */
.info-cards{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px;
}
.info-card{
  border:1px solid var(--line);
  padding:28px 26px;
  background:var(--shiro);
}
.info-card__title{
  font-family:var(--font-jp);
  font-size:16px;
  margin:0 0 14px;
  padding-bottom:10px;
  border-bottom:2px solid var(--aka);
}
.info-card dl{margin:0;}
.info-card dt{font-size:12px;color:var(--gray);margin-top:14px;}
.info-card dt:first-child{margin-top:0;}
.info-card dd{margin:4px 0 0;font-size:14px;}

/* 振込先（index / tokushoho 共通）段落間を1行分空ける */
.bank-info p{margin:0 0 1em;line-height:1.8;}
.bank-info p:first-child{margin-top:0;}
.bank-info p:last-child{margin-bottom:0;}
.legal__desc .bank-info{margin-top:1em;}
.placeholder{
  color:var(--aka);
  background:#f7e9d8;
  padding:1px 6px;
  border-radius:2px;
  font-size:13px;
}

/* ── よくある質問 ─────────────────────────── */
.faq{max-width:760px;margin:0 auto;}
.faq-item{
  border-bottom:1px solid var(--line);
}
.faq-item__q{
  width:100%;
  text-align:left;
  background:none;
  border:none;
  font-family:inherit;
  font-size:15px;
  font-weight:700;
  color:var(--sumi);
  padding:22px 34px 22px 0;
  cursor:pointer;
  position:relative;
}
.faq-item__q::before{
  content:"Q";
  color:var(--aka);
  font-family:var(--font-jp);
  margin-right:10px;
}
.faq-item__q::after{
  content:"+";
  position:absolute;
  right:4px;top:50%;
  transform:translateY(-50%);
  font-size:20px;
  color:var(--kin);
  transition:transform 0.2s ease;
}
.faq-item.is-open .faq-item__q::after{transform:translateY(-50%) rotate(45deg);}
.faq-item__a{
  max-height:0;
  overflow:hidden;
  transition:max-height 0.25s ease;
}
.faq-item.is-open .faq-item__a{max-height:240px;}
.faq-item__a p{
  margin:0 0 22px;
  padding-left:20px;
  font-size:14px;
  color:var(--gray);
  border-left:2px solid var(--kin-light);
}

/* ── フッターCTA ──────────────────────────── */
.cta-band{
  background:linear-gradient(160deg, var(--sumi) 0%, var(--aka-dark) 100%);
  color:var(--shiro);
  text-align:center;
  padding:70px 24px;
}
.cta-band__title{
  font-family:var(--font-jp);
  font-size:clamp(22px,4vw,28px);
  margin:0 0 10px;
}
.cta-band__sub{
  font-size:13px;
  color:var(--kin-light);
  margin:0 0 30px;
}

/* ── フッター ─────────────────────────────── */
/* ── 特定商取引法ページ：ヘッダー ─────────── */
.page-header{
  background:linear-gradient(160deg, var(--sumi) 0%, var(--aka-dark) 100%);
  color:var(--shiro);
  padding:28px 0;
  border-bottom:3px solid var(--kin);
}
.page-header__inner{text-align:center;}
.page-header__back{
  display:inline-block;
  font-size:13px;
  color:var(--kin-light);
  text-decoration:none;
  margin-bottom:14px;
}
.page-header__title{
  font-family:var(--font-jp);
  font-size:clamp(20px,4vw,26px);
  font-weight:700;
  margin:0;
}

/* ── 特定商取引法ページ：表記テーブル ─────── */
.legal{
  width:100%;
  border-collapse:collapse;
  max-width:800px;
  margin:0 auto;
}
.legal__row{border-bottom:1px solid var(--line);}
.legal__term{
  width:220px;
  text-align:left;
  vertical-align:top;
  font-size:13px;
  font-weight:700;
  color:var(--gray);
  padding:20px 20px 20px 0;
}
.legal__desc{
  text-align:left;
  vertical-align:top;
  font-size:14px;
  padding:20px 0;
}

footer{
  background:var(--shiro);
  padding:36px 24px;
  text-align:center;
  font-size:12px;
  color:var(--gray);
}
footer a{color:var(--gray);}
footer .footer-links{margin-bottom:14px;}
footer .footer-links a{margin:0 10px;text-decoration:none;border-bottom:1px solid var(--line);}

/* ── トップへ戻るボタン ───────────────────── */
.back-to-top{
  position:fixed;
  right:16px;
  bottom:24px;
  z-index:400;
  width:46px;
  height:46px;
  border-radius:50%;
  background:var(--sumi);
  color:var(--shiro);
  border:1px solid var(--kin);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:18px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(26,21,18,0.3);
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:opacity 0.25s ease, transform 0.25s ease, visibility 0.25s ease, background 0.2s ease;
}
.back-to-top.is-visible{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.back-to-top:hover{background:var(--aka-vivid);}
.floating-cta ~ .back-to-top{
  bottom:130px;
}
@media (prefers-reduced-motion:reduce){
  .back-to-top{transition:none;}
}

/* ── レスポンシブ ─────────────────────────── */
@media (max-width:768px){
  .tier,.tier--reverse{grid-template-columns:1fr;gap:20px;}
  .tier--reverse .tier__media{order:0;}
  .tier--reverse .tier__body{order:0;}
  .tier__list{columns:1;}
  .flow-steps{grid-template-columns:1fr 1fr;}
  .info-cards{grid-template-columns:1fr;}
  .legal__row{display:flex;flex-direction:column;border-bottom:1px solid var(--line);padding:16px 0;}
  .legal__term{width:auto;padding:0 0 6px;}
  .legal__desc{padding:0;}
}

/* ── PC表示：文字サイズ底上げ ─────────────── */
@media (min-width:1024px){
  /* ヒーロー */
  .hero__top{max-width:640px;}
  .hero__eyebrow{font-size:14px;}
  .hero__badge{font-size:13px;padding:7px 20px;}
  .hero__title{font-size:clamp(48px,5.5vw,68px);white-space:nowrap;}
  .hero__price{font-size:17px;}
  .hero__price-regular{font-size:16px;}
  .hero__price-web strong{font-size:36px;}
  .hero__note{font-size:14px;}
  .hero__photo-note{font-size:12px;}

  /* セクション見出し */
  .section-head{max-width:680px;}
  .section-head__label{font-size:14px;}
  .section-head__title{font-size:clamp(28px,3vw,40px);}
  .section-head__lead{font-size:16px;}

  /* 商品紹介 */
  .tier__label{font-size:20px;padding:8px 26px;}
  .tier__list li{font-size:16px;padding:9px 0;}
  .intro__points li{font-size:16px;}
  .photo-note{font-size:12px;}

  /* ご利用の流れ */
  .flow-step__title{font-size:18px;}
  .flow-step__desc{font-size:15px;}
  .flow-step__num{font-size:14px;}

  /* お届け・お支払い */
  .info-card__title{font-size:18px;}
  .info-card dt{font-size:13px;}
  .info-card dd{font-size:16px;}

  /* FAQ */
  .faq-item__q{font-size:17px;}
  .faq-item__a p{font-size:16px;}

  /* フッターCTA */
  .cta-band__title{font-size:clamp(26px,3vw,34px);}
  .cta-band__sub{font-size:15px;}
  .cta-band__note{font-size:13px;}

  /* 特定商取引法ページ */
  .legal__term{font-size:14px;}
  .legal__desc{font-size:16px;}

  footer{font-size:13px;}
}

/* ═══════════════════════════════════════════════════════
   ヒーロー：250食バッジが価格(17,000円)と重ならないようにする
   ・タイトル／17,000円の大きさは従来どおり。
   ・画面の高さが足りないときだけ、250食バッジが縮む
   ═══════════════════════════════════════════════════════ */
@media (min-width:769px){
  .hero__top,
  .hero__badge250{top:clamp(24px,7vh,64px);}
  .hero__bottom{bottom:clamp(40px,13vh,128px);}
  /* バッジの大きさ ＝ 上の余白と価格ブロックの上端までの高さ（価格ブロック約328px＋すき間24px）
     ÷ 1.134（バッジは拡大アニメで約8%大きくなるため） */
  .hero__badge250 img{
    width:clamp(120px, calc((100vh - clamp(24px,7vh,64px) - clamp(40px,13vh,128px) - 352px) / 1.134), min(346px,34vw));
    max-width:none;
  }
}
@media (max-width:768px){
  /* 価格帯の上端(96px+余白10px+パディング20px+画像高さ)より常に16px上に置く */
  .hero__badge250{
    bottom:calc(96px + 10px + 20px + 47.21vw + 16px);
  }
  /* タイトルと価格帯の間に残った高さに収まる大きさまで縮める（最大200px・最小96px） */
  .hero__badge250 img{
    width:clamp(96px, calc((100dvh - 196px - 88.7vw) * .917), 200px);
    max-width:56vw;
  }
}

/* 万一の保険：重なった場合は、価格(17,000円)を手前・250食バッジを奥にする */
.hero__bottom{z-index:5;}
