@charset "UTF-8";
/* =========================================================
   Furemori RE — 共通スタイル
   ふれあいの杜歯科 カラーパレット＋レイアウト
   font-size: 16px ベース（62.5%リセットなし）
   ========================================================= */

/* ---------------------------------------------------------
   :root 変数（カラーパレット）
   --------------------------------------------------------- */
:root {
  /* Font */
  --font-base: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
  --font-en: "Jost", sans-serif;

  /* Base */
  --color-bg: #f1f1ef;
  --color-bg-light: #fff;
  --color-text: #2E3A44;

  /* Grayscale */
  --gray-200: #F6F6F6;
  --gray-500: rgba(0,0,0,0.15);
  --gray-600: #9EAEB1;
  --gray-700: #818C8E;
  --gray-900: #333;

  /* Primary Blue */
  --primary-100: #eff5f5;
  --primary-200: #ddecee;
  --primary-300: #c4e5f1;
  --primary-400: #73bdd3;
  --primary-500: #50a0c2;
  --primary-700: #4A8CC9;
  --primary-800: #3D7AB8;
  --primary-900: #39485e;

  /* Secondary Brown */
  --secondary-200: #f1f1ef;
  --secondary-300: #e4e4df;
  --secondary-400: #b7aaa1;
  --secondary-500: #B38A6E;
  --secondary-600: #96887D;

  /* Tertiary Cream */
  --tertiary-400: #FFF5E1;
  --tertiary-500: #FFE8D6;
  --tertiary-800: #E0C166;

  /* Layout */
  --contents-width: 1100px;
  --contents-padding: 20px;
  --header-height: 64px;

  /* Shape */
  --radius-sm: 8px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-pill: 999px;
  --shadow: 0 10px 24px rgba(0,0,0,0.08);

  /* Motion */
  --ease: ease;
  --easing: ease;
  --dur: 0.3s;
  --duration: 0.3s;

  /* ===== Font Size Scale (px変換: 旧テーマ 1rem = 10px) ===== */
  --font-size--x4s: 10px;
  --font-size--x3s: 11px;
  --font-size--x2s: 12px;
  --font-size--xs: 13px;
  --font-size--sm: 15px;
  --font-size--md: 16px;
  --font-size--lg: 17px;
  --font-size--xl: 18px;
  --font-size--x2l: 19px;
  --font-size--x3l: 21px;
  --font-size--x4l: 23px;
  --font-size--x5l: 25px;
  --font-size--x6l: 27px;
  --font-size--x7l: 29px;
  --font-size--x8l: 31px;
  --font-size--x9l: 33px;
  --font-size--x10l: 36px;
  --font-size--x11l: 39px;
  --font-size--x12l: 42px;
  --font-size--x13l: 45px;
  --font-size--x14l: 48px;

  /* ===== Line Height ===== */
  --line-height--none: 1;
  --line-height--xs: 1.1;
  --line-height--sm: 1.5;
  --line-height--md: 1.9;
  --line-height--lg: 2;

  /* ===== Spacing (px変換) ===== */
  --space-xs: 8px;
  --space-sm: 12px;
  --space-md: 16px;
  --space-lg: 24px;
  --contents-padding-side: 20px;

  /* ===== Letter Spacing ===== */
  --letter-spacing-sm: 0.5px;
  --letter-spacing-md: 1px;
  --letter-spacing-lg: 2px;

  /* ===== Layout 互換 ===== */
  --contents--width: 1100px;
  --contents--wide-width: 1260px;
  --contents-width-padding: calc(var(--contents--width) + var(--contents-padding-side) * 2);
}

@media (min-width: 768px) {
  :root {
    --header-height: 118px;
    --contents-padding: 20px;
  }
}

/* ---------------------------------------------------------
   Reset
   --------------------------------------------------------- */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  overflow-x: clip;
}

body {
  font-family: var(--font-base);
  font-size: 16px;
  line-height: 1.9;
  color: var(--color-text);
  background-color: var(--color-bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}

img {
  width: 100%;
  height: auto;
  vertical-align: middle;
}

a {
  color: inherit;
  text-decoration: none;
}

ul, ol { list-style: none; }

button {
  font: inherit;
  cursor: pointer;
  border: none;
  background: transparent;
}

.font-en {
  font-family: var(--font-en);
}

/* ---------------------------------------------------------
   Layout utilities
   --------------------------------------------------------- */
.u-inner {
  max-width: calc(var(--contents-width) + var(--contents-padding) * 2);
  margin: 0 auto;
  padding-left: var(--contents-padding);
  padding-right: var(--contents-padding);
}

.u-visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  border: 0;
}

.u-only-sp { display: block; }
@media (min-width: 768px) {
  .u-only-sp { display: none; }
}

/* ---------------------------------------------------------
   Header
   --------------------------------------------------------- */
.l-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  background-color: transparent;
  height: var(--header-height);
  transition: background-color var(--dur), box-shadow var(--dur);
}

.l-header__inner {
  max-width: calc(var(--contents-width) + var(--contents-padding) * 2);
  margin: 0 auto;
  padding: 0 var(--contents-padding);
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media (min-width: 768px) {
  .l-header__inner {
    padding-top: 30px;
  }
}

.l-header__logo a {
  display: flex;
  align-items: center;
}

.l-header__logo img {
  width: 220px;
  height: auto;
}

@media (min-width: 768px) {
  .l-header__logo img {
    height: 44px;
  }
}

/* ハンバーガー */
.sp-menu {
  display: flex;
  flex-direction: column;
  gap: 6px;
  width: 44px;
  height: 44px;
  justify-content: center;
  align-items: center;
  z-index: 110;
  background-color: var(--primary-900);
  border-radius: 50%;
}

@media (min-width: 768px) {
  .sp-menu { display: none; }
}

/* SP: インスタ + ハンバーガー */
.l-header__sp-actions {
  display: flex;
  align-items: center;
  gap: 24px;
}

@media (min-width: 768px) {
  .l-header__sp-actions { display: none; }
}

.l-header__sp-ig {
  display: block;
  width: 32px;
  height: 32px;
  position: relative;
  text-indent: -9999px;
  overflow: hidden;
}

.l-header__sp-ig::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 32px;
  height: 32px;
  background-color: var(--primary-900);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 28 29' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.19 28.5964C3.668 28.5964 0.014 24.9302 0 20.4105V8.79626C0 4.27652 3.668 0.610352 8.19 0.610352H19.81C24.332 0.610352 27.986 4.27652 28 8.79626V20.4245C28 24.9442 24.332 28.6104 19.81 28.6104H8.19V28.5964ZM2.618 8.79626V20.4245C2.618 23.5029 5.11 25.9937 8.19 25.9937H19.81C22.89 25.9937 25.382 23.5029 25.382 20.4245V8.79626C25.382 5.7178 22.89 3.22704 19.81 3.22704H8.19C5.11 3.22704 2.618 5.7178 2.618 8.79626ZM6.776 14.6034C6.776 10.6014 10.024 7.36898 14.014 7.36898C18.018 7.36898 21.252 10.6154 21.252 14.6034C21.252 18.6054 18.004 21.8378 14.014 21.8378C10.024 21.8378 6.776 18.5914 6.776 14.6034ZM9.394 14.6034C9.394 17.1501 11.466 19.2211 14.014 19.2211C16.562 19.2211 18.634 17.1501 18.634 14.6034C18.634 12.0566 16.562 9.98567 14.014 9.98567C11.466 9.98567 9.394 12.0566 9.394 14.6034ZM21.098 8.83824C20.16 8.61435 19.572 7.67682 19.796 6.73929C20.02 5.80176 20.958 5.21405 21.896 5.43794C22.834 5.66183 23.422 6.59936 23.198 7.53689C23.016 8.3205 22.316 8.88022 21.504 8.88022C21.364 8.88022 21.238 8.86623 21.098 8.83824Z' fill='%23333'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 28 29' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.19 28.5964C3.668 28.5964 0.014 24.9302 0 20.4105V8.79626C0 4.27652 3.668 0.610352 8.19 0.610352H19.81C24.332 0.610352 27.986 4.27652 28 8.79626V20.4245C28 24.9442 24.332 28.6104 19.81 28.6104H8.19V28.5964ZM2.618 8.79626V20.4245C2.618 23.5029 5.11 25.9937 8.19 25.9937H19.81C22.89 25.9937 25.382 23.5029 25.382 20.4245V8.79626C25.382 5.7178 22.89 3.22704 19.81 3.22704H8.19C5.11 3.22704 2.618 5.7178 2.618 8.79626ZM6.776 14.6034C6.776 10.6014 10.024 7.36898 14.014 7.36898C18.018 7.36898 21.252 10.6154 21.252 14.6034C21.252 18.6054 18.004 21.8378 14.014 21.8378C10.024 21.8378 6.776 18.5914 6.776 14.6034ZM9.394 14.6034C9.394 17.1501 11.466 19.2211 14.014 19.2211C16.562 19.2211 18.634 17.1501 18.634 14.6034C18.634 12.0566 16.562 9.98567 14.014 9.98567C11.466 9.98567 9.394 12.0566 9.394 14.6034ZM21.098 8.83824C20.16 8.61435 19.572 7.67682 19.796 6.73929C20.02 5.80176 20.958 5.21405 21.896 5.43794C22.834 5.66183 23.422 6.59936 23.198 7.53689C23.016 8.3205 22.316 8.88022 21.504 8.88022C21.364 8.88022 21.238 8.86623 21.098 8.83824Z' fill='%23333'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.sp-menu__line {
  display: block;
  width: 24px;
  height: 2px;
  background-color: #fff;
  transition: transform var(--dur) var(--ease);
}

/* ---------------------------------------------------------
   Header Menu ラッパー
   PC: flex横並び（ナビ＋CTA）
   SP: 右側ドロワー
   --------------------------------------------------------- */
.l-header__menu {
  display: flex;
  align-items: baseline;
  gap: 20px;
}

/* Header CTA */
.l-header__cta {
  display: none;
}

@media (min-width: 768px) {
  .l-header__cta {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    flex-shrink: 0;
  }
}

.l-header__cta-block {
  text-align: center;
}

.l-header__cta-label {
  font-size: 11px;
  color: var(--color-text);
  margin-bottom: 4px;
  white-space: nowrap;
  line-height: 1;
}

.l-header__cta-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-radius: var(--radius-pill);
  font-size: 13px;
  font-weight: 700;
  transition: opacity var(--dur), background var(--dur);
  white-space: nowrap;
}

.l-header__cta-btn:hover {
  opacity: 0.8;
}

.l-header__cta-btn--ig {
  width: 32px;
  height: 32px;
  border-radius: 0;
  position: relative;
  text-indent: -9999px;
  overflow: hidden;
}

.l-header__cta-btn--ig::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 32px;
  height: 32px;
  background-color: var(--primary-900);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 28 29' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.19 28.5964C3.668 28.5964 0.014 24.9302 0 20.4105V8.79626C0 4.27652 3.668 0.610352 8.19 0.610352H19.81C24.332 0.610352 27.986 4.27652 28 8.79626V20.4245C28 24.9442 24.332 28.6104 19.81 28.6104H8.19V28.5964ZM2.618 8.79626V20.4245C2.618 23.5029 5.11 25.9937 8.19 25.9937H19.81C22.89 25.9937 25.382 23.5029 25.382 20.4245V8.79626C25.382 5.7178 22.89 3.22704 19.81 3.22704H8.19C5.11 3.22704 2.618 5.7178 2.618 8.79626ZM6.776 14.6034C6.776 10.6014 10.024 7.36898 14.014 7.36898C18.018 7.36898 21.252 10.6154 21.252 14.6034C21.252 18.6054 18.004 21.8378 14.014 21.8378C10.024 21.8378 6.776 18.5914 6.776 14.6034ZM9.394 14.6034C9.394 17.1501 11.466 19.2211 14.014 19.2211C16.562 19.2211 18.634 17.1501 18.634 14.6034C18.634 12.0566 16.562 9.98567 14.014 9.98567C11.466 9.98567 9.394 12.0566 9.394 14.6034ZM21.098 8.83824C20.16 8.61435 19.572 7.67682 19.796 6.73929C20.02 5.80176 20.958 5.21405 21.896 5.43794C22.834 5.66183 23.422 6.59936 23.198 7.53689C23.016 8.3205 22.316 8.88022 21.504 8.88022C21.364 8.88022 21.238 8.86623 21.098 8.83824Z' fill='%23333'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 28 29' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.19 28.5964C3.668 28.5964 0.014 24.9302 0 20.4105V8.79626C0 4.27652 3.668 0.610352 8.19 0.610352H19.81C24.332 0.610352 27.986 4.27652 28 8.79626V20.4245C28 24.9442 24.332 28.6104 19.81 28.6104H8.19V28.5964ZM2.618 8.79626V20.4245C2.618 23.5029 5.11 25.9937 8.19 25.9937H19.81C22.89 25.9937 25.382 23.5029 25.382 20.4245V8.79626C25.382 5.7178 22.89 3.22704 19.81 3.22704H8.19C5.11 3.22704 2.618 5.7178 2.618 8.79626ZM6.776 14.6034C6.776 10.6014 10.024 7.36898 14.014 7.36898C18.018 7.36898 21.252 10.6154 21.252 14.6034C21.252 18.6054 18.004 21.8378 14.014 21.8378C10.024 21.8378 6.776 18.5914 6.776 14.6034ZM9.394 14.6034C9.394 17.1501 11.466 19.2211 14.014 19.2211C16.562 19.2211 18.634 17.1501 18.634 14.6034C18.634 12.0566 16.562 9.98567 14.014 9.98567C11.466 9.98567 9.394 12.0566 9.394 14.6034ZM21.098 8.83824C20.16 8.61435 19.572 7.67682 19.796 6.73929C20.02 5.80176 20.958 5.21405 21.896 5.43794C22.834 5.66183 23.422 6.59936 23.198 7.53689C23.016 8.3205 22.316 8.88022 21.504 8.88022C21.364 8.88022 21.238 8.86623 21.098 8.83824Z' fill='%23333'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.l-header__cta-btn--tel {
  color: var(--primary-900);
  padding: 8px 14px;
  min-width: 200px;
  background-color: var(--secondary-300);
  border-radius: var(--radius-pill);
}

.l-header__cta-btn--tel .font-en {
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.03em;
}

.l-header__cta-btn--web {
  color: #fff;
  background-color: var(--primary-500);
  padding: 10px 20px;
  min-width: 200px;
}

.l-header__cta-btn--web:hover {
  background-color: var(--primary-700);
  opacity: 1;
}

/* ---------------------------------------------------------
   Global Nav (desktop)
   --------------------------------------------------------- */

/* PC: 英語タイトル非表示 */
@media (min-width: 768px) {
  .g-nav__trigger-en { display: none; }
}

.g-nav__list {
  display: flex;
  gap: 24px;
  align-items: center;
}

.g-nav__item {
  position: relative;
}

.g-nav__trigger,
.g-nav__link {
  font-size: 16px;
  font-weight: 500;
  color: var(--color-text);
  padding: 8px 0;
  display: flex;
  align-items: center;
  gap: 4px;
  transition: color var(--dur);
}

.g-nav__trigger:hover,
.g-nav__link:hover {
  color: var(--primary-500);
}

.g-nav__ico {
  width: 8px; height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform var(--dur);
}

/* ドロップダウンパネル */
.g-nav__panel {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 24px 28px;
  min-width: 260px;
  box-shadow: 0 12px 32px rgba(0,0,0,0.1);
}

/* PC: ボタン→パネル間の透明ブリッジ（mouseleave防止） */
@media (min-width: 768px) {
  .g-nav__item.has-child::after {
    content: "";
    position: absolute;
    left: -8px;
    right: -8px;
    top: 100%;
    height: 12px;
  }
}

/* パネルヘッダー（英語＋日本語） */
.g-nav__headlink {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid var(--secondary-300);
  font-size: 14px;
  font-weight: 700;
  color: var(--color-text);
  transition: color var(--dur);
}

.g-nav__headlink:hover {
  color: var(--primary-500);
}

.g-nav__headlink .g-nav__headlink-en {
  font-family: var(--font-en);
  font-size: 18px;
  font-weight: 500;
  text-transform: uppercase;
  color: var(--primary-500);
  letter-spacing: 0.05em;
}

.g-nav__child li a {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 0;
  font-size: 13px;
  color: var(--color-text);
  transition: color var(--dur);
}

.g-nav__child li a::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background-color: var(--primary-500);
  flex-shrink: 0;
}

.g-nav__child li a:hover {
  color: var(--primary-500);
}

/* ---------------------------------------------------------
   SP固定ナビ
   --------------------------------------------------------- */
.footnav {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 90;
  background-color: #fff;
}

@media (min-width: 768px) {
  .footnav { display: none; }
}

.footnav__list {
  display: flex;
}

.footnav__item {
  flex: 1;
}

.footnav__item a {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 700;
  color: #fff;
  padding: 14px 4px;
  background-color: #50a0c2;
}

.footnav__item:nth-child(2) a {
  background-color: #73bdd3;
}

/* footnav icons */
.footnav__item a::before {
  content: "";
  display: inline-block;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
  flex-shrink: 0;
}

/* アクセス — マップピン */
.footnav__item:nth-child(1) a::before {
  -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg fill='none' viewBox='0 0 23 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m11.23-.00000977c-6.2 0-11.23 5.00999977-11.23 11.18000977v.21c.04 2.26 1.29 4.85 2.17 6.25 2.06 3.25 9.2 12.35 9.2 12.35s7.02-9.18 9.02-12.47c.85-1.39 2.03-4.04 2.06-6.17v-.18c0-6.19001-5.01-11.1800098-11.23-11.1800098zm-.08 15.25000977c-2.49 0-4.5-2.01-4.5-4.5 0-2.49001 2.01-4.50001 4.5-4.50001s4.5 2.01 4.5 4.50001c0 2.49-2.02 4.5-4.5 4.5z' fill='%23000'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;utf8,%3Csvg fill='none' viewBox='0 0 23 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m11.23-.00000977c-6.2 0-11.23 5.00999977-11.23 11.18000977v.21c.04 2.26 1.29 4.85 2.17 6.25 2.06 3.25 9.2 12.35 9.2 12.35s7.02-9.18 9.02-12.47c.85-1.39 2.03-4.04 2.06-6.17v-.18c0-6.19001-5.01-11.1800098-11.23-11.1800098zm-.08 15.25000977c-2.49 0-4.5-2.01-4.5-4.5 0-2.49001 2.01-4.50001 4.5-4.50001s4.5 2.01 4.5 4.50001c0 2.49-2.02 4.5-4.5 4.5z' fill='%23000'/%3E%3C/svg%3E");
}

/* 電話 — 受話器 */
.footnav__item:nth-child(2) a::before {
  -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 28 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.72879.141475L8.24231.00900473S9.3279-.136713 9.42001.744215C9.51212 1.62514 10.4332 7.14254 10.4332 7.14254s0 .55637-.50661 1.11275c-.50661.5564-2.90148 2.96731-2.90148 2.96731s2.88174 6.8686 9.79008 9.7565l2.8685-2.7687s.5264-.6491 1.6383-.3510c1.1119.2914 5.9148 1.1194 5.9148 1.1194S28 19.0914 28 20.0385v6.7229S27.8816 28 26.7697 28c-1.1119 0-9.4282 0-15.6917-5.014C4.81449 17.972 2.00512 12.7858.774788 7.3015S-.277902 2.75777.0708014 1.10851C.0708014 1.10851-.0607848.114981 1.72879.141475Z' fill='black'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 28 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.72879.141475L8.24231.00900473S9.3279-.136713 9.42001.744215C9.51212 1.62514 10.4332 7.14254 10.4332 7.14254s0 .55637-.50661 1.11275c-.50661.5564-2.90148 2.96731-2.90148 2.96731s2.88174 6.8686 9.79008 9.7565l2.8685-2.7687s.5264-.6491 1.6383-.3510c1.1119.2914 5.9148 1.1194 5.9148 1.1194S28 19.0914 28 20.0385v6.7229S27.8816 28 26.7697 28c-1.1119 0-9.4282 0-15.6917-5.014C4.81449 17.972 2.00512 12.7858.774788 7.3015S-.277902 2.75777.0708014 1.10851C.0708014 1.10851-.0607848.114981 1.72879.141475Z' fill='black'/%3E%3C/svg%3E");
}

/* WEB予約 — カレンダー */
.footnav__item:nth-child(3) a::before {
  -webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 30 30' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23c)'%3E%3Cpath d='M30 8.34V2.35H0v5.99h30Z' fill='black'/%3E%3Cpath d='M6 0h4v3.17A2 2 0 018 5.17 2 2 0 016 3.17V0Z' fill='black'/%3E%3Cpath d='M20 0h4v3.17a2 2 0 01-2 2 2 2 0 01-2-2V0Z' fill='black'/%3E%3Cpath d='M0 10.05V29.6h30V10.05H0Zm7 14.78a2 2 0 110-4 2 2 0 010 4Zm0-6a2 2 0 110-4 2 2 0 010 4Zm8 6a2 2 0 110-4 2 2 0 010 4Zm0-6a2 2 0 110-4 2 2 0 010 4Zm8 6a2 2 0 110-4 2 2 0 010 4Zm0-6a2 2 0 110-4 2 2 0 010 4Z' fill='black'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='c'%3E%3Crect width='30' height='29.6' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 30 30' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23c)'%3E%3Cpath d='M30 8.34V2.35H0v5.99h30Z' fill='black'/%3E%3Cpath d='M6 0h4v3.17A2 2 0 018 5.17 2 2 0 016 3.17V0Z' fill='black'/%3E%3Cpath d='M20 0h4v3.17a2 2 0 01-2 2 2 2 0 01-2-2V0Z' fill='black'/%3E%3Cpath d='M0 10.05V29.6h30V10.05H0Zm7 14.78a2 2 0 110-4 2 2 0 010 4Zm0-6a2 2 0 110-4 2 2 0 010 4Zm8 6a2 2 0 110-4 2 2 0 010 4Zm0-6a2 2 0 110-4 2 2 0 010 4Zm8 6a2 2 0 110-4 2 2 0 010 4Zm0-6a2 2 0 110-4 2 2 0 010 4Z' fill='black'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='c'%3E%3Crect width='30' height='29.6' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E");
}

/* ---------------------------------------------------------
   Footer
   --------------------------------------------------------- */
.l-footer {
  background-color: var(--primary-900);
  color: #fff;
  padding-top: 60px;
}

.l-footer__inner {
  max-width: calc(var(--contents-width) + var(--contents-padding) * 2);
  margin: 0 auto;
  padding: 0 var(--contents-padding) 40px;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

@media (min-width: 768px) {
  .l-footer__inner {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
  }
}

/* Footer nav */
.l-footer__nav-list {
  display: flex;
  flex-wrap: wrap;
gap: 60%;
}

.l-footer__nav-head {
  display: block;
  margin-bottom: 25px;
}

.l-footer__nav-en {
  display: block;
  font-size: 26px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  line-height: 1.1;
}

.l-footer__nav-ja {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: #fff;
  line-height: 1.5;
}

.l-footer__nav-item--stacked {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.l-footer__nav-item--stacked .l-footer__nav-head {
  margin-bottom: 0;
}

.l-footer__nav-child {
margin-top: 0;
  gap: 0 32px;
  column-count: 4;
  margin-bottom: 7%;
}

.l-footer__nav-child li a {
  font-size: 15px;
  line-height: 1.5;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 0;
  transition: opacity var(--dur);
}
.l-footer__nav-child li a::before {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: var(--primary-500);
  flex-shrink: 0;
}

.l-footer__nav-child li a:hover {
  opacity: 0.7;
}

/* Footer CTA */
.l-footer__cta {
  display: flex;
  flex-direction: column;
  gap: 15px;
  text-align: center;
width: 40%;
}

.l-footer__cta-title {
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 8px;
}

.l-footer__cta-tel a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 250px;
  height: 50px;
  margin: 0 auto;
  background-color: #e4e4df;
  color: #333;
  font-size: 20px;
  font-weight: 500;
  letter-spacing: 0.05em;
  border-radius: 50px;
  transition: opacity var(--dur);
}
.l-footer__cta-tel a::before {
  content: "";
  display: block;
  width: 17px;
  height: 17px;
  background-color: #333;
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 28 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.73 0.14L8.24 0.01s1.09-0.15 1.18 0.73c0.09 0.88 1.01 6.4 1.01 6.4s0 0.56-0.51 1.11c-0.5 0.56-2.9 2.97-2.9 2.97s2.88 6.87 9.79 9.76l2.87-2.77s0.53-0.65 1.64-0.35c1.11 0.29 5.91 1.12 5.91 1.12s0.76 0.11 0.76 1.06v6.72s-0.12 1.24-1.23 1.24c-1.11 0-9.43 0-15.69-5.01C4.81 17.97 2.01 12.79 0.77 7.3S-0.28 2.76 0.07 1.11C0.07 1.11-0.06 0.11 1.73 0.14z' fill='currentColor'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 28 28' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.73 0.14L8.24 0.01s1.09-0.15 1.18 0.73c0.09 0.88 1.01 6.4 1.01 6.4s0 0.56-0.51 1.11c-0.5 0.56-2.9 2.97-2.9 2.97s2.88 6.87 9.79 9.76l2.87-2.77s0.53-0.65 1.64-0.35c1.11 0.29 5.91 1.12 5.91 1.12s0.76 0.11 0.76 1.06v6.72s-0.12 1.24-1.23 1.24c-1.11 0-9.43 0-15.69-5.01C4.81 17.97 2.01 12.79 0.77 7.3S-0.28 2.76 0.07 1.11C0.07 1.11-0.06 0.11 1.73 0.14z' fill='currentColor'/%3E%3C/svg%3E");
  mask-size: contain;
  -webkit-mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
}
.l-footer__cta-tel a:hover {
  opacity: 0.8;
}

.l-footer__cta-note {
  font-size: 11px;
  margin-top: 4px;
}

.l-footer__cta-web {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 250px;
  height: 50px;
  margin: 0 auto;
  background-color: #50a0c2;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.05em;
  border-radius: 50px;
  transition: opacity var(--dur);
}
.l-footer__cta-web::before {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  background-color: #fff;
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2z' fill='currentColor'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10zm0-12H5V6h14v2z' fill='currentColor'/%3E%3C/svg%3E");
  mask-size: contain;
  -webkit-mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
}
.l-footer__cta-web:hover {
  opacity: 0.8;
}

/* Footer notice (医院からのご案内) */
.l-footer__notice {
  margin-top: 24px;
  text-align: center;
}
.l-footer__notice-link {
  display: inline-block;
  font-size: 14px;
  color: rgba(255,255,255,0.7);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.3s;
}
.l-footer__notice-link:hover {
  color: #fff;
}

/* Footer bottom (info + banners) */
.l-footer__bottom {
  max-width: calc(var(--contents-width) + var(--contents-padding) * 2);
  margin: 0 auto;
  padding: 32px var(--contents-padding);
  border-top: 1px solid rgba(255,255,255,0.1);
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 40px;
}
@media (max-width: 767px) {
  .l-footer__bottom {
    flex-direction: column;
  }
.l-footer__cta {
  width: 100%;
}
}

/* Footer info */
.l-footer__info {
  flex: 1;
  text-align: center;
}
@media (min-width: 768px) {
  .l-footer__info {
    text-align: left;
  }
}

.l-footer__info-title {
  font-size: 18px;
  color: #fff;
  font-weight: 500;
  display: inline-block;
  border-bottom: 1px solid;
  margin-bottom: 10px;
border-left: none !important;
  background: none !important;
}

.l-footer__info-text {
  font-size: 13px;
  line-height: 1.8;
  text-align: center;
}
@media (min-width: 768px) {
  .l-footer__info-text {
    text-align: left;
  }
}

.l-footer__info-logo {
  max-width: 80px;
  margin-top: 12px;
}
@media screen and (max-width: 767px) {
  .l-footer__info-logo {
    margin-left: auto;
    margin-right: auto;
  }
}
.l-footer__info-logo img {
  width: 100%;
  height: auto;
}

/* Footer banners */
.l-footer__bnr {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  flex-shrink: 0;
  max-width: 560px;
}
@media (max-width: 767px) {
  .l-footer__bnr {
    grid-template-columns: 1fr;
    width: 100%;
  }
}
.l-footer__bnr-link {
  display: block;
  transition: opacity var(--dur);
}
.l-footer__bnr-link:hover {
  opacity: 0.8;
}
.l-footer__bnr-item img {
  width: 100%;
  height: auto;
  display: block;
}

/* Copyright */
.l-footer__cr {
  border-top: 1px solid rgba(255,255,255,0.1);
}
.l-footer__cr-inner {
  max-width: calc(var(--contents-width) + var(--contents-padding) * 2);
  margin: 0 auto;
  padding: 20px var(--contents-padding);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.l-footer__cr-ig a {
  display: block;
  width: 28px;
  height: 28px;
  background-color: #fff;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z'/%3E%3C/svg%3E");
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z'/%3E%3C/svg%3E");
  mask-size: contain;
  -webkit-mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
  text-indent: -9999px;
  transition: background-color var(--dur);
}
.l-footer__cr-ig a:hover {
  background-color: #fff;
}

.l-footer__cr-txt {
  font-size: 12px;
}

/* ---------------------------------------------------------
   ヘッダースクロール影
   --------------------------------------------------------- */
.l-header.is-scrolled {
  background-color: rgba(255,255,255,0.6);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}

/* ---------------------------------------------------------
   SP ナビ ドロワー（モバイル）
   .l-header__menu がドロワーコンテナになる
   --------------------------------------------------------- */
@media (max-width: 767px) {

  /* --- ドロワーコンテナ --- */
  .l-header__menu {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    z-index: 105;
    background-color: var(--secondary-100, #f8fafb);
    padding: 0;
    overflow-y: auto;
    flex-direction: column;
    align-items: stretch;
    transform: translateX(100%);
    transition: transform 0.35s var(--ease);
  }

  .l-header__menu[aria-hidden="false"] {
    transform: translateX(0);
  }

  /* PC用CTAはSPドロワー内で非表示 */
  .l-header__cta {
    display: none !important;
  }

  /* --- ドロワーヘッダー（ロゴ＋インスタ＋閉じる） --- */
  .g-nav__drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--secondary-300);
  }

  .g-nav__drawer-logo img {
    width: 200px;
    height: auto;
  }

  .g-nav__drawer-actions {
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .g-nav__drawer-ig {
    display: block;
    width: 32px;
    height: 32px;
    position: relative;
    text-indent: -9999px;
    overflow: hidden;
  }

  .g-nav__drawer-ig::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 32px;
    height: 32px;
    background-color: var(--primary-900);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 28 29' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.19 28.5964C3.668 28.5964 0.014 24.9302 0 20.4105V8.79626C0 4.27652 3.668 0.610352 8.19 0.610352H19.81C24.332 0.610352 27.986 4.27652 28 8.79626V20.4245C28 24.9442 24.332 28.6104 19.81 28.6104H8.19V28.5964ZM2.618 8.79626V20.4245C2.618 23.5029 5.11 25.9937 8.19 25.9937H19.81C22.89 25.9937 25.382 23.5029 25.382 20.4245V8.79626C25.382 5.7178 22.89 3.22704 19.81 3.22704H8.19C5.11 3.22704 2.618 5.7178 2.618 8.79626ZM6.776 14.6034C6.776 10.6014 10.024 7.36898 14.014 7.36898C18.018 7.36898 21.252 10.6154 21.252 14.6034C21.252 18.6054 18.004 21.8378 14.014 21.8378C10.024 21.8378 6.776 18.5914 6.776 14.6034ZM9.394 14.6034C9.394 17.1501 11.466 19.2211 14.014 19.2211C16.562 19.2211 18.634 17.1501 18.634 14.6034C18.634 12.0566 16.562 9.98567 14.014 9.98567C11.466 9.98567 9.394 12.0566 9.394 14.6034ZM21.098 8.83824C20.16 8.61435 19.572 7.67682 19.796 6.73929C20.02 5.80176 20.958 5.21405 21.896 5.43794C22.834 5.66183 23.422 6.59936 23.198 7.53689C23.016 8.3205 22.316 8.88022 21.504 8.88022C21.364 8.88022 21.238 8.86623 21.098 8.83824Z' fill='%23333'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 28 29' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.19 28.5964C3.668 28.5964 0.014 24.9302 0 20.4105V8.79626C0 4.27652 3.668 0.610352 8.19 0.610352H19.81C24.332 0.610352 27.986 4.27652 28 8.79626V20.4245C28 24.9442 24.332 28.6104 19.81 28.6104H8.19V28.5964ZM2.618 8.79626V20.4245C2.618 23.5029 5.11 25.9937 8.19 25.9937H19.81C22.89 25.9937 25.382 23.5029 25.382 20.4245V8.79626C25.382 5.7178 22.89 3.22704 19.81 3.22704H8.19C5.11 3.22704 2.618 5.7178 2.618 8.79626ZM6.776 14.6034C6.776 10.6014 10.024 7.36898 14.014 7.36898C18.018 7.36898 21.252 10.6154 21.252 14.6034C21.252 18.6054 18.004 21.8378 14.014 21.8378C10.024 21.8378 6.776 18.5914 6.776 14.6034ZM9.394 14.6034C9.394 17.1501 11.466 19.2211 14.014 19.2211C16.562 19.2211 18.634 17.1501 18.634 14.6034C18.634 12.0566 16.562 9.98567 14.014 9.98567C11.466 9.98567 9.394 12.0566 9.394 14.6034ZM21.098 8.83824C20.16 8.61435 19.572 7.67682 19.796 6.73929C20.02 5.80176 20.958 5.21405 21.896 5.43794C22.834 5.66183 23.422 6.59936 23.198 7.53689C23.016 8.3205 22.316 8.88022 21.504 8.88022C21.364 8.88022 21.238 8.86623 21.098 8.83824Z' fill='%23333'/%3E%3C/svg%3E");
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
  }

  .g-nav__drawer-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    position: relative;
  }

  .g-nav__drawer-close-line {
    position: absolute;
    width: 20px;
    height: 2px;
    background-color: var(--primary-900);
  }

  .g-nav__drawer-close-line:nth-child(1) {
    transform: rotate(45deg);
  }

  .g-nav__drawer-close-line:nth-child(2) {
    transform: rotate(-45deg);
  }

  /* --- ナビ本体 --- */
  .g-nav__inner {
    padding: 0 20px;
  }

  .g-nav__list {
    flex-direction: column;
    gap: 0;
    align-items: stretch;
  }

  .g-nav__trigger,
  .g-nav__link {
    font-size: 16px;
    font-weight: 700;
    padding: 20px 0 12px;
    border-bottom: 1px solid var(--secondary-300);
    width: 100%;
    flex-wrap: nowrap;
    align-items: center;
    gap: 12px;
    text-align: left;
  }

  /* 英語タイトル（SP）— いぬい寄せ: 横並び大きめ */
  .g-nav__trigger-en {
    display: inline;
    font-size: 23px;
    text-transform: uppercase;
    color: var(--color-text);
    font-weight: 700;
    letter-spacing: var(--letter-spacing--md);
  }

  .g-nav__trigger-txt,
  .g-nav__link span:not(.g-nav__trigger-en) {
    font-size: 13px;
    font-weight: 400;
    color: #333;
    letter-spacing: var(--letter-spacing--sm);
  }

  /* has-child: 子項目の下にもボーダー */
  .g-nav__item.has-child {
    border-bottom: 1px solid var(--secondary-300);
    padding-bottom: 12px;
  }

  /* シェブロン非表示 */
  .g-nav__ico {
    display: none;
  }

  /* --- ドロップダウンパネル（SP）— 常に展開 --- */
  .g-nav__panel {
    position: static;
    transform: none;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 12px 0 8px;
    min-width: auto;
    background: transparent;
  }

  .g-nav__panel[hidden] {
    display: block !important;
  }

  .g-nav__headlink {
    display: none;
  }

  /* 2カラムグリッド */
  .g-nav__child {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }

  .g-nav__child li a {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 4px;
    font-size: 15px;
    color: var(--color-text);
  }

  .g-nav__child li a::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--primary-500);
    flex-shrink: 0;
  }

  /* --- 診療時間テーブル --- */
  .g-nav__drawer-info {
    padding: 20px;
    margin-top: auto;
  }

  .g-nav__timetable {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
    text-align: center;
  }

  .g-nav__timetable thead th {
    padding: 6px 2px;
    font-weight: 500;
    color: var(--color-text);
    border-bottom: 1px solid var(--secondary-300);
  }

  .g-nav__timetable thead th:first-child {
    text-align: left;
    font-size: 11px;
  }

  .g-nav__timetable tbody th {
    padding: 6px 2px;
    font-weight: 500;
    text-align: left;
    font-size: 11px;
    white-space: nowrap;
  }

  .g-nav__timetable tbody td {
    padding: 6px 2px;
  }

  .g-nav__timetable-tri {
    color: var(--primary-500);
  }

  .g-nav__timetable-notes {
    margin-top: 8px;
  }

  .g-nav__timetable-notes p {
    font-size: 11px;
    color: var(--color-text);
    opacity: 0.7;
    line-height: 1.6;
  }

  /* --- ハンバーガーアニメーション --- */
  .sp-menu[aria-expanded="true"] .sp-menu__line:nth-child(1) {
    transform: translateY(4px) rotate(45deg);
  }
  .sp-menu[aria-expanded="true"] .sp-menu__line:nth-child(2) {
    transform: translateY(-4px) rotate(-45deg);
  }

  /* --- bodyスクロールロック + オーバーレイ --- */
  body.is-nav-open {
    position: fixed;
    width: 100%;
    overflow: hidden;
  }

  body.is-nav-open .l-header {
    z-index: 106;
  }

  body.is-nav-open::before {
    content: "";
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background-color: rgba(0,0,0,0.4);
    z-index: 104;
  }
}

/* ---------------------------------------------------------
   Main content offset
   --------------------------------------------------------- */
.l-main {
/* padding-top: var(--header-height); */
}

/* SP フッターナビ分の余白 */
@media (max-width: 767px) {
  .l-footer {
    padding-bottom: 60px;
  }
}

/* SP フッターナビ レイアウト */
@media (max-width: 767px) {
  /* ナビリスト: 縦並び、gap解除 */
  .l-footer__nav-list {
    flex-direction: column;
    gap: 0;
  }

  /* 各ナビアイテム: ボーダー区切り */
  .l-footer__nav-item {
    padding: 25px 0;
    border-bottom: 1px solid rgba(255,255,255,0.15);
  }
  .l-footer__nav-item:first-child {
    padding-top: 0;
  }

  /* ナビ見出し: EN + JA 横並び */
  .l-footer__nav-head {
    display: flex;
    align-items: center;
    gap: 12px;
  }

  /* 子メニュー: 2列（width指定） */
  .l-footer__nav-child {
height: auto;
    gap: 0 16px;
    column-count: 2;
  }
  .l-footer__nav-child li {
width: 100%;
  }

  /* stacked（RECRUIT/ACCESS）: 親ボーダー消し、子で管理 */
  .l-footer__nav-item--stacked {
    gap: 0;
    border-bottom: none;
    padding-bottom: 0;
  }
  .l-footer__nav-item--stacked .l-footer__nav-head {
    padding: 25px 0;
    border-bottom: 1px solid rgba(255,255,255,0.15);
  }
  .l-footer__nav-item--stacked .l-footer__nav-head:first-child {
    padding-top: 0;
  }
}

/* ---------------------------------------------------------
   ユーティリティクラス（元テーマ互換）
   --------------------------------------------------------- */
.u-only-pc { display: none; }
@media (min-width: 768px) {
  .u-only-pc { display: block; }
}

.u-hidden-md-up { display: block; }
@media (min-width: 768px) {
  .u-hidden-md-up { display: none; }
}

.u-hidden-md-down { display: none; }
@media (min-width: 768px) {
  .u-hidden-md-down { display: block; }
}

.u-sp-only { display: inline; }
br.u-sp-only { display: block; }
@media (min-width: 768px) {
  .u-sp-only { display: none; }
}

.u-wide-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
}

.u-text-primary-500 { color: var(--primary-500); }
.u-text-grayscale-200 { color: var(--gray-200); }
.u-uppercase { text-transform: uppercase; }

.u-font-en { font-family: var(--font-en); }

.u-marker {
  background: linear-gradient(transparent 65%, #fff 65%);
  letter-spacing: inherit;
}

.font-medium { font-weight: 500; }

/* ---------------------------------------------------------
   共通ボタン（元テーマ互換）
   --------------------------------------------------------- */
.link_btn {
  width: 100%;
  display: inline-block;
  color: var(--primary-500);
  border: 1px solid var(--primary-500);
  border-radius: 50px;
  padding: 16px 30px;
  font-weight: bold;
  line-height: var(--line-height--sm);
  transition: all var(--dur) var(--ease);
  font-size: var(--font-size--md);
  position: relative;
  text-align: center;
}
.link_btn:after {
  content: "";
  display: inline-block;
  width: 25px;
  height: 20px;
  background-image: url(../img/move-right.svg);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  right: 25px;
  transform: translateY(-50%);
  color: var(--primary-500);
}

.link_btn-white {
  width: 100%;
  display: inline-block;
  color: var(--color-bg-light);
  border: 1px solid var(--color-bg-light);
  border-radius: 50px;
  padding: 16px 30px;
  font-weight: bold;
  line-height: var(--line-height--sm);
  transition: all var(--dur) var(--ease);
  font-size: var(--font-size--md);
  position: relative;
  text-align: center;
}
.link_btn-white:after {
  content: "";
  display: inline-block;
  width: 25px;
  height: 20px;
  background-image: url(../img/move-right-w.svg);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  right: 25px;
  transform: translateY(-50%);
  color: var(--color-bg-light);
}

/* ---------------------------------------------------------
   共通 section_title（元テーマ互換）
   --------------------------------------------------------- */
.section_title {
  margin: 0 0 24px;
  display: flex;
  align-items: center;
}
.section_title-en {
  display: block;
  font-family: var(--font-en);
  font-size: var(--font-size--x6l);
  letter-spacing: var(--letter-spacing-md);
  margin-bottom: 0;
  padding-right: 20px;
  margin-right: 20px;
  position: relative;
  line-height: 1;
  color: var(--primary-500);
}
.section_title-en::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 0;
  width: 1px;
  height: 20px;
  background-color: var(--secondary-300);
}
.section_title-ja {
  display: block;
  font-size: var(--font-size--x3l);
  font-weight: 500;
  line-height: var(--line-height--sm);
  letter-spacing: var(--letter-spacing-sm);
  color: var(--color-text);
}
@media (min-width: 768px) {
  .section_title-en {
    font-size: clamp(27px, calc(20px + 0.6vw), 36px);
  }
  .section_title-ja {
    font-size: var(--font-size--x5l);
  }
}

/* ---------------------------------------------------------
   診療時間テーブル
   --------------------------------------------------------- */
.tablelayout {
  overflow-x: auto;
  position: relative;
  padding-top: 10px;
  padding-bottom: 10px;
}
/* 上部の角丸ボーダー */
.tablelayout::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 10px;
  border-radius: 10px 10px 0 0;
  border: 1px solid var(--gray-900);
  border-bottom: none;
}
/* 下部の角丸ボーダー（180度回転） */
.tablelayout::after {
  content: "";
  position: absolute;
  bottom: 2px;
  left: 0;
  width: 100%;
  height: 10px;
  border-radius: 10px 10px 0 0;
  border: 1px solid var(--gray-900);
  border-bottom: none;
  transform: rotate(180deg);
}
.layout_table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--font-size--sm);
  text-align: center;
  table-layout: fixed;
}
.layout_table th,
.layout_table td {
  padding: 10px 6px;
  border: none;
  font-weight: 400;
  vertical-align: middle;
}
.layout_table tr {
  border-bottom: 1px solid var(--gray-900);
}
.layout_table tbody tr:last-child {
  border-bottom: none;
}
.layout_table thead th {
  background: none;
  font-size: var(--font-size--x2s);
  font-weight: 500;
  color: var(--gray-700);
  padding-bottom: 8px;
}
.layout_table thead th:first-child {
  text-align: left;
}
.layout_table tbody th {
  text-align: left;
  font-size: var(--font-size--xs);
  white-space: nowrap;
  color: var(--gray-800);
}
/* アイコン：⚪︎ を疑似要素で塗りつぶし描画 */
.ico_circle {
  display: inline-block;
  font-size: 0;
  color: transparent;
  vertical-align: middle;
}
.ico_circle::before {
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background-color: var(--primary-500);
}
@media (min-width: 768px) {
  .ico_circle::before {
    width: 22px;
    height: 22px;
  }
}
.ico_line {
  color: var(--gray-500);
  font-size: var(--font-size--sm);
}
.ico_triangle {
  display: inline-block;
  font-size: 0;
  color: transparent;
  vertical-align: middle;
  position: relative;
}
.ico_triangle::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 9px 15px 9px;
  border-color: transparent transparent var(--primary-300) transparent;
  border-radius: 1px;
  background: none;
  transform: translate(-50%, -15%);
  position: relative;
  left: 50%;
}
@media (min-width: 768px) {
  .ico_triangle::before {
    border-width: 0 11px 18px 11px;
  }
}
.layout_note {
  margin-top: 12px;
}
.layout_note-txt {
  font-size: var(--font-size--x2s);
  line-height: 1.8;
  color: var(--gray-700);
}
.layout_note-note {
  font-size: var(--font-size--x3s);
  color: var(--gray-600);
}
.layout_time {
  font-size: var(--font-size--x3s);
  display: block;
  color: var(--gray-600);
}


/* =========================================================
   ACCESS アクセス（共通パーツ）
   ========================================================= */
.access_section {
  background: var(--color-bg-light);
}
.access_section-inner {
  padding-top: 60px;
  padding-bottom: 60px;
  padding-left: var(--contents-padding-side);
  padding-right: var(--contents-padding-side);
  font-size: var(--font-size--md);
  max-width: var(--contents-width-padding);
  margin: 0 auto;
}
/* row01: PC時 access（左）+ reserve（右） 横並び */
@media (min-width: 768px) {
  .access_section-row01 {
    display: flex;
    gap: 40px;
  }
  .access_section-block--access {
    flex: 1;
    min-width: 0;
  }
  .access_section-reserve {
    width: 560px;
    flex-shrink: 0;
    margin: 0;
  }
}
/* row02: 体制強化中（全幅） */
.access_section-row02 {
  padding-top: 40px;
  position: relative;
  text-align: center;
}
.access_section-row02:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  border-top: 1px solid var(--gray-500);
}
.access_section-access-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 15px;
}
.access_section-access-head .access_section-access-logo {
  width: 253px;
}
.access_section-tags {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
}
.access_section-tags li {
  color: var(--primary-500);
  font-size: var(--font-size--x2s);
  line-height: var(--line-height--sm);
  background-color: var(--primary-200);
  padding: 3px 8px;
}
.access_section-map {
  margin-top: 20px;
  position: relative;
  height: 200px;
}
.access_section-map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.access_section-map-content {
  margin-top: 40px;
}
.access_section-map-content img {
  display: block;
  margin: auto;
}
@media screen and (max-width: 767px) {
  .access_section-address {
    margin-bottom: 24px;
  }
}
.access_section-address-link {
  display: inline-block;
  position: relative;
  color: var(--primary-500);
}
.access_section-address-link .icon_blank {
  margin-left: 5px;
}
.access_section-address-link .icon_blank:after {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  background-color: var(--primary-500);
  -webkit-mask-position: center;
          mask-position: center;
  transition: all var(--dur) var(--ease);
  -webkit-mask-image: url("../img/link_blank.svg");
          mask-image: url("../img/link_blank.svg");
}
.access_section-reserve {
  text-align: center;
}
.access_section-reserve-btn-set a {
  color: var(--gray-900);
}
.access_section-reserve-btn01 .reserve_btn-tel {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  background-color: var(--secondary-300);
  border-radius: 50px;
  position: relative;
  padding: 10px 10px 13px;
  transition: background-color var(--dur) var(--ease);
  color: var(--gray-900);
}
.access_section-reserve-btn01 .reserve_btn-tel .layout__txt01 {
  font-size: var(--font-size--xs);
  display: block;
  letter-spacing: var(--letter-spacing-sm);
}
.access_section-reserve-btn01 .reserve_btn-tel .layout__txt02 {
  font-size: var(--font-size--x6l);
  font-weight: 500;
  line-height: var(--line-height--xs);
  position: relative;
  padding-left: 24px;
}
.access_section-reserve-btn01 .reserve_btn-tel .layout__txt02:before {
  content: "";
  display: block;
  width: 18px;
  height: 30px;
  background-color: currentColor;
  -webkit-mask-image: url(data:image/svg+xml;utf8,%3Csvg%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1.72879%200.141475L8.24231%200.00900473C8.24231%200.00900473%209.3279%20-0.136713%209.42001%200.744215C9.51212%201.62514%2010.4332%207.14254%2010.4332%207.14254C10.4332%207.14254%2010.4332%207.69891%209.92662%208.25529C9.42001%208.81166%207.02514%2011.2226%207.02514%2011.2226C7.02514%2011.2226%209.90688%2018.0912%2016.8152%2020.9791L19.6837%2018.2104C19.6837%2018.2104%2020.2101%2017.5613%2021.322%2017.8594C22.4339%2018.1508%2027.2368%2018.9788%2027.2368%2018.9788C27.2368%2018.9788%2028%2019.0914%2028%2020.0385V26.7614C28%2026.7614%2027.8816%2028%2026.7697%2028C25.6578%2028%2017.3415%2028%2011.078%2022.986C4.81449%2017.972%202.00512%2012.7858%200.774788%207.3015C0.774788%207.3015%20-0.277902%202.75777%200.0708014%201.10851C0.0708014%201.10851%20-0.0607848%200.114981%201.72879%200.141475Z%22%20fill%3D%22black%22%2F%3E%3C%2Fsvg%3E);
  mask-image: url(data:image/svg+xml;utf8,%3Csvg%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M1.72879%200.141475L8.24231%200.00900473C8.24231%200.00900473%209.3279%20-0.136713%209.42001%200.744215C9.51212%201.62514%2010.4332%207.14254%2010.4332%207.14254C10.4332%207.14254%2010.4332%207.69891%209.92662%208.25529C9.42001%208.81166%207.02514%2011.2226%207.02514%2011.2226C7.02514%2011.2226%209.90688%2018.0912%2016.8152%2020.9791L19.6837%2018.2104C19.6837%2018.2104%2020.2101%2017.5613%2021.322%2017.8594C22.4339%2018.1508%2027.2368%2018.9788%2027.2368%2018.9788C27.2368%2018.9788%2028%2019.0914%2028%2020.0385V26.7614C28%2026.7614%2027.8816%2028%2026.7697%2028C25.6578%2028%2017.3415%2028%2011.078%2022.986C4.81449%2017.972%202.00512%2012.7858%200.774788%207.3015C0.774788%207.3015%20-0.277902%202.75777%200.0708014%201.10851C0.0708014%201.10851%20-0.0607848%200.114981%201.72879%200.141475Z%22%20fill%3D%22black%22%2F%3E%3C%2Fsvg%3E);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}
.access_section-reserve-btn01 .reserve_btn-web {
  margin-top: 15px;
  background-color: var(--primary-500);
  border-radius: 50px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 10px 10px 13px;
  font-weight: bold;
  line-height: var(--line-height--sm);
  text-align: center;
  transition: background-color var(--dur) var(--ease);
}
.access_section-reserve-btn01 .reserve_btn-web a {
  color: #fff;
}
.access_section-reserve-btn01 .reserve_btn-web .layout__txt01 {
  font-size: var(--font-size--xs);
  display: block;
  letter-spacing: var(--letter-spacing-sm);
}
.access_section-reserve-btn01 .reserve_btn-web .layout__txt02 {
  font-size: var(--font-size--x2l);
  position: relative;
  padding-left: 26px;
}
.access_section-reserve-btn01 .reserve_btn-web .layout__txt02:before {
  content: "";
  display: block;
  width: 22px;
  height: 30px;
  background-color: currentColor;
  -webkit-mask-image: url(../img/calendar.svg);
          mask-image: url(../img/calendar.svg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  transition: all var(--dur) var(--ease);
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}
.access_section-reserve-time {
  margin-top: 30px;
}
.access_section-block {
  position: relative;
}
.access_section-block-head {
  text-align: center;
}
.access_section-block:before {
  display: none;
}
.access_section-block-sub {
  background-color: var(--primary-500);
  color: #fff;
  font-size: var(--font-size--xl);
  font-weight: bold;
  position: relative;
  padding: 2px 38px 4px;
  border-radius: 40px;
  display: inline-block;
  text-align: center;
  margin-bottom: 5px;
}
.access_section-block-sub:after {
  content: "";
  display: inline-block;
  width: 19px;
  height: 6px;
  background-color: var(--primary-500);
  position: absolute;
  bottom: -5px;
  left: 50%;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-image: url(data:image/svg+xml;utf8,%3Csvg%20viewBox%3D%220%200%2036%2011%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M36%2010.9972C32.8002%2010.9972%2029.692%2010.7138%2026.706%209.31175C23.5596%207.84077%2021.0013%205.7952%2020.6271%201.89559C20.398%20-0.502405%2019.0615%20-0.456437%2017.5876%201.09115C17.1523%201.54317%2016.801%202.10244%2016.5032%202.66172C12.9368%209.25812%207.18625%2011.0815%20-2.88238e-07%2010.9972L36%2010.9972Z%22%20fill%3D%22%23E4E4DF%22%2F%3E%3C%2Fsvg%3E);
          mask-image: url(data:image/svg+xml;utf8,%3Csvg%20viewBox%3D%220%200%2036%2011%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M36%2010.9972C32.8002%2010.9972%2029.692%2010.7138%2026.706%209.31175C23.5596%207.84077%2021.0013%205.7952%2020.6271%201.89559C20.398%20-0.502405%2019.0615%20-0.456437%2017.5876%201.09115C17.1523%201.54317%2016.801%202.10244%2016.5032%202.66172C12.9368%209.25812%207.18625%2011.0815%20-2.88238e-07%2010.9972L36%2010.9972Z%22%20fill%3D%22%23E4E4DF%22%2F%3E%3C%2Fsvg%3E);
  transform: translateX(-50%) rotate(180deg);
}
.access_section-block-main {
  font-size: var(--font-size--x3l);
  line-height: var(--line-height--sm);
  font-weight: 500;
}
.access_section-row02 .strengthen_list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
  margin-top: 20px;
  justify-items: center;
}
@media screen and (max-width: 767px) {
  .access_section-row02 .strengthen_list {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}
.access_section-row02 .strengthen_list li {
  background-color: var(--primary-200);
  border-radius: 50%;
  width: 160px;
  height: 160px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  flex-direction: column;
  text-align: center;
  padding-top: 15px;
  position: relative;
}
@media screen and (max-width: 767px) {
  .access_section-row02 .strengthen_list li {
    width: clamp(140px, 40vw, 160px);
    height: clamp(140px, 40vw, 160px);
    padding-top: 12px;
  }
  .access_section-row02 .strengthen_list li .strengthen-txt {
    font-size: var(--font-size--xs);
  }
  .access_section-row02 .strengthen_list li .strengthen-img {
    width: 40px;
    height: 40px;
    bottom: 12px;
  }
  .strengthen-larger {
    font-size: var(--font-size--x5l);
  }
  .strengthen-largest {
    font-size: var(--font-size--x8l);
  }
  .strengthen-large {
    font-size: var(--font-size--lg);
  }
}
.access_section-row02 .strengthen_list li .strengthen-head {
  font-size: var(--font-size--xs);
  line-height: var(--line-height--sm);
  display: inline-block;
  border-bottom: 1px solid var(--gray-900);
  margin-bottom: 5px;
}
.access_section-row02 .strengthen_list li .strengthen_txt,
.access_section-row02 .strengthen_list li .strengthen-txt {
  font-size: var(--font-size--sm);
  color: #50a0c2;
  line-height: 1.15;
  font-weight: 700;
}
.access_section-row02 .strengthen_list li:nth-child(4) .strengthen-txt {
  font-size: var(--font-size--lg);
  line-height: 1.4;
}
.access_section-row02 .strengthen_list li .strengthen-img {
  width: 50px;
  height: 50px;
  position: absolute;
  bottom: 17px;
  left: 50%;
  transform: translateX(-50%);
}
.strengthen-larger {
  font-size: var(--font-size--x8l);
}
.strengthen-largest {
  font-size: var(--font-size--x10l);
}
.strengthen-large {
  font-size: var(--font-size--xl);
}

/* btn_sns (Instagram アイコン — mask-image) */
.btn_sns {
  display: block;
  width: 32px;
  height: 32px;
  position: relative;
  text-indent: -9999px;
  overflow: hidden;
  transition: opacity var(--dur) var(--ease);
}
.btn_sns::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 32px;
  height: 32px;
  background-color: var(--primary-900);
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 28 29' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.19 28.5964C3.668 28.5964 0.014 24.9302 0 20.4105V8.79626C0 4.27652 3.668 0.610352 8.19 0.610352H19.81C24.332 0.610352 27.986 4.27652 28 8.79626V20.4245C28 24.9442 24.332 28.6104 19.81 28.6104H8.19V28.5964ZM2.618 8.79626V20.4245C2.618 23.5029 5.11 25.9937 8.19 25.9937H19.81C22.89 25.9937 25.382 23.5029 25.382 20.4245V8.79626C25.382 5.7178 22.89 3.22704 19.81 3.22704H8.19C5.11 3.22704 2.618 5.7178 2.618 8.79626ZM6.776 14.6034C6.776 10.6014 10.024 7.36898 14.014 7.36898C18.018 7.36898 21.252 10.6154 21.252 14.6034C21.252 18.6054 18.004 21.8378 14.014 21.8378C10.024 21.8378 6.776 18.5914 6.776 14.6034ZM9.394 14.6034C9.394 17.1501 11.466 19.2211 14.014 19.2211C16.562 19.2211 18.634 17.1501 18.634 14.6034C18.634 12.0566 16.562 9.98567 14.014 9.98567C11.466 9.98567 9.394 12.0566 9.394 14.6034ZM21.098 8.83824C20.16 8.61435 19.572 7.67682 19.796 6.73929C20.02 5.80176 20.958 5.21405 21.896 5.43794C22.834 5.66183 23.422 6.59936 23.198 7.53689C23.016 8.3205 22.316 8.88022 21.504 8.88022C21.364 8.88022 21.238 8.86623 21.098 8.83824Z' fill='%23333'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 28 29' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M8.19 28.5964C3.668 28.5964 0.014 24.9302 0 20.4105V8.79626C0 4.27652 3.668 0.610352 8.19 0.610352H19.81C24.332 0.610352 27.986 4.27652 28 8.79626V20.4245C28 24.9442 24.332 28.6104 19.81 28.6104H8.19V28.5964ZM2.618 8.79626V20.4245C2.618 23.5029 5.11 25.9937 8.19 25.9937H19.81C22.89 25.9937 25.382 23.5029 25.382 20.4245V8.79626C25.382 5.7178 22.89 3.22704 19.81 3.22704H8.19C5.11 3.22704 2.618 5.7178 2.618 8.79626ZM6.776 14.6034C6.776 10.6014 10.024 7.36898 14.014 7.36898C18.018 7.36898 21.252 10.6154 21.252 14.6034C21.252 18.6054 18.004 21.8378 14.014 21.8378C10.024 21.8378 6.776 18.5914 6.776 14.6034ZM9.394 14.6034C9.394 17.1501 11.466 19.2211 14.014 19.2211C16.562 19.2211 18.634 17.1501 18.634 14.6034C18.634 12.0566 16.562 9.98567 14.014 9.98567C11.466 9.98567 9.394 12.0566 9.394 14.6034ZM21.098 8.83824C20.16 8.61435 19.572 7.67682 19.796 6.73929C20.02 5.80176 20.958 5.21405 21.896 5.43794C22.834 5.66183 23.422 6.59936 23.198 7.53689C23.016 8.3205 22.316 8.88022 21.504 8.88022C21.364 8.88022 21.238 8.86623 21.098 8.83824Z' fill='%23333'/%3E%3C/svg%3E");
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}
.btn_sns:hover { opacity: 0.8; }

/* link_text (テキストリンク) */
.link_text {
  color: var(--primary-500);
  text-decoration: underline;
  font-size: var(--font-size--sm);
}
.link_text:hover { text-decoration: none; }

span.po-b {
  color: #50a0c2;
  font-weight: bold !important;
  font-size: large;
  font-family: "Yu Gothic", "YuGothic", "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro" !important;
}
span.po {
  color: #d25468;
  font-weight: bold !important;
  font-size: large;
  font-family: "Yu Gothic", "YuGothic", "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro" !important;
}
.ch {
background: url(../img/icon_check.svg)no-repeat;
  padding: 0 0 0 30px;
}
.ch-b {
background: url(../img/icon_check-b.svg)no-repeat;
  padding: 0 0 0 30px;
}

.page-template-default h1.l-sub-img__head {
font-size: 32px;
line-height: 1;
color: #0073b2;
font-weight: bold;
  letter-spacing: 0;
padding: 20px var(--contents-padding-side) 24px;
}
.page-template-default h2 {
background: #77cada;
  color: #fff;
  position: relative;
  text-align: left;
  font-size: 24px;
  line-height: 1.4;
margin: 10pax 0 20px 0;
  padding:10px;
margin-bottom: 20px;
}
.page-template-default .l-sub-img {
  max-width: calc(var(--contents-width) + var(--contents-padding) * 2);
}
.page-template-default h3 {
border-left: 6px solid #0073b2;
  background: #d7eef2;
  margin: 20px 0;
  font-size: 125%;
  line-height: 1.5em;
  padding: 8px 15px;
}

@media (min-width: 768px) {
.page-template-default h4 {
    font-size: 19px;
    margin-bottom: 12px;
    padding-bottom: 10px;
  }
.page-template-default h4::before {
    width: 12px;
    height: 12px;
  }
}
.page-template-default h4::before {
content: "";
  display: inline-block;
  width: 15px;
  height: 15px;
  background: #0073b2;
  transform: rotate(45deg);
  flex-shrink: 0;
  top: 3px;
  position: relative;
  margin-right: 3px;
}
.page-template-default h4 {
font-weight: 500;
  color: var(--color-text);
  margin-bottom: 8px;
  padding-bottom: 4px;
  border-bottom: 1px solid #b5ddf2;
  display: flex;
  align-items: center;
  gap: 8px;
}
@media (max-width: 767px) {
.page-template-default h1.l-sub-img__head {
  font-size: 26px;
}
.page-template-default h2 {
  font-size: 20px;
}
}
.yellowbox{
  padding: 14px 16px;
  background: #fff;
  border: 1px solid var(--primary-500);
  border-radius: 4px;
}
@media only screen and (min-width: 767px) {
  .graybox {
    font-size: 14px;
    line-height: 27px;
    margin-bottom: 20px;
  }
}
.graybox {
  padding: 10px 20px;
  border: solid 1px #ccc;
  background-color: #f3f3f3;
  margin-bottom: 20px;
  font-size: 16px;
  line-height: 25px;
}
span.att {
  background: #77cada;
  padding: 1px 15px;
  margin: 5px 0;
  font-weight: bold;
  font-size: 105%;
  display: inline-block;
  color: #fff;
  font-family: "Yu Gothic", "YuGothic", "メイリオ", "Meiryo", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro" !important;
  font-weight: bold !important;
}
html, body{
background: #fff;
position: relative;
margin: 70px auto 0;
}

.table-of-contents {
position: relative;
padding: 30px 0px 15px 15px;
  border-radius: 5px;
background: #eee;
  margin: 50px auto 0;
}

.table-of-contents:before {
  display: inline-block;
  position: absolute;
  top: -8px;
  left: 9px;
  width: 60px;
  height: 30px;
  vertical-align: middle;
  text-align: center;
  content: "目 次";
  font-family: "FOT-筑紫A丸ゴシック Std B";
  color: #FFF;
  font-size: 18px;
  line-height: 30px;
  background: #0073b2;
}

.table-of-contents:after {
  position: absolute;
  content: '';
  top: -8px;
  left: 69px;
  border: none;
  border-bottom: solid 8px #7a9c09;
  border-right: solid 9px transparent;
}

.table-of-contents ul li {
  padding: 0;
font-size: medium;
  line-height: 2.5em;
}
.table-of-contents ul {
list-style: none;
}
.table-of-contents ul li:before {
content: '\f105';
  margin-right: 10px;
  color: #ccc;
  font-family: "Font Awesome 5 Free";
  font-weight: 600;
}
.table-of-contents ul li+li {
  border-top: 1px dashed #ccc;
}
.table-of-contents ul li a {
text-decoration: none;
display: contents;
}
.table-of-contents ul li a:hover {
  opacity: .5;
}
.ch-list p{
margin-bottom: 5px !important;
padding-left: 2em;
text-indent: -2em;
}
@media screen and (max-width: 767px) {
.table-of-contents ul li {
line-height: 2.5em !important;
margin-bottom: 0 !important;
}
.table-of-contents ul {
  margin: 3% 3% 0 0;
}
}
.l-main p{
padding-bottom: 1.5%;
}
/*--------------よくある質問css--------------*/
.qadl{
line-height:1.8em;
overflow: hidden;
zoom: 1;
}
.qadl dd,
.qadl dt{
text-indent: -2.6em;   
padding: 0 20px 0px 50px;
}

.qadl dt{
margin: 20px 20px 0 0px;
color: #2d6dae;
font-weight: bold !important;
font-family: 'Hiragino Kaku Gothic Pro','ヒラギノ角ゴ Pro W3','メイリオ',Meiryo,'Osaka','ＭＳ Ｐゴシック',Arial,sans-serif !important;
}

.qadl dd:first-letter,
.qadl dt:first-letter{
font-weight: bold;
margin-right:10px;
padding:5px;
font-family: 'Hiragino Kaku Gothic ProN', '游ゴシック', YuGothic, 'メイリオ', Meiryo, sans-serif;
font-size: 18px;
}

.qadl dd{
margin: 10px 0 0px 0;
padding-bottom: 10px;
border-bottom: 1px #000 dotted;
}
.qadl dt:first-letter{
color: #0F78E1;
}
.qadl dd:first-letter{
color: #ff6767;
}
.link_btnB {
  width: fit-content;
  display: inline-block;
  color: var(--primary-500);
  border: 1px solid var(--primary-500);
  border-radius: 50px;
  padding: 16px 60px 16px 20px;
  font-weight: bold;
  line-height: var(--line-height--sm);
  transition: all var(--dur) var(--ease);
  font-size: var(--font-size--md);
  position: relative;
  text-align: center;
}
.link_btnB::after{
  content: "";
  display: inline-block;
  width: 25px;
  height: 20px;
  background-image: url(../img/move-right.svg);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  right: 25px;
  transform: translateY(-50%);
  color: var(--primary-500);
}
.link_btnA{
color: #fff;
  background-color: var(--primary-500);
  padding: 10px 60px 10px 20px;
  min-width: 200px;
  display: unset;
  border-radius: var(--radius-pill);
  font-weight: 700;
  position: relative;
}
.link_btnA::after{
content: "";
  display: inline-block;
  width: 20px;
  height: 30px;
  background-image: url(../img/move-right-w.svg);
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 25%;
  right: 15px;
}
/*治療の流れ*/
.flow_design02 {
display: flex;
}

.flow_design02 ul {
  padding: 0;
width: 100%;
}

.flow_design02 li {
  list-style-type: none;
}

.flow_design02 dd {
margin-left: 0;
font-size: medium;
line-height: 2em;
}

.flow02 > li {
padding: 0px 0px 20px 0;
}

.flow02 > li:not(:last-child) {
border-bottom: 2px solid #BBB;
position: relative;
margin-bottom: 5%;
padding-left: 0;
display: grid;
padding-bottom: 2%;
}

.flow02 > li:not(:last-child)::before,
.flow02 > li:not(:last-child)::after {
  content: "";
  border: solid transparent;
  position: absolute;
  top: 100%;
  left: 15%;
  -webkit-transform: translateX(-50%);
  transform: translateX(-50%);
}

.flow02 > li:not(:last-child)::before {
border-width: 21px;
border-top-color: #BBB;
}

.flow02 > li:not(:last-child)::after {
  border-width: 18px;
  border-top-color:#fff;
}

.flow02 > li dl {
  margin: 0;
}

.flow02 > li dl dt {
font-size: 1.1em;
  font-weight: 600;
  border-bottom: 1px dotted #878787;
  margin-bottom: 0.5em;
  padding-bottom: 0.5em;
  display: flex;
}

.flow02 > li dl dt .icon02 {
color: #fff;
  background: #50a0c2;
padding: 1px 20px;
  display: inline-block;
  margin-right: .5em;
}
@media screen and (max-width: 700px){
.flow_design02 ul li{
  padding: 0;
}
.smaw50.margin0 {
width: 50%;
margin: 0 auto 8%;
}
.flow02 > li:not(:last-child) {
  margin-bottom: 15%;
}
}
/*治療の流れ　おわり*/
/*table*/
.page-template-default table{
  border-collapse: collapse;  
border: 1px solid #ccc;
}
.page-template-default table td,.page-template-default table th{ /* 各セルの指定 */
padding: 5px 30px;
  text-align:center;
border: 1px solid #ccc;
}
.page-template-default table th{
  background: #e3f3f4;
}
.page-template-default table td:last-child{ /* 一番左の列の指定 */
  border-right:0;
}
.page-template-default table th:last-child{ /* 一番右の列の指定 */
  border-right:0;
}
.page-template-default .table01 p{
text-align: left !important;
padding-bottom: 5px;
font-size: .85em;
}
.page-template-default .table01 td, .page-template-default .table01 th{
padding: 5px 10px;
}
table.price td {
text-align: left !important;
  }
table.price img{
  width: 100%!important;
  margin: 0!important;
}
table.price td, table.price th {
  padding: 5px 15px;
}
@media only screen and (max-width: 768px) {
.page-template-default table td, .page-template-default table th {
  padding: 5px;
}
  table.price tr th {
    display: none;
  }
table.price td::before{
    background-color: #caf8ca;
    color: #333;
    display: block;
    padding: 5px;
  }
table.price td {
    border-bottom: none;
    display: block;
width: 100% !important;
text-align: center !important;
  }
/* 料金表タイトルを追加 */
table.price td:nth-of-type(1){background: #0073b2 !important;color: #fff;}
table.price td:nth-of-type(2):before { content: "素材";display: block;background:#f0f0f0;color: #000;}
table.price td:nth-of-type(3):before { content: "イメージ";display: block;background:#f0f0f0;color: #000;}
table.price td:nth-of-type(4):before { content: "詳細";display: block;background:#f0f0f0;color: #000;}
table.price td:nth-of-type(5):before { content: "価格（税込）";display: block;background:#f0f0f0;}
table.price td:nth-of-type(6):before { content: "保証期間";display: block;background:#f0f0f0;}
table.price.imp td:nth-of-type(2):before {content: none;}
table.price img{
  width: 50%!important;
}
}
/*table　終わり*/
/*　ContactForm7のテーブル化レスポンシブ調整　*/
 
/*テーブルを親要素の幅いっぱいに伸ばす*/
.table-res-form {
    width: 100%;
}
/*一行ごとに上ボーダー*/
.table-res-form tr {
border-top: 1px #DDD solid;
background: #fff;
}
/*一番上の行だけボーダーなし*/
.table-res-form tr:first-child {
    border-top: none;
}
/*奇数行だけ背景色つける*/
/*.table-res-form tr:nth-child(2n+1) {
    background: #eee;*/
}
/*thとtd内の余白指定*/
.table-res-form th, .table-res-form td {
    padding: 1.5em;
}
/*th（項目欄）は30%幅、テキストを右寄せ*/
.table-res-form th {
    width: 30%;
    text-align: right;
}
/*「必須」部分のスタイリング*/
.table-res-form .requied {
    font-size: 0.8em;
    color: #FFF;
    display: inline-block;
    padding: 0.3em 0.3em 0.2em;
    background: red;
    border-radius: 2px;
}
.table-res-form .wpcf7-list-item {
  display: flex;
  margin: 0 0 0 1em;
} 
.table-res-form .wpcf7-submit{
  padding: 3px 10px;
  font-size: inherit;
}
/*ここから768px以下の指定*/
 
@media only screen and (max-width: 768px) {
.table-res-form th, .table-res-form td {
width: 100%;
display: block;
 }
/*th（項目名）欄の不要な余白削除・テキスト左寄せ*/
.table-res-form th {
padding-bottom: 0;
text-align: left;
line-height: 1.4em;
font-size: smaller;
}
/*不要な最終行の左のthを非表示にする*/
.table-res-form .empty {
display: none;
}
}
/*ここまで768px以下の指定---終わり*/
/*ここから入力欄のスタイル指定*/
/*各入力フォームスタイリング*/
.table-res-form input[type="text"], input[type="email"], textarea {
    border: 1px #C9E0C5 solid;
    padding: 0.5em;
    border-radius: 5px;
    margin-bottom: 0.5em;
    width: 100%;
}
/*入力欄にフォーカスしたら変化*/
.table-res-form input[type="text"]:focus, textarea:focus {
    background: #EEFFFF;
    box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5);
}

@media only screen and (max-width: 960px) and (min-width: 500px) {
table.p-table img {
width: 20%;
float: none;
}
table#pw-table img{
width: 20%;
float: none;
}
}
/*　ContactForm7のテーブル化レスポンシブ調整　*/
/*　アンケート　*/
#text_bg .voice{
background: #0073b2;
color: #fff;
text-shadow: 1px 1px 1px rgba(0, 0, 0, .3);
margin-bottom: 10px;
padding: 10px 20px;
border-radius: 5px;
font-size: 18px;
font-family: 'Hiragino Kaku Gothic ProN', '游ゴシック', YuGothic, 'メイリオ', Meiryo !important;
font-weight: 900 !important;
width: 95%;
}
.voice-list{
display: flex;
flex-wrap: wrap;
}
#text_bg a{
text-decoration: none;
display: contents;
}
/*　アンケート　*/
.t-l{
text-align: left !important;
}
.w10{
width: 10% !important;
}
.w15{
width: 15% !important;
}
.w20{
width: 20% !important;
}
.w100{
width: 100%;
}
.w40{
width: 40% !important;
}
.w45{
width: 45% !important;
}
.page-template-default .l-main {
  padding-top: 0;
}
.page-template-default .l-main img {
  width: 30%;
float: right;
  margin: 0 0 0 30px;
}
.page-template-default .l-main .imgbox {
  width: 30%;
float: right;
  margin: 0 0 0 30px;
}
.page-template-default .l-main .imgbox img {
  width: 100%;
  margin: 0;
}
.page-template-default .clear {
  clear: both;
}
.post-main{
width: 100% !important;
}
.blog-template-default .news_single-article {
  max-width: 100%;
}
@media screen and (max-width: 700px){
.smaw100,.w45{
width: 100% !important;
}
.smaw50 {
    width: 50% !important;
    margin: 0 auto !important;
    float: none !important;
  }
.page-template-default .l-main img {
  width: 100%;
  margin:0px;
float: none;
}
body{
  margin-top: 0;
}
	}
