
       .cboxPhoto {
      max-width: 100%;
    }
				 .imgLiquid img {
      visibility: hidden
    }

    .gift {
      --c-accent: #29aabf;
      --c-accent-dark: #1e8595;
      --c-accent-soft: #e4f6fa;
      --c-mark: #fff39a;
      /* マーカー（通販サイトの伝統） */
      --c-text: #1a1a1a;
      --c-sub: #555;
      --c-light: #888;
      --c-line: #cfcfcf;
      --c-line-soft: #e5e5e5;
      --c-bg-soft: #f7f5f1;
      /* 暖かみのあるオフホワイト */
      --c-bg-pale: #fafafa;
      font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
      color: var(--c-text);
      line-height: 1.85;
      font-size: 18px;
    }

    .gift * {
      box-sizing: border-box
    }

    :where(.gift h1, .gift h2, .gift h3, .gift h4, .gift h5, .gift h6) {
      margin: 0;
      padding: 0;
      border: 0;
      background: none;
      color: inherit;
      font-family: inherit;
      text-align: inherit;
      line-height: 1.5;
    }

    :where(.gift p, .gift ul, .gift ol, .gift li, .gift dl, .gift dt, .gift dd) {
      margin: 0;
      padding: 0;
      color: inherit;
      line-height: inherit;
    }

    .gift ul,
    .gift ol {
      list-style: none
    }

    .gift a {
      color: var(--c-accent);
      text-decoration: none
    }

    .gift img {
      max-width: 100%;
      display: block;
      height: auto
    }

    .gift table {
      border-collapse: collapse;
      border-spacing: 0
    }

    .gift .pc {
      display: block
    }

    .gift .sp {
      display: none
    }

    @media (max-width:767px) {
      .gift .pc {
        display: none
      }

      .gift .sp {
        display: block
      }
    }


    .gift-container {
      max-width: 990px;
      margin: 0 auto;
      padding: 0;
      box-sizing: border-box
    }

    .gift-container-narrow {
      max-width: 820px;
      margin: 0 auto;
      padding: 0;
      box-sizing: border-box
    }

    @media (max-width:1023px) {

      .gift-container,
      .gift-container-narrow {
        padding: 0 16px
      }
    }

    /* === ヒーロー === */
    .gift-hero {
      padding: 36px 0 40px;
      text-align: center
    }

    .gift-hero h1 {
      font-size: 60px;
      font-weight: 400;
      letter-spacing: .06em;
      line-height: 1.4;
      margin-bottom: 24px;
    }

    .gift-hero-mv {
      margin: 0 auto 28px
    }

    .gift-hero-lead {
      font-size: 22px;
      line-height: 1.95;
      color: var(--c-text);
      font-weight: 500;
      margin: 0 auto;
      text-align: center;
    }

    @media (max-width:767px) {
      .gift-hero {
        padding: 28px 0 32px
      }

      .gift-hero h1 {
        font-size: 36px;
        margin-bottom: 20px;
        letter-spacing: .04em
      }

      .gift-hero-lead {
        font-size: 18px;
        line-height: 1.9
      }
    }

    .gift-anchor-nav {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
      max-width: 820px;
      margin: 36px auto 0;
    }

    .gift .gift-anchor-nav a {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 10px;
      padding: 24px 20px;
      font-size: 20px;
      font-weight: 700;
      letter-spacing: .02em;
      line-height: 1.4;
      text-align: center;
      border: 2px solid var(--c-accent);
      transition: background .15s, color .15s, border-color .15s;
    }

    .gift .gift-anchor-nav .gift-anchor-nav-primary {
      background: var(--c-accent);
      color: #fff;
    }

    .gift .gift-anchor-nav .gift-anchor-nav-primary:hover {
      background: var(--c-accent-dark);
      border-color: var(--c-accent-dark);
    }

    .gift .gift-anchor-nav .gift-anchor-nav-secondary {
      background: #fff;
      color: var(--c-accent);
    }

    .gift-anchor-nav .gift-anchor-arrow {
      display: inline-block;
      font-weight: 400;
      font-size: 22px;
    }

    @media (max-width:767px) {
      .gift-anchor-nav {
        grid-template-columns: 1fr;
        gap: 10px;
        margin-top: 24px
      }

      .gift .gift-anchor-nav a {
        padding: 18px 16px;
        font-size: 16px
      }

      .gift-anchor-nav .gift-anchor-arrow {
        font-size: 18px
      }
    }

    /* === セクション見出し === */
    .gift-sec-head {
      text-align: center;
      margin-bottom: 36px
    }

    .gift-sec-head .gift-eyebrow {
      display: inline-block;
      font-size: 24px;
      color: var(--c-accent);
      font-weight: 700;
      letter-spacing: .08em;
      margin-bottom: 18px;
      padding: 0 18px;
      position: relative;
    }

    .gift-sec-head .gift-eyebrow::before,
    .gift-sec-head .gift-eyebrow::after {
      content: "";
      display: inline-block;
      width: 32px;
      height: 1.5px;
      background: var(--c-accent);
      vertical-align: middle;
      margin: 0 12px;
    }

    .gift-sec-head h2 {
      font-size: 32px;
      font-weight: 700;
      line-height: 1.5;
      letter-spacing: .04em;
      color: var(--c-text);
    }

    .gift-sec-head h2 .gift-mark {
      background: linear-gradient(transparent 60%, var(--c-mark) 60%);
      padding: 0 4px;
    }

    .gift-sec-head .gift-sec-lead {
      font-size: 22px;
      color: var(--c-text);
      margin-top: 18px;
      line-height: 1.9;
    }

    .gift-sec-head .gift-sec-period {
      font-size: 26px;
      color: var(--c-text);
      font-weight: 700;
      margin-top: 28px;
      margin-bottom: 48px;
      letter-spacing: .02em;
      line-height: 1.5;
    }

    .gift-sec-head .gift-sec-period strong {
      color: var(--c-text);
      font-weight: 700;
      margin-right: 14px;
    }

    @media (max-width:767px) {
      .gift-sec-head {
        margin-bottom: 28px
      }

      .gift-sec-head h2 {
        font-size: 24px;
        letter-spacing: .02em
      }

      .gift-sec-head .gift-eyebrow {
        font-size: 19px;
        margin-bottom: 14px
      }

      .gift-sec-head .gift-eyebrow::before,
      .gift-sec-head .gift-eyebrow::after {
        width: 22px;
        margin: 0 8px
      }

      .gift-sec-head .gift-sec-period {
        font-size: 20px;
        margin-top: 20px;
        margin-bottom: 32px
      }

      .gift-sec-head .gift-sec-period strong {
        margin-right: 10px
      }
    }

    /* === セクション === */
    .gift-section {
      padding: 64px 0;
      background: #fff
    }

    .gift-section-pale {
      padding: 64px 0;
      background: var(--c-bg-pale)
    }

    @media (max-width:767px) {

      .gift-section,
      .gift-section-pale {
        padding: 48px 0
      }
    }

    /* === 主アクション：藤崎オンラインで注文（主役） === */
    /* コンテンツ幅 990px を踏襲：ページ全体で幅を統一 */
    .gift-primary-action {
      background: #fff;
      border: 2px solid var(--c-accent);
      padding: 56px 28px 48px;
      text-align: center;
      margin: 24px auto 0;
      position: relative;
    }

    .gift-primary-action::before {
      content: "おすすめ";
      display: inline-block;
      white-space: nowrap;
      position: absolute;
      top: -20px;
      left: 50%;
      transform: translateX(-50%);
      background: var(--c-accent);
      color: #fff;
      font-size: 17px;
      font-weight: 700;
      letter-spacing: .06em;
      padding: 9px 26px;
    }

    .gift-primary-catch {
      font-size: 24px;
      color: var(--c-text);
      line-height: 1.9;
      font-weight: 500;
      margin-bottom: 64px;
    }

    .gift-primary-catch strong {
      color: var(--c-accent);
      font-weight: 700;
    }

    .gift-primary-catch .gift-mark {
      color: var(--c-accent);
      font-weight: 700;
      background: none;
      padding: 0;
    }

    /* フル幅を避け、読みやすい固定幅に（.gift-btn の width:100% より後ろで上書き） */
    .gift .gift-btn.gift-btn-primary-big {
      display: inline-block;
      width: auto;
      min-width: 380px;
      max-width: 100%;
      font-size: 24px;
      padding: 22px 48px;
    }

    /* === 補助アクション：デジタルカタログで商品を見る（大きく・明確） === */
    .gift-catalog-aux {
      position: relative;
      margin: 52px auto 0;
      padding: 48px 28px 44px;
      background: #fff;
      border: 1px solid var(--c-line);
      text-align: center;
    }

    /* ボーダーラインに被せるリボン型バッジ（主アクションと同系統の表現） */
    .gift-catalog-aux-eyebrow {
      display: inline-block;
      position: absolute;
      top: -18px;
      left: 50%;
      transform: translateX(-50%);
      background: #fff;
      color: var(--c-accent);
      font-size: 17px;
      font-weight: 700;
      letter-spacing: .06em;
      padding: 8px 26px;
      border: 1px solid var(--c-accent);
      white-space: nowrap;
    }

    /* 画像自体もクリック可能：ブロック表示＋hover でフィードバック */
    .gift-catalog-aux-visual {
      display: block;
      margin: 0 0 26px;
      transition: opacity .15s
    }

    .gift-catalog-aux-visual:hover {
      opacity: .8
    }

    .gift-catalog-aux-visual img {
      max-width: 540px;
      width: 100%;
      height: auto;
      margin: 0 auto;
      display: block;
    }

    .gift-catalog-aux-title {
      font-size: 28px;
      font-weight: 700;
      line-height: 1.5;
      margin-bottom: 16px;
      color: var(--c-text);
    }

    .gift-catalog-aux-desc {
      font-size: 20px;
      color: var(--c-text);
      line-height: 1.95;
      margin-bottom: 28px;
      text-align: center;
    }

    /* 紙面カタログへの控えめな副導線（メインアクションと差をつける） */
    .gift-catalog-aux-subact {
      margin: 18px 0 0
    }

    .gift .gift-catalog-aux-sublink {
      display: inline-block;
      color: var(--c-sub);
      font-size: 15px;
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .gift .gift-catalog-aux-sublink:hover {
      color: var(--c-accent)
    }

    @media (max-width:767px) {
      .gift-primary-action {
        padding: 44px 16px 32px;
        margin-top: 22px
      }

      .gift-primary-action::before {
        font-size: 14px;
        padding: 7px 18px;
        top: -16px
      }

      .gift-primary-catch {
        font-size: 17px;
        margin-bottom: 44px
      }

      .gift .gift-btn.gift-btn-primary-big {
        display: block;
        width: 100%;
        min-width: 0;
        font-size: 16px;
        padding: 18px 20px
      }

      .gift-catalog-aux {
        margin-top: 36px;
        padding: 36px 22px 32px
      }

      .gift-catalog-aux-eyebrow {
        font-size: 15px;
        padding: 7px 18px
      }

      .gift-catalog-aux-visual img {
        max-width: 320px
      }

      .gift-catalog-aux-title {
        font-size: 20px
      }

      .gift-catalog-aux-desc {
        font-size: 15px
      }

      .gift .gift-catalog-aux-sublink {
        font-size: 14px
      }
    }

    /* === ボタン === */
    /* `.gift a` を上書きするため、ボタン系は .gift プレフィックス＋!important なしで specificity を確保 */
    .gift .gift-btn {
      display: block;
      width: 100%;
      text-align: center;
      text-decoration: none;
      padding: 22px 24px;
      font-size: 24px;
      font-weight: 700;
      letter-spacing: .04em;
      transition: background .15s, color .15s, box-shadow .15s;
      cursor: pointer;
    }

    .gift .gift-btn-primary {
      background: var(--c-accent);
      color: #fff;
      box-shadow: 0 2px 0 var(--c-accent-dark);
    }

    .gift .gift-btn-primary:hover {
      background: var(--c-accent-dark);
      color: #fff
    }

    .gift .gift-btn-outline {
      background: #fff;
      color: var(--c-accent);
      border: 2px solid var(--c-accent);
    }

    .gift .gift-btn-arrow {
      margin-left: 6px
    }

    /* インラインボタン：単発 CTA はフル幅にせず、自然な可読幅に */
    .gift .gift-btn-inline {
      display: inline-block;
      width: auto;
      padding: 18px 40px;
      min-width: 320px;
      max-width: 100%
    }

    @media (max-width:767px) {
      .gift .gift-btn {
        font-size: 17px;
        padding: 17px 18px
      }

      .gift .gift-btn-inline {
        display: block;
        width: 100%;
        min-width: 0;
        padding: 17px 18px
      }
    }

    /* === メリット：主役2（縦積み・1つ1つ大きく訴求） + 補助3 === */
    .gift-merit-main {
      display: flex;
      flex-direction: column;
      gap: 24px;
      margin-bottom: 32px;
    }

    .gift-merit-main-card {
      background: #fff;
      border: 2px solid var(--c-accent);
      padding: 44px 56px;
      text-align: left;
      display: flex;
      flex-direction: column;
      gap: 18px;
    }

    .gift-merit-num {
      display: inline-block;
      font-size: 15px;
      color: #fff;
      background: var(--c-accent);
      font-weight: 700;
      letter-spacing: .06em;
      padding: 4px 14px;
      align-self: flex-start;
    }

    /* 「もれなく」丸バッジ（前年LP踏襲の通販表現） */
    .gift-morenaku {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 78px;
      height: 78px;
      border: 2px solid var(--c-accent);
      border-radius: 50%;
      font-size: 15px;
      font-weight: 700;
      color: var(--c-accent);
      background: #fff;
      margin-right: 14px;
      vertical-align: middle;
      letter-spacing: -.02em;
      flex-shrink: 0;
    }

    /* 圏点（ふりがな位置の強調ドット） */
    .gift-merit-main-title ruby {
      ruby-position: over;
      ruby-align: center
    }

    .gift-merit-main-title ruby rt {
      font-size: .35em;
      letter-spacing: .25em;
      color: var(--c-text);
      font-weight: 700;
      line-height: 1;
    }

    /* 赤強調（通販伝統の価格・特典強調） */
    .gift-emph-red {
      color: #c0392b;
      font-weight: 700;
    }

    .gift-merit-main-title {
      font-size: 32px;
      font-weight: 700;
      line-height: 1.5;
      color: var(--c-text);
    }

    .gift-merit-main-title .gift-big {
      font-size: 52px;
      color: var(--c-accent);
      font-weight: 700;
      letter-spacing: .02em;
      line-height: 1.2;
    }

    .gift-merit-main-title .gift-mark {
      background: linear-gradient(transparent 60%, var(--c-mark) 60%);
      padding: 0 6px;
      -webkit-box-decoration-break: clone;
      box-decoration-break: clone;
    }

    .gift-merit-main-title .gift-accent-strong {
      color: var(--c-accent);
      font-weight: 700;
    }

    .gift-merit-main-title .gift-nowrap {
      white-space: nowrap
    }

    .gift-merit-main-desc {
      font-size: 24px;
      color: var(--c-text);
      line-height: 1.8;
      font-weight: 500;
    }

    .gift-merit-main-note {
      font-size: 18px;
      color: var(--c-sub);
      line-height: 1.9;
      margin-top: 14px;
    }

    .gift-merit-main-info {
      font-size: 18px;
      color: var(--c-text);
      line-height: 1.9;
      margin-top: 14px;
      font-weight: 500;
    }

    @media (max-width:767px) {
      .gift-merit-main-note {
        font-size: 15px
      }

      .gift-merit-main-info {
        font-size: 16px
      }
    }

    @media (max-width:767px) {
      .gift-merit-main {
        gap: 16px;
        margin-bottom: 24px
      }

      .gift-merit-main-card {
        padding: 28px 22px;
        gap: 14px
      }

      .gift-merit-num {
        font-size: 15px
      }

      .gift-merit-main-title {
        font-size: 22px
      }

      .gift-merit-main-title .gift-big {
        font-size: 26px;
        letter-spacing: 0
      }

      .gift-merit-main-desc {
        font-size: 18px;
        line-height: 1.75
      }
    }

    .gift-merit-sub {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      gap: 14px;
    }

    .gift-merit-sub-card {
      background: #fff;
      border: 1px solid var(--c-line);
      padding: 22px 20px;
      text-align: left;
    }

    .gift-merit-sub-title {
      font-size: 20px;
      font-weight: 700;
      line-height: 1.5;
      margin-bottom: 10px;
      color: var(--c-text);
    }

    .gift-merit-sub-desc {
      font-size: 17px;
      color: var(--c-sub);
      line-height: 1.85;
    }

    .gift a.gift-merit-sub-link {
      display: inline-block;
      font-size: 16px;
      color: var(--c-accent);
      text-decoration: underline;
      text-underline-offset: 3px;
      margin-top: 10px;
    }

    @media (max-width:767px) {
      .gift-merit-sub {
        grid-template-columns: 1fr;
        gap: 10px
      }

      .gift-merit-sub-card {
        padding: 18px 18px
      }
    }

    /* === 中盤 CTA === */
    .gift-cta-block {
      margin-top: 40px;
      text-align: center
    }

    .gift-cta-note {
      font-size: 18px;
      color: var(--c-text);
      font-weight: 400;
      margin-top: 18px;
      letter-spacing: .02em
    }

    .gift-cta-note small {
      display: inline-block;
      margin-top: 6px;
      font-size: 13px;
      font-weight: 400;
      color: var(--c-sub);
      letter-spacing: 0
    }

    @media (max-width:767px) {
      .gift-cta-note {
        font-size: 15px;
        margin-top: 14px
      }

      .gift-cta-note small {
        font-size: 12px;
        margin-top: 4px
      }
    }

    /* === 会員登録ブロック === */
    .gift-member {
      margin-top: 48px;
      padding: 32px 24px;
      text-align: center;
      background: #fff;
      border:2px solid var(--c-accent)
    }

    .gift-member-text {
      font-size: 22px;
      color: var(--c-text);
      line-height: 1.9;
      margin-bottom: 24px;
      font-weight: 400;
    }

    .gift-member-text strong {
      color: var(--c-text);
      font-weight: 700
    }

    @media (max-width:767px) {
      .gift-member {
        padding: 24px 18px;
        margin-top: 32px
      }

      .gift-member-text {
        font-size: 18px;
        line-height: 1.8
      }
    }

    /* === 詳細条件（注釈） === */
    .gift-fineprint {
      margin-top: 28px;
      padding: 20px 22px;
      background: #fff;
      border: 1px solid var(--c-line-soft);
    }

    .gift-fineprint h3 {
      font-size: 17px;
      font-weight: 700;
      color: var(--c-text);
      margin-bottom: 10px;
      padding-bottom: 8px;
      border-bottom: 1px solid var(--c-line-soft);
    }

    .gift-fineprint ul {
      font-size: 15px;
      color: var(--c-sub);
      line-height: 1.9;
    }

    .gift-fineprint ul li {
      padding-left: 1em;
      text-indent: -1em
    }

    .gift-fineprint ul li::before {
      content: "・"
    }

    /* === ご注文方法カード（店頭・FAX/郵送 共通） === */
    .gift-order-list {
      display: flex;
      flex-direction: column;
      gap: 24px
    }

    .gift-order-card {
      background: #fff;
      border: 1px solid var(--c-line);
      padding: 28px 24px;
      text-align: left;
    }

    .gift-order-card-title {
      font-size: 28px;
      font-weight: 700;
      color: var(--c-text);
      padding-bottom: 14px;
      margin-bottom: 24px;
      border-bottom: 2px solid var(--c-accent);
    }

    .gift-order-block {
      margin-bottom: 24px
    }

    .gift-order-block:last-child {
      margin-bottom: 0
    }

    .gift-order-block h4 {
      font-size: 20px;
      font-weight: 700;
      color: var(--c-text);
      margin-bottom: 10px;
      padding-left: 12px;
      border-left: 4px solid var(--c-accent);
      line-height: 1.5;
    }

    .gift-order-block p {
      font-size: 21px;
      color: var(--c-text);
      line-height: 1.85;
      font-weight: 700;
      margin-bottom: 10px;
    }

    .gift-order-block p:last-child {
      margin-bottom: 0
    }

    .gift-order-block p.gift-order-text-normal {
      font-size: 16px;
      font-weight: 400;
      line-height: 1.85;
      color: var(--c-text);
      margin-bottom: 6px;
    }

    .gift-order-card ul.gift-notes {
      margin-top: 8px;
      font-size: 16px;
      color: var(--c-sub);
      line-height: 1.85;
    }

    .gift-order-card ul.gift-notes li {
      padding-left: 1.2em;
      text-indent: -1.2em;
      margin-bottom: 10px
    }

    .gift-order-card ul.gift-notes li:last-child {
      margin-bottom: 0
    }

    .gift-order-card ul.gift-notes li::before {
      content: "※"
    }

    .gift-order-card ul.gift-notes a {
      color: var(--c-accent);
      text-decoration: underline
    }

    .gift-order-card ul.gift-notes strong {
      color: var(--c-text);
      font-weight: 700
    }

    /* 承り期間：旧 LP と同じく "■" プレフィックス＋太字のシンプル表記。
       カラーバー＋淡色背景の callout（AI 風の付箋デザイン）はやめる。 */
    .gift-order-period-big {
      display: block;
      font-size: 20px;
      color: var(--c-text);
      font-weight: 700;
      padding: 0;
      background: none;
      border: 0;
      margin: 0 0 14px;
      line-height: 1.55;
    }

    .gift-order-period-big::before {
      content: "■ ";
      color: var(--c-accent);
      font-weight: 700;
    }

    .gift-order-table {
      width: 100%;
      font-size: 16px;
      margin: 10px 0
    }

    .gift-order-table th,
    .gift-order-table td {
      border: 1px solid var(--c-line);
      padding: 12px 14px;
      text-align: left;
      color: var(--c-text);
      line-height: 1.6;
    }

    .gift-order-table th {
      background: var(--c-bg-pale);
      font-weight: 700;
      color: var(--c-text)
    }

    .gift a.gift-order-dl {
      display: inline-block;
      font-size: 17px;
      color: var(--c-accent);
      text-decoration: underline;
      text-underline-offset: 3px;
      font-weight: 700;
      margin-top: 10px;
    }

    /* 店頭でのご注文：親カード内のサブブロック（本店 / 各店フード） */
    .gift-store-block {
      padding: 28px 0;
      border-top: 1px dashed var(--c-line)
    }

    .gift-store-block:first-of-type {
      padding-top: 0;
      border-top: none
    }

    .gift-store-block:last-of-type {
      padding-bottom: 0
    }

    .gift-store-block-title {
      font-size: 22px;
      font-weight: 700;
      color: var(--c-text);
      margin: 0 0 20px;
      padding-left: 12px;
      border-left: 4px solid var(--c-accent);
      line-height: 1.5;
    }

    @media (max-width:767px) {
      .gift-store-block {
        padding: 20px 0
      }

      .gift-store-block-title {
        font-size: 18px;
        margin-bottom: 14px
      }
    }

    /* 店頭セクションの承り期間（前半／後半フェーズ）— 冒頭の承り期間カードとトーンを揃える */
    .gift-store-phases {
      margin: 0;
      padding: 0
    }

    .gift-store-phases .gift-store-phase {
      padding: 0
    }

    .gift-store-phases .gift-store-phase+.gift-store-phase {
      margin-top: 18px;
      padding-top: 18px;
      border-top: 1px solid var(--c-line-soft);
    }

    .gift-store-phases .gift-store-phase-label {
      display: block;
      font-size: 15px;
      font-weight: 700;
      letter-spacing: .06em;
      color: var(--c-accent);
      margin-bottom: 6px;
      line-height: 1.4;
      padding: 0;
      background: none;
    }

    .gift-store-phases .gift-store-phase-label::before {
      content: "■ ";
      color: var(--c-accent);
    }

    .gift-store-phases .gift-store-phase--after .gift-store-phase-label {
      color: #888
    }

    .gift-store-phases .gift-store-phase--after .gift-store-phase-label::before {
      color: #aaa
    }

    .gift-store-phases .gift-store-phase-dates {
      display: block;
      font-size: 20px;
      font-weight: 700;
      color: var(--c-text);
      letter-spacing: .02em;
      line-height: 1.55;
    }

    .gift-store-phases .gift-store-phase-dates::before {
      content: "承り期間：";
      color: var(--c-text);
      margin-right: 4px;
    }

    .gift-store-phases .gift-store-phase--after .gift-store-phase-dates {
      color: var(--c-text)
    }

    .gift-store-phases .gift-store-phase-dates small {
      font-size: .65em;
      font-weight: 500;
      color: #555;
      margin: 0 2px;
    }

    .gift-store-phases .gift-store-phase-dates .sep {
      margin: 0 12px;
      color: var(--c-text);
      font-weight: 700;
    }

    .gift-store-phase-meta {
      display: block;
      margin-top: 8px;
      font-size: 15px;
      font-weight: 400;
      color: var(--c-text);
      line-height: 1.7;
    }

    @media (max-width:767px) {
      .gift-store-phases .gift-store-phase+.gift-store-phase {
        margin-top: 14px;
        padding-top: 14px;
      }

      .gift-store-phases .gift-store-phase-label {
        font-size: 13px
      }

      .gift-store-phases .gift-store-phase-dates {
        font-size: 17px
      }

      .gift-store-phases .gift-store-phase-dates .sep {
        margin: 0 8px
      }

      .gift-store-phase-meta {
        font-size: 13px;
        margin-top: 6px;
        line-height: 1.7
      }
    }

    @media (max-width:767px) {
      .gift-order-card {
        padding: 24px 22px
      }

      .gift-order-card-title {
        font-size: 24px
      }

      .gift-order-period-big {
        font-size: 17px
      }

      .gift-order-block h4 {
        font-size: 18px
      }

      .gift-order-block p {
        font-size: 18px
      }

      .gift-order-block p.gift-order-text-normal {
        font-size: 14px
      }

      .gift-order-table {
        font-size: 14px
      }

      .gift-order-table th,
      .gift-order-table td {
        padding: 10px 10px
      }
    }

    /* === Fカード送料特典（カタログレイアウトに揃え：チャネル別2ブロック） === */
    .gift-fcard {
      margin-top: 24px;
      padding: 26px 24px;
      background: #fff;
      border: 2px solid var(--c-accent);
    }

    .gift-fcard-title {
      font-size: 28px;
      font-weight: 700;
      color: var(--c-text);
      margin-bottom: 24px;
      padding-bottom: 14px;
      border-bottom: 2px solid var(--c-accent);
      text-align: left;
    }

    /* チャネルブロック（左：チャネルラベル、右：内容） */
    .gift-fcard-channel {
      display: grid;
      grid-template-columns: 200px 1fr;
      gap: 0;
      border: 1px solid var(--c-line-soft);
      margin-bottom: 18px;
    }

    .gift-fcard-channel:last-of-type {
      margin-bottom: 0
    }

    .gift-fcard-channel-label {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      gap: 4px;
      font-size: 22px;
      font-weight: 700;
      line-height: 1.4;
      padding: 24px 14px;
    }

    .gift-fcard-channel-label small {
      font-size: .62em;
      font-weight: 500;
      line-height: 1.4;
    }

    .gift-fcard-channel-label-store {
      background: var(--c-accent-soft);
      color: var(--c-accent-dark);
    }

    .gift-fcard-channel-label-online {
      background: var(--c-mark);
      color: var(--c-text);
    }

    .gift-fcard-channel-body {
      padding: 22px 24px;
      display: flex;
      flex-direction: column;
      gap: 14px;
    }

    /* 店頭ブロック内の F220 / F330 行 */
    .gift-fcard-rows {
      display: flex;
      flex-direction: column;
      gap: 6px;
      margin: 0
    }

    .gift-fcard-row {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 18px;
      align-items: center;
      padding: 0;
      border: 0;
    }

    .gift-fcard-row img {
      width: 96px;
      height: auto
    }

    .gift-fcard-row-text {
      color: var(--c-text);
      line-height: 1.2
    }

    .gift-fcard-row-pre {
      font-size: 14px;
      color: var(--c-text);
      font-weight: 500;
      margin-bottom: -2px;
      line-height: 1.0;
    }

    .gift-fcard-row-main {
      display: flex;
      align-items: baseline;
      gap: 10px;
      flex-wrap: wrap;
      line-height: 1.0;
      margin-top: 0;
    }

    .gift-fcard-row-mid {
      font-size: 18px;
      font-weight: 700;
      color: var(--c-text)
    }

    .gift-fcard-row-amount {
      font-size: 38px;
      font-weight: 700;
      letter-spacing: .02em
    }

    .gift-fcard-amount-red {
      color: #c0392b
    }

    .gift-fcard-amount-blue {
      color: #1f4e93
    }

    /* オンラインブロック内のメインメッセージ */
    .gift-fcard-online {
      display: flex;
      flex-direction: column;
      gap: 2px;
      margin: 0
    }

    .gift-fcard-online-pre {
      font-size: 15px;
      color: var(--c-text);
      font-weight: 500;
      line-height: 1.7;
    }

    .gift-fcard-online-pre .gift-emph {
      font-size: 1.7em;
      font-weight: 700;
      -webkit-text-emphasis-style: filled dot;
      -webkit-text-emphasis-position: over;
      text-emphasis-style: filled dot;
      text-emphasis-position: over;
    }

    .gift-fcard-online-main {
      line-height: 1.2;
    }

    .gift-fcard-online-highlight {
      display: inline;
      background: linear-gradient(transparent 40%, var(--c-mark) 40%);
      padding: 0 4px;
      line-height: 1.4;
      -webkit-box-decoration-break: clone;
      box-decoration-break: clone;
    }

    .gift-fcard-online-mid {
      font-size: 24px;
      font-weight: 700;
      color: var(--c-text)
    }

    .gift-fcard-online-mid small {
      font-size: .65em;
      font-weight: 500
    }

    .gift-fcard-online-bigger {
      font-size: 1.25em;
      font-weight: 700
    }

    .gift-fcard-online-amount {
      font-size: 30px;
      font-weight: 700;
      color: var(--c-text);
      letter-spacing: .02em;
    }

    .gift-fcard-note {
      font-size: 14px;
      color: var(--c-sub);
      line-height: 1.8;
      margin: 0
    }

    @media (max-width:767px) {
      .gift-fcard {
        padding: 22px 18px
      }

      .gift-fcard-title {
        font-size: 22px;
        margin-bottom: 18px
      }

      .gift-fcard-channel {
        grid-template-columns: 1fr
      }

      .gift-fcard-channel-label {
        font-size: 16px;
        padding: 12px 10px
      }

      .gift-fcard-channel-label-store {
        flex-direction: row;
        gap: 10px
      }

      .gift-fcard-channel-label small {
        font-size: .7em
      }

      .gift-fcard-channel-body {
        padding: 18px 14px;
        gap: 12px
      }

      .gift-fcard-row {
        grid-template-columns: auto 1fr;
        gap: 12px
      }

      .gift-fcard-row img {
        width: 72px
      }

      .gift-fcard-row-text {
        line-height: 1.5
      }

      .gift-fcard-row-pre {
        display: inline;
        font-size: 13px;
        margin: 0
      }

      .gift-fcard-row-pre::after {
        content: " "
      }

      .gift-fcard-row-main {
        display: inline;
        gap: 8px
      }

      .gift-fcard-row-mid {
        display: inline;
        font-size: 13px
      }

      .gift-fcard-row-amount {
        display: block;
        margin-top: 4px;
        font-size: 20px
      }

      .gift-fcard-online-pre {
        font-size: 13px
      }

      .gift-fcard-online-mid {
        font-size: 15px
      }

      .gift-fcard-online-amount {
        font-size: 20px;
        padding: 2px 8px
      }

      .gift-fcard-note {
        font-size: 12px
      }
    }

    /* === カタログを郵送でお取り寄せ（紙面を主役に、縦積み構成） === */
    .gift-cat-mail {
      background: #fff;
      border: 1px solid var(--c-line);
      padding: 48px 48px 52px;
      text-align: center;
      max-width: 990px;
      margin: 0 auto;
    }

    /* 画像自体もクリック可能：ブロック表示＋hover でフィードバック */
    .gift-cat-mail-visual {
      display: block;
      margin: 0 auto 32px;
      transition: opacity .15s;
      max-width: 520px;
    }

    .gift-cat-mail-visual:hover {
      opacity: .85
    }

    .gift-cat-mail-visual img {
      width: 100%;
      height: auto;
      margin: 0 auto;
    }

    .gift-cat-mail-body {
      margin-bottom: 36px
    }

    .gift-cat-mail-body p {
      font-size: 20px;
      color: var(--c-text);
      line-height: 1.95;
      max-width: 620px;
      margin: 0 auto;
    }

    /* 期限は通常色＋太字（アクセント色だと動線の優先度が高く見えてしまうため） */
    .gift-cat-mail-body .gift-cat-mail-period {
      font-size: 22px;
      color: var(--c-text);
      font-weight: 700;
      margin-top: 16px;
    }

    /* 動線の優先度としてはデジカタ > 郵送カタログ。アウトラインで主張を抑える */
    .gift .gift-cat-mail-link {
      display: inline-block;
      font-size: 24px;
      color: var(--c-accent);
      background: #fff;
      padding: 22px 52px;
      font-weight: 700;
      min-width: 380px;
      letter-spacing: .04em;
      border: 2px solid var(--c-accent);
    }

    @media (max-width:767px) {
      .gift-cat-mail {
        padding: 32px 22px 36px
      }

      .gift-cat-mail-visual {
        max-width: 320px;
        margin-bottom: 24px
      }

      .gift-cat-mail-body {
        margin-bottom: 28px
      }

      .gift-cat-mail-body p {
        font-size: 17px
      }

      .gift-cat-mail-body .gift-cat-mail-period {
        font-size: 18px;
        margin-top: 12px
      }

      .gift .gift-cat-mail-link {
        font-size: 17px;
        padding: 16px 22px;
        min-width: 0;
        width: 100%
      }
    }

    /* === モバイル用 フローティング CTA === */
    .gift-float {
      display: none
    }

    @media (max-width:767px) {
      body.gift-active {
        padding-bottom: 88px
      }

      .gift-float {
        display: block;
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 60;
        background: #fff;
        padding: 0 0 max(12px, env(safe-area-inset-bottom, 0px));
        box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.06);
      }

      .gift-float .gift-float-primary {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 52px;
        text-decoration: none;
        padding: 12px;
        font-size: 17px;
        font-weight: 700;
        letter-spacing: .02em;
        line-height: 1.3;
        background: #29aabf;
        color: #fff;
      }
    }

    /* === デスクトップ用 右下フローティング CTA === */
    .gift-fab {
      display: none
    }

    @media (min-width:768px) {
      .gift-fab {
        display: flex;
        flex-direction: column;
        gap: 10px;
        position: fixed;
        right: 76px;
        bottom: 28px;
        z-index: 60;
        background: #fff;
        padding: 16px 20px 16px;
        min-width: 300px;
        border: 1px solid var(--c-line-soft);
        box-shadow: 0 8px 28px rgba(0, 0, 0, 0.14);
      }

      .gift-fab-eyebrow {
        font-size: 13px;
        color: var(--c-sub);
        font-weight: 700;
        letter-spacing: .1em;
        text-align: center;
        margin-bottom: 4px;
      }

      .gift.gift-fab a {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 13px 20px;
        font-size: 15px;
        font-weight: 700;
        letter-spacing: .03em;
        text-decoration: none;
        line-height: 1.3;
        text-align: center;
        border: 2px solid var(--c-accent);
        transition: background .15s, color .15s, border-color .15s;
      }

      .gift.gift-fab .gift-fab-primary {
        background: var(--c-accent);
        color: #fff;
        box-shadow: 0 2px 0 var(--c-accent-dark);
      }

      .gift.gift-fab .gift-fab-primary:hover {
        background: var(--c-accent-dark);
        border-color: var(--c-accent-dark);
        color: #fff;
      }

      .gift.gift-fab .gift-fab-secondary {
        background: #fff;
        color: var(--c-accent);
      }

      .gift.gift-fab .gift-fab-secondary:hover {
        background: var(--c-accent-soft);
      }

      .gift-fab-arrow {
        font-weight: 400;
        font-size: 16px
      }
    }

    @media (min-width:768px) and (max-width:1100px) {
      .gift-fab {
        right: 68px;
        bottom: 18px;
        min-width: 260px;
        padding: 14px 16px
      }

      .gift.gift-fab a {
        padding: 11px 16px;
        font-size: 14px
      }
    }


              .gift-period {
                background: #fff;
                border: 2px solid var(--c-accent);
                margin: 24px auto 0;
                max-width: 820px;
                box-sizing: border-box;
              }

              .gift-period-summary {
                list-style: none;
                position: relative;
                display: block;
                padding: 24px 44px;
                cursor: pointer;
                font-size: 20px;
                font-weight: 700;
                color: var(--c-accent);
                letter-spacing: .02em;
                text-align: center;
                line-height: 1.4;
                transition: background .15s;
              }

              .gift-period-summary:hover {
                background: var(--c-accent-soft);
              }

              .gift-period-summary::-webkit-details-marker {
                display: none;
              }

              .gift-period-summary::marker {
                content: "";
              }

              .gift-period-summary-icon {
                position: absolute;
                right: 18px;
                top: 50%;
                width: 10px;
                height: 10px;
                margin-top: -8px;
                border-right: 2px solid var(--c-accent);
                border-bottom: 2px solid var(--c-accent);
                transform: rotate(45deg);
                transition: transform .25s ease, margin-top .25s ease;
              }

              .gift-period[open] .gift-period-summary-icon {
                margin-top: -3px;
                transform: rotate(-135deg);
              }

              .gift-period-body {
                padding: 8px 28px 28px;
                border-top: 1px solid var(--c-line-soft);
                background: #fcfcfc;
              }

              .gift-period-list {
                margin: 0;
                padding: 0;
              }

              .gift-period-row {
                display: grid;
                grid-template-columns: 200px 1fr;
                gap: 24px;
                padding: 24px 0;
                border-bottom: 1px solid var(--c-line);
                align-items: center;
              }

              .gift-period-row:last-of-type {
                border-bottom: none;
              }

              .gift-period-row dt {
                margin: 0;
                font-size: 18px;
                font-weight: 700;
                color: var(--c-text);
                letter-spacing: .04em;
              }

              .gift-period-row dd {
                margin: 0;
                font-size: 24px;
                font-weight: 700;
                color: var(--c-text);
                letter-spacing: .02em;
                line-height: 1.4;
              }

              .gift-period-row dd small {
                font-size: .65em;
                font-weight: 500;
                color: #555;
                margin: 0 2px;
              }

              .gift-period-row dd .sep {
                margin: 0 12px;
                color: var(--c-text);
                font-weight: 700;
              }

              .gift-period-row dd .gift-period-dates {
                display: block;
              }

              .gift-period-end-strong {
                color: #d05656;
              }

              .gift-period-merit {
                display: inline-block;
                margin-left: 14px;
                padding: 4px 12px;
                background: #fdecec;
                color: #c93838;
                font-size: 13px;
                font-weight: 700;
                letter-spacing: .04em;
                vertical-align: middle;
                line-height: 1.4;
              }

              .gift-period-notes {
                list-style: disc;
                margin: 14px 0 0;
                padding: 0 0 0 20px;
                font-size: 13px;
                font-weight: 400;
                color: #666;
                line-height: 1.7;
                letter-spacing: .02em;
                text-align: left;
              }

              .gift-period-notes li {
                margin: 0 0 4px;
              }

              .gift-period-notes li:last-child {
                margin-bottom: 0;
              }

              .gift-period-notes a {
                color: var(--c-accent);
                text-decoration: underline;
              }

              /* 店頭 2期間表示（全商品 → 一部商品） */
              .gift-period-phases {
                display: block;
              }

              .gift-period-phase {
                display: block;
              }

              .gift-period-phase+.gift-period-phase {
                margin-top: 14px;
                padding-top: 14px;
                border-top: 1px dotted var(--c-line);
              }

              .gift-period-phase-label {
                display: block;
                font-size: 13px;
                font-weight: 700;
                color: var(--c-accent);
                letter-spacing: .06em;
                margin-bottom: 4px;
                line-height: 1.4;
              }

              .gift-period-phase-after .gift-period-phase-label {
                color: #888;
              }

              .gift-period-phase-after .gift-period-dates {
                color: var(--c-text);
              }

              .gift-period-phase-note {
                margin: 14px 0 0;
                font-size: 13px;
                font-weight: 400;
                color: #666;
                line-height: 1.7;
                letter-spacing: .02em;
                text-align: left;
              }

              .gift-period-note {
                margin: 18px 0 0;
                font-size: 14px;
                color: var(--c-text);
                text-align: right;
              }

              @media (max-width: 767px) {
                .gift-period {
                  margin-top: 18px;
                  max-width: 100%;
                }

                .gift-period-summary {
                  padding: 18px 44px;
                  font-size: 16px;
                  letter-spacing: .02em;
                }

                .gift-period-summary-icon {
                  right: 14px;
                  width: 10px;
                  height: 10px;
                  margin-top: -7px;
                  border-top: 0;
                  border-left: 0;
                  border-right: 2px solid var(--c-accent);
                  border-bottom: 2px solid var(--c-accent);
                }

                .gift-period[open] .gift-period-summary-icon {
                  margin-top: -3px;
                }

                .gift-period-body {
                  padding: 6px 16px 18px;
                }

                .gift-period-row {
                  grid-template-columns: 1fr;
                  gap: 6px;
                  padding: 16px 0;
                }

                .gift-period-row dt {
                  font-size: 17px;
                  color: var(--c-text);
                  font-weight: 700;
                }

                .gift-period-row dd {
                  font-size: 22px;
                }

                .gift-period-merit {
                  display: block;
                  margin: 6px 0 0;
                  font-size: 11px;
                  padding: 3px 8px;
                }

                .gift-period-notes {
                  font-size: 12px;
                  padding-left: 18px;
                }

                .gift-period-note {
                  font-size: 12px;
                  text-align: left;
                }

                .gift-period-phase+.gift-period-phase {
                  margin-top: 12px;
                  padding-top: 12px;
                }


                .gift-period-phase-label {
                  font-size: 12px;
                }

                .gift-period-phase-note {
                  font-size: 12px;
                }
              }
