/*
Theme Name: Ohashi Method
Theme URI: https://ohashi-llmo.jp/
Author: スキマグループ合同会社
Author URI: https://ohashi-llmo.jp/about-us/
Description: AIO／LLMO支援会社専門の営業支援「大橋メソッド」のための WordPress テーマ（2026年11月版）。Hello Elementor 互換のファイル構成で、Elementor・Contact Form 7・Yoast SEO・Site Kit・WP Mail SMTP・W3 Total Cache・Autoptimize と共存します。Studio 型のポップなデザイン（黒い線で囲った白いボックス見出し・ベタ影・ピンクのグラデーション帯・線画のオリジナルイラスト・選択枠つき見出しの打鍵アニメーション・波形の区切り・ピル型のボタン・ロゴマーク＋サイトアイコン同梱）、テレアポ代行／商談代行の2サービス、初期テスト100コール1万円・アポイント単価3万円・フルコミッション65万円の料金、導入事例2件、FAQ 50問、解説記事300本、構造化データ、llms.txt、チャットボット、ナーチャリングメールを備えます。
Version: 2.1.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v3 or later
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: ohashi-method
Tags: one-column, custom-logo, custom-menu, featured-images, full-width-template, accessibility-ready, block-styles, wide-blocks, translation-ready, threaded-comments
*/

/*!
 * style.css — 基盤スタイル（トークン・リセット・タイポグラフィ・ボタン・フォーム・WordPress コア）
 * Ohashi Method 2.1.0 — 2026年11月版
 * このファイルはビルドで展開された版です。1行に1宣言、ルールごとに用途コメントを付けています。
 * 同じソースからクリティカル CSS（header.php）とアセットマニフェスト（*.asset.php）も生成されます。
 */

/* ==========================================================================
   Ohashi Method — base layer (tokens, reset, typography, buttons, utilities,
   WordPress core, blocks, print). Component layers: assets/css/theme.css
   (sections, cards, article) and assets/css/header-footer.css (chrome).
   Every selector is prefixed with om- so nothing collides with plugin HTML.

   デザイン言語（Studio 型・ポップ）
   - 黒（#141414）の 2px 線で囲った白いボックス、ずらした「ベタ影」（4px 4px 0）
   - ピンク（#f357a0）×ロゴのブルー（#1b8ae6 / #0b55a7）×イエロー（#f4e410）、帯はグレー #eee と
     ピンクのグラデーション（234deg #ff99e1 → #ff5990）＋ドットのパターン
   - 見出しは Zen Kaku Gothic New 900、本文は Noto Sans JP 500。角丸は最小限（4〜10px）、ボタンだけピル型
   ========================================================================== */

/* ========================================================================
   1. Design tokens
   ======================================================================== */

/* [1. Design tokens] :root */
:root {
  --om-ink: #141414;  /* トークン: 文字色 */
  --om-ink-soft: #3d3f45;  /* トークン: 文字色 */
  --om-paper: #ffffff;  /* トークン: 背景色 */
  --om-paper-warm: #fffdf2;  /* トークン: 背景色 */
  --om-warm: #fffdf2;  /* トークン: 暖色背景 */
  --om-sky: #e6f4fb;  /* トークン: 淡いブルーの背景 */
  --om-blush: #ffe9f3;  /* トークン: 淡いピンクの背景 */
  --om-cream: #fffbe0;  /* トークン: クリームの背景 */
  --om-accent: #f357a0;  /* トークン: アクセント（ピンク） */
  --om-accent-deep: #e0407f;  /* トークン: アクセント（ピンク） */
  --om-accent-ink: #ffffff;  /* トークン: アクセント（ピンク） */
  --om-accent-soft: #ffe1ef;  /* トークン: アクセント（ピンク） */
  --om-pink-light: #ffa8d0;  /* トークン: pink */
  --om-navy: #1b8ae6;  /* トークン: ブルー（信頼・リンク・選択枠） */
  --om-navy-deep: #0b55a7;  /* トークン: ブルー（信頼・リンク・選択枠） */
  --om-navy-soft: #d7effc;  /* トークン: ブルー（信頼・リンク・選択枠） */
  --om-soft-navy: #d7effc;  /* トークン: 淡色 */
  --om-brand-navy: #0a2d66;  /* トークン: brand */
  --om-blue-light: #a4dfe4;  /* トークン: blue */
  --om-yellow: #f4e410;  /* トークン: イエロー（強調・バッジ） */
  --om-yellow-deep: #d9c800;  /* トークン: イエロー（強調・バッジ） */
  --om-yellow-soft: #fff9b8;  /* トークン: イエロー（強調・バッジ） */
  --om-yellow-ink: #141414;  /* トークン: イエロー（強調・バッジ） */
  --om-mint: #2ec4a0;  /* トークン: ミント（成功・改善） */
  --om-mint-soft: #d6f5ea;  /* トークン: ミント（成功・改善） */
  --om-orange: #ff9f43;  /* トークン: オレンジ（マスコット） */
  --om-orange-soft: #ffe9d1;  /* トークン: オレンジ（マスコット） */
  --om-green: #1c9a62;  /* トークン: 成功 */
  --om-green-soft: #e3f5ec;  /* トークン: 成功 */
  --om-red: #d6304f;  /* トークン: エラー */
  --om-red-soft: #fde8ec;  /* トークン: エラー */
  --om-link: #0b55a7;  /* トークン: リンク */
  --om-link-hover: #0a2d66;  /* トークン: リンク */
  --om-blue-link: #0b55a7;  /* トークン: blue */
  --om-blue-link-hover: #0a2d66;  /* トークン: blue */
  --om-submit: #293659;  /* トークン: submit */
  --om-gray-50: #f6f6f6;  /* トークン: グレー階調 */
  --om-gray-100: #eeeeee;  /* トークン: グレー階調 */
  --om-gray-200: #e2e2e2;  /* トークン: グレー階調 */
  --om-gray-300: #cfcfcf;  /* トークン: グレー階調 */
  --om-gray-400: #b0b0b0;  /* トークン: グレー階調 */
  --om-gray-500: #8a8a8a;  /* トークン: グレー階調 */
  --om-gray-600: #666666;  /* トークン: グレー階調 */
  --om-gray-700: #4a4a4a;  /* トークン: グレー階調 */
  --om-gray-800: #2e2e2e;  /* トークン: グレー階調 */
  --om-gray-900: #141414;  /* トークン: グレー階調 */
  --om-band-gray: #eeeeee;  /* トークン: band */
  --om-grad-pink: linear-gradient(234deg, #ff99e1 7.6%, #ff5990 92.4%);  /* トークン: grad */
  --om-grad-blue: linear-gradient(234deg, #7fd8ff 7.6%, #1b8ae6 92.4%);  /* トークン: grad */
  --om-pattern-dots: radial-gradient(rgba(255, 255, 255, 0.35) 1.5px, transparent 2px);  /* トークン: pattern */
  --om-pattern-dots-ink: radial-gradient(rgba(20, 20, 20, 0.12) 1.5px, transparent 2px);  /* トークン: pattern */
  --om-overlay: rgba(20, 20, 20, 0.5);  /* トークン: オーバーレイ */
  --om-focus: #1b8ae6;  /* トークン: フォーカス色 */
  --om-frame: #141414;  /* トークン: 選択枠の色 */
  --om-road: #f4e410;  /* トークン: 道路モチーフ */
  --om-road-line: #ffffff;  /* トークン: 道路モチーフ */
  --om-footer-line: #141414;  /* トークン: フッター */
  --om-font-sans: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, system-ui, sans-serif;  /* トークン: 書体 */
  --om-font-round: "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;  /* トークン: 書体 */
  --om-font-display: "Zen Kaku Gothic New", "Noto Sans JP", "Hiragino Sans", sans-serif;  /* トークン: 書体 */
  --om-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;  /* トークン: 書体 */
  --om-fs-base: 16px;  /* トークン: 文字サイズ */
  --om-fs-base-m: 15px;  /* トークン: 文字サイズ */
  --om-fs-xs: 0.78rem;  /* トークン: 文字サイズ */
  --om-fs-sm: 0.9rem;  /* トークン: 文字サイズ */
  --om-fs-md: 1rem;  /* トークン: 文字サイズ */
  --om-fs-lg: 1.15rem;  /* トークン: 文字サイズ */
  --om-fs-xl: 1.35rem;  /* トークン: 文字サイズ */
  --om-fs-2xl: 1.6rem;  /* トークン: 文字サイズ */
  --om-fs-3xl: 2rem;  /* トークン: 文字サイズ */
  --om-fs-4xl: 2.5rem;  /* トークン: 文字サイズ */
  --om-fs-5xl: 3.1rem;  /* トークン: 文字サイズ */
  --om-fs-6xl: 3.8rem;  /* トークン: 文字サイズ */
  --om-lh-body: 1.95;  /* トークン: 行間 */
  --om-lh-tight: 1.2;  /* トークン: 行間 */
  --om-lh-snug: 1.4;  /* トークン: 行間 */
  --om-lh-normal: 1.6;  /* トークン: 行間 */
  --om-lh-relaxed: 2;  /* トークン: 行間 */
  --om-ls-body: 0.03em;  /* トークン: 字間 */
  --om-ls-tight: 0;  /* トークン: 字間 */
  --om-ls-normal: 0.03em;  /* トークン: 字間 */
  --om-ls-wide: 0.06em;  /* トークン: 字間 */
  --om-ls-wider: 0.1em;  /* トークン: 字間 */
  --om-ls-widest: 0.2em;  /* トークン: 字間 */
  --om-fw-body: 500;  /* トークン: 太さ */
  --om-fw-heading: 900;  /* トークン: 太さ */
  --om-sp-1: 4px;  /* トークン: 間隔 */
  --om-sp-2: 8px;  /* トークン: 間隔 */
  --om-sp-3: 12px;  /* トークン: 間隔 */
  --om-sp-4: 16px;  /* トークン: 間隔 */
  --om-sp-5: 20px;  /* トークン: 間隔 */
  --om-sp-6: 24px;  /* トークン: 間隔 */
  --om-sp-7: 28px;  /* トークン: 間隔 */
  --om-sp-8: 32px;  /* トークン: 間隔 */
  --om-sp-9: 36px;  /* トークン: 間隔 */
  --om-sp-10: 40px;  /* トークン: 間隔 */
  --om-sp-12: 48px;  /* トークン: 間隔 */
  --om-sp-14: 56px;  /* トークン: 間隔 */
  --om-sp-16: 64px;  /* トークン: 間隔 */
  --om-sp-20: 80px;  /* トークン: 間隔 */
  --om-sp-24: 96px;  /* トークン: 間隔 */
  --om-r-none: 0;  /* トークン: 角丸 */
  --om-r-sm: 4px;  /* トークン: 角丸 */
  --om-r-md: 6px;  /* トークン: 角丸 */
  --om-r-lg: 8px;  /* トークン: 角丸 */
  --om-r-xl: 10px;  /* トークン: 角丸 */
  --om-r-2xl: 12px;  /* トークン: 角丸 */
  --om-r-pill: 999px;  /* トークン: 角丸 */
  --om-r-circle: 50%;  /* トークン: 角丸 */
  --om-line: 2px solid var(--om-ink);  /* トークン: line */
  --om-line-thin: 1.5px solid var(--om-ink);  /* トークン: line */
  --om-sh-none: none;  /* トークン: 影 */
  --om-sh-xs: 2px 2px 0 var(--om-ink);  /* トークン: 影 */
  --om-sh-sm: 3px 3px 0 var(--om-ink);  /* トークン: 影 */
  --om-sh-md: 5px 5px 0 var(--om-ink);  /* トークン: 影 */
  --om-sh-lg: 8px 8px 0 var(--om-ink);  /* トークン: 影 */
  --om-sh-xl: 10px 10px 0 var(--om-ink);  /* トークン: 影 */
  --om-sh-pink: 4px 4px 0 var(--om-accent);  /* トークン: 影 */
  --om-sh-blue: 4px 4px 0 var(--om-navy);  /* トークン: 影 */
  --om-sh-yellow: 4px 4px 0 var(--om-yellow);  /* トークン: 影 */
  --om-sh-soft: 0 12px 32px rgba(20, 20, 20, 0.14);  /* トークン: 影 */
  --om-sh-focus: 0 0 0 4px rgba(27, 138, 230, 0.3);  /* トークン: 影 */
  --om-m-fast: 160ms;  /* トークン: モーション */
  --om-m-base: 260ms;  /* トークン: モーション */
  --om-m-slow: 520ms;  /* トークン: モーション */
  --om-m-ease: cubic-bezier(0.22, 1, 0.36, 1);  /* トークン: モーション */
  --om-m-ease-out: cubic-bezier(0.16, 1, 0.3, 1);  /* トークン: モーション */
  --om-m-spring: cubic-bezier(0.34, 1.56, 0.64, 1);  /* トークン: モーション */
  --om-type-speed: 70ms;  /* トークン: 打鍵速度 */
  --om-w-content: 760px;  /* トークン: 幅 */
  --om-w-section: 1160px;  /* トークン: 幅 */
  --om-w-wide: 1320px;  /* トークン: 幅 */
  --om-w-full: 100%;  /* トークン: 幅 */
  --om-gutter: 24px;  /* トークン: 左右の余白 */
  --om-w-gutter-lg: 40px;  /* トークン: 幅 */
  --om-header-h: 84px;  /* トークン: ヘッダーの高さ */
  --om-header-h-m: 64px;  /* トークン: ヘッダーの高さ */
  --om-z-deco: 0;  /* トークン: 重なり順 */
  --om-z-sticky: 20;  /* トークン: 重なり順 */
  --om-z-header: 50;  /* トークン: 重なり順 */
  --om-z-side: 60;  /* トークン: 重なり順 */
  --om-z-cta-sticky: 60;  /* トークン: 重なり順 */
  --om-z-chatbot: 70;  /* トークン: 重なり順 */
  --om-z-overlay: 80;  /* トークン: 重なり順 */
  --om-z-modal: 90;  /* トークン: 重なり順 */
  --om-z-toast: 100;  /* トークン: 重なり順 */
}

/* ========================================================================
   2. Reset / base
   ======================================================================== */

/* [2. Reset / base] * */
/* 疑似要素 */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* [2. Reset / base] html */
html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--om-header-h) + 16px);
  scrollbar-color: var(--om-accent) #fff;
}

@media (prefers-reduced-motion: reduce) {

  /* [2. Reset / base] html */
  html {
    scroll-behavior: auto;
  }
}

/* [2. Reset / base] html::-webkit-scrollbar */
html::-webkit-scrollbar {
  width: 12px;  /* 幅 */
}

/* [2. Reset / base] html::-webkit-scrollbar-track */
html::-webkit-scrollbar-track {
  background: #fff;  /* 背景 */
  border-left: 2px solid var(--om-ink);
}

/* [2. Reset / base] html::-webkit-scrollbar-thumb */
html::-webkit-scrollbar-thumb {
  background: var(--om-accent);  /* 背景 */
  border: 2px solid var(--om-ink);  /* 枠線 */
  border-right: 0;
}

/* [2. Reset / base] body */
body {
  margin: 0;  /* 外側の余白 */
  background: var(--om-paper);  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
  font-family: var(--om-font-sans);  /* 書体 */
  font-size: var(--om-fs-base);  /* 文字サイズ */
  font-weight: var(--om-fw-body);  /* 太さ */
  line-height: var(--om-lh-body);  /* 行間 */
  letter-spacing: var(--om-ls-body);  /* 字間 */
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;  /* 横のはみ出し */
  overflow-y: auto;  /* 縦のはみ出し */
  overflow-wrap: anywhere;
  word-break: normal;
}

/* [2. Reset / base] body.om-nav-open */
body.om-nav-open {
  overflow: hidden;  /* はみ出し */
}

@media (max-width: 767px) {

  /* [2. Reset / base] body */
  body {
    font-size: var(--om-fs-base-m);  /* 文字サイズ */
  }
}

/* [2. Reset / base] img */
img,
svg,
video {
  max-width: 100%;  /* 最大幅 */
  height: auto;  /* 高さ */
}

/* [2. Reset / base] svg.om-svg */
svg.om-svg {
  display: block;  /* 表示形式 */
  width: 100%;  /* 幅 */
  height: auto;  /* 高さ */
}

/* [2. Reset / base] figure */
figure {
  margin: 0;  /* 外側の余白 */
}

/* [2. Reset / base] a */
a {
  color: var(--om-link);  /* 文字色 */
  text-decoration-thickness: 1.5px;
  text-underline-offset: 0.2em;  /* 下線位置 */
}

/* [2. Reset / base] a:hover */
/* ホバー時 */
a:hover {
  color: var(--om-link-hover);  /* 文字色 */
}

/* [2. Reset / base] h1 */
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0 0 0.6em;  /* 外側の余白 */
  font-family: var(--om-font-round);  /* 書体 */
  font-weight: var(--om-fw-heading);  /* 太さ */
  line-height: var(--om-lh-snug);  /* 行間 */
  letter-spacing: 0.02em;  /* 字間 */
  color: var(--om-ink);  /* 文字色 */
  overflow-wrap: anywhere;
}

/* [2. Reset / base] h1 */
h1 {
  font-size: clamp(1.9rem, 4.2vw, 2.9rem);  /* 文字サイズ */
}

/* [2. Reset / base] h2 */
h2 {
  font-size: clamp(1.55rem, 3vw, 2.15rem);  /* 文字サイズ */
}

/* [2. Reset / base] h3 */
h3 {
  font-size: clamp(1.25rem, 2.2vw, 1.5rem);  /* 文字サイズ */
}

/* [2. Reset / base] h4 */
h4 {
  font-size: 1.15rem;  /* 文字サイズ */
}

/* [2. Reset / base] h5 */
h5,
h6 {
  font-size: 1rem;  /* 文字サイズ */
}

/* [2. Reset / base] p */
p,
ul,
ol,
dl,
table,
blockquote,
pre {
  margin: 0 0 1.4em;  /* 外側の余白 */
}

/* [2. Reset / base] ul */
ul,
ol {
  padding-left: 1.4em;
}

/* [2. Reset / base] li */
li {
  margin: 0.25em 0;  /* 外側の余白 */
}

/* [2. Reset / base] strong */
strong,
b {
  font-weight: 700;  /* 太さ */
}

/* [2. Reset / base] small */
small {
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [2. Reset / base] hr */
hr {
  border: 0;  /* 枠線 */
  border-top: 2px dashed var(--om-ink);
  margin: 2.5em 0;  /* 外側の余白 */
  opacity: 0.5;  /* 不透明度 */
}

/* [2. Reset / base] blockquote */
blockquote {
  padding: 1em 1.25em;  /* 内側の余白 */
  border: var(--om-line);  /* 枠線 */
  border-left-width: 6px;
  background: var(--om-sky);  /* 背景 */
  border-radius: var(--om-r-md);  /* 角丸 */
}

/* [2. Reset / base] code */
code,
kbd,
samp {
  font-family: var(--om-font-mono);  /* 書体 */
  font-size: 0.92em;  /* 文字サイズ */
  background: var(--om-gray-100);  /* 背景 */
  padding: 0.1em 0.4em;  /* 内側の余白 */
  border-radius: 4px;  /* 角丸 */
}

/* [2. Reset / base] pre */
pre {
  padding: 1em 1.25em;  /* 内側の余白 */
  background: var(--om-gray-100);  /* 背景 */
  border: var(--om-line);  /* 枠線 */
  border-radius: var(--om-r-md);  /* 角丸 */
  overflow: auto;  /* はみ出し */
}

/* [2. Reset / base] pre code */
pre code {
  background: none;  /* 背景 */
  padding: 0;  /* 内側の余白 */
}

/* [2. Reset / base] table */
table {
  width: 100%;  /* 幅 */
  border-collapse: collapse;
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [2. Reset / base] th */
th,
td {
  padding: 0.7em 0.9em;  /* 内側の余白 */
  border: 1.5px solid var(--om-ink);  /* 枠線 */
  text-align: left;  /* 行揃え */
  vertical-align: top;
}

/* [2. Reset / base] th */
th {
  background: var(--om-yellow-soft);  /* 背景 */
  font-weight: 700;  /* 太さ */
}

/* [2. Reset / base] button */
button,
input,
select,
textarea {
  font: inherit;
  color: inherit;  /* 文字色 */
  letter-spacing: inherit;  /* 字間 */
}

/* [2. Reset / base] button */
button {
  cursor: pointer;  /* カーソル */
}

/* [2. Reset / base] :focus-visible */
/* フォーカス時 */
:focus-visible {
  outline: 3px solid var(--om-focus);  /* フォーカス枠 */
  outline-offset: 3px;
  border-radius: 4px;  /* 角丸 */
}

/* [2. Reset / base] ::selection */
::selection {
  background: var(--om-yellow);  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
}

/* [2. Reset / base] [hidden] */
[hidden] {
  display: none !important;  /* 表示形式 */
}

/* ========================================================================
   3. Layout helpers
   ======================================================================== */

/* [3. Layout helpers] .om-container */
.om-container {
  width: 100%;  /* 幅 */
  max-width: var(--om-w-section);  /* 最大幅 */
  margin-inline: auto;
  padding-inline: var(--om-gutter);
}

/* [3. Layout helpers] .om-container--content */
/* バリエーション: content */
.om-container--content {
  max-width: calc(var(--om-w-content) + var(--om-gutter) * 2);  /* 最大幅 */
}

/* [3. Layout helpers] .om-container--wide */
/* バリエーション: wide */
.om-container--wide {
  max-width: var(--om-w-wide);  /* 最大幅 */
}

/* [3. Layout helpers] .om-container--section */
/* バリエーション: section */
.om-container--section {
  max-width: var(--om-w-section);  /* 最大幅 */
}

/* [3. Layout helpers] .om-single-column .om-container--content */
/* バリエーション: content */
.om-single-column .om-container--content {
  max-width: calc(var(--om-w-content) + var(--om-gutter) * 2);  /* 最大幅 */
}

/* [3. Layout helpers] .om-main */
.om-main {
  display: block;  /* 表示形式 */
  min-height: 40vh;  /* 最小高さ */
}

/* [3. Layout helpers] .om-main:focus */
/* フォーカス時 */
.om-main:focus {
  outline: none;  /* フォーカス枠 */
}

/* [3. Layout helpers] .om-sr-only */
.om-sr-only {
  position: absolute !important;  /* 配置方法 */
  width: 1px;  /* 幅 */
  height: 1px;  /* 高さ */
  padding: 0;  /* 内側の余白 */
  margin: -1px;  /* 外側の余白 */
  overflow: hidden;  /* はみ出し */
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;  /* 改行の扱い */
  border: 0;  /* 枠線 */
}

/* [3. Layout helpers] .om-skip-link */
.om-skip-link {
  position: absolute;  /* 配置方法 */
  left: 12px;  /* 左端 */
  top: -60px;  /* 上端 */
  z-index: var(--om-z-toast);  /* 重なり順 */
  padding: 10px 16px;  /* 内側の余白 */
  background: var(--om-ink);  /* 背景 */
  color: #fff;  /* 文字色 */
  border-radius: var(--om-r-pill);  /* 角丸 */
  font-weight: 700;  /* 太さ */
  transition: top var(--om-m-fast);  /* 変化のアニメーション */
}

/* [3. Layout helpers] .om-skip-link:focus */
/* フォーカス時 */
.om-skip-link:focus {
  top: 12px;  /* 上端 */
  color: #fff;  /* 文字色 */
}

/* [3. Layout helpers] .om-c-pink */
.om-c-pink,
.om-pink {
  color: var(--om-accent);  /* 文字色 */
}

/* [3. Layout helpers] .om-c-blue */
.om-c-blue,
.om-blue {
  color: var(--om-navy);  /* 文字色 */
}

/* [3. Layout helpers] .om-c-yellow */
.om-c-yellow {
  color: var(--om-yellow-deep);  /* 文字色 */
}

/* [3. Layout helpers] .om-c-mint */
.om-c-mint {
  color: var(--om-mint);  /* 文字色 */
}

/* [3. Layout helpers] .om-ink */
.om-ink {
  color: var(--om-ink);  /* 文字色 */
}

/* [3. Layout helpers] .om-soft */
.om-soft {
  color: var(--om-ink-soft);  /* 文字色 */
}

/* [3. Layout helpers] .om-mono */
.om-mono {
  font-family: var(--om-font-mono);  /* 書体 */
}

/* [3. Layout helpers] .om-round */
.om-round {
  font-family: var(--om-font-round);  /* 書体 */
}

/* [3. Layout helpers] .om-text-center */
.om-text-center {
  text-align: center;  /* 行揃え */
}

/* [3. Layout helpers] .om-marker */
.om-marker {
  background: linear-gradient(transparent 55%, var(--om-yellow) 55%);  /* 背景 */
  padding: 0 0.1em;  /* 内側の余白 */
}

/* [3. Layout helpers] .om-quote */
.om-quote {
  color: var(--om-accent);  /* 文字色 */
  font-weight: 900;  /* 太さ */
}

/* [3. Layout helpers] .om-nowrap */
.om-nowrap {
  white-space: nowrap;  /* 改行の扱い */
}

/* [3. Layout helpers] .om-hp */
.om-hp {
  position: absolute !important;  /* 配置方法 */
  left: -9999px !important;  /* 左端 */
  width: 1px;  /* 幅 */
  height: 1px;  /* 高さ */
  overflow: hidden;  /* はみ出し */
}

/* [3. Layout helpers] .om-en */
.om-en {
  font-family: var(--om-font-display);  /* 書体 */
  font-weight: 900;  /* 太さ */
  letter-spacing: 0.08em;  /* 字間 */
  text-transform: uppercase;
}

/* ========================================================================
   4. Buttons
   ======================================================================== */

/* [4. Buttons] .om-btn */
.om-btn {
  position: relative;  /* 配置方法 */
  display: inline-flex;  /* 表示形式 */
  align-items: center;  /* 縦の揃え */
  justify-content: center;  /* 横の揃え */
  gap: 10px;  /* 要素の間隔 */
  min-height: 56px;  /* 最小高さ */
  padding: 0 30px;  /* 内側の余白 */
  border-radius: var(--om-r-pill);  /* 角丸 */
  border: var(--om-line);  /* 枠線 */
  background: #fff;  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
  font-family: var(--om-font-round);  /* 書体 */
  font-weight: 700;  /* 太さ */
  font-size: 1rem;  /* 文字サイズ */
  line-height: 1.3;  /* 行間 */
  text-decoration: none;  /* 下線 */
  text-align: center;  /* 行揃え */
  white-space: nowrap;  /* 改行の扱い */
  box-shadow: var(--om-sh-sm);  /* 影 */
  transition: transform var(--om-m-fast) ease-out, box-shadow var(--om-m-fast) ease-out, background-color var(--om-m-fast), color var(--om-m-fast);  /* 変化のアニメーション */
}

/* [4. Buttons] .om-btn .om-ico */
.om-btn .om-ico {
  flex: 0 0 auto;  /* 伸縮 */
  transition: transform var(--om-m-base) var(--om-m-ease);  /* 変化のアニメーション */
}

/* [4. Buttons] .om-btn:hover */
/* ホバー時 */
.om-btn:hover {
  transform: translate(2px, 2px);  /* 変形 */
  box-shadow: 1px 1px 0 var(--om-ink);  /* 影 */
}

/* [4. Buttons] .om-btn:hover .om-ico--arrow */
/* ホバー時、バリエーション: arrow */
.om-btn:hover .om-ico--arrow {
  transform: translateX(3px);  /* 変形 */
}

/* [4. Buttons] .om-btn:active */
.om-btn:active {
  transform: translate(3px, 3px);  /* 変形 */
  box-shadow: none;  /* 影 */
}

/* [4. Buttons] .om-btn--primary */
/* バリエーション: primary */
.om-btn--primary {
  background: var(--om-accent);  /* 背景 */
  color: var(--om-accent-ink);  /* 文字色 */
}

/* [4. Buttons] .om-btn--primary:hover */
/* ホバー時、バリエーション: primary */
.om-btn--primary:hover {
  background: var(--om-accent-deep);  /* 背景 */
  color: #fff;  /* 文字色 */
}

/* [4. Buttons] .om-btn--blue */
/* バリエーション: blue */
.om-btn--blue {
  background: var(--om-navy);  /* 背景 */
  color: #fff;  /* 文字色 */
}

/* [4. Buttons] .om-btn--blue:hover */
/* ホバー時、バリエーション: blue */
.om-btn--blue:hover {
  background: var(--om-navy-deep);  /* 背景 */
  color: #fff;  /* 文字色 */
}

/* [4. Buttons] .om-btn--yellow */
/* バリエーション: yellow */
.om-btn--yellow {
  background: var(--om-yellow);  /* 背景 */
  color: var(--om-yellow-ink);  /* 文字色 */
}

/* [4. Buttons] .om-btn--yellow:hover */
/* ホバー時、バリエーション: yellow */
.om-btn--yellow:hover {
  background: var(--om-yellow-deep);  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
}

/* [4. Buttons] .om-btn--ghost */
/* バリエーション: ghost */
.om-btn--ghost,
.om-btn--secondary {
  background: #fff;  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
}

/* [4. Buttons] .om-btn--ghost:hover */
/* ホバー時、バリエーション: ghost */
.om-btn--ghost:hover,
.om-btn--secondary:hover {
  background: var(--om-yellow-soft);  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
}

/* [4. Buttons] .om-btn--white */
/* バリエーション: white */
.om-btn--white {
  background: #fff;  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
}

/* [4. Buttons] .om-btn--white:hover */
/* ホバー時、バリエーション: white */
.om-btn--white:hover {
  color: var(--om-navy-deep);  /* 文字色 */
}

/* [4. Buttons] .om-btn--navy */
/* バリエーション: navy */
.om-btn--navy {
  background: var(--om-submit);  /* 背景 */
  color: #fff;  /* 文字色 */
}

/* [4. Buttons] .om-btn--navy:hover */
/* ホバー時、バリエーション: navy */
.om-btn--navy:hover {
  background: #1d2740;  /* 背景 */
  color: #fff;  /* 文字色 */
}

/* [4. Buttons] .om-btn--link */
/* バリエーション: link */
.om-btn--link {
  min-height: 0;  /* 最小高さ */
  padding: 0;  /* 内側の余白 */
  border: 0;  /* 枠線 */
  box-shadow: none;  /* 影 */
  background: none;  /* 背景 */
  color: var(--om-link);  /* 文字色 */
  text-decoration: underline;  /* 下線 */
}

/* [4. Buttons] .om-btn--link:hover */
/* ホバー時、バリエーション: link */
.om-btn--link:hover {
  transform: none;  /* 変形 */
  box-shadow: none;  /* 影 */
}

/* [4. Buttons] .om-btn--sm */
/* バリエーション: sm */
.om-btn--sm {
  min-height: 42px;  /* 最小高さ */
  padding: 0 20px;  /* 内側の余白 */
  font-size: var(--om-fs-sm);  /* 文字サイズ */
  box-shadow: var(--om-sh-xs);  /* 影 */
}

/* [4. Buttons] .om-btn--lg */
/* バリエーション: lg */
.om-btn--lg {
  min-height: 64px;  /* 最小高さ */
  padding: 0 40px;  /* 内側の余白 */
  font-size: 1.08rem;  /* 文字サイズ */
  box-shadow: var(--om-sh-md);  /* 影 */
}

/* [4. Buttons] .om-btn--lg:hover */
/* ホバー時、バリエーション: lg */
.om-btn--lg:hover {
  box-shadow: 2px 2px 0 var(--om-ink);  /* 影 */
  transform: translate(3px, 3px);  /* 変形 */
}

/* [4. Buttons] .om-btn--block */
/* バリエーション: block */
.om-btn--block {
  display: flex;  /* 表示形式 */
  width: 100%;  /* 幅 */
}

/* [4. Buttons] .om-btn[disabled] */
.om-btn[disabled],
.om-btn[aria-disabled="true"] {
  opacity: 0.6;  /* 不透明度 */
  pointer-events: none;  /* クリック可否 */
}

/* [4. Buttons] .om-btn__arrow */
.om-btn__arrow {
  display: inline-flex;  /* 表示形式 */
  width: 28px;  /* 幅 */
  height: 28px;  /* 高さ */
  border-radius: 50%;  /* 角丸 */
  background: var(--om-ink);  /* 背景 */
  color: #fff;  /* 文字色 */
  align-items: center;  /* 縦の揃え */
  justify-content: center;  /* 横の揃え */
  margin-right: -8px;
}

/* [4. Buttons] .om-btn__arrow .om-ico */
.om-btn__arrow .om-ico {
  width: 16px;  /* 幅 */
  height: 16px;  /* 高さ */
}

/* [4. Buttons] .om-btn--primary .om-btn__arrow */
/* バリエーション: primary */
.om-btn--primary .om-btn__arrow {
  background: #fff;  /* 背景 */
  color: var(--om-accent);  /* 文字色 */
}

/* [4. Buttons] .om-btn--ghost .om-btn__arrow */
/* バリエーション: ghost */
.om-btn--ghost .om-btn__arrow {
  background: var(--om-yellow);  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
}

/* [4. Buttons] .om-actions */
.om-actions {
  display: flex;  /* 表示形式 */
  flex-wrap: wrap;  /* 折り返し */
  gap: 16px;  /* 要素の間隔 */
  align-items: center;  /* 縦の揃え */
}

/* [4. Buttons] .om-actions--center */
/* バリエーション: center */
.om-actions--center {
  justify-content: center;  /* 横の揃え */
}

@media (max-width: 480px) {

  /* [4. Buttons] .om-actions .om-btn */
  .om-actions .om-btn {
    width: 100%;  /* 幅 */
  }
}

/* ========================================================================
   5. Badges / chips
   ======================================================================== */

/* [5. Badges / chips] .om-badge */
.om-badge {
  display: inline-flex;  /* 表示形式 */
  align-items: center;  /* 縦の揃え */
  gap: 6px;  /* 要素の間隔 */
  padding: 3px 12px;  /* 内側の余白 */
  border: var(--om-line-thin);  /* 枠線 */
  border-radius: var(--om-r-pill);  /* 角丸 */
  font-family: var(--om-font-round);  /* 書体 */
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  font-weight: 700;  /* 太さ */
  letter-spacing: 0.04em;  /* 字間 */
  line-height: 1.6;  /* 行間 */
  white-space: nowrap;  /* 改行の扱い */
  background: #fff;  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
}

/* [5. Badges / chips] .om-badge--blue */
/* バリエーション: blue */
.om-badge--blue {
  background: var(--om-navy-soft);  /* 背景 */
}

/* [5. Badges / chips] .om-badge--pink */
/* バリエーション: pink */
.om-badge--pink {
  background: var(--om-accent-soft);  /* 背景 */
}

/* [5. Badges / chips] .om-badge--yellow */
/* バリエーション: yellow */
.om-badge--yellow {
  background: var(--om-yellow);  /* 背景 */
}

/* [5. Badges / chips] .om-badge--mint */
/* バリエーション: mint */
.om-badge--mint {
  background: var(--om-mint-soft);  /* 背景 */
}

/* [5. Badges / chips] .om-badge--gray */
/* バリエーション: gray */
.om-badge--gray {
  background: var(--om-gray-100);  /* 背景 */
}

/* [5. Badges / chips] .om-badge--ink */
/* バリエーション: ink */
.om-badge--ink {
  background: var(--om-ink);  /* 背景 */
  color: #fff;  /* 文字色 */
}

/* [5. Badges / chips] .om-badge--solid-pink */
/* バリエーション: solid-pink */
.om-badge--solid-pink {
  background: var(--om-accent);  /* 背景 */
  color: #fff;  /* 文字色 */
}

/* [5. Badges / chips] .om-badge--solid-blue */
/* バリエーション: solid-blue */
.om-badge--solid-blue {
  background: var(--om-navy);  /* 背景 */
  color: #fff;  /* 文字色 */
}

/* [5. Badges / chips] .om-tag */
.om-tag {
  display: inline-block;  /* 表示形式 */
  padding: 2px 12px;  /* 内側の余白 */
  margin: 2px 4px 2px 0;  /* 外側の余白 */
  border: var(--om-line-thin);  /* 枠線 */
  border-radius: var(--om-r-pill);  /* 角丸 */
  background: #fff;  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  font-weight: 700;  /* 太さ */
  text-decoration: none;  /* 下線 */
}

/* [5. Badges / chips] .om-tag:hover */
/* ホバー時 */
.om-tag:hover {
  background: var(--om-yellow);  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
}

/* [5. Badges / chips] .om-edition */
.om-edition {
  display: inline-block;  /* 表示形式 */
  padding: 2px 10px;  /* 内側の余白 */
  border: var(--om-line-thin);  /* 枠線 */
  border-radius: var(--om-r-pill);  /* 角丸 */
  background: var(--om-yellow);  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  font-weight: 700;  /* 太さ */
}

/* ========================================================================
   6. Forms
   ======================================================================== */

/* [6. Forms] .om-field */
.om-field {
  display: block;  /* 表示形式 */
  margin-bottom: 18px;
}

/* [6. Forms] .om-field__label */
.om-field__label,
.om-form label {
  display: block;  /* 表示形式 */
  font-weight: 700;  /* 太さ */
  margin-bottom: 6px;
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [6. Forms] .om-field__req */
.om-field__req {
  display: inline-block;  /* 表示形式 */
  margin-left: 6px;
  padding: 0 8px;  /* 内側の余白 */
  border-radius: var(--om-r-sm);  /* 角丸 */
  background: var(--om-accent);  /* 背景 */
  color: #fff;  /* 文字色 */
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  font-weight: 700;  /* 太さ */
}

/* [6. Forms] .om-field__hint */
.om-field__hint,
.om-form-note {
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  color: var(--om-gray-600);  /* 文字色 */
}

/* [6. Forms] .om-input */
.om-input,
.om-form input[type="text"],
.om-form input[type="email"],
.om-form input[type="tel"],
.om-form input[type="url"],
.om-form select,
.om-form textarea,
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 select,
.wpcf7 textarea {
  display: block;  /* 表示形式 */
  width: 100%;  /* 幅 */
  min-height: 54px;  /* 最小高さ */
  padding: 12px 18px;  /* 内側の余白 */
  border: var(--om-line);  /* 枠線 */
  border-radius: var(--om-r-md);  /* 角丸 */
  background: #fff;  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
  -webkit-text-fill-color: var(--om-ink);
  opacity: 1;  /* 不透明度 */
  font-size: 1rem;  /* 文字サイズ */
  font-weight: 500;  /* 太さ */
  transition: box-shadow var(--om-m-fast);  /* 変化のアニメーション */
}

/* [6. Forms] .wpcf7 textarea */
.wpcf7 textarea,
.om-form textarea {
  min-height: 160px;  /* 最小高さ */
  resize: vertical;
}

/* [6. Forms] .wpcf7 input:focus */
/* フォーカス時 */
.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus,
.om-form input:focus,
.om-form textarea:focus,
.om-form select:focus {
  outline: none;  /* フォーカス枠 */
  box-shadow: var(--om-sh-pink);  /* 影 */
}

/* [6. Forms] .wpcf7 input::placeholder */
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder,
.om-form ::placeholder {
  color: var(--om-gray-500);  /* 文字色 */
  -webkit-text-fill-color: var(--om-gray-500);
  opacity: 1;  /* 不透明度 */
}

/* [6. Forms] .wpcf7 input[type="submit"] */
.wpcf7 input[type="submit"],
.wpcf7 button[type="submit"],
.om-form [type="submit"] {
  display: inline-flex;  /* 表示形式 */
  align-items: center;  /* 縦の揃え */
  justify-content: center;  /* 横の揃え */
  width: auto;  /* 幅 */
  min-height: 64px;  /* 最小高さ */
  padding: 0 52px;  /* 内側の余白 */
  border: var(--om-line);  /* 枠線 */
  border-radius: var(--om-r-pill);  /* 角丸 */
  background: var(--om-submit);  /* 背景 */
  color: #fff;  /* 文字色 */
  -webkit-text-fill-color: #fff;
  font-family: var(--om-font-round);  /* 書体 */
  font-weight: 700;  /* 太さ */
  font-size: 1.08rem;  /* 文字サイズ */
  box-shadow: var(--om-sh-md);  /* 影 */
  cursor: pointer;  /* カーソル */
  transition: transform var(--om-m-fast) ease-out, box-shadow var(--om-m-fast) ease-out, background-color var(--om-m-fast);  /* 変化のアニメーション */
}

/* [6. Forms] .wpcf7 input[type="submit"]:hover */
/* ホバー時 */
.wpcf7 input[type="submit"]:hover,
.wpcf7 button[type="submit"]:hover,
.om-form [type="submit"]:hover {
  background: var(--om-accent);  /* 背景 */
  transform: translate(3px, 3px);  /* 変形 */
  box-shadow: 2px 2px 0 var(--om-ink);  /* 影 */
}

/* [6. Forms] .wpcf7 input[type="submit"]:disabled */
.wpcf7 input[type="submit"]:disabled,
.wpcf7 button[type="submit"]:disabled {
  opacity: 0.55;  /* 不透明度 */
  cursor: not-allowed;  /* カーソル */
}

/* [6. Forms] .wpcf7 .wpcf7-spinner */
.wpcf7 .wpcf7-spinner {
  margin: 0 12px;  /* 外側の余白 */
}

/* [6. Forms] .wpcf7 form .wpcf7-response-output */
.wpcf7 form .wpcf7-response-output {
  margin: 20px 0 0;  /* 外側の余白 */
  padding: 14px 18px;  /* 内側の余白 */
  border: var(--om-line);  /* 枠線 */
  border-radius: var(--om-r-md);  /* 角丸 */
  background: #fff;  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
  font-weight: 700;  /* 太さ */
}

/* [6. Forms] .wpcf7 form.sent .wpcf7-response-output */
.wpcf7 form.sent .wpcf7-response-output {
  background: var(--om-mint-soft);  /* 背景 */
}

/* [6. Forms] .wpcf7 form.invalid .wpcf7-response-output */
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
  background: var(--om-red-soft);  /* 背景 */
}

/* [6. Forms] .wpcf7 .wpcf7-not-valid-tip */
.wpcf7 .wpcf7-not-valid-tip {
  color: var(--om-red);  /* 文字色 */
  font-size: var(--om-fs-sm);  /* 文字サイズ */
  font-weight: 700;  /* 太さ */
  margin-top: 4px;
}

/* [6. Forms] .wpcf7 .wpcf7-list-item */
.wpcf7 .wpcf7-list-item {
  margin: 0 1em 0 0;  /* 外側の余白 */
}

/* [6. Forms] .wpcf7 input[type="checkbox"] */
.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
  width: 18px;  /* 幅 */
  height: 18px;  /* 高さ */
  margin-right: 6px;
  accent-color: var(--om-accent);
  vertical-align: middle;
}

/* [6. Forms] .wpcf7 label */
.wpcf7 label,
.wpcf7 p,
.wpcf7 span {
  color: var(--om-ink);  /* 文字色 */
}

/* [6. Forms] .om-cf7 */
.om-cf7 {
  background: #fff;  /* 背景 */
}

/* [6. Forms] .om-cf7 p */
.om-cf7 p {
  margin-bottom: 18px;
}

/* [6. Forms] .om-cf7 .om-cf7__row */
.om-cf7 .om-cf7__row {
  display: grid;  /* 表示形式 */
  gap: 18px;  /* 要素の間隔 */
}

@media (min-width: 640px) {

  /* [6. Forms] .om-cf7 .om-cf7__row--2 */
  /* バリエーション: 2 */
  .om-cf7 .om-cf7__row--2 {
    grid-template-columns: 1fr 1fr;  /* グリッドの列 */
  }
}

/* [6. Forms] .om-cf7 .om-cf7__label */
.om-cf7 .om-cf7__label {
  display: flex;  /* 表示形式 */
  align-items: center;  /* 縦の揃え */
  gap: 8px;  /* 要素の間隔 */
  font-weight: 700;  /* 太さ */
  margin-bottom: 6px;
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [6. Forms] .om-cf7 .om-cf7__submit */
.om-cf7 .om-cf7__submit {
  text-align: center;  /* 行揃え */
  margin-top: 10px;
}

/* [6. Forms] .om-cf7 .om-cf7__privacy */
.om-cf7 .om-cf7__privacy {
  font-size: var(--om-fs-sm);  /* 文字サイズ */
  color: var(--om-ink-soft);  /* 文字色 */
  text-align: center;  /* 行揃え */
}

/* ========================================================================
   7. WordPress core & blocks
   ======================================================================== */

/* [7. WordPress core & blocks] .alignleft */
.alignleft {
  float: left;
  margin: 0 1.5em 1em 0;  /* 外側の余白 */
}

/* [7. WordPress core & blocks] .alignright */
.alignright {
  float: right;
  margin: 0 0 1em 1.5em;  /* 外側の余白 */
}

/* [7. WordPress core & blocks] .aligncenter */
.aligncenter {
  display: block;  /* 表示形式 */
  margin: 0 auto 1.5em;  /* 外側の余白 */
}

/* [7. WordPress core & blocks] .alignwide */
.alignwide {
  max-width: var(--om-w-wide);  /* 最大幅 */
  margin-inline: auto;
}

/* [7. WordPress core & blocks] .alignfull */
.alignfull {
  width: 100vw;  /* 幅 */
  max-width: 100vw;  /* 最大幅 */
  margin-left: calc(50% - 50vw);
}

/* [7. WordPress core & blocks] .wp-caption */
.wp-caption {
  max-width: 100%;  /* 最大幅 */
}

/* [7. WordPress core & blocks] .wp-caption-text */
.wp-caption-text,
.wp-element-caption,
figcaption {
  font-size: var(--om-fs-sm);  /* 文字サイズ */
  color: var(--om-gray-600);  /* 文字色 */
  text-align: center;  /* 行揃え */
  margin-top: 8px;
}

/* [7. WordPress core & blocks] .screen-reader-text */
.screen-reader-text {
  position: absolute !important;  /* 配置方法 */
  width: 1px;  /* 幅 */
  height: 1px;  /* 高さ */
  overflow: hidden;  /* はみ出し */
  clip: rect(1px, 1px, 1px, 1px);
}

/* [7. WordPress core & blocks] .sticky */
.sticky,
.bypostauthor {
  display: block;  /* 表示形式 */
}

/* [7. WordPress core & blocks] .gallery */
.gallery {
  display: grid;  /* 表示形式 */
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));  /* グリッドの列 */
  gap: 12px;  /* 要素の間隔 */
}

/* [7. WordPress core & blocks] .wp-block-image img */
.wp-block-image img {
  border: var(--om-line);  /* 枠線 */
  border-radius: var(--om-r-md);  /* 角丸 */
}

/* [7. WordPress core & blocks] .wp-block-table table */
.wp-block-table table {
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [7. WordPress core & blocks] .wp-block-table.is-style-stripes tbody tr:nth-child(odd) */
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
  background: var(--om-gray-50);  /* 背景 */
}

/* [7. WordPress core & blocks] .wp-block-quote */
.wp-block-quote {
  border-left-color: var(--om-ink);
}

/* [7. WordPress core & blocks] .wp-block-button__link */
.wp-block-button__link {
  border: var(--om-line);  /* 枠線 */
  border-radius: var(--om-r-pill);  /* 角丸 */
  background: var(--om-accent);  /* 背景 */
  color: #fff;  /* 文字色 */
  font-family: var(--om-font-round);  /* 書体 */
  font-weight: 700;  /* 太さ */
  padding: 14px 30px;  /* 内側の余白 */
  box-shadow: var(--om-sh-sm);  /* 影 */
}

/* [7. WordPress core & blocks] .is-style-outline .wp-block-button__link */
.is-style-outline .wp-block-button__link {
  background: #fff;  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
}

/* [7. WordPress core & blocks] .wp-block-separator */
.wp-block-separator {
  border: 0;  /* 枠線 */
  border-top: 2px dashed var(--om-ink);
  opacity: 0.5;  /* 不透明度 */
}

/* [7. WordPress core & blocks] .wp-block-group.is-style-om-note */
.wp-block-group.is-style-om-note,
.is-style-om-note {
  background: var(--om-yellow-soft);  /* 背景 */
  border: var(--om-line);  /* 枠線 */
  border-radius: var(--om-r-lg);  /* 角丸 */
  padding: 20px 24px;  /* 内側の余白 */
}

/* [7. WordPress core & blocks] .wp-block-columns */
.wp-block-columns {
  gap: 24px;  /* 要素の間隔 */
}

/* [7. WordPress core & blocks] .has-om-pink-color */
.has-om-pink-color {
  color: var(--om-accent);  /* 文字色 */
}

/* [7. WordPress core & blocks] .has-om-blue-color */
.has-om-blue-color {
  color: var(--om-navy);  /* 文字色 */
}

/* [7. WordPress core & blocks] .has-om-yellow-background-color */
.has-om-yellow-background-color {
  background: var(--om-yellow-soft);  /* 背景 */
}

/* [7. WordPress core & blocks] .has-om-blue-background-color */
.has-om-blue-background-color {
  background: var(--om-sky);  /* 背景 */
}

/* [7. WordPress core & blocks] .has-om-pink-background-color */
.has-om-pink-background-color {
  background: var(--om-blush);  /* 背景 */
}

/* [7. WordPress core & blocks] .has-om-ink-background-color */
.has-om-ink-background-color {
  background: var(--om-ink);  /* 背景 */
  color: #fff;  /* 文字色 */
}

/* [7. WordPress core & blocks] .has-text-align-center */
.has-text-align-center {
  text-align: center;  /* 行揃え */
}

/* [7. WordPress core & blocks] .entry-content > *:last-child */
.entry-content > *:last-child,
.om-prose > *:last-child {
  margin-bottom: 0;
}

/* [7. WordPress core & blocks] .wp-block-embed iframe */
.wp-block-embed iframe {
  max-width: 100%;  /* 最大幅 */
}

/* [7. WordPress core & blocks] .elementor-section .om-container */
.elementor-section .om-container {
  padding-inline: 0;
}

/* [7. WordPress core & blocks] .om-elementor-page .om-main */
.om-elementor-page .om-main {
  padding: 0;  /* 内側の余白 */
}

/* [7. WordPress core & blocks] .om-plain */
.om-plain {
  display: block;  /* 表示形式 */
}

/* ========================================================================
   8. Reduced motion & print
   ======================================================================== */

@media (prefers-reduced-motion: reduce) {

  /* [8. Reduced motion & print] * */
  /* 疑似要素 */
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

/* [8. Reduced motion & print] .om-reduced-motion * */
/* 疑似要素 */
.om-reduced-motion *,
.om-reduced-motion *::before,
.om-reduced-motion *::after {
  animation: none !important;  /* アニメーション */
  transition: none !important;  /* 変化のアニメーション */
}

@media print {

  /* [8. Reduced motion & print] .om-header */
  .om-header,
  .om-footer,
  .om-side,
  .om-chat,
  .om-sticky-cta,
  .om-to-top,
  .om-deco,
  .om-wave,
  .om-nav-backdrop,
  .om-edge {
    display: none !important;  /* 表示形式 */
  }

  /* [8. Reduced motion & print] body */
  body {
    background: #fff;  /* 背景 */
    color: #000;  /* 文字色 */
    font-size: 12pt;  /* 文字サイズ */
  }

  /* [8. Reduced motion & print] a */
  a {
    color: #000;  /* 文字色 */
    text-decoration: underline;  /* 下線 */
  }

  /* [8. Reduced motion & print] .om-section */
  .om-section {
    padding: 16pt 0;  /* 内側の余白 */
  }

  /* [8. Reduced motion & print] .om-container */
  .om-container {
    max-width: none;  /* 最大幅 */
    padding: 0;  /* 内側の余白 */
  }
}
/* ==========================================================================
   Ohashi Method — utilities, block styles, Elementor compatibility, a11y.
   Appended to style.css. All classes are om- prefixed except WordPress core
   block classes, which are styled to match the theme tokens.
   ========================================================================== */

/* ========================================================================
   9. Spacing utilities
   ======================================================================== */

/* [9. Spacing utilities] .om-mt-0 */
.om-mt-0 {
  margin-top: 0 !important;
}

/* [9. Spacing utilities] .om-mt-1 */
.om-mt-1 {
  margin-top: var(--om-sp-1) !important;
}

/* [9. Spacing utilities] .om-mt-2 */
.om-mt-2 {
  margin-top: var(--om-sp-2) !important;
}

/* [9. Spacing utilities] .om-mt-3 */
.om-mt-3 {
  margin-top: var(--om-sp-3) !important;
}

/* [9. Spacing utilities] .om-mt-4 */
.om-mt-4 {
  margin-top: var(--om-sp-4) !important;
}

/* [9. Spacing utilities] .om-mt-6 */
.om-mt-6 {
  margin-top: var(--om-sp-6) !important;
}

/* [9. Spacing utilities] .om-mt-8 */
.om-mt-8 {
  margin-top: var(--om-sp-8) !important;
}

/* [9. Spacing utilities] .om-mt-12 */
.om-mt-12 {
  margin-top: var(--om-sp-12) !important;
}

/* [9. Spacing utilities] .om-mt-16 */
.om-mt-16 {
  margin-top: var(--om-sp-16) !important;
}

/* [9. Spacing utilities] .om-mb-0 */
.om-mb-0 {
  margin-bottom: 0 !important;
}

/* [9. Spacing utilities] .om-mb-1 */
.om-mb-1 {
  margin-bottom: var(--om-sp-1) !important;
}

/* [9. Spacing utilities] .om-mb-2 */
.om-mb-2 {
  margin-bottom: var(--om-sp-2) !important;
}

/* [9. Spacing utilities] .om-mb-3 */
.om-mb-3 {
  margin-bottom: var(--om-sp-3) !important;
}

/* [9. Spacing utilities] .om-mb-4 */
.om-mb-4 {
  margin-bottom: var(--om-sp-4) !important;
}

/* [9. Spacing utilities] .om-mb-6 */
.om-mb-6 {
  margin-bottom: var(--om-sp-6) !important;
}

/* [9. Spacing utilities] .om-mb-8 */
.om-mb-8 {
  margin-bottom: var(--om-sp-8) !important;
}

/* [9. Spacing utilities] .om-mb-12 */
.om-mb-12 {
  margin-bottom: var(--om-sp-12) !important;
}

/* [9. Spacing utilities] .om-mb-16 */
.om-mb-16 {
  margin-bottom: var(--om-sp-16) !important;
}

/* [9. Spacing utilities] .om-my-4 */
.om-my-4 {
  margin-top: var(--om-sp-4) !important;
  margin-bottom: var(--om-sp-4) !important;
}

/* [9. Spacing utilities] .om-my-8 */
.om-my-8 {
  margin-top: var(--om-sp-8) !important;
  margin-bottom: var(--om-sp-8) !important;
}

/* [9. Spacing utilities] .om-mx-auto */
.om-mx-auto {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* [9. Spacing utilities] .om-p-0 */
.om-p-0 {
  padding: 0 !important;  /* 内側の余白 */
}

/* [9. Spacing utilities] .om-p-2 */
.om-p-2 {
  padding: var(--om-sp-2) !important;  /* 内側の余白 */
}

/* [9. Spacing utilities] .om-p-4 */
.om-p-4 {
  padding: var(--om-sp-4) !important;  /* 内側の余白 */
}

/* [9. Spacing utilities] .om-p-6 */
.om-p-6 {
  padding: var(--om-sp-6) !important;  /* 内側の余白 */
}

/* [9. Spacing utilities] .om-p-8 */
.om-p-8 {
  padding: var(--om-sp-8) !important;  /* 内側の余白 */
}

/* [9. Spacing utilities] .om-px-4 */
.om-px-4 {
  padding-left: var(--om-sp-4) !important;
  padding-right: var(--om-sp-4) !important;
}

/* [9. Spacing utilities] .om-py-4 */
.om-py-4 {
  padding-top: var(--om-sp-4) !important;
  padding-bottom: var(--om-sp-4) !important;
}

/* [9. Spacing utilities] .om-py-8 */
.om-py-8 {
  padding-top: var(--om-sp-8) !important;
  padding-bottom: var(--om-sp-8) !important;
}

/* [9. Spacing utilities] .om-gap-2 */
.om-gap-2 {
  gap: var(--om-sp-2) !important;  /* 要素の間隔 */
}

/* [9. Spacing utilities] .om-gap-4 */
.om-gap-4 {
  gap: var(--om-sp-4) !important;  /* 要素の間隔 */
}

/* [9. Spacing utilities] .om-gap-6 */
.om-gap-6 {
  gap: var(--om-sp-6) !important;  /* 要素の間隔 */
}

/* ========================================================================
   10. Typography utilities
   ======================================================================== */

/* [10. Typography utilities] .om-fs-xs */
.om-fs-xs {
  font-size: var(--om-fs-xs) !important;  /* 文字サイズ */
}

/* [10. Typography utilities] .om-fs-sm */
.om-fs-sm {
  font-size: var(--om-fs-sm) !important;  /* 文字サイズ */
}

/* [10. Typography utilities] .om-fs-md */
.om-fs-md {
  font-size: var(--om-fs-md) !important;  /* 文字サイズ */
}

/* [10. Typography utilities] .om-fs-lg */
.om-fs-lg {
  font-size: var(--om-fs-lg) !important;  /* 文字サイズ */
}

/* [10. Typography utilities] .om-fs-xl */
.om-fs-xl {
  font-size: var(--om-fs-xl) !important;  /* 文字サイズ */
}

/* [10. Typography utilities] .om-fs-2xl */
.om-fs-2xl {
  font-size: var(--om-fs-2xl) !important;  /* 文字サイズ */
}

/* [10. Typography utilities] .om-fw-400 */
.om-fw-400 {
  font-weight: 400 !important;  /* 太さ */
}

/* [10. Typography utilities] .om-fw-700 */
.om-fw-700 {
  font-weight: 700 !important;  /* 太さ */
}

/* [10. Typography utilities] .om-fw-900 */
.om-fw-900 {
  font-weight: 900 !important;  /* 太さ */
}

/* [10. Typography utilities] .om-lh-tight */
.om-lh-tight {
  line-height: var(--om-lh-tight) !important;  /* 行間 */
}

/* [10. Typography utilities] .om-lh-snug */
.om-lh-snug {
  line-height: var(--om-lh-snug) !important;  /* 行間 */
}

/* [10. Typography utilities] .om-lh-relaxed */
.om-lh-relaxed {
  line-height: var(--om-lh-relaxed) !important;  /* 行間 */
}

/* [10. Typography utilities] .om-text-left */
.om-text-left {
  text-align: left !important;  /* 行揃え */
}

/* [10. Typography utilities] .om-text-right */
.om-text-right {
  text-align: right !important;  /* 行揃え */
}

/* [10. Typography utilities] .om-uppercase */
.om-uppercase {
  text-transform: uppercase;
  letter-spacing: var(--om-ls-wider);  /* 字間 */
}

/* [10. Typography utilities] .om-lead */
.om-lead {
  font-size: var(--om-fs-lg);  /* 文字サイズ */
  color: var(--om-ink-soft);  /* 文字色 */
}

/* [10. Typography utilities] .om-text */
.om-text {
  color: var(--om-ink);  /* 文字色 */
}

/* [10. Typography utilities] .om-muted */
.om-muted {
  color: var(--om-gray-600);  /* 文字色 */
}

/* [10. Typography utilities] .om-number */
.om-number {
  font-family: var(--om-font-round);  /* 書体 */
  font-weight: 900;  /* 太さ */
  font-variant-numeric: tabular-nums;
}

/* [10. Typography utilities] .om-mono-num */
.om-mono-num {
  font-variant-numeric: tabular-nums;
}

/* [10. Typography utilities] .om-break-all */
.om-break-all {
  word-break: break-all;
}

/* [10. Typography utilities] .om-truncate */
.om-truncate {
  overflow: hidden;  /* はみ出し */
  text-overflow: ellipsis;
  white-space: nowrap;  /* 改行の扱い */
}

/* [10. Typography utilities] .om-clamp-2 */
.om-clamp-2 {
  display: -webkit-box;  /* 表示形式 */
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;  /* はみ出し */
}

/* [10. Typography utilities] .om-clamp-3 */
.om-clamp-3 {
  display: -webkit-box;  /* 表示形式 */
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;  /* はみ出し */
}

/* ========================================================================
   11. Color / surface utilities
   ======================================================================== */

/* [11. Color / surface utilities] .om-bg-paper */
.om-bg-paper {
  background: var(--om-paper) !important;  /* 背景 */
}

/* [11. Color / surface utilities] .om-bg-sky */
.om-bg-sky {
  background: var(--om-sky) !important;  /* 背景 */
}

/* [11. Color / surface utilities] .om-bg-cream */
.om-bg-cream {
  background: var(--om-cream) !important;  /* 背景 */
}

/* [11. Color / surface utilities] .om-bg-blush */
.om-bg-blush {
  background: var(--om-blush) !important;  /* 背景 */
}

/* [11. Color / surface utilities] .om-bg-mint */
.om-bg-mint {
  background: var(--om-mint-soft) !important;  /* 背景 */
}

/* [11. Color / surface utilities] .om-bg-gray */
.om-bg-gray {
  background: var(--om-gray-50) !important;  /* 背景 */
}

/* [11. Color / surface utilities] .om-bg-yellow */
.om-bg-yellow {
  background: var(--om-yellow-soft) !important;  /* 背景 */
}

/* [11. Color / surface utilities] .om-c-ink */
.om-c-ink {
  color: var(--om-ink) !important;  /* 文字色 */
}

/* [11. Color / surface utilities] .om-c-soft */
.om-c-soft {
  color: var(--om-ink-soft) !important;  /* 文字色 */
}

/* [11. Color / surface utilities] .om-c-gray */
.om-c-gray {
  color: var(--om-gray-600) !important;  /* 文字色 */
}

/* [11. Color / surface utilities] .om-c-green */
.om-c-green {
  color: var(--om-green) !important;  /* 文字色 */
}

/* [11. Color / surface utilities] .om-c-red */
.om-c-red {
  color: var(--om-red) !important;  /* 文字色 */
}

/* [11. Color / surface utilities] .om-rounded */
.om-rounded {
  border-radius: var(--om-r-md) !important;  /* 角丸 */
}

/* [11. Color / surface utilities] .om-rounded-lg */
.om-rounded-lg {
  border-radius: var(--om-r-lg) !important;  /* 角丸 */
}

/* [11. Color / surface utilities] .om-rounded-xl */
.om-rounded-xl {
  border-radius: var(--om-r-xl) !important;  /* 角丸 */
}

/* [11. Color / surface utilities] .om-rounded-pill */
.om-rounded-pill {
  border-radius: var(--om-r-pill) !important;  /* 角丸 */
}

/* [11. Color / surface utilities] .om-shadow */
.om-shadow {
  box-shadow: var(--om-sh-md) !important;  /* 影 */
}

/* [11. Color / surface utilities] .om-shadow-sm */
.om-shadow-sm {
  box-shadow: var(--om-sh-sm) !important;  /* 影 */
}

/* [11. Color / surface utilities] .om-border */
.om-border {
  border: 2px solid var(--om-gray-200) !important;  /* 枠線 */
}

/* [11. Color / surface utilities] .om-border-dashed */
.om-border-dashed {
  border: 2px dashed var(--om-gray-300) !important;  /* 枠線 */
}

/* [11. Color / surface utilities] .om-surface */
.om-surface {
  background: #fff;  /* 背景 */
  border-radius: var(--om-r-xl);  /* 角丸 */
  box-shadow: var(--om-sh-sm);  /* 影 */
  padding: var(--om-sp-6);  /* 内側の余白 */
}

/* [11. Color / surface utilities] .om-surface--soft */
/* バリエーション: soft */
.om-surface--soft {
  background: var(--om-gray-50);  /* 背景 */
  box-shadow: none;  /* 影 */
}

/* ========================================================================
   12. Layout utilities
   ======================================================================== */

/* [12. Layout utilities] .om-flex */
.om-flex {
  display: flex !important;  /* 表示形式 */
}

/* [12. Layout utilities] .om-flex-wrap */
.om-flex-wrap {
  flex-wrap: wrap !important;  /* 折り返し */
}

/* [12. Layout utilities] .om-flex-col */
.om-flex-col {
  flex-direction: column !important;  /* 並ぶ方向 */
}

/* [12. Layout utilities] .om-items-center */
.om-items-center {
  align-items: center !important;  /* 縦の揃え */
}

/* [12. Layout utilities] .om-items-start */
.om-items-start {
  align-items: flex-start !important;  /* 縦の揃え */
}

/* [12. Layout utilities] .om-justify-center */
.om-justify-center {
  justify-content: center !important;  /* 横の揃え */
}

/* [12. Layout utilities] .om-justify-between */
.om-justify-between {
  justify-content: space-between !important;  /* 横の揃え */
}

/* [12. Layout utilities] .om-grid */
.om-grid {
  display: grid !important;  /* 表示形式 */
}

/* [12. Layout utilities] .om-grid-2 */
.om-grid-2 {
  display: grid;  /* 表示形式 */
  gap: var(--om-sp-6);  /* 要素の間隔 */
}

/* [12. Layout utilities] .om-grid-3 */
.om-grid-3 {
  display: grid;  /* 表示形式 */
  gap: var(--om-sp-6);  /* 要素の間隔 */
}

/* [12. Layout utilities] .om-grid-4 */
.om-grid-4 {
  display: grid;  /* 表示形式 */
  gap: var(--om-sp-6);  /* 要素の間隔 */
}

@media (min-width: 640px) {

  /* [12. Layout utilities] .om-grid-2 */
  .om-grid-2,
  .om-grid-3,
  .om-grid-4 {
    grid-template-columns: repeat(2, 1fr);  /* グリッドの列 */
  }
}

@media (min-width: 1024px) {

  /* [12. Layout utilities] .om-grid-3 */
  .om-grid-3 {
    grid-template-columns: repeat(3, 1fr);  /* グリッドの列 */
  }

  /* [12. Layout utilities] .om-grid-4 */
  .om-grid-4 {
    grid-template-columns: repeat(4, 1fr);  /* グリッドの列 */
  }
}

/* [12. Layout utilities] .om-block */
.om-block {
  display: block !important;  /* 表示形式 */
}

/* [12. Layout utilities] .om-inline-block */
.om-inline-block {
  display: inline-block !important;  /* 表示形式 */
}

/* [12. Layout utilities] .om-hidden */
.om-hidden {
  display: none !important;  /* 表示形式 */
}

@media (max-width: 767px) {

  /* [12. Layout utilities] .om-hide-sm */
  .om-hide-sm {
    display: none !important;  /* 表示形式 */
  }
}

@media (min-width: 768px) {

  /* [12. Layout utilities] .om-show-sm-only */
  .om-show-sm-only {
    display: none !important;  /* 表示形式 */
  }
}

@media (max-width: 1023px) {

  /* [12. Layout utilities] .om-hide-md */
  .om-hide-md {
    display: none !important;  /* 表示形式 */
  }
}

@media (min-width: 1024px) {

  /* [12. Layout utilities] .om-show-md-only */
  .om-show-md-only {
    display: none !important;  /* 表示形式 */
  }
}

/* [12. Layout utilities] .om-w-full */
.om-w-full {
  width: 100% !important;  /* 幅 */
}

/* [12. Layout utilities] .om-max-content */
.om-max-content {
  max-width: var(--om-w-content);  /* 最大幅 */
  margin-inline: auto;
}

/* [12. Layout utilities] .om-max-section */
.om-max-section {
  max-width: var(--om-w-section);  /* 最大幅 */
  margin-inline: auto;
}

/* [12. Layout utilities] .om-relative */
.om-relative {
  position: relative !important;  /* 配置方法 */
}

/* [12. Layout utilities] .om-absolute */
.om-absolute {
  position: absolute !important;  /* 配置方法 */
}

/* [12. Layout utilities] .om-overflow-hidden */
.om-overflow-hidden {
  overflow: hidden !important;  /* はみ出し */
}

/* [12. Layout utilities] .om-aspect-video */
.om-aspect-video {
  aspect-ratio: 16 / 9;
}

/* [12. Layout utilities] .om-aspect-square */
.om-aspect-square {
  aspect-ratio: 1 / 1;
}

/* [12. Layout utilities] .om-sticky-top */
.om-sticky-top {
  position: sticky;  /* 配置方法 */
  top: calc(var(--om-header-h) + 16px);  /* 上端 */
}

/* [12. Layout utilities] .om-divider */
.om-divider {
  height: 2px;  /* 高さ */
  border: 0;  /* 枠線 */
  background: var(--om-gray-200);  /* 背景 */
  margin: var(--om-sp-8) 0;  /* 外側の余白 */
}

/* [12. Layout utilities] .om-divider--dashed */
/* バリエーション: dashed */
.om-divider--dashed {
  background: none;  /* 背景 */
  border-top: 2px dashed var(--om-gray-300);
}

/* [12. Layout utilities] .om-divider--wave */
/* バリエーション: wave */
.om-divider--wave {
  height: 14px;  /* 高さ */
  background: radial-gradient(circle at 6px 6px, var(--om-navy-soft) 4px, transparent 5px) 0 0/16px 14px repeat-x;  /* 背景 */
}

/* ========================================================================
   13. Core blocks
   ======================================================================== */

/* [13. Core blocks] .wp-block-group */
.wp-block-group {
  margin-bottom: 1.4em;
}

/* [13. Core blocks] .wp-block-group.has-background */
.wp-block-group.has-background {
  padding: var(--om-sp-6);  /* 内側の余白 */
  border-radius: var(--om-r-xl);  /* 角丸 */
}

/* [13. Core blocks] .wp-block-columns */
.wp-block-columns {
  margin-bottom: 1.6em;
}

/* [13. Core blocks] .wp-block-column */
.wp-block-column {
  min-width: 0;
}

/* [13. Core blocks] .wp-block-cover */
.wp-block-cover {
  border-radius: var(--om-r-xl);  /* 角丸 */
  overflow: hidden;  /* はみ出し */
  min-height: 320px;  /* 最小高さ */
}

/* [13. Core blocks] .wp-block-cover .wp-block-cover__inner-container */
.wp-block-cover .wp-block-cover__inner-container {
  color: #fff;  /* 文字色 */
}

/* [13. Core blocks] .wp-block-media-text */
.wp-block-media-text {
  border-radius: var(--om-r-xl);  /* 角丸 */
  overflow: hidden;  /* はみ出し */
  background: var(--om-gray-50);  /* 背景 */
}

/* [13. Core blocks] .wp-block-media-text .wp-block-media-text__content */
.wp-block-media-text .wp-block-media-text__content {
  padding: var(--om-sp-6);  /* 内側の余白 */
}

/* [13. Core blocks] .wp-block-buttons */
.wp-block-buttons {
  display: flex;  /* 表示形式 */
  flex-wrap: wrap;  /* 折り返し */
  gap: var(--om-sp-3);  /* 要素の間隔 */
}

/* [13. Core blocks] .wp-block-button__link:hover */
/* ホバー時 */
.wp-block-button__link:hover {
  background: var(--om-navy-deep);  /* 背景 */
  color: #fff;  /* 文字色 */
}

/* [13. Core blocks] .wp-block-button.is-style-om-pink .wp-block-button__link */
.wp-block-button.is-style-om-pink .wp-block-button__link {
  background: var(--om-accent);  /* 背景 */
}

/* [13. Core blocks] .wp-block-button.is-style-om-pink .wp-block-button__link:hover */
/* ホバー時 */
.wp-block-button.is-style-om-pink .wp-block-button__link:hover {
  background: var(--om-accent-deep);  /* 背景 */
}

/* [13. Core blocks] .wp-block-button.is-style-om-yellow .wp-block-button__link */
.wp-block-button.is-style-om-yellow .wp-block-button__link {
  background: var(--om-yellow);  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
}

/* [13. Core blocks] .wp-block-pullquote */
.wp-block-pullquote {
  padding: var(--om-sp-8) var(--om-sp-6);  /* 内側の余白 */
  border: 0;  /* 枠線 */
  border-top: 4px solid var(--om-yellow);
  border-bottom: 4px solid var(--om-yellow);
  text-align: center;  /* 行揃え */
}

/* [13. Core blocks] .wp-block-pullquote p */
.wp-block-pullquote p {
  font-family: var(--om-font-round);  /* 書体 */
  font-size: var(--om-fs-xl);  /* 文字サイズ */
  line-height: 1.6;  /* 行間 */
}

/* [13. Core blocks] .wp-block-pullquote cite */
.wp-block-pullquote cite {
  font-size: var(--om-fs-sm);  /* 文字サイズ */
  color: var(--om-gray-600);  /* 文字色 */
  font-style: normal;
}

/* [13. Core blocks] .wp-block-quote cite */
.wp-block-quote cite {
  display: block;  /* 表示形式 */
  margin-top: 6px;
  font-size: var(--om-fs-sm);  /* 文字サイズ */
  color: var(--om-gray-600);  /* 文字色 */
  font-style: normal;
}

/* [13. Core blocks] .wp-block-quote.is-style-plain */
.wp-block-quote.is-style-plain {
  border: 0;  /* 枠線 */
  background: none;  /* 背景 */
  padding: 0;  /* 内側の余白 */
}

/* [13. Core blocks] .wp-block-list.is-style-om-check */
.wp-block-list.is-style-om-check {
  list-style: none;  /* リスト記号 */
  padding-left: 0;
}

/* [13. Core blocks] .wp-block-list.is-style-om-check li */
.wp-block-list.is-style-om-check li {
  position: relative;  /* 配置方法 */
  padding-left: 30px;
}

/* [13. Core blocks] .wp-block-list.is-style-om-check li::before */
/* 疑似要素 */
.wp-block-list.is-style-om-check li::before {
  content: "";  /* 生成内容 */
  position: absolute;  /* 配置方法 */
  left: 0;  /* 左端 */
  top: 0.35em;  /* 上端 */
  width: 20px;  /* 幅 */
  height: 20px;  /* 高さ */
  border-radius: 50%;  /* 角丸 */
  background: var(--om-mint-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2315765f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 13l4 4L19 7'/%3E%3C/svg%3E") center/12px no-repeat;  /* 背景 */
}

/* [13. Core blocks] .wp-block-list.is-style-om-number */
.wp-block-list.is-style-om-number {
  list-style: none;  /* リスト記号 */
  padding-left: 0;
  counter-reset: om-ol;
}

/* [13. Core blocks] .wp-block-list.is-style-om-number li */
.wp-block-list.is-style-om-number li {
  position: relative;  /* 配置方法 */
  padding-left: 40px;
  counter-increment: om-ol;
}

/* [13. Core blocks] .wp-block-list.is-style-om-number li::before */
/* 疑似要素 */
.wp-block-list.is-style-om-number li::before {
  content: counter(om-ol);  /* 生成内容 */
  position: absolute;  /* 配置方法 */
  left: 0;  /* 左端 */
  top: 0.1em;  /* 上端 */
  width: 28px;  /* 幅 */
  height: 28px;  /* 高さ */
  border-radius: 50%;  /* 角丸 */
  background: var(--om-navy);  /* 背景 */
  color: #fff;  /* 文字色 */
  font-family: var(--om-font-round);  /* 書体 */
  font-weight: 900;  /* 太さ */
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  display: inline-flex;  /* 表示形式 */
  align-items: center;  /* 縦の揃え */
  justify-content: center;  /* 横の揃え */
}

/* [13. Core blocks] .wp-block-table */
.wp-block-table {
  overflow-x: auto;  /* 横のはみ出し */
}

/* [13. Core blocks] .wp-block-table table */
.wp-block-table table {
  min-width: 480px;
}

/* [13. Core blocks] .wp-block-table thead th */
.wp-block-table thead th {
  background: var(--om-sky);  /* 背景 */
}

/* [13. Core blocks] .wp-block-table figcaption */
.wp-block-table figcaption {
  text-align: center;  /* 行揃え */
}

/* [13. Core blocks] .wp-block-details */
.wp-block-details {
  padding: 14px 18px;  /* 内側の余白 */
  border-radius: var(--om-r-lg);  /* 角丸 */
  background: var(--om-gray-50);  /* 背景 */
  margin-bottom: 1em;
}

/* [13. Core blocks] .wp-block-details summary */
.wp-block-details summary {
  cursor: pointer;  /* カーソル */
  font-weight: 700;  /* 太さ */
}

/* [13. Core blocks] .wp-block-image figcaption */
.wp-block-image figcaption {
  margin-top: 8px;
}

/* [13. Core blocks] .wp-block-image.is-style-rounded img */
.wp-block-image.is-style-rounded img {
  border-radius: var(--om-r-2xl);  /* 角丸 */
}

/* [13. Core blocks] .wp-block-gallery */
.wp-block-gallery {
  gap: 12px;  /* 要素の間隔 */
}

/* [13. Core blocks] .wp-block-video video */
.wp-block-video video {
  border-radius: var(--om-r-md);  /* 角丸 */
}

/* [13. Core blocks] .wp-block-embed */
.wp-block-embed {
  margin-bottom: 1.6em;
}

/* [13. Core blocks] .wp-block-embed__wrapper */
.wp-block-embed__wrapper {
  position: relative;  /* 配置方法 */
}

/* [13. Core blocks] .wp-block-embed.is-type-video .wp-block-embed__wrapper */
.wp-block-embed.is-type-video .wp-block-embed__wrapper {
  aspect-ratio: 16 / 9;
}

/* [13. Core blocks] .wp-block-embed.is-type-video iframe */
.wp-block-embed.is-type-video iframe {
  position: absolute;  /* 配置方法 */
  inset: 0;  /* 上下左右の位置 */
  width: 100%;  /* 幅 */
  height: 100%;  /* 高さ */
  border-radius: var(--om-r-md);  /* 角丸 */
}

/* [13. Core blocks] .wp-block-code */
.wp-block-code {
  background: var(--om-gray-100);  /* 背景 */
  border-radius: var(--om-r-md);  /* 角丸 */
  padding: 1em 1.25em;  /* 内側の余白 */
}

/* [13. Core blocks] .wp-block-preformatted */
.wp-block-preformatted {
  white-space: pre-wrap;  /* 改行の扱い */
}

/* [13. Core blocks] .wp-block-verse */
.wp-block-verse {
  font-family: var(--om-font-round);  /* 書体 */
}

/* [13. Core blocks] .wp-block-heading.has-text-align-center */
.wp-block-heading.has-text-align-center {
  text-align: center;  /* 行揃え */
}

/* [13. Core blocks] .wp-block-spacer */
.wp-block-spacer {
  clear: both;
}

/* [13. Core blocks] .wp-block-separator.is-style-wide */
.wp-block-separator.is-style-wide {
  width: 100%;  /* 幅 */
}

/* [13. Core blocks] .wp-block-separator.is-style-dots */
.wp-block-separator.is-style-dots {
  border: 0;  /* 枠線 */
  text-align: center;  /* 行揃え */
}

/* [13. Core blocks] .wp-block-separator.is-style-dots::before */
/* 疑似要素 */
.wp-block-separator.is-style-dots::before {
  content: "···";  /* 生成内容 */
  letter-spacing: 1em;  /* 字間 */
  color: var(--om-gray-400);  /* 文字色 */
  font-size: 1.5em;  /* 文字サイズ */
}

/* [13. Core blocks] .wp-block-latest-posts */
.wp-block-latest-posts {
  list-style: none;  /* リスト記号 */
  padding: 0;  /* 内側の余白 */
  display: grid;  /* 表示形式 */
  gap: 14px;  /* 要素の間隔 */
}

/* [13. Core blocks] .wp-block-latest-posts li */
.wp-block-latest-posts li {
  padding: 14px 18px;  /* 内側の余白 */
  border-radius: var(--om-r-lg);  /* 角丸 */
  background: #fff;  /* 背景 */
  box-shadow: var(--om-sh-xs);  /* 影 */
}

/* [13. Core blocks] .wp-block-latest-posts a */
.wp-block-latest-posts a {
  font-weight: 700;  /* 太さ */
  text-decoration: none;  /* 下線 */
  color: var(--om-ink);  /* 文字色 */
}

/* [13. Core blocks] .wp-block-latest-posts__post-date */
.wp-block-latest-posts__post-date {
  display: block;  /* 表示形式 */
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  color: var(--om-gray-600);  /* 文字色 */
}

/* [13. Core blocks] .wp-block-search__input */
.wp-block-search__input {
  min-height: 48px;  /* 最小高さ */
  padding: 8px 14px;  /* 内側の余白 */
  border: 2px solid var(--om-gray-300);  /* 枠線 */
  border-radius: var(--om-r-pill);  /* 角丸 */
}

/* [13. Core blocks] .wp-block-search__button */
.wp-block-search__button {
  border-radius: var(--om-r-pill);  /* 角丸 */
  background: var(--om-navy);  /* 背景 */
  color: #fff;  /* 文字色 */
  border: 0;  /* 枠線 */
  padding: 0 18px;  /* 内側の余白 */
}

/* [13. Core blocks] .wp-block-categories */
.wp-block-categories,
.wp-block-archives {
  list-style: none;  /* リスト記号 */
  padding: 0;  /* 内側の余白 */
}

/* [13. Core blocks] .wp-block-categories li */
.wp-block-categories li,
.wp-block-archives li {
  padding: 6px 0;  /* 内側の余白 */
  border-top: 1px dashed var(--om-gray-300);
}

/* [13. Core blocks] .wp-block-tag-cloud a */
.wp-block-tag-cloud a {
  display: inline-block;  /* 表示形式 */
  margin: 0 6px 6px 0;  /* 外側の余白 */
  padding: 4px 12px;  /* 内側の余白 */
  border-radius: var(--om-r-pill);  /* 角丸 */
  background: var(--om-gray-100);  /* 背景 */
  font-size: var(--om-fs-xs) !important;  /* 文字サイズ */
  text-decoration: none;  /* 下線 */
}

/* [13. Core blocks] .wp-block-social-links */
.wp-block-social-links {
  gap: 8px;  /* 要素の間隔 */
}

/* [13. Core blocks] .wp-block-navigation a */
.wp-block-navigation a {
  font-family: var(--om-font-round);  /* 書体 */
  font-weight: 700;  /* 太さ */
}

/* [13. Core blocks] .wp-block-post-title a */
.wp-block-post-title a {
  text-decoration: none;  /* 下線 */
  color: var(--om-ink);  /* 文字色 */
}

/* [13. Core blocks] .wp-block-post-excerpt__more-link */
.wp-block-post-excerpt__more-link {
  font-weight: 700;  /* 太さ */
}

/* [13. Core blocks] .wp-block-query-pagination */
.wp-block-query-pagination {
  margin-top: 32px;
}

/* [13. Core blocks] .wp-block-query-pagination a */
.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
  padding: 8px 14px;  /* 内側の余白 */
  border-radius: var(--om-r-pill);  /* 角丸 */
  background: #fff;  /* 背景 */
  box-shadow: var(--om-sh-xs);  /* 影 */
  text-decoration: none;  /* 下線 */
}

/* [13. Core blocks] .wp-block-file */
.wp-block-file {
  padding: 12px 16px;  /* 内側の余白 */
  border-radius: var(--om-r-md);  /* 角丸 */
  background: var(--om-gray-50);  /* 背景 */
}

/* [13. Core blocks] .wp-block-file .wp-block-file__button */
.wp-block-file .wp-block-file__button {
  border-radius: var(--om-r-pill);  /* 角丸 */
  background: var(--om-navy);  /* 背景 */
}

/* [13. Core blocks] .wp-block-audio audio */
.wp-block-audio audio {
  width: 100%;  /* 幅 */
}

/* [13. Core blocks] .wp-block-calendar table */
.wp-block-calendar table {
  font-size: var(--om-fs-xs);  /* 文字サイズ */
}

/* [13. Core blocks] .wp-block-calendar caption */
.wp-block-calendar caption {
  font-weight: 700;  /* 太さ */
  padding: 6px;  /* 内側の余白 */
}

/* [13. Core blocks] .wp-block-rss */
.wp-block-rss,
.wp-block-latest-comments {
  list-style: none;  /* リスト記号 */
  padding: 0;  /* 内側の余白 */
}

/* [13. Core blocks] .has-small-font-size */
.has-small-font-size {
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [13. Core blocks] .has-medium-font-size */
.has-medium-font-size {
  font-size: var(--om-fs-lg);  /* 文字サイズ */
}

/* [13. Core blocks] .has-large-font-size */
.has-large-font-size {
  font-size: var(--om-fs-2xl);  /* 文字サイズ */
}

/* [13. Core blocks] .has-x-large-font-size */
.has-x-large-font-size {
  font-size: var(--om-fs-3xl);  /* 文字サイズ */
}

/* [13. Core blocks] .has-om-mint-background-color */
.has-om-mint-background-color {
  background: var(--om-mint-soft);  /* 背景 */
}

/* [13. Core blocks] .has-om-gray-background-color */
.has-om-gray-background-color {
  background: var(--om-gray-50);  /* 背景 */
}

/* [13. Core blocks] .has-om-mint-color */
.has-om-mint-color {
  color: var(--om-mint);  /* 文字色 */
}

/* [13. Core blocks] .has-om-yellow-color */
.has-om-yellow-color {
  color: var(--om-yellow-deep);  /* 文字色 */
}

/* [13. Core blocks] .has-om-ink-color */
.has-om-ink-color {
  color: var(--om-ink);  /* 文字色 */
}

/* [13. Core blocks] .has-om-paper-color */
.has-om-paper-color {
  color: #fff;  /* 文字色 */
}

/* [13. Core blocks] .is-style-om-card */
.is-style-om-card {
  background: #fff;  /* 背景 */
  border-radius: var(--om-r-xl);  /* 角丸 */
  box-shadow: var(--om-sh-md);  /* 影 */
  padding: var(--om-sp-6);  /* 内側の余白 */
}

/* [13. Core blocks] .is-style-om-frame */
.is-style-om-frame {
  border: 2px solid var(--om-navy);  /* 枠線 */
  border-radius: 4px;  /* 角丸 */
  padding: var(--om-sp-5) var(--om-sp-6);  /* 内側の余白 */
  position: relative;  /* 配置方法 */
}

/* [13. Core blocks] .is-style-om-highlight */
.is-style-om-highlight {
  background: linear-gradient(transparent 58%, var(--om-yellow-soft) 58%);  /* 背景 */
}

/* ========================================================================
   14. Elementor compatibility
   ======================================================================== */

/* [14. Elementor compatibility] .elementor-page .om-main > .om-container--content */
/* バリエーション: content */
.elementor-page .om-main > .om-container--content {
  max-width: none;  /* 最大幅 */
  padding: 0;  /* 内側の余白 */
}

/* [14. Elementor compatibility] .elementor-section-boxed > .elementor-container */
.elementor-section-boxed > .elementor-container {
  max-width: var(--om-w-section);  /* 最大幅 */
}

/* [14. Elementor compatibility] .elementor-widget-container h1 */
.elementor-widget-container h1,
.elementor-widget-container h2,
.elementor-widget-container h3 {
  font-family: var(--om-font-round);  /* 書体 */
}

/* [14. Elementor compatibility] .elementor-widget-text-editor */
.elementor-widget-text-editor {
  font-size: var(--om-fs-base);  /* 文字サイズ */
  line-height: var(--om-lh-body);  /* 行間 */
}

/* [14. Elementor compatibility] .elementor-button */
.elementor-button {
  border-radius: var(--om-r-pill) !important;  /* 角丸 */
  font-family: var(--om-font-round);  /* 書体 */
  font-weight: 700;  /* 太さ */
}

/* [14. Elementor compatibility] .elementor-widget-om_faq .om-faq */
.elementor-widget-om_faq .om-faq,
.elementor-widget-om_services .om-services {
  margin: 0;  /* 外側の余白 */
}

/* [14. Elementor compatibility] .elementor-editor-active [data-om-animate] */
.elementor-editor-active [data-om-animate] {
  opacity: 1 !important;  /* 不透明度 */
  transform: none !important;  /* 変形 */
}

/* [14. Elementor compatibility] .elementor-editor-active .om-frame__title.is-typing .om-frame__seg > span */
.elementor-editor-active .om-frame__title.is-typing .om-frame__seg > span {
  visibility: visible;  /* 可視 */
}

/* [14. Elementor compatibility] .elementor-location-header .om-header */
.elementor-location-header .om-header {
  position: relative;  /* 配置方法 */
}

/* [14. Elementor compatibility] body.elementor-default .om-main */
body.elementor-default .om-main {
  padding-top: 0;
}

/* [14. Elementor compatibility] .e-con.e-flex .om-section */
.e-con.e-flex .om-section {
  width: 100%;  /* 幅 */
}

/* [14. Elementor compatibility] .elementor-kit-defaults .om-btn */
.elementor-kit-defaults .om-btn {
  line-height: 1.3;  /* 行間 */
}

/* ========================================================================
   15. Accessibility & states
   ======================================================================== */

/* [15. Accessibility & states] .om-focus-ring:focus-visible */
/* フォーカス時 */
.om-focus-ring:focus-visible {
  outline: 3px solid var(--om-focus);  /* フォーカス枠 */
  outline-offset: 3px;
}

/* [15. Accessibility & states] .om-visually-hidden-focusable:not(:focus):not(:focus-within) */
/* フォーカス時 */
.om-visually-hidden-focusable:not(:focus):not(:focus-within) {
  position: absolute !important;  /* 配置方法 */
  width: 1px;  /* 幅 */
  height: 1px;  /* 高さ */
  padding: 0;  /* 内側の余白 */
  margin: -1px;  /* 外側の余白 */
  overflow: hidden;  /* はみ出し */
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;  /* 改行の扱い */
  border: 0;  /* 枠線 */
}

/* [15. Accessibility & states] .om-is-loading */
.om-is-loading {
  position: relative;  /* 配置方法 */
  pointer-events: none;  /* クリック可否 */
  opacity: 0.7;  /* 不透明度 */
}

/* [15. Accessibility & states] .om-is-loading::after */
/* 疑似要素 */
.om-is-loading::after {
  content: "";  /* 生成内容 */
  position: absolute;  /* 配置方法 */
  right: 14px;  /* 右端 */
  top: 50%;  /* 上端 */
  width: 18px;  /* 幅 */
  height: 18px;  /* 高さ */
  margin-top: -9px;
  border: 3px solid var(--om-gray-300);  /* 枠線 */
  border-top-color: var(--om-navy);
  border-radius: 50%;  /* 角丸 */
  animation: om-spin 0.8s linear infinite;  /* アニメーション */
}

/* [15. Accessibility & states] .om-is-success */
.om-is-success {
  border-color: var(--om-mint) !important;
  background: var(--om-mint-soft) !important;  /* 背景 */
}

/* [15. Accessibility & states] .om-is-error */
.om-is-error {
  border-color: var(--om-red) !important;
  background: var(--om-red-soft) !important;  /* 背景 */
}

/* [15. Accessibility & states] .om-status */
.om-status {
  display: inline-flex;  /* 表示形式 */
  align-items: center;  /* 縦の揃え */
  gap: 6px;  /* 要素の間隔 */
  padding: 4px 12px;  /* 内側の余白 */
  border-radius: var(--om-r-pill);  /* 角丸 */
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  font-weight: 700;  /* 太さ */
}

/* [15. Accessibility & states] .om-status--ok */
/* バリエーション: ok */
.om-status--ok {
  background: var(--om-mint-soft);  /* 背景 */
  color: #15765f;  /* 文字色 */
}

/* [15. Accessibility & states] .om-status--warn */
/* バリエーション: warn */
.om-status--warn {
  background: var(--om-yellow-soft);  /* 背景 */
  color: #7a5a00;  /* 文字色 */
}

/* [15. Accessibility & states] .om-status--ng */
/* バリエーション: ng */
.om-status--ng {
  background: var(--om-red-soft);  /* 背景 */
  color: var(--om-red);  /* 文字色 */
}

/* [15. Accessibility & states] .om-tooltip */
.om-tooltip {
  position: relative;  /* 配置方法 */
}

/* [15. Accessibility & states] .om-tooltip__text */
.om-tooltip__text {
  position: absolute;  /* 配置方法 */
  left: 50%;  /* 左端 */
  bottom: calc(100% + 8px);  /* 下端 */
  transform: translateX(-50%);  /* 変形 */
  padding: 6px 10px;  /* 内側の余白 */
  border-radius: 8px;  /* 角丸 */
  background: var(--om-ink);  /* 背景 */
  color: #fff;  /* 文字色 */
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  white-space: nowrap;  /* 改行の扱い */
  opacity: 0;  /* 不透明度 */
  pointer-events: none;  /* クリック可否 */
  transition: opacity var(--om-m-fast);  /* 変化のアニメーション */
}

/* [15. Accessibility & states] .om-tooltip:hover .om-tooltip__text */
/* ホバー時、フォーカス時 */
.om-tooltip:hover .om-tooltip__text,
.om-tooltip:focus-within .om-tooltip__text {
  opacity: 1;  /* 不透明度 */
}

/* [15. Accessibility & states] .om-copy-protected */
.om-copy-protected {
  -webkit-user-select: none;
  user-select: none;
}

/* [15. Accessibility & states] .om-copy-protected input */
.om-copy-protected input,
.om-copy-protected textarea,
.om-copy-protected [contenteditable] {
  -webkit-user-select: text;
  user-select: text;
}

/* [15. Accessibility & states] .om-copy-protected img */
.om-copy-protected img {
  -webkit-user-drag: none;
  pointer-events: none;  /* クリック可否 */
}

/* [15. Accessibility & states] .om-copy-protected .om-btn */
.om-copy-protected .om-btn,
.om-copy-protected a {
  pointer-events: auto;  /* クリック可否 */
}

/* [15. Accessibility & states] .om-noscript */
.om-noscript {
  padding: 10px 16px;  /* 内側の余白 */
  background: var(--om-yellow-soft);  /* 背景 */
  font-size: var(--om-fs-sm);  /* 文字サイズ */
  text-align: center;  /* 行揃え */
}

@media (forced-colors: active) {

  /* [15. Accessibility & states] .om-btn */
  .om-btn,
  .om-badge,
  .om-tag {
    border: 1px solid ButtonText;  /* 枠線 */
  }

  /* [15. Accessibility & states] .om-frame::before */
  /* 疑似要素 */
  .om-frame::before {
    border-color: CanvasText;
  }
}

@media (hover: none) {

  /* [15. Accessibility & states] .om-btn:hover */
  /* ホバー時 */
  .om-btn:hover {
    transform: none;  /* 変形 */
  }

  /* [15. Accessibility & states] .om-card:hover */
  /* ホバー時 */
  .om-card:hover {
    transform: none;  /* 変形 */
  }
}
/* ==========================================================================
   Ohashi Method — base extras: native form controls, comment form, table
   variants, alerts, accordion, steps, icon sizes, keyframes library.
   ========================================================================== */

/* ========================================================================
   16. Native form controls
   ======================================================================== */

/* [16. Native form controls] .om-form select */
.om-form select,
.wpcf7 select,
select.om-input {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 44px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2323262f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 18px;
}

/* [16. Native form controls] .om-form select:disabled */
.om-form select:disabled,
.wpcf7 select:disabled {
  background-color: var(--om-gray-100);  /* 背景色 */
  color: var(--om-gray-500);  /* 文字色 */
}

/* [16. Native form controls] .om-form input[type="number"] */
.om-form input[type="number"] {
  -moz-appearance: textfield;
}

/* [16. Native form controls] .om-form input[type="number"]::-webkit-outer-spin-button */
.om-form input[type="number"]::-webkit-outer-spin-button,
.om-form input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;  /* 外側の余白 */
}

/* [16. Native form controls] .om-form input[type="date"] */
.om-form input[type="date"],
.om-form input[type="time"] {
  min-height: 54px;  /* 最小高さ */
}

/* [16. Native form controls] .om-form input[type="file"] */
.om-form input[type="file"],
.wpcf7 input[type="file"] {
  padding: 12px;  /* 内側の余白 */
  border: 2px dashed var(--om-gray-300);  /* 枠線 */
  border-radius: var(--om-r-md);  /* 角丸 */
  background: var(--om-gray-50);  /* 背景 */
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [16. Native form controls] .om-form input[type="file"]::file-selector-button */
.om-form input[type="file"]::file-selector-button,
.wpcf7 input[type="file"]::file-selector-button {
  margin-right: 12px;
  padding: 8px 14px;  /* 内側の余白 */
  border: 0;  /* 枠線 */
  border-radius: var(--om-r-pill);  /* 角丸 */
  background: var(--om-navy);  /* 背景 */
  color: #fff;  /* 文字色 */
  font-weight: 700;  /* 太さ */
  cursor: pointer;  /* カーソル */
}

/* [16. Native form controls] .om-form input[type="range"] */
.om-form input[type="range"] {
  width: 100%;  /* 幅 */
  accent-color: var(--om-navy);
}

/* [16. Native form controls] .om-form fieldset */
.om-form fieldset,
.wpcf7 fieldset {
  margin: 0 0 18px;  /* 外側の余白 */
  padding: 16px 18px;  /* 内側の余白 */
  border: 2px solid var(--om-gray-200);  /* 枠線 */
  border-radius: var(--om-r-lg);  /* 角丸 */
}

/* [16. Native form controls] .om-form legend */
.om-form legend,
.wpcf7 legend {
  padding: 0 8px;  /* 内側の余白 */
  font-weight: 700;  /* 太さ */
  font-family: var(--om-font-round);  /* 書体 */
}

/* [16. Native form controls] .om-check */
.om-check,
.om-radio {
  display: inline-flex;  /* 表示形式 */
  align-items: center;  /* 縦の揃え */
  gap: 10px;  /* 要素の間隔 */
  cursor: pointer;  /* カーソル */
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [16. Native form controls] .om-check input */
.om-check input,
.om-radio input {
  width: 20px;  /* 幅 */
  height: 20px;  /* 高さ */
  margin: 0;  /* 外側の余白 */
  accent-color: var(--om-navy);
}

/* [16. Native form controls] .om-check--box */
/* バリエーション: box */
.om-check--box {
  padding: 12px 16px;  /* 内側の余白 */
  border: 2px solid var(--om-gray-200);  /* 枠線 */
  border-radius: var(--om-r-md);  /* 角丸 */
}

/* [16. Native form controls] .om-check--box:has(input:checked) */
/* バリエーション: box */
.om-check--box:has(input:checked) {
  border-color: var(--om-navy);
  background: var(--om-sky);  /* 背景 */
}

/* [16. Native form controls] .om-switch */
.om-switch {
  position: relative;  /* 配置方法 */
  display: inline-block;  /* 表示形式 */
  width: 46px;  /* 幅 */
  height: 26px;  /* 高さ */
}

/* [16. Native form controls] .om-switch input */
.om-switch input {
  opacity: 0;  /* 不透明度 */
  width: 0;  /* 幅 */
  height: 0;  /* 高さ */
}

/* [16. Native form controls] .om-switch__track */
.om-switch__track {
  position: absolute;  /* 配置方法 */
  inset: 0;  /* 上下左右の位置 */
  border-radius: 13px;  /* 角丸 */
  background: var(--om-gray-300);  /* 背景 */
  transition: background var(--om-m-fast);  /* 変化のアニメーション */
}

/* [16. Native form controls] .om-switch__track::before */
/* 疑似要素 */
.om-switch__track::before {
  content: "";  /* 生成内容 */
  position: absolute;  /* 配置方法 */
  left: 3px;  /* 左端 */
  top: 3px;  /* 上端 */
  width: 20px;  /* 幅 */
  height: 20px;  /* 高さ */
  border-radius: 50%;  /* 角丸 */
  background: #fff;  /* 背景 */
  transition: transform var(--om-m-fast);  /* 変化のアニメーション */
}

/* [16. Native form controls] .om-switch input:checked + .om-switch__track */
.om-switch input:checked + .om-switch__track {
  background: var(--om-navy);  /* 背景 */
}

/* [16. Native form controls] .om-switch input:checked + .om-switch__track::before */
/* 疑似要素 */
.om-switch input:checked + .om-switch__track::before {
  transform: translateX(20px);  /* 変形 */
}

/* [16. Native form controls] .om-input:disabled */
.om-input:disabled,
.om-form input:disabled,
.om-form textarea:disabled {
  background: var(--om-gray-100);  /* 背景 */
  color: var(--om-gray-500);  /* 文字色 */
  cursor: not-allowed;  /* カーソル */
}

/* [16. Native form controls] .om-input[aria-invalid="true"] */
.om-input[aria-invalid="true"],
.wpcf7-not-valid {
  border-color: var(--om-red) !important;
}

/* [16. Native form controls] .om-input--sm */
/* バリエーション: sm */
.om-input--sm {
  min-height: 42px;  /* 最小高さ */
  padding: 6px 14px;  /* 内側の余白 */
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [16. Native form controls] .om-input--lg */
/* バリエーション: lg */
.om-input--lg {
  min-height: 60px;  /* 最小高さ */
  font-size: 1.1rem;  /* 文字サイズ */
}

/* [16. Native form controls] .om-input-group */
.om-input-group {
  display: flex;  /* 表示形式 */
  gap: 8px;  /* 要素の間隔 */
}

/* [16. Native form controls] .om-input-group .om-input */
.om-input-group .om-input {
  flex: 1 1 auto;  /* 伸縮 */
}

/* [16. Native form controls] .om-field__counter */
.om-field__counter {
  margin-top: 4px;
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  color: var(--om-gray-500);  /* 文字色 */
  text-align: right;  /* 行揃え */
}

/* [16. Native form controls] .om-field__error */
.om-field__error {
  margin-top: 4px;
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  color: var(--om-red);  /* 文字色 */
}

/* [16. Native form controls] .om-field--inline */
/* バリエーション: inline */
.om-field--inline {
  display: flex;  /* 表示形式 */
  align-items: center;  /* 縦の揃え */
  gap: 12px;  /* 要素の間隔 */
}

/* [16. Native form controls] .om-field--inline .om-field__label */
/* バリエーション: inline */
.om-field--inline .om-field__label {
  margin: 0;  /* 外側の余白 */
  flex: 0 0 140px;  /* 伸縮 */
}

/* [16. Native form controls] .om-form__row */
.om-form__row {
  display: grid;  /* 表示形式 */
  gap: 18px;  /* 要素の間隔 */
}

@media (min-width: 640px) {

  /* [16. Native form controls] .om-form__row--2 */
  /* バリエーション: 2 */
  .om-form__row--2 {
    grid-template-columns: 1fr 1fr;  /* グリッドの列 */
  }

  /* [16. Native form controls] .om-form__row--3 */
  /* バリエーション: 3 */
  .om-form__row--3 {
    grid-template-columns: repeat(3, 1fr);  /* グリッドの列 */
  }
}

/* [16. Native form controls] .om-form__actions */
.om-form__actions {
  display: flex;  /* 表示形式 */
  flex-wrap: wrap;  /* 折り返し */
  gap: 12px;  /* 要素の間隔 */
  align-items: center;  /* 縦の揃え */
  margin-top: 10px;
}

/* [16. Native form controls] .om-form__note */
.om-form__note {
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  color: var(--om-gray-600);  /* 文字色 */
}

/* [16. Native form controls] .om-form--card */
/* バリエーション: card */
.om-form--card {
  padding: clamp(22px, 3.5vw, 40px);  /* 内側の余白 */
  background: #fff;  /* 背景 */
  border-radius: var(--om-r-2xl);  /* 角丸 */
  box-shadow: var(--om-sh-lg);  /* 影 */
}

/* ========================================================================
   17. WordPress comment form
   ======================================================================== */

/* [17. WordPress comment form] .comment-respond */
.comment-respond {
  margin-top: 32px;
  padding: 24px;  /* 内側の余白 */
  border-radius: var(--om-r-xl);  /* 角丸 */
  background: var(--om-gray-50);  /* 背景 */
}

/* [17. WordPress comment form] .comment-reply-title */
.comment-reply-title {
  margin: 0 0 14px;  /* 外側の余白 */
  font-size: 1.2rem;  /* 文字サイズ */
}

/* [17. WordPress comment form] .comment-reply-title small */
.comment-reply-title small {
  margin-left: 10px;
  font-size: var(--om-fs-sm);  /* 文字サイズ */
  font-weight: 400;  /* 太さ */
}

/* [17. WordPress comment form] .comment-notes */
.comment-notes,
.logged-in-as {
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  color: var(--om-gray-600);  /* 文字色 */
}

/* [17. WordPress comment form] .comment-form label */
.comment-form label {
  display: block;  /* 表示形式 */
  margin-bottom: 6px;
  font-weight: 700;  /* 太さ */
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [17. WordPress comment form] .comment-form input[type="text"] */
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
  display: block;  /* 表示形式 */
  width: 100%;  /* 幅 */
  min-height: 50px;  /* 最小高さ */
  padding: 10px 16px;  /* 内側の余白 */
  border: 2px solid var(--om-gray-300);  /* 枠線 */
  border-radius: var(--om-r-md);  /* 角丸 */
  background: #fff;  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
}

/* [17. WordPress comment form] .comment-form textarea */
.comment-form textarea {
  min-height: 140px;  /* 最小高さ */
}

/* [17. WordPress comment form] .comment-form input:focus */
/* フォーカス時 */
.comment-form input:focus,
.comment-form textarea:focus {
  outline: none;  /* フォーカス枠 */
  border-color: var(--om-navy);
  box-shadow: var(--om-sh-focus);  /* 影 */
}

/* [17. WordPress comment form] .comment-form .comment-form-cookies-consent */
.comment-form .comment-form-cookies-consent {
  display: flex;  /* 表示形式 */
  align-items: center;  /* 縦の揃え */
  gap: 8px;  /* 要素の間隔 */
}

/* [17. WordPress comment form] .comment-form .comment-form-cookies-consent label */
.comment-form .comment-form-cookies-consent label {
  margin: 0;  /* 外側の余白 */
  font-weight: 400;  /* 太さ */
}

/* [17. WordPress comment form] .comment-form .form-submit input[type="submit"] */
.comment-form .form-submit input[type="submit"] {
  min-height: 52px;  /* 最小高さ */
  padding: 0 30px;  /* 内側の余白 */
  border: 0;  /* 枠線 */
  border-radius: var(--om-r-pill);  /* 角丸 */
  background: var(--om-navy);  /* 背景 */
  color: #fff;  /* 文字色 */
  font-family: var(--om-font-round);  /* 書体 */
  font-weight: 700;  /* 太さ */
  cursor: pointer;  /* カーソル */
}

/* [17. WordPress comment form] .comment-form .form-submit input[type="submit"]:hover */
/* ホバー時 */
.comment-form .form-submit input[type="submit"]:hover {
  background: var(--om-navy-deep);  /* 背景 */
}

/* [17. WordPress comment form] .comment-list */
.comment-list {
  list-style: none;  /* リスト記号 */
  margin: 0;  /* 外側の余白 */
  padding: 0;  /* 内側の余白 */
}

/* [17. WordPress comment form] .comment-list .children */
.comment-list .children {
  list-style: none;  /* リスト記号 */
  margin: 0 0 0 24px;  /* 外側の余白 */
  padding: 0;  /* 内側の余白 */
}

/* [17. WordPress comment form] .comment-body */
.comment-body {
  padding: 16px 0;  /* 内側の余白 */
  border-top: 1px dashed var(--om-gray-300);
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [17. WordPress comment form] .comment-author .avatar */
.comment-author .avatar {
  border-radius: 50%;  /* 角丸 */
  vertical-align: middle;
  margin-right: 8px;
}

/* [17. WordPress comment form] .comment-author .fn */
.comment-author .fn {
  font-weight: 700;  /* 太さ */
  font-style: normal;
}

/* [17. WordPress comment form] .comment-metadata */
.comment-metadata {
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  color: var(--om-gray-600);  /* 文字色 */
}

/* [17. WordPress comment form] .comment-metadata a */
.comment-metadata a {
  color: inherit;  /* 文字色 */
  text-decoration: none;  /* 下線 */
}

/* [17. WordPress comment form] .comment-content */
.comment-content {
  margin-top: 8px;
}

/* [17. WordPress comment form] .comment-content p:last-child */
.comment-content p:last-child {
  margin-bottom: 0;
}

/* [17. WordPress comment form] .comment .reply */
.comment .reply {
  margin-top: 6px;
  font-size: var(--om-fs-xs);  /* 文字サイズ */
}

/* [17. WordPress comment form] .comment .reply a */
.comment .reply a {
  font-weight: 700;  /* 太さ */
}

/* [17. WordPress comment form] .comment-awaiting-moderation */
.comment-awaiting-moderation {
  display: inline-block;  /* 表示形式 */
  padding: 2px 10px;  /* 内側の余白 */
  border-radius: var(--om-r-pill);  /* 角丸 */
  background: var(--om-yellow-soft);  /* 背景 */
  font-size: var(--om-fs-xs);  /* 文字サイズ */
}

/* [17. WordPress comment form] .comment-navigation */
.comment-navigation {
  display: flex;  /* 表示形式 */
  justify-content: space-between;  /* 横の揃え */
  margin: 16px 0;  /* 外側の余白 */
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [17. WordPress comment form] .no-comments */
.no-comments {
  color: var(--om-gray-600);  /* 文字色 */
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* ========================================================================
   18. Table variants
   ======================================================================== */

/* [18. Table variants] .om-table--striped tbody tr:nth-child(odd) */
/* バリエーション: striped */
.om-table--striped tbody tr:nth-child(odd) {
  background: var(--om-gray-50);  /* 背景 */
}

/* [18. Table variants] .om-table--compact th */
/* バリエーション: compact */
.om-table--compact th,
.om-table--compact td {
  padding: 0.45em 0.7em;  /* 内側の余白 */
  font-size: var(--om-fs-xs);  /* 文字サイズ */
}

/* [18. Table variants] .om-table--scroll */
/* バリエーション: scroll */
.om-table--scroll {
  display: block;  /* 表示形式 */
  overflow-x: auto;  /* 横のはみ出し */
  -webkit-overflow-scrolling: touch;
}

/* [18. Table variants] .om-table--scroll table */
/* バリエーション: scroll */
.om-table--scroll table {
  min-width: 640px;
}

/* [18. Table variants] .om-table--compare th:first-child */
/* バリエーション: compare */
.om-table--compare th:first-child,
.om-table--compare td:first-child {
  position: sticky;  /* 配置方法 */
  left: 0;  /* 左端 */
  background: #fff;  /* 背景 */
  z-index: 1;  /* 重なり順 */
  min-width: 140px;
  box-shadow: 2px 0 0 var(--om-gray-200);  /* 影 */
}

/* [18. Table variants] .om-table--compare thead th */
/* バリエーション: compare */
.om-table--compare thead th {
  text-align: center;  /* 行揃え */
}

/* [18. Table variants] .om-table--compare td.is-best */
/* バリエーション: compare */
.om-table--compare td.is-best {
  background: var(--om-yellow-soft);  /* 背景 */
  font-weight: 700;  /* 太さ */
}

/* [18. Table variants] .om-table--compare .om-ico--check */
/* バリエーション: check */
.om-table--compare .om-ico--check {
  color: var(--om-mint);  /* 文字色 */
}

/* [18. Table variants] .om-table--compare .om-ico--close */
/* バリエーション: close */
.om-table--compare .om-ico--close {
  color: var(--om-gray-400);  /* 文字色 */
}

/* [18. Table variants] .om-table--rounded */
/* バリエーション: rounded */
.om-table--rounded {
  border-radius: var(--om-r-lg);  /* 角丸 */
  overflow: hidden;  /* はみ出し */
  box-shadow: var(--om-sh-sm);  /* 影 */
}

/* [18. Table variants] .om-table--rounded th */
/* バリエーション: rounded */
.om-table--rounded th,
.om-table--rounded td {
  border-left: 0;
  border-right: 0;
}

/* [18. Table variants] .om-table--rounded tr:last-child td */
/* バリエーション: rounded */
.om-table--rounded tr:last-child td {
  border-bottom: 0;
}

/* [18. Table variants] .om-table caption */
.om-table caption {
  caption-side: top;
  text-align: left;  /* 行揃え */
  font-weight: 700;  /* 太さ */
  padding: 0 0 8px;  /* 内側の余白 */
  font-family: var(--om-font-round);  /* 書体 */
}

/* [18. Table variants] .om-table th[scope="row"] */
.om-table th[scope="row"] {
  background: var(--om-gray-50);  /* 背景 */
  white-space: nowrap;  /* 改行の扱い */
}

/* [18. Table variants] .om-table .is-num */
.om-table .is-num {
  text-align: right;  /* 行揃え */
  font-variant-numeric: tabular-nums;
}

/* [18. Table variants] .om-table .is-center */
.om-table .is-center {
  text-align: center;  /* 行揃え */
}

/* [18. Table variants] .om-table--kv */
/* バリエーション: kv */
.om-table--kv {
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [18. Table variants] .om-table--kv th */
/* バリエーション: kv */
.om-table--kv th {
  width: 30%;  /* 幅 */
}

/* [18. Table variants] .om-compare */
.om-compare {
  display: grid;  /* 表示形式 */
  gap: 14px;  /* 要素の間隔 */
}

@media (min-width: 768px) {

  /* [18. Table variants] .om-compare */
  .om-compare {
    grid-template-columns: repeat(3, 1fr);  /* グリッドの列 */
  }
}

/* [18. Table variants] .om-compare__col */
.om-compare__col {
  padding: 18px;  /* 内側の余白 */
  border-radius: var(--om-r-lg);  /* 角丸 */
  background: #fff;  /* 背景 */
  box-shadow: var(--om-sh-sm);  /* 影 */
}

/* [18. Table variants] .om-compare__col--hi */
/* バリエーション: hi */
.om-compare__col--hi {
  border: 2px solid var(--om-accent);  /* 枠線 */
}

/* [18. Table variants] .om-compare__title */
.om-compare__title {
  margin: 0 0 8px;  /* 外側の余白 */
  font-size: 1.05rem;  /* 文字サイズ */
}

/* [18. Table variants] .om-compare__list */
.om-compare__list {
  margin: 0;  /* 外側の余白 */
  padding-left: 1.2em;
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* ========================================================================
   19. Alerts, accordion, steps
   ======================================================================== */

/* [19. Alerts, accordion, steps] .om-alert */
.om-alert {
  display: flex;  /* 表示形式 */
  gap: 12px;  /* 要素の間隔 */
  padding: 14px 18px;  /* 内側の余白 */
  border-radius: var(--om-r-lg);  /* 角丸 */
  font-size: var(--om-fs-sm);  /* 文字サイズ */
  margin: 0 0 1.4em;  /* 外側の余白 */
}

/* [19. Alerts, accordion, steps] .om-alert .om-ico */
.om-alert .om-ico {
  flex: 0 0 auto;  /* 伸縮 */
  width: 20px;  /* 幅 */
  height: 20px;  /* 高さ */
  margin-top: 2px;
}

/* [19. Alerts, accordion, steps] .om-alert--info */
/* バリエーション: info */
.om-alert--info {
  background: var(--om-sky);  /* 背景 */
  color: var(--om-ink);  /* 文字色 */
}

/* [19. Alerts, accordion, steps] .om-alert--success */
/* バリエーション: success */
.om-alert--success {
  background: var(--om-mint-soft);  /* 背景 */
  color: #0f5c48;  /* 文字色 */
}

/* [19. Alerts, accordion, steps] .om-alert--warning */
/* バリエーション: warning */
.om-alert--warning {
  background: var(--om-yellow-soft);  /* 背景 */
  color: #6b4e00;  /* 文字色 */
}

/* [19. Alerts, accordion, steps] .om-alert--danger */
/* バリエーション: danger */
.om-alert--danger {
  background: var(--om-red-soft);  /* 背景 */
  color: #8a1830;  /* 文字色 */
}

/* [19. Alerts, accordion, steps] .om-alert__title */
.om-alert__title {
  display: block;  /* 表示形式 */
  margin-bottom: 2px;
  font-weight: 700;  /* 太さ */
  font-family: var(--om-font-round);  /* 書体 */
}

/* [19. Alerts, accordion, steps] .om-accordion */
.om-accordion {
  margin: 0 0 10px;  /* 外側の余白 */
  border-radius: var(--om-r-lg);  /* 角丸 */
  background: #fff;  /* 背景 */
  box-shadow: var(--om-sh-sm);  /* 影 */
}

/* [19. Alerts, accordion, steps] .om-accordion__summary */
.om-accordion__summary {
  display: flex;  /* 表示形式 */
  align-items: center;  /* 縦の揃え */
  justify-content: space-between;  /* 横の揃え */
  gap: 12px;  /* 要素の間隔 */
  padding: 16px 20px;  /* 内側の余白 */
  cursor: pointer;  /* カーソル */
  list-style: none;  /* リスト記号 */
  font-weight: 700;  /* 太さ */
  font-family: var(--om-font-round);  /* 書体 */
}

/* [19. Alerts, accordion, steps] .om-accordion__summary::-webkit-details-marker */
.om-accordion__summary::-webkit-details-marker {
  display: none;  /* 表示形式 */
}

/* [19. Alerts, accordion, steps] .om-accordion__icon */
.om-accordion__icon {
  flex: 0 0 auto;  /* 伸縮 */
  width: 26px;  /* 幅 */
  height: 26px;  /* 高さ */
  border-radius: 50%;  /* 角丸 */
  background: var(--om-yellow);  /* 背景 */
  position: relative;  /* 配置方法 */
}

/* [19. Alerts, accordion, steps] .om-accordion__icon::before */
/* 疑似要素 */
.om-accordion__icon::before,
.om-accordion__icon::after {
  content: "";  /* 生成内容 */
  position: absolute;  /* 配置方法 */
  left: 50%;  /* 左端 */
  top: 50%;  /* 上端 */
  width: 12px;  /* 幅 */
  height: 3px;  /* 高さ */
  background: var(--om-ink);  /* 背景 */
  transform: translate(-50%, -50%);  /* 変形 */
  border-radius: 2px;  /* 角丸 */
}

/* [19. Alerts, accordion, steps] .om-accordion__icon::after */
/* 疑似要素 */
.om-accordion__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);  /* 変形 */
}

/* [19. Alerts, accordion, steps] .om-accordion[open] .om-accordion__icon::after */
/* 開いた状態、疑似要素 */
.om-accordion[open] .om-accordion__icon::after {
  transform: translate(-50%, -50%) rotate(0);  /* 変形 */
}

/* [19. Alerts, accordion, steps] .om-accordion__body */
.om-accordion__body {
  padding: 0 20px 18px;  /* 内側の余白 */
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [19. Alerts, accordion, steps] .om-accordion__body > :last-child */
.om-accordion__body > :last-child {
  margin-bottom: 0;
}

/* [19. Alerts, accordion, steps] .om-steps */
.om-steps {
  margin: 0 0 1.6em;  /* 外側の余白 */
  padding: 0;  /* 内側の余白 */
  list-style: none;  /* リスト記号 */
  counter-reset: om-steps;
  display: grid;  /* 表示形式 */
  gap: 12px;  /* 要素の間隔 */
}

/* [19. Alerts, accordion, steps] .om-steps > li */
.om-steps > li {
  position: relative;  /* 配置方法 */
  padding: 16px 18px 16px 60px;  /* 内側の余白 */
  border-radius: var(--om-r-lg);  /* 角丸 */
  background: #fff;  /* 背景 */
  box-shadow: var(--om-sh-xs);  /* 影 */
  counter-increment: om-steps;
}

/* [19. Alerts, accordion, steps] .om-steps > li::before */
/* 疑似要素 */
.om-steps > li::before {
  content: counter(om-steps);  /* 生成内容 */
  position: absolute;  /* 配置方法 */
  left: 16px;  /* 左端 */
  top: 16px;  /* 上端 */
  width: 32px;  /* 幅 */
  height: 32px;  /* 高さ */
  border-radius: 50%;  /* 角丸 */
  background: var(--om-navy);  /* 背景 */
  color: #fff;  /* 文字色 */
  font-family: var(--om-font-round);  /* 書体 */
  font-weight: 900;  /* 太さ */
  display: inline-flex;  /* 表示形式 */
  align-items: center;  /* 縦の揃え */
  justify-content: center;  /* 横の揃え */
}

/* [19. Alerts, accordion, steps] .om-steps > li strong */
.om-steps > li strong {
  display: block;  /* 表示形式 */
  margin-bottom: 4px;
  font-family: var(--om-font-round);  /* 書体 */
}

/* [19. Alerts, accordion, steps] .om-steps--horizontal */
/* バリエーション: horizontal */
.om-steps--horizontal {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));  /* グリッドの列 */
}

/* [19. Alerts, accordion, steps] .om-steps--horizontal > li */
/* バリエーション: horizontal */
.om-steps--horizontal > li {
  padding: 52px 16px 18px;  /* 内側の余白 */
  text-align: center;  /* 行揃え */
}

/* [19. Alerts, accordion, steps] .om-steps--horizontal > li::before */
/* 疑似要素、バリエーション: horizontal */
.om-steps--horizontal > li::before {
  left: 50%;  /* 左端 */
  top: 12px;  /* 上端 */
  transform: translateX(-50%);  /* 変形 */
}

/* [19. Alerts, accordion, steps] .om-timeline */
.om-timeline {
  position: relative;  /* 配置方法 */
  margin: 0 0 1.6em;  /* 外側の余白 */
  padding: 0 0 0 28px;  /* 内側の余白 */
  list-style: none;  /* リスト記号 */
  border-left: 3px solid var(--om-navy-soft);
}

/* [19. Alerts, accordion, steps] .om-timeline > li */
.om-timeline > li {
  position: relative;  /* 配置方法 */
  padding: 0 0 18px;  /* 内側の余白 */
}

/* [19. Alerts, accordion, steps] .om-timeline > li::before */
/* 疑似要素 */
.om-timeline > li::before {
  content: "";  /* 生成内容 */
  position: absolute;  /* 配置方法 */
  left: -36px;  /* 左端 */
  top: 6px;  /* 上端 */
  width: 14px;  /* 幅 */
  height: 14px;  /* 高さ */
  border-radius: 50%;  /* 角丸 */
  background: var(--om-navy);  /* 背景 */
  border: 3px solid #fff;  /* 枠線 */
  box-shadow: 0 0 0 2px var(--om-navy-soft);  /* 影 */
}

/* [19. Alerts, accordion, steps] .om-timeline__time */
.om-timeline__time {
  display: block;  /* 表示形式 */
  font-size: var(--om-fs-xs);  /* 文字サイズ */
  font-weight: 700;  /* 太さ */
  color: var(--om-navy);  /* 文字色 */
}

/* [19. Alerts, accordion, steps] .om-kv */
.om-kv {
  display: grid;  /* 表示形式 */
  grid-template-columns: minmax(120px, 160px) 1fr;  /* グリッドの列 */
  gap: 8px 16px;  /* 要素の間隔 */
  margin: 0 0 1.4em;  /* 外側の余白 */
  font-size: var(--om-fs-sm);  /* 文字サイズ */
}

/* [19. Alerts, accordion, steps] .om-kv dt */
.om-kv dt {
  font-weight: 700;  /* 太さ */
}

/* [19. Alerts, accordion, steps] .om-kv dd */
.om-kv dd {
  margin: 0;  /* 外側の余白 */
}

/* [19. Alerts, accordion, steps] .om-score */
.om-score {
  display: inline-flex;  /* 表示形式 */
  align-items: baseline;  /* 縦の揃え */
  gap: 2px;  /* 要素の間隔 */
  font-family: var(--om-font-round);  /* 書体 */
  font-weight: 900;  /* 太さ */
  color: var(--om-navy);  /* 文字色 */
}

/* [19. Alerts, accordion, steps] .om-score small */
.om-score small {
  font-size: 0.6em;  /* 文字サイズ */
  color: var(--om-gray-600);  /* 文字色 */
}

/* [19. Alerts, accordion, steps] .om-bar */
.om-bar {
  height: 10px;  /* 高さ */
  border-radius: 5px;  /* 角丸 */
  background: var(--om-gray-100);  /* 背景 */
  overflow: hidden;  /* はみ出し */
}

/* [19. Alerts, accordion, steps] .om-bar > span */
.om-bar > span {
  display: block;  /* 表示形式 */
  height: 100%;  /* 高さ */
  border-radius: 5px;  /* 角丸 */
  background: var(--om-navy);  /* 背景 */
}

/* [19. Alerts, accordion, steps] .om-rule */
.om-rule {
  height: 3px;  /* 高さ */
  border: 0;  /* 枠線 */
  border-radius: 2px;  /* 角丸 */
  background: var(--om-yellow);  /* 背景 */
  width: 64px;  /* 幅 */
  margin: 18px auto;  /* 外側の余白 */
}

/* [19. Alerts, accordion, steps] .om-rule--left */
/* バリエーション: left */
.om-rule--left {
  margin-left: 0;
}

/* ========================================================================
   20. Icons, avatars, keyframes
   ======================================================================== */

/* [20. Icons, avatars, keyframes] .om-ico */
.om-ico {
  display: inline-block;  /* 表示形式 */
  width: 20px;  /* 幅 */
  height: 20px;  /* 高さ */
  vertical-align: -0.2em;
  flex: 0 0 auto;  /* 伸縮 */
}

/* [20. Icons, avatars, keyframes] .om-ico--sm */
/* バリエーション: sm */
.om-ico--sm {
  width: 16px;  /* 幅 */
  height: 16px;  /* 高さ */
}

/* [20. Icons, avatars, keyframes] .om-ico--lg */
/* バリエーション: lg */
.om-ico--lg {
  width: 28px;  /* 幅 */
  height: 28px;  /* 高さ */
}

/* [20. Icons, avatars, keyframes] .om-ico--xl */
/* バリエーション: xl */
.om-ico--xl {
  width: 40px;  /* 幅 */
  height: 40px;  /* 高さ */
}

/* [20. Icons, avatars, keyframes] .om-ico--star */
/* バリエーション: star */
.om-ico--star {
  fill: currentColor;
}

/* [20. Icons, avatars, keyframes] .om-avatar */
.om-avatar {
  display: inline-flex;  /* 表示形式 */
  align-items: center;  /* 縦の揃え */
  justify-content: center;  /* 横の揃え */
  width: 48px;  /* 幅 */
  height: 48px;  /* 高さ */
  border-radius: 50%;  /* 角丸 */
  background: var(--om-sky);  /* 背景 */
  overflow: hidden;  /* はみ出し */
}

/* [20. Icons, avatars, keyframes] .om-avatar--lg */
/* バリエーション: lg */
.om-avatar--lg {
  width: 84px;  /* 幅 */
  height: 84px;  /* 高さ */
}

/* [20. Icons, avatars, keyframes] .om-avatar--xl */
/* バリエーション: xl */
.om-avatar--xl {
  width: 120px;  /* 幅 */
  height: 120px;  /* 高さ */
}

/* [20. Icons, avatars, keyframes] .om-avatar img */
.om-avatar img {
  width: 100%;  /* 幅 */
  height: 100%;  /* 高さ */
  object-fit: cover;  /* 画像の収め方 */
}

/* [20. Icons, avatars, keyframes] .om-svg-text */
.om-svg-text {
  font-family: var(--om-font-sans);  /* 書体 */
}

/* [20. Icons, avatars, keyframes] .om-anim-fade */
.om-anim-fade {
  animation: om-fade 0.6s var(--om-m-ease-out) both;  /* アニメーション */
}

/* [20. Icons, avatars, keyframes] .om-anim-up */
.om-anim-up {
  animation: om-up 0.7s var(--om-m-ease-out) both;  /* アニメーション */
}

/* [20. Icons, avatars, keyframes] .om-anim-pop */
.om-anim-pop {
  animation: om-pop 0.5s var(--om-m-spring) both;  /* アニメーション */
}

/* [20. Icons, avatars, keyframes] .om-anim-pulse */
.om-anim-pulse {
  animation: om-pulse 2s ease-in-out infinite;  /* アニメーション */
}

/* [20. Icons, avatars, keyframes] .om-anim-delay-1 */
.om-anim-delay-1 {
  animation-delay: 0.1s;
}

/* [20. Icons, avatars, keyframes] .om-anim-delay-2 */
.om-anim-delay-2 {
  animation-delay: 0.2s;
}

/* [20. Icons, avatars, keyframes] .om-anim-delay-3 */
.om-anim-delay-3 {
  animation-delay: 0.3s;
}

@keyframes om-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes om-up {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes om-pop {
  from {
    opacity: 0;
    transform: scale(0.9);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes om-pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
}

@keyframes om-shake {
  0%, 100% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-4px);
  }
  75% {
    transform: translateX(4px);
  }
}

/* [20. Icons, avatars, keyframes] .om-anim-shake */
.om-anim-shake {
  animation: om-shake 0.4s ease-in-out;  /* アニメーション */
}
