@charset "UTF-8";

/* ==========================================================================
   Variables
   ========================================================================== */
:root {
  /* Layout */
  --content-max: 700px;
  --container-pad-sp: 10px;
  --container-pad-pc: 0px;
  --header-height: 51px; /* 固定ヘッダー分の余白（padding + logo高さ） */

  /* Colors */
  --color-primary: #00C266;
  /* LINE Green / CTA */
  --color-gold: #C5A065;
  /* Achievement / Accent */
  --color-text: #333333;
  --color-text-light: #666666;
  --color-bg-body: #FFFFFF;
  --color-bg-light: #F9F6F1;
  --color-white: #FFFFFF;

  /* XD Design Colors & User Updates */
  --color-beige: #F0E7DC;
  /* Section Background */
  --color-brown: #796A56;
  /* Title & Borders */
  --color-bronze: #BFB07E;
  /* Point Circle Background */
  --color-teal: #CEEFDB;
  /* Section 04 Point Label (User request) */
  --color-text-gray: #63636A;
  /* Body Text */
  --color-text-dark: #333333;
  /* Section 04 Main Title */
  --color-marker: #F5F183;
  /* Text highlight marker (User request) */

  /* Fonts */
  --font-base: 'Noto Sans JP', sans-serif;
  --font-serif: 'Noto Serif JP', serif;
}
@media (min-width: 768px){
  :root{
    --header-height: 81px; /* 固定ヘッダー分の余白（padding + logo高さ） */
  }
}
/* ==========================================================================
   Reset & Base
   ========================================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 16px;
}

body {
  font-family: var(--font-base);
  color: var(--color-text);
  line-height: 1.6;
  background-color: var(--color-bg-body);
  padding-top: var(--header-height); /* 固定ヘッダー分 */
  /* Text adjustments */
  -webkit-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased;
}

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

a {
  text-decoration: none;
  color: inherit;
  transition: opacity 0.3s;
}

a:hover {
  opacity: 0.8;
}

/* Wrapper */
.wrapper {
  overflow: hidden;
  width: 100%;
}

/* Utilities */
.u-sp-only {
  display: block;
}

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

.container {
  width: 100%;
  padding-left: var(--container-pad-sp);
  padding-right: var(--container-pad-sp);
  margin-left: auto;
  margin-right: auto;
}

@media (min-width: 768px) {
  .container {
    max-width: var(--content-max);
    padding-left: var(--container-pad-pc);
    padding-right: var(--container-pad-pc);
  }
}

/* ==========================================================================
   Header（上部固定・常時表示）
   ========================================================================== */
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100%;
  background: var(--color-white);
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  z-index: 1000;
}

.header__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 12px 0 0px;
  /* SP padding */
}

.header__btn-img {
  margin:4px 0;
}


@media (min-width: 768px) {
  .header__inner {
    max-width: var(--content-max);
    margin: 0 auto;
  }
}

.header__logo-img {
  height: 55px;
  /* SP optimized */
  width: auto;
}

@media (min-width: 768px) {
  .header__logo-img {
    height: 55px;
    /* Larger for PC to match reference */
  }
}

/* Header Button */
.header__btn {
  display: block;
  width: 101px;
  /* Base width for SP */
  transition: opacity 0.3s;
}

.header__btn:hover {
  opacity: 0.8;
}

.header__btn-img {
  width: 100%;
  height: auto;
  display: block;
}

@media (min-width: 768px) {
  .header__btn {
    width: 180px;
    /* Larger for PC */
  }
}

/* ==========================================================================
   FV (First View)
   ========================================================================== */
.fv {
  width: 100%;
  background-color: var(--color-bg-light);
}

.fv__inner {
  width: 100%;
}

.fv__img {
  width: 100%;
  height: auto;
  display: block;
}

/* Utilities for accessibility */
.u-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (min-width: 768px) {
  .fv {
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
  }

  .fv__inner {
    max-width: 100%;
  }
}

/* ==========================================================================
   Achievement Section
   ========================================================================== */
.achievement {
  background-color: #F8F5F0;
  text-align: center;
}

@media (min-width: 768px) {
  .achievement {
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
  }
}

.achievement__container {
  max-width: var(--content-max);
  margin: 0 auto;
}

.achievement__img {
  width: 100%;
  height: auto;
  display: block;
}


/* ==========================================================================
   Shared Background Section (Price + Before/After)
   ========================================================================== */
.section-gray {
  background-color: #F4F4F4;
  padding: 10px 0;
}

@media (min-width: 768px) {
  .section-gray {
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
  }
}

/* Price Area */
.price-area {
  margin-bottom: 32px;
}

.price-img {
  width: 100%;
  height: auto;
  display: block;
}

/* Credit Area (Image) */
.credit-area {
  margin-bottom: 32px;
}

.credit-img {
  width: 100%;
  height: auto;
  display: block;
}

/* Before / After (Adjusted for inclusion in shared section) */
/* .before-after { removed empty rule } */

.ba-grid {
  display: flex;
  justify-content: space-between
}

.ba-item {
  position: relative;
  width: 48%;
  /* 2-up on SP */
}

.ba-img {
  width: 100%;
  display: block;
}

/* Removed .ba-label styles as label is in image */

@media (min-width: 768px) {
  .ba-grid {
    gap: 30px;
  }

  .ba-item {
    width: 45%;
    max-width: 400px;
    /* Limit size on PC */
  }
}

/* ==========================================================================
   Worries Section
   ========================================================================== */
.worries {
  background-image: url('images/bg-texture.jpg');
  background-repeat: repeat;
  background-size: cover;
  padding-top: 61px;
  padding-bottom: 10px;
  position: relative;
  max-width: var(--content-max);
  margin: 0 auto;

}

/* Gray Bar at the bottom */
.worries::after {
  content: "";
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 107px;
  /* Approximate height based on visual balance */
  background-color: #63636A;
  z-index: 1;
}

.worries__container {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 var(--container-pad-sp);
  position: relative;
  z-index: 2;
  /* Ensure content sits above gray bar */
}

.worries__title-wrapper {
  margin-bottom: 30px;
  text-align: center;
}

.worries__title {
  max-width: 100%;
  height: auto;
  display: inline-block;
}

.worries__list {
  margin: 0 auto 40px;
  max-width: 500px;
}

.worries__item {
  display: flex;
  align-items: flex-start;
  margin-bottom: 15px;
  font-weight: 700;
  color: #333;
  line-height: 1.5;
  font-size: 15px;
}

.worries__check {
  width: 20px;
  height: auto;
  margin-right: 12px;
  flex-shrink: 0;
  position: relative;
  top: 3px;
}

.worries__image-wrapper {
  text-align: center;
  font-size: 0;
  /* Ensure image side padding */
}

.worries__women {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
  position: relative;
  /* Visual adjustment if needed, but standard flow works with z-index on container */
}

@media (min-width: 768px) {
  .worries {
    padding-top: 80px;
  }

  .worries::after {
    height: 120px;
    /* Taller bar for PC */
  }

  .worries__container {
    padding: 0 40px;
  }

  .worries__item {
    font-size: 18px;
    margin-bottom: 25px;
  }

  .worries__check {
    width: 28px;
    margin-right: 15px;
    top: 4px;
  }

  .worries__image-wrapper {
    /* Maintain padding on PC if requested, or relax it */
    padding: 0 10px;
  }

  .worries__women {
    max-width: 80%;
  }
}

/* ==========================================================================
   Section 02
   ========================================================================== */
.section02 {
  width: 100%;
  background-color: var(--color-white);
}

@media (min-width: 768px) {
  .section02 {
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
  }
}

.section02__container {
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
}

.section02__img {
  width: 100%;
  height: auto;
  display: block;
}

/* ==========================================================================
   Section Doctor (Image)
   ========================================================================== */
.section-doctor {
  width: 100%;
  background-color: var(--color-white);
  padding-top: 80px !important;
}

.section-doctor__container {
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
}

.section-doctor__img {
  width: 100%;
  height: auto;
  display: block;
}

/* ==========================================================================
   Section Plan (Image)
   ========================================================================== */
.section-plan {
  width: 100%;
  background-color: var(--color-bg-body);
}

.section-plan__container {
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
}

.section-plan__img {
  width: 100%;
  height: auto;
  display: block;
}

/* ==========================================================================
   Section 03
   ========================================================================== */
.section03 {
  width: 100%;
  padding: 45px 0;
  background-color: var(--color-beige);
  /* Beige BG */
  text-align: center;
}

@media (min-width: 768px) {
  .section03 {
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
  }
}

.section03__container {
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 var(--container-pad-sp);
}

/* Header (Title + Decoration) */
.section03__header {
  margin-bottom: 17.7px;
  position: relative;
}

.section03__stars {
  display: flex;
  justify-content: center;
  margin-bottom: 13px;
}

.section03__star {
  width: 19.67vw;
  /* 73.75px at 375px width */
  max-width: 100px;
  /* Logical cap for larger screens if not overridden by PC query */
  height: auto;
}

.section03__title {
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 700;
  line-height: 1.4;
  color: var(--color-brown);
  /* Brown Text */
  letter-spacing: 0.1em;
}

/* Content Box */
.section03__box {
  background-color: var(--color-white);
  border: 1px solid #BFB07E;
  /* User request */
  /* User request Shadow */
  box-shadow: 6px 6px 0 #918353;
  padding: 20px 15px;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
}

/* List Items */
.section03__list {
  display: flex;
  flex-direction: column;
  list-style: none;
  text-align: left;
}

.section03__item {
  display: flex;
  align-items: center;
  padding: 24px 0;
  border-bottom: 4px dotted #707070;
  /* Dotted line separator */
}

.section03__item:first-child {
  padding-top: 0;
}

.section03__item:last-child {
  padding-bottom: 0;
  border-bottom: none;
}

/* Point Circle (Icon) */
.section03__point-wrapper {
  margin-right: 20px;
  flex-shrink: 0;
}

.section03__point-circle {
  width: 52px;
  /* User request */
  height: 52px;
  /* User request */
  background-color: var(--color-bronze);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: var(--color-white);
  line-height: 1;
  font-family: 'Oswald', sans-serif;
  /* User request */
}

.section03__point-label {
  font-size: 11px;
  /* User request */
  font-weight: 400;
  /* Regular */
  letter-spacing: 0.05em;
  margin-bottom: 2px;
}

.section03__point-num {
  font-size: 25px;
  /* User request */
  font-weight: 400;
  /* Regular */
}

/* Point Content */
.section03__lead {
  font-size: 17px;
  font-weight: 700;
  color: var(--color-text-gray);
  /* Updated text color */
  line-height: 1.29;
  letter-spacing: 0.68px;
}

@media (min-width: 768px) {
  .section03 {
    padding: 80px 0;
  }

  .section03__box {
    padding: 50px 40px;
    box-shadow: 10px 10px 0 #918353;
    /* Larger user request shadow */
  }

  .section03__title {
    font-size: 36px;
  }

  .section03__star {
    width: 60px;
  }

  .section03__item {
    padding: 30px 0;
  }

  .section03__lead {
    font-size: 20px;
  }
}

/* ==========================================================================
   Section 04 (Concept)
   ========================================================================== */
.section-concept {
  width: 100%;
  background-color: var(--color-white);
}

@media (min-width: 768px) {
  .section-concept {
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
  }
}

.section-concept__container {
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
}

.section-concept__img {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 20px;
}

/* Concept Point Detail */
.concept-point {
  padding: 0 20px 60px;
  text-align: left;
}

.concept-point__header {
  text-align: center;
}

.concept-point__label {
  display: block;
  font-family: var(--font-serif);
  /* User request */
  font-size: 17px;
  font-weight: bold;
  color: var(--color-teal);
  letter-spacing: 0.34px;
  text-align: left;
  margin-bottom: 30px;
}

.concept-point__title {
  font-family: var(--font-base);
  font-size: 24px;
  font-weight: 700;
  color: #574F45;
  /* User request */
  line-height: 1.5;
  letter-spacing: 0.05em;
  margin-bottom: 40px;
  background: linear-gradient(transparent 60%, var(--color-marker) 60%);
  display: inline;
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.concept-point__body {
  margin-top: 38px;
}

/* POINT.02以降: ラベル直下の余白を20pxに（POINT.01は30pxのまま） */
.section-concept__container:nth-child(2) .concept-point__label,
.section-concept__container:nth-child(3) .concept-point__label,
.section-concept__container:nth-child(4) .concept-point__label {
  margin-bottom: 20px;
}

.section-concept__container:nth-child(2) .concept-point__body,
.section-concept__container:nth-child(3) .concept-point__body,
.section-concept__container:nth-child(4) .concept-point__body {
  margin-top: 20px;
}

.concept-point__sub-title {
  font-family: var(--font-serif);
  /* User request */
  font-size: 23px;
  /* User request */
  font-weight: 600;
  color: #603700;
  /* User request */
  line-height: 150%;
  /* User request */
  border-bottom: 1px solid var(--color-brown);
  padding-bottom: 10px;
  margin-bottom: 26.5px;
  display: flex;
  align-items: flex-start;
  /* Align to top for multi-line text */
  gap: 7px;
}

.concept-point__icon {
  /* User request: 20.42px square */
  flex-shrink: 0;
  margin-top: 6px;
  /* Align with first line */
  width: 20.42px;
  height: 20.42px;
}

.concept-point__text {
  font-size: 17px;
  /* User request */
  color: #414144;
  /* User request */
  line-height: 1.9;
  /* User request (190%) */
  letter-spacing: 0.02em;
  margin-bottom: 30px;
  /* Paragraph spacing */
}

.concept-point__text:last-child {
  margin-bottom: 0;
}

@media (min-width: 768px) {
  .section-concept__container {
    padding: 0 var(--container-pad-pc);
  }

  .concept-point {
    padding: 0 40px 80px;
  }
}

/* Concept Point Detail Image */
.concept-point__detail-img {
  width: 100%;
  height: auto;
  display: block;
  /* Matches section-concept__img spacing or custom logic */
  margin-top: 0;
}

/* ==========================================================================
   Section Sankou（ドクター・料金・クレジット / 375pxデザイン基準）
   ========================================================================== */
.section-sankou {
  width: 100%;
  background-color: var(--color-bg-body);
  padding: 20px 0;
}

@media (min-width: 768px) {
  .section-sankou {
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
  }
}

/* 料金表セクションのみパディングなし */
.section-price {
  padding: 0;
}

.section-credit {
  background-color: #fff;
  padding: 40px 28px 28px; /* 上40px 左右28px 下28px */
}

.section-credit__note {
  margin-top: 30px;
  margin-bottom: 38px;
  font-size: 14px;
  color: #6D6D73;
  font-weight: 500;
}

.section-sankou__container {
  width: 100%;
  max-width: 375px;
  margin: 0 auto;
}

.section-sankou__header {
  text-align: center;
  margin-bottom: 33px;
}

.section-sankou__stars {
  display: flex;
  justify-content: center;
  margin-bottom: 33px;
}

.section-sankou__star {
  width: 19.67vw;
  max-width: 74px;
  height: auto;
}

.section-sankou__title {
  font-family: var(--font-serif);
  font-size: 32px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--color-brown);
  letter-spacing: 0.1em;
}

.section-sankou__img-wrapper {
  width: 100%;
}

/* 料金表リスト（section-price ブロック / 375pxデザイン） */
.section-price__list {
  width: 100%;
  margin: 0 auto;
  background-color: #F6F3EE;
  padding: 29px 12px 45px;
}

.section-price__item {
  margin-bottom: 25px;
}

.section-price__item:last-child {
  margin-bottom: 0;
}

.section-price__category {
  width: 100%;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #E3DBCD;
  color: #6D6255;
  font-family: var(--font-base);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  margin-bottom: 5px;
}

.section-price__price {
  width: 100%;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #FFFFFF;
  color: #4A453E;
  font-family: var(--font-base);
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}

.section-price__amount {
  font-size: 23px;
}

.section-price__tax {
  font-size: 17px;
  padding-left: 4px;
}

/* ドクター紹介・料金表：画像のみ画面幅いっぱい（コンテナからはみ出して表示） */

.section-doctor .section-sankou__img-wrapper,
.section-price .section-sankou__img-wrapper {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

.section-sankou__img {
  width: 100%;
  height: auto;
  display: block;
}

/* 理事長 氏名（ドクター紹介セクション） */
.section-sankou__director {
  text-align: left;
  margin-top: 24px;
  margin-bottom: 21px;
  padding-left: 9.87%; /* 375px幅の時37px相当（37/375） */
}

.section-sankou__director-role {
  font-family: var(--font-serif);
  font-size: 17px;
  line-height: 30px;
  letter-spacing: 0.1em;
  color: #414144;
  margin-right: 13px;
}

.section-sankou__director-name {
  font-family: var(--font-serif);
  font-size: 35px;
  font-weight: 700;
  line-height: 30px;
  letter-spacing: 0.1em;
  color: #414144;
}

/* ドクター紹介：経歴・所属 */
.doctor-profile {
  padding-left: 4%;
  padding-right: 4%;
  margin-bottom: 50px;
}

.doctor-profile__section {
  margin-bottom: 24px;
}

.doctor-profile__section:last-child {
  margin-bottom: 0;
}

.doctor-profile__heading {
  font-family: var(--font-base);
  font-size: 16px;
  font-weight: 700;
  color: #656565;
  background-color: #e8e8e8;
  padding: 0.5em 0.75em;
  margin: 0 0 0.75em;
  line-height: 1.4;
}

.doctor-profile__list {
  font-family: var(--font-base);
  font-size: 14px;
  font-weight: 400;
  color: #414144;
  list-style: none;
  padding-left: 1.25em;
  margin: 0;
  line-height: 1.8;
}

.doctor-profile__list li {
  position: relative;
  margin-bottom: 0.35em;
  padding-left: 0.9em;
}

.doctor-profile__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.9em;
  transform: translateY(-50%);
  width: 0.24em;
  height: 0.24em;
  border-radius: 50%;
  background-color: currentColor;
}

.doctor-profile__list li:last-child {
  margin-bottom: 0;
}

/* ドクター紹介セクション内の concept-point（POINTラベルなし）
   directorとの間は21px（経歴・所属を挟む）、doctor-profile下は50px */
.section-doctor .concept-point__body {
  margin-top: 0;
}

.section-sankou__stars--footer {
  margin-top: 40px;
  margin-bottom: 0;
}

@media (min-width: 768px) {
  .section-sankou {
    padding: 60px 0;
  }

  .section-sankou__container {
    padding: 0 var(--container-pad-pc);
    max-width: var(--content-max);
  }

  /* 料金表はSP/PCともパディングなしのまま */
  .section-price {
    padding: 0;
  }

  .section-sankou__title {
    font-size: 36px;
  }

  .section-sankou__star {
    width: 74px;
  }

  .section-sankou__header {
    margin-bottom: 28px;
  }

  /* PC時：ドクター紹介・料金表の画像最大幅を --content-max に（他項目と同様） */
  .section-doctor .section-sankou__img-wrapper,
  .section-price .section-sankou__img-wrapper {
    width: 100%;
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
  }
}

/* Message & Team Section（だから・訴求・チーム写真） */
.section-message-team {
  margin-top: 55px;
}

@media (min-width: 768px) {
  .section-message-team {
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
  }
}

.section-message-team__img {
  width: 100%;
  max-width: var(--content-max);
  height: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
  vertical-align: top;
}

/* ==========================================================================
   Footer
   ========================================================================== */
/* クリニック情報・診療時間フッター */
.section-clinic-footer {
  margin-top: 0;
}

.section-clinic-footer__inner {
  background-color: #E8F3ED;
  padding: 40px 26px 32px;
}

@media (min-width: 768px) {
  .section-clinic-footer__inner {
    padding-left: 48px;
    padding-right: 48px;
  }

  .section-clinic-footer__table-img {
    max-width: 520px;
  }
}

.section-clinic-footer__inner {
  max-width: var(--content-max);
  margin: 0 auto;
}

/* コピーライトバー（白背景で上部のミントグリーンと分離） */
.section-clinic-footer__copyright-bar {
  background-color: #fff;
  padding: 14px 26px;
  text-align: center;
}

@media (min-width: 768px) {
  .section-clinic-footer__copyright-bar {
    padding-left: 48px;
    padding-right: 48px;
  }
}

.section-clinic-footer__brand {
  text-align: center;
  margin-bottom: 53px;
}

.section-clinic-footer__symbol {
  margin-bottom: 18px;
}

.section-clinic-footer__symbol img {
  width: 100px;
  height: auto;
  display: inline-block;
}

@media (min-width: 768px) {
  .section-clinic-footer__symbol img {
    width: 120px;
  }
}

.section-clinic-footer__logo {
  margin-bottom: 23px;
}

.section-clinic-footer__logo img {
  max-width: 260px;
  width: 100%;
  height: auto;
  display: block;
  margin: 0 auto;
}

@media (min-width: 768px) {
  .section-clinic-footer__logo img {
    max-width: 280px;
  }
}

.section-clinic-footer__tel {
  display: inline-block;
  text-decoration: none;
}

.section-clinic-footer__tel img {
  max-width: 300px;
  width: 100%;
  height: auto;
  display: block;
}

@media (min-width: 768px) {
  .section-clinic-footer__tel img {
    max-width: 320px;
  }
}

.section-clinic-footer__address {
  font-size: 14px;
  color: #473D3D;
  margin: 0;
}

.section-clinic-footer__hours {
  margin-bottom: 24px;
}

.section-clinic-footer__hours-title {
  font-size: 16px;
  font-weight: 700;
  color: #473D3D;
  margin: 0 0 12px 8px;
  padding-left: 14px;
  position: relative;
}

.section-clinic-footer__hours-title::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 15px;
  background-color: #473D3D;
}

.section-clinic-footer__table-wrap {
  overflow-x: auto;
  margin-bottom: 26px;
}

.section-clinic-footer__table-img {
  width: 100%;
  height: auto;
  display: block;
  vertical-align: bottom;
}

.section-clinic-footer__notes {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 13px;
  color: #473D3D;
  line-height: 1.7;
}

.section-clinic-footer__notes li {
  margin-bottom: 4px;
}

.section-clinic-footer__copyright {
  text-align: center;
  font-size: 12px;
  color: #375D48;
  margin: 0;
}

.footer {
  text-align: center;
  padding: 30px 10px;
  background-color: #f0f0f0;
  color: #888;
  font-size: 12px;
}

/* ==========================================================================
   SP用フローティングCTA
   ========================================================================== */
.floating-cta {
  display: none;
}

@media (max-width: 767px) {
  .floating-cta {
    display: block;
    position: fixed;
    left: 4px;
    right: 4px;
    bottom: 3px;
    width: calc(100% - 8px);
    max-width: calc(100vw - 8px);
    z-index: 999;
    transition: transform 0.35s ease-out, opacity 0.35s ease-out;
  }

  .floating-cta__img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  }

  /* 最下部手前で画面外へ退ける */
  .floating-cta.floating-cta--hidden {
    transform: translateY(calc(100% + 33px + 20px));
    opacity: 0;
    pointer-events: none;
  }
}