/*
Theme Name: Lightning Child
Theme URI: 
Template: lightning
Description: 
Author: 
Tags: 
Version: 0.6.0
*/

/* ===== ochacom migration: BEGIN (自動生成・手編集はここより下に) ===== */
/* =============================================================================
   お茶コン — デザインシステム (Lightning 子テーマ上書き)

   方針:
   - 文言のうち権利表記・大学名・出自訴求・法定ページは現行のまま (biz回答書 §1-B)。
   - 2026-07-23 内村指示により、見た目と営業導線は現代化する。
     「硬すぎる・敷居が高い・売る気がない」を解く方向で、
     余白/階層/導線で親しみやすさを出す (煽り装飾には頼らない)。
   - 読み手は歯科医院の院長・スタッフ。可読性を最優先。
   - 汎用テンプレ感を避けるため、影は薄く・角丸は控えめ・装飾は罫線と余白で作る。
     アクセント色は「無料」バッジ等ごく少数だけに使い、多用しない。
   ============================================================================= */

:root{
  --brand:#2f3192;
  --brand-2:#4b50c0;
  --brand-deep:#1e2064;
  --tint:#eef0fb;
  --tint-2:#f7f8fd;
  --accent:#c8791f;          /* 「無料」等のごく小さな強調のみ */
  --accent-bg:#fdf4e8;
  --ink:#191c26;
  --ink-soft:#474d60;
  --muted:#767d92;
  --line:#e5e8f1;
  --line-strong:#ccd2e4;
  --surface:#fff;
  --surface-soft:#f7f8fc;
  --r:12px;
  --r-sm:8px;
  --maxw:1080px;
  --shadow:0 1px 2px rgba(25,28,38,.04), 0 8px 24px -16px rgba(25,28,38,.18);
}

/* --- 基盤 ------------------------------------------------------------- */
body{
  color:var(--ink); background:var(--surface);
  font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP",
              "Yu Gothic Medium","Yu Gothic",Meiryo,system-ui,sans-serif;
  font-feature-settings:"palt" 1;
  line-height:1.9; letter-spacing:.02em;
  -webkit-font-smoothing:antialiased;
}
img,iframe{ max-width:100%; height:auto; }
.entry-body{ overflow-wrap:anywhere; }
.container{ max-width:var(--maxw); }
.site-body a{ color:var(--brand); text-underline-offset:.2em; }
.site-body a:hover{ color:var(--brand-deep); }
a:focus-visible,button:focus-visible,summary:focus-visible,
input:focus-visible,textarea:focus-visible{
  outline:2px solid var(--brand); outline-offset:2px; border-radius:4px;
}

/* =============================================================================
   ヘッダー / ナビゲーション
   ============================================================================= */
.site-header{
  background:rgba(255,255,255,.88);
  backdrop-filter:saturate(180%) blur(10px);
  -webkit-backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:100;
  transition:box-shadow .2s ease;
}
.site-header:hover{ box-shadow:0 1px 12px rgba(25,28,38,.05); }
/* 🔴 Lightning のヘッダーは "nav-float" レイアウト (nav は float:right)。
   ここに display:flex を被せると float が効かずナビがコンテナ外へ飛ぶ。
   レイアウトはテーマに任せ、余白と中身の見た目だけ調整する。 */
.site-header-container{
  padding-top:.55rem !important; padding-bottom:.55rem !important;
}
.site-header-logo{ margin:0; }
.site-header-logo a{
  display:block !important;
  width:min(268px,54vw) !important;
  height:calc(min(268px,54vw) * 86 / 438) !important;
  background:url("https://ochacom.jp/wp-content/uploads/2026/07/header_logo_202410.png") no-repeat left center !important;
  background-size:contain !important;
  transition:opacity .18s ease;
}
.site-header-logo a:hover{ opacity:.78; }
/* Lightning はスクロール時 (body.header_scrolled) にロゴを display:none にする。
   スクロール中もブランドとトップへの導線を残したいので表示を維持し、少し縮める。 */
body.header_scrolled .site-header-logo{ display:block !important; }
body.header_scrolled .site-header-logo a{
  width:min(212px,46vw) !important;
  height:calc(min(212px,46vw) * 86 / 438) !important;
}
/* Lightning はロゴ枠にサイトタイトルを文字で出す。背景画像と重なるので
   視覚的には隠し、読み上げ・SEO 用に DOM へは残す。 */
.site-header-logo a span{
  position:absolute !important; width:1px; height:1px; margin:-1px;
  padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}

/* float レイアウトのため折返し不可 (折り返すとロゴを押し出す)。
   項目は5つなので nowrap で収まる。 */
.global-nav-list{ display:flex; align-items:center; gap:.15rem; flex-wrap:nowrap; }
.global-nav-list > li > a{
  position:relative; display:block;
  padding:.62rem .9rem !important;
  border-radius:999px;
  font-size:.92rem; letter-spacing:.03em; color:var(--ink-soft) !important;
  text-decoration:none !important;
  transition:background .18s ease, color .18s ease;
}
.global-nav-list > li > a .global-nav-name{ font-weight:600; }
.global-nav-list > li > a:hover{
  background:var(--tint); color:var(--brand) !important;
}
.global-nav-list > li.current-menu-item > a,
.global-nav-list > li.current_page_item > a{
  color:var(--brand) !important; background:var(--tint);
}
/* Lightning 既定の装飾を消す。
   🔴 現在地の青い下線は li::before (position:absolute; border-bottom) で描かれており、
      border:0 だけでは消えず、丸ピルの背後に線が残る。 */
.global-nav-list > li{ border:0 !important; }
.global-nav-list > li::before,
.global-nav-list > li::after,
.global-nav-list > li > a::before,
.global-nav-list > li > a::after{ content:none !important; display:none !important; }

/* 最後のナビ項目 (ご購入にあたり) をボタン化して行動導線を作る */
.global-nav-list > li:last-child > a{
  background:var(--brand); color:#fff !important; padding:.62rem 1.15rem !important;
}
.global-nav-list > li:last-child > a:hover{ background:var(--brand-deep); color:#fff !important; }

@media (max-width:782px){
  .site-header-container{ padding-right:3.9rem !important; }
  .site-header-logo a{
    width:min(224px,62vw) !important;
    height:calc(min(224px,62vw) * 86 / 438) !important;
  }
}

/* モバイルメニューボタン: Lightning 既定は左上でロゴに重なるので右上へ寄せる。
   🔴 注意点2つ (2026-07-23 実機で判明):
   ① background ショートハンドで指定すると Lightning がアイコンを描いている
      background-image ごと消えて、空の四角になる → background-color で指定する。
   ② display を !important で指定すると、テーマがPCで非表示にしているのを
      上書きしてデスクトップにも四角が出る → display には触れない。
   そのため位置・見た目の調整のみをモバイル幅に限定して当てる。 */
@media (max-width:782px){
  .vk-mobile-nav-menu-btn{
    position:fixed !important;
    top:.5rem !important; right:.65rem !important; left:auto !important;
    width:2.9rem !important; height:2.9rem !important;
    background-color:#fff !important;
    background-position:center !important;
    border:1px solid var(--line-strong) !important;
    border-radius:var(--r-sm) !important;
    box-shadow:var(--shadow);
    z-index:1001 !important;
  }
}

/* =============================================================================
   ページ見出し帯 / パンくず
   ============================================================================= */
.page-header{
  background:linear-gradient(135deg,var(--brand) 0%,var(--brand-2) 100%) !important;
  padding:2.6rem 0 !important; border:0 !important;
}
.page-header .page-header-title,.page-header h1{
  color:#fff !important; margin:0 !important;
  font-size:clamp(1.32rem,1.08rem + 1vw,1.85rem) !important;
  font-weight:700; letter-spacing:.03em;
}
.breadcrumb{
  font-size:.78rem; padding:.85rem 0 !important;
  background:var(--surface-soft) !important; border-bottom:1px solid var(--line);
  color:var(--muted);
}
.breadcrumb a{ color:var(--ink-soft) !important; text-decoration:none; }
.breadcrumb a:hover{ color:var(--brand) !important; text-decoration:underline; }

/* =============================================================================
   本文の基本要素
   ============================================================================= */
.entry-body h2:not(.wp-block-post-title):not(.ocha-card__title){
  position:relative; margin:3.2rem 0 1.3rem; padding-bottom:.55rem;
  font-size:clamp(1.24rem,1.06rem + .72vw,1.58rem);
  font-weight:700; line-height:1.55; color:var(--ink);
  border-bottom:1px solid var(--line);
}
.entry-body h2:not(.wp-block-post-title):not(.ocha-card__title)::after{
  content:""; position:absolute; left:0; bottom:-1px;
  width:52px; height:3px; border-radius:2px;
  background:linear-gradient(90deg,var(--brand),var(--brand-2));
}
.entry-body h2:first-child{ margin-top:.6rem; }
.entry-body h3{
  margin:2.3rem 0 .9rem; padding-left:.7rem;
  font-size:1.06rem; font-weight:700; line-height:1.6;
  border-left:3px solid var(--brand);
}
.entry-body p{ margin:0 0 1.25em; }
.entry-body p.note{ font-size:.85rem; color:var(--muted); line-height:1.8; margin:.3em 0 1em; }

.entry-body ul:not(.wp-block-gallery):not(.wp-block-post-template):not(.ocha-trust):not(.ocha-plan__feat):not(.ocha-rot__track){
  list-style:none; padding:0; margin:0 0 1.6em; display:grid; gap:.5rem;
}
.entry-body ul:not(.wp-block-gallery):not(.wp-block-post-template):not(.ocha-trust):not(.ocha-plan__feat):not(.ocha-rot__track) > li{
  position:relative; padding-left:1.5rem; line-height:1.85;
}
.entry-body ul:not(.wp-block-gallery):not(.wp-block-post-template):not(.ocha-trust):not(.ocha-plan__feat):not(.ocha-rot__track) > li::before{
  content:""; position:absolute; left:.35rem; top:.78em;
  width:6px; height:6px; border-radius:50%; background:var(--brand);
}

/* --- 表 --------------------------------------------------------------- */
.entry-body .wp-block-table{ overflow-x:auto; margin:0 0 1.8em; }
.entry-body .wp-block-table table{
  width:100%; border-collapse:collapse; font-size:.95rem;
  border:1px solid var(--line); border-radius:var(--r); overflow:hidden;
}
.entry-body .wp-block-table th,.entry-body .wp-block-table td{
  padding:.95em 1.05em; text-align:left; vertical-align:top;
  border:0; border-bottom:1px solid var(--line); line-height:1.75;
}
.entry-body .wp-block-table thead th{
  background:var(--brand); color:#fff; font-weight:600;
  font-size:.86rem; letter-spacing:.05em; white-space:nowrap;
}
.entry-body .wp-block-table tbody tr:last-child td{ border-bottom:0; }
.entry-body .wp-block-table tbody tr:nth-child(even){ background:var(--surface-soft); }
.entry-body .wp-block-table table:not(:has(thead)) td:first-child{
  width:30%; white-space:nowrap; font-weight:600;
  background:var(--surface-soft); color:var(--ink-soft);
}
@media (max-width:600px){
  .entry-body .wp-block-table table:not(:has(thead)) td:first-child{ width:auto; white-space:normal; }
  .entry-body .wp-block-table th,.entry-body .wp-block-table td{ padding:.75em .8em; }
}

/* --- ギャラリー -------------------------------------------------------- */
.entry-body .wp-block-gallery.has-nested-images{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  gap:1rem !important; margin:0 0 2.4em;
}
.entry-body .wp-block-gallery.has-nested-images figure.wp-block-image{
  width:auto !important; max-width:none !important; flex:none !important;
  display:flex; flex-direction:column;
  border:1px solid var(--line); border-radius:var(--r);
  background:var(--surface-soft); padding:.6rem;
  transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.entry-body .wp-block-gallery.has-nested-images figure.wp-block-image:hover{
  border-color:var(--line-strong); transform:translateY(-2px); box-shadow:var(--shadow);
}
.entry-body .wp-block-gallery.has-nested-images figure.wp-block-image img{
  width:100%; aspect-ratio:4 / 3; object-fit:contain;
  background:#fff; border-radius:6px;
}
.entry-body .wp-block-gallery.has-nested-images figure.wp-block-image figcaption{
  position:static !important; background:none !important;
  max-height:none !important; overflow:visible !important;
  margin:0 !important; padding:.55rem .2rem 0 !important;
  font-size:.78rem; line-height:1.55; color:var(--ink-soft); text-align:left;
}
.entry-body > .wp-block-image{ margin:.4rem 0 2.2rem; }
.entry-body > .wp-block-image img{ border:1px solid var(--line); border-radius:var(--r); }

/* =============================================================================
   ボタン
   ============================================================================= */
.ocha-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  min-height:3.2rem; padding:0 1.9rem;
  border-radius:999px; border:1.5px solid transparent;
  font-size:.98rem; font-weight:700; letter-spacing:.04em;
  text-decoration:none !important; transition:all .18s ease;
}
.ocha-btn--primary{
  background:linear-gradient(135deg,var(--brand) 0%,var(--brand-2) 100%);
  color:#fff !important; box-shadow:0 6px 18px -10px rgba(47,49,146,.75);
}
.ocha-btn--primary:hover{ filter:brightness(1.08); transform:translateY(-1px); color:#fff !important; }
.ocha-btn--ghost{ background:#fff; color:var(--brand) !important; border-color:var(--line-strong); }
.ocha-btn--ghost:hover{ border-color:var(--brand); background:var(--tint); }
/* 既存ユーザー向け導線 (ダウンロード)。新規向けの2つより一段控えめにする。
   2026-07-28 施主要望⑤ — 目立たせすぎず、しかしファーストビューに置く。 */
.ocha-btn--quiet{
  background:transparent; color:var(--ink-soft) !important;
  border-color:var(--line-strong); font-weight:600;
}
.ocha-btn--quiet:hover{ border-color:var(--brand); color:var(--brand) !important; background:#fff; }
.ocha-btn span{
  padding:.14em .6em; border-radius:999px;
  background:var(--accent-bg); color:var(--accent);
  font-size:.7rem; font-weight:700; letter-spacing:.08em;
}
.ocha-btn--primary span{ background:rgba(255,255,255,.22); color:#fff; }

/* =============================================================================
   トップページ
   ============================================================================= */
.ocha-sec{ margin:0 0 4rem; }
.ocha-sec-head{ margin:0 0 1.6rem; }
.ocha-sec-head h2{
  position:relative; margin:0 0 .5rem !important; padding-bottom:.55rem !important;
  font-size:clamp(1.24rem,1.06rem + .72vw,1.58rem); font-weight:700; color:var(--ink);
  border-bottom:1px solid var(--line);
}
.ocha-sec-head h2::after{
  content:""; position:absolute; left:0; bottom:-1px; width:52px; height:3px;
  border-radius:2px; background:linear-gradient(90deg,var(--brand),var(--brand-2));
}
.ocha-sec-head p{ margin:.8rem 0 0 !important; color:var(--ink-soft); font-size:.95rem; }
.ocha-sec-head--row{ display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; }
.ocha-sec-head--row h2{ flex:1; margin-bottom:0 !important; }
.ocha-more{ flex:none; font-size:.88rem; text-decoration:none; padding-bottom:.6rem; white-space:nowrap; }
.ocha-more:hover{ text-decoration:underline; }

/* --- ヒーロー ---------------------------------------------------------- */
.ocha-hero{
  position:relative; margin:0 0 3.6rem;
  padding:clamp(2rem,1.2rem + 2.6vw,3.2rem) 0 clamp(2rem,1.2rem + 2.4vw,3rem);
}
.ocha-hero::before{
  content:""; position:absolute; inset:-2rem calc(50% - 50vw) 0;
  background:
    radial-gradient(60rem 22rem at 12% -10%, var(--tint) 0%, transparent 62%),
    linear-gradient(180deg,var(--tint-2) 0%, #fff 78%);
  z-index:-1;
}
/* ヒーロー: PCは2カラム(テキスト+製品ビジュアル)、モバイルは縦積み */
.ocha-hero{ display:block; }
.ocha-hero .ocha-hero__body{ position:relative; z-index:1; }
@media (min-width:861px){
  .ocha-hero{
    display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
    gap:2.4rem; align-items:center;
  }
}
.ocha-hero__visual{ position:relative; z-index:1; }
.ocha-shot{
  margin:0; border-radius:var(--r); overflow:hidden;
  border:1px solid var(--line); background:#0f1222;
  box-shadow:0 24px 60px -28px rgba(31,33,95,.5);
}
.ocha-shot img{ display:block; width:100%; height:auto; }
.ocha-shot figcaption{
  padding:.6rem 1rem; font-size:.78rem; color:var(--muted);
  background:#fff; border-top:1px solid var(--line); text-align:center;
}
@media (max-width:860px){
  .ocha-hero__visual{ margin-top:2rem; max-width:520px; }
}
/* 製作クレジット。旧サイトではヘッダーロゴ画像(438x86)に焼き込まれていて存在感が
   あった。テキスト化で弱くなったため拡大する (2026-07-28 施主要望①-c)。
   金額(.ocha-hero__price-item b)より視覚的に軽くならないこと。 */
.ocha-hero__eyebrow{
  margin:0 0 1rem !important; font-size:.95rem; font-weight:700;
  letter-spacing:.1em; line-height:1.6; color:var(--brand);
}
@media (max-width:560px){
  .ocha-hero__eyebrow{ font-size:.88rem; letter-spacing:.06em; }
}
.ocha-hero__title{
  margin:0 0 1.15rem;
  font-size:clamp(1.72rem,1.1rem + 2.6vw,2.9rem);
  font-weight:800; line-height:1.38; letter-spacing:.005em; color:var(--ink);
}
.ocha-hero__lead{
  max-width:42em; margin:0 0 2rem !important;
  font-size:clamp(.97rem,.94rem + .18vw,1.07rem); color:var(--ink-soft); line-height:2.05;
}
.ocha-hero__lead strong{ color:var(--ink); font-weight:700; }
/* ヒーローの価格。見出しが「比べてください。これがレセコンの適正価格です。」なので、
   同じ視界に必ず金額が入るようにする (2026-07-23 内村指摘)。 */
/* 施主要望②(2026-07-28)「ソフト本体金額と年間保守金額の数字を揃える」。
   横並び(flex)ではラベル字数(5字/4字)と後置注記の差で桁位置がずれていた。
   → 2行 x 3列のグリッドにし、item は display:contents で列に直接流す。
      列1=ラベル / 列2=数値(右揃え・tabular-nums) / 列3=単位・注記。
   金額のサイズは①-cで縮小 (クレジットより重くしない)。 */
.ocha-hero__price{
  display:grid; grid-template-columns:auto auto 1fr;
  align-items:baseline; gap:.55rem 1rem;
  margin:0 0 1.9rem !important; padding:1rem 1.35rem;
  background:#fff; border:1px solid var(--line); border-radius:var(--r);
  box-shadow:var(--shadow); width:fit-content; max-width:100%;
}
.ocha-hero__price-item{ display:contents; }
.ocha-hero__price-item em{
  font-style:normal; font-size:.8rem; font-weight:700; color:var(--muted);
  letter-spacing:.06em; white-space:nowrap;
}
.ocha-hero__price-item b{
  font-size:clamp(1.25rem,1.05rem + .7vw,1.6rem); font-weight:800; color:var(--ink);
  letter-spacing:-.01em; font-variant-numeric:tabular-nums;
  text-align:right; white-space:nowrap;
}
.ocha-hero__price-item i{
  font-style:normal; font-size:.8rem; color:var(--ink-soft); white-space:nowrap;
}
.ocha-hero__price-item i small{
  margin-left:.5em; font-size:.74rem; color:var(--muted);
}
@media (max-width:560px){
  .ocha-hero__price{ gap:.5rem .7rem; padding:.9rem 1rem; }
  /* 注記は行内に収まらないので単位の下へ落とす (桁揃えは維持) */
  .ocha-hero__price-item i small{ display:block; margin-left:0; }
}

.ocha-hero__actions{ display:flex; flex-wrap:wrap; gap:.8rem; }
.ocha-trust{
  display:flex; flex-wrap:wrap; gap:.5rem .6rem;
  list-style:none; padding:0 !important; margin:2rem 0 0 !important;
}
.ocha-trust li{
  display:flex; align-items:center; gap:.5em;
  padding:.42rem .95rem .42rem .8rem;
  background:#fff; border:1px solid var(--line);
  border-radius:999px; font-size:.83rem; color:var(--ink-soft);
}
.ocha-trust li::before{
  content:""; flex:none; width:1.05em; height:1.05em; border-radius:50%;
  background:var(--brand);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.4 11.6 3 8.2l1.1-1.1 2.3 2.3 5.5-5.5L13 5z' fill='%23fff'/%3E%3C/svg%3E") center/1.6em no-repeat,
  linear-gradient(#000,#000);
  -webkit-mask-composite:xor; mask-composite:exclude;
}
.sp-only{ display:none; }
@media (max-width:640px){ .sp-only{ display:inline; } }

/* --- ヒーローの「動く画面」(旧 jQuery FractionSlider の代替・①A案) --------
   2026-07-28 施主指摘「サイトを開いた時の動く画面が無くなったのが気になる」。
   旧スライダーは訴求文が画像内文字だったため、移行時のテキスト化で動きが消えた。
   ここでは「こんなお悩み」= WORRY_ITEMS の【問】→【答】を1件ずつ自動で切り替える。
   - 素の状態(JSなし / reduced-motion)は **先頭1件のみの静的表示**。
     残りは同ページ下部の #worries に全件あるので、内容は必ず読める。
   - JS が付くと .is-enhanced が付き、全スライドを重ねて切り替える。
     重ね置きは grid-area:1/1 なので、箱の高さは最長スライドで固定 = 表示が跳ねない。
   - 文字はテキストのまま。モバイルでも読め、SEO も維持される。 */
.ocha-rot{
  grid-column:1 / -1; position:relative; z-index:1;
  margin-top:2.2rem; padding:1.15rem 1.35rem 1rem;
  border:1px solid var(--line); border-radius:var(--r);
  background:linear-gradient(135deg,var(--tint) 0%,#fff 68%);
}
.ocha-rot__track{ list-style:none; margin:0 !important; padding:0 !important; }
/* 🔴 li の既定マージン(8px)を必ず殺すこと。
   JS は track の高さをスライドの高さで固定するが、マージンは offsetHeight にも
   scrollHeight にも入らない。放置すると「上に8px押し下げられた分」だけ下端が
   overflow:hidden で切れる (2026-07-29 user 指摘の「お茶コンならの下が切れる」)。
   padding-bottom は【答】が translateY(.35rem=5.6px) から入ってくる分の逃げ場。 */
.ocha-rot__slide{ display:none; margin:0 !important; padding-bottom:.4rem; }
.ocha-rot__slide[data-first]{ display:block; }
.ocha-rot__q,.ocha-rot__a{ margin:0 !important; padding-left:5.4rem; position:relative; line-height:1.8; }
.ocha-rot__q{ font-size:.98rem; font-weight:700; color:var(--ink); }
.ocha-rot__a{ margin-top:.55rem !important; font-size:.92rem; color:var(--ink-soft); }
/* 先頭の span だけがラベル(お悩み/お茶コンなら)。
   .ocha-rot__note も span なので :first-child で限定する。 */
.ocha-rot__q > span:first-child,.ocha-rot__a > span:first-child{
  position:absolute; left:0; top:.1em;
  display:inline-flex; align-items:center; justify-content:center;
  width:4.6rem; padding:.2em 0; border-radius:999px;
  font-size:.72rem; font-weight:700; letter-spacing:.04em;
}
.ocha-rot__q > span:first-child{ background:#fff; color:var(--muted); border:1px solid var(--line); }
.ocha-rot__a > span:first-child{ background:var(--brand); color:#fff; }
.ocha-rot__note{ display:block; margin-top:.15rem; font-size:.82rem; color:var(--muted); }
.ocha-rot__bar{
  display:flex; align-items:center; justify-content:flex-end; gap:1.1rem;
  margin:.75rem 0 0 !important;
}
.ocha-rot__toggle{
  background:none; border:0; padding:.2rem .1rem; cursor:pointer;
  font-size:.78rem; color:var(--muted); text-decoration:underline;
}
.ocha-rot__toggle:hover{ color:var(--brand); }
.ocha-rot__all{ font-size:.8rem; white-space:nowrap; }
/* JS 有効時のみ: 重ね置き + フェード切替。【問】が出た少し後に【答】が出る
   (旧スライダーの 問→答 のリズムを踏襲) */
/* 🔴 箱の高さは CSS だけで決まるようにする。JS でピクセル高さを測って
   固定する方式は、幅・ズーム・フォント差し替えのたびに古い値が残り、
   下端が切れる事故を繰り返した (2026-07-29 に2度発生)。
   非アクティブなスライドを position:absolute で流し込みから外し、
   アクティブなものだけを通常フローに残せば、**箱の高さ = 今出ている
   スライドの高さ** に常に一致する。採寸も overflow:hidden も不要で、
   どの幅・どのフォントでも構造的に切れない。 */
.ocha-rot.is-enhanced .ocha-rot__track{ display:block; position:relative; }
/* 退場側はフェードさせない。絶対配置のまま薄れると、入場中のスライドに
   文字が重なって見えるうえ、箱より背が高い場合は下にはみ出して見える。
   「消えるのは即座 / 出てくるものだけがフェードイン」にする。 */
.ocha-rot.is-enhanced .ocha-rot__slide{
  display:block; position:absolute; top:0; left:0; right:0;
  opacity:0; visibility:hidden; transform:translateY(.5rem);
}
.ocha-rot.is-enhanced .ocha-rot__slide.is-active{
  position:static; opacity:1; visibility:visible; transform:none;
  transition:opacity .5s ease, transform .5s ease;
}
.ocha-rot.is-enhanced .ocha-rot__a{
  opacity:0; transform:translateY(.35rem);
  transition:opacity .45s ease, transform .45s ease;
}
.ocha-rot.is-enhanced .ocha-rot__slide.is-answered .ocha-rot__a{ opacity:1; transform:none; }
@media (max-width:600px){
  .ocha-rot{ padding:1rem 1rem .85rem; }
  .ocha-rot__q,.ocha-rot__a{ padding-left:0; padding-top:1.9rem; }
  .ocha-rot__q > span:first-child,.ocha-rot__a > span:first-child{ top:0; }
  .ocha-rot__bar{ justify-content:space-between; gap:.6rem; }
}

/* --- 価格 -------------------------------------------------------------- */
.ocha-price{ margin:0 0 4rem; scroll-margin-top:5rem; }
.ocha-price__grid{
  display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}
.ocha-plan{
  padding:1.7rem 1.5rem; border:1px solid var(--line); border-radius:var(--r);
  background:#fff; transition:border-color .18s ease, box-shadow .18s ease;
}
.ocha-plan:hover{ border-color:var(--line-strong); box-shadow:var(--shadow); }
.ocha-plan--alt{ border-color:var(--brand); background:linear-gradient(180deg,var(--tint-2),#fff); }
.ocha-plan__name{
  margin:0 0 .5rem !important; font-size:.86rem; font-weight:700;
  letter-spacing:.12em; color:var(--brand); text-transform:uppercase;
}
.ocha-plan__price{
  margin:0 0 .7rem !important; font-size:1.02rem; font-weight:700; color:var(--ink);
}
.ocha-plan__price span{
  font-size:1.85rem; letter-spacing:-.01em; margin-right:.12em;
  font-variant-numeric:tabular-nums;
}
.ocha-plan__note{ margin:0 !important; font-size:.85rem; color:var(--ink-soft); line-height:1.8; }
.ocha-plan__price small{ font-size:.8rem; font-weight:500; color:var(--muted); margin-left:.2em; }
.ocha-plan__badge{
  display:inline-block; margin:0 0 .6rem !important; padding:.2rem .7rem;
  border-radius:999px; background:var(--brand); color:#fff;
  font-size:.7rem; font-weight:700; letter-spacing:.08em;
}
.ocha-plan__diff{
  margin:.9rem 0 0 !important; padding-top:.8rem; border-top:1px dashed var(--line-strong);
  font-size:.83rem; color:var(--ink-soft);
}
.ocha-plan__diff strong{ color:var(--brand); font-weight:700; }
.ocha-plan--sub{ background:var(--surface-soft); }

/* プランごとの機能有無。差が一目で分かるよう ○/− を記号で示す */
.ocha-plan__feat{
  list-style:none; padding:0 !important; margin:1rem 0 0 !important;
  display:grid !important; gap:.45rem !important;
}
.ocha-plan__feat li{
  position:relative; padding-left:1.6rem !important;
  font-size:.85rem; line-height:1.7; color:var(--ink-soft);
}
.ocha-plan__feat li::before{
  position:absolute; left:0; top:0;
  width:1.15rem !important; height:1.15rem !important;
  display:grid; place-items:center; border-radius:50% !important;
  font-size:.7rem; font-weight:700;
}
/* ○ の글리프は小さく見えづらいので、塗りの丸+チェックで有無を明確にする */
.ocha-plan__feat li.is-on::before{
  content:""; background:var(--brand) !important;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.4 11.6 3 8.2l1.1-1.1 2.3 2.3 5.5-5.5L13 5z' fill='%23000'/%3E%3C/svg%3E") center/.85rem no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M6.4 11.6 3 8.2l1.1-1.1 2.3 2.3 5.5-5.5L13 5z' fill='%23000'/%3E%3C/svg%3E") center/.85rem no-repeat;
}
.ocha-plan__feat li.is-off::before{
  content:""; background:var(--line-strong) !important;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='3.5' y='7.2' width='9' height='1.6' rx='.8' fill='%23000'/%3E%3C/svg%3E") center/.85rem no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Crect x='3.5' y='7.2' width='9' height='1.6' rx='.8' fill='%23000'/%3E%3C/svg%3E") center/.85rem no-repeat;
}
.ocha-plan__feat li.is-off{ color:var(--muted); }
.ocha-plan__feat li strong{ color:var(--ink); font-weight:700; }

.ocha-price__banner{
  margin:1.5rem 0 0 !important; padding:.9rem 1.1rem;
  border-radius:var(--r); background:var(--tint);
  font-size:.92rem; font-weight:600; color:var(--brand); text-align:center;
}

/* 製品ページの表内で「機能なし」を弱く見せる */
.entry-body .wp-block-table .is-off{ color:var(--muted); font-size:.9em; }

/* サイドバーの外部リンク (Facebook / 歯科同窓会) */
.ocha-side-links{ display:grid; gap:.5rem; margin:1.1rem 0 0 !important; }
.ocha-side-link{
  display:block; padding:.7rem .9rem;
  border:1px solid var(--line-strong); border-radius:var(--r-sm);
  background:#fff; font-size:.83rem; line-height:1.5;
  color:var(--ink-soft) !important; text-decoration:none !important;
  transition:border-color .16s ease, background .16s ease;
}
.ocha-side-link:hover{ border-color:var(--brand); background:var(--tint-2); color:var(--brand) !important; }
.ocha-side-link--fb{
  display:flex; align-items:center; gap:.55em; font-weight:600;
}
.ocha-side-link--fb::before{
  content:""; flex:none; width:1.1em; height:1.1em; border-radius:3px;
  background:#1877f2;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.5 21v-8h2.7l.4-3.1h-3.1V7.9c0-.9.25-1.5 1.55-1.5H16.7V3.6C16.4 3.56 15.4 3.47 14.2 3.47c-2.5 0-4.2 1.53-4.2 4.34V9.9H7.3V13H10v8z' fill='%23000'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M13.5 21v-8h2.7l.4-3.1h-3.1V7.9c0-.9.25-1.5 1.55-1.5H16.7V3.6C16.4 3.56 15.4 3.47 14.2 3.47c-2.5 0-4.2 1.53-4.2 4.34V9.9H7.3V13H10v8z' fill='%23000'/%3E%3C/svg%3E") center/contain no-repeat;
}
.ocha-price__foot{
  margin:1.2rem 0 0 !important; font-size:.87rem; color:var(--muted);
}
.ocha-price__foot a{ margin-left:.6em; font-weight:600; text-decoration:none; white-space:nowrap; }
.ocha-price__foot a:hover{ text-decoration:underline; }

/* --- 選ばれる理由 ------------------------------------------------------- */
.ocha-features{
  display:grid; gap:1.1rem; grid-template-columns:repeat(auto-fit,minmax(258px,1fr));
}
.ocha-card{
  padding:1.7rem 1.5rem 1.6rem;
  border:1px solid var(--line); border-radius:var(--r); background:#fff;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.ocha-card:hover{ border-color:var(--line-strong); box-shadow:var(--shadow); transform:translateY(-2px); }
.ocha-card__ico{
  display:inline-flex; align-items:center; justify-content:center;
  width:2.9rem; height:2.9rem; margin-bottom:.85rem;
  border-radius:12px; background:var(--tint); color:var(--brand);
}
.ocha-ico{ width:1.55rem; height:1.55rem; }
.ocha-card__num{
  display:inline-block; margin:0 0 .7rem !important;
  padding:.18rem .7rem; border-radius:999px; background:var(--tint-2);
  font-size:.72rem; font-weight:700; letter-spacing:.1em; color:var(--muted);
}
.ocha-card__ico + .ocha-card__num{
  margin-left:.6rem !important; vertical-align:.5em;
}
.ocha-card__title{
  margin:0 0 .85rem !important; padding:0 !important; border:0 !important;
  font-size:1.08rem !important; font-weight:700; line-height:1.6; color:var(--ink);
}
.ocha-card__title::after{ display:none !important; }
.ocha-card p{ font-size:.92rem; line-height:1.9; color:var(--ink-soft); }
.ocha-card p:last-child{ margin:0 !important; }
@media (max-width:820px){
  .ocha-features{ grid-template-columns:1fr; }
  .ocha-card{ padding:1.5rem 1.3rem; }
}

/* --- よくあるご質問 ------------------------------------------------------ */
.ocha-faq{ border-top:1px solid var(--line); }
.ocha-faq__item{ border-bottom:1px solid var(--line); }
.ocha-faq__item summary{
  display:flex; align-items:flex-start; gap:.9rem;
  padding:1.15rem .4rem 1.15rem 0; cursor:pointer; list-style:none;
  font-size:.98rem; font-weight:600; color:var(--ink); line-height:1.7;
  transition:color .16s ease;
}
.ocha-faq__item summary::-webkit-details-marker{ display:none; }
.ocha-faq__item summary::before{
  content:"Q"; flex:none;
  width:1.7rem; height:1.7rem; margin-top:.1rem;
  display:grid; place-items:center; border-radius:50%;
  background:var(--tint); color:var(--brand);
  font-size:.78rem; font-weight:700;
}
.ocha-faq__item summary::after{
  content:""; flex:none; margin-left:auto; margin-top:.55rem;
  width:.6rem; height:.6rem; border-right:2px solid var(--muted);
  border-bottom:2px solid var(--muted); transform:rotate(45deg);
  transition:transform .2s ease;
}
.ocha-faq__item[open] summary{ color:var(--brand); }
.ocha-faq__item[open] summary::after{ transform:rotate(-135deg); margin-top:.85rem; }
.ocha-faq__item summary:hover{ color:var(--brand); }
.ocha-faq__a{ padding:0 .4rem 1.3rem 2.6rem; }
.ocha-faq__a p{ margin:0 !important; font-size:.93rem; color:var(--ink-soft); line-height:1.95; }

/* --- はじめての方へ (3ステップ) ------------------------------------------ */
.ocha-steps{
  list-style:none; padding:0 !important; margin:0 !important;
  display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(232px,1fr));
  counter-reset:step;
}
.ocha-steps > li{
  position:relative; padding:1.6rem 1.4rem !important;
  border:1px solid var(--line); border-radius:var(--r); background:#fff;
}
.ocha-steps > li::before{ display:none !important; }
.ocha-steps__n{
  display:grid; place-items:center; width:2.1rem; height:2.1rem; margin-bottom:.9rem;
  border-radius:50%; background:var(--brand); color:#fff;
  font-size:.92rem; font-weight:700;
}
.ocha-steps h3{
  margin:0 0 .5rem !important; padding:0 !important; border:0 !important;
  font-size:1rem !important; font-weight:700; color:var(--ink);
}
.ocha-steps p{ margin:0 0 .9rem !important; font-size:.89rem; color:var(--ink-soft); line-height:1.85; }
.ocha-steps a{ font-size:.88rem; font-weight:600; text-decoration:none; }
.ocha-steps a:hover{ text-decoration:underline; }

/* --- 新着情報 ----------------------------------------------------------- */
.entry-body .wp-block-query{ margin:0 0 4rem; }
.wp-block-post-template{ list-style:none !important; padding:0 !important; margin:0 !important; }
.wp-block-query .wp-block-post{ padding:0 !important; }
.wp-block-query .wp-block-post::before{ display:none !important; }
.wp-block-query .wp-block-group{
  gap:1.4rem; align-items:baseline;
  padding:1rem .3rem; border-bottom:1px solid var(--line);
  transition:background .16s ease;
}
.wp-block-query .wp-block-group:hover{ background:var(--tint-2); }
.wp-block-query .wp-block-post-date{
  flex:0 0 6rem; color:var(--muted); font-size:.82rem;
  letter-spacing:.05em; font-variant-numeric:tabular-nums;
}
.entry-body .wp-block-post-title{
  background:none !important; border:0 !important; padding:0 !important; margin:0 !important;
  font-size:.96rem !important; font-weight:500; line-height:1.75;
}
.entry-body .wp-block-post-title::after{ display:none !important; }
.entry-body .wp-block-post-title a{ color:var(--ink) !important; text-decoration:none; }
.entry-body .wp-block-post-title a:hover{ color:var(--brand) !important; text-decoration:underline; }
@media (max-width:600px){
  .wp-block-query .wp-block-group{ flex-wrap:wrap !important; gap:.25rem; padding:.9rem .1rem; }
  .wp-block-query .wp-block-post-date{ flex-basis:100%; }
}

/* --- こんなお悩みはありませんか (旧スライダー画像のテキスト化) ----------- */
.ocha-worry{ display:grid; gap:1rem; }
.ocha-worry__item{
  display:grid; gap:.7rem; padding:1.5rem 1.5rem;
  border:1px solid var(--line); border-radius:var(--r); background:#fff;
}
.ocha-worry__q,.ocha-worry__a{ margin:0 !important; line-height:1.85; }
.ocha-worry__q{
  padding-left:5.4rem; position:relative;
  font-size:1rem; font-weight:700; color:var(--ink);
}
.ocha-worry__a{
  padding-left:5.4rem; position:relative;
  font-size:.95rem; color:var(--ink-soft);
}
.ocha-worry__q span,.ocha-worry__a span{
  position:absolute; left:0; top:.1em;
  display:inline-flex; align-items:center; justify-content:center;
  width:4.6rem; padding:.2em 0; border-radius:999px;
  font-size:.72rem; font-weight:700; letter-spacing:.04em;
}
.ocha-worry__q span{ background:var(--surface-soft); color:var(--muted); }
.ocha-worry__a span{ background:var(--brand); color:#fff; }
.ocha-worry__a strong{ color:var(--brand); font-weight:700; }
/* 施主要望④(2026-07-28): お応えへの補足を「枠内に」小さく置く。
   本文と区別がつくよう muted + 小さめ、回答のインデントに揃える。 */
.ocha-worry__note{
  margin:-.25rem 0 0 !important; padding-left:5.4rem;
  font-size:.84rem; line-height:1.7; color:var(--muted);
}
@media (max-width:600px){
  .ocha-worry__item{ padding:1.2rem 1.1rem; }
  .ocha-worry__q,.ocha-worry__a{ padding-left:0; padding-top:1.9rem; }
  .ocha-worry__q span,.ocha-worry__a span{ top:0; }
  .ocha-worry__note{ padding-left:0; }
}

/* --- お茶コンの特長 (単独メッセージのテキスト化) ------------------------- */
.ocha-points{
  display:grid; gap:1rem; grid-template-columns:repeat(auto-fit,minmax(268px,1fr));
}
.ocha-point{
  padding:1.6rem 1.5rem; border:1px solid var(--line);
  border-radius:var(--r); background:var(--surface-soft);
}
.ocha-point__ico{
  display:inline-flex; align-items:center; justify-content:center;
  width:2.7rem; height:2.7rem; margin-bottom:.85rem;
  border-radius:12px; background:#fff; border:1px solid var(--line); color:var(--brand);
}
.ocha-point h3{
  margin:0 0 .7rem !important; padding:0 !important;
  border:0 !important;
  font-size:1.04rem !important; font-weight:700; color:var(--ink);
}
.ocha-point p{ margin:0 !important; font-size:.92rem; color:var(--ink-soft); line-height:1.9; }
.ocha-point strong{ color:var(--brand); font-weight:700; }

/* --- 機能グリッド (アイコン付き箇条書き) -------------------------------- */
.ocha-featgrid{
  list-style:none !important; padding:0 !important; margin:0 0 1.4em !important;
  display:grid !important; gap:.6rem !important;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
.ocha-feat{
  display:flex; align-items:center; gap:.7rem;
  padding:.75rem .95rem; border:1px solid var(--line); border-radius:var(--r-sm);
  background:#fff; font-size:.93rem; line-height:1.6; color:var(--ink);
}
.ocha-feat::before{ display:none !important; }
.ocha-feat__ico{
  flex:none; display:inline-flex; color:var(--brand);
}
.ocha-feat__ico .ocha-ico{ width:1.3rem; height:1.3rem; }

/* --- 導入フロー (番号つきステップ) -------------------------------------- */
.ocha-flow{
  list-style:none !important; padding:0 !important; margin:1.5rem 0 !important;
  counter-reset:none;
}
.ocha-flow__step{
  position:relative; display:grid; grid-template-columns:auto 1fr;
  gap:1.2rem; padding:0 0 2rem 0;
}
.ocha-flow__step::before{ display:none !important; }
.ocha-flow__step:not(:last-child) .ocha-flow__n::after{
  content:""; position:absolute; left:50%; top:2.9rem; bottom:-.6rem;
  width:2px; transform:translateX(-50%); background:var(--line);
}
.ocha-flow__n{
  position:relative; flex:none;
  width:2.9rem; height:2.9rem; display:grid; place-items:center;
  border-radius:50%; background:linear-gradient(135deg,var(--brand),var(--brand-2));
  color:#fff; font-size:1.05rem; font-weight:700;
}
.ocha-flow__body{ padding-top:.3rem; }
.ocha-flow__body h3{
  margin:0 0 .5rem !important; padding:0 !important; border:0 !important;
  font-size:1.08rem !important; font-weight:700; color:var(--ink);
}
.ocha-flow__body p{ margin:0 0 .9rem !important; color:var(--ink-soft); font-size:.94rem; }
.ocha-flow__img{
  margin:0; max-width:280px; border-radius:var(--r); overflow:hidden;
  border:1px solid var(--line);
}
.ocha-flow__img img{ display:block; width:100%; height:auto; }
@media (max-width:600px){
  .ocha-flow__step{ gap:.9rem; }
  .ocha-flow__n{ width:2.4rem; height:2.4rem; font-size:.95rem; }
}

/* --- 申込方法カード ----------------------------------------------------- */
.ocha-methods{ display:grid; gap:.85rem; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); }
.ocha-method{
  display:flex; align-items:flex-start; gap:.9rem;
  padding:1.2rem 1.2rem; border:1px solid var(--line);
  border-radius:var(--r); background:#fff;
}
.ocha-method__ico{
  flex:none; display:inline-flex; align-items:center; justify-content:center;
  width:2.7rem; height:2.7rem; border-radius:12px;
  background:var(--tint); color:var(--brand);
}
.ocha-method__t{ margin:0 0 .3rem !important; font-weight:700; font-size:.98rem; color:var(--ink); }
.ocha-method__b{ margin:0 !important; font-size:.9rem; color:var(--ink-soft); line-height:1.7; }
.ocha-method__b a{ font-weight:600; text-decoration:none; }
.ocha-method__b a:hover{ text-decoration:underline; }

/* --- 連絡先カード ------------------------------------------------------- */
.ocha-contactcard{
  display:flex; align-items:center; gap:1.2rem;
  padding:1.6rem 1.7rem; margin:0 0 1.2rem;
  border:1px solid var(--line); border-radius:var(--r);
  background:linear-gradient(180deg,var(--tint-2),#fff);
}
.ocha-contactcard__ico{
  flex:none; display:inline-flex; align-items:center; justify-content:center;
  width:3.2rem; height:3.2rem; border-radius:14px;
  background:var(--brand); color:#fff;
}
.ocha-contactcard__ico .ocha-ico{ width:1.7rem; height:1.7rem; }
.ocha-contactcard__name{ margin:0 0 .35rem !important; font-weight:700; color:var(--ink); }
.ocha-contactcard__tel{ margin:0 0 .3rem !important; font-size:1.35rem; font-weight:700; color:var(--ink); }
.ocha-contactcard__tel a{ color:var(--ink) !important; text-decoration:none; }
.ocha-contactcard__tel span{ margin-left:.9rem; font-size:.9rem; font-weight:500; color:var(--muted); }
.ocha-contactcard__hours{ margin:0 !important; font-size:.83rem; color:var(--muted); }
@media (max-width:520px){
  .ocha-contactcard{ flex-direction:column; align-items:flex-start; gap:.9rem; }
  .ocha-contactcard__tel{ font-size:1.2rem; }
}

/* --- 末尾CTA ------------------------------------------------------------ */
.ocha-cta{
  margin:0 0 1rem; padding:clamp(2.2rem,1.6rem + 2vw,3.2rem) clamp(1.3rem,1rem + 2vw,3rem);
  border-radius:var(--r);
  background:linear-gradient(135deg,var(--brand) 0%,var(--brand-2) 100%);
  color:#fff; text-align:center;
}
.ocha-cta h2{
  margin:0 0 .7rem !important; padding:0 !important; border:0 !important;
  color:#fff !important; font-size:clamp(1.2rem,1rem + .8vw,1.5rem); font-weight:700;
}
.ocha-cta h2::after{ display:none !important; }
.ocha-cta > p{ margin:0 0 1.7rem !important; font-size:.95rem; color:rgba(255,255,255,.9); }
.ocha-cta__actions{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; }
.ocha-cta .ocha-btn--primary{
  background:#fff; color:var(--brand) !important; box-shadow:none;
}
.ocha-cta .ocha-btn--primary span{ background:var(--accent-bg); color:var(--accent); }
.ocha-cta .ocha-btn--ghost{
  background:transparent; color:#fff !important; border-color:rgba(255,255,255,.55);
}
.ocha-cta .ocha-btn--ghost:hover{ background:rgba(255,255,255,.12); border-color:#fff; }
.ocha-cta__tel{
  margin:1.8rem 0 0 !important; font-size:.9rem; color:rgba(255,255,255,.92); line-height:1.9;
}
.ocha-cta__tel span{ font-size:.82rem; color:rgba(255,255,255,.72); }

/* =============================================================================
   お問い合わせフォーム (CF7)
   ============================================================================= */
.wpcf7{ margin-top:.5rem; }
.wpcf7 .form-note{ font-size:.92rem; color:var(--ink-soft); }
.wpcf7 label{
  display:block; margin:1.5rem 0 .45rem;
  font-size:.89rem; font-weight:700; letter-spacing:.03em; color:var(--ink);
}
.wpcf7 input[type=text],.wpcf7 input[type=email],.wpcf7 input[type=tel],.wpcf7 textarea{
  width:100%; padding:.8em .95em;
  border:1px solid var(--line-strong); border-radius:var(--r-sm);
  font-size:1rem; font-family:inherit; color:var(--ink); background:#fff;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.wpcf7 input:focus,.wpcf7 textarea:focus{
  outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(47,49,146,.12);
}
.wpcf7 .wpcf7-radio{ display:grid; gap:.1rem; line-height:1.6; }
.wpcf7 .wpcf7-radio .wpcf7-list-item{ display:block; margin:0; }
.wpcf7 .wpcf7-radio .wpcf7-list-item label,
.wpcf7-acceptance .wpcf7-list-item label{
  display:flex; align-items:center; gap:.6em; margin:0;
  padding:.5em .7em; border-radius:var(--r-sm);
  font-weight:400; cursor:pointer; transition:background .14s ease;
}
.wpcf7 .wpcf7-radio .wpcf7-list-item label:hover{ background:var(--tint-2); }
.wpcf7 input[type=radio],.wpcf7 input[type=checkbox]{
  width:1.1em; height:1.1em; accent-color:var(--brand); margin:0; flex:none;
}
.wpcf7 .required-mark{
  display:inline-block; margin-left:.5em; padding:.14em .55em;
  border-radius:4px; background:#fdecec; color:#b3261e;
  font-size:.66rem; font-weight:700; letter-spacing:.06em; vertical-align:middle;
}
.wpcf7-acceptance .wpcf7-list-item{ margin:0; }
.wpcf7 input[type=submit]{
  display:block; width:100%; max-width:22rem; margin:2.3rem auto 0;
  min-height:3.4rem; padding:0 2rem;
  background:linear-gradient(135deg,var(--brand),var(--brand-2)); color:#fff;
  border:0; border-radius:999px;
  font-size:1.02rem; font-weight:700; letter-spacing:.18em; cursor:pointer;
  box-shadow:0 6px 18px -10px rgba(47,49,146,.75);
  transition:filter .18s ease, transform .18s ease;
}
.wpcf7 input[type=submit]:hover{ filter:brightness(1.08); transform:translateY(-1px); }

/* =============================================================================
   サイドバー / フッター
   ============================================================================= */
.sub-section,.widget{ border:0 !important; }
.widget{
  margin-bottom:1.5rem; padding:1.4rem 1.3rem;
  border:1px solid var(--line) !important; border-radius:var(--r);
  background:var(--surface-soft);
}
.widget h3,.sub-section-title{
  margin:0 0 .9rem !important; padding:0 0 .6rem !important;
  font-size:.95rem !important; font-weight:700; letter-spacing:.03em;
  border:0 !important; border-bottom:1px solid var(--line) !important;
  background:none !important; color:var(--ink) !important;
}
.widget p{ font-size:.88rem; line-height:1.95; color:var(--ink-soft); }
.widget a{ text-decoration:none; }
.widget a:hover{ text-decoration:underline; }

.site-footer{
  margin-top:4.5rem; padding:0;
  background:var(--surface-soft); border-top:1px solid var(--line);
}
.footer-nav{ padding:2rem 0 .6rem; }
.footer-nav-list{
  display:flex; flex-wrap:wrap; justify-content:center; gap:.15rem 0;
  padding:0; margin:0; list-style:none; border:0 !important;
}
.footer-nav-list li{ border:0 !important; }
.footer-nav-list li a{
  display:inline-block; padding:.4rem 1rem; border-radius:999px;
  font-size:.85rem; color:var(--ink-soft) !important; text-decoration:none;
  transition:background .16s ease, color .16s ease;
}
.footer-nav-list li a:hover{ background:var(--tint); color:var(--brand) !important; }
.site-footer-copyright{
  padding:1.3rem 0 2.4rem; text-align:center;
  font-size:.75rem; line-height:1.9; color:var(--muted);
}
.site-footer-copyright p{ margin:0; }

/* =============================================================================
   その他
   ============================================================================= */
@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
}
@media print{
  .site-header,.footer-nav,.vk-mobile-nav-menu-btn,.widget,.ocha-cta{ display:none !important; }
  body{ line-height:1.7; }
  .ocha-hero::before{ display:none; }
}

/* --- 製品説明会 (mu-plugin ocha-briefing の出力) ---------------------- */
/* 🔑 2026-10-07: 日程表は管理画面から編集される。見た目だけここで整える */
.entry-body .briefing-schedule{
  width:100%; border-collapse:collapse; margin:0 0 1.2em;
  border:1px solid var(--line-strong); border-radius:var(--r-sm); overflow:hidden;
}
.entry-body .briefing-schedule th,.entry-body .briefing-schedule td{
  padding:.85em 1em; border-bottom:1px solid var(--line); text-align:left; vertical-align:top;
}
.entry-body .briefing-schedule th{
  width:9em; white-space:nowrap; background:var(--tint); color:var(--brand); font-weight:700;
}
.entry-body .briefing-schedule tr:last-child th,.entry-body .briefing-schedule tr:last-child td{ border-bottom:0; }
.entry-body .ocha-briefing__open{
  font-weight:700; color:var(--brand-deep); background:var(--tint-2);
  border-left:4px solid var(--brand); padding:.8em 1em; border-radius:0 var(--r-sm) var(--r-sm) 0;
}
.entry-body .ocha-briefing__closed{
  font-weight:700; color:var(--ink-soft); background:var(--surface-soft);
  border-left:4px solid var(--line-strong); padding:.8em 1em; border-radius:0 var(--r-sm) var(--r-sm) 0;
}
.entry-body .ocha-briefing__note{ color:var(--ink-soft); font-size:.95em; }
.entry-body .ocha-briefing--none{ color:var(--ink-soft); }
@media (max-width:600px){
  .entry-body .briefing-schedule th{ width:auto; white-space:normal; }
  .entry-body .briefing-schedule th,.entry-body .briefing-schedule td{ padding:.7em .8em; }
}

/* ===== ochacom migration: END ===== */
