@charset "UTF-8";
/* ========================================
    共通のスタイル
  ======================================== */
.l-header__bar {
  display: none;
}

.home .l-content.l-container {
  padding-top: 0 !important;
}

a {
  -webkit-transition: 0.2s;
  transition: 0.2s;
}
a:hover {
  opacity: 0.7;
}

@media screen and (max-width: 600px) {
  .pc-view {
    display: none;
  }
}

.sp-view {
  display: none;
}
@media screen and (max-width: 600px) {
  .sp-view {
    display: block;
  }
}

.swell-block-button {
  white-space: nowrap;
}

.section-title p {
  color: #c09a4d;
  font-size: 18px;
}
@media screen and (max-width: 600px) {
  .section-title p {
    margin-bottom: 1vw;
    font-size: 3vw;
  }
}
.section-title h2 {
  margin-top: 0;
  font-size: 36px;
}
@media screen and (max-width: 600px) {
  .section-title h2 {
    font-size: 6vw;
  }
}

.photo-custom {
  border-radius: 12px;
  overflow: hidden;
  -webkit-box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
          box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
}

.swell-block-columns__inner > .swell-block-column > .wp-block-group {
  width: 100%;
  height: 100%;
}

.card-custom {
  border-radius: 8px !important;
  overflow: hidden;
  border: 1px solid var(--c-border);
  -webkit-box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
          box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
}

.c-pageTitle {
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  color: #1a2634;
  font-size: 2.4rem;
}

.c-pageTitle__subTitle {
  display: block;
  margin-left: 0;
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1;
  font-size: 1.4rem;
  color: #c9a84c;
  font-style: italic;
  margin-bottom: 8px;
  font-weight: normal;
}

[id] {
  scroll-margin-top: 100px;
}

a[href^="tel:"] {
  pointer-events: none;
  text-decoration: none;
  color: inherit;
}
@media (max-width: 768px) {
  a[href^="tel:"] {
    pointer-events: auto;
  }
}

/* FOOTER */
.w-beforeFooter {
  margin-bottom: 0;
  margin-top: 0;
}

.l-content {
  margin-bottom: 0;
}

.footer h4 {
  border-bottom: 0.5px solid rgba(255, 255, 255, 0.2) !important;
  padding-bottom: 10px !important;
}

.footer {
  border-bottom: 0.5px solid rgba(255, 255, 255, 0.2) !important;
}

/* デフォルト背景画像を非表示 */
.l-topTitleArea__img {
  display: none;
}

/* 任意の背景色または画像を設定 */
.l-topTitleArea {
  background-color: #f0f0f0;
  height: 300px;
}
@media screen and (max-width: 768px) {
  .l-topTitleArea {
    height: 50vw;
  }
}

/* 背景画像を使う場合はこちら */
.l-topTitleArea {
  background-image: url("/wp-content/uploads/2026/04/bottom-bg-scaled.jpg");
  background-size: cover;
  background-position: center;
}

.c-filterLayer.-texture-dot:after {
  display: none;
}

.l-topTitleArea.c-filterLayer::before {
  background: rgba(240, 246, 252, 0.9215686275);
  opacity: 0.9;
}

/* ========================================
    ヘッダーメニュー周りのデザイン
  ======================================== */
@media screen and (min-width: 960px) {
  /* ヘッダー内部を強制的にFlexbox化 */
  .l-header__inner.l-container {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -ms-flex-wrap: wrap !important;
        flex-wrap: wrap !important;
    -webkit-box-align: center !important;
        -ms-flex-align: center !important;
            align-items: center !important;
    -webkit-box-pack: justify !important;
        -ms-flex-pack: justify !important;
            justify-content: space-between !important;
  }
  /* 1. ロゴを左上に配置 */
  .l-header__logo {
    -webkit-box-ordinal-group: 2 !important;
        -ms-flex-order: 1 !important;
            order: 1 !important;
    margin: 0 auto 0 5% !important;
    width: auto !important;
  }
}
@media screen and (min-width: 960px) and (min-width: 1500px) {
  .l-header__logo {
    margin-left: 10% !important;
  }
}
@media screen and (min-width: 960px) {
  /* 2. 予約ボタンを右上に配置 */
  .w-header {
    -webkit-box-ordinal-group: 3 !important;
        -ms-flex-order: 2 !important;
            order: 2 !important;
    margin: 0 5% 0 auto !important; /* 左側に余白を全振りして右寄せ */
    width: auto !important;
  }
}
@media screen and (min-width: 960px) and (min-width: 1500px) {
  .w-header {
    margin-right: 10% !important;
  }
}
@media screen and (min-width: 960px) {
  /* 3. メニューを下段に配置 */
  .l-header__gnav {
    -webkit-box-ordinal-group: 4 !important;
        -ms-flex-order: 3 !important;
            order: 3 !important;
    width: 100% !important;
    margin-top: 15px !important;
  }
  .l-header__gnav .c-gnav {
    -webkit-box-pack: center !important;
        -ms-flex-pack: center !important;
            justify-content: center !important;
  }
}
/* メニュー全体（横幅いっぱい）の上下の線と余白 */
.l-header__gnav {
  border-top: 1px solid #e2e6e9 !important; /* 薄いグレーの線 */
  border-bottom: 1px solid #e2e6e9 !important;
  margin-top: 20px !important; /* 上のロゴ・ボタンとの間の余白 */
}

/* 縦線と横並びの設定 */
.l-header__gnav .c-gnav {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-pack: center !important;
      -ms-flex-pack: center !important;
          justify-content: center !important;
}

.l-header__gnav .c-gnav > li {
  border-right: 1px solid #e2e6e9 !important; /* 各項目の右側に縦線 */
}

.l-header__gnav .c-gnav > li:first-child {
  border-left: 1px solid #e2e6e9 !important; /* 一番左の項目だけ左側にも縦線 */
}

/* リンク（枠内）の余白とレイアウト */
.l-header__gnav .c-gnav > li > a {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-orient: vertical !important;
  -webkit-box-direction: normal !important;
      -ms-flex-direction: column !important;
          flex-direction: column !important; /* 縦に並べる（日本語の上に英語を下） */
  -webkit-box-align: center !important;
      -ms-flex-align: center !important;
          align-items: center !important;
  -webkit-box-pack: center !important;
      -ms-flex-pack: center !important;
          justify-content: center !important;
  padding: 16px 36px !important; /* 上下16px、左右36pxの余白（ここで幅や高さを微調整） */
  text-decoration: none !important;
  height: 100% !important;
}
@media screen and (max-width: 1200px) {
  .l-header__gnav .c-gnav > li > a {
    padding: 16px 2vw !important;
  }
}

/* 日本語メインテキストの調整 */
.l-header__gnav .c-gnav .ttl {
  font-size: 15px !important;
  letter-spacing: 0.05em !important;
}

/* 英語サブタイトル（ABOUTなど）の装飾 */
.l-header__gnav .c-gnav .c-smallNavTitle.desc {
  color: #c09a4d !important; /* ご指定のカラー（ゴールド） */
  margin-top: 8px !important; /* 上の日本語との間に余白を入れる（数値を変更して調整してください） */
  /* ↓より元の画像に近づけるためのおすすめ設定です（不要なら削除OK） */
  font-size: 11px !important; /* 文字サイズを小さく */
  letter-spacing: 0.1em !important; /* 文字の間隔を少し広げて上品に */
  font-family: serif !important; /* セリフ体（明朝系）に指定 */
  display: block !important; /* 余白を確実に効かせるため */
}

/* メニューのホバー時と現在いるページの下線色を変更 */
#gnav .c-gnav > li > a::after {
  background-color: #c09a4d !important;
}

/* ========================================
    トップページ
  ======================================== */
/* FV */
.top-fv-content {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin-left: auto;
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.9);
  padding: 50px !important;
  border-radius: 12px;
  backdrop-filter: blur(5px);
  -webkit-box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
          box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
}
@media screen and (max-width: 600px) {
  .top-fv-content {
    padding: 8% !important;
  }
}
@media screen and (max-width: 600px) {
  .top-fv-content .fv-head {
    font-size: 7vw;
    white-space: nowrap;
  }
}

.fas {
  font-size: 40px;
  color: #7a99c0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-bottom: 0 !important;
}

.h3-m-custom {
  margin: 30px 0 20px !important;
}

/* ============================================
   治療メニュー（Treatment Menu）セクション
   ============================================ */
/* セクション全体の余白 */
.loos-full-wide:has(.treatment-card-main) {
  padding-bottom: 80px;
}

/* ============================================
   カード共通：シャドウ・ボーダー
   ============================================ */
.treatment-card-main,
.treatment-card-sub__inner {
  overflow: hidden;
  border: 1px solid var(--c-border);
  -webkit-box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
          box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
  position: relative;
}

/* ============================================
   グラデーションオーバーレイ（画像背景対応）
   WP の dimRatio は使わず CSS 擬似要素で制御
   ============================================ */
.treatment-card-main::before {
  content: "";
  position: absolute;
  inset: 0;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(20, 35, 50, 0.15)), color-stop(65%, rgba(20, 35, 50, 0.8)), to(rgba(20, 35, 50, 0.92)));
  background: linear-gradient(to bottom, rgba(20, 35, 50, 0.15) 0%, rgba(20, 35, 50, 0.8) 65%, rgba(20, 35, 50, 0.92) 100%);
  z-index: 1;
  pointer-events: none;
  border-radius: inherit;
}

.treatment-card-sub__inner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(20, 35, 50, 0.1)), color-stop(60%, rgba(20, 35, 50, 0.72)), to(rgba(20, 35, 50, 0.88)));
  background: linear-gradient(to bottom, rgba(20, 35, 50, 0.1) 0%, rgba(20, 35, 50, 0.72) 60%, rgba(20, 35, 50, 0.88) 100%);
  z-index: 1;
  pointer-events: none;
  border-radius: inherit;
}

/* コンテンツを擬似要素の上に重ねる */
.treatment-card-main .wp-block-cover__inner-container,
.treatment-card-sub__inner .wp-block-cover__inner-container {
  position: relative;
  z-index: 2;
}

/* 背景画像をカード全体にフィット */
.treatment-card-main .wp-block-cover__image-background,
.treatment-card-sub__inner .wp-block-cover__image-background {
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  width: 100%;
  height: 100%;
}

/* ============================================
   大カード：顎変形症（外科矯正）
   ============================================ */
.treatment-card-main {
  border-radius: 16px;
  min-height: 420px;
  background-color: #3a4f5e; /* 画像未設定時のフォールバック */
}

.treatment-card-main .wp-block-cover__inner-container {
  width: 100%;
  padding: 40px 48px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 6px;
}

/* バッジ：当院の専門領域 */
.treatment-badge {
  display: inline-block !important;
  letter-spacing: 0.08em;
  padding: 5px 14px !important;
  border-radius: 4px;
  margin: 0 0 8px !important;
  line-height: 1.5;
}

/* 英語サブタイトル（共通） */
.treatment-card-en {
  letter-spacing: 0.14em;
  font-family: "Times New Roman", Georgia, serif;
  margin: 0 !important;
  line-height: 1.4;
}

/* 日本語タイトル：大カード */
.treatment-card-main .treatment-card-title {
  letter-spacing: 0.04em;
  margin: 4px 0 !important;
}

/* 説明文 */
.treatment-card-desc {
  letter-spacing: 0.06em;
  line-height: 1.6;
  opacity: 0.8;
}

/* ============================================
   2カラム：大人の矯正 / こどもの矯正
   ============================================ */
.treatment-cards-row {
  gap: 20px !important;
  margin-bottom: 20px !important;
}

.treatment-card-sub__inner {
  border-radius: 12px;
  width: 100%;
  min-height: 300px;
  background-color: #3a4f5e; /* 画像未設定時のフォールバック */
}

.treatment-card-sub__inner .wp-block-cover__inner-container {
  width: 100%;
  padding: 28px 32px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 4px;
}

/* 日本語タイトル：小カード */
.treatment-card-sub__inner .treatment-card-title {
  font-weight: 700;
  letter-spacing: 0.04em;
  margin: 4px 0 0 !important;
  line-height: 1.3;
}

/* ============================================
   保険適用バナー
   ============================================ */
.treatment-insurance {
  border-radius: 8px;
  -webkit-box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
          box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
}

.treatment-insurance .wp-block-group__inner-container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

.treatment-insurance__text {
  font-size: 0.95rem !important;
  color: #3a3a3a !important;
  letter-spacing: 0.06em;
  margin: 0 !important;
}

.treatment-insurance .wp-block-group__inner-container::after {
  content: "›";
  font-size: 1.5rem;
  color: #999;
  line-height: 1;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

/* ============================================
   レスポンシブ（スマートフォン）
   ============================================ */
@media (max-width: 767px) {
  .loos-full-wide:has(.treatment-card-main) {
    padding-bottom: 48px;
  }
  .treatment-card-main {
    border-radius: 12px;
    min-height: 340px;
  }
  .treatment-card-main .wp-block-cover__inner-container {
    padding: 28px 24px;
  }
  .treatment-cards-row {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: normal !important;
        -ms-flex-direction: column !important;
            flex-direction: column !important;
    gap: 14px !important;
  }
  .treatment-card-sub__inner {
    border-radius: 10px;
    min-height: 260px;
  }
  .treatment-card-sub__inner .wp-block-cover__inner-container {
    padding: 22px 20px;
  }
}
/* ============================================
   理由セクション（Reason）
   ============================================ */
/* ============================================
   各アイテム共通レイアウト
   ============================================ */
.reason-item {
  -webkit-box-align: center !important;
      -ms-flex-align: center !important;
          align-items: center !important;
  gap: 64px !important;
  margin-bottom: 96px !important;
}

.reason-item:last-of-type {
  margin-bottom: 0 !important;
}

.reason-item__text {
  padding: 0 !important;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 20px;
}

.reason-item__image {
  padding: 0 !important;
}

/* ============================================
   番号：01 / 02 / 03
   デザイン再現：大きめ・細字・ゴールド薄め
   ============================================ */
.reason-number {
  font-weight: 300 !important;
  font-family: "Times New Roman", Georgia, serif;
  color: #c09a4d !important;
  opacity: 0.45;
  line-height: 1 !important;
  letter-spacing: 0.06em;
  margin: 0 0 -8px !important;
}

/* ============================================
   見出し：is-style-section_ttl のデフォルト
   装飾をリセットしてカスタムスタイルを適用
   ============================================ */
.reason-item__title.is-style-section_ttl {
  line-height: 1.55 !important;
  letter-spacing: 0.04em;
  margin: 0;
}

/* ============================================
   説明文
   ============================================ */
.reason-item__desc {
  line-height: 1.9 !important;
  margin: 0 !important;
  letter-spacing: 0.02em;
}

/* ============================================
   画像カード（core/cover・画像背景前提）
   シャドウ・角丸・ボーダーを適用
   ============================================ */
.reason-item__photo {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid var(--c-border);
  -webkit-box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
          box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
  width: 100%;
  margin: 0 !important; /* figureのデフォルトmarginをリセット */
  display: block;
}

/* img要素をカラム幅いっぱいに */
.reason-item__photo img {
  width: 100%;
  height: 360px; /* 画像未設定時の高さ確保 */
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
  display: block;
}

/* SP */
@media (max-width: 960px) {
  .reason-item__photo img {
    height: 240px;
  }
}
/* ============================================
   レスポンシブ（SP）
   ============================================ */
@media (max-width: 960px) {
  .loos-full-wide:has(.reason-item) {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .reason-item {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: normal !important;
        -ms-flex-direction: column !important;
            flex-direction: column !important;
    gap: 28px !important;
    margin-bottom: 64px !important;
  }
  /* item02：DOM順が画像→テキストのためSPで逆順にしてテキストを先に */
  .reason-item--reverse .swell-block-columns__inner {
    display: -webkit-box !important;
    display: -ms-flexbox !important;
    display: flex !important;
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: reverse !important;
        -ms-flex-direction: column-reverse !important;
            flex-direction: column-reverse !important;
  }
  .reason-number {
    font-size: 3.8rem !important;
  }
  .reason-item__photo {
    min-height: 240px;
    border-radius: 10px;
  }
}
/* ============================================
   顎変形症セクション（Jaw Surgery）
   ============================================ */
.jaw-surgery-section {
  background: linear-gradient(135deg, #526d8a 0%, #0c131c 100%) !important;
}

/* ============================================
   英語ラベル：ORTHOGNATHIC SURGERY
   ============================================ */
.jaw-surgery-en {
  letter-spacing: 0.22em;
  font-family: "Times New Roman", Georgia, serif;
  text-transform: uppercase;
}

/* ============================================
   メイン見出し
   ============================================ */
.jaw-surgery-heading.is-style-section_ttl {
  padding: 0 !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  line-height: 1.5 !important;
  letter-spacing: 0.04em;
}

/* ============================================
   説明文
   ============================================ */
.jaw-surgery-desc {
  max-width: 620px;
  margin: 0 auto;
}

/* ============================================
   3カラム カード
   ============================================ */
.jaw-surgery-cards {
  width: 100%;
}

/* カード本体 */
.jaw-card__inner {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.15) !important;
  border-radius: 12px !important;
  padding: clamp(24px, 3vw, 36px) clamp(16px, 2vw, 24px) !important;
  text-align: center;
  height: 100%;
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-orient: vertical !important;
  -webkit-box-direction: normal !important;
      -ms-flex-direction: column !important;
          flex-direction: column !important;
  -webkit-box-align: center !important;
      -ms-flex-align: center !important;
          align-items: center !important;
  gap: 16px;
  -webkit-transition: background 0.2s ease;
  transition: background 0.2s ease;
}

.jaw-card__inner:hover {
  background: rgba(255, 255, 255, 0.13) !important;
}

/* Font Awesome アイコン */
.jaw-card__inner .fa,
.jaw-card__inner [class*=fa-],
.jaw-card__inner i[class*=fa] {
  display: block;
}

/* カード見出し */
.jaw-card__title.is-style-section_ttl {
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
  letter-spacing: 0.04em;
  margin-top: 1rem;
}

/* ============================================
   下部リンク
   ============================================ */
.jaw-surgery-link {
  letter-spacing: 0.08em;
  text-align: center;
}

/* ============================================
   セルフチェックセクション
   ============================================ */
/* 白カード */
.selfcheck-card {
  border-radius: 16px;
  -webkit-box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
          box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
  text-align: center;
  padding: 50px !important;
}
@media (max-width: 768px) {
  .selfcheck-card {
    padding: 30px !important;
  }
}

/* ============================================
   説明文
   ============================================ */
.selfcheck-desc {
  max-width: 620px;
  letter-spacing: 0.03em;
  margin: 0 auto;
}

/* ============================================
   お知らせ・ブログセクション（News）
   ============================================ */
/* ── お知らせリスト（-type-simple）── */
/* リスト上罫線 */
.news-notice-list .p-postList {
  border-top: 1px solid #e2e6e9;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* 各アイテム下罫線 */
.news-notice-list .p-postList__item {
  border-bottom: 1px solid #e2e6e9;
  list-style: none;
}

/* リンク：縦並びを横並びに */
.news-notice-list .p-postList__link {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-align: center !important;
      -ms-flex-align: center !important;
          align-items: center !important;
  padding: 16px 4px !important;
  text-decoration: none !important;
  color: inherit !important;
}

/* body：meta（日付）→ title の横一列 */
.news-notice-list .p-postList__body {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-orient: horizontal !important;
  -webkit-box-direction: normal !important;
      -ms-flex-direction: row !important;
          flex-direction: row !important;
  -webkit-box-align: center !important;
      -ms-flex-align: center !important;
          align-items: center !important;
  gap: 14px;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  width: 100%;
}

/* meta エリア（日付 + カテゴリーバッジ）*/
.news-notice-list .p-postList__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 8px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

/* 日付 */
.news-notice-list .c-postTimes__posted {
  font-size: 0.78rem !important;
  color: #aaa !important;
  white-space: nowrap;
  letter-spacing: 0.03em;
}

.news-notice-list .c-postTimes__posted::before {
  display: none !important;
}

/* カテゴリーバッジ（catPos: beside_date で .p-postList__cat が出現） */
.news-notice-list .p-postList__cat {
  display: inline-block !important;
  font-size: 0.7rem !important;
  padding: 3px 10px !important;
  border-radius: 3px !important;
  background-color: #eef0f2 !important;
  color: #555 !important;
  white-space: nowrap;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  font-weight: 500;
}

.news-notice-list .p-postList__cat::before {
  display: none !important;
}

/* タイトル */
.news-notice-list .p-postList__title {
  font-size: 0.88rem !important;
  font-weight: 400 !important;
  color: #2c3e50 !important;
  margin: 0 !important;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  line-height: 1.55;
}
@media screen and (max-width: 960px) {
  .news-notice-list .p-postList__title {
    font-size: 0.85rem !important;
  }
}

/* ── 院長ブログ（-type-card -pc-col3）── */
/* カード：角丸・シャドウ */
.news-blog-grid .p-postList__item {
  border-radius: 12px !important;
  overflow: hidden;
  border: 1px solid var(--c-border);
  -webkit-box-shadow: 0 4px 20px rgba(74, 90, 106, 0.08);
          box-shadow: 0 4px 20px rgba(74, 90, 106, 0.08);
  -webkit-transition: -webkit-box-shadow 0.2s ease, -webkit-transform 0.2s ease;
  transition: -webkit-box-shadow 0.2s ease, -webkit-transform 0.2s ease;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  transition: box-shadow 0.2s ease, transform 0.2s ease, -webkit-box-shadow 0.2s ease, -webkit-transform 0.2s ease;
}

/* PC表示時のカード間マージンリセット（SWELLデフォルト 2.5em を上書き） */
@media (min-width: 961px) {
  .news-blog-grid .p-postList__item {
    margin-bottom: 0 !important;
  }
}
.news-blog-grid .p-postList__item:hover {
  -webkit-box-shadow: 0 8px 28px rgba(74, 90, 106, 0.14);
          box-shadow: 0 8px 28px rgba(74, 90, 106, 0.14);
  -webkit-transform: translateY(-2px);
          transform: translateY(-2px);
}

/* サムネイル：アスペクト比 4:3 固定 */
.news-blog-grid .c-postThumb__figure {
  aspect-ratio: 4/3;
  overflow: hidden;
  display: block;
}

.news-blog-grid .c-postThumb__figure img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}

/* noimg 時のプレースホルダー高さ確保 */
.news-blog-grid .c-postThumb.noimg_ {
  aspect-ratio: 4/3;
  background-color: #e8ecef;
}

/* body エリア */
.news-blog-grid .p-postList__body {
  padding: 14px 16px 16px !important;
}

/* タイトル（body の先頭） */
.news-blog-grid .p-postList__title {
  font-size: 0.88rem !important;
  font-weight: 700 !important;
  line-height: 1.55 !important;
  color: #1a1a1a !important;
  margin: 0 0 8px !important;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* 日付（タイトルの後） */
.news-blog-grid .c-postTimes__posted {
  font-size: 0.75rem !important;
  color: #aaa !important;
  letter-spacing: 0.03em;
}

.news-blog-grid .c-postTimes__posted::before {
  display: none !important;
}

/* カテゴリーバッジ（サムネイル上） */
.news-blog-grid .c-postThumb__cat {
  font-size: 0.7rem !important;
  letter-spacing: 0.04em;
  padding: 3px 10px !important;
  border-radius: 3px !important;
}

/* ── MORE リンク（両リスト共通）── */
.news-notice-list .is-style-more_btn,
.news-blog-grid .is-style-more_btn {
  margin-top: 20px !important;
  text-align: right;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
}

.news-notice-list .is-style-more_btn a,
.news-blog-grid .is-style-more_btn a {
  font-size: 0.85rem !important;
  color: #2c3e50 !important;
  text-decoration: none;
  letter-spacing: 0.06em;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  -webkit-box-shadow: none !important;
          box-shadow: none !important;
}

.news-notice-list .is-style-more_btn a::after,
.news-blog-grid .is-style-more_btn a::after {
  content: " →";
}

/* PCでの横並び強制（SWELLデフォルトの flex-wrap:wrap を上書き） */
.news-two-col > .swell-block-columns__inner {
  -ms-flex-wrap: nowrap !important;
      flex-wrap: nowrap !important;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

/* --clmn-w--pc 変数をflex-basisに反映（SWELLのエディタCSS未適用を補完） */
.news-two-col > .swell-block-columns__inner > .swell-block-column {
  -webkit-box-flex: 0 !important;
      -ms-flex: 0 0 var(--clmn-w--pc) !important;
          flex: 0 0 var(--clmn-w--pc) !important;
  max-width: var(--clmn-w--pc) !important;
  width: var(--clmn-w--pc) !important;
}

/* タブレット以下では縦積みに戻す */
@media (max-width: 960px) {
  .news-two-col > .swell-block-columns__inner {
    -ms-flex-wrap: wrap !important;
        flex-wrap: wrap !important;
  }
  .news-two-col > .swell-block-columns__inner > .swell-block-column {
    -webkit-box-flex: 0 !important;
        -ms-flex: 0 0 100% !important;
            flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
  }
}
/* ── SP レスポンシブ（colTab:'1' で縦積みになる） ── */
@media (max-width: 960px) {
  .news-col--notice {
    padding-right: 0 !important;
    padding-bottom: 48px !important;
  }
  .news-col--blog {
    padding-left: 0 !important;
    border-top: 1px solid #e2e6e9;
    padding-top: 48px !important;
  }
  .news-blog-grid .p-postList.-type-card.-pc-col3 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
    max-width: 500px;
    margin: 0 auto;
  }
  .news-blog-grid .p-postList__item {
    width: 100% !important;
  }
}
@media (max-width: 600px) {
  .news-blog-grid .p-postList.-type-card.-pc-col3 {
    grid-template-columns: 1fr !important;
  }
}
/* ================================================
   ACCESS SECTION
================================================ */
.access-section .access-main-col .swell-block-columns__inner {
  -webkit-box-align: stretch !important;
      -ms-flex-align: stretch !important;
          align-items: stretch !important;
}
.access-section .access-main-col .access-col--map {
  -ms-flex-item-align: stretch !important;
      align-self: stretch !important;
  position: relative;
}
.access-section .access-main-col .access-col--map iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 12px;
  -webkit-box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
          box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
  display: block;
}
.access-section .access-main-col .access-col--info {
  -ms-flex-item-align: stretch !important;
      align-self: stretch !important;
}
.access-section .access-main-col .access-col--info .access-info-card {
  height: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border-radius: 12px;
  -webkit-box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
          box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
}
.access-section .access-main-col .access-col--info .access-info-card.pattern2 {
  padding-top: 5rem;
  padding-bottom: 5rem;
}
@media (max-width: 768px) {
  .access-section .access-main-col .access-col--info .access-info-card.pattern2 {
    padding-top: 2rem;
    padding-bottom: 2rem;
  }
}
.access-section .access-main-col .fas {
  font-size: 20px;
  margin-top: 5px !important;
  color: #c09a4d;
}
@media (max-width: 768px) {
  .access-section .access-main-col .fas {
    margin-right: auto;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
  }
}
.access-section .access-clinic-name {
  text-align: left !important;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
}
.access-section .access-clinic-name::before, .access-section .access-clinic-name::after {
  margin-left: 0 !important;
  margin-right: auto !important;
}
.access-section .access-address {
  line-height: 1.8;
  margin-bottom: 1.5rem;
}
.access-section .access-hours-table {
  width: 100%;
  margin-bottom: 1rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.access-section .access-hours-table table {
  width: 100%;
  min-width: 460px;
  border-collapse: collapse;
  table-layout: fixed;
}
.access-section .access-hours-table thead th {
  background: #f0f6fc;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.5rem 0.2rem;
  text-align: center;
  border: 1px solid #d8e8f2;
  vertical-align: middle;
  line-height: 1.3;
  width: 50px;
  min-width: 40px;
}
.access-section .access-hours-table thead th:first-child {
  background: #f0f6fc !important;
  border-color: #d8e8f2 !important;
  visibility: hidden;
  border-top: none;
  border-left: none;
  width: 115px;
  min-width: 115px;
}
.access-section .access-hours-table thead th:nth-child(n+7) {
  width: 70px;
  min-width: 60px;
}
.access-section .access-hours-table tbody td {
  font-size: 0.72rem;
  padding: 0.5rem 0.2rem;
  text-align: center;
  vertical-align: middle;
  border: 1px solid #e0eaf0;
  line-height: 1.4;
  background: #fff;
  word-break: break-all;
  overflow-wrap: anywhere;
}
.access-section .access-hours-table tbody td:first-child {
  background: #f0f6fc;
  font-size: 0.7rem;
  font-weight: 500;
  text-align: center;
  white-space: normal;
  line-height: 1.5;
  word-break: keep-all;
  width: 115px;
  min-width: 115px;
}
.access-section .access-notes {
  line-height: 1.8;
  margin-bottom: 0;
}
.access-section .wp-block-separator.is-style-wide {
  border-color: #d8d4cd !important;
  margin: 1.5rem 0 !important;
  opacity: 1;
}
.access-section .access-partner-heading {
  text-align: left !important;
  letter-spacing: 0.05em;
  margin-top: 2rem;
}
.access-section .access-partner-heading::before, .access-section .access-partner-heading::after {
  margin-left: 0 !important;
  margin-right: auto !important;
}
.access-section .access-partner-list {
  line-height: 2;
  padding-left: 0;
  list-style: none;
}
.access-section .access-partner-list li::before {
  content: "・";
  margin-right: 0.1em;
}
.access-section .access-calendar-wrap iframe {
  display: block;
  width: 100% !important;
  border: 0;
}

@media (max-width: 767px) {
  .access-section .access-main-col .access-col--map {
    min-height: 260px;
  }
  .access-section .access-main-col .access-col--map iframe {
    border-radius: 10px;
  }
  .access-section .access-hours-table thead th,
  .access-section .access-hours-table tbody td {
    font-size: 0.65rem;
    padding: 0.35rem 0.1rem;
  }
  .access-section .access-calendar-wrap iframe {
    height: 360px;
  }
}
.philosophy-card {
  position: relative;
  border-radius: 16px;
  -webkit-box-shadow: 0 8px 24px rgba(74, 90, 106, 0.12);
          box-shadow: 0 8px 24px rgba(74, 90, 106, 0.12);
  padding: 50px !important;
}
.philosophy-card::before {
  content: "“";
  position: absolute;
  top: 28px;
  left: 40px;
  font-size: 5rem;
  line-height: 1;
  color: #f0f6fc;
  font-family: Georgia, serif;
}
.philosophy-card__motto {
  margin-top: 30px !important;
  white-space: nowrap;
}
.philosophy-card p {
  line-height: 2.1;
  color: #4a5a6a;
}
.philosophy-card p:last-child {
  margin-bottom: 0 !important;
}
@media (max-width: 768px) {
  .philosophy-card {
    padding: 10vw 5vw !important;
  }
  .philosophy-card::before {
    top: 18px;
    left: 22px;
  }
}

.doctor-profile {
  gap: 60px !important;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.doctor-profile__photo img {
  border-radius: 12px;
  width: 100%;
  height: auto;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.doctor-profile__label {
  letter-spacing: 0.08em;
}
.doctor-profile__name {
  letter-spacing: 0.12em;
  color: #1a1a2e;
  margin-bottom: 0 !important;
  margin-top: 0 !important;
}
.doctor-profile__divider {
  border-top: 1px solid #ddd5c8 !important;
  margin: 24px 0 28px !important;
  max-width: 90% !important;
}

.doctor-check-list {
  list-style: none !important;
  padding-left: 0 !important;
  margin-top: 0 !important;
}
.doctor-check-list li {
  position: relative;
  padding-left: 30px;
  line-height: 1.8;
}
.doctor-check-list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 3px;
  width: 20px;
  height: 20px;
  line-height: 20px;
  text-align: center;
  background-color: #c09a4d;
  border-radius: 50%;
  color: #ffffff;
  font-size: 11px;
  font-weight: bold;
}

@media (max-width: 768px) {
  .doctor-profile {
    gap: 32px !important;
  }
  .doctor-profile__photo img {
    max-width: 280px;
    margin: 0 auto;
  }
}
.collaboration-sp {
  max-width: 500px;
  margin: 0 auto;
}

.feature-card {
  border-color: #c09a4d !important;
  border-width: 2px !important;
  border-radius: 14px;
  padding: 50px;
}
.feature-card__title {
  line-height: 1.6;
  margin-bottom: 20px !important;
}
.feature-card__text {
  line-height: 2;
}
.feature-card .feature-btn a {
  pointer-events: none !important;
  cursor: pointer !important;
  background: #f8f6f0;
}

.consult-card {
  border-radius: 16px;
  padding: 56px 80px 52px !important;
  -webkit-box-shadow: 0 4px 28px rgba(0, 0, 0, 0.07);
          box-shadow: 0 4px 28px rgba(0, 0, 0, 0.07);
}
.consult-card .consult-item {
  position: relative;
  padding: 22px 0 22px 52px;
  border-bottom: 1px solid #dce3e9;
  margin-bottom: 0;
}
.consult-card .consult-item:last-child {
  border-bottom: none;
}
.consult-card .consult-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 22px;
  height: 22px;
  border: 2px solid #c09a4d;
  border-radius: 4px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2.5 7l3.5 3.5 5.5-6' stroke='%23C4A46B' stroke-width='1.8' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C%2Fsvg%3E");
  background-size: 14px;
  background-repeat: no-repeat;
  background-position: center;
}

@media (max-width: 768px) {
  .consult-card {
    padding: 5vw !important;
  }
  .consult-item {
    padding: 18px 0 18px 42px;
    font-size: 0.9375rem;
  }
}
.expertise-cards {
  gap: 28px !important;
}

.expertise-card {
  border-radius: 14px;
  padding: 40px 40px 44px;
  -webkit-box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
          box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}
.expertise-card__title {
  padding-bottom: 16px;
  margin-bottom: 20px !important;
  border-bottom: 1.5px solid #c4a46b;
}
.expertise-card__text {
  line-height: 2;
}

@media (max-width: 768px) {
  .expertise-card {
    padding: 32px 28px 36px;
  }
}
.insurance-content {
  gap: 48px !important;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.insurance-content__main-title {
  line-height: 1.8;
  margin-bottom: 24px !important;
}
.insurance-content__text {
  line-height: 2;
}
.insurance-content__right {
  border-radius: 12px;
  border: 1px solid #dce3e9;
}

.insurance-card__title {
  margin-bottom: 20px !important;
}
.insurance-card__list {
  padding-left: 1.4em !important;
}
.insurance-card__list li {
  line-height: 2 !important;
}
@media (max-width: 768px) {
  .insurance-content {
    gap: 32px !important;
  }
}
.flow-cta {
  border: 2px solid #7a99c0;
  border-radius: 14px;
  padding: 48px 40px !important;
  -webkit-box-shadow: 0 8px 24px rgba(74, 90, 106, 0.12);
          box-shadow: 0 8px 24px rgba(74, 90, 106, 0.12);
}
.flow-cta__title {
  font-size: 1.4rem !important;
  font-weight: 700 !important;
  line-height: 1.7;
}
.flow-cta__text {
  font-size: 1rem;
}

@media (max-width: 768px) {
  .flow-cta {
    padding: 36px 20px !important;
  }
}
.notice-card {
  -webkit-box-shadow: 0 8px 24px rgba(74, 90, 106, 0.12);
          box-shadow: 0 8px 24px rgba(74, 90, 106, 0.12);
}

.access-cards {
  gap: 20px !important;
}

.access-card {
  border-radius: 14px;
  padding: 40px 20px 44px !important;
  -webkit-box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06);
          box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06);
}
.access-card__icon {
  line-height: 1 !important;
}
.access-card__title {
  margin-top: 20px !important;
  margin-bottom: 10px !important;
}
.access-card__text {
  line-height: 1.8;
  margin-bottom: 0 !important;
}

@media (max-width: 768px) {
  .access-cards {
    -webkit-box-orient: vertical !important;
    -webkit-box-direction: normal !important;
        -ms-flex-direction: column !important;
            flex-direction: column !important;
  }
  .access-card {
    padding: 32px 20px 36px !important;
  }
}
.section-schedule .felicia-schedule-table {
  width: 100%;
  margin-bottom: 32px;
}
.section-schedule .felicia-schedule-table table {
  width: 100%;
  border-collapse: collapse;
  min-width: 556px;
  overflow: auto;
}
.section-schedule .felicia-schedule-table th,
.section-schedule .felicia-schedule-table td {
  padding: 20px 12px;
  text-align: center;
  vertical-align: middle;
}
@media (max-width: 1000px) {
  .section-schedule .felicia-schedule-table th,
  .section-schedule .felicia-schedule-table td {
    padding: 10px 5px;
  }
}
@media (max-width: 1000px) {
  .section-schedule .felicia-schedule-table th:nth-child(2), .section-schedule .felicia-schedule-table th:nth-child(3), .section-schedule .felicia-schedule-table th:nth-child(4), .section-schedule .felicia-schedule-table th:nth-child(5), .section-schedule .felicia-schedule-table th:nth-child(6),
  .section-schedule .felicia-schedule-table td:nth-child(2),
  .section-schedule .felicia-schedule-table td:nth-child(3),
  .section-schedule .felicia-schedule-table td:nth-child(4),
  .section-schedule .felicia-schedule-table td:nth-child(5),
  .section-schedule .felicia-schedule-table td:nth-child(6) {
    width: 50px;
  }
}
.section-schedule .felicia-schedule-table tbody td:first-child {
  white-space: nowrap;
}
.section-schedule .schedule-holiday {
  margin-bottom: 8px;
}
.section-schedule .schedule-notice {
  margin-bottom: 4px;
}

.partner-clinics-list {
  max-width: 800px;
  margin: 0 auto;
  gap: 16px;
}
.partner-clinics-list .partner-clinic-card {
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 20px 24px;
  -webkit-box-shadow: 0 8px 24px rgba(74, 90, 106, 0.12);
          box-shadow: 0 8px 24px rgba(74, 90, 106, 0.12);
}
.partner-clinics-list .partner-clinic-name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin: 0;
}
.partner-clinics-list .partner-clinic-name::before {
  content: "\f0f8";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  color: #c09a4d;
  font-size: 1.3em;
  margin-right: 16px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

.contact-intro-wrap .contact-phone-card {
  border: 2px solid #7a99c0;
  border-radius: 60px;
  padding: 20px 48px;
  max-width: 600px;
  margin: 32px auto;
  gap: 24px;
}
.contact-intro-wrap .contact-phone-icon {
  margin: 0;
  line-height: 1;
  -ms-flex-item-align: center;
      align-self: center;
}
.contact-intro-wrap .contact-phone-icon::before {
  content: "\f095";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  color: #7a99c0;
  font-size: 1.8em;
}
.contact-intro-wrap .contact-phone-text {
  gap: 4px !important;
}
.contact-intro-wrap .contact-phone-number {
  margin: 0;
}
.contact-intro-wrap .contact-phone-number a {
  text-decoration: none;
  color: inherit;
}
.contact-intro-wrap .contact-phone-hours {
  margin: 0;
}
.contact-intro-wrap .contact-notice-box {
  border-left: 3px solid #c9a84c;
  padding-left: 20px;
  max-width: 720px;
  margin: 0 auto;
}
.contact-intro-wrap .contact-notice-item {
  margin-bottom: 8px;
}
.contact-intro-wrap .contact-notice-item:last-child {
  margin-bottom: 0;
}

.post_content .snow-monkey-form .smf-form {
  padding: 48px 56px 20px;
  border-radius: 8px;
}
@media (max-width: 768px) {
  .post_content .snow-monkey-form .smf-form {
    padding: 28px 20px;
  }
}
.post_content .snow-monkey-form .smf-item {
  margin-bottom: 28px;
}
.post_content .snow-monkey-form .smf-item:last-of-type {
  margin-bottom: 0;
}
.post_content .snow-monkey-form .smf-item__col--label {
  margin-bottom: 8px;
}
.post_content .snow-monkey-form .smf-item__label__text {
  font-weight: bold;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 8px;
}
.post_content .snow-monkey-form .smf-item__label__text::after {
  font-size: 0.72rem;
  font-weight: bold;
  padding: 0 8px;
  border-radius: 3px;
  line-height: 1.8;
}
.post_content .snow-monkey-form .smf-item:has([data-validations*=required]) .smf-item__label__text::after {
  content: "必須";
  background: #e07b39;
  color: #fff;
}
.post_content .snow-monkey-form .smf-item:not(:has([data-validations*=required])) .smf-item__label__text::after {
  content: "任意";
  background: #aaaaaa;
  color: #fff;
}
.post_content .snow-monkey-form .smf-text-control__control,
.post_content .snow-monkey-form .smf-email-control__control,
.post_content .snow-monkey-form .smf-tel-control__control {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #d0ccc8;
  border-radius: 6px;
  background: #fff;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 1rem;
}
.post_content .snow-monkey-form .smf-text-control__control:focus,
.post_content .snow-monkey-form .smf-email-control__control:focus,
.post_content .snow-monkey-form .smf-tel-control__control:focus {
  outline: none;
  border-color: #7a9bb5;
  -webkit-box-shadow: 0 0 0 3px rgba(122, 155, 181, 0.15);
          box-shadow: 0 0 0 3px rgba(122, 155, 181, 0.15);
}
.post_content .snow-monkey-form .smf-textarea-control__control {
  width: 100%;
  min-height: 160px;
  padding: 12px 16px;
  border: 1px solid #d0ccc8;
  border-radius: 6px;
  background: #fff;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-size: 1rem;
  resize: vertical;
}
.post_content .snow-monkey-form .smf-textarea-control__control:focus {
  outline: none;
  border-color: #7a9bb5;
  -webkit-box-shadow: 0 0 0 3px rgba(122, 155, 181, 0.15);
          box-shadow: 0 0 0 3px rgba(122, 155, 181, 0.15);
}
.post_content .snow-monkey-form .smf-radio-buttons-control__control {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 12px 28px;
  padding: 4px 0;
}
.post_content .snow-monkey-form .smf-radio-button-control {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 6px;
  cursor: pointer;
}
.post_content .snow-monkey-form .smf-radio-button-control__control {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  min-width: 18px;
  border: 2px solid #7a99c0;
  border-radius: 50%;
  position: relative;
  background: #fff;
  cursor: pointer;
}
.post_content .snow-monkey-form .smf-radio-button-control__control::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%) scale(0);
          transform: translate(-50%, -50%) scale(0);
  width: 9px;
  height: 9px;
  background: #7a99c0;
  border-radius: 50%;
  -webkit-transition: -webkit-transform 0.15s ease;
  transition: -webkit-transform 0.15s ease;
  transition: transform 0.15s ease;
  transition: transform 0.15s ease, -webkit-transform 0.15s ease;
}
.post_content .snow-monkey-form .smf-radio-button-control__control:checked::after {
  -webkit-transform: translate(-50%, -50%) scale(1);
          transform: translate(-50%, -50%) scale(1);
}
.post_content .snow-monkey-form .smf-radio-button-control__label {
  cursor: pointer;
}
.post_content .snow-monkey-form .smf-checkbox-control {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 8px;
  cursor: pointer;
}
.post_content .snow-monkey-form .smf-checkbox-control__control {
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  min-width: 18px;
  border: 2px solid #7a9bb5;
  border-radius: 3px;
  position: relative;
  background: #fff;
  cursor: pointer;
}
.post_content .snow-monkey-form .smf-checkbox-control__control:checked {
  background: #7a9bb5;
  border-color: #7a9bb5;
}
.post_content .snow-monkey-form .smf-checkbox-control__control:checked::after {
  content: "";
  position: absolute;
  top: 1px;
  left: 4px;
  width: 5px;
  height: 9px;
  border: 2px solid #fff;
  border-top: none;
  border-left: none;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
.post_content .snow-monkey-form .smf-checkbox-control__label {
  cursor: pointer;
}
.post_content .snow-monkey-form .smf-control-description {
  font-size: 0.82rem;
  color: #888;
  margin-top: 6px;
}
.post_content .snow-monkey-form .smf-action {
  margin-top: 36px;
  text-align: center;
}
.post_content .snow-monkey-form .smf-button-control__control {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 8px;
  width: 100%;
  max-width: 320px;
  padding: 16px 40px;
  background: #7a99c0;
  color: #fff;
  font-size: 1.05rem;
  font-weight: bold;
  border: none;
  border-radius: 50px;
  cursor: pointer;
  letter-spacing: 0.06em;
  -webkit-transition: background 0.2s ease;
  transition: background 0.2s ease;
}
.post_content .snow-monkey-form .smf-button-control__control::after {
  content: "✈";
}
.post_content .snow-monkey-form .smf-button-control__control:hover {
  background: #6489a3;
}

.form-group {
  padding-bottom: 50px !important;
}

.section-orthodontics {
  -webkit-box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
          box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
  padding: 50px !important;
  border-radius: 5px;
}
.section-orthodontics__sub-label {
  letter-spacing: 0.2em;
}
.section-orthodontics__box {
  border-radius: 16px;
}
.section-orthodontics__box-title span {
  border-bottom: 1px solid #c09a4d !important;
  padding-bottom: 15px;
}
.section-orthodontics__columns {
  gap: 24px !important;
}
.section-orthodontics__item {
  border-radius: 12px;
  overflow: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  height: 100%;
  -webkit-box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
          box-shadow: 0 10px 30px rgba(74, 90, 106, 0.15);
}
.section-orthodontics__item-img {
  margin: 0 !important;
}
.section-orthodontics__item-img img {
  width: 100%;
  aspect-ratio: 4/3;
  -o-object-fit: cover;
     object-fit: cover;
  display: block;
}
.section-orthodontics__item-body {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.about-fees {
  /* 親要素自体のopacityの変化を0.2秒に */
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}
.about-fees > div {
  border: 2px solid #c09a4d !important;
  border-radius: 12px;
  position: relative;
}
@media (max-width: 768px) {
  .about-fees > div {
    padding-right: 70px;
  }
}
.about-fees > div {
  /* div全体の背景色・文字色のふんわり変化を0.2秒に */
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
}
.about-fees > div h3 {
  margin-bottom: 1rem;
}
.about-fees > div {
  /* spanの文字色の変化を0.2秒に */
}
.about-fees > div span {
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease;
}
.about-fees > div::before {
  content: "→";
  display: block;
  position: absolute;
  right: 30px;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  font-size: 40px;
  font-weight: 900;
  color: #c09a4d;
}
@media (max-width: 768px) {
  .about-fees > div::before {
    font-size: 30px;
  }
}
.about-fees > div::before {
  /* 矢印（::before）の色変化を0.2秒に */
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease;
}
.about-fees:hover {
  opacity: 1 !important;
}
.about-fees:hover > div {
  background: #c09a4d !important;
  color: #fff !important;
}
.about-fees:hover > div span {
  color: #fff !important;
}
.about-fees:hover > div::before {
  color: #fff;
}

@media (max-width: 600px) {
  .flex-revers > div {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
  }
}

.feature-cards > div {
  border-radius: 5px;
  -webkit-box-shadow: 0 8px 24px rgba(74, 90, 106, 0.12);
          box-shadow: 0 8px 24px rgba(74, 90, 106, 0.12);
}

.h4-head-custom {
  padding-left: 10px;
  border-left: 2px solid #C09A4D;
}

.tmj-card {
  border: 2px solid #7A99C0 !important;
  border-radius: 12px;
  -webkit-box-shadow: 0 8px 24px rgba(74, 90, 106, 0.12);
          box-shadow: 0 8px 24px rgba(74, 90, 106, 0.12);
}
.tmj-card__title {
  line-height: 2 !important;
}
.tmj-card__title span {
  border-bottom: 1.5px solid #C09A4D;
  padding-bottom: 10px;
}
.tmj-card__sep {
  border-color: #c9a84c !important;
  border-top-width: 2px !important;
  margin-top: 0 !important;
}

.tmj-check-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 40px;
  list-style: none !important;
  padding-left: 0 !important;
}
.tmj-check-list li {
  position: relative;
  padding-left: 28px;
}
.tmj-check-list li::before {
  content: "\f058";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  color: #7a9bb5;
  position: absolute;
  left: 0;
  top: 2px;
  font-size: 1rem;
}
@media (max-width: 600px) {
  .tmj-check-list {
    grid-template-columns: 1fr;
  }
}