@charset "utf-8";
/* ==========================================================================
   アイドリッシュセブン AGF2026
   style.css
   ========================================================================== */

/* --------------------------------------------------------------------------
   reset / base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; }

html,
body, div, span, h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, em, img, small, strong, ul, ol, li, figure, figcaption,
article, aside, footer, header, main, nav, section {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  vertical-align: baseline;
}
article, aside, figure, figcaption, footer, header, main, nav, section { display: block; }
ul, ol { list-style: none; }
img { max-width: 100%; height: auto; border-style: none; vertical-align: bottom; }
a { color: inherit; text-decoration: none; }
button { margin: 0; padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; -webkit-appearance: none; appearance: none; }
hr { border: 0; margin: 0; }

:root {
  --c-text:      #232459;
  --c-blue:      #1e5fe1;
  --c-dot:       #aeb2bd;
  --c-arrow:     #b7bccb;
  --c-footer-bg: #c4daf2;
  --pc-gutter:   0px;
  --col-w:       39rem;
}

html {
  font-size: 2.5641vw;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  /* iOS Safari は body だけの overflow-x では効かないため html にも指定 */
  overflow-x: hidden;
}
@media (min-width: 769px) {
  html { font-size: 13.6px; }   /* 17px の8割 */
}

body {
  background: #fff;
  color: var(--c-text);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-weight: 400;
  font-size: 1.2rem;
  line-height: 1.7;
  font-feature-settings: "palt";
  overflow-x: hidden;
}

.u-visuallyhidden {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* --------------------------------------------------------------------------
   layout
   -------------------------------------------------------------------------- */
.l-wrapper {
  position: relative;
  z-index: 1;
  width: 100%;
  margin: 0 auto;
  background: #fff;
}

.l-visual { display: none; }

/* --------------------------------------------------------------------------
   header / hamburger
   -------------------------------------------------------------------------- */
.l-header {
  position: fixed;
  z-index: 40;
  top: 0;
  left: 0;
  width: 100%;
  height: 0;
  pointer-events: none;
}
.c-hamburger,
.c-navclose {
  position: absolute;
  top: 3.275rem;
  right: 3.375rem;
  transform: translate(50%, -50%);
}
.c-hamburger {
  width: 4.05rem;
  height: 4.05rem;
  pointer-events: auto;
  transition: opacity .3s ease;
}
.c-hamburger img { width: 100%; height: 100%; }

/* --------------------------------------------------------------------------
   nav（hamburger menu）
   -------------------------------------------------------------------------- */
.l-nav {
  position: fixed;
  z-index: 50;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #5ac7d7 0%, #4d9adc 45%, #1e60aa 100%);
  opacity: 0;
  visibility: hidden;
  transition: opacity .4s ease, visibility .4s ease;
}
.l-nav.is-open { opacity: 1; visibility: visible; }

.c-navclose {
  width: 2.5rem;
  height: 2.5rem;
}
.c-navclose img { width: 100%; height: 100%; }

.l-nav__list { text-align: center; }
.l-nav__item a {
  display: block;
  padding: .4rem 1rem;
  color: #fff;
  font-size: 2.4rem;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .04em;
  transition: opacity .3s ease;
}
.l-nav__item a:hover { opacity: .7; }
.l-nav__sep {
  margin: 3.2rem auto 3.8rem;
  color: #fff;
  font-size: 1.2rem;
  line-height: 1;
  letter-spacing: .62em;
  text-indent: .62em;
}

/* --------------------------------------------------------------------------
   pagetop
   -------------------------------------------------------------------------- */
.c-pagetop {
  position: fixed;
  z-index: 30;
  right: 1.9rem;
  bottom: 2rem;
  display: block;
  width: 3.4rem;
  transition: opacity .3s ease, visibility .3s ease;
}
.c-pagetop:hover { opacity: .7; }
/* SPのみ：FVに被る位置では隠す／静止後も隠す（表示制御はJS側） */
.c-pagetop.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.c-pagetop img { display: none; width: 100%; height: auto; }
.c-pagetop .c-pagetop__sp { display: block; }

/* --------------------------------------------------------------------------
   common parts
   -------------------------------------------------------------------------- */
.c-frame { position: relative; }
/* 上下の飾りはフロー配置。高さは padding-top（％）＝画像の縦横比で出すので長体にならない */
.c-frame::before,
.c-frame::after {
  content: "";
  display: block;
  width: 100%;
  height: 0;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
.c-frame::before { padding-top: 12.46%; margin: 0 0 -0.02rem 0; }   /* 180 / 1445 */
.c-frame::after  { padding-top: 3.4722%; background-image: url("../imgs/frame_foot_about_sp.png"); }  /* 50 / 1440 */
.c-frame__body {
  background-repeat: repeat-y;
  background-position: center top;
  background-size: 100% auto;
}

.c-frame--about { width: 36rem; margin: 0 auto; }
.c-frame--about::before { padding-top: 12.5%; background-image: url("../imgs/frame_head_about_sp.png"); }  /* 180 / 1440 */
.c-frame--about .c-frame__body { background-image: url("../imgs/frame_contentarea_about_sp.png"); }

.c-frame--goods { width: 36.15rem; margin: 0 auto; }
.c-frame--goods .c-frame__body { background-image: url("../imgs/frame_contentarea_goods_sp.png"); }
.c-frame--head01::before { background-image: url("../imgs/frame_head_01goods_sp.png"); }
.c-frame--head02::before { background-image: url("../imgs/frame_head_02goods_sp.png"); }
.c-frame--head03::before { background-image: url("../imgs/frame_head_03goods_sp.png"); }
.c-frame--head04::before { background-image: url("../imgs/frame_head_04goods_sp.png"); }
.c-frame--head05::before { background-image: url("../imgs/frame_head_05goods_sp.png"); }
.c-frame--head06::before { background-image: url("../imgs/frame_head_06goods_sp.png"); }
.c-frame--head07::before { background-image: url("../imgs/frame_head_07goods_sp.png"); }
.c-frame--head08::before { background-image: url("../imgs/frame_head_08goods_sp.png"); }

.c-frame--limited {
  width: 36.15rem;
  margin: 0 auto;
}
.c-frame--limited::before { padding-top: 8.31%; background-image: url("../imgs/frame_head_agflimited_sp.png"); }  /* 104 / 1251 */
.c-frame--limited .c-frame__body { background-image: url("../imgs/frame_contentarea_goods_sp.png"); }

.c-separator {
  width: 31.3rem;
  height: .2rem;
  margin: 1.25rem auto 0;
  background: url("../imgs/border_sp.svg") no-repeat center center / 100% 100%;
}

.c-diamond {
  margin-right: .35rem;
  color: var(--c-blue);
  font-size: .8em;
  vertical-align: .1em;
}

.c-num { font-size: 1.6rem; }

/* --------------------------------------------------------------------------
   KV
   -------------------------------------------------------------------------- */
.p-kv { position: relative; }
.p-kv__sp { display: block; width: 100%; }

/* --------------------------------------------------------------------------
   contents bg
   -------------------------------------------------------------------------- */
.p-contents {
  position: relative;
  background: url("../imgs/contents_bg_sp.jpg") no-repeat center top;
  background-size: 100% 100%;
  letter-spacing: 0.07em;
}
.p-contents > section { position: relative; z-index: 1; }
.p-goods > *:not(.starfield) { position: relative; z-index: 2; }

.c-stars {
  position: absolute;
  inset: 0;
  z-index: 3;
  /* 左右は切り取って横スクロールを発生させない／上下は星をはみ出して見せる */
  overflow-x: clip;
  overflow-y: visible;
  clip-path: inset(-20rem 0 -20rem 0);
  pointer-events: none;
}
.c-star {
  position: absolute;
  display: block;
  width: 20rem;
  transform: translate(-50%, -50%);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
  opacity: 0;
  animation-name: twinkle;
  animation-iteration-count: infinite;
  animation-timing-function: ease-in-out;
}
.c-star--01 { aspect-ratio: 512 / 512; background-image: url("../imgs/star01.png"); }
.c-star--02 { aspect-ratio: 614 / 540; background-image: url("../imgs/star02.png"); }
.c-star--03 { aspect-ratio: 612 / 588; background-image: url("../imgs/star03.png"); }

@keyframes twinkle {
  0%, 100% { opacity: .15; }
  45%      { opacity: 1; }
  62%      { opacity: .55; }
}

/* --------------------------------------------------------------------------
   ABOUT
   -------------------------------------------------------------------------- */
.p-about { padding-top: 3.25rem; }
.p-about .c-frame__body {
  padding: .6rem 1.5rem 1.9rem 3rem;
  text-align: center;
}
.p-about__row {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.5;
  text-align: left;
  padding-left: 1.6rem;
  text-indent: -1.6rem;
}
.p-about__row--last { margin-top: 1.75rem; }
.p-about__indent { display: inline-block; /*padding-left: 2.4rem;*/ text-indent: 0; }
.p-about__note {
  margin-top: .3rem;
  padding-left: 1.4rem;
  font-size: 1rem;
  line-height: 1.5;
  text-align: left;
}

/* --------------------------------------------------------------------------
   GOODS
   -------------------------------------------------------------------------- */
.p-goods {
  position: relative;
  padding-top: 3.95rem;
  padding-bottom: 3.85rem;
}

.starfield {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
}
.starfield span {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--s);
  height: var(--s);
}
.starfield span::before {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--c);
  clip-path: polygon(50% 0%, 54% 46%, 100% 50%, 54% 54%, 50% 100%, 46% 54%, 0% 50%, 46% 46%);
  filter: blur(.7px)
          drop-shadow(0 0 4px rgba(255, 255, 255, .95))
          drop-shadow(0 0 10px rgba(255, 255, 255, .85))
          drop-shadow(0 0 22px rgba(255, 255, 255, .55));
  opacity: 0;
  animation: starfieldTwinkle var(--t) ease-in-out var(--d) infinite;
}
@keyframes starfieldTwinkle {
  0%, 100% { opacity: 0;   transform: scale(.3) rotate(45deg); }
  50%      { opacity: 0.9; transform: scale(1)  rotate(45deg); }
}

.p-goods__title { text-align: center; }
.p-goods__title img { width: 18.875rem; }

.p-goods__lead {
  margin-top: 1.2rem;
  color: var(--c-blue);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
}
.p-goods__item { margin-top: 1.6rem; }
.p-goods__item + .p-goods__item { margin-top: 2.8rem; }
.p-goods__item + .p-goods__lead { margin-top: 6.75rem; }

.p-goods .c-frame__body { padding: 1.00rem 1.75rem 1.1rem; text-align: center; }

.p-goods__name {
  margin-top: .8rem;
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.5;
}
.p-goods__price {
  margin-top: 0;
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.5;
}
.p-goods__note {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
}
.p-goods__price + .p-goods__notes { margin-top: .6rem; }
.p-goods__spec {
  margin-top: 1.05rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.4;
}

/* --------------------------------------------------------------------------
   slider
   -------------------------------------------------------------------------- */
.p-slider { position: relative; width: 29rem; margin: 0 auto; }
.p-slider__viewport {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
  background: #fff;
}
.p-slider__viewport::-webkit-scrollbar { display: none; }
.p-slider__viewport { cursor: grab; }
.p-slider.is-dragging .p-slider__viewport { cursor: grabbing; }
.p-slider__slide img { -webkit-user-select: none; user-select: none; -webkit-user-drag: none; }
.p-slider__track { display: flex; }
.p-slider__slide { flex: 0 0 100%; scroll-snap-align: center; }
.p-slider__slide img { display: block; width: 100%; }

.p-slider__arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 2.2rem;
  height: 2.2rem;
  margin-top: -1.1rem;
  transition: opacity .3s ease;
}
.p-slider__arrow::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1.1rem;
  height: 1.1rem;
  border-top: .13rem solid var(--c-arrow);
  border-right: .13rem solid var(--c-arrow);
}
.p-slider__arrow--prev { left: -2.2rem; }
.p-slider__arrow--prev::before { transform: translate(-30%, -50%) rotate(-135deg); }
.p-slider__arrow--next { right: -2.2rem; }
.p-slider__arrow--next::before { transform: translate(-70%, -50%) rotate(45deg); }
.p-slider__arrow:disabled { opacity: .25; cursor: default; }

.p-slider__dots {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .45rem;
  margin-top: .45rem;
}
.p-slider__dot {
  width: .4rem;
  height: .4rem;
  border-radius: 50%;
  background: var(--c-dot);
  transition: background-color .3s ease;
}
.p-slider__dot.is-current { background: var(--c-blue); }

/* --------------------------------------------------------------------------
   AGF限定購入特典
   -------------------------------------------------------------------------- */
.p-limited {
  position: relative;
  padding-top: 3rem;
  padding-bottom: 4.2rem;
  /* 黄～ピンクのグラデーションは背景画像から切り出してセクション自身に持たせる。
     ％指定なのでウィンドウ幅が変わっても常にこのエリアの中で同じ位置に出る。
     先頭を透明にして上（GOODS）の背景となじませている */
  background: linear-gradient(to bottom,
    rgba(255, 255, 255, 0)  0%,
    #ffffff   5%,
    #fffef1  11.8%,
    #fffcdd  18.6%,
    #fffbce  25.4%,
    #fef3d3  32.1%,
    #fdecd8  38.9%,
    #fde7dc  45.7%,
    #fae1dd  52.5%,
    #fadbe0  59.3%,
    #f9d5e1  66.1%,
    #f6d1e3  72.9%,
    #f1d1e8  79.6%,
    #ebd1ec  86.4%,
    #e5d1ed  93.2%,
    #dfd1f4 100%);
}
.p-limited__title { text-align: center; }
.p-limited__title img { width: 30.3rem; }
.c-frame--limited { margin-top: 1.3rem; }
.p-limited .c-frame__body { padding: .2rem 1.75rem 1.45rem; text-align: center; }

.p-limited__name {
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.55;
}
.p-limited__desc {
  margin-top: .8rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.55;
}
.p-limited .p-slider { margin-top: 1.6rem; }
.p-limited__spec {
  margin-top: 1.2rem;
  font-size: 1rem;
  line-height: 1.4;
}
.p-limited__notes {
  width: 29rem;
  margin: 1.55rem auto 0;
  padding-left: .25rem;
  font-size: 1rem;
  line-height: 1.7;
  text-align: left;
}

/* --------------------------------------------------------------------------
   事後販売について
   -------------------------------------------------------------------------- */
.p-onlineshop {
  padding-top: 3.35rem;
  padding-bottom: 3.3rem;
  border-top: .2rem solid #fff;
  background: linear-gradient(90deg,
    #c4daf2  0%,
    #cbdef3 10%,
    #d5e2f3 20%,
    #dfe7f4 30%,
    #e8eaf5 40%,
    #f1eef5 50%,
    #e7eaf3 60%,
    #dbe3f0 70%,
    #cfdaec 80%,
    #c3d4e8 90%,
    #b7cde5 100%);
}
.p-onlineshop__title { text-align: center; }
.p-onlineshop__title img { width: 19.45rem; }
.p-onlineshop__list {
  margin-top: 2.6rem;
  padding: 0 2rem;
  font-size: 1.2rem;
  line-height: 1.7;
  text-align: left;
}
.p-onlineshop__list li {
  position: relative;
  padding-left: .9rem;
}
.p-onlineshop__list li::before {
  content: "";
  position: absolute;
  top: .85rem;
  left: .1rem;
  width: .25rem;
  height: .25rem;
  border-radius: 50%;
  background: currentColor;
}

/* --------------------------------------------------------------------------
   注意事項
   -------------------------------------------------------------------------- */
.p-notes { background: #fff; }
.p-notes__title {
  height: 3.95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(90deg, #59c5d7 0%, #4a9bdd 50%, #276ab3 100%);
  color: #fff;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: .06em;
}
.p-notes__body { padding: 0 1.45rem 0rem; }

.p-notes__head {
  margin-top: 2.6rem;
  color: var(--c-blue);
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.6;
}
.p-notes__list { margin-top: .5rem; }
.p-notes__list li {
  position: relative;
  padding-left: .9rem;
  font-size: 1.2rem;
  line-height: 1.67;
}
.p-notes__list li::before {
  content: "";
  position: absolute;
  top: .85rem;
  left: .1rem;
  width: .25rem;
  height: .25rem;
  border-radius: 50%;
  background: currentColor;
}
.p-notes__figure { margin: 1.4rem auto; text-align: center; }
.p-notes__figure img { width: 31.45rem; }
.p-notes__figure + .p-notes__list { margin-top: 0; }

.p-contact {
  width: 34.1rem;
  margin: 3.9rem auto 0;
  padding: 0 1rem 1.6rem;
  border: .1rem solid var(--c-text);
  text-align: center;
}
.p-contact__label {
  position: relative;
  top: -.9rem;
  display: inline-block;
  padding: 0 1.1rem;
  background: #fff;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.4;
}
.p-contact__name {
  /*margin-top: .9rem;*/
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.5;
}
.p-contact__tel {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.5;
}
.p-contact__note {
  margin-top: .2rem;
  font-size: 1rem;
  line-height: 1.5;
}

.p-sns {
  display: flex;
  margin-top: 4.4rem;
}
.p-sns__item { width: 50%; text-align: center; }
.p-sns__label {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 4.2rem;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.5;
}
.p-sns__link {
  display: inline-block;
  margin-top: 1.1rem;
  width: 3.6rem;
  transition: opacity .3s ease;
}
.p-sns__link:hover { opacity: .7; }

/* --------------------------------------------------------------------------
   footer
   -------------------------------------------------------------------------- */
.l-footer {
  margin-top: 2.6rem;
  padding: 2.2rem 1rem;
  background: var(--c-footer-bg);
  text-align: center;
}
.l-footer__copy {
  font-size: 1rem;
  line-height: 1.5;
}

/* --------------------------------------------------------------------------
   scroll animation
   -------------------------------------------------------------------------- */
.js-fade {
  opacity: 0;
  transform: translateY(2rem);
  transition: opacity .9s cubic-bezier(.22, .61, .36, 1), transform .9s cubic-bezier(.22, .61, .36, 1);
}
.js-fade.is-visible { opacity: 1; transform: none; }

/* --------------------------------------------------------------------------
   SP／PC 切り替え用（PC 側で解除）
   -------------------------------------------------------------------------- */
br.u-sp { display: inline; }
.p-about__line { display: block; }
.p-kv__pc { display: none; }
.p-goods__spec > span,
.p-limited__spec > span { display: block; }

@media (prefers-reduced-motion: reduce) {
  .starfield span,
  .starfield span::before { animation: none; opacity: .9; transform: rotate(45deg); }
  .js-fade { opacity: 1; transform: none; transition: none; }
  .c-star { animation: none; opacity: .6; }
  .p-slider__viewport { scroll-behavior: auto; }
  html { scroll-behavior: auto; }
}

/* ==========================================================================
   PC（769px〜）
   ========================================================================== */
@media (min-width: 769px) {
  :root { --nav-h: 58px; }   /* 固定ヘッダーメニューの高さ */

  /* ---- 全体：分割レイアウトを解除し、1カラム縦スクロールに ---- */
  body { background: #fff; }

  .l-wrapper {
    width: 100%;
    margin: 0;
    padding-top: var(--nav-h);
    box-shadow: none;
  }

  /* アンカーリンクの着地点を固定ヘッダーの下にずらす */
  #about,
  #goods,
  #limited,
  #onlineshop,
  #notes { scroll-margin-top: var(--nav-h); }

  /* ---- ヘッダーメニュー（ハンバーガー廃止、横並び固定） ---- */
  .l-header   { display: none; }
  .c-navclose { display: none; }

  .l-nav {
    position: fixed;
    inset: 0 0 auto 0;
    z-index: 60;
    height: var(--nav-h);
    background: linear-gradient(90deg, #59c5d7 0%, #4a9bdd 50%, #276ab3 100%);
    opacity: 1;
    visibility: visible;
    transition: none;
  }
  .l-nav__list {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(24px, 5.6vw, 90px);
  }
  .l-nav__sep { display: none; }
  .l-nav__item a {
    position: relative;
    padding: 0;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .04em;
  }
  .l-nav__item a:hover { opacity: 1; }
  .l-nav__item a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -9px;
    height: 2px;
    background: currentColor;
    transform: scaleX(0);
    transition: transform .25s ease;
  }
  .l-nav__item a:hover::after,
  .l-nav__item a:focus-visible::after { transform: scaleX(1); }

  /* ---- メインビジュアル：上部フルワイド ---- */
  .p-kv {
    padding: 1.28% 0;   /* カンプ1600px時：上下20.5px */
    background: url("../imgs/kv_bg.jpg") no-repeat center center / cover;
  }
  .p-kv__sp { display: none; }
  .p-kv__pc {
    display: block;
    width: 83.5%;       /* カンプ1600px時：1336px */
    height: auto;
    margin-inline: auto;
  }

  /* ---- コンテンツ背景・フレーム・区切り線をPC版画像に ---- */
  .p-contents {
    background-image: url("../imgs/contents_bg.jpg");
    background-size: cover;   /* 縦横比を保ったまま全面を覆う */
  }

  .c-frame::before { padding-top: 9.5238%; }   /* 180 / 1890 */
  .c-frame::after  { padding-top: 2.6455%; background-image: url("../imgs/frame_foot_about.png"); }  /* 50 / 1890 */
  .c-frame--about::before { padding-top: 9.5238%; background-image: url("../imgs/frame_head_about.png"); }
  .c-frame--about .c-frame__body { background-image: url("../imgs/frame_contentarea_about.png"); }
  .c-frame--goods .c-frame__body,
  .c-frame--limited .c-frame__body { background-image: url("../imgs/frame_contentarea_goods.png"); }
  .c-frame--head01::before { background-image: url("../imgs/frame_head_01goods.png"); }
  .c-frame--head02::before { background-image: url("../imgs/frame_head_02goods.png"); }
  .c-frame--head03::before { background-image: url("../imgs/frame_head_03goods.png"); }
  .c-frame--head04::before { background-image: url("../imgs/frame_head_04goods.png"); }
  .c-frame--head05::before { background-image: url("../imgs/frame_head_05goods.png"); }
  .c-frame--head06::before { background-image: url("../imgs/frame_head_06goods.png"); }
  .c-frame--head07::before { background-image: url("../imgs/frame_head_07goods.png"); }
  .c-frame--head08::before { background-image: url("../imgs/frame_head_08goods.png"); }
  .c-frame--limited::before { padding-top: 5.291%; background-image: url("../imgs/frame_head_agflimited.png"); }  /* 100 / 1890 */

  .c-separator {
    width: min(736.2px, 100%);
    height: auto;
    aspect-ratio: 736.2 / 12;   /* border.svg 原寸 */
    background-image: url("../imgs/border.svg");
  }

  /* ---- タイトル画像（カンプ実測値） ---- */
  .p-goods__title img      { width: 336px; max-width: 100%; }
  .p-limited__title img    { width: 539px; max-width: 100%; }
  .p-onlineshop__title img { width: 346px; max-width: 100%; }

  /* ---- コンテンツ幅 900px ---- */
  .c-frame--about,
  .c-frame--goods,
  .c-frame--limited { width: min(900px, 100% - 48px); }

  .p-onlineshop__list,
  .p-notes__body {
    width: min(900px, 100% - 48px);
    margin-inline: auto;
    padding-inline: 0;
  }
	
  .p-about .c-frame__body {
    /* グリッドの1カラムを文字量ぶんの幅（max-content）で作り、それごと枠の中央へ。
       行同士は左揃えのまま＝◆の位置が揃う */
    display: grid;
    justify-content: center;
    padding: .6rem 2rem 1.9rem;
  }
	
  /* ---- SP用の改行・改行表示を解除 ---- */
  br.u-sp { display: none; }
  .p-about__line { display: inline; }
  .p-about__indent { padding-left: 0; }
  .p-goods__spec > span,
  .p-limited__spec > span { display: inline; }
  .p-goods__spec > span + span::before,
  .p-limited__spec > span + span::before { content: "\3000"; }
  /* 銀テープ風キーホルダー：素材とサイズはPCでも改行 */
  .p-goods__spec--stack > span { display: block; }
  .p-goods__spec--stack > span + span::before { content: none; }
  .p-goods__note { display: inline; }
  .p-goods__note + .p-goods__note::before { content: "\3000"; }

  /* ---- コピーライトのみ縮小前の級数を維持（開催概要・お問い合わせ先・公式X は
         2026/09/28 赤字で2割縮小 ＝ rem基準に戻した） ---- */
  .l-footer__copy { font-size: 17px; }

  /* ---- AGF限定購入特典の文字はGOODSと同じ級数に ---- */
  .p-limited__name { font-size: 1.6rem; }   /* .p-goods__name と同じ */
  .p-limited__desc { font-size: 1.2rem; }   /* .p-goods__price と同じ */

  /* ---- 事後販売・注意事項の本文は商品スペックと同じ級数に ---- */
  .p-onlineshop__list,
  .p-notes__list li { font-size: 1rem; }

  /* ---- AGF限定購入特典の注意書き：スライダー幅に合わせて中央寄せ ---- */
  .p-limited__notes {
    width: 75%;
    margin: 1.55rem auto 0;
    line-height: 1.6;
  }

  /* ---- スライダー ---- */
  .p-slider { width: 75%; }
  .p-slider__arrow--prev { left: -4rem; }
  .p-slider__arrow--next { right: -4rem; }
  .p-slider__arrow:hover:not(:disabled) { opacity: .6; }

  /* ---- お支払い方法：テキスト左／決済ブランド画像右の2カラム ---- */
  .p-notes__payment {
    display: grid;
    grid-template-columns: 1fr auto;
    /* 画像が2行にまたがっても1行目が伸びないよう、余りは2行目へ流す */
    grid-template-rows: auto 1fr;
    column-gap: 2.5rem;
    align-items: start;
  }
  .p-notes__payment .p-notes__list--pay  { grid-column: 1; grid-row: 1; }
  .p-notes__payment .p-notes__list--pay2 { grid-column: 1; grid-row: 2; margin-top: 0; }
  .p-notes__payment .p-notes__figure {
    grid-column: 2;
    grid-row: 1 / span 2;
    margin: 0;
  }
  .p-notes__payment .p-notes__figure img { width: 280px; }

  /* ---- お問い合わせ先 ---- */
  .p-contact { width: min(760px, 100%); }
  .p-contact__label {
    display: block;
    width: fit-content;
    margin-inline: auto;
  }
  .p-contact__name,
  .p-contact__tel { display: inline; }
  .p-contact__tel::before { content: "\3000"; }

  /* ---- ページトップ ---- */
  .c-pagetop {
    right: 40px;
    bottom: 40px;
    width: 48px;
  }
  .c-pagetop .c-pagetop__sp { display: none; }
  .c-pagetop .c-pagetop__pc { display: block; }
}
