/* ==========================================================================
   Medical info page — SP layout (Figma node 334:23646, 375px)
   HTML / PC styles unchanged — responsive overrides only
   ========================================================================== */

@media (max-width: 767px) {
  body:has(.medical-info-page) .medical-info-page {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  /* ----- Breadcrumb — hide ----- */
  body:has(.medical-info-page) .medical-info-page > div[class*='w-[1080px]'][class*='py-[10px]'] {
    display: none !important;
  }

  /* ----- Decorative backgrounds (Figma 336:21628) — 背景のみ再表示・位置調整 ----- */
  /* PC用の巨大装飾は一旦非表示。下で SP 用に個別再表示する */
  body:has(.medical-info-page) .medical-info-bg-deco,
  body:has(.medical-info-page) .medical-info-deco,
  body:has(.medical-info-page) .medical-info-main > .absolute.flex {
    display: none !important;
  }

  /*
   * FV 円形写真（image 105）
   * Figma: x:-113 y:188 w:600 h:600（ページ基準 → main 基準 top ≈ 93px）
   */
  body:has(.medical-info-page) .medical-info-main > div[class*='absolute'][class*='bottom-0'] {
    display: block !important;
    position: absolute !important;
    inset: auto !important;
    left: -113px !important;
    top: 93px !important;
    right: auto !important;
    bottom: auto !important;
    width: 600px !important;
    height: 600px !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
    pointer-events: none !important;
    z-index: 1 !important;
    opacity: 0.9 !important;
    background: url('../../assets/images/photo-medical-info-fv-sp.png') center top / cover no-repeat !important;
    /* 円形写真の外周を背景色へ溶かす */
    -webkit-mask-image: radial-gradient(circle at center, #000 42%, rgba(0, 0, 0, 0.55) 58%, transparent 72%) !important;
    mask-image: radial-gradient(circle at center, #000 42%, rgba(0, 0, 0, 0.55) 58%, transparent 72%) !important;
  }

  body:has(.medical-info-page) .medical-info-fv-bg {
    display: block !important;
    position: static !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    top: auto !important;
    transform: none !important;
    background: transparent !important;
  }

  body:has(.medical-info-page) .medical-info-fv-bg img {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
  }

  /*
   * 装飾 blob 共通 — 画像は加工せずそのまま使用。
   * 白キャンバスは mix-blend:multiply で背面（#f5f2ed / 白ヘッダー）に溶かす。
   * ※ opacity を付けると描画が先にフラット化され白い矩形が残る。
   * 縁のフェードは mask のみで行う。
   */
  body:has(.medical-info-page) .medical-info-main > .absolute.flex[class*='left-[-304px]'],
  body:has(.medical-info-page) .medical-info-main > .medical-info-bg-deco[class*='right-[-275'],
  body:has(.medical-info-page) .medical-info-hours-section::before,
  body:has(.medical-info-page) .medical-info-access-section::before,
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section::before,
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section + div:has(> .medical-info-deco)::before {
    mix-blend-mode: multiply !important;
    background-color: transparent !important;
    background-blend-mode: normal !important;
    -webkit-mask-image: radial-gradient(
      ellipse closest-side at center,
      #000 40%,
      rgba(0, 0, 0, 0.5) 62%,
      transparent 92%
    ) !important;
    mask-image: radial-gradient(
      ellipse closest-side at center,
      #000 40%,
      rgba(0, 0, 0, 0.5) 62%,
      transparent 92%
    ) !important;
  }

  /* FV 左右 blob は円形写真の下に回し、写真上の白キャンバス矩形を防ぐ */
  body:has(.medical-info-page) .medical-info-main > .absolute.flex[class*='left-[-304px]'],
  body:has(.medical-info-page) .medical-info-main > .medical-info-bg-deco[class*='right-[-275'] {
    z-index: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-hours-section > .medical-info-deco,
  body:has(.medical-info-page) .medical-info-access-section > .medical-info-deco,
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section > .medical-info-deco,
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section + div > .medical-info-deco {
    /* 白線画アイコン — multiply すると完全に消えるため通常合成 */
    mix-blend-mode: normal !important;
  }

  /*
   * FV 左 blob（image 108）— 青緑系
   * Figma: x:-115 y:162 w:273 h:294
   */
  body:has(.medical-info-page) .medical-info-main > .absolute.flex[class*='left-[-304px]'] {
    display: block !important;
    position: absolute !important;
    inset: auto !important;
    left: -115px !important;
    top: 67px !important;
    right: auto !important;
    width: 273px !important;
    height: 294px !important;
    max-width: none !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: none !important;
    z-index: 0 !important;
    background-image: url('../../assets/images/deco-medical-info-fv-left-sp.png') !important;
    background-position: center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
  }

  body:has(.medical-info-page) .medical-info-main > .absolute.flex[class*='left-[-304px]'] > * {
    display: none !important;
  }

  /*
   * FV 右 blob（image 109）— オレンジ系
   * Figma: x:245 y:429 w:316 h:314
   * PC 右上 orange bg-deco を流用
   */
  body:has(.medical-info-page) .medical-info-main > .medical-info-bg-deco[class*='right-[-275'] {
    display: block !important;
    position: absolute !important;
    inset: auto !important;
    left: auto !important;
    right: -40px !important;
    top: 100px !important;
    width: 316px !important;
    height: 314px !important;
    max-width: none !important;
    transform: none !important;
    opacity: 1 !important;
    pointer-events: none !important;
    z-index: 0 !important;
    background-image: url('../../assets/images/deco-medical-info-fv-right-sp.png') !important;
    background-position: center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
  }

  body:has(.medical-info-page) .medical-info-main > .medical-info-bg-deco[class*='right-[-275'] > * {
    display: none !important;
  }

  /* セクション装飾の土台 */
  body:has(.medical-info-page) .medical-info-hours-section,
  body:has(.medical-info-page) .medical-info-access-section,
  body:has(.medical-info-page) .medical-info-section,
  body:has(.medical-info-page) .medical-info-main > div:has(> .medical-info-deco) {
    position: relative !important;
    overflow: visible !important;
  }

  /*
   * 診療時間 — 左オレンジ blob（image 97 / 106）
   * Figma: left:-150 top≈886（main内）→ セクション相対で左上に配置
   */
  body:has(.medical-info-page) .medical-info-hours-section::before {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    left: -190px !important;
    top: -120px !important;
    width: 424px !important;
    height: 424px !important;
    background-image: url('../../assets/images/deco-medical-info-blob-left-sp.png') !important;
    background-position: center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    opacity: 1 !important;
    pointer-events: none !important;
    z-index: 0 !important;
  }

  /* 診療時間 — 時計アイコン（image 88） */
  body:has(.medical-info-page) .medical-info-hours-section > .medical-info-deco {
    display: block !important;
    position: absolute !important;
    inset: auto !important;
    left: -42px !important;
    top: -20px !important;
    width: 153px !important;
    height: 153px !important;
    max-width: none !important;
    filter: blur(5px) !important;
    opacity: 0.8 !important;
    pointer-events: none !important;
    z-index: 0 !important;
    background-image: url('../../assets/images/deco-medical-info-clock-sp.png') !important;
    background-position: center !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
  }

  body:has(.medical-info-page) .medical-info-hours-section > .medical-info-deco > img {
    display: none !important;
  }

  /*
   * アクセス — 右紫青 blob（image 95 / 107）
   * Figma: left:85 w:501 h:486
   */
  body:has(.medical-info-page) .medical-info-access-section::before {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    left: auto !important;
    right: -220px !important;
    top: -80px !important;
    width: 420px !important;
    height: 420px !important;
    background-image: url('../../assets/images/deco-medical-info-blob-right-sp.png') !important;
    background-position: center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    opacity: 1 !important;
    pointer-events: none !important;
    z-index: 0 !important;
  }

  /* アクセス — ピンアイコン（image 89） */
  body:has(.medical-info-page) .medical-info-access-section > .medical-info-deco {
    display: block !important;
    position: absolute !important;
    inset: auto !important;
    left: auto !important;
    right: -40px !important;
    top: 16px !important;
    width: 155px !important;
    height: 155px !important;
    max-width: none !important;
    filter: blur(5px) !important;
    opacity: 0.8 !important;
    pointer-events: none !important;
    z-index: 0 !important;
    background-image: url('../../assets/images/deco-medical-info-pin-sp.png') !important;
    background-position: center !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
  }

  body:has(.medical-info-page) .medical-info-access-section > .medical-info-deco > img {
    display: none !important;
  }

  /*
   * 電車でお越しの方 — 左オレンジ blob（image 106）
   * Figma: left:-117 w:359 h:356
   */
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section::before {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    left: -160px !important;
    top: -80px !important;
    width: 360px !important;
    height: 360px !important;
    background-image: url('../../assets/images/deco-medical-info-blob-left-sp.png') !important;
    background-position: center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    opacity: 1 !important;
    pointer-events: none !important;
    z-index: 0 !important;
  }

  /* 電車 — 電車アイコン（image 90） */
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section > .medical-info-deco {
    display: block !important;
    position: absolute !important;
    inset: auto !important;
    left: -31px !important;
    top: -22px !important;
    width: 151px !important;
    height: 151px !important;
    max-width: none !important;
    filter: blur(5px) !important;
    opacity: 0.8 !important;
    pointer-events: none !important;
    z-index: 0 !important;
    background-image: url('../../assets/images/deco-medical-info-train-sp.png') !important;
    background-position: center !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
  }

  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section > .medical-info-deco > img {
    display: none !important;
  }

  /*
   * お車でお越しの方 — 右紫青 blob（image 107）
   * Figma: left:110（はみ出し右） w:406 h:441
   */
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section + div:has(> .medical-info-deco)::before {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    left: auto !important;
    right: -180px !important;
    top: -40px !important;
    width: 400px !important;
    height: 440px !important;
    background-image: url('../../assets/images/deco-medical-info-blob-right-sp.png') !important;
    background-position: center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    opacity: 1 !important;
    pointer-events: none !important;
    z-index: 0 !important;
  }

  /* お車 — 車アイコン（image 91） */
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section + div > .medical-info-deco {
    display: block !important;
    position: absolute !important;
    inset: auto !important;
    left: auto !important;
    right: -36px !important;
    top: 36px !important;
    width: 144px !important;
    height: 144px !important;
    max-width: none !important;
    filter: blur(5px) !important;
    opacity: 0.8 !important;
    pointer-events: none !important;
    z-index: 0 !important;
    background-image: url('../../assets/images/deco-medical-info-car-sp.png') !important;
    background-position: center !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
  }

  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section + div > .medical-info-deco > img {
    display: none !important;
  }

  /* 本文を背景より前面に（レイアウトは変更しない） */
  body:has(.medical-info-page) .medical-info-hours-section > :not(.medical-info-deco),
  body:has(.medical-info-page) .medical-info-access-section > :not(.medical-info-deco),
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section > :not(.medical-info-deco),
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section + div > :not(.medical-info-deco) {
    position: relative !important;
    z-index: 1 !important;
  }

  body:has(.medical-info-page) .medical-info-main::before {
    display: none !important;
  }

  /* ----- H1 KV (Figma 334:28001) ----- */
  body:has(.medical-info-page) .medical-info-main > div[class*='h-[200px]'] {
    background: transparent !important;
    height: 134px !important;
    min-height: 134px !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    margin-top: 0 !important;
    box-sizing: border-box !important;
    position: relative !important;
    z-index: 2 !important;
    text-align: center !important;
    flex-shrink: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-main > div[class*='h-[200px]'] [class*='text-[60px]'] {
    color: var(--corlor-1, #8e5572) !important;
    text-align: center !important;
    font-family: 'Zen Maru Gothic', sans-serif !important;
    font-size: 36px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: normal !important;
    letter-spacing: 1.8px !important;
  }

  body:has(.medical-info-page) .medical-info-main > div[class*='h-[200px]'] [class*='text-[60px]'] p {
    color: inherit !important;
    text-align: inherit !important;
    font-family: inherit !important;
    font-size: inherit !important;
    font-style: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
  }

  /* ----- Main column ----- */
  body:has(.medical-info-page) .medical-info-main,
  body:has(.medical-info-page) .medical-info-main[class*='gap-[200px]'] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-top: 0 !important;
    padding-inline: 40px !important;
    padding-bottom: 0 !important;
    gap: 60px !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  body:has(.medical-info-page) .medical-info-main > :not(.medical-info-fv-bg):not(.absolute):not(.site-footer):not([class*="-faq-section"]) {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    position: relative !important;
    z-index: 1 !important;
  }

  body:has(.medical-info-page) .medical-info-intro-section {
    padding-top: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-intro-section,
  body:has(.medical-info-page) .medical-info-hours-section,
  body:has(.medical-info-page) .medical-info-access-section,
  body:has(.medical-info-page) .medical-info-facility-section,
  body:has(.medical-info-page) .medical-info-section,
  body:has(.medical-info-page) .medical-info-main > div[class*='gap-[60px]']:not(.site-footer) {
    gap: 40.323px !important;
  }

  /* ----- Section headings (h2 block) ----- */
  body:has(.medical-info-page) .medical-info-main [class*='flex-col'][class*='gap-px'][class*='items-center'][class*='justify-center'][class*='max-w-[1080px]'][class*='min-w-[300px]'] {
    display: flex !important;
    min-width: 201.613px !important;
    max-width: 725.806px !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 0.672px !important;
    align-self: stretch !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  body:has(.medical-info-page) .medical-info-main [class*='h-[59px]'][class*='w-[120px]'] {
    height: 39.651px !important;
    width: 80.645px !important;
  }

  body:has(.medical-info-page) .medical-info-main [class*='text-[16px]'][class*='tracking-[0.8px]'] {
    font-size: 10.75px !important;
    letter-spacing: 0.5375px !important;
  }

  body:has(.medical-info-page) .medical-info-main [class*='text-[16px]'][class*='tracking-[0.8px]'] p {
    font-size: inherit !important;
    letter-spacing: inherit !important;
  }

  body:has(.medical-info-page) .medical-info-main [class*='flex-col'][class*='gap-px'] [class*='pb-[20px]'] {
    padding-bottom: 13.441px !important;
  }

  body:has(.medical-info-page) .medical-info-main [class*='flex-col'][class*='gap-px'] [class*='min-w-[300px]'],
  body:has(.medical-info-page) .medical-info-main [class*='flex-col'][class*='gap-px'] [class*='inline-grid'][class*='min-w-[300px]'] {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body:has(.medical-info-page) .medical-info-main [class*='items-start'][class*='justify-center'] {
    align-items: center !important;
    justify-content: center !important;
  }

  body:has(.medical-info-page) .medical-info-main [class*='flex-col'][class*='gap-px'] [class*='inline-grid'][class*='place-items-start'] {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    place-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  /* Section titles — match TOP (top.css) */
  body:has(.medical-info-page) .medical-info-main [class*='text-[46px]'][class*='text-[#8e5572]'],
  body:has(.medical-info-page) .medical-info-main [class*='text-[46px]'][class*='text-[#8e5572]'] p,
  body:has(.medical-info-page) .medical-info-main [class*='text-[46px]'][class*='text-[#8e5572]'] span {
    font-size: 15px !important;
    line-height: 34.95px !important;
    letter-spacing: 2.42px !important;
    word-break: keep-all !important;
    overflow-wrap: anywhere !important;
  }

  body:has(.medical-info-page) .medical-info-main [class*='leading-[62px]'] {
    line-height: 34.95px !important;
  }

  /* ----- Body copy ----- */
  body:has(.medical-info-page) .medical-info-main > [class*='text-[24px]'],
  body:has(.medical-info-page) .medical-info-intro-section > [class*='text-[24px]'],
  body:has(.medical-info-page) .medical-info-facility-section > [class*='text-[24px]'],
  body:has(.medical-info-page) .medical-info-access-section > [class*='text-[24px]'] {
    font-size: 15px !important;
    line-height: 25.538px !important;
    letter-spacing: 1.6129px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    text-align: left !important;
  }

  body:has(.medical-info-page) .medical-info-access-section > [class*='text-[24px]'] {
    text-align: center !important;
  }

  body:has(.medical-info-page) .medical-info-facility-section > [class*='text-[24px]'] {
    text-align: center !important;
  }

  body:has(.medical-info-page) .medical-info-main [class*='leading-[38px]'] {
    line-height: 25.538px !important;
  }

  /* ----- Clinic info table (Figma — horizontal rows) ----- */
  body:has(.medical-info-page) .medical-info-table {
    gap: 3.36px !important;
    align-items: stretch !important;
    width: 100% !important;
  }

  body:has(.medical-info-page) .medical-info-row {
    flex-direction: row !important;
    align-items: stretch !important;
    height: auto !important;
    min-height: 39.882px !important;
    width: 100% !important;
    border-radius: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-row > div[class*='flex-[1_0_0]']:first-child {
    flex: 0 0 68px !important;
    width: 68px !important;
    max-width: 68px !important;
  }

  body:has(.medical-info-page) .medical-info-row > div[class*='flex-[1_0_0]']:last-child {
    flex: 1 1 0% !important;
    width: auto !important;
    min-width: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-row [class*='bg-[#eae0e5]'] {
    max-width: 68px !important;
    padding: 13.441px 4px !important;
    border-radius: 6.72px 0 0 6.72px !important;
  }

  body:has(.medical-info-page) .medical-info-row [class*='bg-[rgba(255,255,255,0.9)]'],
  body:has(.medical-info-page) .medical-info-row [class*='bg-white'] {
    padding: 13.441px 6px !important;
    border-radius: 0 6.72px 6.72px 0 !important;
    background: #fff !important;
  }

  body:has(.medical-info-page) .medical-info-table [class*='text-[16px]'],
  body:has(.medical-info-page) .medical-info-table [class*='text-[16px]'] p,
  body:has(.medical-info-page) .medical-info-table :is(p, span),
  body:has(.medical-info-page) .medical-info-row [class*='text-[16px]'],
  body:has(.medical-info-page) .medical-info-row [class*='text-[16px]'] p,
  body:has(.medical-info-page) .medical-info-row :is(p, span) {
    font-size: 12px !important;
    letter-spacing: 0 !important;
    line-height: normal !important;
    white-space: normal !important;
  }

  /* 医院名は1行で収める */
  body:has(.medical-info-page) .medical-info-row:first-child [class*='bg-white'] p,
  body:has(.medical-info-page) .medical-info-row:first-child [class*='bg-[rgba(255,255,255,0.9)]'] p {
    white-space: nowrap !important;
  }

  /* ----- Medical hours — TOP と同様に SP 画像へ差し替え ----- */
  body:has(.medical-info-page) .medical-info-hours-section [class*='bg-[rgba(255,255,255,0.9)]'][class*='overflow-clip'] {
    width: 100% !important;
    max-width: 310px !important;
    margin-inline: auto !important;
    padding: 0 !important;
    gap: 0 !important;
    overflow: visible !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-sizing: border-box !important;
    display: block !important;
    position: relative !important;
  }

  /* PC用のテキスト表・注記は非表示 */
  body:has(.medical-info-page) .medical-info-hours-section [class*='bg-[rgba(255,255,255,0.9)]'][class*='overflow-clip'] > * {
    display: none !important;
  }

  body:has(.medical-info-page) .medical-info-hours-section [class*='bg-[rgba(255,255,255,0.9)]'][class*='overflow-clip']::before {
    content: '' !important;
    display: block !important;
    width: 100% !important;
    aspect-ratio: 506 / 470 !important;
    background: url('../../assets/images/table-medical-hours-sp.png') center / contain no-repeat !important;
  }

  /* ----- Access map ----- */
  body:has(.medical-info-page) .medical-info-map,
  body:has(.medical-info-page) .access-map {
    border-radius: 6.72px !important;
    overflow: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    line-height: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-map iframe,
  body:has(.medical-info-page) .access-map iframe {
    display: block !important;
    height: 260.753px !important;
    min-height: 260.753px !important;
    max-height: 260.753px !important;
    border-radius: 6.72px !important;
  }

  /* ----- Train / car sections ----- */
  body:has(.medical-info-page) .medical-info-section[class*='flex-wrap'] {
    flex-direction: column !important;
    align-items: center !important;
    gap: 40.323px !important;
    width: 100% !important;
  }

  body:has(.medical-info-page) .medical-info-section[class*='flex-wrap'] > [class*='text-[18px]'],
  body:has(.medical-info-page) .medical-info-main > div[class*='gap-[60px]'] > [class*='text-[18px]'] {
    font-size: 15px !important;
    line-height: 18.817px !important;
    letter-spacing: 1.2097px !important;
    max-width: 100% !important;
    min-width: 0 !important;
    width: 100% !important;
    text-align: left !important;
  }

  body:has(.medical-info-page) .medical-info-section[class*='flex-wrap'] > [class*='text-[18px]'] p,
  body:has(.medical-info-page) .medical-info-main > div[class*='gap-[60px]'] > [class*='text-[18px]'] p {
    font-size: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
  }

  /* ----- Parking table ----- */
  body:has(.medical-info-page) .medical-info-parking-table {
    width: 100% !important;
    max-width: 100% !important;
    align-items: stretch !important;
    gap: 0 !important;
    overflow-x: hidden !important;
  }

  body:has(.medical-info-page) .medical-info-parking-table > [class*='h-[51px]'],
  body:has(.medical-info-page) .medical-info-parking-table > [class*='h-[71px]'],
  body:has(.medical-info-page) .medical-info-parking-table > [class*='h-[93px]'],
  body:has(.medical-info-page) .medical-info-parking-table > [class*='h-[115px]'] {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    align-items: stretch !important;
  }

  body:has(.medical-info-page) .medical-info-parking-table > [class*='h-'] > * {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    height: auto !important;
    align-self: stretch !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px 3px !important;
    box-sizing: border-box !important;
  }

  /* 台数列は狭く */
  body:has(.medical-info-page) .medical-info-parking-table > [class*='h-'] > *:nth-child(2) {
    flex: 0 0 48px !important;
    max-width: 48px !important;
  }

  /* 時間と料金列は広め */
  body:has(.medical-info-page) .medical-info-parking-table > [class*='h-'] > *:nth-child(3) {
    flex: 1.7 1 0 !important;
  }

  body:has(.medical-info-page) .medical-info-parking-table [class*='text-[16px]'],
  body:has(.medical-info-page) .medical-info-parking-table [class*='text-[16px]'] p,
  body:has(.medical-info-page) .medical-info-parking-table :is(p, span) {
    display: block !important;
    flex: 0 1 auto !important;
    width: 100% !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    text-align: center !important;
  }

  /* 時間と料金列は左揃え */
  body:has(.medical-info-page) .medical-info-parking-table > [class*='h-'] > *:nth-child(3),
  body:has(.medical-info-page) .medical-info-parking-table > [class*='h-'] > *:nth-child(3) p,
  body:has(.medical-info-page) .medical-info-parking-table > [class*='h-'] > *:nth-child(3) span {
    align-items: flex-start !important;
    text-align: left !important;
  }

  body:has(.medical-info-page) .medical-info-parking-table [class*='bg-[#8e5572]'] [class*='text-[16px]'],
  body:has(.medical-info-page) .medical-info-parking-table [class*='bg-[#8e5572]'] p {
    font-size: 12px !important;
    line-height: 1.3 !important;
    color: #fff !important;
  }

  /* ヘッダー「時間と料金」は中央のまま */
  body:has(.medical-info-page) .medical-info-parking-table > [class*='h-[51px]'] > *:nth-child(3),
  body:has(.medical-info-page) .medical-info-parking-table > [class*='h-[51px]'] > *:nth-child(3) p {
    align-items: center !important;
    text-align: center !important;
  }

  /* ----- Facility section (centered) ----- */
  body:has(.medical-info-page) .medical-info-facility-section {
    align-items: center !important;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body:has(.medical-info-page) .medical-info-facility-section > * {
    width: 100% !important;
    max-width: 100% !important;
    align-self: center !important;
  }

  body:has(.medical-info-page) .medical-info-facility-section [class*='flex-col'][class*='gap-px'] {
    align-items: center !important;
    text-align: center !important;
  }

  /* ----- Facility cards (circular) ----- */
  body:has(.medical-info-page) .medical-info-facility-row {
    flex-direction: column !important;
    align-items: center !important;
    align-content: center !important;
    justify-content: center !important;
    gap: 40px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row > div[class*='flex-col'][class*='gap-[20px]'] {
    gap: 13.441px !important;
    align-items: center !important;
    align-self: center !important;
    margin-inline: auto !important;
    width: 174.731px !important;
    max-width: 174.731px !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row .medical-info-facility-photo,
  body:has(.medical-info-page) .medical-info-facility-row [class*='inline-grid'],
  body:has(.medical-info-page) .medical-info-facility-row [class*='inline-grid'][class*='place-items-start'] {
    display: block !important;
    width: 174.731px !important;
    height: 174.731px !important;
    min-width: 174.731px !important;
    min-height: 174.731px !important;
    max-width: 174.731px !important;
    max-height: 174.731px !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    position: relative !important;
    flex: 0 0 auto !important;
    align-self: center !important;
    margin-inline: auto !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row [class*='inline-grid'] > div {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    mask: none !important;
    -webkit-mask: none !important;
    mask-image: none !important;
    -webkit-mask-image: none !important;
    border-radius: 50% !important;
    overflow: hidden !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row [class*='inline-grid'] img,
  body:has(.medical-info-page) .medical-info-facility-row [class*='inline-grid'] img[class*='rounded-'] {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 100% !important;
    height: auto !important;
    min-height: 100% !important;
    max-width: none !important;
    transform: translate(-50%, -50%) !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row [class*='inline-grid'] img[class*='object-bottom'] {
    top: 50% !important;
    bottom: auto !important;
    left: 50% !important;
    width: 100% !important;
    min-height: 100% !important;
    transform: translate(-50%, -50%) !important;
    object-position: center !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row .medical-info-facility-photo__img {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 100% !important;
    height: auto !important;
    min-height: 100% !important;
    max-width: none !important;
    transform: translate(-50%, -50%) !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row [class*='text-[20px]'][class*='text-[#8e5572]'] {
    font-size: 15px !important;
    line-height: 16.129px !important;
    letter-spacing: 0.672px !important;
    height: auto !important;
    min-height: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row [class*='text-[20px]'][class*='text-[#8e5572]'] p {
    font-size: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
  }

  /* ----- Footer — Figma SP (patterns from top.css) ----- */

  body:has(.medical-info-page) .site-footer {
    max-width: 100% !important;
    width: 100% !important;
    min-width: 0 !important;
    padding-top: 134px !important;
    padding-inline: 0 !important;
    padding-bottom: 40px !important;
    gap: 60px !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='aspect-[3050'] {
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
    align-self: stretch !important;
    border-radius: 0 !important;
  }

  /* 医院外観写真 — 左右余白（マップは全幅のまま） */
  body:has(.medical-info-page) .site-footer > [class*='aspect-[1944'] {
    width: calc(100% - 80px) !important;
    max-width: calc(100% - 80px) !important;
    margin-inline: 40px !important;
    align-self: center !important;
    border-radius: 10px !important;
    overflow: hidden !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='aspect-[3050'] img {
    border-radius: 0 !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='aspect-[1944'] img {
    border-radius: 10px !important;
  }

  body:has(.medical-info-page) .site-footer > :not([class*='aspect-[3050']):not([class*='aspect-[1944']) {
    padding-inline: 40px !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='gap-[36px]'] {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    align-content: flex-start !important;
    align-items: flex-start !important;
    gap: 24px !important;
    white-space: normal !important;
    text-align: left !important;
    letter-spacing: 1.075px !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='gap-[36px]'] > div {
    flex: 0 1 calc(50% - 12px) !important;
    min-width: 0 !important;
    max-width: calc(50% - 12px) !important;
    box-sizing: border-box !important;
    text-align: left !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='gap-[36px]'] [class*='items-center'] {
    align-items: flex-start !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='gap-[36px]'] [class*='text-center'] {
    text-align: left !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='gap-[36px]'] [class*='gap-[20px]'] {
    gap: 13.44px !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='gap-[36px]'] .site-footer-link,
  body:has(.medical-info-page) .site-footer > [class*='gap-[36px]'] .site-footer-link p {
    text-align: left !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='gap-[36px]'] > div:first-child {
    font-family: 'Noto Sans JP', 'Noto Sans CJK JP', 'Hiragino Sans', sans-serif !important;
    font-weight: 700 !important;
    color: var(--color-primary, #8e5572) !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='gap-[36px]'] > div:first-child .site-footer-link p {
    font-family: inherit !important;
    font-weight: 700 !important;
    font-style: normal !important;
    color: var(--color-primary, #8e5572) !important;
    font-size: 12px !important;
    line-height: 22.849px !important;
    letter-spacing: 1.075px !important;
    text-decoration: none !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='gap-[36px]'] p[class*='text-[#8e5572]'][class*='text-[16px]'] {
    color: var(--corlor-1, var(--color-primary, #8e5572)) !important;
    font-family: 'Noto Sans JP', 'Noto Sans CJK JP', 'Hiragino Sans', sans-serif !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 700 !important;
    line-height: 17.473px !important;
    letter-spacing: 1.075px !important;
    text-decoration: none !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='gap-[36px]'] p[class*='text-[#636171]'],
  body:has(.medical-info-page) .site-footer > [class*='gap-[36px]'] p[class*='text-[14px]'][class*='underline'] {
    color: var(--colore-2, var(--p, #636171)) !important;
    font-family: 'Noto Sans JP', 'Noto Sans CJK JP', 'Hiragino Sans', sans-serif !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 17.473px !important;
    letter-spacing: 0.941px !important;
    text-decoration-line: underline !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='gap-[36px]'] p[class*='text-[#636171]'] span {
    color: var(--colore-2, var(--p, #636171)) !important;
    font-family: 'Noto Sans JP', 'Noto Sans CJK JP', 'Hiragino Sans', sans-serif !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 400 !important;
    line-height: 17.473px !important;
    letter-spacing: 0.941px !important;
  }

  body:has(.medical-info-page) .site-footer [class*='max-w-[840px]'] {
    max-width: 100% !important;
    gap: 20px !important;
    align-items: center !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[41px_60px]'] {
    flex-direction: column !important;
    align-items: center !important;
    gap: 24px !important;
    width: 100% !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[41px_60px]'] [class*='px-[30px]'] {
    padding-inline: 0 !important;
    width: 100% !important;
    align-items: center !important;
  }

  body:has(.medical-info-page) .site-footer [class*='aspect-[3635'] {
    min-height: 0 !important;
    min-width: 0 !important;
    max-width: 260px !important;
    width: 100% !important;
    margin-inline: auto !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[41px_60px]'] [class*='text-[18px]'] {
    font-size: 14px !important;
    line-height: 22px !important;
    letter-spacing: 0.7px !important;
    text-align: center !important;
    max-width: 100% !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[0px_32px]'] {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;
    width: 100% !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[0px_32px]'] > [class*='flex-col'] {
    align-items: center !important;
    min-width: 0 !important;
    width: 100% !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[0px_32px]'] [class*='text-[23px]'] {
    color: var(--corlor-1, var(--color-primary, #8e5572)) !important;
    text-align: center !important;
    font-family: 'Zen Maru Gothic', 'Hiragino Maru Gothic ProN', sans-serif !important;
    font-size: 15.457px !important;
    font-style: normal !important;
    font-weight: 900 !important;
    line-height: normal !important;
    letter-spacing: 0.773px !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[0px_32px]'] [class*='text-[16px]'][class*='text-[color:var(--p'] {
    font-size: 12px !important;
    line-height: 18px !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[0px_32px]'] [class*='inline-grid'] {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[0px_32px]'] [class*='inline-grid'] [class*='col-1'] {
    position: relative !important;
    margin: 0 !important;
    width: auto !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[0px_32px]'] [class*='aspect-[45'] {
    width: 28px !important;
    height: 30px !important;
    margin-top: 0 !important;
    flex-shrink: 0 !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[0px_32px]'] a[href^='tel:'][class*='text-[42px]'],
  body:has(.medical-info-page) .site-footer [class*='gap-[0px_32px]'] [class*='text-[42px]'][class*='text-[#8e5572]'] {
    color: var(--corlor-1, var(--color-primary, #8e5572)) !important;
    font-family: 'Zen Maru Gothic', 'Hiragino Maru Gothic ProN', sans-serif !important;
    font-size: 28.226px !important;
    font-style: normal !important;
    font-weight: 900 !important;
    line-height: normal !important;
    letter-spacing: 1.411px !important;
    width: auto !important;
    margin-left: 0 !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[0px_32px]'] a[href^='tel:'] p {
    color: inherit !important;
    font-family: inherit !important;
    font-size: inherit !important;
    font-style: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[17px]'] {
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[17px]'] > [class*='inline-grid'] {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 12px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[17px]'] [class*='col-1'] {
    position: relative !important;
    margin: 0 !important;
    grid-column: unset !important;
    grid-row: unset !important;
    flex-shrink: 0 !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[17px]'] [class*='h-[36px]'][class*='w-[176px]'] {
    width: 140px !important;
    height: 29px !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[17px]'] [class*='h-[44px]'][class*='w-[127px]'] {
    width: 100px !important;
    height: 35px !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[17px]'] [class*='h-[36px]'][class*='w-[107px]'] {
    width: 85px !important;
    height: 29px !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[17px]'] [class*='size-[35px]'],
  body:has(.medical-info-page) .site-footer [class*='gap-[17px]'] [class*='size-[36px]'] {
    width: 30px !important;
    height: 30px !important;
  }

  body:has(.medical-info-page) .site-footer [class*='min-w-[300px]'] {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body:has(.medical-info-page) .site-footer [class*='max-w-[390px]'],
  body:has(.medical-info-page) .site-footer [class*='max-w-[404px]'] {
    max-width: 100% !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='max-w-[840px]'] > [class*='text-[14px]'] {
    font-size: 12px !important;
    line-height: 22px !important;
    letter-spacing: 1.2px !important;
  }
}

/* ==========================================================================
   Medical info page — Tablet layout (768px–1024px)
   ========================================================================== */

@media (min-width: 768px) and (max-width: 1024px) {
  body:has(.medical-info-page) .medical-info-page {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body:has(.medical-info-page) .medical-info-page > div[class*='w-[1080px]'][class*='py-[10px]'] {
    display: none !important;
  }

  /*
   * FV / 装飾背景 — PC 構図を維持しつつ TB 向けに縮小表示
   * （SP 用のアセット差し替え・非表示は max-width:767 のみ）
   */
  body:has(.medical-info-page) .medical-info-main {
    position: relative !important;
    overflow: visible !important;
  }

  body:has(.medical-info-page) .medical-info-main::before {
    display: none !important;
  }

  /*
   * FV 円形写真 — PC は sticky + 親の超高さ。
   * TB でも sticky のままだと下部まで張り付くため、親を固定し absolute に切り替え。
   * PC: size-[1500px] → TB: 900px（大人の矯正 TB と同系統）
   */
  body:has(.medical-info-page) .medical-info-main > div[class*='absolute'][class*='bottom-0'] {
    display: block !important;
    position: absolute !important;
    inset: auto !important;
    left: 50% !important;
    top: 20px !important;
    right: auto !important;
    bottom: auto !important;
    width: 900px !important;
    height: 900px !important;
    max-width: none !important;
    margin: 0 0 0 -450px !important;
    transform: none !important;
    pointer-events: none !important;
    z-index: -1 !important;
    background: none !important;
    -webkit-mask-image: none !important;
    mask-image: none !important;
  }

  body:has(.medical-info-page) .medical-info-fv-bg {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    transform: none !important;
    translate: none !important;
    pointer-events: none !important;
    z-index: -1 !important;
    background: transparent !important;
  }

  body:has(.medical-info-page) .medical-info-fv-bg img {
    display: block !important;
    visibility: visible !important;
    opacity: 0.9 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    object-fit: cover !important;
    object-position: center top !important;
  }

  /* 左右・中盤の blob（PCアセットを縮小）— 最背面 */
  body:has(.medical-info-page) .medical-info-bg-deco,
  body:has(.medical-info-page) .medical-info-main > .absolute.flex {
    display: flex !important;
    pointer-events: none !important;
    z-index: -1 !important;
    transform: scale(0.55) !important;
    transform-origin: center center !important;
  }

  /* FV 左 blob — PC 同様に上部へ */
  body:has(.medical-info-page) .medical-info-main > .absolute.flex[class*='left-[-304px]'] {
    left: -180px !important;
    top: -90px !important;
    transform: scale(0.58) !important;
    transform-origin: top left !important;
  }

  /* FV 右オレンジ blob */
  body:has(.medical-info-page) .medical-info-main > .medical-info-bg-deco[class*='right-[-275'] {
    right: -160px !important;
    top: -40px !important;
    left: auto !important;
    transform: scale(0.55) !important;
    transform-origin: top right !important;
  }

  body:has(.medical-info-page) .medical-info-bg-deco > *,
  body:has(.medical-info-page) .medical-info-main > .absolute.flex > * {
    display: block !important;
    visibility: visible !important;
  }

  body:has(.medical-info-page) .medical-info-bg-deco img,
  body:has(.medical-info-page) .medical-info-main > .absolute.flex img {
    mix-blend-mode: multiply !important;
    opacity: 0.5 !important;
  }

  /* FV 円の外周を背景色へ少し溶かす（PC の柔らかい見え方に近づける） */
  body:has(.medical-info-page) .medical-info-fv-bg {
    -webkit-mask-image: radial-gradient(circle at center, #000 58%, transparent 78%) !important;
    mask-image: radial-gradient(circle at center, #000 58%, transparent 78%) !important;
  }

  /* セクション装飾（時計・ピン・電車・車）— やや縮小＆最背面 */
  body:has(.medical-info-page) .medical-info-deco {
    display: block !important;
    pointer-events: none !important;
    z-index: -1 !important;
    width: 240px !important;
    height: 240px !important;
    max-width: none !important;
    filter: blur(5px) !important;
  }

  body:has(.medical-info-page) .medical-info-hours-section,
  body:has(.medical-info-page) .medical-info-access-section,
  body:has(.medical-info-page) .medical-info-section,
  body:has(.medical-info-page) .medical-info-main > div:has(> .medical-info-deco) {
    position: relative !important;
    overflow: visible !important;
    isolation: isolate !important;
  }

  /* 本文・見出しは装飾より前面 */
  body:has(.medical-info-page) .medical-info-hours-section > :not(.medical-info-deco),
  body:has(.medical-info-page) .medical-info-access-section > :not(.medical-info-deco),
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section > :not(.medical-info-deco),
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section + div > :not(.medical-info-deco),
  body:has(.medical-info-page) .medical-info-facility-section > :not(.medical-info-deco),
  body:has(.medical-info-page) .medical-info-main > :not(.absolute):not(.medical-info-bg-deco):not(.medical-info-fv-bg) {
    position: relative !important;
    z-index: 1 !important;
  }

  body:has(.medical-info-page) .medical-info-deco img {
    display: block !important;
    visibility: visible !important;
    opacity: 0.8 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    position: relative !important;
    z-index: 1 !important;
  }

  body:has(.medical-info-page) .medical-info-hours-section > .medical-info-deco {
    left: -20px !important;
    top: -56px !important;
  }

  body:has(.medical-info-page) .medical-info-hours-section > .medical-info-deco img {
    opacity: 0.92 !important;
  }

  body:has(.medical-info-page) .medical-info-access-section > .medical-info-deco {
    left: auto !important;
    right: -10px !important;
    top: -56px !important;
  }

  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section > .medical-info-deco {
    left: -28px !important;
    top: -60px !important;
  }

  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section + div > .medical-info-deco {
    left: auto !important;
    right: -4px !important;
    top: -64px !important;
    width: 220px !important;
    height: 220px !important;
  }

  /*
   * アクセス / 電車 / お車 — イラスト下の色 blob
   * PC は main 内 absolute（top 固定）だが、TB はセクション間隔が詰まるためずれる。
   * セクション相対の ::before に載せ替え（診療時間の水彩と同じ考え方）
   */
  body:has(.medical-info-page) .medical-info-access-section > .medical-info-deco::before,
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section > .medical-info-deco::before,
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section + div > .medical-info-deco::before {
    content: '' !important;
    position: absolute !important;
    inset: -28% !important;
    z-index: 0 !important;
    pointer-events: none !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    mix-blend-mode: multiply !important;
    opacity: 1 !important;
  }

  /* アクセス・お車 — 青紫 blob */
  body:has(.medical-info-page) .medical-info-access-section > .medical-info-deco::before,
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section + div > .medical-info-deco::before {
    background-image: url('../../assets/images/9a295acd5ecad23e9d749a25bc652f40db6c831d.png') !important;
  }

  /* 電車 — オレンジ blob */
  body:has(.medical-info-page) .medical-info-access-section + .medical-info-section > .medical-info-deco::before {
    background-image: url('../../assets/images/deco-blob-orange.png') !important;
  }

  /* PC 固定 top の中盤 blob は TB では位置がずれるため非表示（上の ::before で代替） */
  body:has(.medical-info-page) .medical-info-main > .absolute.flex[class*='top-[1933'],
  body:has(.medical-info-page) .medical-info-main > .absolute.flex[class*='top-[3311'],
  body:has(.medical-info-page) .medical-info-bg-deco[class*='top-[2980'] {
    display: none !important;
  }

  /* H1 */
  body:has(.medical-info-page) .medical-info-main > div[class*='h-[200px]'] {
    background: transparent !important;
    height: 160px !important;
    min-height: 160px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-inline: 0 !important;
    box-sizing: border-box !important;
    position: relative !important;
    z-index: 2 !important;
    text-align: center !important;
    flex-shrink: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-main > div[class*='h-[200px]'] [class*='text-[60px]'],
  body:has(.medical-info-page) .medical-info-main > div[class*='h-[200px]'] [class*='text-[60px]'] p {
    color: #8e5572 !important;
    font-family: 'Zen Maru Gothic', sans-serif !important;
    font-size: 48px !important;
    font-weight: 400 !important;
    line-height: normal !important;
    letter-spacing: 2.4px !important;
    text-align: center !important;
  }

  /* Main column */
  body:has(.medical-info-page) .medical-info-main,
  body:has(.medical-info-page) .medical-info-main[class*='gap-[200px]'] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    padding-top: 0 !important;
    padding-inline: 60px !important;
    padding-bottom: 0 !important;
    gap: 80px !important;
    box-sizing: border-box !important;
    overflow: visible !important;
  }

  body:has(.medical-info-page) .medical-info-main > :not(.medical-info-fv-bg):not(.absolute):not(.site-footer):not([class*="-faq-section"]) {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  body:has(.medical-info-page) .medical-info-intro-section,
  body:has(.medical-info-page) .medical-info-hours-section,
  body:has(.medical-info-page) .medical-info-access-section,
  body:has(.medical-info-page) .medical-info-facility-section,
  body:has(.medical-info-page) .medical-info-section,
  body:has(.medical-info-page) .medical-info-main > div[class*='gap-[60px]']:not(.site-footer) {
    gap: 48px !important;
  }

  /* Section headings */
  body:has(.medical-info-page) .medical-info-main [class*='text-[46px]'][class*='text-[#8e5572]'],
  body:has(.medical-info-page) .medical-info-main [class*='text-[46px]'][class*='text-[#8e5572]'] p,
  body:has(.medical-info-page) .medical-info-main [class*='text-[46px]'][class*='text-[#8e5572]'] span {
    font-size: 32px !important;
    line-height: 1.3 !important;
    letter-spacing: 1.8px !important;
  }

  body:has(.medical-info-page) .medical-info-main [class*='leading-[62px]'] {
    line-height: 1.3 !important;
  }

  body:has(.medical-info-page) .medical-info-main [class*='text-[16px]'][class*='tracking-[0.8px]'],
  body:has(.medical-info-page) .medical-info-main [class*='text-[16px]'][class*='tracking-[0.8px]'] p {
    font-size: 15px !important;
    letter-spacing: 0.7px !important;
  }

  /* Body copy */
  body:has(.medical-info-page) .medical-info-main > [class*='text-[24px]'],
  body:has(.medical-info-page) .medical-info-intro-section > [class*='text-[24px]'],
  body:has(.medical-info-page) .medical-info-facility-section > [class*='text-[24px]'],
  body:has(.medical-info-page) .medical-info-access-section > [class*='text-[24px]'] {
    font-size: 20px !important;
    line-height: 32px !important;
    letter-spacing: 2px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-main [class*='leading-[38px]'] {
    line-height: 32px !important;
  }

  /* Clinic info table */
  body:has(.medical-info-page) .medical-info-row {
    flex-direction: row !important;
    align-items: stretch !important;
    height: auto !important;
    min-height: 48px !important;
  }

  body:has(.medical-info-page) .medical-info-row > div[class*='flex-[1_0_0]']:first-child {
    flex: 0 0 140px !important;
    width: 140px !important;
    max-width: 140px !important;
  }

  body:has(.medical-info-page) .medical-info-row > div[class*='flex-[1_0_0]']:last-child {
    flex: 1 1 0% !important;
    width: auto !important;
    min-width: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-row [class*='bg-[#eae0e5]'] {
    max-width: 140px !important;
    padding: 16px 10px !important;
    border-radius: 8px 0 0 8px !important;
  }

  body:has(.medical-info-page) .medical-info-row [class*='bg-[rgba(255,255,255,0.9)]'],
  body:has(.medical-info-page) .medical-info-row [class*='bg-white'] {
    padding: 16px 24px !important;
    border-radius: 0 8px 8px 0 !important;
    background: #fff !important;
  }

  body:has(.medical-info-page) .medical-info-row [class*='text-[16px]'] {
    font-size: 14px !important;
    line-height: normal !important;
    white-space: normal !important;
  }

  /* Medical hours — TOP .top-medical-hours と同一 */
  body:has(.medical-info-page) .medical-info-hours-section [class*='bg-[rgba(255,255,255,0.9)]'][class*='overflow-clip'] {
    padding: 24px !important;
    gap: 24px !important;
    border-radius: 16px !important;
    overflow: hidden !important;
  }

  body:has(.medical-info-page) .medical-info-hours-section [class*='bg-[rgba(255,255,255,0.9)]'] > div:first-child {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    display: flex !important;
    justify-content: center !important;
    height: auto !important;
  }

  body:has(.medical-info-page) .medical-info-hours-section .top-medical-hours,
  body:has(.medical-info-page) .medical-info-hours-section [class*='h-[240px]'] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    aspect-ratio: 844 / 241;
    flex-shrink: 0 !important;
    transform: none !important;
    zoom: unset !important;
    margin-inline: auto !important;
  }

  body:has(.medical-info-page) .medical-info-hours-section .top-medical-hours p,
  body:has(.medical-info-page) .medical-info-hours-section [class*='h-[240px]'] p {
    font-size: calc((100vw - 80px) * 20 / 844) !important;
    letter-spacing: calc((100vw - 80px) * 1 / 844) !important;
    line-height: normal !important;
  }

  /* Access map — iframe 高さにコンテナを合わせる（style.css 388px 固定の余白を除去） */
  body:has(.medical-info-page) .medical-info-map,
  body:has(.medical-info-page) .access-map {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    line-height: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-map iframe,
  body:has(.medical-info-page) .access-map iframe {
    height: 320px !important;
    min-height: 320px !important;
    max-height: 320px !important;
  }

  /* Train / car sections */
  body:has(.medical-info-page) .medical-info-section[class*='flex-wrap'] {
    flex-direction: column !important;
    align-items: center !important;
    gap: 48px !important;
  }

  body:has(.medical-info-page) .medical-info-section[class*='flex-wrap'] > [class*='text-[18px]'],
  body:has(.medical-info-page) .medical-info-main > div[class*='gap-[60px]'] > [class*='text-[18px]'] {
    font-size: 16px !important;
    line-height: 26px !important;
    letter-spacing: 1.6px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  /* Parking table */
  body:has(.medical-info-page) .medical-info-main > div[class*='gap-[60px]'] [class*='bg-[#8e5572]'] p[class*='text-[16px]'] {
    font-size: 14px !important;
  }

  body:has(.medical-info-page) .medical-info-main > div[class*='gap-[60px]'] [class*='bg-white'] p[class*='text-[16px]'],
  body:has(.medical-info-page) .medical-info-main > div[class*='gap-[60px]'] [class*='opacity-90'] p[class*='text-[16px]'] {
    font-size: 12px !important;
    line-height: 18px !important;
    letter-spacing: 0.6px !important;
  }

  /* Facility section — 3 columns, circular photos */
  body:has(.medical-info-page) .medical-info-facility-section {
    align-items: center !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: flex-start !important;
    align-content: center !important;
    gap: 40px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row > div[class*='flex-col'][class*='gap-[20px]'] {
    flex: 0 0 calc((100% - 80px) / 3) !important;
    width: calc((100% - 80px) / 3) !important;
    max-width: 300px !important;
    min-width: 0 !important;
    gap: 16px !important;
    align-items: center !important;
    margin-inline: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row .medical-info-facility-photo,
  body:has(.medical-info-page) .medical-info-facility-row [class*='inline-grid'],
  body:has(.medical-info-page) .medical-info-facility-row [class*='inline-grid'][class*='place-items-start'] {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: none !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    position: relative !important;
    flex: 0 0 auto !important;
    align-self: center !important;
    margin-inline: auto !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row [class*='inline-grid'] > div {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    mask: none !important;
    -webkit-mask: none !important;
    border-radius: 50% !important;
    overflow: hidden !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row .medical-info-facility-photo__img,
  body:has(.medical-info-page) .medical-info-facility-row [class*='inline-grid'] img,
  body:has(.medical-info-page) .medical-info-facility-row [class*='inline-grid'] img[class*='rounded-'] {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 100% !important;
    height: auto !important;
    min-height: 100% !important;
    max-width: none !important;
    transform: translate(-50%, -50%) !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 0 !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row [class*='inline-grid'] img[class*='object-bottom'] {
    top: 50% !important;
    bottom: auto !important;
    left: 50% !important;
    width: 100% !important;
    min-height: 100% !important;
    transform: translate(-50%, -50%) !important;
    object-position: center !important;
  }

  body:has(.medical-info-page) .medical-info-facility-row [class*='text-[20px]'][class*='text-[#8e5572]'] {
    font-size: 16px !important;
    line-height: 22px !important;
    letter-spacing: 0.8px !important;
    height: auto !important;
    min-height: 0 !important;
  }

  /* Footer */
  body:has(.medical-info-page) .site-footer {
    max-width: 100% !important;
    width: 100% !important;
    padding-top: 120px !important;
    padding-inline: 60px !important;
    padding-bottom: 48px !important;
    gap: 48px !important;
    box-sizing: border-box !important;
  }

  body:has(.medical-info-page) .site-footer > [class*='aspect-[3050'],
  body:has(.medical-info-page) .site-footer > [class*='aspect-[1944'] {
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 8px !important;
  }

  body:has(.medical-info-page) .site-footer [class*='gap-[36px]'][class*='whitespace-nowrap'] {
    white-space: normal !important;
    justify-content: center !important;
    gap: 24px 36px !important;
  }
}
