/* ══════════════════════════════════════════════
   英語版ホームページのRESPONSIVE専用CSSファイルです。固定ページ用は下にあります。
══════════════════════════════════════════════ */

/* ==================================================
   Mobile header renewal
   Purpose:
   - Keep top-strip visible.
   - Make .logo-wrap the visual center of the mobile header.
   - Put utility links and all global navigation behind the hamburger state.
   - Use the existing #mobile_menu inline state as the CSS-only open flag.

5月18日にリニューアル
================================================== */


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

  html,
  body {
    width: 100% !important;
    max-width: none !important;
    overflow-x: hidden !important;
    background: #f7f8f5;
  }

  body {
    display: flex !important;
    flex-direction: column !important;
    min-height: 100vh !important;
  }

  body > * {
    order: 10;
    width: 100%;
    box-sizing: border-box;
  }

  .top-strip {
	order: 1;
	position: relative !important;
	z-index: 30;
	display: grid !important;
	grid-template-columns: auto 1fr auto !important;
	align-items: center !important;
	padding: 8px 8px 10px !important;
	border: 4px solid #c9a84c !important;
	border-top-color: #d8bd6a !important;
	border-bottom-color: #a98224 !important;
 }

  .top-strip .strip-sep {
    display: none !important;
  }

  .group-pill {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: auto !important;
    justify-self: start !important;
    max-width: 160px !important;
	padding-top: 0 !Important;
	padding-bottom: 0;
    height: 25px !important;
    box-sizing: border-box !important;
    border-radius: 999px !important;
    background: #1a8a54 !important;
    box-shadow: none !important;
    color: #ffffff !important;
    letter-spacing: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  .group-pill svg:first-child {
    width: 13px !important;
    height: 13px !important;
    margin-right: 4px !important;
    flex: 0 0 13px !important;
  }

  .group-pill svg:last-child {
    display: none !important;
  }

 .fs-group {
	grid-column: 3 !important;
	grid-row: 1 !important;
	justify-self: end !important;

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

	width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
 }

 .fs-group span {
	display: inline-block !important;
	margin-right: 4px !important;

	color: #ffffff !important;
	font-size: 9px !important;
	line-height: 1 !important;
	white-space: nowrap !important;
 }

 .fs-group .fsbtn {
    width: auto !important;
    min-width: 42px !important;
    height: 28px !important;
    min-height: 28px !important;
    padding: 0 5px !important;
    margin: 0 !important;

    font-size: 9px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
 }

 .fs-group .fsbtn + .fsbtn {
	margin-left: 4px !important;
 }

  .search-wrap {
    grid-column: 1 / 4 !important;
    grid-row: 2 !important;
    display: flex !important;
    align-items: stretch !important;
    width: 100% !important;
    height: 42px !important;
    margin-top: 8px !important;
    padding: 0 !important;
    border: 1px solid #d9d7ce !important;
    border-radius: 7px !important;
    background: #ffffff !important;
    overflow: hidden !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
  }

  .search-wrap input,
  .search-wrap input[type="text"] {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 12px !important;
    border: none !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    color: #223028 !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
    outline: none !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
  }

  .search-wrap button {
    position: static !important;
    transform: none !important;
    flex: 0 0 46px !important;
    width: 46px !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #b99a43 !important;
    border: none !important;
    border-left: 1px solid #a48632 !important;
    border-radius: 0 !important;
    color: #ffffff !important;
    box-sizing: border-box !important;
  }

  header.main-header {
    order: 2;
    position: relative !important;
    z-index: 20;
    display: contents !important;
  }

/* 修正：レスポンシブで無効化 */
 @media (max-width: 768px) {
   .main-header::after {
     display: none;
   }
  }

  .logo-wrap {
    min-height: 120px !important;
    padding: 10px !important;

    border-top: none !important;
    border-bottom: 4px solid #c9a84c !important;

    background:
      radial-gradient(circle at 12% 22%, rgba(201,168,76,.22) 0, rgba(201,168,76,0) 32%),
      linear-gradient(135deg, #fffdf4 0%, #f7f1df 52%, #eef7ef 100%) !important;
  }

  .logo-wrap::before {
    left: 20px !important;
    right: 12px !important;
    top: 18px !important;
    bottom: 18px !important;

    border: 1px solid rgba(201,168,76,.55) !important;
    border-radius: 9px !important;
    background: rgba(255,255,255,.55) !important;
  }

  .logo-wrap::after {
    display: none !important;
  }

  .org-label,
  .hospital-title {
    position: relative !important;
    z-index: 1 !important;
  }

  .org-label {
    width: 100% !important;
    margin: 0 0 8px !important;
	padding-top: 20px;
	padding-left: 40px;
    box-sizing: border-box !important;

    color: #315640 !important;
    font-size: 9px !important;
    letter-spacing: .13em !important;
    line-height: 1.25 !important;
    text-align: left !important;
  }

  .hospital-title {
    justify-content: flex-start !important;
    width: 100% !important;
    padding-left: 14px !important;
    box-sizing: border-box !important;
  }

  .logo-icon {
    position: relative !important;
    top: -10px !important;
    left: 0 !important;
    flex: 0 0 54px !important;

    margin: 0 15px 0 0 !important;
    padding: 6px !important;
    box-sizing: border-box !important;

    background: linear-gradient(180deg, #ffffff 0%, #fffaf0 100%) !important;
    border: 1px solid rgba(201,168,76,.58) !important;
    border-radius: 8px !important;

    box-shadow:
      0 5px 12px rgba(13,68,39,.14),
      0 0 0 3px rgba(255,255,255,.52),
      inset 0 1px 0 rgba(255,255,255,.95) !important;
  }

  .logo-text-block {
    position: static !important;
    left: auto !important;

    align-items: flex-start !important;
    min-width: 0 !important;
  }

  .hosp-name-en {
    font-size: 17px !important;
    line-height: 1.05 !important;
    letter-spacing: .01em !important;
    text-align: left !important;
  }

  .hosp-name-en::after {
    content: "" !important;
    display: block !important;
    width: 100% !important;
    height: 2px !important;
    margin: 6px 0 0 !important;

    background: linear-gradient(
      90deg,
      #c9a84c 0%,
      rgba(201,168,76,.7) 55%,
      rgba(201,168,76,0) 100%
    ) !important;
  }

  .hosp-name-sub {
    margin-top: 6px !important;
    font-size: 9px !important;
    letter-spacing: .12em !important;
    text-align: left !important;
  }

  .header-right {
    order: 4;
    width: 100% !important;
    box-sizing: border-box !important;
    display: none !important;
    padding: 0 12px 12px !important;
    background: #fffefa !important;
  }

  .phone-block {
    display: none !important;
  }

  .util-nav {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 10px 0 0 !important;
    overflow: visible !important;
    list-style: none !important;
    border: 0 !important;
    background: transparent !important;
  }

  .util-nav li {
    min-width: 0 !important;
    margin: 0 !important;
  }

  .util-nav li:first-child {
    width: 100% !important;
    flex: 0 0 100% !important;
    margin: 0 0 6px 0 !important;
  }

  .util-nav li:not(:first-child) {
    width: calc(33.333% - 4px) !important;
    flex: 0 0 calc(33.333% - 4px) !important;
  }

  .util-nav li:nth-child(2) {
    margin-left: 0 !important;
  }

  .util-nav li:nth-child(n+3) {
    margin-left: 6px !important;
  }

  .util-nav li a,
  .lang-pairs {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 44px !important;
    width: 100% !important;
	padding: 5px 4px !Important;
    border: 1px solid #d8e2da !important;
    border-radius: 7px !important;
    background: #ffffff !important;
    color: #133b27 !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    text-align: center !important;
    text-decoration: none !important;
    box-shadow: 0 2px 6px rgba(20, 60, 39, .06) !important;
    box-sizing: border-box !important;
  }

.util-nav li a.flag-btn {
  border-color: transparent !important;
  background-color: transparent !important;
  padding: 0;
}

  .util-nav li a svg {
    width: 14px !important;
    height: 14px !important;
    margin-right: 3px !important;
    flex: 0 0 auto !important;
  }

  .lang-pairs {
    justify-content: center !important;
    min-height: 50px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  .flag-btn,
  .flag-btn + .flag-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 34px !important;
    height: 28px !important;
    flex: 0 0 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 3px !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .flag-btn + .flag-btn {
    margin-left: 8px !important;
  }

  .flag-btn.active {
    outline: 2px solid #0d5a36 !important;
    outline-offset: 2px !important;
  }

  .flag-btn img {
    display: block !important;
    width: 30px !important;
    height: 30px !important;
    margin: 0 auto !important;
    object-fit: cover !important;
  }

  .mobile-bar {
    order: 3;
    position: relative !important;
    z-index: 25;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    padding: 10px 12px 12px !important;
    background: #c9a84c !important;
    box-shadow: 0 8px 18px rgba(128, 98, 28, .18) !important;
    border-bottom: none !important;
  }

  .mobile-logo {
    display: none !important;
  }

  .mobile-btns {
    display: block !important;
    width: 100% !important;
  }

  #mobile_search_btn {
    display: none !important;
  }

  #mobile_menu_btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 54px !important;
    padding: 0 16px !important;
    border: 0 !important;
    border-radius: 8px !important;
    background: #0d5a36 !important;
    color: #ffffff !important;
    font-size: 17px !important;
    font-weight: 800 !important;
    letter-spacing: .04em !important;
    box-shadow: 0 5px 12px rgba(13, 90, 54, .18) !important;
  }

  #mobile_menu_btn svg {
    width: 24px !important;
    height: 24px !important;
    margin-right: 10px !important;
    stroke: currentColor !important;
    stroke-width: 2.4 !important;
  }

  #mobile_menu_btn::after {
    content: "Menu";
  }

  #mobile_search,
  #mobile_menu {
    display: none !important;
  }

  .gnav-bar {
    order: 5;
    display: none !important;
    position: relative !important;
    z-index: 18;
    width: 100% !important;
    padding: 0 20px 14px !important;
    overflow: visible !important;
    background: #fffefa !important;
    border: 0 !important;
    box-shadow: 0 14px 20px rgba(24, 50, 37, .08) !important;
  }

  body:has(#mobile_menu[style*="block"]) .header-right,
  body:has(#mobile_menu[style*="display: block"]) .header-right {
    display: block !important;
  }

  body:has(#mobile_menu[style*="block"]) .gnav-bar,
  body:has(#mobile_menu[style*="display: block"]) .gnav-bar {
    display: block !important;
  }

  body:has(#mobile_menu[style*="block"]) #mobile_menu_btn,
  body:has(#mobile_menu[style*="display: block"]) #mobile_menu_btn {
    background: #15412d !important;
  }

  body:has(#mobile_menu[style*="block"]) #mobile_menu_btn::after,
  body:has(#mobile_menu[style*="display: block"]) #mobile_menu_btn::after {
    content: "Close Menu";
  }

  .gnav-bar .gmenu {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
  }

  .gnav-bar .gmenu > li {
    width: 100% !important;
    min-width: 0 !important;
    flex: none !important;
    position: relative !important;
    overflow: hidden !important;
    border: 1px solid #dfe6de !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    box-shadow: 0 3px 9px rgba(21, 61, 40, .07) !important;
  }

  .gnav-bar .gmenu > li + li {
    margin-top: 8px !important;
  }

  .gnav-bar .gmenu > li::before,
  .gnav-bar .gmenu > li::after,
  .gnav-bar .gmenu > li > .nav-trigger::before,
  .gnav-bar .gmenu > li > .nav-trigger::after,
  .gnav-bar .gmenu > li > .nav-trigger-careers::before,
  .gnav-bar .gmenu > li > .nav-trigger-careers::after {
    display: none !important;
  }

  .nav-trigger,
  .gnav-bar .gmenu > li > .nav-trigger-careers {
    display: grid !important;
    grid-template-columns: 49px 1fr 26px !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 62px !important;
    height: auto !important;
    max-height: none !important;
    padding: 10px 12px !important;
    box-sizing: border-box !important;
    background: #ffffff !important;
    border: 0 !important;
    text-align: left !important;
  }

  .nav-icon,
  .gnav-bar .gmenu > li > .nav-trigger-careers .nav-icon {
    width: 34px !important;
    height: 34px !important;
    margin: 0 !important;
    object-fit: contain !important;
  }

  .nav-label,
  .gnav-bar .gmenu > li > .nav-trigger-careers .nav-label {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    color: #173f2a !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
    text-align: left !important;
    text-shadow: none !important;
    white-space: normal !important;
  }

  .nav-caret,
  .gnav-bar .gmenu > li > .nav-trigger-careers .nav-caret {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 26px !important;
    height: 26px !important;
    margin: 0 !important;
    border-radius: 50% !important;
    background: #edf5ef !important;
    color: #0d5a36 !important;
    font-size: 11px !important;
    line-height: 1 !important;
  }

  .gnav-bar .dropdown,
  .gnav-bar .dropdown.wide {
    display: none !important;
  }

  .gnav-bar .dropdown.open,
  .gnav-bar .dropdown.wide.open {
    display: block !important;
    position: static !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 58vh !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    transform: none !important;
    border: 0 !important;
    border-top: 1px solid #e4eadd !important;
    border-radius: 0 !important;
    background: #fbfcf8 !important;
    box-shadow: none !important;
  }

  .gnav-bar .dropdown.wide.open .col {
    display: block !important;
    position: static !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
  }

  .gnav-bar .dropdown.wide.open .col + .col {
    border-top: 1px solid #e4eadd !important;
  }

  .gnav-bar .dropdown.open a,
  .gnav-bar .dropdown.wide.open a,
  .gnav-bar .dropdown.wide.open .sub-head {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: 48px !important;
    padding: 12px 16px !important;
    box-sizing: border-box !important;
    border-bottom: 1px solid #e7ece4 !important;
    background: #fbfcf8 !important;
    color: #1f3027 !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  .gnav-bar .dropdown.open a::before,
  .gnav-bar .dropdown.wide.open a::before {
    content: "" !important;
    width: 6px !important;
    height: 6px !important;
    margin-right: 10px !important;
    flex: 0 0 6px !important;
    border-radius: 50% !important;
    background: #b99a43 !important;
  }

  .gnav-bar .dropdown.open a:hover,
  .gnav-bar .dropdown.wide.open a:hover {
    background: #eef7f1 !important;
    color: #0d5a36 !important;
  }

  .gnav-bar .dropdown.open img,
  .gnav-bar .dropdown.wide.open img {
    display: none !important;
  }

  .gnav-bar .dropdown.wide.open .sub-head {
    position: sticky !important;
    top: 0 !important;
    z-index: 1 !important;
    min-height: 42px !important;
    background: #eef3e8 !important;
    color: #0d5a36 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
  }

  .gnav-bar .dropdown.open::-webkit-scrollbar,
  .gnav-bar .dropdown.wide.open::-webkit-scrollbar {
    width: 8px !important;
  }

  .gnav-bar .dropdown.open::-webkit-scrollbar-thumb,
  .gnav-bar .dropdown.wide.open::-webkit-scrollbar-thumb {
    background: #b6c6ba !important;
    border-radius: 999px !important;
  }
}

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

  .group-pill {
    padding-left: 8px !important;
    padding-right: 8px !important;
    font-size: 9px !important;
  }

  .fs-group {
    margin-left: 2px !important;
  }

  .fs-group span {
    margin-right: 3px !important;
    font-size: 7.5px !important;
  }

  .fs-group .fsbtn {
    min-height: 26px !important;
    height: 26px !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
    font-size: 8px !important;
  }

  .fs-group .fsbtn + .fsbtn {
    margin-left: 3px !important;
  }

  .logo-wrap {
    min-height: 126px !important;
  }

  .logo-wrap::before {
    left: 12px !important;
    right: 10px !important;
    top: 16px !important;
    bottom: 16px !important;
  }

  .logo-icon {
    width: 50px !important;
    height: 50px !important;
    flex-basis: 50px !important;
  }

  .logo-text-block {
    left: -24px !important;
  }

  .hosp-name-en {
    font-size: 19px !important;
  }

  .hosp-name-sub {
    font-size: 8px !important;
    letter-spacing: .1em !important;
  }

  .hospital-title {
    padding-left: 8px !important;
  }

  .org-label {
    padding-left: 74px !important;
    font-size: 8px !important;
    letter-spacing: .1em !important;
  }

  .util-nav li a,
  .lang-pairs {
    min-height: 42px !important;
    font-size: 10px !important;
  }

  .lang-pairs {
    padding-left: 4px !important;
    padding-right: 4px !important;
  }

  .flag-btn,
  .flag-btn + .flag-btn {
    width: 30px !important;
    height: 26px !important;
    flex-basis: 30px !important;
  }

  .flag-btn + .flag-btn {
    margin-left: 6px !important;
  }
}

/* =====================================
ここからはコンテンツ部分のデザイン
===================================== */

@media screen and (max-width: 768px) {
  /* =====================================
     ▼ info-strip：縦積み圧縮(ホームページのコンテンツ内容)
  ===================================== */
  .info-strip {
    display: flex !important;
    flex-direction: column !important;
    margin: 0 !Important;
    padding: 0 !important;
  }

  .info-item {
    display: flex;
    width: 100% !important;
    align-items: flex-start;
  }

  .info-item-icon {
    margin-right: 8px;
  }

  .info-item-text .label {
    font-size: 12px;
  }

  .info-item-text .value {
    font-size: 14px !important;
  }

  .info-item-text .sub {
    font-size: 11px;
  }

  /* =====================================
     ▼ hero：中央部分のUI調整
  ===================================== */

	.hero-eyebrow {
		margin-top: 5px;
	}
	
	.hero-title {
		line-height: 1.6; /* 1.4〜1.8 の間で調整 */
	}

  /* =====================================
     ▼ quick-section：カード縦積み
  ===================================== */
  html body .quick-section {
    padding: 60px 0 0 0 !important;
  }

  .section-header {
    text-align: center;
  }

  .section-header h2 {
    font-size: 20px;
  }

  .cards-grid {
    display: flex !important;
    flex-direction: column !important;
    margin: 8px;
  }

  .card {
    width: 100% !important;
    padding: 8px !important;
    box-sizing: border-box;
  }

  .card-icon {
    margin-bottom: 4px;
  }

  .card h3 {
    font-size: 16px !important;
    margin-bottom: 6px;
  }

  .card p {
    font-size: 13px !important;
    line-height: 1.4;
  }

  .card-arrow {
    font-size: 12px;
  }

}

/* ════════════════════════════════════════════════════════════════════════════════════════════
   新着投稿一覧のレスポンシブ対応を担当しているクラス（768px以下）
════════════════════════════════════════════════════════════════════════════════════════════ */
@media screen and (max-width: 768px) {
  .kano_top_news--en {
    padding: 50px 0;
  }

  .Eng_TopNews_Title {
    font-size: 1.5rem;
  }

  .Eng_TopNews_Item {
    flex-direction: column;
    align-items: flex-start;
  }

  .Eng_TopNews_Date {
    margin-right: 0;
    margin-bottom: 6px;
  }

  .Eng_TopNews_Cat {
    margin-right: 0;
    margin-bottom: 6px;
  }

  .Eng_TopNews_Link {
    width: 100%;
  }

  .Eng_TopNews_More {
    text-align: center;
  }
}

/* ══════════════════════════════════════════════
ここからは各種の固定ページに対応しているレスポンシブ用CSSです。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
══════════════════════════════════════════════ */

/* ══════════════════════════════════════════════
   固定ページ：複数の画像が横に並んでる場合、それを縦一列に戻すためのレスポンシブ対応CSS
══════════════════════════════════════════════ */

@media screen and (max-width: 768px) {
	.Pg_Herogrid-2,
	.Pg_Herogrid-3,
	.Pg_Herogrid-4,
	.Pg_Herogrid-5,
	.Pg_Herogrid-6 {
		grid-template-columns: 1fr;
	}
}

/* ══════════════════════════════════════════════
   固定ページ：各テーブルのレスポンシブ対応CSS
══════════════════════════════════════════════ */

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

  .KoteiPage_Table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border-collapse: collapse;
    box-sizing: border-box !important;
  }

  .KoteiPage_Table::before {
    content: "← Scroll to view full table →";

    display: block;
    width: fit-content;
    max-width: 220px;

    margin: 0 0 8px 0;
    padding: 8px 10px;

    background: #f8f5ef;
    border: 1px solid #e2d2a8;
    border-left: 4px solid #c9a84c;
    border-radius: 6px;

    color: #1a6b3c;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;

    box-sizing: border-box;
  }

  /* thead / tbody の連結を強制復元 */
  .KoteiPage_Table thead,
  .KoteiPage_Table tbody {
    display: table-header-group !important;
    width: 100% !important;
  }

  .KoteiPage_Table tfoot {
    display: table-footer-group !important;
  }

  /* セル基本調整 */
  .KoteiPage_Table th,
  .KoteiPage_Table td {
    padding: 12px 10px !important;
    vertical-align: middle !important;
    font-size: 13.5px !important;
  }

  /* 列幅は最小限に（内容優先） */
  .KoteiPage_Table th:first-child,
  .KoteiPage_Table td:first-child {
    width: 120px !important;
    min-width: 120px !important;
  }

  .KoteiPage_Table th:nth-child(2),
  .KoteiPage_Table td:nth-child(2) {
　width: auto !important; /* 固定値を解除 */
  min-width: 100px !important; /* 最低限必要な幅だけ確保 */
  white-space: nowrap; /* 料金などが改行されないように */
  }

  .KoteiPage_Table th:last-child,
  .KoteiPage_Table td:last-child {
    width: 160px !important;
    min-width: 160px !important;
  }

  /* 見出しセルの強調 */
  .KoteiPage_Table_Head,
  .KoteiPage_Table_SubHead,
  .KoteiPage_Table_VerticalSubHead {
    white-space: nowrap !important;
    font-weight: 700 !important;
  }
}
/* テーブル右コンテンツの幅調整 */
@media screen and (max-width: 768px) {
  .KoteiPage_Table_Data--left {
    padding: 14px 12px;
    max-width: 100%;                   /* スマホではほぼ全幅に */
  }
  
  .KoteiPage_Table_Data--left .KoteiPage_Table_Inner {
    max-width: 100%;                   /* スマホでは内側も全幅に拡張 */
  }
}

/* ══════════════════════════════════════════════
   固定ページ：1列しかないテーブル専用のレスポンシブ対応CSS
══════════════════════════════════════════════ */

/* [5月13日に新規追加] モバイル調整（スクロールは一切不要） */
@media screen and (max-width: 768px) {
  .KoteiPage_SingleTableWrap {
   margin: 16px 0 24px 0;
	  
   max-width: calc(100% - 40px);
  }

  .KoteiPage_SingleTable_Head {
    font-size: 13.5px;
    padding: 12px 14px;
  }

  .KoteiPage_SingleTable_Data {
    font-size: 13px;
    padding: 12px 14px;
  }
}

/* ══════════════════════════════════════════════
   固定ページ：沿革のレスポンシブ対応CSS
══════════════════════════════════════════════ */

@media (max-width: 1100px) {
  .Pg_HistoryTable td.Pg_HistoryImage {
    width: 320px;
  }
}

@media (max-width: 768px) {
  .Pg_HistoryTable {
    min-width: 780px;
    font-size: 15px;
  }
  .Pg_HistoryTable td.Pg_HistoryImage {
    width: 240px;
  }
  .Pg_HistoryTable td.Pg_HistoryImage img {
    box-shadow: 0 6px 16px rgba(13, 68, 39, 0.15);
  }
}

@media screen and (max-width: 768px) {
	
	.Pg_HistoryTableWrap {
		margin: 40px 0 40px 0 !Important;
	}
	
  .Pg_HistoryTableWrap::before {
    content: "←  Scroll to view full table  →";

    display: block;
    width: 100%;
    margin: 40 0 40px 0 !Important;
    padding: 5px 6px;

    background: #f8f5ef;
    border: 1px solid #e2d2a8;
    border-left: 4px solid #c9a84c;
    border-radius: 6px;

    color: #1a6b3c;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;

    box-sizing: border-box;
  }
}

/* ══════════════════════════════════════════════
   固定ページ：Hospital Overview のレスポンシブ対応CSS
══════════════════════════════════════════════ */

/* [新規追加] スマホ（600px以下）では縦並びに戻す */
@media (max-width: 600px) {
  .Pg_ImageGallery {
    grid-template-columns: 1fr;
  }
}

/* ══════════════════════════════════════════════
   固定ページ：Doctor Schedule のレスポンシブ対応CSS
══════════════════════════════════════════════ */

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

  /* --- 診療科リンク：1列（100%）に変更 --- */
  .KoteiPage_DepartmentList {
    margin: 20px 0 !important; /* 外側の余白を圧縮 */
  }

  .KoteiPage_DepartmentList li {
    width: 100% !important;   /* 4列から1列へ変更 */
    padding: 0 0 8px 0 !important; /* 下の間隔を狭める */
  }

  .KoteiPage_DepartmentLink {
    padding: 12px 15px !important; /* 縦パディングを圧縮 */
    min-height: auto !important;   /* 高さを固定せず中身に合わせる */
    font-size: 14px !important;
  }

  /* --- テーブル全体の文字サイズと余白を削減 --- */
  .KoteiPage_ScheduleTable {
    font-size: 13px !important;
  }

  /* セル内の余白を極限まで削る */
  .KoteiPage_ScheduleTable th {
    padding: 5px; /* パディングを半分以下に */
    line-height: 1.25 !important; /* 行間を限界まで詰める */
  }

  /* 時間表示セル（黄色い部分）の圧縮 */
  .time {
    min-width: 85px !important;  /* 横幅をスリムに */
    padding: 5px;
    font-size: 12px !important;
  }
	
 .gray,
 .KoteiPage_ScheduleTable td. {
	padding: 5px 10px 5px 10px !Important;
	line-height: 1.25 !important; /* 行間を限界まで詰める */
	}

  /* 見出し（診療科名など）の間隔を詰める */
  .KoteiPage_SubTitle--sub {
    margin-top: 24px !important;
    margin-bottom: 8px !important;
    font-size: 1.1em !important;
  }

  /* テキスト・注釈の隙間を排除 */
  .KoteiPage_Text {
    margin: 8px 0 !important;
    font-size: 12px !important;
    line-height: 1.4 !important;
  }

  /* セル内のpタグ等に含まれる不要なマージンをリセット */
  .KoteiPage_ScheduleTable td br {
    line-height: 1 !important;
  }
}
