@charset "UTF-8";
/* HAMSTAR LP shared styles (A案より抽出) */
html{ scroll-behavior:smooth; }
  *{ box-sizing:border-box; } body{ margin:0; background:#FFFFFF; font-feature-settings:"palt"; -webkit-font-smoothing:antialiased; }
  .ph{ display:flex; align-items:center; justify-content:center; text-align:center; color:rgba(22,22,26,.34); font:500 .72rem/1.7 "Noto Sans JP",sans-serif; letter-spacing:.1em; padding:1.3em; }
  .navlink{ position:relative; }
  .navlink::after{ content:""; position:absolute; left:0; bottom:-3px; width:0; height:1px; background:#1A1A1A; transition:width .4s cubic-bezier(.4,0,.2,1); }
  .navlink:hover::after{ width:100%; }
  .faqitem summary{ list-style:none; cursor:pointer; }
  .faqitem summary::-webkit-details-marker{ display:none; }
  .faq-compare{ width:100%; border-collapse:collapse; margin:18px 0; font:400 13px/1.7 'Noto Sans JP',sans-serif; color:#6E6E6A; }
  .faq-compare th,.faq-compare td{ padding:12px 14px; border:1px solid #E4E4E0; text-align:center; vertical-align:middle; }
  .faq-compare thead th{ background:#F5F5F3; font:600 12px/1.5 'Zen Maru Gothic',sans-serif; color:#1A1A1A; letter-spacing:.04em; }
  .faq-compare tbody th{ width:18%; font:600 12px/1.5 'Noto Sans JP',sans-serif; color:#1A1A1A; background:#FAFAF8; white-space:nowrap; }
  .faq-compare td{ width:41%; }
  .no-sb{ scrollbar-width:none; -ms-overflow-style:none; }
  .no-sb::-webkit-scrollbar{ display:none; }
  .btn-ol{ background:#fff; color:#1A1A1A; border:1px solid #E4E4E0; transition:background .3s ease, border-color .3s ease; }
  .btn-ol:hover{ background:#F0EFEC; border-color:#C9C8C3; }
  .fld{ font:400 15px/1 'Noto Sans JP',sans-serif; color:#1A1A1A; background:#fff; border:1px solid #E4E4E0; padding:14px; width:100%; }
  .lab{ display:flex; flex-direction:column; gap:8px; font:400 12px/1.4 'Noto Sans JP',sans-serif; letter-spacing:.04em; color:#6C6C76; }
  .req{ font-size:10px; color:#9C9C97; border:1px solid #E4E4E0; padding:2px 6px; align-self:center; }
  .labhd{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }

  /* ===== レスポンシブ（モバイル対応：A案はデスクトップ前提のため追加） ===== */
  .hd-burger{ display:none; flex-direction:column; gap:5px; width:34px; height:34px; align-items:center; justify-content:center; background:none; border:0; cursor:pointer; padding:0; }
  .hd-burger span{ display:block; width:24px; height:1.5px; background:#1A1A1A; transition:transform .35s cubic-bezier(.4,0,.2,1), opacity .2s ease; }
  .hd-burger.open span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
  .hd-burger.open span:nth-child(2){ opacity:0; }
  .hd-burger.open span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }
  .hd-overlay{ position:fixed; inset:0; z-index:95; background:rgba(255,255,255,.98); -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:26px; opacity:0; visibility:hidden; transition:opacity .4s ease, visibility .4s ease; }
  .hd-overlay.open{ opacity:1; visibility:visible; }
  .hd-overlay a{ font:500 19px/1 'Zen Maru Gothic',sans-serif; letter-spacing:.12em; color:#1A1A1A; text-decoration:none; }
  .hd-overlay .ov-cta{ margin-top:10px; border:1px solid #E4E4E0; padding:14px 28px; font:500 13px/1 'Noto Sans JP',sans-serif; letter-spacing:.05em; }
  .ov-close{ position:absolute; top:14px; right:18px; width:44px; height:44px; background:none; border:0; font:300 30px/1 'Noto Sans JP',sans-serif; color:#1A1A1A; cursor:pointer; line-height:1; }
  @media (min-width:861px){ .hd-overlay{ display:none !important; } }
  @media (max-width:860px){
    #hd > nav{ display:none !important; }
    #hd > a.btn-ol{ display:none !important; }
    /* スマホは固定ヘッダー自体を使わない（ナビはFABに集約） */
    #hd{ display:none !important; }
    /* メニューはフローティングボタン化（フロストガラス円・右下＝CTAバーの上）。最初はヒーローのみ＝スクロール後に登場 */
    .hd-burger{ display:flex; position:fixed; right:14px; bottom:calc(74px + env(safe-area-inset-bottom)); z-index:90;
      width:46px; height:46px; border-radius:50%;
      background:rgba(255,255,255,.9); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
      border:1px solid #E4E4E0; box-shadow:0 6px 18px -8px rgba(20,22,40,.18);
      opacity:0; pointer-events:none; transform:translateY(10px);
      transition:opacity .45s ease, transform .45s ease; }
    body.past-hero .hd-burger{ opacity:1; pointer-events:auto; transform:translateY(0); }
    /* ヒーローのインラインメニューはスマホでは非表示（FABに集約） */
    .hero-nav{ display:none !important; }
    [style*="grid-template-columns:1fr 1fr"],
    [style*="grid-template-columns:1.1fr 1fr"],
    [style*="grid-template-columns:1fr 1.1fr"],
    [style*="grid-template-columns:.85fr 1.15fr"],
    [style*="grid-template-columns:1.15fr .85fr"],
    [style*="grid-template-columns:1.4fr 1fr 1fr"],
    [style*="grid-template-columns:repeat(3,1fr)"]{ grid-template-columns:1fr !important; }
  }
  @media (max-width:560px){
    /* ヒーローH1：必ず2行固定「なりたい自分を / 諦めて生きるなんて嫌だ。」
       2行目の12文字(嫌だ。含む)が1行に収まるサイズを画面幅から逆算 */
    #top{ padding-left:24px !important; padding-right:24px !important; }
    #top h1{ font-size:clamp(18px, calc(8vw - 4px), 32px) !important; letter-spacing:.03em !important; }
    [style*="grid-template-columns:repeat(2,1fr)"]{ grid-template-columns:1fr !important; }
    .dt-row{ display:flex !important; flex-wrap:wrap; align-items:center; gap:8px !important; }
    .dt-row > span{ flex:0 0 100%; }
    .dt-row .fld{ flex:1 1 42%; min-width:0; }
  }
  /* トレーナー写真：PC では本文の高さいっぱいに伸ばして左右を揃える（モバイルは3/4のまま） */
  @media (min-width:861px){
    #trainer .t-photo, #t-concept .t-photo{ aspect-ratio:auto !important; height:100%; max-width:none; }
    /* コンセプトの写真は「本文の高さ」に従う（写真が行の高さを決めない）：
       画像を絶対配置にして枠の中身の高さを0にし、行の高さ＝本文の高さにする。画面が広くて本文が短いときも下に余白が出ない */
    #t-concept .t-photo{ position:relative; min-height:400px; }
    #t-concept .t-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  }

  /* ===== 種目セレクタ（トレーニング／ピラティス） ===== */
  .course-head{ margin:0 0 32px; }
  .course-head__title{ margin:0 !important; }
  .pmode--head{ display:none !important; }
  .price-board{ position:relative; }
  .price-board__bar{ display:flex; justify-content:center; margin:0 0 16px; }
  .pmode{ display:flex; width:100%; margin:0; }
  .pmode__track{ position:relative; display:grid; grid-template-columns:1fr 1fr;
    width:100%; isolation:isolate; background:#fff; border:1px solid #E4E4E0; }
  .pmode__glider{ position:absolute; inset:0 auto 0 0; width:50%;
    background:#EFEEEA; z-index:0; pointer-events:none;
    transition:transform .42s cubic-bezier(.22,1,.36,1); }
  .pmode[data-mode="pilates"] .pmode__glider{ transform:translateX(100%); }
  .pmode__opt{ position:relative; z-index:1; appearance:none; border:0; background:transparent;
    margin:0; padding:14px 16px; cursor:pointer; text-align:center; color:inherit; width:100%; }
  .pmode__en{ display:block; font:600 8px/1 'Bricolage Grotesque',sans-serif;
    letter-spacing:.2em; text-transform:uppercase; color:#B0B0AB;
    transition:color .28s ease; }
  .pmode__ja{ display:block; margin-top:6px;
    font:700 14px/1.3 'Zen Maru Gothic',sans-serif; letter-spacing:.06em; color:#9C9C97;
    transition:color .28s ease; }
  .pmode__opt.is-on .pmode__en{ color:#6C6C76; }
  .pmode__opt.is-on .pmode__ja{ color:#1A1A1A; }
  @media (hover:hover){
    .pmode__opt:not(.is-on):hover .pmode__ja{ color:#6C6C76; }
    .pmode__opt:not(.is-on):hover .pmode__en{ color:#9C9C97; }
  }
  .pmode__opt:focus-visible{ outline:2px solid #1A1A1A; outline-offset:-2px; }
  .pmode__opt:focus:not(:focus-visible){ outline:none; }
  .price-board__grid > article,
  .price-board [data-vplan]{
    transition:opacity .34s ease, transform .34s cubic-bezier(.22,1,.36,1);
  }
  #course.is-repricing .price-board__grid > article,
  #course.is-repricing .price-board [data-vplan]{
    opacity:.36; transform:translateY(10px);
  }
  @media (max-width:860px){
    .course-head{ margin-bottom:28px; }
    .course-head__title{ text-align:center; width:100%; }
    #course #price{ margin-bottom:20px !important; }
    .pmode__opt{ padding:12px 14px; }
    .pmode__en{ display:none; }
    .pmode__ja{ margin-top:0; font-size:13px; letter-spacing:.04em; }
  }

  /* 入会キャンペーン帯：左メタ＋右の料金比較（列揃え） */
  .cam-banner{
    display:grid;
    grid-template-columns:minmax(168px,210px) 1fr;
    align-items:stretch;
    background:#fff;
    border:1px solid #E4E4E0;
    margin-bottom:20px;
    scroll-margin-top:88px;
  }
  .cam-banner__meta{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
    gap:12px;
    padding:22px 24px;
    background:#FAFAF8;
    border-right:1px solid #E4E4E0;
  }
  .cam-banner__en{
    margin:0;
    font:600 10px/1 'Bricolage Grotesque',sans-serif;
    letter-spacing:.24em;
    text-transform:uppercase;
    color:#9C9C97;
  }
  .cam-banner__ja{
    margin:0;
    font:700 16px/1.35 'Zen Maru Gothic',sans-serif;
    letter-spacing:.04em;
    color:#1A1A1A;
  }
  .cam-banner__badge{
    align-self:center;
    margin-top:2px;
    font:600 11px/1.4 'Noto Sans JP',sans-serif;
    letter-spacing:.06em;
    color:#1A1A1A;
    border:1px solid #E4E4E0;
    background:#fff;
    padding:6px 11px;
  }
  .cam-banner__offers{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:8px clamp(20px,3vw,36px);
  }
  .cam-banner__row{
    display:grid;
    grid-template-columns:7.2em 5.2em 1.4em minmax(6.5em,auto);
    align-items:baseline;
    column-gap:12px;
    padding:14px 0;
  }
  .cam-banner__row + .cam-banner__row{ border-top:1px solid #E4E4E0; }
  .cam-banner__label{
    font:500 13px/1.4 'Noto Sans JP',sans-serif;
    letter-spacing:.04em;
    color:#6C6C76;
  }
  .cam-banner__was{
    text-align:right;
    font:400 15px/1 'Ibarra Real Nova',serif;
    color:#9C9C97;
  }
  .cam-banner__was s{ text-decoration-thickness:1px; text-decoration-color:#C9C8C3; }
  .cam-banner__arrow{
    text-align:center;
    font:400 14px/1 'Ibarra Real Nova',serif;
    color:#9C9C97;
  }
  .cam-banner__now{
    display:inline-flex;
    align-items:baseline;
    gap:.28em;
    font:400 13px/1 'Noto Sans JP',sans-serif;
    color:#6C6C76;
  }
  .cam-banner__now strong{
    font:600 clamp(24px,2.4vw,30px)/1 'Ibarra Real Nova',serif;
    color:#1A1A1A;
    letter-spacing:.01em;
  }
  @media (max-width:720px){
    .cam-banner{ grid-template-columns:1fr; }
    .cam-banner__meta{
      border-right:0;
      border-bottom:1px solid #E4E4E0;
      padding:20px 22px;
      align-items:center;
      text-align:center;
    }
    .cam-banner__badge{ align-self:center; }
    .cam-banner__offers{ padding:6px 18px 10px; }
    .cam-banner__row{
      grid-template-columns:6.2em 1fr auto auto;
      column-gap:10px;
      padding:13px 0;
    }
    .cam-banner__was{ text-align:right; }
  }

  /* トレーナーの数値スタッツ：スマホは「写真 → 名前 → 実績ストリップ → 本文」のプロフィール型に再構成。
     長文の後ろに沈んでいた実績を名前の直下へ引き上げ、横1列のコンパクトな帯（上下ヘアライン）で
     読む前に信頼性が伝わる走査順にする（縦積みで生じていた無駄なスクロールも解消） */
  @media (max-width:860px){
    #trainer .t-body, #t-concept .t-body{ display:flex; flex-direction:column; }
    #trainer dl, #t-concept dl{ order:1; grid-template-columns:repeat(4,1fr) !important; gap:12px !important;
      border-top:1px solid #E4E4E0; border-bottom:1px solid #E4E4E0;
      padding:14px 0 !important; margin:0 0 24px !important; text-align:center; }
    #trainer .t-body > div:not(.t-head-pc), #t-concept .t-body > div:not(.t-head-pc){ order:2; }
    #trainer dl dt, #t-concept dl dt{ margin-bottom:6px !important; font-size:9.5px !important; letter-spacing:.04em !important; }
    #trainer dl dd, #t-concept dl dd{ font-size:22px !important; }
    #trainer dl dd span, #t-concept dl dd span{ font-size:10px !important; }
    /* 見出し→写真の余白をHAMSTAR基準(28px)に。gridの行配分で余剰が出るためflex-columnで確実に揃える */
    #trainer > div, #t-concept > div{ display:flex !important; flex-direction:column !important; gap:28px !important; }
    #trainer .t-head-mb, #t-concept .t-head-mb{ order:0; }
    #trainer .t-photo, #t-concept .t-photo{ order:1; }
    #trainer .t-body, #t-concept .t-body{ order:2; }
    .t-name{ display:flex; flex-direction:column-reverse; align-items:center; gap:7px; margin:0 0 24px !important; font-size:24px !important; line-height:1.3 !important; }
    .t-name span{ margin-left:0 !important; }
  }
  /* スマホ：各セクションのH2下マージンをHAMSTAR基準(28px)に統一（大きすぎる余白を解消） */
  @media (max-width:860px){
    #services h2, #t-features h2, #course h2, #faq h2, #access h2, #voice h2{ margin-bottom:28px !important; }
  }
  /* スマホ：全セクションの見出しブロック（キッカー行＋H2）を「できること」と同じセンター型に統一。
     （margin:0 0 条件でアクセスの駅リスト行などを除外。本文・カード・フォームは左のまま） */
  @media (max-width:860px){
    section [style*="align-items:baseline"][style*="gap:14px"][style*="margin:0 0"]{ justify-content:center; }
    section h2{ text-align:center; }
    /* Tiare側のキッカー（.tp-kicker）とリード文も、同じセンター型に */
    .tp-kicker{ justify-content:center; }
    .tin__lead, .tpr__lead, #t-concept .t-head-mb p{ text-align:center; margin-left:auto; margin-right:auto; }
    /* aboutのHAMSTARワードマークは2カラム左寄せ構成なので中央化から除外（最初のまま左） */
    #about h2, #about h2 + p{ text-align:left !important; }
    /* コラムの見出し行は「タイトル｜View More」の横並び→縦積みセンターに */
    #blog [style*="justify-content:space-between"]{ flex-direction:column; align-items:center !important; }
  }
  /* WordPress: ログイン中は管理バー(32px/モバイル46px)の分だけ固定UIを下げる（静的版では無害） */
  body.admin-bar #hd{ top:32px; }
  body.admin-bar .hd-overlay{ top:32px; }
  @media (max-width:782px){
    body.admin-bar #hd{ top:46px; }
    body.admin-bar .hd-overlay{ top:46px; }
  }
  /* トレーナー見出し：PCはテキスト列内（既存）、スマホは写真の上に出す */
  .t-head-mb{ display:none; }
  @media (max-width:860px){
    .t-head-mb{ display:block; margin:0; }
    #trainer .t-head-pc, #t-concept .t-head-pc{ display:none !important; }
  }
  /* なまえの由来の店内写真：PCは右カラム、スマホはHAMSTAR/Hamstrings×Starの直下に出し分け */
  .about-photo-mb{ display:none; }
  @media (max-width:860px){
    .about-photo-pc{ display:none !important; }
    .about-photo-mb{ display:block; }
  }
  /* 実績スライダー：スマホはナビ(← →)を本文の下へ移動（読み終わり→そのまま次の事例へ） */
  @media (max-width:860px){
    .results-wrap{ display:flex; flex-direction:column; }
    .results-head{ display:contents !important; }
    .results-title{ order:1; margin:0 0 28px; }
    #resultsViewport{ order:2; }
    .results-nav{ order:3; width:100%; margin-top:26px; justify-content:space-between; }
  }
  /* はじめ方(FLOW)：スマホは「できること」のカード構造を流用した .flow-cards-mb を表示し、
     PC用の互い違い2カラム行は非表示。PCはその逆（カード非表示・従来レイアウトのまま） */
  @media (min-width:861px){ .flow-cards-mb{ display:none !important; } }
  @media (max-width:860px){
    #flow [style*="flex-direction:column"]{ display:none !important; }
    /* 見出しまわりも「できること」と同じセンター型（キッカー中央＋h2中央・ウェイト500・下マージン56px） */
    #flow > div > div:first-child{ justify-content:center; }
    #flow h2{ text-align:center; font-weight:500 !important; line-height:1.6 !important; letter-spacing:.04em !important; margin:0 0 28px !important; }
  }
  /* 実績スライダー：スマホは1画面に収まるよう写真と数値を圧縮（読む→そのまま横スワイプ/下のナビで次へ） */
  @media (max-width:860px){
    #resultsTrack .ba{ width:76vw; max-width:360px; margin:0 auto; }
    #resultsTrack > div{ gap:18px !important; }
    #resultsTrack dl{ gap:22px !important; padding:14px 0 !important; margin:0 0 14px !important; }
    #resultsTrack dl dd{ font-size:27px !important; }
    #resultsTrack [style*="font:400 14px/2"]{ font-size:13px !important; line-height:1.85 !important; }
  }
  /* 下部CTA：PCは右下ピル（既存）、スマホは全幅の固定フッターバー。
     白×ニアブラックの世界観に合わせ、黒ベタではなくフロストガラス白＋ヘアライン＋インク文字 */
  @media (max-width:860px){
    .lp-fixcta{ left:0 !important; right:0 !important; bottom:0 !important; width:100% !important;
      flex-direction:column !important; justify-content:center !important; gap:3px !important;
      border-radius:0 !important; border:none !important; border-top:1px solid #E4E4E0 !important;
      background:rgba(255,255,255,.92) !important; color:#1A1A1A !important;
      -webkit-backdrop-filter:blur(14px) saturate(1.2); backdrop-filter:blur(14px) saturate(1.2);
      padding:12px 18px calc(12px + env(safe-area-inset-bottom)) !important;
      box-shadow:0 -6px 20px -14px rgba(20,22,40,.16) !important;
      opacity:0 !important; pointer-events:none !important; transform:translateY(14px) !important;
      transition:opacity .45s ease, transform .45s ease !important; }
    body.past-hero .lp-fixcta{ opacity:1 !important; pointer-events:auto !important; transform:translateY(0) !important; }
    .lp-fixcta:hover{ background:rgba(255,255,255,.98) !important; }
    /* 2段組：上段「＼ 入会金半額・先着5名 ／」/ 下段「無料カウンセリングを予約」 */
    .lp-fixcta .cta-note{ order:-1; color:#6C6C76 !important; }
    .lp-fixcta .cta-note::before{ content:"＼ "; }
    .lp-fixcta .cta-note::after{ content:" ／"; }
    body{ padding-bottom:calc(62px + env(safe-area-inset-bottom)); }
  }

  /* ===== サイトモード：hamstar / personal / tiare =====
     site-* クラスを持つ要素は「持っているモードのときだけ」表示。複数付与可（例：site-hamstar site-personal＝ジム系共通） */
  html[data-site="hamstar"] :is(.site-personal,.site-tiare):not(.site-hamstar),
  html[data-site="personal"] :is(.site-hamstar,.site-tiare):not(.site-personal),
  html[data-site="tiare"] :is(.site-hamstar,.site-personal):not(.site-tiare){ display:none !important; }

  /* ===== Tiare 小竹向原（3パターン目） ===== */
  .tp-sec{ scroll-margin-top:88px; padding:clamp(80px,11vw,128px) 0; border-top:1px solid #E4E4E0; background:#FFFFFF; }
  .tp-sec--tint{ background:#F5F5F3; }
  .tp-wrap{ width:100%; max-width:1640px; margin:0 auto; padding-left:clamp(28px,6vw,120px); padding-right:clamp(28px,6vw,120px); }
  .tp-kicker{ display:flex; align-items:baseline; gap:14px; margin:0 0 16px; }
  .tp-kicker b{ font:600 11px/1 'Bricolage Grotesque',sans-serif; letter-spacing:.22em; text-transform:uppercase; color:#6C6C76; }
  .tp-kicker span{ font:500 11px/1 'Noto Sans JP'; letter-spacing:.14em; color:#9C9C97; }
  .tp-kicker--center{ justify-content:center; }
  .tp-h2{ font:700 clamp(18px,2.1vw,24px)/1.55 'Zen Maru Gothic',sans-serif; letter-spacing:.02em; margin:0 0 40px; }
  .tp-lead{ font:400 14px/2.1 'Noto Sans JP'; color:#6E6E6A; margin:0; }
  .tp-lead + .tp-lead{ margin-top:16px; }
  .tp-note{ font:400 12px/1.8 'Noto Sans JP'; color:#9C9C97; margin:14px 0 0; }



  /* ===== Tiare インストラクター ===== */
  .tin{ scroll-margin-top:88px; padding:clamp(80px,11vw,128px) 0; background:#F5F5F3; border-top:1px solid #E4E4E0; }
  .tin__wrap{ width:100%; max-width:1640px; margin:0 auto; padding-left:clamp(28px,6vw,120px); padding-right:clamp(28px,6vw,120px); }
  .tin__h2{ font:700 clamp(18px,2.1vw,24px)/1.55 'Zen Maru Gothic',sans-serif; letter-spacing:.02em; margin:0 0 14px; }
  .tin__lead{ font:400 14px/2 'Noto Sans JP'; color:#6E6E6A; margin:0 0 clamp(36px,4vw,56px); max-width:40em; }
  /* 人数が増えても崩れないグリッド：1人=最大420px幅、2人=2列、3人以上=3列で折り返し */
  .tin__grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr)); gap:clamp(20px,2.4vw,32px); max-width:1320px; }
  .tin-card{ background:#fff; border:1px solid #E4E4E0; padding:clamp(20px,2vw,24px); display:flex; flex-direction:column; }
  .tin-card__photo{ aspect-ratio:3/4; overflow:hidden; background:#EFEEEA; margin:0 0 20px; }
  .tin-card__photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  .tin-card__role{ font:600 10px/1 'Bricolage Grotesque',sans-serif; letter-spacing:.2em; text-transform:uppercase; color:#9C9C97; margin:0 0 10px; }
  .tin-card__name{ font:700 18px/1.4 'Zen Maru Gothic',sans-serif; margin:0 0 12px; display:flex; align-items:baseline; flex-wrap:wrap; gap:.6em; }
  .tin-card__name span{ font:400 10px/1 'Bricolage Grotesque',sans-serif; letter-spacing:.18em; color:#9C9C97; }
  .tin-card__bio{ font:400 13.5px/2 'Noto Sans JP'; color:#6E6E6A; margin:0; }
  @media (max-width:860px){
    .tin__grid{ grid-template-columns:1fr; gap:16px; }
    /* モバイルは縦積み：写真は正方形で高さを抑え、肩書き→名前→本文の順に */
    .tin-card{ padding:16px 16px 22px; }
    .tin-card__photo{ aspect-ratio:1/1; margin:0 0 16px; }
    .tin-card__photo img{ object-position:center top !important; }   /* 正方形にした分、頭が切れないよう上寄せ */
    .tin-card__role{ white-space:nowrap; letter-spacing:.16em; margin-bottom:8px; }
    .tin-card__name{ font-size:17px; margin-bottom:10px; }
    .tin-card__bio{ font-size:13px; }
  }

  /* ===== Tiare 料金セクション ===== */
  .tpr{ scroll-margin-top:88px; padding:clamp(80px,11vw,128px) 0; background:#FFFFFF; border-top:1px solid #E4E4E0; }
  .tpr__wrap{ width:100%; max-width:1640px; margin:0 auto; padding-left:clamp(28px,6vw,120px); padding-right:clamp(28px,6vw,120px); }
  .tpr__head{ margin:0 0 clamp(36px,4vw,56px); }
  .tpr__h2{ font:700 clamp(18px,2.1vw,24px)/1.55 'Zen Maru Gothic',sans-serif; letter-spacing:.02em; margin:0 0 14px; }
  .tpr__lead{ font:400 14px/2 'Noto Sans JP'; color:#6E6E6A; margin:0; max-width:40em; }
  .tpr__row{ padding:clamp(28px,3vw,40px) 0; border-top:1px solid #E4E4E0; }
  .tpr__row:last-of-type{ border-bottom:1px solid #E4E4E0; }
  .tpr__step{ display:flex; align-items:baseline; gap:.7em; margin:0 0 22px; font:700 15px/1.4 'Zen Maru Gothic',sans-serif; letter-spacing:.04em; }
  .tpr__step b{ font:400 20px/1 'Ibarra Real Nova',serif; color:#9C9C97; letter-spacing:.04em; }
  .tpr__step small{ font:400 12px/1 'Noto Sans JP'; color:#9C9C97; letter-spacing:.06em; margin-left:.4em; }

  .tpr-first{ display:grid; grid-template-columns:1.05fr .95fr; background:#fff; border:1px solid #1A1A1A; }
  .tpr-first__main{ padding:clamp(28px,3vw,40px); display:flex; flex-direction:column; }
  .tpr-first__main .tpr-btn{ margin-top:auto; }
  .tpr-first__fees{ padding:clamp(28px,3vw,40px); border-left:1px solid #E4E4E0; background:#FAFAF8; display:flex; flex-direction:column; }
  .tpr-first__cond{ display:flex; align-items:center; flex-wrap:wrap; gap:.7em; margin:0 0 14px; font:700 14px/1.4 'Zen Maru Gothic',sans-serif; letter-spacing:.04em; }
  .tpr-card__en{ font:600 10px/1 'Bricolage Grotesque',sans-serif; letter-spacing:.2em; text-transform:uppercase; color:#9C9C97; margin:0 0 12px; }
  .tpr-card__ttl{ display:flex; align-items:center; flex-wrap:wrap; gap:.6em; font:700 20px/1.4 'Zen Maru Gothic',sans-serif; margin:0 0 16px; }
  .tpr-card__ttl > span:not(.tpr-badge){ font:400 13px/1 'Ibarra Real Nova',serif; color:#6C6C76; letter-spacing:.06em; }
  .tpr-badge{ font:700 10px/1 'Zen Maru Gothic',sans-serif; letter-spacing:.1em; color:#fff; background:#1A1A1A; padding:6px 10px; }
  .tpr-card__lead{ font:400 13.5px/2 'Noto Sans JP'; color:#6E6E6A; margin:0 0 24px; }
  .tpr-chips{ list-style:none; margin:0 0 22px; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
  .tpr-chips li{ font:500 12px/1 'Noto Sans JP'; background:#F5F5F3; padding:9px 12px; }
  .tpr-btn{ display:block; text-align:center; background:#1A1A1A; color:#fff; text-decoration:none; font:700 14px/1.3 'Zen Maru Gothic',sans-serif; letter-spacing:.06em; padding:17px 24px; transition:background .25s ease; }
  @media (hover:hover){ .tpr-btn:hover{ background:#3A3A40; } }
  .tpr-card__note{ font:400 11px/1.8 'Noto Sans JP'; color:#9C9C97; margin:12px 0 0; }
  .tpr-fees{ margin:0; border-top:1px solid #E4E4E0; }
  .tpr-fees div{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:14px 0; border-bottom:1px solid #E4E4E0; }
  .tpr-fees dt{ font:400 13px/1 'Noto Sans JP'; color:#6C6C76; }
  .tpr-fees dd{ margin:0; display:flex; align-items:baseline; gap:.5em; }
  .tpr-fees s{ font:400 14px/1 'Ibarra Real Nova',serif; color:#9C9C97; text-decoration-color:#C9C8C3; }
  .tpr-fees i{ font-style:normal; font-size:12px; color:#9C9C97; }
  .tpr-fees b{ font:400 26px/1 'Ibarra Real Nova',serif; }
  .tpr-fees span{ font:400 11px/1 'Noto Sans JP'; color:#9C9C97; }
  .tpr-card__gift{ margin:auto 0 0; padding-top:18px; font:400 12.5px/1.9 'Noto Sans JP'; color:#6E6E6A; }
  .tpr-card__gift b{ display:inline-block; font:700 10px/1 'Zen Maru Gothic',sans-serif; letter-spacing:.1em; border:1px solid #1A1A1A; padding:5px 8px; margin-right:.7em; vertical-align:1px; }

  .tpr__plans{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
  .tpr-plan{ background:#fff; border:1px solid #E4E4E0; padding:clamp(22px,2.4vw,30px) clamp(22px,2.4vw,32px); }
  .tpr-plan--pop{ border-color:#1A1A1A; }
  .tpr-plan__head{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 14px; }
  .tpr-plan__freq{ margin:0; font:500 13px/1 'Noto Sans JP'; color:#6C6C76; display:flex; align-items:baseline; gap:.12em; }
  .tpr-plan__freq b{ font:400 34px/1 'Ibarra Real Nova',serif; color:#1A1A1A; }
  .tpr-plan__tag{ font:700 10px/1 'Zen Maru Gothic',sans-serif; letter-spacing:.1em; color:#6C6C76; border:1px solid #E4E4E0; padding:6px 9px; white-space:nowrap; }
  .tpr-plan--pop .tpr-plan__tag{ color:#fff; background:#1A1A1A; border-color:#1A1A1A; }
  .tpr-plan__per{ margin:0 0 16px; display:flex; align-items:baseline; gap:.3em; flex-wrap:wrap; }
  .tpr-plan__per > small{ flex:0 0 100%; font:500 11px/1 'Noto Sans JP'; letter-spacing:.06em; color:#6C6C76; margin-bottom:8px; }
  .tpr-plan__per b{ font:400 clamp(40px,3.6vw,50px)/1 'Ibarra Real Nova',serif; letter-spacing:.005em; }
  .tpr-plan__per span{ font:400 13px/1 'Noto Sans JP'; color:#6C6C76; }
  .tpr-plan__per small{ font:400 11px/1 'Noto Sans JP'; color:#9C9C97; margin-left:.3em; }
  .tpr-plan__rows{ margin:0; border-top:1px solid #E4E4E0; }
  .tpr-plan__rows div{ display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding:9px 0; font:400 12.5px/1.5 'Noto Sans JP'; color:#6E6E6A; }
  .tpr-plan__rows dt small{ font-size:10.5px; color:#9C9C97; margin-left:.2em; }
  .tpr-plan__rows dd{ margin:0; font-feature-settings:'tnum'; }
  .tpr-plan__sum{ border-top:1px solid #E4E4E0; margin-top:2px; padding-top:11px !important; color:#1A1A1A !important; }
  .tpr-plan__sum dd{ font:700 14px/1.4 'Zen Maru Gothic',sans-serif; }
  .tpr__hint{ margin:16px 0 0; font:400 12px/1.8 'Noto Sans JP'; color:#9C9C97; }

  .tpr-terms{ margin:0; display:grid; grid-template-columns:repeat(4,1fr); background:#fff; border:1px solid #E4E4E0; }
  .tpr-terms div{ padding:22px 24px; }
  .tpr-terms div + div{ border-left:1px solid #E4E4E0; }
  .tpr-terms dt{ font:400 11px/1 'Noto Sans JP'; letter-spacing:.08em; color:#9C9C97; margin-bottom:12px; }
  .tpr-terms dd{ margin:0; display:flex; align-items:baseline; flex-wrap:wrap; gap:.4em; }
  .tpr-terms b{ font:400 26px/1 'Ibarra Real Nova',serif; }
  .tpr-terms dd b:lang(ja), .tpr-terms dd b{ font-family:'Ibarra Real Nova',serif; }
  .tpr-terms div:nth-child(2) b, .tpr-terms div:nth-child(3) b{ font:700 17px/1.3 'Zen Maru Gothic',sans-serif; }
  .tpr-terms span{ font:400 11px/1.5 'Noto Sans JP'; color:#9C9C97; }
  .tpr__foot{ margin:20px 0 0; font:400 12px/1.8 'Noto Sans JP'; color:#9C9C97; }

  @media (max-width:860px){
    .tpr-first{ grid-template-columns:1fr; }
    .tpr-first__fees{ border-left:0; border-top:1px solid #E4E4E0; }
    .tpr__plans{ grid-template-columns:1fr; }
    .tpr-plan--pop{ order:-1; }
    .tpr-terms{ grid-template-columns:1fr 1fr; }
    .tpr-terms div + div{ border-left:0; }
    .tpr-terms div:nth-child(even){ border-left:1px solid #E4E4E0; }
    .tpr-terms div:nth-child(n+3){ border-top:1px solid #E4E4E0; }
    }

  .tp-btns{ display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
  .tp-btn{ display:inline-flex; align-items:center; justify-content:center; gap:.6em; min-width:240px; padding:18px 28px; font:700 14px/1.2 'Zen Maru Gothic',sans-serif; letter-spacing:.06em; text-decoration:none; border:1px solid #1A1A1A; transition:background .25s ease, color .25s ease; }
  .tp-btn--solid{ background:#1A1A1A; color:#fff; }
  .tp-btn--ghost{ background:#fff; color:#1A1A1A; }
  @media (hover:hover){ .tp-btn--solid:hover{ background:#3A3A40; } .tp-btn--ghost:hover{ background:#EFEEEA; } }

  .tp-tabs__bar{ display:flex; gap:0; border-bottom:1px solid #E4E4E0; margin:0; overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
  .tp-tabs__bar::-webkit-scrollbar{ display:none; }
  .tp-tabs__bar button{ appearance:none; background:transparent; border:0; border-bottom:2px solid transparent; margin:0 0 -1px; padding:14px 18px; cursor:pointer; white-space:nowrap;
    font:700 13.5px/1 'Zen Maru Gothic',sans-serif; letter-spacing:.06em; color:#9C9C97; transition:color .25s ease, border-color .25s ease; }
  .tp-tabs__bar button.is-on{ color:#1A1A1A; border-bottom-color:#1A1A1A; }
  @media (hover:hover){ .tp-tabs__bar button:not(.is-on):hover{ color:#6C6C76; } }
  .tp-tabs__bar button:focus-visible{ outline:2px solid #1A1A1A; outline-offset:-2px; }
  .tp-tabs__panel[hidden]{ display:none; }

  @media (max-width:860px){
    .tp-btn{ width:100%; min-width:0; }
    .tp-tabs__bar button{ flex:1 1 0; padding:12px 4px; font-size:12px; letter-spacing:.02em; text-align:center; }
  }
  .site-mode-toggle{
    position:fixed; left:14px; bottom:14px; z-index:120;
    display:flex; gap:0; background:rgba(255,255,255,.94);
    border:1px solid #E4E4E0; -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    box-shadow:0 8px 24px -12px rgba(20,22,40,.2);
  }
  .site-mode-toggle button{
    appearance:none; border:0; background:transparent; cursor:pointer;
    font:600 10px/1 'Bricolage Grotesque',sans-serif; letter-spacing:.14em;
    padding:12px 14px; color:#9C9C97;
  }
  .site-mode-toggle button.is-on{ color:#1A1A1A; background:#EFEEEA; }
  @media (max-width:860px){
    .site-mode-toggle{ bottom:calc(72px + env(safe-area-inset-bottom)); left:10px; }
  }
