@charset "utf-8";
/* Header and footer styles, formerly inline in the corresponding templates. */


/* =================================================
   共通
================================================= */

header,
header *,
header *::before,
header *::after {
  box-sizing: border-box;
}


/* =================================================
   言語別 電話番号表示
================================================= */

.phone-number-ja {
  display: inline !important;
}

.phone-number-international {
  display: none !important;
}

html[data-language="en"] .phone-number-ja,
html[data-language="zh-TW"] .phone-number-ja,
html[data-language="ko"] .phone-number-ja {
  display: none !important;
}

html[data-language="en"] .phone-number-international,
html[data-language="zh-TW"] .phone-number-international,
html[data-language="ko"] .phone-number-international {
  display: inline !important;
}


/* =================================================
   PC 言語切替
================================================= */

.language-selector {
  display: flex;
  align-items: center;
  gap: 6px;
}

.language-selector__label {
  color: #555555;
  font-size: 12px;
  white-space: nowrap;
}

.language-selector select {
  height: 34px;
  padding: 0 28px 0 10px;

  border: 1px solid #d5d5d5;
  border-radius: 6px;

  background-color: #ffffff;

  color: #333333;

  font-family:
    'HiraginoMaru',
    'Hiragino Maru Gothic ProN',
    'Hiragino Maru Gothic Pro',
    'M PLUS Rounded 1c',
    sans-serif;

  font-size: 13px;

  cursor: pointer;
}


/* =================================================
   PC / SP
================================================= */

@media screen and (min-width: 1301px) {

  .pc {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    overflow: visible !important;
  }

  .sp {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
  }

}


@media screen and (max-width: 1300px) {

  .pc {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
  }

  .sp {
    display: block !important;
    visibility: visible !important;
    height: auto !important;
    overflow: visible !important;
  }

  html,
  body {
    overflow-x: hidden !important;
  }

}


/* =================================================
   PC HEADER
================================================= */

@media screen and (min-width: 1301px) {

  .pc header {
    position: fixed !important;

    top: 0 !important;
    left: 0 !important;

    width: 100% !important;

    background: #ffffff !important;

    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;

    z-index: 10000 !important;

    font-family:
      'HiraginoMaru',
      'Hiragino Maru Gothic ProN',
      'Hiragino Maru Gothic Pro',
      'M PLUS Rounded 1c',
      sans-serif !important;
  }


  .pc header .header-top {
    display: flex !important;

    justify-content: space-between !important;
    align-items: center !important;

    width: 100% !important;

    margin: 0 !important;

    padding: 32px 60px 12px !important;

    gap: 30px !important;
  }


  .pc header .header-left {
    display: flex !important;

    align-items: center !important;

    gap: 12px !important;

    flex-shrink: 0 !important;
  }


  .pc header .header-logo {
    display: block !important;

    width: 75px !important;
    min-width: 75px !important;
    max-width: 75px !important;

    flex: 0 0 75px !important;
  }


  .pc header .header-logo img {
    display: block !important;

    width: 75px !important;

    height: auto !important;

    object-fit: contain !important;
  }


  .pc header .header-clinic-info {
    display: flex !important;

    flex-direction: column !important;

    justify-content: center !important;
    align-items: flex-start !important;

    text-align: left !important;

    min-width: 250px !important;
  }


  .pc header .clinic-address {
    margin: 0 0 4px 0 !important;

    color: #555555 !important;

    font-size: 14px !important;
    line-height: 1.3 !important;

    white-space: nowrap !important;
  }


  .pc header .clinic-name {
    margin: 0 !important;

    color: #333333 !important;

    font-size: 28px !important;
    line-height: 1.2 !important;

    white-space: nowrap !important;
  }


  .pc header .header-contact {
    display: flex !important;

    align-items: center !important;
    justify-content: flex-end !important;

    gap: 14px !important;

    flex-shrink: 0 !important;
  }


  .pc header .header-phone {
    display: flex !important;

    flex-direction: column !important;

    align-items: center !important;
    justify-content: center !important;

    white-space: nowrap !important;
  }


  .pc header .phone-label {
    display: block !important;

    margin: 0 0 2px 0 !important;

    color: #4d4d4d !important;

    font-size: 13px !important;
  }


  /* =================================================
     PC 電話ボタン
  ================================================= */

  .pc header .pc-phone-button {
    -webkit-appearance: none !important;
    appearance: none !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    gap: 8px !important;

    margin: 0 !important;
    padding: 0 !important;

    border: none !important;

    background: transparent !important;

    color: #4d4d4d !important;

    font-family:
      'HiraginoMaru',
      'Hiragino Maru Gothic ProN',
      'Hiragino Maru Gothic Pro',
      'M PLUS Rounded 1c',
      sans-serif !important;

    font-size: 27px !important;

    cursor: pointer !important;

    white-space: nowrap !important;
  }


  .pc header .pc-phone-button .icon {
    color: #376bb6 !important;

    font-size: 27px !important;
  }


  .pc header .tel-number {
    font-size: 27px !important;
  }


  /* =================================================
     LINE
  ================================================= */

  .pc header .header-line,
  .pc header .header-line a {
    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 42px !important;
    height: 42px !important;

    overflow: hidden !important;

    border-radius: 11px !important;
  }


  .pc header .header-line img {
    display: block !important;

    width: 42px !important;
    height: 42px !important;

    object-fit: cover !important;

    border-radius: 11px !important;
  }


  .pc header .header-language {
    display: flex !important;

    align-items: center !important;

    margin-left: 4px !important;
  }


  .pc header .header-language select {
    min-width: 120px !important;
  }


  /* =================================================
     PC NAV
  ================================================= */

  .pc header .header-nav {
    width: 100% !important;

    margin: 0 auto 14px !important;
  }


  .pc header .header-nav ul {
    display: flex !important;

    justify-content: center !important;
    align-items: center !important;

    margin: 0 auto !important;
    padding: 0 !important;

    list-style: none !important;
  }


  .pc header .header-nav li {
    display: flex !important;
    align-items: center !important;
  }


  .pc header .header-nav li a,
  .pc header .header-nav li a:visited,
  .pc header .header-nav li a:hover,
  .pc header .header-nav li a.current {
    display: inline-block !important;

    padding: 7px 14px !important;

    color: #4d4d4d !important;

    font-family:
      'HiraginoMaru',
      'Hiragino Maru Gothic ProN',
      'Hiragino Maru Gothic Pro',
      'M PLUS Rounded 1c',
      sans-serif !important;

    font-size: 15px !important;
    font-weight: normal !important;
    font-style: normal !important;

    line-height: 1.4 !important;

    letter-spacing: normal !important;

    transform: none !important;

    text-decoration: none !important;

    white-space: nowrap !important;
  }


  .pc header .header-nav li a:hover,
  .pc header .header-nav li a.current {
    font-size: 15px !important;
    font-weight: normal !important;

    transform: none !important;

    text-decoration: underline 2px #376bb6 !important;
    text-underline-offset: 5px !important;
  }


  .pc header .divider {
    margin: 0 2px !important;

    color: #999999 !important;
  }


  /* =================================================
     美容・医療脱毛
  ================================================= */

  .pc header .beauty-nav-item {
    align-items: flex-start !important;
  }


  .pc header .beauty-nav-wrap {
    display: flex !important;

    flex-direction: column !important;

    align-items: center !important;
    justify-content: center !important;
  }


  .pc header .beauty-nav-wrap > a {
    display: block !important;
  }


  .pc header .beauty-nav-note {
    display: block !important;

    margin: -2px 0 0 0 !important;
    padding: 0 !important;

    color: #c44 !important;

    font-size: 10px !important;
    line-height: 1.2 !important;

    text-align: center !important;

    white-space: nowrap !important;
  }

}


/* =================================================
   SP / TABLET HEADER
================================================= */

@media screen and (max-width: 1300px) {

  .sp header {
    position: fixed !important;

    top: 0 !important;
    left: 0 !important;

    width: 100% !important;

    background: #ffffff !important;

    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;

    z-index: 10000 !important;

    font-family:
      'HiraginoMaru',
      'Hiragino Maru Gothic ProN',
      'Hiragino Maru Gothic Pro',
      'M PLUS Rounded 1c',
      sans-serif !important;
  }


  .sp header .header-top {
    display: flex !important;

    align-items: center !important;
    justify-content: space-between !important;

    width: 100% !important;

    min-height: 68px !important;

    margin: 0 !important;

    padding: 10px 14px !important;

    gap: 8px !important;

    background: #ffffff !important;
  }


  .sp header .header-left {
    display: flex !important;

    align-items: center !important;
    justify-content: flex-start !important;

    gap: 8px !important;

    min-width: 0 !important;

    flex: 1 1 auto !important;
  }


  .sp header .header-logo {
    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;

    flex: 0 0 56px !important;

    margin: 0 !important;
    padding: 0 !important;
  }


  .sp header .header-logo img {
    display: block !important;

    width: 56px !important;
    height: auto !important;

    margin: 0 !important;
    padding: 0 !important;

    object-fit: contain !important;
  }


  .sp header .header-clinic-info {
    display: flex !important;

    flex-direction: column !important;

    justify-content: center !important;
    align-items: center !important;

    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    text-align: center !important;
  }


  .sp header .clinic-address {
    margin: 0 0 2px 0 !important;
    padding: 0 !important;

    color: #555555 !important;

    font-size: 10px !important;
    line-height: 1.25 !important;

    white-space: nowrap !important;

    text-align: center !important;
  }


  .sp header .clinic-name02 {
    margin: 0 !important;
    padding: 0 !important;

    color: #333333 !important;

    font-size: clamp(17px, 3.6vw, 22px) !important;
    line-height: 1.15 !important;

    white-space: nowrap !important;

    text-align: center !important;
  }


  /* 英語 */

  html[data-language="en"] .sp header .clinic-name02 {
    font-size: 14px !important;
    letter-spacing: -0.2px !important;
  }


  html[data-language="en"] .sp header .clinic-address {
    font-size: 9px !important;
  }


  /* 繁體中文・韓国語 */

  html[data-language="zh-TW"] .sp header .clinic-name02,
  html[data-language="ko"] .sp header .clinic-name02 {
    font-size: 16px !important;
  }


  .sp header .header-contact {
    display: flex !important;

    align-items: center !important;
    justify-content: flex-end !important;

    gap: 7px !important;

    margin: 0 !important;
    padding: 0 !important;

    flex: 0 0 auto !important;
  }


  /* =================================================
     SP 電話
  ================================================= */

  .sp header .header-phone {
    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;

    margin: 0 !important;
    padding: 0 !important;

    flex: 0 0 40px !important;
  }


  .sp header .sp-phone-button {
    -webkit-appearance: none !important;
    appearance: none !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;

    margin: 0 !important;
    padding: 0 !important;

    border: none !important;
    border-radius: 10px !important;

    background: #376bb6 !important;

    cursor: pointer !important;
  }


  .sp header .sp-phone-button .icon {
    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 40px !important;
    height: 40px !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #ffffff !important;

    font-size: 20px !important;
    line-height: 1 !important;
  }


  /* =================================================
     LINE
  ================================================= */

  .sp header .header-line,
  .sp header .header-line a {
    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;

    margin: 0 !important;
    padding: 0 !important;

    flex: 0 0 40px !important;

    overflow: hidden !important;

    border-radius: 10px !important;
  }


  .sp header .header-line img {
    display: block !important;

    width: 40px !important;
    height: 40px !important;

    margin: 0 !important;
    padding: 0 !important;

    object-fit: cover !important;

    border-radius: 10px !important;
  }


  /* =================================================
     SP 言語切替
  ================================================= */

  .sp header .mobile-language-switcher {
    position: relative !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;

    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;

    margin: 0 !important;
    padding: 0 !important;

    flex: 0 0 48px !important;
  }


  .sp header .mobile-language-switcher__toggle {
    -webkit-appearance: none !important;
    appearance: none !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;

    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 1px solid #d6d6d6 !important;
    border-radius: 12px !important;

    background: #ffffff !important;

    font-size: 30px !important;
    line-height: 1 !important;

    cursor: pointer !important;

    box-shadow: 0 1px 3px rgba(0,0,0,0.06) !important;
  }


  .sp header .mobile-language-switcher__toggle span {
    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;
    height: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 30px !important;
    line-height: 1 !important;

    text-align: center !important;
  }


  .sp header .mobile-language-switcher__menu {
    position: absolute !important;

    top: calc(100% + 8px) !important;
    right: 0 !important;

    width: 160px !important;

    margin: 0 !important;
    padding: 6px !important;

    background: #ffffff !important;

    border: 1px solid #dddddd !important;
    border-radius: 10px !important;

    box-shadow: 0 6px 20px rgba(0,0,0,0.15) !important;

    z-index: 10010 !important;
  }


  .sp header .mobile-language-switcher__menu[hidden] {
    display: none !important;
  }


  .sp header .mobile-language-switcher__menu button {
    -webkit-appearance: none !important;
    appearance: none !important;

    display: flex !important;

    align-items: center !important;

    gap: 10px !important;

    width: 100% !important;

    margin: 0 !important;
    padding: 9px 10px !important;

    border: none !important;
    border-radius: 7px !important;

    background: #ffffff !important;

    color: #333333 !important;

    font-size: 14px !important;
    line-height: 1.3 !important;

    text-align: left !important;

    cursor: pointer !important;
  }


  .sp header .mobile-language-switcher__menu button span:first-child {
    display: inline-block !important;

    width: 28px !important;

    font-size: 22px !important;

    text-align: center !important;
  }


  .sp header .mobile-language-switcher__menu button:hover,
  .sp header .mobile-language-switcher__menu button.is-current {
    background: #f1f5fb !important;
  }


  /* =================================================
     ハンバーガー
  ================================================= */

  .sp header .hamburger {
    display: block !important;

    position: relative !important;

    top: auto !important;

    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;

    margin: 0 !important;
    padding: 0 !important;

    flex: 0 0 40px !important;

    border: none !important;

    background: transparent !important;

    cursor: pointer !important;

    z-index: 10001 !important;
  }


  .sp header .hamburger span {
    display: block !important;

    position: absolute !important;

    left: 3px !important;

    width: 34px !important;
    height: 3px !important;

    background: #333333 !important;

    border-radius: 999px !important;

    transition: all 0.3s ease !important;
  }


  .sp header .hamburger_linetop {
    top: 8px !important;
  }


  .sp header .hamburger_linecenter {
    top: 18px !important;
  }


  .sp header .hamburger_linebottom {
    top: 28px !important;
  }


  body.nav_open .sp .hamburger_linetop {
    top: 18px !important;

    transform: rotate(45deg) !important;
  }


  body.nav_open .sp .hamburger_linecenter {
    opacity: 0 !important;
  }


  body.nav_open .sp .hamburger_linebottom {
    top: 18px !important;

    transform: rotate(-45deg) !important;
  }


  /* =================================================
     サイドメニュー
  ================================================= */

  .sp .sidemenu {
    position: fixed !important;

    top: 0 !important;
    right: -280px !important;

    width: 280px !important;
    height: 100vh !important;

    padding: 80px 24px 24px !important;

    background: #ffffff !important;

    z-index: 9999 !important;

    transition: right 0.3s ease !important;

    box-shadow: -4px 0 12px rgba(0,0,0,0.15) !important;

    overflow-y: auto !important;
  }


  body.nav_open .sp .sidemenu {
    right: 0 !important;
  }


  .sp .sidemenu nav ul {
    display: block !important;

    margin: 0 !important;
    padding: 0 !important;

    list-style: none !important;
  }


  .sp .sidemenu nav li {
    border-bottom: 1px solid #e5e5e5 !important;
  }


  .sp .sidemenu nav a {
    display: block !important;

    padding: 14px 0 !important;

    color: #333333 !important;

    font-size: 16px !important;

    text-decoration: none !important;
  }


  .sp .sidemenu nav .beauty-sp-item {
    padding: 0 !important;
  }


  .sp .sidemenu nav .beauty-sp-item > a {
    padding: 14px 0 4px !important;
  }


  .sp .sidemenu nav .beauty-sp-note {
    display: block !important;

    margin: 0 0 12px 0 !important;
    padding: 0 !important;

    color: #c44 !important;

    font-size: 11px !important;
    line-height: 1.4 !important;
  }


  .overlay {
    display: none !important;

    position: fixed !important;

    inset: 0 !important;

    background: rgba(0,0,0,0.35) !important;

    z-index: 9998 !important;
  }


  body.nav_open .overlay {
    display: block !important;
  }

}


/* =================================================
   小さいスマホ
================================================= */

@media screen and (max-width: 420px) {

  .sp header .header-top {
    min-height: 62px !important;

    padding: 8px !important;

    gap: 4px !important;
  }


  .sp header .header-logo {
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;

    flex: 0 0 44px !important;
  }


  .sp header .header-logo img {
    width: 44px !important;
  }


  .sp header .header-left {
    gap: 5px !important;
  }


  .sp header .clinic-address {
    font-size: 8px !important;
  }


  .sp header .clinic-name02 {
    font-size: 15px !important;
  }


  html[data-language="en"] .sp header .clinic-name02 {
    font-size: 13px !important;
  }


  html[data-language="zh-TW"] .sp header .clinic-name02,
  html[data-language="ko"] .sp header .clinic-name02 {
    font-size: 14px !important;
  }


  .sp header .header-contact {
    gap: 4px !important;
  }


  .sp header .header-phone,
  .sp header .sp-phone-button,
  .sp header .sp-phone-button .icon,
  .sp header .header-line,
  .sp header .header-line a,
  .sp header .header-line img {
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;

    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;

    flex: 0 0 38px !important;
  }


  .sp header .mobile-language-switcher {
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;

    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;

    flex: 0 0 46px !important;
  }


  .sp header .mobile-language-switcher__toggle {
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;

    height: 46px !important;
    min-height: 46px !important;
    max-height: 46px !important;

    font-size: 29px !important;
  }


  .sp header .mobile-language-switcher__toggle span {
    font-size: 29px !important;
  }


  .sp header .hamburger {
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;

    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;

    flex: 0 0 38px !important;
  }


  .sp header .hamburger span {
    width: 32px !important;
  }

}


/* =================================================
   電話確認モーダル
================================================= */

.phone-confirm-modal {
  display: none;

  position: fixed;

  inset: 0;

  z-index: 20000;

  align-items: center;
  justify-content: center;

  padding: 20px;

  background: rgba(0, 0, 0, 0.45);
}


.phone-confirm-modal.is-open {
  display: flex;
}


.phone-confirm-modal__box {
  width: 100%;
  max-width: 360px;

  padding: 28px 22px 22px;

  background: #ffffff;

  border-radius: 16px;

  box-shadow: 0 10px 35px rgba(0,0,0,0.2);

  text-align: center;

  font-family:
    'HiraginoMaru',
    'Hiragino Maru Gothic ProN',
    'Hiragino Maru Gothic Pro',
    'M PLUS Rounded 1c',
    sans-serif;
}


.phone-confirm-modal__title {
  margin: 0 0 12px;

  color: #333333;

  font-size: 18px;
  font-weight: normal;
}


.phone-confirm-modal__number {
  margin: 0 0 22px;

  color: #376bb6;

  font-size: 24px;
  line-height: 1.4;

  white-space: nowrap;
}


.phone-confirm-modal__buttons {
  display: flex;

  gap: 10px;

  justify-content: center;
}


.phone-confirm-modal__cancel,
.phone-confirm-modal__call {
  display: flex;

  align-items: center;
  justify-content: center;

  min-height: 46px;

  padding: 10px 18px;

  border-radius: 9px;

  font-family:
    'HiraginoMaru',
    'Hiragino Maru Gothic ProN',
    'Hiragino Maru Gothic Pro',
    'M PLUS Rounded 1c',
    sans-serif;

  font-size: 15px;

  text-decoration: none;

  cursor: pointer;
}


.phone-confirm-modal__cancel {
  border: 1px solid #cccccc;

  background: #ffffff;

  color: #444444;
}


.phone-confirm-modal__call {
  border: 1px solid #376bb6;

  background: #376bb6;

  color: #ffffff;
}


.phone-confirm-modal__call:visited,
.phone-confirm-modal__call:hover {
  color: #ffffff;

  text-decoration: none;
}




/* =================================================
   FOOTER 共通
================================================= */

.footer-2 {
  font-family: 'HiraginoMaru', sans-serif;
  position: relative;
  width: 100%;
  max-width: 100%;
  color: #4d4d4d;
  background-color: #f0f5f9;
  box-sizing: border-box;
}

.footer-2 *,
.footer-2 *::before,
.footer-2 *::after {
  box-sizing: border-box;
}


/* =================================================
   フッター 電話番号切替
================================================= */

.footer-phone-number-ja {
  display: inline !important;
}

.footer-phone-number-international {
  display: none !important;
}

html[data-language="en"] .footer-phone-number-ja,
html[data-language="zh-TW"] .footer-phone-number-ja,
html[data-language="ko"] .footer-phone-number-ja {
  display: none !important;
}

html[data-language="en"] .footer-phone-number-international,
html[data-language="zh-TW"] .footer-phone-number-international,
html[data-language="ko"] .footer-phone-number-international {
  display: inline !important;
}


/* =================================================
   フッター 電話ボタン共通
================================================= */

.footer-phone-button {
  -webkit-appearance: none;
  appearance: none;

  display: inline;

  margin: 0;
  padding: 0;

  border: none;

  background: transparent;

  color: #4d4d4d;

  font-family:
    'HiraginoMaru',
    'Hiragino Maru Gothic ProN',
    'Hiragino Maru Gothic Pro',
    'M PLUS Rounded 1c',
    sans-serif;

  font-size: inherit;
  line-height: inherit;

  text-decoration: none;

  cursor: pointer;
}


/* =================================================
   PC FOOTER
================================================= */

@media screen and (min-width: 1301px) {

  .footer-2 {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 25px 10px 0;
  }

  .footer-2 nav {
    width: 100%;
  }

  .footer-2__list {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto 15px;
    padding: 0;
    list-style: none;
  }

  .logo-and-text {
    display: flex;
    align-items: center;
    flex-shrink: 0;
  }

  #logo_footer {
    margin: 0;
  }

  #logo_footer img {
    display: block;
    width: 140px;
    max-width: 140px;
    height: auto;
    margin: 0;
  }

  .footer-2__text {
    min-width: 280px;
    max-width: 320px;
    font-size: 14px;
    line-height: 1.8;
    text-align: left;
  }

  .footer-2__text a {
    color: #4d4d4d;
    text-decoration: none;
  }

  .clinic-name02 {
    display: inline-block;
    font-size: 28px;
    line-height: 1.4;
    margin-bottom: 5px;
  }


  /* 診療時間表 */

  #table02 {
    width: 560px;
    min-width: 560px;
    max-width: 560px;
    background: #ffffff;
    border-collapse: collapse;
    border-spacing: 0;
    margin: 0 auto;
    font-size: 14px;
  }

  #table02 th,
  #table02 td {
    border: 1px solid #4d4d4d;
    text-align: center;
    padding: 6px 2px;
  }

  #table02 #youbi {
    background-color: #d7e1ef;
  }


  /* 下部ナビ */

  .footer-nav-links {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    list-style: none;
    margin: 10px auto 0;
    padding: 0;
    width: 100%;
  }

  .footer-nav-links li {
    position: relative;
    display: flex;
    align-items: center;
    padding: 15px 22px;
    font-size: 14px;
  }

  .footer-nav-links li:not(.no-border):not(:last-child)::after {
    content: "";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 45%;
    background-color: #4d4d4d;
  }

  .footer-nav-links li.no-border::after {
    display: none !important;
  }

  .footer-link {
    color: #4d4d4d;
    text-decoration: none;
  }


  /* PC LINE */

  .footer-nav-links .footer-line-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    overflow: hidden;
    border-radius: 10px;
  }

  .footer-nav-links .footer-line-link img {
    display: block !important;
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    object-fit: contain !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 10px !important;
  }

}


/* =================================================
   SP / TABLET FOOTER
================================================= */

@media screen and (max-width: 1300px) {

  .footer-2 {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 25px 12px 0;
  }

  .footer-2 nav {
    width: 100%;
  }

  .footer-2__list {
    display: block;
    width: 100%;
    max-width: 600px;
    margin: 0 auto 20px;
    padding: 0;
    list-style: none;
  }

  .logo-and-text {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
  }

  #logo_footer {
    margin: 0;
    flex-shrink: 0;
  }

  #logo_footer img {
    display: block;
    width: 76px !important;
    min-width: 76px !important;
    max-width: 76px !important;
    height: auto !important;
    margin: 0 !important;
  }

  .footer-2__text {
    font-size: 12px;
    line-height: 1.8;
    text-align: left;
    max-width: 320px;
  }

  .footer-2__text a {
    color: #4d4d4d;
    text-decoration: none;
  }

  .clinic-name {
    display: inline-block;
    font-size: 20px;
    line-height: 1.4;
  }


  /* 診療時間表 */

  #table02 {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 600px !important;
    background-color: #ffffff;
    border-collapse: collapse;
    border-spacing: 0;
    margin: 0 auto 20px;
    font-size: 13px;
    table-layout: fixed;
  }

  #table02 th,
  #table02 td {
    border: 1px solid #4d4d4d;
    text-align: center;
    padding: 5px 1px;
    word-break: keep-all;
  }

  #table02 #youbi {
    background-color: #d7e1ef;
  }


  /* SP LINE */

  .footer-2 .line-icon {
    position: absolute !important;

    top: 48px !important;
    right: 50% !important;
    transform: translateX(300px) !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;

    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;
    border-radius: 14px !important;

    z-index: 1000 !important;
  }

  .footer-2 .line-icon img {
    display: block !important;

    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;

    height: 44px !important;
    min-height: 44px !important;
    max-height: 44px !important;

    margin: 0 !important;
    padding: 0 !important;

    object-fit: contain !important;
    border-radius: 14px !important;
  }

}


/* =================================================
   COPYRIGHT
================================================= */

.footer-2__copyright {
  width: calc(100% + 24px);
  margin: 0 -12px;
  padding: 14px 10px;
  text-align: center;
  background: linear-gradient(to left, #03a8dd, #366eb8);
  color: #ffffff;
  font-weight: 200;
  font-size: 12px;
}


/* PC */

@media screen and (min-width: 1301px) {

  .footer-2__copyright {
    width: calc(100% + 20px);
    margin: 0 -10px;
  }

}


/* 小さいスマホ */

@media screen and (max-width: 600px) {

  .footer-2 {
    padding-left: 8px;
    padding-right: 8px;
  }

  .footer-2__list {
    padding-right: 50px;
  }

  .logo-and-text {
    justify-content: flex-start;
    gap: 8px;
  }

  #logo_footer img {
    width: 65px !important;
    min-width: 65px !important;
    max-width: 65px !important;
  }

  .footer-2__text {
    font-size: 11px;
    line-height: 1.7;
  }

  .clinic-name {
    font-size: 18px;
  }

  .footer-2 .line-icon {
    top: 30px !important;
    right: 12px !important;
    transform: none !important;

    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;

    border-radius: 12px !important;
  }

  .footer-2 .line-icon img {
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;

    height: 40px !important;
    min-height: 40px !important;
    max-height: 40px !important;

    border-radius: 12px !important;
  }

  .footer-2__copyright {
    width: calc(100% + 16px);
    margin-left: -8px;
    margin-right: -8px;
  }

}


/* Responsive corrections shared by every page. The header retains its own 1300px boundary. */
@media(max-width:1300px) {
 .sp header .clinic-address,.sp header .clinic-name02 {white-space:normal !important;overflow-wrap:anywhere}
 .sp header .header-clinic-info {flex:1 1 auto !important}
 .sp .sidemenu {max-width:calc(100vw - 24px) !important;height:100dvh !important;overflow-y:auto !important}
 .footer-2 .line-icon {position:static !important;transform:none !important;margin:0 auto 20px !important}
 .footer-2__list {padding-right:0}
 .footer-2__text {min-width:0;overflow-wrap:anywhere}
 .footer-2 #table02 {width:100% !important;max-width:760px !important;min-width:0 !important}
 .footer-2 #table02 td:first-child {width:24%}
}
@media(min-width:601px) and (max-width:1300px) {
 .footer-2__list {max-width:760px}
 .footer-2__text {font-size:14px;max-width:500px}
}
@media(max-width:359px) {
 .sp header .header-top {flex-wrap:wrap !important;justify-content:center !important;row-gap:6px !important}
 .sp header .header-left {flex:1 1 100% !important;justify-content:center !important}
 .sp header .header-clinic-info {flex:0 1 auto !important}
 .sp header .header-contact {margin-left:auto !important}
}
@media(min-width:601px) and (max-width:1300px) {
 .sp header .header-clinic-info {flex:0 1 auto !important}
}
