@import url('https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;500;600;700;900&display=swap');

    /* HubSpotテンプレートのベースCSSの影響を受けないための最小リセット */
    .noel, .noel *, .noel *::before, .noel *::after { box-sizing: border-box; }
    .noel { max-width: none; width: 100%; }
    .noel a { text-decoration: none; }
    .noel h1, .noel h2 { font-weight: inherit; }

    /* テーマの .container-fluid（Bootstrap）が左右に付ける15pxの余白を、このページだけ打ち消す */
    .body-container:has(.noel) { padding-left: 0; padding-right: 0; }

    /* =========================================================
       ブッシュドノエル お知らせ詳細
       Figma: おせち / ケーキ / お知らせ詳細 (82:746)
       デザイン幅 1440px
       ========================================================= */
    .noel {
      --gold: #c5950d;
      --gold-light: #e9b567;
      --gold-pale: #f1d9b3;
      --red-top: #8d1914;
      --red-bottom: #78120f;
      /* デザイン幅1440pxを基準に、1024px未満まで等倍縮小するための単位 */
      --u: min(1px, calc(100vw / 1440));
      font-family: "Zen Old Mincho", "Hiragino Mincho ProN", "Hiragino Mincho Pro", serif;
      overflow: hidden;
    }

    .noel img {
      display: block;
      max-width: none;
    }

    /* Bootstrapのp下マージンのみ打ち消す（margin-topは各クラス側で指定するため触らない） */
    .noel p {
      margin-bottom: 0;
    }

    /* 白→グレーのグラデーション文字（ラベル類） */
    .noel-gradient-txt {
      background: linear-gradient(96deg, #fff 3.27%, #999 124.43%);
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      color: transparent;
    }

    /* ---------------------------------------------------------
       共通ボタン
       --------------------------------------------------------- */
    .noel-btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: calc(28 * var(--u));
      color: #fff;
      font-size: calc(24 * var(--u));
      letter-spacing: calc(2.88 * var(--u));
      line-height: 1;
      text-decoration: none;
      transition: opacity .3s;
    }

    .noel-btn:hover {
      color: #fff;
      text-decoration: none;
      opacity: .85;
    }

    .noel-btn__arrow {
      width: calc(30 * var(--u));
      height: calc(30 * var(--u));
      flex: none;
    }

    .noel-btn--hero {
      width: calc(473 * var(--u));
      height: calc(79 * var(--u));
      border: calc(2 * var(--u)) solid #63532b;
      border-radius: calc(6 * var(--u));
      background: linear-gradient(90deg, #c5a75c 0%, #765e1e 100%);
    }

    .noel-btn--cta {
      width: calc(394 * var(--u));
      height: calc(79 * var(--u));
      border: calc(2 * var(--u)) solid var(--gold);
      border-radius: calc(4 * var(--u));
      background: linear-gradient(90deg, #d3a72a 0%, #7d5e07 100%);
    }

    /* ---------------------------------------------------------
       ヒーロー
       --------------------------------------------------------- */
    .noel-hero {
      position: relative;
      background: linear-gradient(180deg, var(--red-top) 0%, var(--red-bottom) 100%);
      overflow: hidden;
    }

    .noel-hero__stage {
      position: relative;
      width: calc(1440 * var(--u));
      height: calc(1104 * var(--u));
      margin: 0 auto;
    }

    .noel-hero__stage > * {
      position: absolute;
    }

    /* 装飾（吊り下げオーナメント） */
    .noel-deco {
      overflow: hidden;
      pointer-events: none;
    }

    .noel-deco img {
      position: absolute;
    }

    .noel-deco--right {
      left: calc(907 * var(--u));
      top: calc(23 * var(--u));
      width: calc(506 * var(--u));
      height: calc(572 * var(--u));
    }

    .noel-deco--right img {
      left: 0;
      top: -10.21%;
      width: 126.73%;
      height: 110.22%;
    }

    .noel-deco--left {
      left: calc(620 * var(--u));
      top: calc(-28 * var(--u));
      width: calc(271 * var(--u));
      height: calc(583 * var(--u));
    }

    .noel-deco--left img {
      left: -0.09%;
      top: 0;
      width: 218.5%;
      height: 100%;
    }

    /* 雪の結晶 */
    .noel-snow {
      opacity: .74;
      pointer-events: none;
    }

    .noel-snow--1 { left: calc(199 * var(--u)); top: calc(701 * var(--u)); width: calc(102 * var(--u)); height: calc(97 * var(--u)); }
    .noel-snow--2 { left: calc(1274 * var(--u)); top: calc(750 * var(--u)); width: calc(84 * var(--u)); height: calc(84 * var(--u)); }
    .noel-snow--3 { left: calc(1251 * var(--u)); top: calc(879 * var(--u)); width: calc(51 * var(--u)); height: calc(48 * var(--u)); }
    .noel-snow--4 { left: calc(131 * var(--u)); top: calc(915 * var(--u)); width: calc(88 * var(--u)); height: calc(88 * var(--u)); }
    .noel-snow--5 { left: calc(71 * var(--u)); top: calc(862 * var(--u)); width: calc(45 * var(--u)); height: calc(45 * var(--u)); }

    /* メインビジュアル（ケーキ＋数量限定バッジ） */
    .noel-hero__visual {
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
    }

    .noel-hero__visual > * { position: absolute; }

    .noel-hero__cake {
      left: calc(527 * var(--u));
      top: calc(146 * var(--u));
      width: calc(848 * var(--u));
      height: calc(483 * var(--u));
      object-fit: contain;
      object-position: bottom;
    }

    .noel-hero__title {
      left: calc(93 * var(--u));
      top: calc(166 * var(--u));
      margin: 0;
      font-size: calc(78 * var(--u));
      line-height: calc(111 * var(--u));
      letter-spacing: calc(9.36 * var(--u));
      font-weight: 600;
      white-space: nowrap;
      background: linear-gradient(90deg, var(--gold-light) 0%, var(--gold-pale) 100%);
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      color: transparent;
      filter: drop-shadow(calc(4 * var(--u)) calc(4 * var(--u)) calc(20 * var(--u)) rgba(255, 255, 255, .45));
    }

    .noel-hero__brand {
      left: calc(94 * var(--u));
      top: calc(401 * var(--u));
      display: flex;
      align-items: center;
      gap: calc(28 * var(--u));
    }

    .noel-hero__brand img {
      width: calc(296 * var(--u));
      height: calc(69 * var(--u));
      object-fit: contain;
    }

    .noel-hero__brand span,
    .noel-hero__product {
      color: #fff;
      font-size: calc(52 * var(--u));
      letter-spacing: calc(6.24 * var(--u));
      line-height: 1.2;
      font-weight: 600;
      white-space: nowrap;
    }

    .noel-hero__product {
      left: calc(92 * var(--u));
      top: calc(483 * var(--u));
    }

    .noel-hero__btn {
      left: calc(93 * var(--u));
      top: calc(582 * var(--u));
      display: flex;
      justify-content: center;
    }

    /* 数量限定バッジ（六角形） */
    .noel-badge {
      left: calc(1092 * var(--u));
      top: calc(394 * var(--u));
      width: calc(270 * var(--u));
      height: calc(271 * var(--u));
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .noel-badge__outer,
    .noel-badge__inner {
      position: absolute;
      clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
    }

    .noel-badge__outer {
      left: calc(18 * var(--u));
      top: 0;
      width: calc(234 * var(--u));
      height: calc(271 * var(--u));
      background: linear-gradient(180deg, #b18108 0%, #4e4733 100%);
    }

    .noel-badge__inner {
      left: calc(29 * var(--u));
      top: calc(13 * var(--u));
      width: calc(212 * var(--u));
      height: calc(245 * var(--u));
      background: linear-gradient(180deg, #ceb062 0%, #6b5315 100%);
    }

    .noel-badge__body {
      position: relative;
      z-index: 1;
      color: #fff;
      text-align: center;
      line-height: 1;
    }

    .noel-badge__label {
      font-size: calc(24 * var(--u));
      font-weight: 700;
      line-height: 1.8;
    }

    .noel-badge__count {
      display: block;
      margin-top: 0;
      font-size: calc(68 * var(--u));
      font-weight: 700;
      letter-spacing: calc(2.72 * var(--u));
      line-height: 1.1;
    }

    .noel-badge__count small {
      font-size: calc(32 * var(--u));
      letter-spacing: 0;
    }

    .noel-badge__note {
      display: block;
      width: calc(137 * var(--u));
      margin: calc(5 * var(--u)) auto 0;
      padding-top: calc(2 * var(--u));
      border-top: calc(2 * var(--u)) solid #fff;
      font-size: calc(18 * var(--u));
      font-weight: 600;
      line-height: 1.8;
      white-space: nowrap;
    }

    /* リード */
    .noel-hero__lead {
      left: 0;
      top: calc(798 * var(--u));
      width: 100%;
      text-align: center;
      color: var(--gold-light);
      font-size: calc(48 * var(--u));
      font-weight: 600;
      letter-spacing: calc(9.6 * var(--u));
      text-indent: calc(9.6 * var(--u));
      text-shadow: calc(4 * var(--u)) calc(4 * var(--u)) calc(4 * var(--u)) #500308;
    }

    .noel-hero__text {
      left: 0;
      top: calc(899 * var(--u));
      width: 100%;
      text-align: center;
      color: #fff;
      font-size: calc(20 * var(--u));
      font-weight: 600;
      line-height: calc(40 * var(--u));
      letter-spacing: calc(4 * var(--u));
      text-indent: calc(4 * var(--u));
    }

    /* ---------------------------------------------------------
       商品詳細セクション
       --------------------------------------------------------- */
    .noel-detail {
      position: relative;
      background:
        linear-gradient(270deg, #191717 0.13%, rgba(25, 23, 23, .1) 99.87%),
        linear-gradient(180deg, var(--red-bottom) 0%, #510308 100%);
      padding: calc(97 * var(--u)) 20px calc(146 * var(--u));
      color: #fff;
    }

    .noel-container {
      width: 100%;
      max-width: calc(866 * var(--u));
      margin: 0 auto;
    }

    /* 価格 */
    .noel-price {
      display: flex;
      align-items: flex-end;
      gap: calc(24 * var(--u));
      padding-left: calc(60 * var(--u));
    }

    .noel-price__badge {
      position: relative;
      flex: none;
      width: calc(207 * var(--u));
      height: calc(69 * var(--u));
      margin-bottom: calc(7 * var(--u));
      border-radius: calc(4 * var(--u));
      background: linear-gradient(rgba(0, 0, 0, .38), rgba(0, 0, 0, .38)), url("https://242547062.fs1.hubspotusercontent-na2.net/hubfs/242547062/cake2026/glitter-bg.jpg") top center/cover no-repeat;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .noel-price__badge::before {
      content: "";
      position: absolute;
      inset: calc(7 * var(--u)) calc(9 * var(--u));
      border: 1px solid #fff;
      border-radius: calc(4 * var(--u));
    }

    .noel-price__badge span {
      position: relative;
      font-size: calc(22 * var(--u));
      font-weight: 600;
      line-height: 1.8;
    }

    .noel-price__num {
      font-size: calc(60 * var(--u));
      font-weight: 700;
      line-height: 1.1;
      letter-spacing: calc(2.4 * var(--u));
    }

    .noel-price__yen {
      font-size: calc(36 * var(--u));
      font-weight: 600;
      line-height: 1.1;
      letter-spacing: calc(1.44 * var(--u));
      margin-bottom: calc(2 * var(--u));
    }

    .noel-price__tax {
      font-size: calc(16 * var(--u));
      font-weight: 700;
      line-height: 1.1;
      letter-spacing: calc(.88 * var(--u));
      margin-bottom: calc(8 * var(--u));
    }

    /* 商品写真 */
    .noel-photo {
      margin-top: calc(41 * var(--u));
      padding-left: calc(7 * var(--u));
    }

    .noel-photo img {
      width: calc(853 * var(--u));
      max-width: 100%;
      height: calc(490 * var(--u));
      object-fit: cover;
      object-position: bottom;
      border-radius: calc(16 * var(--u));
    }

    .noel-photo figcaption {
      margin-top: calc(20 * var(--u));
      font-size: calc(16 * var(--u));
      font-weight: 600;
      line-height: 1.8;
    }

    /* 見出し（金の罫線つき） */
    .noel-rule {
      height: calc(2 * var(--u));
      border: 0;
      margin: 0;
      opacity: 1;
      background: linear-gradient(90deg, #d3a72a 0%, #6d5616 100%);
      border-radius: calc(1 * var(--u));
    }

    .noel-heading {
      margin: 0;
      font-size: calc(40 * var(--u));
      font-weight: 700;
      line-height: 1.4;
      color: #fff;
    }

    .noel-heading em {
      font-style: normal;
      color: var(--gold);
    }

    /* 配送 */
    .noel-ship {
      margin: 0;
      padding: 0 0 0 calc(13 * var(--u));
    }

    .noel-ship__rule--top { margin-top: calc(60 * var(--u)); }

    .noel-ship .noel-heading { margin-top: calc(22 * var(--u)); padding-left: calc(8 * var(--u)); }

    .noel-ship__row {
      display: flex;
      align-items: baseline;
      gap: calc(46 * var(--u));
      padding-left: calc(118 * var(--u));
    }

    .noel-ship__row + .noel-ship__row { margin-top: calc(19 * var(--u)); }
    .noel-ship__rows { margin-top: calc(22 * var(--u)); }

    .noel-ship__label {
      position: relative;
      flex: none;
      width: calc(122 * var(--u));
      color: var(--gold);
      font-size: calc(24 * var(--u));
      font-weight: 700;
      line-height: 1.8;
    }

    .noel-ship__label::after {
      content: "";
      position: absolute;
      left: calc(5 * var(--u));
      bottom: calc(-6 * var(--u));
      width: calc(49 * var(--u));
      height: 1px;
      background: var(--gold);
    }

    .noel-ship__value {
      color: #fff;
      font-size: calc(40 * var(--u));
      font-weight: 700;
      line-height: 1.8;
      white-space: nowrap;
    }

    .noel-ship__value b {
      font-size: calc(48 * var(--u));
      font-weight: 700;
    }

    .noel-ship__rule--bottom { margin-top: calc(74 * var(--u)); }

    /* 詳細情報 */
    .noel-spec { margin-top: calc(65 * var(--u)); padding-left: calc(13 * var(--u)); }

    .noel-spec__table {
      display: flex;
      flex-wrap: wrap;
      gap: calc(20 * var(--u)) calc(10 * var(--u));
      margin-top: calc(24 * var(--u));
    }

    .noel-spec__item {
      display: flex;
      align-items: center;
      height: calc(52 * var(--u));
      border-radius: calc(2 * var(--u));
      background: #2c2c2c;
      padding-left: calc(24 * var(--u));
    }

    .noel-spec__item--s { width: calc(358 * var(--u)); }
    .noel-spec__item--m { width: calc(472 * var(--u)); }
    .noel-spec__item--l { width: calc(840 * var(--u)); }

    .noel-spec__label {
      flex: none;
      width: calc(136 * var(--u));
      font-size: calc(24 * var(--u));
      font-weight: 900;
      line-height: 1.4;
      text-align: left;
    }

    .noel-spec__value {
      color: #fff;
      font-size: calc(20 * var(--u));
      font-weight: 700;
      line-height: 1.8;
    }

    .noel-spec__value small { font-size: calc(14 * var(--u)); }

    /* 複数行になる項目（材料など）：高さを固定せず内容に合わせて伸ばす（ラベルは上下中央） */
    .noel-spec__item--multi {
      height: auto;
      min-height: calc(52 * var(--u));
      padding-top: calc(10 * var(--u));
      padding-bottom: calc(10 * var(--u));
    }

    .noel-spec__item--multi .noel-spec__value { padding-right: calc(24 * var(--u)); }

    /* お問合せ先 */
    .noel-contact {
      position: relative;
      margin-top: calc(65 * var(--u));
      margin-left: calc(-13 * var(--u));
      width: calc(866 * var(--u));
      max-width: 100%;
      min-height: calc(354 * var(--u));
      padding: calc(44 * var(--u)) calc(54 * var(--u)) calc(46 * var(--u));
      border: calc(2 * var(--u)) solid #a0a0a0;
      border-radius: calc(10 * var(--u));
      background: linear-gradient(rgba(0, 0, 0, .38), rgba(0, 0, 0, .38)), url("https://242547062.fs1.hubspotusercontent-na2.net/hubfs/242547062/cake2026/glitter-bg.jpg") top center/cover no-repeat;
      color: #fff;
    }

    .noel-contact__title {
      font-size: calc(32 * var(--u));
      font-weight: 900;
      line-height: 1.2;
    }

    .noel-contact__person {
      margin-top: calc(32 * var(--u));
      font-size: calc(24 * var(--u));
      font-weight: 700;
      line-height: 1.6;
    }

    .noel-contact__list {
      margin-top: calc(24 * var(--u));
      padding: calc(16 * var(--u)) 0;
      border-top: 1px solid #fff;
      border-bottom: 1px solid #fff;
      width: calc(530 * var(--u));
      max-width: 100%;
    }

    .noel-contact__list p {
      font-size: calc(32 * var(--u));
      font-weight: 700;
      line-height: 1.6;
      white-space: nowrap;
    }

    .noel-contact__list a {
      color: #fff;
      text-decoration: none;
    }

    .noel-contact__list a:hover { color: #fff; opacity: .8; }

    /* ---------------------------------------------------------
       下部CTA
       --------------------------------------------------------- */
    .noel-cta {
      position: relative;
      overflow: hidden;
      background: linear-gradient(90deg, #1d1d1c 6.4%, #352e1f 104.56%);
    }

    .noel-cta__stage {
      position: relative;
      width: calc(1440 * var(--u));
      height: calc(627 * var(--u));
      margin: 0 auto;
    }

    .noel-cta__stage > * { position: absolute; }

    /* 装飾：帯の高さに合わせ、幅はautoで比率を維持。文字より下のレイヤー */
    .noel-cta__sparkle {
      top: 0;
      width: auto;
      height: 100%;
      z-index: 0;
      pointer-events: none;
    }

    .noel-cta__sparkle--l { left: 0; }
    .noel-cta__sparkle--r { right: 0; transform: rotate(180deg); }

    .noel-cta__cake {
      left: calc(662 * var(--u));
      top: calc(128 * var(--u));
      width: calc(536 * var(--u));
      height: calc(305 * var(--u));
      object-fit: contain;
      object-position: bottom;
    }

    .noel-cta__script {
      left: calc(914 * var(--u));
      top: calc(323 * var(--u));
      width: calc(331 * var(--u));
      height: calc(221 * var(--u));
      object-fit: contain;
      mix-blend-mode: screen;
      pointer-events: none;
    }

    .noel-cta__copy {
      left: calc(254 * var(--u));
      top: calc(154 * var(--u));
      z-index: 1;
      color: #fff;
    }

    .noel-cta__limit {
      display: flex;
      align-items: baseline;
      gap: calc(14 * var(--u));
      font-weight: 900;
      line-height: 1.2;
      background: linear-gradient(180deg, #fff 0%, #d3a72a 100%);
      -webkit-background-clip: text;
      background-clip: text;
      -webkit-text-fill-color: transparent;
      color: transparent;
    }

    .noel-cta__limit span { font-size: calc(48 * var(--u)); }
    .noel-cta__limit strong { font-size: calc(88 * var(--u)); font-weight: 900; }

    .noel-cta__sub {
      margin-top: calc(20 * var(--u));
      font-size: calc(32 * var(--u));
      font-weight: 900;
      line-height: 1.2;
    }

    .noel-cta__btn {
      left: calc(254 * var(--u));
      top: calc(358 * var(--u));
      display: flex;
      justify-content: center;
    }

    /* ---------------------------------------------------------
       スクロール時のフェードイン
       （JS側で .noel-fade を付与し、画面に入ったら .is-visible を付ける）
       --------------------------------------------------------- */
    .noel .noel-fade {
      opacity: 0;
      transform: translateY(24px);
      transition: opacity .9s ease-out, transform .9s ease-out;
      will-change: opacity, transform;
    }

    .noel .noel-fade.is-visible {
      opacity: 1;
      transform: none;
    }

    /* 同じセクション内の要素は少しずつ時間差で */
    .noel .noel-fade[data-fade-delay="1"] { transition-delay: .12s; }
    .noel .noel-fade[data-fade-delay="2"] { transition-delay: .24s; }
    .noel .noel-fade[data-fade-delay="3"] { transition-delay: .36s; }

    /* 「視差効果を減らす」設定のユーザーにはアニメーションしない */
    @media (prefers-reduced-motion: reduce) {
      .noel .noel-fade { opacity: 1; transform: none; transition: none; }
    }

    /* ---------------------------------------------------------
       フッター（このページのみの調整）
       --------------------------------------------------------- */
    .noel-page .footer-inner { margin-top: 0; }

    .noel-tablecheck {
      display: flex;
      justify-content: flex-end;
      padding: 0 20px 20px;
      background: #fff;
    }

    .noel-tablecheck img { width: 138px; height: auto; }

    /* ---------------------------------------------------------
       タブレット／スマホ
       --------------------------------------------------------- */
    @media screen and (max-width: 1023px) {
      .noel {
        --u: 1px;
      }

      /* ヒーローを縦積みに */
      .noel-hero {
        padding: 120px 20px 60px;
      }

      /* 装飾（deco）を .noel-hero 基準で配置するため、ステージ自体は非配置に */
      .noel-hero__stage {
        position: static;
        width: 100%;
        max-width: 560px;
        height: auto;
        margin: 0 auto;
        display: flex;
        flex-direction: column;
        align-items: center;
      }

      .noel-hero__stage > * { position: static; }

      .noel img.noel-snow,
      .noel img.noel-cta__script { display: none; }

      /* 吊り下げオーナメント：SP/タブレットでも表示。
         文字の後ろ（z-index:-1）に置き、薄くして視認性を確保 */
      .noel-hero { z-index: 0; }

      .noel .noel-deco {
        position: absolute;
        top: -24px;
        width: 60%;
        height: auto;
        overflow: visible;
        opacity: .65;
        z-index: -1;
        pointer-events: none;
      }

      .noel .noel-deco--left { left: -12%; }
      .noel .noel-deco--right { left: auto; right: -18%; }

      .noel .noel-deco img {
        position: static;
        left: auto;
        top: auto;
        width: 100%;
        height: auto;
      }

      .noel-hero__title {
        order: 1;
        font-size: clamp(40px, 9vw, 64px);
        line-height: 1.4;
        letter-spacing: .12em;
        text-align: center;
      }

      .noel-hero__brand {
        order: 2;
        margin-top: 16px;
        justify-content: center;
        gap: 16px;
      }

      .noel-hero__brand img { width: clamp(180px, 42vw, 250px); height: auto; }

      .noel-hero__brand span,
      .noel-hero__product {
        font-size: clamp(24px, 6vw, 40px);
        letter-spacing: .12em;
      }

      .noel-hero__product { order: 3; margin-top: 8px; text-align: center; }

      /* ケーキ＋バッジ：バッジはケーキ右下に重ねる */
      .noel-hero__visual {
        order: 4;
        position: relative;
        left: auto;
        top: auto;
        width: 100%;
        max-width: 560px;
        height: auto;
        margin-top: 20px;
      }

      .noel-hero__cake {
        position: static;
        width: 100%;
        height: auto;
      }

      .noel-badge {
        position: absolute;
        left: auto;
        top: auto;
        right: 0;
        bottom: 0;
        width: 165px;
        height: 165px;
      }

      .noel-badge__outer { left: 11px; top: 0; width: 143px; height: 165px; }
      .noel-badge__inner { left: 18px; top: 8px; width: 130px; height: 149px; }
      .noel-badge__label { font-size: 14px; line-height: 1.6; }
      .noel-badge__count { font-size: 40px; margin-top: 0; }
      .noel-badge__count small { font-size: 18px; }
      .noel-badge__note { width: 96px; margin-top: 7px; padding-top: 7px; font-size: 13px; border-top-width: 1px; }

      .noel-hero__btn {
        order: 6;
        width: 100%;
        margin-top: 28px;
      }

      .noel-btn--hero { width: 100%; height: 68px; font-size: 20px; }
      .noel-btn__arrow { width: 24px; height: 24px; }

      .noel-hero__lead {
        order: 7;
        margin-top: 56px;
        font-size: clamp(19px, 4.7vw, 38px);
        letter-spacing: .1em;
        text-indent: .1em;
      }

      .noel-hero__text {
        order: 8;
        margin-top: 20px;
        font-size: 14px;
        line-height: 2.2;
        letter-spacing: .08em;
        text-indent: .08em;
      }

      /* デザインの改行位置はPC幅前提のため、SPでは自然に折り返す */
      .noel-hero__text br { display: none; }

      /* 詳細セクション */
      .noel-detail { padding: 60px 20px 80px; }
      .noel-container { max-width: 866px; }

      /* 価格は「販売価格」ラベルを上段、金額を下段に */
      .noel-price { display: block; padding-left: 0; }
      .noel-price__badge { display: flex; width: 160px; height: 54px; margin: 0 0 12px; }
      .noel-price__badge span { font-size: 18px; }
      .noel-price__yen { margin: 0 0 0 8px; }
      .noel-price__tax { margin: 0 0 0 6px; }
      .noel-price__num { font-size: clamp(56px, 13vw, 96px); }
      .noel-price__yen { font-size: clamp(32px, 7vw, 56px); }
      .noel-price__tax { font-size: 16px; }

      .noel-photo { padding-left: 0; margin-top: 32px; }
      .noel-photo img { width: 100%; height: auto; aspect-ratio: 853 / 490; border-radius: 12px; }
      .noel-photo figcaption { font-size: 12px; margin-top: 12px; }

      .noel-heading { font-size: 28px; }
      .noel-ship { padding-left: 0; }
      .noel-ship__rule--top { margin-top: 48px; }
      .noel-ship .noel-heading { padding-left: 0; }
      .noel-ship__row { padding-left: 0; gap: 24px; flex-wrap: wrap; }
      .noel-ship__label { width: 100px; font-size: 16px; }
      .noel-ship__label::after { left: 0; width: 40px; }
      .noel-ship__value { font-size: clamp(20px, 5vw, 34px); }
      .noel-ship__value b { font-size: clamp(24px, 6vw, 42px); }
      .noel-ship__rule--bottom { margin-top: 48px; }

      .noel-spec { padding-left: 0; margin-top: 48px; }
      .noel-spec__table { gap: 10px; margin-top: 20px; }
      .noel-spec__item,
      .noel-spec__item--s,
      .noel-spec__item--m,
      .noel-spec__item--l {
        width: 100%;
        height: auto;
        min-height: 48px;
        padding: 8px 16px;
      }
      .noel-spec__label { width: 110px; font-size: 16px; text-align: left; }
      .noel-spec__value { font-size: 15px; }

      .noel-contact {
        margin-left: 0;
        width: 100%;
        min-height: 0;
        padding: 28px 24px 32px;
        border-radius: 8px;
      }
      .noel-contact__title { font-size: 22px; }
      .noel-contact__person { font-size: 15px; margin-top: 16px; }
      .noel-contact__list { width: 100%; font-size: 18px; margin-top: 12px; }
      .noel-contact__list p { font-size: clamp(16px, 4.4vw, 24px); white-space: normal; word-break: break-all; }

      /* CTA */
      .noel-cta__stage {
        width: 100%;
        height: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 56px 20px 64px;
      }

      .noel-cta__stage > * { position: static; }

      /* 装飾は左のみ。帯の高さに合わせ、幅autoで比率を維持（はみ出しは帯でトリミング） */
      .noel-cta__sparkle {
        position: absolute;
        top: 0;
        left: 0;
        width: auto;
        height: 100%;
        z-index: 0;
        opacity: .8;
      }

      /* タブレットでは右側の装飾も表示し、左右の端にぴったり寄せる */
      .noel-cta__sparkle--r { left: auto; right: 0; }

      /* 文字・画像は装飾より上のレイヤーに（PC用のleft/topは無効化） */
      .noel-cta__copy,
      .noel-cta__cake,
      .noel-cta__btn {
        position: relative;
        left: auto;
        top: auto;
        z-index: 1;
      }

      .noel-cta__cake { order: 2; width: 100%; max-width: 560px; height: auto; margin-top: 28px; }
      .noel-cta__copy { order: 1; width: 100%; max-width: 560px; text-align: right; }
      .noel-cta__limit { justify-content: flex-end; }
      .noel-cta__limit span { font-size: 30px; }
      .noel-cta__limit strong { font-size: 56px; }
      .noel-cta__sub { font-size: 20px; margin-top: 8px; }
      .noel-cta__btn { order: 3; width: 100%; max-width: 560px; margin-top: 32px; left: auto; top: auto; }
      .noel-btn--cta { width: 100%; height: 68px; font-size: 20px; }

      .noel-tablecheck { justify-content: center; }
    }

    @media screen and (max-width: 600px) {
      .noel-hero { padding-top: 100px; }

      /* スマホでは右側の装飾（cta-sparkle）は非表示
         （.noel img { display:block } より強い詳細度が必要なため img を付ける） */
      .noel img.noel-cta__sparkle--r { display: none; }
    }
