/* ===== blogv2.css : extracted from blog.html (inline <style> externalized) ===== */

/* --- style block 1 --- */
/* ===== イントロ2カラム（富裕層向け格調デザイン） ===== */
  html body .ff-intro{
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 2em auto 3.2em !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    color: #2b2b2b !important;
    overflow: hidden !important;
  }
  html body .ff-intro .ff-intro__inner{
    display: grid !important;
    grid-template-columns: 1.05fr 1fr !important;
    align-items: center !important;
    gap: clamp(32px, 6vw, 88px) !important;
    max-width: 1120px !important;
    margin: 0 auto !important;
    padding: 0 16px !important;
    box-sizing: border-box !important;
  }
  /* テキスト側 */
  html body .ff-intro .ff-intro__text{
    display: block !important;
    padding: 8px 0 !important;
    text-align: left !important;
  }
  html body .ff-intro .ff-intro__eyebrow{
    display: inline-block !important;
    font-family: 'Cormorant Garamond','Times New Roman',serif !important;
    font-style: italic !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: .28em !important;
    color: #b39278 !important;
    margin: 0 0 22px !important;
    padding: 0 !important;
    line-height: 1.4 !important;
    text-transform: none !important;
  }
  html body .ff-intro .ff-intro__title{
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: 'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho','游明朝','YuMincho',serif !important;
    font-size: clamp(22px, 2.6vw, 32px) !important;
    font-weight: 500 !important;
    letter-spacing: .08em !important;
    line-height: 1.7 !important;
    color: #1f1f1f !important;
    text-align: left !important;
  }
  html body .ff-intro .ff-intro__title-ja{ display: inline !important; }
  html body .ff-intro .ff-intro__title-accent{
    display: inline !important;
    color: #b39278 !important;
    font-style: normal !important;
  }
  html body .ff-intro .ff-intro__line{
    display: block !important;
    width: 48px !important;
    height: 1px !important;
    background: #b39278 !important;
    margin: 26px 0 24px !important;
    padding: 0 !important;
    border: 0 !important;
  }
  html body .ff-intro .ff-intro__lead{
    display: block !important;
    margin: 0 0 1.6em !important;
    padding: 0 !important;
    font-family: 'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho','游明朝','YuMincho',serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    letter-spacing: .08em !important;
    line-height: 2.1 !important;
    color: #3a3a3a !important;
    text-align: left !important;
    /* 日本語の文節単位で自動改行（Chromium 119+/Safari 17.4+ 対応、未対応ブラウザは既定の折り返しにフォールバック） */
    word-break: auto-phrase !important;
    overflow-wrap: anywhere !important;
  }
  /* 本文中に書かれた <br> は幅に応じた自動改行と競合するので無効化（HTML 側は触らない） */
  html body .ff-intro .ff-intro__lead br{ display: none !important; }
  html body .ff-intro .ff-intro__meta{
    display: flex !important;
    align-items: baseline !important;
    gap: 14px !important;
    margin: 0 !important;
    padding: 14px 0 0 !important;
    border-top: 1px solid #e8dfd0 !important;
  }
  html body .ff-intro .ff-intro__meta-label{
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: 'Cormorant Garamond','Times New Roman',serif !important;
    font-style: italic !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: .22em !important;
    color: #b39278 !important;
    text-transform: uppercase !important;
  }
  html body .ff-intro .ff-intro__meta-value{
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: 'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho','游明朝','YuMincho',serif !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: .08em !important;
    color: #2b2b2b !important;
  }
  /* 画像側 */
  html body .ff-intro .ff-intro__media{
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  html body .ff-intro .ff-intro__figure{
    display: block !important;
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    box-shadow:
      0 24px 48px -16px rgba(31,31,31,.35),
      0 8px 16px -4px rgba(0,0,0,.15) !important;
    /* シャドウと画像の登場タイミングを揃えるためフェード対象にする */
    transition: opacity 1.1s cubic-bezier(.2,.7,.2,1), box-shadow 1.1s cubic-bezier(.2,.7,.2,1);
  }
  html body .ff-intro .ff-intro__corner{
    position: absolute !important;
    width: 36px !important;
    height: 36px !important;
    border: 1px solid #b39278 !important;
    pointer-events: none !important;
    background: transparent !important;
    z-index: 2 !important;
  }
  html body .ff-intro .ff-intro__corner--tl{
    top: 0 !important; left: 0 !important;
    border-right: 0 !important; border-bottom: 0 !important;
  }
  html body .ff-intro .ff-intro__corner--br{
    bottom: 0 !important; right: 0 !important;
    border-left: 0 !important; border-top: 0 !important;
  }
  html body .ff-intro img.ff-intro__img,
  html body .ff-intro .ff-intro__figure img{
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    transform-origin: center center !important;
    transition: transform 1.4s cubic-bezier(.2,.7,.2,1) !important;
  }
  html body .ff-intro .ff-intro__figure:hover img.ff-intro__img,
  html body .ff-intro .ff-intro__figure:hover img{
    animation-play-state: paused !important;
  }

  /* ===== レスポンシブ ===== */
  @media (max-width: 900px){
    html body .ff-intro .ff-intro__inner{
      grid-template-columns: 1fr !important;
      /* 縦並び時は写真の box-shadow が下に伸びてタイトルに重なるため gap を広めに確保 */
      gap: 40px !important;
    }
    html body .ff-intro .ff-intro__media{ order: 1 !important; }
    html body .ff-intro .ff-intro__text{ order: 2 !important; padding: 0 !important; }
    html body .ff-intro .ff-intro__figure{
      max-width: 420px !important;
      margin: 0 auto !important;
      /* 縦並び時はシャドウを抑えめにして、下のタイトル領域へ被らないように調整 */
      box-shadow:
        0 10px 22px -14px rgba(31,31,31,.25),
        0 4px 8px -3px rgba(0,0,0,.10) !important;
    }
    html body .ff-intro img.ff-intro__img,
    html body .ff-intro .ff-intro__figure img{
      max-width: 100% !important;
      max-height: 560px !important;
      object-fit: cover !important;
      object-position: center !important;
      margin: 0 auto !important;
    }
  }
  @media (max-width: 560px){
    html body .ff-intro{ margin: 1.4em auto 2.4em !important; }
    html body .ff-intro .ff-intro__inner{
      padding: 0 !important;
      /* 縦並び時は写真下のシャドウとタイトルが重なるので余裕を持たせる */
      gap: 36px !important;
    }
    html body .ff-intro .ff-intro__text{ padding: 0 12px !important; }
    html body .ff-intro .ff-intro__eyebrow{ font-size: 12px !important; letter-spacing: .22em !important; margin-bottom: 16px !important; }
    html body .ff-intro .ff-intro__title{ font-size: 21px !important; letter-spacing: .06em !important; line-height: 1.8 !important; }
    html body .ff-intro .ff-intro__line{ margin: 18px 0 18px !important; width: 36px !important; }
    html body .ff-intro .ff-intro__lead{ font-size: 14.5px !important; line-height: 2.0 !important; }
    html body .ff-intro .ff-intro__meta{ flex-direction: column !important; align-items: flex-start !important; gap: 4px !important; padding-top: 12px !important; }
    html body .ff-intro .ff-intro__corner{ width: 24px !important; height: 24px !important; }
    html body .ff-intro .ff-intro__figure{
      max-width: 100% !important;
      padding: 0 !important;
    }
    html body .ff-intro img.ff-intro__img,
    html body .ff-intro .ff-intro__figure img{
      max-width: 100% !important;
      max-height: 420px !important;
      object-fit: cover !important;
      object-position: center !important;
    }
  }

  /* ===== 登場モーション ===== */
  html body .ff-intro.is-ready .ff-intro__eyebrow,
  html body .ff-intro.is-ready .ff-intro__title,
  html body .ff-intro.is-ready .ff-intro__line,
  html body .ff-intro.is-ready .ff-intro__lead,
  html body .ff-intro.is-ready .ff-intro__meta{
    opacity: 0;
    transform: translateY(14px);
  }
  html body .ff-intro.is-ready .ff-intro__line{ width: 0 !important; transform: none; }
  html body .ff-intro.is-ready img.ff-intro__img,
  html body .ff-intro.is-ready .ff-intro__figure img{
    opacity: 0;
    transform: scale(1.06);
    clip-path: none;
    /* 初期状態はアニメーションさせず、瞬時にセットする（ベースの transform 1.4s !important を打ち消す） */
    transition: none !important;
  }
  /* figure 自体もフェードで登場させて、画像より先にシャドウだけ見える違和感を防ぐ */
  html body .ff-intro.is-ready .ff-intro__figure{
    opacity: 0 !important;
    box-shadow: none !important;
  }
  html body .ff-intro.is-ready .ff-intro__corner{ opacity: 0; transform: scale(.6); }

  html body .ff-intro.is-in .ff-intro__eyebrow,
  html body .ff-intro.is-in .ff-intro__title,
  html body .ff-intro.is-in .ff-intro__lead,
  html body .ff-intro.is-in .ff-intro__meta{
    opacity: 1;
    transform: translateY(0);
    transition: opacity .95s cubic-bezier(.2,.7,.2,1), transform .95s cubic-bezier(.2,.7,.2,1);
  }
  html body .ff-intro.is-in .ff-intro__eyebrow{ transition-delay: .05s; }
  html body .ff-intro.is-in .ff-intro__title{ transition-delay: .10s; }
  html body .ff-intro.is-in .ff-intro__lead{ transition-delay: .50s; }
  html body .ff-intro.is-in .ff-intro__meta{ transition-delay: .70s; }
  html body .ff-intro.is-in .ff-intro__line{
    width: 48px !important;
    transition: width 1s cubic-bezier(.2,.7,.2,1) .30s;
  }
  html body .ff-intro.is-in img.ff-intro__img,
  html body .ff-intro.is-in .ff-intro__figure img{
    opacity: 1;
    transform: scale(1);
    clip-path: none;
    /* ベース側の `transition: transform ... !important` を上書きして opacity/transform を確実にアニメーションさせる */
    transition: opacity 1.1s cubic-bezier(.2,.7,.2,1) 1.20s, transform 1.6s cubic-bezier(.2,.7,.2,1) 1.20s !important;
    animation: ffKenBurns 16s ease-in-out 3.2s infinite alternate;
  }
  /* figure を画像と同タイミングでフェードイン（シャドウもここで現れる） */
  html body .ff-intro.is-in .ff-intro__figure{
    opacity: 1 !important;
    transition:
      opacity 1.1s cubic-bezier(.2,.7,.2,1) 1.20s,
      box-shadow 1.1s cubic-bezier(.2,.7,.2,1) 1.30s !important;
  }
  @keyframes ffKenBurns{
    0%   { transform: scale(1); }
    100% { transform: scale(1.07); }
  }
  html body .ff-intro.is-in .ff-intro__corner{
    opacity: 1;
    transform: scale(1);
    transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);
  }
  html body .ff-intro.is-in .ff-intro__corner--tl{ transition-delay: 1.80s; }
  html body .ff-intro.is-in .ff-intro__corner--br{ transition-delay: 1.95s; }

  /* モバイル時は「画像 → ライン → テキスト」の順で登場させる */
  @media (max-width: 900px){
    html body .ff-intro.is-in img.ff-intro__img,
    html body .ff-intro.is-in .ff-intro__figure img{
      transition: opacity 1.0s cubic-bezier(.2,.7,.2,1) 0s, transform 1.3s cubic-bezier(.2,.7,.2,1) 0s !important;
    }
    html body .ff-intro.is-in .ff-intro__figure{
      opacity: 1 !important;
      transition:
        opacity 1.0s cubic-bezier(.2,.7,.2,1) 0s,
        box-shadow 1.0s cubic-bezier(.2,.7,.2,1) .10s !important;
    }
    html body .ff-intro.is-in .ff-intro__eyebrow{ transition-delay: .85s !important; }
    html body .ff-intro.is-in .ff-intro__title{ transition-delay: .95s !important; }
    html body .ff-intro.is-in .ff-intro__line{
      width: 48px !important;
      transition: width 1s cubic-bezier(.2,.7,.2,1) 1.15s !important;
    }
    html body .ff-intro.is-in .ff-intro__lead{ transition-delay: 1.25s !important; }
    html body .ff-intro.is-in .ff-intro__meta{ transition-delay: 1.40s !important; }
    html body .ff-intro.is-in .ff-intro__corner--tl{ transition-delay: .60s !important; }
    html body .ff-intro.is-in .ff-intro__corner--br{ transition-delay: .75s !important; }
  }

  @media (max-width: 560px){
    html body .ff-intro.is-in .ff-intro__line{ width: 36px !important; }
  }
  @media (prefers-reduced-motion: reduce){
    html body .ff-intro.is-ready .ff-intro__eyebrow,
    html body .ff-intro.is-ready .ff-intro__title,
    html body .ff-intro.is-ready .ff-intro__lead,
    html body .ff-intro.is-ready .ff-intro__meta,
    html body .ff-intro.is-ready img.ff-intro__img,
    html body .ff-intro.is-ready .ff-intro__figure img,
    html body .ff-intro.is-ready .ff-intro__corner{
      opacity: 1 !important;
      transform: none !important;
      clip-path: none !important;
    }
    html body .ff-intro.is-ready .ff-intro__line{ width: 48px !important; }
    html body .ff-intro .ff-intro__figure:hover img.ff-intro__img,
    html body .ff-intro .ff-intro__figure:hover img{ transform: none !important; }
    html body .ff-intro.is-in img.ff-intro__img,
    html body .ff-intro.is-in .ff-intro__figure img{ animation: none !important; }
  }

/* --- style block 2 --- */
/* ===== イメージ×テキスト 交互2カラム（富裕層向け格調デザイン） ===== */
  html body .ff-feature{
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 3.2em auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
  }
  html body .ff-feature-container{
    counter-reset: ffFeature !important;
  }
  html body .ff-feature{
    counter-increment: ffFeature !important;
  }
  html body .ff-feature .ff-feature__inner{
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    align-items: center !important;
    gap: clamp(32px, 6vw, 88px) !important;
    max-width: 1120px !important;
    margin: 0 auto !important;
    padding: 0 16px !important;
    box-sizing: border-box !important;
  }
  html body .ff-feature .ff-feature__media{ order: 1 !important; min-width: 0 !important; max-width: 100% !important; }
  html body .ff-feature .ff-feature__text{ order: 2 !important; min-width: 0 !important; max-width: 100% !important; }
  html body .ff-feature .ff-feature__media{ grid-column: 1 !important; }
  html body .ff-feature .ff-feature__text{ grid-column: 2 !important; }
  html body .ff-feature.ff-feature--reverse .ff-feature__media{ order: 2 !important; }
  html body .ff-feature.ff-feature--reverse .ff-feature__text{ order: 1 !important; }
  html body .ff-feature.ff-feature--reverse .ff-feature__media{ grid-column: 2 !important; }
  html body .ff-feature.ff-feature--reverse .ff-feature__text{ grid-column: 1 !important; }

  /* 画像側 */
  html body .ff-feature .ff-feature__media{
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  html body .ff-feature .ff-feature__figure{
    display: block !important;
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-sizing: border-box !important;
  }
  html body .ff-feature .ff-feature__figure-inner{
    display: block !important;
    position: relative !important;
    overflow: hidden !important;
    box-shadow:
      0 22px 44px -14px rgba(31,31,31,.32),
      0 6px 14px -4px rgba(0,0,0,.14) !important;
    box-sizing: border-box !important;
  }
  html body .ff-feature .ff-feature__corner{
    position: absolute !important;
    width: 32px !important;
    height: 32px !important;
    border: 1px solid #b39278 !important;
    pointer-events: none !important;
    background: transparent !important;
    z-index: 2 !important;
  }
  html body .ff-feature .ff-feature__corner--tl{
    top: 0 !important; left: 0 !important;
    border-right: 0 !important; border-bottom: 0 !important;
  }
  html body .ff-feature .ff-feature__corner--br{
    bottom: 0 !important; right: 0 !important;
    border-left: 0 !important; border-top: 0 !important;
  }
  html body .ff-feature img.ff-feature__img,
  html body .ff-feature .ff-feature__figure img{
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    transform-origin: center center !important;
    transition: transform 1.4s cubic-bezier(.2,.7,.2,1) !important;
  }
  html body .ff-feature .ff-feature__figure:hover img.ff-feature__img,
  html body .ff-feature .ff-feature__figure:hover img{
    animation-play-state: paused !important;
  }

  /* テキスト側 */
  html body .ff-feature .ff-feature__text{
    display: block !important;
    padding: 8px 0 !important;
    text-align: left !important;
  }
  /* 番号は CSS カウンターでテキスト側に一元描画（HTML差分の影響を受けない） */
  html body .ff-feature .ff-feature__text::before{
    content: counter(ffFeature, decimal-leading-zero);
    display: block !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
    font-family: 'Cormorant Garamond','Times New Roman',serif !important;
    font-style: italic !important;
    font-size: 28px !important;
    font-weight: 500 !important;
    letter-spacing: .12em !important;
    color: #b39278 !important;
    line-height: 1 !important;
    text-align: left !important;
    max-width: 100% !important;
    opacity: 1;
    transform: translateY(0);
  }
  html body .ff-feature .ff-feature__num{
    display: none !important;
  }
  html body .ff-feature .ff-feature__line{
    display: block !important;
    width: 40px !important;
    height: 1px !important;
    background: #b39278 !important;
    margin: 0 0 22px !important;
    padding: 0 !important;
    border: 0 !important;
  }
  html body .ff-feature .ff-feature__lead{
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: 'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho','游明朝','YuMincho',serif !important;
    font-size: 17px !important;
    font-weight: 400 !important;
    letter-spacing: .08em !important;
    line-height: 2.1 !important;
    color: #2b2b2b !important;
    text-align: left !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    /* 日本語の文節単位で自動改行（Chromium 119+/Safari 17.4+）。従来の break-word はフォールバックとして overflow-wrap: anywhere が担う */
    word-break: auto-phrase !important;
  }
  /* 本文中に書かれた <br> は幅に応じた自動改行と競合するので無効化（HTML 側は触らない） */
  html body .ff-feature .ff-feature__lead br{ display: none !important; }

  /* レスポンシブ */
  @media (max-width: 768px){
    html body .ff-feature .ff-feature__inner{
      grid-template-columns: 1fr !important;
      gap: 24px !important;
    }
    html body .ff-feature .ff-feature__media,
    html body .ff-feature .ff-feature__text,
    html body .ff-feature.ff-feature--reverse .ff-feature__media,
    html body .ff-feature.ff-feature--reverse .ff-feature__text{
      grid-column: auto !important;
    }
    html body .ff-feature .ff-feature__media,
    html body .ff-feature.ff-feature--reverse .ff-feature__media{ order: 1 !important; }
    html body .ff-feature .ff-feature__text,
    html body .ff-feature.ff-feature--reverse .ff-feature__text{ order: 2 !important; padding: 0 !important; }
    html body .ff-feature .ff-feature__figure{
      max-width: 560px !important;
      margin: 0 auto !important;
    }
    html body .ff-feature img.ff-feature__img,
    html body .ff-feature .ff-feature__figure img{
      max-width: 100% !important;
      max-height: 440px !important;
      object-fit: cover !important;
      object-position: center !important;
      margin: 0 auto !important;
    }
  }
  @media (max-width: 560px){
    html body .ff-feature{ margin: 2.2em auto !important; }
    html body .ff-feature .ff-feature__inner{
      padding: 0 !important;
      gap: 32px !important;
    }
    html body .ff-feature .ff-feature__figure{
      max-width: 100% !important;
      padding: 0 !important;
    }
    html body .ff-feature .ff-feature__figure-inner{
      box-shadow:
        0 10px 20px -10px rgba(31,31,31,.22),
        0 3px 6px -2px rgba(0,0,0,.08) !important;
    }
    html body .ff-feature img.ff-feature__img,
    html body .ff-feature .ff-feature__figure img{
      max-height: 280px !important;
      object-fit: cover !important;
    }
    html body .ff-feature .ff-feature__text,
    html body .ff-feature.ff-feature--reverse .ff-feature__text{
      padding: 0 12px !important;
    }
    html body .ff-feature .ff-feature__text::before{ font-size: 22px !important; }
    html body .ff-feature .ff-feature__line{ width: 32px !important; margin-bottom: 16px !important; }
    html body .ff-feature .ff-feature__lead{ font-size: 15px !important; line-height: 2.0 !important; }
    html body .ff-feature .ff-feature__corner{ width: 22px !important; height: 22px !important; }
  }

  /* モバイル/タブレットでは横スライドを縦フェードに切替（横はみ出し防止） */
  @media (max-width: 900px){
    html body .ff-feature.is-ready .ff-feature__media,
    html body .ff-feature.ff-feature--reverse.is-ready .ff-feature__media{
      transform: translateY(24px) !important;
    }
    html body .ff-feature.is-ready .ff-feature__text,
    html body .ff-feature.ff-feature--reverse.is-ready .ff-feature__text{
      transform: translateY(24px) !important;
    }
    html body .ff-feature.is-in .ff-feature__media,
    html body .ff-feature.is-in .ff-feature__text{
      transform: translateY(0) !important;
    }
  }

  /* ===== 登場モーション ===== */
  html body .ff-feature.is-ready .ff-feature__media{ opacity: 0; transform: translateX(-36px); }
  html body .ff-feature.ff-feature--reverse.is-ready .ff-feature__media{ transform: translateX(36px); }
  html body .ff-feature.is-ready .ff-feature__text{ opacity: 0; transform: translateX(36px); }
  html body .ff-feature.ff-feature--reverse.is-ready .ff-feature__text{ transform: translateX(-36px); }

  html body .ff-feature.is-ready .ff-feature__text::before,
  html body .ff-feature.is-ready .ff-feature__lead{ opacity: 0; transform: translateY(14px); }
  html body .ff-feature.is-ready .ff-feature__line{ width: 0 !important; }
  html body .ff-feature.is-ready img.ff-feature__img,
  html body .ff-feature.is-ready .ff-feature__figure img{
    opacity: 0;
    transform: scale(1.06);
    clip-path: none;
    /* 初期状態はアニメーションさせず瞬時にセット（ベースの transform 1.4s !important を打ち消す） */
    transition: none !important;
  }
  html body .ff-feature.is-ready .ff-feature__corner{ opacity: 0; transform: scale(.6); }

  html body .ff-feature.is-in .ff-feature__media{
    opacity: 1;
    transform: translateX(0);
    transition: opacity 1s cubic-bezier(.2,.7,.2,1), transform 1.1s cubic-bezier(.2,.7,.2,1);
  }
  html body .ff-feature.is-in .ff-feature__text{
    opacity: 1;
    transform: translateX(0);
    transition: opacity 1s cubic-bezier(.2,.7,.2,1) .15s, transform 1.1s cubic-bezier(.2,.7,.2,1) .15s;
  }
  /* reverse 変種は .is-ready 側の詳細度が高いので .is-in 側も同等以上で上書き */
  html body .ff-feature.ff-feature--reverse.is-in .ff-feature__media,
  html body .ff-feature.ff-feature--reverse.is-in .ff-feature__text{
    transform: translateX(0) !important;
  }
  html body .ff-feature.is-in .ff-feature__text::before,
  html body .ff-feature.is-in .ff-feature__lead{
    opacity: 1;
    transform: translateY(0);
    transition: opacity .95s cubic-bezier(.2,.7,.2,1), transform .95s cubic-bezier(.2,.7,.2,1);
  }
  html body .ff-feature.is-in .ff-feature__text::before{ transition-delay: .20s; }
  html body .ff-feature.is-in .ff-feature__lead{ transition-delay: .48s; }
  html body .ff-feature.is-in .ff-feature__line{
    width: 40px !important;
    transition: width 1s cubic-bezier(.2,.7,.2,1) .32s;
  }
  html body .ff-feature.is-in img.ff-feature__img,
  html body .ff-feature.is-in .ff-feature__figure img{
    opacity: 1;
    transform: scale(1);
    clip-path: none;
    /* ベース側の `transition: transform ... !important` を上書きして opacity/transform を確実にアニメーションさせる */
    transition: opacity 1.1s cubic-bezier(.2,.7,.2,1) .10s, transform 1.6s cubic-bezier(.2,.7,.2,1) .10s !important;
    animation: ffKenBurns 16s ease-in-out 2s infinite alternate;
  }
  html body .ff-feature.is-in .ff-feature__corner{
    opacity: 1;
    transform: scale(1);
    transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);
  }
  html body .ff-feature.is-in .ff-feature__corner--tl{ transition-delay: .55s; }
  html body .ff-feature.is-in .ff-feature__corner--br{ transition-delay: .70s; }

  @media (max-width: 560px){
    html body .ff-feature.is-in .ff-feature__line{ width: 32px !important; }
  }

  @media (prefers-reduced-motion: reduce){
    html body .ff-feature.is-ready .ff-feature__media,
    html body .ff-feature.is-ready .ff-feature__text,
    html body .ff-feature.is-ready .ff-feature__text::before,
    html body .ff-feature.is-ready .ff-feature__lead,
    html body .ff-feature.is-ready img.ff-feature__img,
    html body .ff-feature.is-ready .ff-feature__figure img,
    html body .ff-feature.is-ready .ff-feature__corner{
      opacity: 1 !important;
      transform: none !important;
      clip-path: none !important;
    }
    html body .ff-feature.is-ready .ff-feature__line{ width: 40px !important; }
    html body .ff-feature .ff-feature__figure:hover img.ff-feature__img,
    html body .ff-feature .ff-feature__figure:hover img{ transform: none !important; }
    html body .ff-feature.is-in img.ff-feature__img,
    html body .ff-feature.is-in .ff-feature__figure img{ animation: none !important; }
  }

/* --- style block 3 --- */
.ff-points .ff-card{ position:relative; will-change:transform; transition:transform .45s cubic-bezier(.2,.7,.2,1), box-shadow .45s ease, opacity .7s ease; }
  .ff-points .ff-card:hover{ transform:translateY(-4px); box-shadow:0 14px 28px -12px rgba(234,136,143,.25); z-index:1; }
  .ff-points .ff-card:hover .ff-card-line{ width:44px !important; }
  .ff-points .ff-card:hover .ff-point-label{ letter-spacing:0.22em !important; }
  .ff-points .ff-card .ff-card-line{ transition:width .5s cubic-bezier(.2,.7,.2,1); }
  .ff-points .ff-point-label{ transition:letter-spacing .4s ease; }

  .ff-points.is-ready .ff-title{ opacity:0; transform:translateY(12px); transition:opacity .8s ease, transform .8s ease; }
  .ff-points.is-ready .ff-title-line{ width:0 !important; transition:width 1s cubic-bezier(.2,.7,.2,1) .2s; }
  .ff-points.is-ready .ff-card{ opacity:0; transform:translateY(20px); }
  .ff-points.is-ready .ff-card-line{ width:0 !important; }
  .ff-points.is-ready .ff-point-label{ opacity:0; transform:translateY(6px); transition:opacity .6s ease, transform .6s ease, letter-spacing .4s ease; }

  .ff-points.is-in .ff-title{ opacity:1; transform:none; }
  .ff-points.is-in .ff-title-line{ width:32px !important; }
  .ff-points.is-in .ff-card{ opacity:1; transform:none; }
  .ff-points.is-in .ff-card:nth-child(1){ transition-delay:.15s; }
  .ff-points.is-in .ff-card:nth-child(2){ transition-delay:.30s; }
  .ff-points.is-in .ff-card:nth-child(3){ transition-delay:.45s; }
  .ff-points.is-in .ff-card:nth-child(4){ transition-delay:.60s; }
  .ff-points.is-in .ff-card:nth-child(1) .ff-card-line{ width:20px !important; transition-delay:.55s; }
  .ff-points.is-in .ff-card:nth-child(2) .ff-card-line{ width:20px !important; transition-delay:.70s; }
  .ff-points.is-in .ff-card:nth-child(3) .ff-card-line{ width:20px !important; transition-delay:.85s; }
  .ff-points.is-in .ff-card:nth-child(4) .ff-card-line{ width:20px !important; transition-delay:1.00s; }
  .ff-points.is-in .ff-point-label{ opacity:1; transform:none; }
  .ff-points.is-in .ff-card:nth-child(1) .ff-point-label{ transition-delay:.40s; }
  .ff-points.is-in .ff-card:nth-child(2) .ff-point-label{ transition-delay:.55s; }
  .ff-points.is-in .ff-card:nth-child(3) .ff-point-label{ transition-delay:.70s; }
  .ff-points.is-in .ff-card:nth-child(4) .ff-point-label{ transition-delay:.85s; }

  @media (prefers-reduced-motion: reduce){
    .ff-points.is-ready .ff-title,
    .ff-points.is-ready .ff-card,
    .ff-points.is-ready .ff-point-label{ opacity:1 !important; transform:none !important; transition:none !important; }
    .ff-points.is-ready .ff-title-line{ width:32px !important; transition:none !important; }
    .ff-points.is-ready .ff-card-line{ width:20px !important; transition:none !important; }
  }

  /* ===== ff-points 基本レイアウト（インライン style が無くても／書き換えられても崩れない保険） ===== */
  html body .ff-points{
    font-family: 'Noto Sans JP', sans-serif !important;
    padding: 2.5rem 0 !important;
    background: #fff !important;
  }
  html body .ff-points .ff-points__head{
    text-align: center !important;
    margin-bottom: 2rem !important;
  }
  html body .ff-points .ff-title{
    font-family: 'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho','游明朝','YuMincho',serif !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    letter-spacing: 0.22em !important;
    color: #2b2b2b !important;
    margin: 0 0 18px !important;
    text-align: center !important;
    line-height: 1.6 !important;
  }
  html body .ff-points .ff-title-line{
    width: 32px !important;
    height: 2px !important;
    background: #b39278 !important;
    margin: 0 auto !important;
    display: block !important;
  }
  html body .ff-points .ff-grid{
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)) !important;
    gap: 1px !important;
    background: #ede8e3 !important;
    border: 1px solid #ede8e3 !important;
    border-radius: 4px !important;
    overflow: hidden !important;
  }
  html body .ff-points .ff-card{
    background: #fff !important;
    padding: 1.4rem 1.1rem 1.2rem !important;
  }
  html body .ff-points .ff-card > p:first-child{
    font-size: 14px !important;
    margin: 0 0 8px !important;
  }
  html body .ff-points .ff-card > p:last-child{
    font-size: 14px !important;
    margin: 0 !important;
  }

  /* ===== カード枚数に応じた等幅レイアウト（孤立カード防止） ===== */
  /* 2枚: デスクトップ 2列 */
  html body .ff-points .ff-grid:has(> .ff-card:nth-child(2):last-child){
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  /* 3枚: デスクトップ 3列 */
  html body .ff-points .ff-grid:has(> .ff-card:nth-child(3):last-child){
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  /* 4枚: デスクトップ 4列 */
  html body .ff-points .ff-grid:has(> .ff-card:nth-child(4):last-child){
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }

  /* タブレット (≤860px): 4枚 → 2+2。3枚・2枚は維持 */
  @media (max-width: 860px){
    html body .ff-points .ff-grid:has(> .ff-card:nth-child(4):last-child){
      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
  }
  /* 狭めタブレット〜モバイル (≤620px): 3枚 → 1列、2枚 → 1列（奇数孤立回避） */
  @media (max-width: 620px){
    html body .ff-points .ff-grid:has(> .ff-card:nth-child(3):last-child),
    html body .ff-points .ff-grid:has(> .ff-card:nth-child(2):last-child){
      grid-template-columns: 1fr !important;
    }
  }
  /* スマホ (≤480px): すべて 1 列 */
  @media (max-width: 480px){
    html body .ff-points .ff-grid{
      grid-template-columns: 1fr !important;
    }
  }

  /* ===== フォントを明朝に統一（格調高く） ===== */
  html body .ff-points,
  html body .ff-points .ff-card,
  html body .ff-points .ff-card > p{
    font-family: 'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho','游明朝','YuMincho',serif !important;
  }
  html body .ff-points .ff-card > p:first-child{
    font-weight: 600 !important;
    letter-spacing: .04em !important;
    color: #2b2b2b !important;
    line-height: 1.75 !important;
  }
  html body .ff-points .ff-card > p:last-child{
    font-weight: 400 !important;
    letter-spacing: .02em !important;
    color: #6b6b6b !important;
    line-height: 1.95 !important;
  }

/* --- style block 4 --- */
/* ===== 3カラムスタッフカード（レスポンシブ） ===== */
  html body .sr-card-table{
    width:100% !important;
    max-width:100% !important;
    margin: 1rem 0 1.6rem !important;
  }
  html body .sr-card-table table,
  html body .sr-card-table tbody{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-collapse:collapse !important;
    border-spacing:0 !important;
    background:transparent !important;
  }
  html body .sr-card-table tr{
    display:grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 36px !important;
    width:100% !important;
    margin: 0 0 36px !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }
  html body .sr-card-table tr:last-child{ margin-bottom:0 !important; }

  html body .sr-card-table td{
    display:block !important;
    width:auto !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:#fff !important;
    border-radius:14px;
    box-shadow:
      0 10px 24px -8px rgba(234,136,143,.28),
      0 4px 10px -2px rgba(0,0,0,.10),
      0 1px 2px rgba(0,0,0,.06);
    overflow:hidden;
    position:relative;
    transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
    cursor:pointer;
  }
  html body .sr-card-table td:hover{
    transform: translateY(-6px);
    box-shadow:
      0 24px 48px -12px rgba(234,136,143,.45),
      0 10px 20px -4px rgba(0,0,0,.18),
      0 2px 4px rgba(0,0,0,.08);
  }

  html body .sr-card-table td a{
    display:block !important;
    position:relative !important;
    overflow:hidden !important;
    line-height:0 !important;
    text-decoration:none !important;
    margin:0 !important;
    padding:0 !important;
  }
  html body .sr-card-table td img{
    display:block !important;
    width:100% !important;
    height:auto !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    transition: transform .7s ease;
  }
  html body .sr-card-table td:hover img{ transform: scale(1.04); }

  html body .sr-card-table td a::before{
    content:"";
    position:absolute;
    inset:0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 55%, rgba(0,0,0,.45));
    opacity:.55;
    transition: opacity .35s ease;
    pointer-events:none;
  }
  html body .sr-card-table td:hover a::before{ opacity:1; }

  html body .sr-card-table td a::after{
    content:"詳しく見る →";
    position:absolute;
    left:50%;
    bottom:18px;
    transform: translate(-50%, 4px);
    color:#fff;
    font-family: 'Noto Sans JP', sans-serif;
    font-size:13px;
    font-weight:600;
    letter-spacing:.12em;
    padding: 9px 20px;
    border:1px solid rgba(255,255,255,.9);
    border-radius:999px;
    background: rgba(234,136,143,0);
    transition: background .3s ease, transform .35s ease, opacity .3s ease;
    opacity:0;
    pointer-events:none;
    white-space:nowrap;
    line-height:1;
  }
  html body .sr-card-table td:hover a::after{
    opacity:1;
    transform: translate(-50%, 0);
    background: rgba(234,136,143,.9);
    border-color: rgba(234,136,143,.9);
  }

  @media (max-width: 900px){
    html body .sr-card-table tr{
      grid-template-columns: repeat(2, minmax(0,1fr)) !important;
      gap: 24px !important;
      margin-bottom: 24px !important;
    }
  }
  @media (max-width: 560px){
    html body .sr-card-table{
      overflow-x: clip !important;
      overflow-y: visible !important;
    }
    html body .sr-card-table tr{
      box-sizing: border-box !important;
      position: relative !important;
      display: flex !important;
      flex-wrap: nowrap !important;
      grid-template-columns: none !important;
      gap: 12px !important;
      width: 100% !important;
      max-width: 100% !important;
      margin: 0 0 10px !important;
      padding: 6px 35vw 12px !important;
      overflow-x: auto !important;
      overflow-y: visible !important;
      scroll-snap-type: x mandatory !important;
      -webkit-overflow-scrolling: touch;
      scrollbar-width: none;
      touch-action: pan-x !important;
      overscroll-behavior-x: contain !important;
    }
    html body .sr-card-table tr::-webkit-scrollbar{ display: none; }

    html body .sr-card-table td{
      box-sizing: border-box !important;
      flex: 0 0 38vw !important;
      min-width: 0 !important;
      max-width: 38vw !important;
      scroll-snap-align: center !important;
    }

    html body .sr-card-table td img{
      max-height: none !important;
      object-fit: fill !important;
    }

    /* カルーセルのスクロールヒント */
    html body .sr-card-table{ position: relative; }
    html body .sr-card-table::after{
      content: "← swipe →";
      display: block;
      text-align: center;
      margin-top: 8px;
      font-family: 'Cormorant Garamond', 'Times New Roman', serif;
      font-style: italic;
      font-size: 12px;
      letter-spacing: .2em;
      color: #b39278;
      opacity: .75;
      animation: srSwipeHint 2.2s ease-in-out infinite;
    }
    @keyframes srSwipeHint{
      0%, 100%{ transform: translateX(0); opacity: .5; }
      50%     { transform: translateX(6px); opacity: .9; }
    }

    /* スマホ時はホバー演出を抑制（タッチ環境ではホバーが効きにくいため） */
    html body .sr-card-table td:hover{ transform: none !important; }
    html body .sr-card-table td:hover img{ transform: none !important; }
    html body .sr-card-table td a::before{ opacity: .55 !important; }
    html body .sr-card-table td a::after{ display: none !important; }
  }

  /* ===== カードの登場モーション（3Dパースペクティブ + フェードアップ） ===== */
  html body .sr-card-table tr{
    perspective: 1200px !important;
    perspective-origin: 50% 30% !important;
  }
  html body .sr-card-table.is-ready td{
    opacity: 0;
    transform: translateY(36px) scale(.96) rotateX(7deg);
    transform-origin: 50% 90% !important;
  }
  html body .sr-card-table.is-in td{
    opacity: 1 !important;
    filter: blur(0) !important;
    transform: translateY(0) scale(1) rotateX(0) !important;
    animation: srCardEnter 1.05s cubic-bezier(.22,.72,.18,1) both;
    transform-origin: 50% 90% !important;
  }
  html body .sr-card-table.is-in tr > td:nth-child(1){ animation-delay: .10s; }
  html body .sr-card-table.is-in tr > td:nth-child(2){ animation-delay: .28s; }
  html body .sr-card-table.is-in tr > td:nth-child(3){ animation-delay: .46s; }
  @keyframes srCardEnter{
    0%   { opacity: 0; transform: translateY(36px) scale(.96) rotateX(7deg); }
    55%  { opacity: 1; }
    100% { opacity: 1; transform: translateY(0) scale(1) rotateX(0); }
  }

  /* ===== カード内 a タグのスタッキングコンテキスト ===== */
  html body .sr-card-table td a{
    isolation: isolate;
  }
  html body .sr-card-table td > a::before,
  html body .sr-card-table td > a::after{
    z-index: 3;
  }
  html body .sr-card-table td{
    position: relative !important;
  }

  /* ===== ゴールドのコーナーマーカー（ホバーで鉤型がふわっと浮かぶ） ===== */
  html body .sr-card-table td::after{
    content: "";
    position: absolute;
    inset: 10px;
    pointer-events: none;
    z-index: 2;
    opacity: 0;
    border: none;
    transition: opacity .5s cubic-bezier(.2,.7,.2,1), inset .5s cubic-bezier(.2,.7,.2,1);
    background:
      linear-gradient(to right, #f2d7b0 0, #f2d7b0 14px, transparent 14px) top left / 14px 1px no-repeat,
      linear-gradient(to bottom, #f2d7b0 0, #f2d7b0 14px, transparent 14px) top left / 1px 14px no-repeat,
      linear-gradient(to left, #f2d7b0 0, #f2d7b0 14px, transparent 14px) top right / 14px 1px no-repeat,
      linear-gradient(to bottom, #f2d7b0 0, #f2d7b0 14px, transparent 14px) top right / 1px 14px no-repeat,
      linear-gradient(to right, #f2d7b0 0, #f2d7b0 14px, transparent 14px) bottom left / 14px 1px no-repeat,
      linear-gradient(to top, #f2d7b0 0, #f2d7b0 14px, transparent 14px) bottom left / 1px 14px no-repeat,
      linear-gradient(to left, #f2d7b0 0, #f2d7b0 14px, transparent 14px) bottom right / 14px 1px no-repeat,
      linear-gradient(to top, #f2d7b0 0, #f2d7b0 14px, transparent 14px) bottom right / 1px 14px no-repeat;
  }
  html body .sr-card-table td:hover::after{
    opacity: 1;
    inset: 14px;
  }

  /* ===== ピンクの柔らかなアウターグロー ===== */
  html body .sr-card-table td:hover{
    box-shadow:
      0 28px 56px -12px rgba(234,136,143,.50),
      0 14px 28px -6px rgba(0,0,0,.18),
      0 0 0 1px rgba(242,215,176,.35),
      0 0 48px 0 rgba(234,136,143,.18) !important;
  }

  /* ===== CTA ラベルのリファイン（既存の ::after を上書き） ===== */
  html body .sr-card-table td a::after{
    font-family: 'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho','游明朝','YuMincho',serif !important;
    font-weight: 500 !important;
    letter-spacing: .18em !important;
    padding: 10px 22px !important;
    border-width: 1px !important;
  }

  /* ===== reduced-motion では追加演出を無効化 ===== */
  @media (prefers-reduced-motion: reduce){
    html body .sr-card-table.is-in td{
      animation: none !important;
    }
    html body .sr-card-table.is-ready td{
      opacity: 1 !important;
      transform: none !important;
    }
    html body .sr-card-table td::after{
      transition: none !important;
    }
  }

  /* ===== モバイルでは 3D 傾きを軽減してはみ出し防止 =====
     併せて、iOS Safari の「filter: blur + scale 後に画像が永久にボケたまま
     残留する」不具合（=スタッフ写真のピンボケ）を回避するため、
     モバイルの登場アニメーションは opacity + translateY のみに限定する。
     filter / scale / rotateX / perspective は一切使わない。 */
  @media (max-width: 900px){
    /* 親の perspective を解除（合成レイヤーによる画像ラスタライズ劣化を防ぐ） */
    html body .sr-card-table tr{
      perspective: none !important;
      perspective-origin: initial !important;
    }
    html body .sr-card-table.is-ready td{
      opacity: 0 !important;
      transform: translateY(20px) !important;
      filter: none !important;
    }
    @keyframes srCardEnterMobile{
      0%   { opacity: 0; transform: translateY(20px); }
      100% { opacity: 1; transform: translateY(0); }
    }
    html body .sr-card-table.is-in td{
      opacity: 1 !important;
      filter: none !important;
      transform: translateY(0) !important;
      animation-name: srCardEnterMobile !important;
      animation-duration: .9s !important;
      animation-timing-function: cubic-bezier(.22,.72,.18,1) !important;
      animation-fill-mode: both !important;
    }
    html body .sr-card-table.is-in tr > td:nth-child(1){ animation-delay: .12s !important; }
    html body .sr-card-table.is-in tr > td:nth-child(2){ animation-delay: .34s !important; }
    html body .sr-card-table.is-in tr > td:nth-child(3){ animation-delay: .56s !important; }
    html body .sr-card-table td:hover::after{
      inset: 10px;
    }
    /* 画像自体のシャープネスを担保（合成レイヤー化されないよう transform を掛けない） */
    html body .sr-card-table td img{
      transform: none !important;
      filter: none !important;
      image-rendering: auto;
      -webkit-backface-visibility: hidden;
              backface-visibility: hidden;
    }
  }
  /* クリック誘導の登場モーション */
  html body .sr-click-guide.is-ready{
    opacity: 0;
    transform: translateY(10px);
  }
  html body .sr-click-guide.is-in{
    animation: srGuideEnter .9s cubic-bezier(.2,.7,.2,1) both;
  }
  @keyframes srGuideEnter{
    0%   { opacity: 0; transform: translateY(10px); }
    100% { opacity: 1; transform: translateY(0); }
  }

  /* ===== スタッフ見出し（格調高めの設え） ===== */
  html body .sr-guide-heading{
    display: block !important;
    text-align: center !important;
    margin: 3.2em auto 1.8em !important;
    padding: 0 16px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  html body .sr-guide-heading .sr-guide-heading__en{
    display: block !important;
    font-family: 'Cormorant Garamond', 'Times New Roman', serif !important;
    font-style: italic !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: .28em !important;
    color: #b39278 !important;
    margin: 0 0 14px !important;
    padding: 0 !important;
    line-height: 1.4 !important;
    text-align: center !important;
  }
  html body .sr-guide-heading .sr-guide-heading__jp{
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Yu Mincho', '游明朝', 'YuMincho', serif !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    letter-spacing: .22em !important;
    color: #2b2b2b !important;
    line-height: 1.6 !important;
    text-align: center !important;
  }
  html body .sr-guide-heading .sr-guide-heading__line{
    display: block !important;
    width: 32px !important;
    height: 2px !important;
    background: #b39278 !important;
    margin: 18px auto 0 !important;
    padding: 0 !important;
    border: 0 !important;
  }
  @media (max-width: 560px){
    html body .sr-guide-heading{ margin: 2.4em auto 1.4em !important; }
    html body .sr-guide-heading .sr-guide-heading__en{ font-size: 13px !important; letter-spacing: .22em !important; }
    html body .sr-guide-heading .sr-guide-heading__jp{ font-size: 17px !important; letter-spacing: .14em !important; }
  }
  /* 見出しの登場モーション（控えめに） */
  html body .sr-guide-heading.is-ready{ opacity: 0; transform: translateY(8px); }
  html body .sr-guide-heading.is-in{ animation: srGuideHeadingEnter 1s cubic-bezier(.2,.7,.2,1) both; }
  @keyframes srGuideHeadingEnter{
    0%   { opacity: 0; transform: translateY(8px); }
    100% { opacity: 1; transform: translateY(0); }
  }

  /* ===== スタイリッシュなクリック誘導 ===== */
  html body .sr-click-guide{
    display: block !important;
    text-align: center !important;
    margin: 2.2em auto 1.8em !important;
    padding: 0 16px !important;
    font-family: 'Noto Sans JP', sans-serif !important;
    color: #3b3b3b !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  html body .sr-click-guide .sr-click-guide__jp{
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: .12em !important;
    color: #444 !important;
    line-height: 1.7 !important;
    text-align: center !important;
  }
  html body .sr-click-guide .sr-click-guide__arrow{
    display: block !important;
    margin: 14px auto 0 !important;
    padding: 0 !important;
    width: 10px !important;
    height: 10px !important;
    border-right: 1.5px solid #ea888f !important;
    border-bottom: 1.5px solid #ea888f !important;
    border-top: 0 !important;
    border-left: 0 !important;
    background: transparent !important;
    transform: rotate(45deg);
    animation: srArrowDown 1.8s ease-in-out infinite;
  }
  @keyframes srArrowDown{
    0%, 100% { transform: rotate(45deg) translate(0, 0);   opacity:.55; }
    50%      { transform: rotate(45deg) translate(4px,4px); opacity: 1;  }
  }
  @media (max-width: 560px){
    html body .sr-click-guide .sr-click-guide__jp{ font-size: 13px !important; letter-spacing: .08em !important; }
  }

  @media (prefers-reduced-motion: reduce){
    .sr-click-guide__arrow{ animation: none; opacity: .8; }
    html body .sr-card-table td,
    html body .sr-card-table td img,
    html body .sr-card-table td a::before,
    html body .sr-card-table td a::after{ transition: none !important; }
    html body .sr-card-table td:hover{ transform:none !important; }
    html body .sr-card-table td:hover img{ transform:none !important; }
    html body .sr-card-table.is-ready td,
    html body .sr-click-guide.is-ready,
    html body .sr-guide-heading.is-ready{
      opacity: 1 !important;
      transform: none !important;
    }
    html body .sr-card-table.is-in td,
    html body .sr-click-guide.is-in,
    html body .sr-guide-heading.is-in{
      animation: none !important;
    }
    html body .sr-card-table::after{ animation: none !important; opacity: .75 !important; }
  }

/* --- style block 5 --- */
/* ===== 開催概要テーブル ===== */
  html body .sr-event-info{
    position: relative !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 620px !important;
    margin: 3em auto 1.6em !important;
    padding: 2.4em 1.6em !important;
    background: linear-gradient(180deg, #fdfbf8 0%, #fbf7f2 100%) !important;
    border: 1px solid #e8ddcc !important;
    border-radius: 6px !important;
    box-shadow:
      0 1px 0 rgba(255,255,255,.9) inset,
      0 14px 40px -24px rgba(93,70,40,.18) !important;
    overflow: hidden !important;
  }
  /* 装飾：左右上の薄いゴールドのコーナー */
  html body .sr-event-info::before,
  html body .sr-event-info::after{
    content: "" !important;
    position: absolute !important;
    top: 10px !important;
    width: 22px !important;
    height: 22px !important;
    pointer-events: none !important;
    opacity: .7 !important;
  }
  html body .sr-event-info::before{
    left: 10px !important;
    border-top: 1px solid #b39278 !important;
    border-left: 1px solid #b39278 !important;
  }
  html body .sr-event-info::after{
    right: 10px !important;
    border-top: 1px solid #b39278 !important;
    border-right: 1px solid #b39278 !important;
  }

  html body .sr-event-info__head{
    text-align: center !important;
    margin: 0 0 1.6rem !important;
  }
  html body .sr-event-info__eyebrow{
    display: block !important;
    font-family: 'Cormorant Garamond','Noto Serif JP',serif !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    letter-spacing: .32em !important;
    color: #b39278 !important;
    text-transform: uppercase !important;
    margin: 0 0 .5rem !important;
  }
  html body .sr-event-info__title{
    display: block !important;
    font-family: 'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho','游明朝','YuMincho',serif !important;
    font-size: 22px !important;
    font-weight: 500 !important;
    letter-spacing: .22em !important;
    color: #2b2b2b !important;
    margin: 0 0 .8rem !important;
    line-height: 1.4 !important;
  }
  html body .sr-event-info__line{
    display: inline-block !important;
    width: 32px !important;
    height: 1px !important;
    background: #b39278 !important;
    vertical-align: middle !important;
  }

  html body .sr-event-info__list{
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }
  html body .sr-event-info__row{
    display: grid !important;
    grid-template-columns: 180px 1fr !important;
    align-items: center !important;
    gap: 16px !important;
    padding: 18px 4px !important;
    border-top: 1px solid rgba(179,146,120,.22) !important;
    margin: 0 !important;
  }
  html body .sr-event-info__row:last-child{
    border-bottom: 1px solid rgba(179,146,120,.22) !important;
  }

  html body .sr-event-info__term{
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: 'Noto Sans JP',sans-serif !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: .14em !important;
    color: #6b5a47 !important;
  }
  html body .sr-event-info__icon{
    display: inline-block !important;
    width: 18px !important;
    height: 18px !important;
    background-color: #b39278 !important;
    -webkit-mask-repeat: no-repeat !important;
            mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
            mask-position: center !important;
    -webkit-mask-size: contain !important;
            mask-size: contain !important;
    flex: 0 0 auto !important;
  }
  html body .sr-event-info__icon--date{
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='16' rx='2'/><path d='M3 10h18M8 3v4M16 3v4'/></svg>") !important;
            mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='16' rx='2'/><path d='M3 10h18M8 3v4M16 3v4'/></svg>") !important;
  }
  html body .sr-event-info__icon--time{
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>") !important;
            mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>") !important;
  }
  html body .sr-event-info__icon--place{
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21s-7-7.5-7-12a7 7 0 1 1 14 0c0 4.5-7 12-7 12Z'/><circle cx='12' cy='9' r='2.5'/></svg>") !important;
            mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21s-7-7.5-7-12a7 7 0 1 1 14 0c0 4.5-7 12-7 12Z'/><circle cx='12' cy='9' r='2.5'/></svg>") !important;
  }
  /* Gemini 出力で修飾クラス（--date/--time/--place）が欠落しても、
     行順でアイコンを補完して四角表示になるのを防ぐ */
  html body .sr-event-info__row:nth-child(1) .sr-event-info__icon{
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='16' rx='2'/><path d='M3 10h18M8 3v4M16 3v4'/></svg>") !important;
            mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='5' width='18' height='16' rx='2'/><path d='M3 10h18M8 3v4M16 3v4'/></svg>") !important;
  }
  html body .sr-event-info__row:nth-child(2) .sr-event-info__icon{
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>") !important;
            mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='9'/><path d='M12 7v5l3 2'/></svg>") !important;
  }
  html body .sr-event-info__row:nth-child(3) .sr-event-info__icon{
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21s-7-7.5-7-12a7 7 0 1 1 14 0c0 4.5-7 12-7 12Z'/><circle cx='12' cy='9' r='2.5'/></svg>") !important;
            mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M12 21s-7-7.5-7-12a7 7 0 1 1 14 0c0 4.5-7 12-7 12Z'/><circle cx='12' cy='9' r='2.5'/></svg>") !important;
  }

  html body .sr-event-info__desc{
    margin: 0 !important;
    padding: 0 !important;
  }
  html body .sr-event-info__value{
    display: block !important;
    font-family: 'Noto Serif JP','Hiragino Mincho ProN','Yu Mincho','游明朝','YuMincho',serif !important;
    font-size: 17px !important;
    font-weight: 500 !important;
    letter-spacing: .05em !important;
    color: #2b2b2b !important;
    line-height: 1.7 !important;
  }
  html body .sr-event-info__note{
    display: block !important;
    margin-top: 4px !important;
    font-family: 'Noto Sans JP',sans-serif !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    letter-spacing: .06em !important;
    color: #8a7d6e !important;
    line-height: 1.7 !important;
  }

  /* ===== スクロール連動アニメ ===== */
  html body .sr-event-info.is-ready .sr-event-info__eyebrow,
  html body .sr-event-info.is-ready .sr-event-info__title,
  html body .sr-event-info.is-ready .sr-event-info__line,
  html body .sr-event-info.is-ready .sr-event-info__row{
    opacity: 0;
    transform: translateY(10px);
    transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);
  }
  html body .sr-event-info.is-ready .sr-event-info__line{
    width: 0 !important;
    transition: width .9s cubic-bezier(.2,.7,.2,1) .4s;
    transform: none;
  }
  html body .sr-event-info.is-in .sr-event-info__eyebrow,
  html body .sr-event-info.is-in .sr-event-info__title,
  html body .sr-event-info.is-in .sr-event-info__row{
    opacity: 1;
    transform: none;
  }
  html body .sr-event-info.is-in .sr-event-info__line{ width: 32px !important; }
  html body .sr-event-info.is-in .sr-event-info__eyebrow{ transition-delay: .05s; }
  html body .sr-event-info.is-in .sr-event-info__title{ transition-delay: .12s; }
  html body .sr-event-info.is-in .sr-event-info__row:nth-child(1){ transition-delay: .35s; }
  html body .sr-event-info.is-in .sr-event-info__row:nth-child(2){ transition-delay: .48s; }
  html body .sr-event-info.is-in .sr-event-info__row:nth-child(3){ transition-delay: .61s; }

  /* ===== モバイル ===== */
  @media (max-width: 640px){
    html body .sr-event-info{
      margin: 2.2em auto 1.2em !important;
      padding: 2em 1.1em !important;
      width: 100% !important;
      max-width: 100% !important;
    }
    html body .sr-event-info__title{
      font-size: 19px !important;
      letter-spacing: .18em !important;
    }
    html body .sr-event-info__row{
      grid-template-columns: 1fr !important;
      gap: 6px !important;
      padding: 14px 2px !important;
    }
    html body .sr-event-info__term{
      font-size: 12px !important;
    }
    html body .sr-event-info__value{
      font-size: 15.5px !important;
    }
  }

  @media (prefers-reduced-motion: reduce){
    html body .sr-event-info.is-ready .sr-event-info__eyebrow,
    html body .sr-event-info.is-ready .sr-event-info__title,
    html body .sr-event-info.is-ready .sr-event-info__row{
      opacity: 1 !important;
      transform: none !important;
      transition: none !important;
    }
    html body .sr-event-info.is-ready .sr-event-info__line{ width: 32px !important; transition: none !important; }
  }

/* --- style block 6 --- */
/* ===== 金沢店案内ブロック ===== */
  html body .sr-info{
    position: relative !important;
    display: block !important;
    max-width: 620px !important;
    width: 100% !important;
    margin: 3em auto 1.6em !important;
    padding: 2.6em 1.6em 2.4em !important;
    background: #ffffff !important;
    border: 1px solid #f0e3da !important;
    border-radius: 6px !important;
    text-align: center !important;
    font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Yu Mincho', '游明朝', 'YuMincho', serif !important;
    color: #2b2b2b !important;
    box-sizing: border-box !important;
    box-shadow:
      0 1px 0 rgba(255,255,255,1) inset,
      0 22px 56px -32px rgba(234,136,143,.28),
      0 10px 28px -18px rgba(0,0,0,.10) !important;
    overflow: hidden !important;
  }
  /* 上部ピンクのアクセントライン（CTAカラーと呼応） */
  html body .sr-info::before{
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 3px !important;
    background: linear-gradient(90deg,
      rgba(234,136,143,0) 0%,
      rgba(234,136,143,.0) 8%,
      #ea888f 28%,
      #ea888f 72%,
      rgba(234,136,143,.0) 92%,
      rgba(234,136,143,0) 100%
    ) !important;
    opacity: .9 !important;
    pointer-events: none !important;
  }
  html body a.sr-info__cta,
  html body .sr-info a.sr-info__cta,
  html body .sr-cta-solo a.sr-info__cta{
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    min-width: 320px !important;
    max-width: 100% !important;
    padding: 17px 52px 17px 34px !important;
    margin: 0.6em auto !important;
    font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Yu Mincho', '游明朝', 'YuMincho', serif !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    letter-spacing: 0.16em !important;
    color: #fff !important;
    text-decoration: none !important;
    text-shadow: none !important;
    background: #b39278 !important;
    border: none !important;
    border-radius: 4px !important;
    box-shadow:
      0 10px 22px -6px rgba(179,146,120,.5),
      0 4px 8px -2px rgba(0,0,0,.10),
      inset 0 1px 0 rgba(255,255,255,.12) !important;
    transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, background .3s ease !important;
    cursor: pointer !important;
    line-height: 1.4 !important;
  }
  html body a.sr-info__cta .sr-info__cta-label,
  html body .sr-info a.sr-info__cta .sr-info__cta-label,
  html body .sr-cta-solo a.sr-info__cta .sr-info__cta-label{
    color: #fff !important;
    text-decoration: none !important;
    background: transparent !important;
    font: inherit !important;
    letter-spacing: inherit !important;
  }
  html body a.sr-info__cta::after,
  html body .sr-info a.sr-info__cta::after,
  html body .sr-cta-solo a.sr-info__cta::after{
    content: "" !important;
    position: absolute !important;
    right: 24px !important;
    top: 50% !important;
    width: 7px !important;
    height: 7px !important;
    border-right: 1.5px solid #fff !important;
    border-bottom: 1.5px solid #fff !important;
    border-top: 0 !important;
    border-left: 0 !important;
    background: transparent !important;
    transform: translateY(-70%) rotate(-45deg);
    transition: transform .35s ease;
  }
  html body a.sr-info__cta:hover,
  html body .sr-info a.sr-info__cta:hover,
  html body .sr-cta-solo a.sr-info__cta:hover{
    transform: translateY(-2px);
    background: #9d7d5d !important;
    color: #fff !important;
    text-decoration: none !important;
    box-shadow:
      0 16px 32px -8px rgba(179,146,120,.6),
      0 6px 12px -2px rgba(0,0,0,.14),
      inset 0 1px 0 rgba(255,255,255,.18) !important;
  }
  html body a.sr-info__cta:hover::after,
  html body .sr-info a.sr-info__cta:hover::after,
  html body .sr-cta-solo a.sr-info__cta:hover::after{
    transform: translateY(-70%) translateX(5px) rotate(-45deg);
  }
  html body a.sr-info__cta:active,
  html body .sr-info a.sr-info__cta:active,
  html body .sr-cta-solo a.sr-info__cta:active{
    transform: translateY(0);
    color: #fff !important;
    box-shadow:
      0 6px 14px -4px rgba(179,146,120,.4),
      0 2px 4px rgba(0,0,0,.1) !important;
  }
  html body a.sr-info__cta:visited,
  html body a.sr-info__cta:focus,
  html body .sr-info a.sr-info__cta:visited,
  html body .sr-cta-solo a.sr-info__cta:visited{
    color: #fff !important;
    text-decoration: none !important;
  }
  html body a.sr-info__cta:focus-visible{
    outline: 2px solid #b39278 !important;
    outline-offset: 3px !important;
  }

  /* ===== ピンクバリアント（イベント予約 CTA） ===== */
  html body a.sr-info__cta.sr-info__cta--pink,
  html body .sr-info a.sr-info__cta.sr-info__cta--pink{
    background: #ea888f !important;
    box-shadow:
      0 10px 22px -6px rgba(234,136,143,.55),
      0 4px 8px -2px rgba(0,0,0,.10),
      inset 0 1px 0 rgba(255,255,255,.18) !important;
  }
  html body a.sr-info__cta.sr-info__cta--pink:hover,
  html body .sr-info a.sr-info__cta.sr-info__cta--pink:hover{
    background: #d9727a !important;
    box-shadow:
      0 16px 32px -8px rgba(234,136,143,.65),
      0 6px 12px -2px rgba(0,0,0,.14),
      inset 0 1px 0 rgba(255,255,255,.22) !important;
  }
  html body a.sr-info__cta.sr-info__cta--pink:active,
  html body .sr-info a.sr-info__cta.sr-info__cta--pink:active{
    box-shadow:
      0 6px 14px -4px rgba(234,136,143,.45),
      0 2px 4px rgba(0,0,0,.1) !important;
  }
  html body a.sr-info__cta.sr-info__cta--pink:focus-visible{
    outline: 2px solid #ea888f !important;
  }

  /* ===== CTA横並びラッパー（PC: 横並び / モバイル: 縦積み） ===== */
  html body .sr-info .sr-info__cta-row{
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    gap: 18px !important;
    margin: 1.4em auto !important;
    padding: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  html body .sr-info .sr-info__cta-row > a.sr-info__cta{
    margin: 0 !important;
    flex: 0 1 auto !important;
  }

  /* ===== 電話予約ボタン ===== */
  html body a.sr-info__tel,
  html body .sr-info a.sr-info__tel{
    box-sizing: border-box !important;
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 320px !important;
    max-width: 100% !important;
    padding: 10px 28px 12px !important;
    margin: 0 !important;
    font-family: 'Noto Serif JP', 'Hiragino Mincho ProN', 'Yu Mincho', '游明朝', 'YuMincho', serif !important;
    color: #2b2b2b !important;
    text-decoration: none !important;
    text-shadow: none !important;
    background: #fff !important;
    border: 1px solid #d9c5a9 !important;
    border-radius: 4px !important;
    box-shadow:
      0 8px 18px -8px rgba(179,146,120,.25),
      0 2px 4px -1px rgba(0,0,0,.06) !important;
    transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .3s ease !important;
    cursor: pointer !important;
    line-height: 1.4 !important;
    text-align: center !important;
  }
  html body a.sr-info__tel:hover,
  html body .sr-info a.sr-info__tel:hover{
    transform: translateY(-2px) !important;
    color: #2b2b2b !important;
    text-decoration: none !important;
    border-color: #b39278 !important;
    box-shadow:
      0 14px 28px -10px rgba(179,146,120,.35),
      0 4px 10px -2px rgba(0,0,0,.08) !important;
  }
  html body a.sr-info__tel:visited,
  html body a.sr-info__tel:focus,
  html body .sr-info a.sr-info__tel:visited{
    color: #2b2b2b !important;
    text-decoration: none !important;
  }
  html body a.sr-info__tel:focus-visible{
    outline: 2px solid #b39278 !important;
    outline-offset: 3px !important;
  }
  html body a.sr-info__tel:active,
  html body .sr-info a.sr-info__tel:active{
    transform: translateY(0) !important;
    box-shadow:
      0 4px 10px -4px rgba(179,146,120,.3),
      0 2px 4px rgba(0,0,0,.06) !important;
  }

  html body .sr-info a.sr-info__tel .sr-info__tel-label{
    display: block !important;
    margin: 0 0 4px !important;
    padding: 0 !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    letter-spacing: 0.14em !important;
    color: #7a6a55 !important;
    line-height: 1.4 !important;
  }
  html body .sr-info a.sr-info__tel .sr-info__tel-num{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: 'Cormorant Garamond','Times New Roman',serif !important;
    font-size: 26px !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    color: #b39278 !important;
    line-height: 1.1 !important;
  }
  html body .sr-info a.sr-info__tel:hover .sr-info__tel-num{
    color: #9d7d5d !important;
  }
  html body .sr-info a.sr-info__tel .sr-info__tel-num-text{
    display: inline-block !important;
    color: inherit !important;
    font: inherit !important;
    letter-spacing: inherit !important;
  }
  html body .sr-info a.sr-info__tel .sr-info__tel-icon{
    display: inline-block !important;
    width: 18px !important;
    height: 18px !important;
    flex-shrink: 0 !important;
    background-color: currentColor !important;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.62 10.79a15.05 15.05 0 006.59 6.59l2.2-2.2a1 1 0 011.01-.24 11.36 11.36 0 003.57.57 1 1 0 011 1v3.48a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1 11.36 11.36 0 00.57 3.57 1 1 0 01-.24 1.01l-2.21 2.21z'/></svg>") no-repeat center / contain;
            mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M6.62 10.79a15.05 15.05 0 006.59 6.59l2.2-2.2a1 1 0 011.01-.24 11.36 11.36 0 003.57.57 1 1 0 011 1v3.48a1 1 0 01-1 1A17 17 0 013 4a1 1 0 011-1h3.5a1 1 0 011 1 11.36 11.36 0 00.57 3.57 1 1 0 01-.24 1.01l-2.21 2.21z'/></svg>") no-repeat center / contain;
  }
  html body .sr-info a.sr-info__tel .sr-info__tel-hours{
    display: block !important;
    margin: 4px 0 0 !important;
    padding: 0 !important;
    font-size: 11px !important;
    font-weight: 400 !important;
    letter-spacing: 0.06em !important;
    color: #7a6a55 !important;
    line-height: 1.5 !important;
  }

  @media (max-width: 560px){
    html body .sr-info .sr-info__cta-row{
      gap: 12px !important;
    }
    html body .sr-info a.sr-info__tel{
      min-width: 0 !important;
      width: 100% !important;
      padding: 12px 20px 14px !important;
    }
    html body .sr-info a.sr-info__tel .sr-info__tel-num{
      font-size: 24px !important;
    }
    html body .sr-info a.sr-info__tel .sr-info__tel-label,
    html body .sr-info a.sr-info__tel .sr-info__tel-hours{
      font-size: 10.5px !important;
    }
  }

  html body .sr-info .sr-info__note{
    margin: 1.4em 0 !important;
    padding: 0 !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    letter-spacing: 0.1em !important;
    line-height: 2.0 !important;
    color: #2b2b2b !important;
    text-align: center !important;
  }
  html body .sr-info .sr-info__divider{
    display: block !important;
    width: 40px !important;
    height: 1px !important;
    background: #b39278 !important;
    margin: 1.6em auto !important;
    padding: 0 !important;
    border: 0 !important;
  }
  html body .sr-info .sr-info__subnote{
    margin: 1.4em 0 !important;
    padding: 0 !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    letter-spacing: 0.08em !important;
    line-height: 1.9 !important;
    color: #555 !important;
    text-align: center !important;
  }
  html body .sr-info .sr-info__mark{
    color: #c46a70 !important;
    font-weight: 500 !important;
    margin-right: 4px !important;
  }
  @media (max-width: 560px){
    html body .sr-info{
      padding: 2.2em 1.1em 2em !important;
      margin: 2.2em auto 1.2em !important;
    }
    html body a.sr-info__cta,
    html body .sr-info a.sr-info__cta,
    html body .sr-cta-solo a.sr-info__cta{
      display: flex !important;
      width: 100% !important;
      min-width: 0 !important;
      font-size: 15px !important;
      letter-spacing: 0.12em !important;
      padding: 16px 44px 16px 20px !important;
    }
    html body a.sr-info__cta::after,
    html body .sr-info a.sr-info__cta::after,
    html body .sr-cta-solo a.sr-info__cta::after{ right: 20px !important; }
    html body .sr-info .sr-info__note{ font-size: 14px !important; letter-spacing: 0.06em !important; line-height: 1.9 !important; }
    html body .sr-info .sr-info__subnote{ font-size: 12px !important; }
  }

  /* ===== 単独CTA（カルーセル直下の「金沢店のご紹介はこちら」） ===== */
  html body .sr-cta-solo{
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 720px !important;
    margin: 2.2em auto 0.6em !important;
    padding: 0 1.6em !important;
    text-align: center !important;
  }
  html body .sr-cta-solo a.sr-info__cta{
    margin: 0 auto !important;
  }
  @media (max-width: 560px){
    html body .sr-cta-solo{
      padding: 0 1.1em !important;
      margin: 1.6em auto 0.4em !important;
    }
  }

  /* ===== 控えめなセカンダリ（ゴースト）スタイル ===== */
  /* .sr-cta-solo 内 / .sr-info__cta--ghost 修飾子 共通 */
  html body .sr-cta-solo a.sr-info__cta,
  html body .sr-cta-solo a.sr-info__cta:visited,
  html body a.sr-info__cta.sr-info__cta--ghost,
  html body a.sr-info__cta.sr-info__cta--ghost:visited,
  html body .sr-info a.sr-info__cta.sr-info__cta--ghost,
  html body .sr-info a.sr-info__cta.sr-info__cta--ghost:visited{
    min-width: 0 !important;
    padding: 12px 44px 12px 22px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: 0.12em !important;
    color: #8a7660 !important;
    background: transparent !important;
    border: 1px solid rgba(179,146,120,.55) !important;
    box-shadow: none !important;
  }
  html body .sr-cta-solo a.sr-info__cta .sr-info__cta-label,
  html body a.sr-info__cta.sr-info__cta--ghost .sr-info__cta-label,
  html body .sr-info a.sr-info__cta.sr-info__cta--ghost .sr-info__cta-label{
    color: #8a7660 !important;
    font-weight: 500 !important;
  }
  html body .sr-cta-solo a.sr-info__cta::after,
  html body a.sr-info__cta.sr-info__cta--ghost::after,
  html body .sr-info a.sr-info__cta.sr-info__cta--ghost::after{
    right: 18px !important;
    width: 6px !important;
    height: 6px !important;
    border-right: 1.2px solid #b39278 !important;
    border-bottom: 1.2px solid #b39278 !important;
  }
  html body .sr-cta-solo a.sr-info__cta:hover,
  html body a.sr-info__cta.sr-info__cta--ghost:hover,
  html body .sr-info a.sr-info__cta.sr-info__cta--ghost:hover{
    transform: translateY(-1px) !important;
    background: rgba(179,146,120,.06) !important;
    border-color: #b39278 !important;
    color: #6b5a47 !important;
    box-shadow:
      0 6px 14px -8px rgba(179,146,120,.30) !important;
  }
  html body .sr-cta-solo a.sr-info__cta:hover .sr-info__cta-label,
  html body a.sr-info__cta.sr-info__cta--ghost:hover .sr-info__cta-label,
  html body .sr-info a.sr-info__cta.sr-info__cta--ghost:hover .sr-info__cta-label{
    color: #6b5a47 !important;
  }
  html body .sr-cta-solo a.sr-info__cta:hover::after,
  html body a.sr-info__cta.sr-info__cta--ghost:hover::after,
  html body .sr-info a.sr-info__cta.sr-info__cta--ghost:hover::after{
    border-right-color: #6b5a47 !important;
    border-bottom-color: #6b5a47 !important;
  }
  html body .sr-cta-solo a.sr-info__cta:active,
  html body a.sr-info__cta.sr-info__cta--ghost:active,
  html body .sr-info a.sr-info__cta.sr-info__cta--ghost:active{
    transform: translateY(0) !important;
    background: rgba(179,146,120,.10) !important;
    box-shadow: none !important;
  }
  @media (max-width: 560px){
    html body .sr-cta-solo a.sr-info__cta,
    html body a.sr-info__cta.sr-info__cta--ghost,
    html body .sr-info a.sr-info__cta.sr-info__cta--ghost{
      padding: 11px 40px 11px 18px !important;
      font-size: 13px !important;
      letter-spacing: 0.1em !important;
    }
    html body .sr-cta-solo a.sr-info__cta::after,
    html body a.sr-info__cta.sr-info__cta--ghost::after,
    html body .sr-info a.sr-info__cta.sr-info__cta--ghost::after{
      right: 16px !important;
    }
  }

  /* ===== 電話お問合せ画像ボタン ===== */
  html body p.sr-tel-button{
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 620px !important;
    margin: 1em auto 0.8em !important;
    padding: 0 1.6em !important;
    text-align: center !important;
  }
  html body p.sr-tel-button a{
    display: inline-block !important;
    width: 100% !important;
    max-width: 380px !important;
    line-height: 0 !important;
    text-decoration: none !important;
    border: 0 !important;
    transition: transform .35s cubic-bezier(.2,.7,.2,1), filter .35s ease;
  }
  html body p.sr-tel-button a:hover{
    transform: translateY(-2px);
    filter: drop-shadow(0 12px 20px rgba(0,0,0,.18));
  }
  html body p.sr-tel-button img{
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    border: 0 !important;
  }
  @media (max-width: 560px){
    html body p.sr-tel-button{
      padding: 0 1.1em !important;
      margin: 0.8em auto 0.6em !important;
    }
    html body p.sr-tel-button a{
      max-width: 100% !important;
    }
  }

