    /* ================================================================
       RESET & BASE
       ================================================================ */
       *, *::before, *::after {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
      }
  
      ul, ol {
        list-style: none;
      }
  
      :root {
        --font-main: 'fot-tsukuardgothic-std', 'M PLUS Rounded 1c', 'ヒラギノ丸ゴ Pro', sans-serif;
        --color-line-green: #00c300;
        --color-badge: #ed9a7a;
        --color-white: #ffffff;
  
        /* スケール基準: 1920px */
        --base: 1920;
        --content-wide: 1632px;
        --content-main: 1536px;
        --content-readable: 1210px;
        --content-shooting: 1306px;
      }
  
      body {
        font-family: var(--font-main);
        background-color: var(--color-white);
        overflow-x: hidden;
      }
  
      img {
        display: block;
        max-width: 100%;
      }

      .hero__logo picture,
      .hero__cta-qr picture,
      .renewal__deco picture,
      .renewal__timeline-visual picture,
      .prize-card__image picture,
      .how-to__step-icon picture,
      .receipt-diagram__mock picture,
      .example-card__img picture,
      .product-card__img-wrap picture {
        display: block;
        width: 100%;
        height: 100%;
      }

      .hero__kv picture {
        width: 100%;
        height: 100%;
      }
  
      .visually-hidden {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        clip-path: inset(50%);
        white-space: nowrap;
        border: 0;
      }
  
      /* ================================================================
         DISPLAY UTILITIES
         ================================================================ */
      .u-only-pc {
        display: block;
      }
  
      .u-only-sp {
        display: none;
      }
  
      .u-br-sp {
        display: none;
      }
  
      /* ================================================================
         HERO SECTION
         ================================================================ */
      .hero {
        position: relative;
        width: 100%;
        background-color: var(--color-white);
        background-image: url('../img/fv_img.png');
        background-size: 1920px;
        background-repeat: no-repeat;
        background-position: center;
      }
  
      /* ── コンテンツ列 ────────────────────────────────────────────── */
      .hero__body {
        position: relative;
        z-index: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
      }
  
      .hero__logo {
        padding-top: 2.29vw;
        width: 10.10vw;
      }
  
      .hero__logo img {
        width: 100%;
        height: auto;
      }
  
      .hero__kv {
        margin-top: 0.42vw;
        width: 75.73vw;
      }
  
      .hero__kv img {
        width: 100%;
        height: auto;
      }
  
      .hero__cta {
        width: 38.75vw;
        background-color: var(--color-line-green);
        border-radius: 0.78vw;
        display: flex;
        align-items: center;
        gap: 0;
        padding: 0.8vw 1.15vw 0.8vw 1.40vw;
        margin: 0 auto 4.17vw;  /* 中央寄せ + 波形背景終端との視覚的余白 */
        text-decoration: none;
      }
  
      /* 左カラム: バッジ + タイトル + サブテキスト */
      .hero__cta-left {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        min-width: 0;
      }
  
      .hero__cta-badge {
        display: block;
        background-color: var(--color-badge);
        color: var(--color-white);
        font-size: 1.25vw;
        font-weight: 700;
        padding: 0.36vw 1.04vw;
        border-radius: 100px;
        white-space: nowrap;
        margin: 0 auto;
        margin-bottom: 5px;
      }
  
      .hero__cta-title {
        color: var(--color-white);
        font-size: 2.50vw;
        font-weight: 700;
        line-height: 1.20;
        text-align: right;
      }
  
      .hero__cta-title-line {
        display: block;
      }
  
      .hero__cta-note {
        color: var(--color-white);
        font-size: 1.04vw;
        margin-top: 0px;
        line-height: 1.4;
      }
  
      .hero__cta-qr {
        width: 9.53vw;
        aspect-ratio: 1 / 1;
        flex-shrink: 0;
        border-radius: 0.26vw;
        overflow: hidden;
        background-color: var(--color-white);
        margin-left: auto;
      }
  
      .hero__cta-qr img {
        width: 100%;
        height: 100%;
        object-fit: contain;
      }
  
      /* ================================================================
         RENEWAL SECTION
         ================================================================ */
      .renewal {
        background: #fff;
        padding: 64px 40px 72px;
      }
  
      .renewal__inner {
        width: 100%;
        max-width: var(--content-wide);
        margin: 0 auto;
      }
  
      /* ── タイトル ──────────────────────────────────────────────────── */
      .renewal__header {
        margin-bottom: 40px;
        text-align: center;
      }
  
      .renewal__title {
        font-size: 3rem;
        font-weight: 700;
        color: #592202;
        line-height: 1.2;
      }
  
      .renewal__title-row {
        display: block;
      }
  
      .renewal__title-row--2 {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 18px;
        margin-top: 6px;
      }
  
      /* 2行目の黄色マーカー（蛍光ペン風） */
      .renewal__highlight {
        background: linear-gradient(transparent 50%, rgba(242, 219, 102, 0.5) 50%);
        padding: 0 4px;
      }
  
      /* 斜め装飾バー（2行目だけを挟む） */
      .renewal__deco {
        display: inline-flex;
        gap: 8px;
        flex-shrink: 0;
      }
  
      .renewal__deco span {
        display: block;
        width: 4px;
        height: 44px;
        background: #3d2b1f;
        border-radius: 3px;
      }
  
      /* ── タイムライン画像 + 下部コピー (画像左下に重ねる) ─────────── */
      .renewal__timeline-visual {
        position: relative;
        width: 100%;
        max-width: var(--content-wide);
        margin: 0 auto;
      }
  
      .renewal__timeline-img {
        display: block;
        width: 100%;
        height: auto;
      }
  
      .renewal__bottom {
        position: absolute;
        left: 9%;
        bottom: 7%;
        text-align: left;
      }
  
      .renewal__copy {
        font-size: 2.25rem;
        font-weight: 700;
        color: #592202;
        line-height: 1.8;
      }
  
      .renewal__copy-line {
        display: block;
      }
  
      /* ================================================================
         CAMPAIGN SECTION (賞品ラインナップ + 応募方法)
         ================================================================ */
      .campaign {
        background: url('../img/lineup_bg_top.png') top center / contain no-repeat,
          linear-gradient(to bottom, #fcded0 0%, rgba(252, 222, 208, 0) 100%);
        padding: 72px 40px 100px;
      }
  
      .campaign__inner {
        width: 100%;
        max-width: var(--content-main);
        margin: 0 auto;
      }
  
      /* ── 共通: ブロック間余白 ───────────────────────────────────── */
      .campaign__block + .campaign__block {
        margin-top: 88px;
      }
  
      /* ── 賞品ラインナップ: タイトル専用スタイル ─────────────────── */
      .prize-lineup__ttl-area {
        text-align: center;
        margin-bottom: 40px;
      }
  
      .prize-lineup__ttl-lead {
        display: inline-block;
        font-size: 3rem;
        font-weight: 700;
        color: #592202;
        letter-spacing: 0.04em;
        position: relative;
        padding: 0 44px;
        -webkit-text-stroke: 6px #fff;
        paint-order: stroke fill;
        filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
      }
  
      .prize-lineup__ttl-ja {
        font-size: 4rem;
        font-weight: 700;
        color: #592202;
        line-height: 1.3;
        letter-spacing: 0.04em;
        -webkit-text-stroke: 6px #fff;
        paint-order: stroke fill;
        filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
      }
  
      /* ── 賞品カード ─────────────────────────────────────────────── */
      .prize-list {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 28px;
      }
  
      /* 上段2枚は全幅、下段2枚は2カラム */
      .prize-card--wide {
        grid-column: 1 / -1;
      }
  
      .prize-card {
        background: #fff;
        border-radius: 18px;
        position: relative;
        padding: 90px 40px 32px;
        box-shadow: 
        5px 5px 0 0 #fff,                /* 白い面を右下にオフセット */
        5px 5px 0 1.5px #fff;  
        overflow: visible;
        border: solid 3px #592202;
      }
  
      /* 上部の黄色タブ（〇個コース） */
      .prize-card__tab {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 70px;
        background: #f7d94c;
        border-radius: 18px 18px 0 0;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 2.5rem;
        font-weight: 700;
        color: #3d2b1f;
        letter-spacing: 0.04em;
        -webkit-text-stroke: 6px #fff;
        paint-order: stroke fill;
      }
  
      /* 右上のオレンジ丸バッジ（〇名様） */
      .prize-card__badge {
        position: absolute;
        top: 22px;
        right: 18px;
        width: 144px;
        height: 144px;
        border-radius: 50%;
        background: var(--color-badge, #F2AF88);
        color: #fff;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        line-height: 1;
        font-weight: 700;
        box-shadow: 0 2px 6px rgba(237, 154, 122, 0.35);
        z-index: 2;
      }
  
      .prize-card__badge-num {
        font-size: 4rem;
        letter-spacing: 0.02em;
      }
  
      .prize-card__badge-num span {
        letter-spacing: 0;
      }
  
      .prize-card__badge-unit {
        font-size: 2rem;
        margin-top: 4px;
      }
  
      /* バッジが「1,000」の場合は数字を小さく */
      .prize-card__badge--long .prize-card__badge-num {
        font-size: 2.5rem;
      }
  
      /* カード本体: 横並び（wide）／ 縦並び（compact） */
      .prize-card__body {
        display: flex;
        gap: 40px;
        align-items: center;
      }
  
      .prize-card--compact .prize-card__body {
        flex-direction: column;
        gap: 18px;
        text-align: center;
      }
  
      .prize-card--compact .prize-card__badge {
        width: 155px;
        height: 155px;
      }
  
      .prize-card--large-badge .prize-card__badge {
        width: 155px;
        height: 155px;
      }
  
      /* 画像プレースホルダ */
      .prize-card__image {
        border-radius: 12px;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-shrink: 0;
      }
  
      .prize-card__image--wide {
        width: 610px;
        height: auto;
      }
  
      .prize-card__image--compact {
        /* えらべるPay規定: 画像内ブランドロゴが縦40px以上になるよう
           素材本来の530x300(比1.767)で表示する */
        width: min(530px, 100%);
        height: auto;
        background: #fff;
      }
  
      .prize-card__image img {
        width: 100%;
        height: 100%;
        object-fit: contain;
      }
  
      /* 画像が未入稿（空 src）の時はブロークンアイコンを隠す */
      .prize-card__image img[src=""],
      .prize-card__image img:not([src]) {
        visibility: hidden;
      }
  
      /* 本文 */
      .prize-card__info {
        flex: 1;
        min-width: 0;
        padding-top: 20px;
      }
  
      .prize-card__name {
        font-size: 3rem;
        font-weight: 700;
        color: #592202;
        line-height: 1.1;
        margin-bottom: 14px;
      }
  
      .prize-card__name-line {
        display: block;
      }
  
      .prize-card--compact .prize-card__name {
        font-size: 3rem;
        margin-bottom: 28px;
      }
  
      .prize-card__desc {
        font-size: 1.25rem;
        color: #592202;
        line-height: 1.85;
        font-weight: 700;
        margin-bottom: 16px;
      }
  
      .prize-card__variants {
        font-size: 1.75rem;
        font-weight: 700;
        color: #592202;
      }
  
      .prize-card__note {
        font-size: 1rem;
        color: #592202;
        margin-top: 12px;
        text-align: right;
        font-weight: 700;
      }

      /* ── えらべるPay 注意事項 ── */
      .prize-notes {
        margin-top: 48px;
        margin-bottom: 48px;
        color: #592202;
      }

      .prize-notes__title {
        font-size: 1.25rem;
        font-weight: 700;
        margin-bottom: 12px;
      }

      .prize-notes__list {
        list-style: none;
        font-size: 1rem;
        line-height: 1.85;
      }

      .prize-notes__list li {
        padding-left: 1em;
        text-indent: -1em;
      }

      .prize-notes__list-item--gap {
        margin-top: 1.85em;
      }
  
      /* ── カンタン3ステップで応募 ────────────────────────────────── */
      .how-to {
        text-align: center;
      }
  
      .how-to__ttl-area {
        text-align: center;
        margin-bottom: 36px;
      }
  
      .how-to__ttl {
        font-size: 4rem;
        font-weight: 700;
        color: #592202;
        line-height: 1.3;
        letter-spacing: 0.02em;
        -webkit-text-stroke: 6px #fff;
        paint-order: stroke fill;
        filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
      }
  
      .how-to__sub {
        font-size: 3rem;
        font-weight: 700;
        color: #592202;
        -webkit-text-stroke: 6px #fff;
        paint-order: stroke fill;
        filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
      }
  
      .step-list {
        display: flex;
        flex-direction: column;
        gap: 20px;
        margin: 0 auto 23px;
        max-width: 1200px;
        padding-left: 60px;
      }
  
      .how-to__step-card {
        position: relative;
        background: #fff;
        border: 3px solid #00C300;
        outline-offset: 4px;
        border-radius: 20px;
        padding: 26px 32px 26px 86px;
        display: flex;
        align-items: center;
        gap: 20px;
        box-shadow: 5px 5px 0 0 #fff, 5px 5px 0 1.5px #fff;
        overflow: visible;
      }
  
      /* カード間の下矢印 */
      .how-to__step-card::after {
        content: "";
        position: absolute;
        left: 50%;
        bottom: -26px;
        transform: translateX(-50%);
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 24px 50px 0 50px;
        border-color: #00C300 transparent transparent transparent;
      }
  
      .how-to__step-num {
        position: absolute;
        top: 50%;
        left: -53px;
        flex-shrink: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 51px;
        height: 111px;
        line-height: 1;
        color: #00C300;
        font-weight: 700;
        min-width: 0;
        background: #fff;
        border: 3px solid #00C300;
        border-right: 0;
        border-radius: 60px 0 0 60px;
        transform: translateY(-50%);
        z-index: 1;
        padding-left: 50px;
      }
  
      .how-to__step-val {
        font-size: 2.5rem;
        margin-top: 2px;
        letter-spacing: 0.02em;
      }
  
      .how-to__step-icon {
        flex-shrink: 0;
        display: flex;
        align-items: center;
        justify-content: center;
      }
  
      .how-to__step-icon img {
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
      }
  
      .how-to__step-body {
        flex: 1;
        text-align: left;
      }
  
      .how-to__step-title {
        font-size: 2.5rem;
        font-weight: 700;
        color: #00C300;
        line-height: 1.4;
        margin-bottom: 6px;
      }
  
      .how-to__step-desc {
        font-size: 1.25rem;
        color: #592202;
        line-height: 1.7;
        font-weight: bold;
      }
  
      .how-to__step-note {
        display: block;
        font-size: 1.125rem;
        color: #592202;
        margin-top: 4px;
        font-weight: bold;
      }
  
     /* ================================================================
     TERMS SECTION (応募規約)
     ================================================================ */
      .campaign-wrap {
        background: #F2DB66;
      }
  
      .terms {
        background: transparent;
        padding: 64px 40px 80px;
      }
  
      .terms__inner {
        width: 100%;
        max-width: var(--content-readable);
        margin: 0 auto;
      }
  
      .terms__tit {
        font-size: 4rem;
        font-weight: 700;
        color: #1a1208;
        text-align: center;
        margin-bottom: 28px;
        -webkit-text-stroke: 8px #fff;
        paint-order: stroke fill;
        filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
      }
  
      .terms__accordion {
        background: #fff;
        border-radius: 15px;
        overflow: hidden;
        border: solid 3px #592202;
      }
  
      .terms__title {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 18px 24px 18px 60px;
        font-size: 1.5rem;
        font-weight: 700;
        color: #592202;
        cursor: pointer;
        list-style: none;
        user-select: none;
        gap: 12px;
        margin: 0;
      }
  
      .terms__title::-webkit-details-marker {
        display: none;
      }
  
      .terms__title::after {
        content: '+';
        font-size: 1.5rem;
        font-weight: bold;
        color: #592202;
        flex-shrink: 0;
        line-height: 1;
        width: 22px;
        text-align: center;
        font-family: var(--font-main);
      }
  
      .terms__accordion[open] > .terms__title {
        border-bottom: solid 3px #592202;
      }
  
      .terms__accordion[open] > .terms__title::after {
        content: '×';
        font-size: 1.125rem;
      }
  
      .terms__content {
        padding: 40px 60px 28px;
      }
  
      .terms__content p {
        color: #592202;
        font-weight: bold;
      }
  
      .terms__intro {
        font-size: 1.5rem;
        color: #444;
        line-height: 1.5;
        margin-bottom: 24px;
      }
  
      .terms__section {
        margin-bottom: 40px;
      }
  
      .terms__section p {
        font-size: 1.5rem;
      }
  
      .terms__section-title {
        font-size: 1.5rem;
        font-weight: 700;
        color: #592202;
        margin: 0 0 8px;
        line-height: 1.5;
      }
  
      .terms__body {
        font-size: 1rem;
        color: #555;
        line-height: 1.85;
      }
  
      .terms__body p {
        margin-bottom: 6px;
        line-height: 1.5;
      }
  
      .terms__line-label,
      .terms__line-body {
        display: block;
      }
  
      .terms__body ul,
      .terms__body ol {
        margin: 6px 0 10px 1.5em;
      }
  
      .terms__body ol {
        margin: 0;
      }
  
      .terms__body li {
        margin-bottom: 4px;
        line-height: 1.85;
        font-size: 1.5rem;
        font-weight: bold;
        color: #592202;
        list-style: disc;
      }
  
      .terms__body ol li {
        list-style: none;
      }
  
  
      /* ================================================================
         SCHEDULE & FAQ SECTION
         ================================================================ */
      .schedule-faq {
        background: transparent;
        padding: 0 40px 80px;
        position: relative;
      }
  
      /* ── スケジュール ─── */
      .schedule {
        width: 100%;
        max-width: var(--content-readable);
        margin: 0 auto 72px;
      }
  
      .schedule__title {
        font-size: 4rem;
        font-weight: 700;
        color: #1a1208;
        text-align: center;
        margin-bottom: 36px;
        -webkit-text-stroke: 8px #fff;
        paint-order: stroke fill;
        filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
      }
  
      .schedule__table {
        width: 100%;
        border-collapse: separate;
        border-spacing: 0;
        border-radius: 12px;
        overflow: hidden;
      }
  
      .schedule__table th {
        background: #F2AF88;
        color: #592202;
        font-size: 1.5rem;
        font-weight: 700;
        padding: 16px 24px;
        text-align: center;
        width: 464px;
        border-bottom: 2px solid rgba(255,255,255,0.25);
        vertical-align: middle;
      }
  
      .schedule__table td {
        background: #fff;
        color: #592202;
        font-size: 1.5rem;
        padding: 16px 24px;
        border-bottom: 3px solid #f0e4d6;
        vertical-align: middle;
        font-weight: 700;
      }
  
      .schedule__table th, .schedule__table td {
        border-bottom: 3px solid #5C3A1E;
        border-right: 3px solid #5C3A1E;
        padding: 12px;
      }
  
      .schedule__table {
        border: 3px solid #5C3A1E;
      }
  
      tr:last-child th,
      tr:last-child td {
        border-bottom: none;
      }
  
      .schedule__table th:last-child,
      .schedule__table td:last-child {
        border-right: none;
      }
  
      .schedule__table tr:last-child th {
        border-bottom: none;
      }
  
      .schedule__table tr:last-child td {
        border-bottom: none;
      }
  
      /* ── FAQ ─── */
      .faq {
        width: 100%;
        max-width: var(--content-readable);
        margin: 0 auto;
      }
  
      .faq__title {
        font-size: 4rem;
        font-weight: 700;
        color: #1a1208;
        text-align: center;
        margin-bottom: 28px;
        -webkit-text-stroke: 8px #fff;
        paint-order: stroke fill;
        filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
      }
  
      .faq__list {
        display: flex;
        flex-direction: column;
        gap: 8px;
      }
  
      .faq__item {
        background: #fff;
        border-radius: 15px;
        overflow: hidden;
        border: solid 3px #592202;
      }
      
      .faq__item summary {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 18px 24px 18px 60px;
        font-size: 1.5rem;
        font-weight: 700;
        color: #592202;
        cursor: pointer;
        list-style: none;
        user-select: none;
        gap: 12px;
      }
      
      /* 開いているときだけ、質問と回答の間に区切り線 */
      .faq__item[open] > summary {
        border-bottom: solid 3px #592202;
      }
      
      .faq__item summary::-webkit-details-marker {
        display: none;
      }
      
      .faq__item summary::after {
        content: '+';
        font-size: 1.5rem;
        font-weight: bold;
        color: #592202;
        flex-shrink: 0;
        line-height: 1;
        width: 22px;
        text-align: center;
        font-family: var(--font-main);
      }
      
      .faq__item[open] > summary::after {
        content: '×';
        font-size: 1.5rem;
        font-weight: bold;
      }
      
      .faq__answer {
        padding: 18px 24px 18px 60px;
        font-size: 1.5rem;
        color: #592202;
        line-height: 1.85;
        border-top: 1px solid #f0f0f0;
        font-weight: bold;
      }
  
      /* ================================================================
         FOOTER
         ================================================================ */
      .site-footer {
        background: #592202;
        padding: 40px 16px;
        text-align: center;
      }
  
      .site-footer__copyright {
        color: #fff;
        font-size: 20px;
        font-weight: 700;
        letter-spacing: 0;
        line-height: 1.5;
      }
  
      /* ================================================================
         PRODUCTS SECTION (対象商品)
         ================================================================ */
      .products {
        background-image: url('../img/products-bg.png');
        background-repeat: no-repeat;
        background-position: center;
        background-size: 1920px;
        height: 1820px;
        padding: 72px 40px 80px;
        position: relative;
        overflow: hidden;
        display: flex;
        align-items: center;
        justify-content: center;
      }
  
      .products__inner {
        width: 100%;
        max-width: var(--content-main);
        margin: 0 auto;
      }
  
      .products__title-area {
        text-align: center;
        line-height: 1;
        margin-bottom: 90px;
      }
  
      .products__title {
        font-size: 4rem;
        font-weight: 700;
        color: #592202;
        line-height: 1.3;
        margin-bottom: 6px;
        -webkit-text-stroke: 6px #fff;
        paint-order: stroke fill;
        filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
      }
  
      .products__subtitle {
        font-size: 3rem;
        font-weight: 700;
        color: #592202;
        -webkit-text-stroke: 4px #fff;
        paint-order: stroke fill;
        filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
      }

      /* シリーズ一覧 (対象商品 タイトル下) */
      .products__series-list {
        list-style: none;
        padding: 0;
        margin: 16px 0 0;
        display: flex;
        flex-direction: column;
        gap: 6px;
        align-items: center;
      }
      .products__series-list li {
        font-size: clamp(13px, 3vw, 2.2rem);
        font-weight: 700;
        color: #592202;
        -webkit-text-stroke: 3px #fff;
        paint-order: stroke fill;
        filter: drop-shadow(0 3px 3px rgba(0, 0, 0, 0.2));
        line-height: 1.4;
        text-align: center;
      }

      /* 商品グリッド */
      .products__row {
        display: flex;
        justify-content: center;
        gap: 60px;
        margin-top: 20px;
      }
  
      .products__row:last-of-type {
        margin-bottom: 0;
      }
  
      .products__row_down .product-card__img-wrap {
        width: 185px;
      }
  
      .product-card {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0px;
        flex: 1 1 0;
        max-width: 315px;
        min-width: 0;
      }
  
      .product-card__img-wrap {
        width: 100%;
        aspect-ratio: 1 / 1;
        display: flex;
        align-items: center;
        justify-content: center;
        position: relative;
      }
  
      .product-card__img {
        width: 100%;
        height: 100%;
        object-fit: contain;
      }
  
      .product-card__name {
        font-size: 1.4rem;
        font-weight: 700;
        color: #592202;
        text-align: center;
        line-height: 1.3;
        margin-top: 30px;
      }
  
      .product-card__name-line {
        display: block;
      }
  
      /* ================================================================
         SHOOTING TIPS SECTION
         ================================================================ */
      .shooting-tips {
        background: transparent;
        padding: 110px 24px 60px;
      }
  
      .shooting-tips__inner {
        width: 100%;
        max-width: var(--content-wide);
        margin: 0 auto;
        background: #fff;
        padding: 64px 56px 56px;
      }
  
      .shooting-tips__body {
        width: 100%;
        max-width: var(--content-shooting);
        margin: 0 auto;
      }
  
      /* ── Title ─── */
      .shooting-tips__title-area {
        text-align: center;
        margin-bottom: 18px;
      }
  
      .shooting-tips__title {
        font-size: 4rem;
        font-weight: 700;
        color: #592202;
        line-height: 1.3;
        -webkit-text-stroke: 8px #fff;
        paint-order: stroke fill;
        filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.25));
      }
  
      .shooting-tips__lead {
        text-align: center;
        font-size: 1.5rem;
        color: #592202;
        font-weight: bold;
        margin-bottom: 32px;
        line-height: 1.75;
      }
  
      /* ── Receipt Diagram ─── */
      .receipt-diagram {
        display: flex;
        align-items: center;
        gap: 40px;
        justify-content: center;
        margin-bottom: 14px;
      }
  
      .receipt-diagram__mock {
        padding: 16px 18px;
        background: #fff;
        flex-shrink: 0;
      }
  
      .receipt-diagram__labels {
        display: flex;
        flex-direction: column;
        gap: 9px;
        flex: 1;
        max-width: 220px;
      }
  
      .receipt-label-tag {
        display: flex;
        align-items: center;
        gap: 10px;
        background: #fff;
        border: 3px solid #592202;
        border-radius: 15px;
        padding: 6px 18px 6px 19px;
        font-size: 1.5rem;
        font-weight: 700;
        color: #592202;
      }
  
      .receipt-label-tag__num {
        width: 20px;
        height: 20px;
        background: #fff;
        color: #592202;  
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 1.5rem;
        font-weight: bold;
        flex-shrink: 0;
      }
  
      .shooting-tips__receipt-note {
        text-align: center;
        font-size: 1.5rem;
        color: #592202;
        margin-bottom: 28px;
        font-weight: bold;
      }
  
      /* ── Notice Box ─── */
      .shooting-tips__notice {
        background: #fff;
        border: 3px solid #592202;
        border-radius: 15px;
        padding: 16px 24px 16px 170px;
        margin-bottom: 52px;
        font-size: 1rem;
        line-height: 1.9;
        color: #592202;
        position: relative;
      }
  
      .shooting-tips__notice-title {
        position: absolute;
        top: 30px;
        left: 24px;
        transform: translateY(-50%);
        font-weight: 700;
        color: #592202;
        font-size: 1.5rem;
      }
  
      .shooting-tips__notice-list {
        list-style: none;
        margin: 0;
        padding: 0;
      }
  
      .shooting-tips__notice-item {
        font-size: 1.5rem;
        font-weight: bold;
        color: #592202;
        line-height: 1.2;
      }
  
      .shooting-tips__notice-item + .shooting-tips__notice-item {
        margin-top: 0.25rem;
      }
  
      .shooting-tips__note-line {
        display: block;
      }
  
      /* ── Examples sections ─── */
      .shooting-tips__examples-section {
        margin-bottom: 44px;
      }
  
      .shooting-tips__examples-section--bad {
        background-color: #E5E9EC;
        position: relative;
        padding: 35px;
      }
  
      .shooting-tips__examples-header {
        display: flex;
        align-items: center;
        gap: 10px;
        margin-bottom: 18px;
        padding: 0;
        background: transparent !important;
        border-radius: 0;
      }
  
      .examples-badge {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        border-radius: 50%;
        font-size: 3rem;
        font-weight: 900;
        flex-shrink: 0;
        background: transparent !important;
      }
  
      .examples-badge--good {
        border-color: #ed9a7a;
        color: #ed9a7a;
      }
  
      .examples-badge--bad {
        border: none;
        color: #ed9a7a;
        font-size: 3rem;
      }
  
      .shooting-tips__examples-label {
        font-size: 2rem;
        font-weight: 800;
        color: #3d2b1f;
      }
  
      .example-cards {
        display: flex;
        gap: 40px;
        background: transparent;
        border-radius: 0;
        padding: 12px 20px 24px;
        justify-content: center;
        align-items: center;
      }
  
      .example-cards--bad {
        border-radius: 10px;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 30px 20px;
        justify-content: stretch;
        padding-left: 230px;
        padding-right: 0;
      }
  
      .example-card {
        position: relative;
        background: transparent;
        border-radius: 0;
        overflow: visible;
        box-shadow: none;
        padding-bottom: 0;
        text-align: center;
      }
  
      /* 良い例: テキストと画像を横並び */
      .example-cards:not(.example-cards--bad) .example-card {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        gap: 20px;
        text-align: left;
      }
  
      .example-cards:not(.example-cards--bad) .example-card__info {
        margin-top: 0;
        text-align: left;
      }
  
      .example-card__img {
        width: 220px;
        height: auto;
        margin: 0 auto;
        background: radial-gradient(circle at center, #d8ead0 0%, #d8ead0 58%, transparent 58%);
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
      }
  
      .example-card__img--bad-tilt {
        background: transparent;
      }
  
      .example-card__img--bad-dark {
        background: transparent;
      }
  
      .example-cards--bad .example-card__img {
        width: 230px;
        height: 253px;
        background: transparent;
      }
  
      .example-card__info {
        font-size: 1.375rem;
        color: #592202;
        line-height: 1.2;
        margin-top: 6px;
        text-align: center;
        font-weight: bold;
      }
  
      .example-card__info-line {
        display: block;
      }
  
      /* Bad notes */
      .shooting-tips__bad-notes {
        list-style: none;
        margin-top: 0;
        padding: 0 28px 24px;
        border-radius: 0 0 10px 10px;
        position: absolute;
        bottom: 0;
        transform: translateY(-20px);
      }
  
      .shooting-tips__bad-notes li {
        font-size: 1.5rem;
        color: #592202;
        line-height: 1.5;
        padding-left: 25px;
        position: relative;
        font-weight: bold;
      }
  
      .shooting-tips__bad-notes li::before {
        content: '※';
        position: absolute;
        left: 0;
        color: #592202;
        font-weight: 700;
      }
  
      /* ── Body text ─── */
      .shooting-tips__body-text {
        font-size: 1.25rem;
        color: #592202;
        line-height: 1;
        margin: 40px 0 36px;
        padding: 0;
        background: transparent;
        border-radius: 0;
        border: none;
        font-weight: bold;
      }
  
      .shooting-tips__note-list {
        list-style: none;
        margin: 0;
        padding: 0;
      }
  
      .shooting-tips__cta-lead {
        text-align: center;
        font-size: 1.5rem;
        color: #592202;
        margin-bottom: 18px;
        font-weight: bold;
      }
  
      .example-card_airsp {
        display: none;
      }
  
      /* ================================================================
         RESPONSIVE — SP (375px基準、max-width: 768px)
         ================================================================ */
      @media (max-width: 425px) {
        .prize-card {
          box-shadow: 2px 2px 0 0 #fff, 2px 2px 0 1.5px #fff;
        }
        .prize-card__badge-num span {
          letter-spacing: 0;
        }
         }
      @media (max-width: 768px) {
        .u-only-pc {
          display: none;
        }
  
        .u-only-sp {
          display: block;
        }
  
        .u-br-sp {
          display: inline;
        }
  
        .hero__body,
        .renewal__inner,
        .campaign__inner,
        .products__inner,
        .shooting-tips__inner,
        .schedule,
        .faq,
        .terms__inner {
          width: 100%;
          margin-left: auto;
          margin-right: auto;
        }
  
        .renewal__deco img {
          width: clamp(12.000px, 3.333vw, 25px);
        }
  
        .hero {
          background-size: 100%;
          background-image: url(../img/fv_img_sp.png);
        }
  
        .hero__kv img {
          width: 90%;
          margin: 0 auto;
        }
  
        /* ── RENEWAL SP ─── */
        .renewal {
          padding: clamp(14.400px, 4.000vw, 30px) clamp(5.760px, 1.600vw, 12px) clamp(19.200px, 5.333vw, 40px);
        }
  
        .renewal__header {
          gap: clamp(4.800px, 1.333vw, 10px);
          margin-bottom: clamp(10.560px, 2.933vw, 22px);
        }
  
        .renewal__title {
          font-size: clamp(14px, 4.000vw, 30px);
          line-height: 1;
        }
  
        .renewal__deco span {
          width: clamp(1.440px, 0.400vw, 3px);
          height: clamp(13.440px, 3.733vw, 28px);
        }
  
        .renewal__title-row--2 {
          gap: clamp(3.840px, 1.067vw, 8px);
          margin-top: 0;
        }
  
        .renewal__bottom {
          left: 4%;
          bottom: 4%;
          width: 55%;
          max-width: 55%;
          text-align: left;
        }
  
        .renewal__copy {
          font-size: 2.8125vw;
          line-height: 1.45;
        }
  
        /* ── CAMPAIGN SP ─── */
        .campaign {
          padding: clamp(34.560px, 7.6vw, 72px) clamp(13.2px, 1.333vw, 40px) clamp(19.200px, 1.333vw, 40px);
        }
        .campaign__inner {
          width: 100%;
        }
  
        .campaign__block + .campaign__block {
          margin-top: clamp(24.960px, 6.933vw, 52px);
        }
  
        /* 賞品ラインナップ SP */
        .prize-lineup__ttl-area { margin-bottom: clamp(10.560px, 2.933vw, 22px); }
        .prize-lineup__ttl-lead {
          font-size: clamp(14px, 3.200vw, 24px);
          padding: 0 clamp(11.520px, 3.200vw, 24px);
        }
        .prize-lineup__ttl-lead::before,
        .prize-lineup__ttl-lead::after {
          width: clamp(0.960px, 0.267vw, 2px);
          height: clamp(10.560px, 2.933vw, 22px);
        }
        .prize-lineup__ttl-lead::before { left: clamp(2.880px, 0.800vw, 6px); }
        .prize-lineup__ttl-lead::after { right: clamp(2.880px, 0.800vw, 6px); }
        .prize-lineup__ttl-ja {
          font-size: clamp(17.280px, 4.800vw, 36px);
        }
  
        .prize-list {
          grid-template-columns: 1fr;
          gap: clamp(5.760px, 3.600vw, 24px);
        }
  
        .prize-card {
          padding: clamp(28.800px, 8.000vw, 60px) clamp(5.760px, 1.600vw, 12px) clamp(7.680px, 2.133vw, 16px);
          border-radius: clamp(6.720px, 1.867vw, 14px);
          overflow: visible;
        }
  
        .prize-card__tab {
          height: clamp(23.040px, 6.400vw, 48px);
          font-size: clamp(14px, 4.267vw, 32px);
          border-radius: clamp(6.720px, 1.867vw, 14px) clamp(6.720px, 1.867vw, 14px) 0 0;
        }
  
        .prize-card__badge {
          width: clamp(56.640px, 15.733vw, 118px);
          height: clamp(56.640px, 15.733vw, 118px);
          top: clamp(160.800px, 44.667vw, 335px);
          right: clamp(4.800px, 1.333vw, 10px);
        }
        .prize-card__badge-num { font-size: clamp(31.200px, 7.667vw, 65px); }
        .prize-card__badge-unit { font-size: clamp(14px, 3.200vw, 24px); margin-top: clamp(0.960px, 0.267vw, 2px); }
        .prize-card__badge--long .prize-card__badge-num { font-size: 0.875rem; }

        .prize-card--compact .prize-card__badge {
          width: clamp(68px, 19vw, 134px);
          height: clamp(68px, 19vw, 134px);
          top: clamp(20.160px, 5.600vw, 42px);
          right: clamp(5.760px, 1.600vw, 12px);
        }
        .prize-card--compact .prize-card__badge-num {
          font-size: clamp(26px, 7vw, 55px);
        }
        .prize-card--compact .prize-card__badge-unit {
          font-size: clamp(11px, 2.8vw, 20px);
        }
  
        .prize-card--large-badge .prize-card__badge {
          width: clamp(68px, 19vw, 134px);
          height: clamp(68px, 19vw, 134px);
          top: clamp(20.160px, 5.600vw, 42px);
          right: clamp(5.760px, 1.600vw, 12px);
        }

        .prize-card--large-badge .prize-card__badge-num {
          font-size: clamp(20px, 5.5vw, 44px);
        }

        .prize-card--large-badge .prize-card__badge-unit {
          font-size: clamp(11px, 2.8vw, 20px);
        }
  
        .prize-card__body {
          flex-direction: column;
          gap: clamp(4.800px, 1.333vw, 10px);
          text-align: center;
        }
  
        .prize-card__image--wide {
          width: 100%;
        }
  
        .prize-card__image--compact {
          /* えらべるPayロゴ40px確保: モバイルはカード幅いっぱいに表示 */
          width: 100%;
          height: auto;
          margin-top: clamp(14.400px, 4.000vw, 30px);
        }
  
        .prize-card--large-badge .prize-card__image--compact {
          width: 100%;
        }
  
        .prize-card__info {
          padding-top: 0;
          padding-left: clamp(9.600px, 2.667vw, 20px);
          padding-right: clamp(4.800px, 1.333vw, 10px);
          margin-top: clamp(7.200px, 2.000vw, 15px);
        }
  
        .prize-card__name { font-size: clamp(19.200px, 5vw, 40px); margin-bottom: clamp(7.200px, 2.000vw, 15px); text-align: left;}
        .prize-card--compact .prize-card__name { font-size: clamp(19.200px, 5.333vw, 40px); }
        .prize-card__desc { font-size: clamp(14px, 3.200vw, 24px); text-align: left; line-height: 1.65; }
        .prize-card__variants { font-size: clamp(14px, 3.200vw, 24px); text-align: left; }
        .prize-card__note { font-size: clamp(11px, 2.133vw, 16px); text-align: right; }
        .prize-notes__title { font-size: clamp(13px, 3.200vw, 20px); }
        .prize-notes__list { font-size: clamp(11px, 2.133vw, 16px); }
  
        .prize-card__name,
        .prize-card__desc,
        .prize-card__variants,
        .prize-card__note,
        .how-to__step-title,
        .how-to__step-desc,
        .how-to__step-note {
          overflow-wrap: anywhere;
          word-break: normal;
        }
  
        /* ステップ SP */
        .how-to__ttl { font-size: clamp(19.200px, 5.333vw, 40px); }
        
        .how-to__sub { font-size: clamp(14px, 4.267vw, 32px); }
  
        .step-list {
          gap: clamp(4.800px, 1.333vw, 10px);
          padding-left: clamp(21.120px, 5.867vw, 44px);
          margin-bottom: clamp(4.320px, 1.200vw, 9px);
        }
  
        .how-to__step-card {
          border-radius: clamp(6.720px, 1.867vw, 14px);
          padding: clamp(8.640px, 2.400vw, 18px) clamp(6.720px, 1.867vw, 14px) clamp(8.640px, 2.400vw, 18px) clamp(14.400px, 4.000vw, 30px);
          gap: clamp(4.800px, 1.333vw, 10px);
          box-shadow: none;
          overflow: visible;
        }
  
        .how-to__step-icon {
          width: clamp(38.400px, 10.667vw, 80px);
          height: auto;
        }
  
        .how-to__step-num {
          position: absolute;
          top: 50%;
          left: clamp(-46px, -6.133vw, -22.080px);
          width: clamp(16.800px, 4.667vw, 35px);
          height: clamp(39.360px, 10.933vw, 82px);
          min-width: 0;
          background: #fff;
          border: 3px solid #00C300;
          border-right: 0;
          border-radius: clamp(21.120px, 5.867vw, 44px) 0 0 clamp(21.120px, 5.867vw, 44px);
          transform: translateY(-50%);
          z-index: 1;
          padding-left: clamp(20.640px, 5.733vw, 43px);
        }
  
        .how-to__step-val {
          font-size: clamp(14px, 4.267vw, 32px);
          font-weight: 700;
          color: #00C300;
          margin-top: 0;
        }
        .how-to__step-title { font-size: clamp(14px, 3.600vw, 27px); }
        .how-to__step-desc { font-size: clamp(14px, 2.667vw, 20px); line-height: 1.2; }
        .how-to__step-note { font-size: clamp(14px, 2.400vw, 18px); line-height: 1.2;}
  
        /* ロゴ */
        .hero__logo {
          padding-top: clamp(8.640px, 2.400vw, 18px);
          width: clamp(52.800px, 14.667vw, 110px);
        }
  
        /* KV: 全幅表示 */
        .hero__kv {
          margin-top: clamp(4.800px, 1.333vw, 10px);
          width: 100%;
        }
  
  
        .hero__cta-left {
          align-items: center;
          flex: 1 1 0;
          min-width: 0;
          width: auto;
        }
  
        .hero__cta-badge {
          font-size: 14px;
          padding: clamp(1.920px, 0.533vw, 4px) clamp(6.720px, 1.867vw, 14px);
          margin-bottom: clamp(2.880px, 0.800vw, 6px);
        }
  
        .hero__cta-title {
          font-size: clamp(14px, 2.133vw, 16px);
          text-align: center;
        }
  
        .hero__cta-note {
          font-size: 14px;
          text-align: center;
          margin-top: clamp(1.920px, 0.533vw, 4px);
        }
  
        .hero__cta-qr {
          width: clamp(36.480px, 10.133vw, 76px);
          flex: 0 0 clamp(36.480px, 10.133vw, 76px);
          margin-left: auto;
        }
  
        /* ── TERMS SP ─── */
        .terms {
          padding: clamp(21.120px, 5.867vw, 44px) clamp(7.680px, 5.133vw, 40px) clamp(26.880px, 7.467vw, 56px);
        }
  
        .terms__title {
          font-size: clamp(14px, 2.667vw, 20px);
          padding: clamp(7.200px, 2.000vw, 15px) clamp(7.680px, 2.133vw, 16px);
        }
  
        .terms__content {
          padding: clamp(13.440px, 3.733vw, 28px) clamp(9.600px, 2.667vw, 20px) clamp(11.520px, 3.200vw, 24px);
        }
  
        .terms__body,
        .terms__body p,
        .terms__body li {
          overflow-wrap: anywhere;
          word-break: normal;
          font-size: clamp(14px, 2.667vw, 20px);
        }
  
        /* ── SCHEDULE & FAQ SP ─── */
        .schedule-faq {
          padding: 0 clamp(7.680px, 5.133vw, 40px) 0;
        }
  
        .schedule__title,
        .faq__title,
        .terms__tit {
          font-size: clamp(19.200px, 5.333vw, 40px);
          margin-bottom: 0;
          -webkit-text-stroke: 6px #fff;
        }
  
        .schedule {
          margin-bottom: clamp(23.040px, 6.400vw, 48px);
        }
  
        .schedule__table th {
          width: clamp(102.240px, 28.400vw, 213px);
          font-size: clamp(14px, 2.667vw, 20px);
          padding: clamp(1.440px, 0.400vw, 3px) clamp(6.720px, 1.867vw, 14px);
        }
  
        .schedule__table td {
          font-size: clamp(14px, 2.667vw, 20px);
          padding: clamp(1.440px, 0.400vw, 3px) clamp(6.720px, 1.867vw, 14px);
        }
  
        .faq__item summary {
          font-size: clamp(14px, 2.667vw, 20px);
          padding: clamp(7.200px, 2.000vw, 15px) clamp(7.680px, 2.133vw, 16px);
        }
  
        .faq__answer {
          font-size: clamp(14px, 2.667vw, 20px);
          padding: clamp(5.760px, 1.600vw, 12px) clamp(7.680px, 2.133vw, 16px) clamp(7.680px, 2.133vw, 16px);
        }
  
        .receipt-label-tag__num {
          font-size: clamp(14px, 2.667vw, 20px);
        }
  
        /* ── PRODUCTS SP ─── */
        .products {
          min-height: clamp(878.400px, 244.000vw, 1830px);
          height: auto;
          padding: clamp(80px, 22vw, 180px) clamp(5.760px, 1.600vw, 12px) clamp(80px, 22vw, 180px);
          background-size: cover;
          background-image: url(../img/products-bg_sp.png);
        }
  
        .products__inner {
          width: 100%;
        }
  
        .products__title {
          font-size: clamp(19.200px, 5.333vw, 40px);
        }
  
        .products__title-area {
          margin-bottom: clamp(14.400px, 4.000vw, 30px);
        }
  
        .products__subtitle {
          font-size: clamp(14px, 4.267vw, 32px);
        }
  
        .products__row {
          display: grid;
          grid-template-columns: repeat(2, minmax(0, 1fr));
          gap: 0 clamp(10.560px, 2.933vw, 22px);
          margin-bottom: clamp(10.560px, 2.933vw, 22px);
        }
  
        .products__row:last-of-type {
          margin-bottom: 0;
        }
  
        .product-card {
          width: 100%;
          max-width: none;
          gap: clamp(1.920px, 0.533vw, 4px);
        }
  
        .products__title-area + .products__row .product-card:nth-child(3) {
          grid-column: 1 / -1;
          justify-self: center;
          width: calc((100% - clamp(10.560px, 2.933vw, 22px)) / 2);
        }
  
        .product-card__img-wrap {
          width: clamp(129.600px, 36.000vw, 270px);
          margin: 0 auto;
          aspect-ratio: initial;
        }
  
        .products__row_down .product-card__img-wrap {
          width: clamp(88.800px, 24.667vw, 185px);
          margin: 0 auto;
        }
  
        .products__row_up .product-card .product-card__img {
          width: 100%;
          margin: 0 auto;
          display: block;
        }
  
        .product-card__name {
          font-size: clamp(14px, 3.200vw, 24px);
          line-height: 1.2;
          width: 100%;
          text-align: center;
        }
  
        /* ── SHOOTING TIPS SP ─── */
        .shooting-tips {
          padding: clamp(30.240px, 8.400vw, 63px) clamp(16.800px, 4.667vw, 35px) 0;
          margin-bottom: clamp(33.600px, 9.333vw, 70px);
        }
  
        .shooting-tips__inner {
          padding: clamp(17.280px, 4.800vw, 36px) clamp(8.640px, 2.400vw, 18px) clamp(4.800px, 1.333vw, 10px);
        }
  
        .shooting-tips__title {
          font-size: clamp(19.200px, 5.333vw, 40px);
        }
  
        .shooting-tips__lead {
          font-size: clamp(14px, 3.200vw, 24px);
          line-height: 1.2;
        }
  
        .shooting-tips__cta-lead {
          line-height: 1.2;
          font-size: clamp(14px, 2.667vw, 20px);
        }
  
        .receipt-diagram {
          gap: clamp(7.680px, 2.133vw, 16px);
        }
  
        .receipt-diagram__mock {
          width: 100%;
          max-width: clamp(134.400px, 37.333vw, 280px);
          padding: 0;
        }
  
        .receipt-diagram__labels {
          max-width: clamp(79.200px, 32.000vw, 165px);
          width: 100%;
          gap: clamp(2.400px, 0.667vw, 5px);
        }
        
        .shooting-tips__notice-title {
          position: static;
          transform: none;
          font-size: clamp(14px, 3.200vw, 24px);
        }
        .shooting-tips__receipt-note {
          font-size: clamp(14px, 3.200vw, 24px);
          line-height: 1.2;
        }
  
        .receipt-label-tag {
          font-size: clamp(14px, 2.667vw, 20px);
          padding: 0 clamp(2.880px, 0.800vw, 6px);
          gap: clamp(2.400px, 0.667vw, 5px);
          border-radius: clamp(2.400px, 0.667vw, 5px);
        }
  
        .shooting-tips__notice {
          padding: clamp(5.760px, 1.600vw, 12px) clamp(6.720px, 1.867vw, 14px);
          margin-bottom: clamp(14.400px, 4.000vw, 30px);
          border-radius: clamp(2.400px, 0.667vw, 5px);
        }
  
        .shooting-tips__notice-item {
          font-size: clamp(14px, 3.00vw, 22px);
        }
  
        .shooting-tips__examples-section {
          margin-bottom: clamp(21.120px, 5.867vw, 44px);
        }
  
        .shooting-tips__examples-header {
          gap: clamp(4.800px, 1.333vw, 10px);
          margin-bottom: clamp(8.640px, 2.400vw, 18px);
        }
  
        .examples-badge {
          width: clamp(23.040px, 6.400vw, 48px);
          height: clamp(23.040px, 6.400vw, 48px);
          font-size: clamp(23.040px, 6.400vw, 48px);
        }
  
        .examples-badge--good {
          border: clamp(1.440px, 0.400vw, 3px) solid #ed9a7a;
        }
  
        .shooting-tips__examples-label {
          font-size: clamp(14px, 4.267vw, 32px);
        }
  
        .example-cards {
          display: grid;
          grid-template-columns: repeat(2, minmax(0, 1fr));
          flex-wrap: wrap;
          padding: clamp(6.720px, 1.867vw, 14px) 0 clamp(7.680px, 2.133vw, 16px);
          gap: clamp(5.760px, 1.600vw, 12px);
        }
  
        .example-card {
          flex: none;
          min-width: 0;
        }
  
        .example-cards:not(.example-cards--bad) .example-card {
          gap: clamp(3.840px, 1.067vw, 8px);
          text-align: left;
          justify-content: center;
        }
  
        .example-card__img {
          width: clamp(62.400px, 20.333vw, 130px);
          height: auto;
          flex: 0 0 auto;
        }
  
        .example-card__info {
          font-size: clamp(11px, 2.400vw, 18px);
          line-height: 1.35;
          text-align: left;
        }
  
        .example-cards--bad {
          grid-template-columns: repeat(2, 1fr);
          gap: 4vw 2.667vw;
          padding-left: 3.529vw;
          padding-right: 3.529vw;
        }
  
        .example-cards--bad .example-card__img {
          width: 82%;
          margin: 0 auto;
          height: auto;
        }
  
        .shooting-tips__bad-notes {
          margin-top: 0;
          padding: 0 1.333vw 1.867vw;
          padding-left: 0;
        }
  
        .shooting-tips__bad-notes li,
        .shooting-tips__body-text {
          font-size: clamp(10px, 2vw, 14px);
          line-height: 1.3;
        }
        .example-card_airpc {
          display: none;
        }
        .example-card_airsp {
          display: block;
        }
        .shooting-tips__examples-section--bad {
          padding: 2.353vw;
          padding-bottom: 20vw;
          margin-bottom: 2vw;
        }
        .how-to__ttl-area {
          line-height: 1.2;
          margin-bottom: 24px;
        }
        .products__row_down .product-card {
          margin-bottom: clamp(9.600px, 2.667vw, 20px);
        }
        .shooting-tips__body-text {
          margin-top: clamp(9.600px, 2.667vw, 20px);
          margin-bottom: clamp(7.200px, 4.000vw, 15px);
        }
        .site-footer {
          padding: 20px 16px;
        }
        .faq__item {
          border-radius: 10px;
        }
        .shooting-tips__bad-notes li {
          line-height: 1.3;
          padding-left: 15px;
        }
        .terms__accordion {
          border-radius: 10px;
        }
        .faq__item summary::after {
          font-size: 1rem;
        }
        .faq__item[open] > summary::after {
          font-size: 1rem;
        }
        .terms__title::after {
          font-size: 1rem;
        }
        .terms__content p {
          font-size: clamp(14px, 2.667vw, 20px);
        }
        .terms__section-title {
          font-size: 1rem;
        }
        .site-footer__copyright {
          font-size: 3vw;
          white-space: nowrap;
        }
        .product-card__name {
            margin-top: 7px;
        }
      }
  
      @media (max-width: 520px) {
        .example-cards:not(.example-cards--bad) {
          gap: 4px;
        }
  
        .example-cards:not(.example-cards--bad) .example-card {
          gap: 4px;
        }
  
      }
  
      @media (max-width: 425px) {
        .prize-card,
        .how-to__step-card,
        .how-to__step-num,
        .terms__accordion,
        .schedule__table,
        .faq__item,
        .receipt-label-tag,
        .shooting-tips__notice {
          border-width: 2px;
        }
  
        .terms__accordion[open] > .terms__title,
        .faq__item[open] > summary {
          border-bottom-width: 2px;
        }
  
        .schedule__table th,
        .schedule__table td {
          border-bottom-width: 2px;
          border-right-width: 2px;
        }
  
        .how-to__step-num {
          border-right-width: 0;
        }
      }
  
      /* ================================================================
         LINE CTA — 768px DESIGN
         ================================================================ */
      @media (max-width: 768px) {
        .hero__body {
          max-width: none;
          padding-bottom: clamp(24.000px, 6.667vw, 50px);
        }
  
        .hero__cta {
          width: calc(100% - clamp(24px, 8.85vw, 68px));
          max-width: clamp(224.160px, 70.267vw, 467px);
          border-radius: clamp(2.400px, 0.667vw, 5px);
          justify-content: flex-start;
          gap: clamp(15.360px, 4.267vw, 32px);
          margin-top: clamp(4.800px, 1.333vw, 10px);
          margin-bottom: 0;
        }
  
        .hero__cta-left {
          flex: 1 1 auto;
          flex-direction: row;
          align-items: center;
          justify-content: flex-start;
          gap: clamp(15.360px, 4.267vw, 32px);
        }
  
        .hero__cta-badge {
          position: relative;
          flex: 0 0 clamp(76.320px, 21.200vw, 159px);
          margin: 0;
          border-radius: clamp(7.200px, 2.000vw, 15px);
          font-size: 0;
          line-height: 1.35;
          text-align: center;
          white-space: normal;
        }
  
        .hero__cta-badge::before {
          content: "1個購入から\A応募できる";
          font-size: clamp(14px, 2.667vw, 20px);
          line-height: 1.35;
          white-space: pre;
        }
  
        .hero__cta-badge::after {
          content: "";
          position: absolute;
          top: 50%;
          right: clamp(-12px, -1.600vw, -5.760px);
          width: 0;
          height: 0;
          border-top: clamp(4.800px, 1.333vw, 10px) solid transparent;
          border-bottom: clamp(4.800px, 1.333vw, 10px) solid transparent;
          border-left: clamp(6.720px, 1.867vw, 14px) solid var(--color-badge);
          transform: translateY(-50%);
        }
  
        .hero__cta-title {
          flex: 1 1 auto;
          font-size: clamp(14px, 3.200vw, 24px);
          line-height: 1.25;
          text-align: left;
          white-space: nowrap;
        }
  
        .hero__cta-note,
        .hero__cta-qr {
          display: none;
        }
        .how-to__step-card::after {
          border-width: clamp(6.240px, 1.733vw, 13px) clamp(15.840px, 4.400vw, 33px) 0 clamp(15.840px, 4.400vw, 33px);
          bottom: clamp(-13px, -1.733vw, -6.240px);
        }
  
  
      }
  
      /* ================================================================
         RESPONSIVE — TABLET / NARROW PC (769px〜1199px)
         ================================================================ */
      @media (min-width: 769px) and (max-width: 1199px) {
        .hero {
          background-size: cover;
        }
  
        .hero__logo {
          width: clamp(120px, 15vw, 180px);
        }
  
        .hero__kv {
          width: min(92vw, 980px);
        }
  
        .hero__cta {
          width: min(72vw, 680px);
          border-radius: 12px;
          padding: 18px 20px;
        }
  
        .hero__cta-badge {
          font-size: clamp(0.875rem, 1.6vw, 1.25rem);
          padding: 6px 18px;
        }
  
        .hero__cta-title {
          font-size: clamp(1.75rem, 4vw, 2.75rem);
        }
  
        .hero__cta-note {
          font-size: clamp(14px, 1.5vw, 1.125rem);
        }
  
        .hero__cta-qr {
          width: clamp(120px, 18vw, 170px);
        }
  
        .renewal,
        .campaign,
        .terms,
        .schedule-faq,
        .products,
        .shooting-tips {
          padding-left: 24px;
          padding-right: 24px;
        }
  
        .renewal__title,
        .prize-lineup__ttl-lead,
        .products__subtitle,
        .how-to__sub {
          font-size: clamp(1.5rem, 3.5vw, 3rem);
        }
  
        .renewal__bottom {
          position: static;
          margin: 24px auto 0;
          text-align: center;
        }
  
        .renewal__copy {
          font-size: clamp(1.5rem, 3.4vw, 2.25rem);
          line-height: 1.7;
        }
  
        .prize-lineup__ttl-ja,
        .how-to__ttl,
        .schedule__title,
        .faq__title,
        .products__title,
        .shooting-tips__title {
          font-size: clamp(2rem, 5vw, 4rem);
        }
  
        .prize-list {
          grid-template-columns: 1fr;
        }
  
        .prize-card {
          padding-left: 28px;
          padding-right: 28px;
        }
  
        .prize-card__body {
          gap: 28px;
        }
  
        .prize-card__image--wide,
        .prize-card__image--compact {
          width: min(52vw, 520px);
        }
  
        .prize-card__image--compact {
          /* えらべるPayロゴ40px確保: 比率維持で530x300相当に */
          width: min(530px, 100%);
          height: auto;
        }
  
        .prize-card__name,
        .prize-card--compact .prize-card__name {
          font-size: clamp(2rem, 4vw, 3rem);
        }
  
        .prize-card__badge {
          width: clamp(96px, 13vw, 144px);
          height: clamp(96px, 13vw, 144px);
        }
  
        .prize-card--compact .prize-card__badge,
        .prize-card--large-badge .prize-card__badge {
          width: clamp(110px, 16vw, 155px);
          height: clamp(110px, 16vw, 155px);
        }
  
        .prize-card__badge-num {
          font-size: clamp(3rem, 6vw, 5rem);
        }
  
        .prize-card__badge--long .prize-card__badge-num {
          font-size: clamp(2.25rem, 4.6vw, 4.25rem);
        }
  
        .prize-card__note,
        .terms__body,
        .terms__body p,
        .terms__body li {
          overflow-wrap: anywhere;
          word-break: break-word;
          max-width: 100%;
        }
  
        .how-to__step-title {
          font-size: clamp(1.5rem, 3vw, 2.5rem);
        }
  
        .how-to__step-desc,
        .terms__title,
        .terms__intro,
        .terms__section p,
        .terms__section-title,
        .terms__body li,
        .schedule__table th,
        .schedule__table td,
        .faq__item summary,
        .faq__answer,
        .shooting-tips__lead,
        .shooting-tips__receipt-note,
        .receipt-label-tag,
        .shooting-tips__notice-title,
        .shooting-tips__notice-item,
        .shooting-tips__cta-lead {
          font-size: clamp(1rem, 1.8vw, 1.5rem);
        }
  
        .terms__content {
          padding: 32px 32px 24px;
        }
  
        .schedule__table th {
          width: 32%;
        }
  
        .products {
          height: auto;
          min-height: 920px;
          background-size: cover;
        }
  
        .products__inner {
          width: 100%;
        }
  
        .products__row {
          flex-wrap: wrap;
          gap: 20px;
        }
  
        .product-card {
          flex: 0 1 calc(25% - 20px);
        }
  
        .product-card__img-wrap {
          width: min(20vw, 240px);
          height: min(20vw, 240px);
        }
  
        .shooting-tips__body {
          width: 100%;
        }
  
        .receipt-diagram {
          gap: 24px;
        }
  
        .example-cards {
          flex-wrap: wrap;
          gap: 24px;
        }
  
        .example-cards:not(.example-cards--bad) .example-card {
          flex: 1 1 300px;
        }
  
        .example-cards--bad {
          grid-template-columns: repeat(2, minmax(0, 1fr));
          padding-left: 0;
        }
  
        .example-cards--bad .example-card__img {
          width: min(26vw, 230px);
          height: min(29vw, 253px);
        }
  
        .shooting-tips__bad-notes {
          position: absolute;
          bottom: 0;
          transform: translateY(-20px);
          margin-top: 0;
          font-size: clamp(13px, 1.4vw, 17px);
          line-height: 1.4;
        }
        .shooting-tips__bad-notes li {
          font-size: inherit;
          line-height: inherit;
        }
        .shooting-tips__examples-section--bad {
          padding-bottom: clamp(130px, 14vw, 180px);
        }
      }

      /* ================================================================
         RESPONSIVE — NARROW DESKTOP (1200px〜1365px)
         ================================================================ */
      @media (min-width: 1200px) and (max-width: 1365px) {
        .shooting-tips__body {
          width: 100%;
        }
  
        .example-cards--bad {
          padding-left: 0;
        }
  
        .example-cards--bad .example-card__img {
          width: min(18vw, 230px);
          height: min(20vw, 253px);
        }
  
        .shooting-tips__bad-notes {
          position: static;
          margin-top: 0;
        }
      }
  
      /* ================================================================
         PC 最大幅キャップ (1920px超でのスケール抑制)
         ================================================================ */
      @media (min-width: 1920px) {
        .hero__logo  { width: calc(194px); padding-top: 44px; }
        .hero__kv    { width: 1454px; margin-top: 8px; }
        .hero__cta          { width: 744px; border-radius: 15px; padding: 15px 22px 15px 27px; margin-bottom: 80px; }
        .hero__cta-badge    { font-size: 1.5rem; padding: 0px 20px; margin-bottom: 0px; }
        .hero__cta-title    { font-size: 3rem; }
        .hero__cta-note     { font-size: 1.25rem; }
        .hero__cta-qr       { width: 183px; }
      }
  

