@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: 60px;
}

.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;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  height: 93px;
  gap: 0 32px;
}

.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;
}

.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;
  }
}

/* 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 {
    flex-direction: row;
    height: auto;
    gap: 0 16px;
  }
  .l-footer__nav-child li {
    width: calc(50% - 8px);
  }

  /* 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;
}
.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{
  display: flex;
  align-items: center;
  padding: 14px 16px;
  background: #fff;
  border: 1px solid var(--primary-500);
  border-radius: 4px;
  text-decoration: none;
  color: var(--primary-500);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease);
  position: relative;
}
@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;
}