@charset "UTF-8";

/* ============================================
   変数定義
   ============================================ */

:root { /* カラー */ --color-primary: #1C9F91; --color-primary-dark: #00546c; --color-primary-light: #24b180; --color-secondary: #007E8F; --color-accent: #ff3300; --color-text: #333; --color-text-light: #555; --color-text-gray: #666; --color-border: #d2d2d2; --color-border-light: #e4e4e4; --color-bg: #fff; --color-bg-light: #f5f5f5; --color-bg-gray: #efecec; --color-bg-section: #f8f8f5; /* フォント */ --font-size-base: 16px; --font-size-small: 11px; --font-size-large: 28px; --line-height-base: 1.5; /* 余白 */ --spacing-xs: 8px; --spacing-sm: 10px; --spacing-md: 20px; --spacing-lg: 30px; --spacing-xl: 50px; /* レイアウト */ --container-max-width: 1250px; --border-radius: 10px; --border-radius-round: 9999px; /* ブレークポイント */ --breakpoint-sm: 768px; --breakpoint-md: 1024px; --breakpoint-lg: 1250px;}
/* セクション別カラー変数 */
.page_column { --section-color: var(--color-primary);}
.page_voice { --section-color: var(--color-primary-light);}
.page_webinar { --section-color: var(--color-accent);}

/* ============================================
   リセットCSS
   ============================================ */

/* 以下は common.css に統合済み:
   * { font-family }  /  html { scroll-behavior }
   img { height/display }  /  button { border/cursor }
   small, .small { font-size }  /  a:hover { opacity }
   *::before/after box-sizing
*/
body { background-color: var(--color-bg); color: var(--color-text); font-size: 16px; font-weight: normal; line-height: 1.5; margin: 0;}
/* 基本サイズ */
body,
p,
div,
/*span,*/
a,
li,
td,
th { font-size: 16px; font-weight: normal; line-height: 1.5;}
/* 強調テキスト */
.single_column p span.empha,
.single_voice p span.empha { color: var(--color-secondary); font-size: 18px;}
/* 見出し */
h1 { font-size: 32px; font-weight: bold; line-height: 1.5;}
h2 { font-size: 24px; font-weight: bold; line-height: 1.5;}
h3 { font-size: 22px; font-weight: bold; line-height: 1.5;}
h4, h5, h6 { font-size: 16px; font-weight: bold; line-height: 1.5;}
p { margin: 0; padding: 0;}
ul, ol { margin: 0; padding: 0; list-style: none;}
a { color: var(--color-text); text-decoration: none; transition: opacity 0.3s ease;}

/* 記事本文(.post_content)内のリストは、上記グローバルリセットを打ち消してブラウザ標準表示に戻す。
   Kurocoリッチエディターがul/olを出力した場合に書式が反映されるようにするため。
   .post_mokuji/.post_related_list/.post_list等の独自リストは.post_content外にあるため対象外。 */
.post_content ul,
.post_content ol { list-style: revert; margin: revert; padding: revert;}
.post_content li { list-style: inherit;}

/* 記事本文内のリンクはデフォルトで下線を表示する(グローバルリセットで消えているため)。
   フォントサイズも「p a」の共通リセット(15px固定)を打ち消し、周囲の本文と同じサイズにする */
.post_content a { text-decoration: underline; font-size: inherit;}

/* ============================================
   基本レイアウト
   ============================================ */

/* コンテナ */
.mainbox { margin: 0 auto; padding: 0 3%; max-width: var(--container-max-width);}
/* .mainbox レスポンシブ */

@media screen and (max-width: 767px) {
  .mainbox { width: 100%; padding: 0 8px;}
}

@media screen and (min-width: 768px) and (max-width: 1023px) {
  .mainbox { width: 100%; padding: 0 16px;}
}

@media screen and (min-width: 1024px) and (max-width: 1249px) {
  .mainbox { width: 100%; padding: 0 32px;}
}

@media screen and (min-width: 1250px) {
  .mainbox { width: 100%; padding: 0 32px;}
}

/* body レスポンシブ */

@media screen and (max-width: 767px) {
  body { width: 100%;}
  /* スマホ表示の基本サイズ */
  body,
  p,
  div,
  span,
  a,
  li,
  td,
  th { font-size: 14px; font-weight: normal; line-height: 1.5;}
  /* .title内のspanは親のフォントサイズを継承 (span汎用ルールの上書き対策) */
  .title span { font-size: inherit; font-weight: inherit;}
  /* .fee_price/.fee_price_month内のspanも同様に親のフォントサイズを継承 */
  .fee_price span, .fee_price_month span { font-size: inherit; font-weight: inherit;}
  /* スマホ表示のsmallサイズ */
  small,
  .small { font-size: 10px; font-weight: normal; line-height: 1.5;}
  /* スマホ表示の見出し */
  h1 { font-size: 20px; font-weight: bold; line-height: 1.5;}
  h2 { font-size: 20px; font-weight: bold; line-height: 1.5;}
  h3 { font-size: 16px; font-weight: bold; line-height: 1.5;}
  h4, h5, h6 { font-size: 16px; font-weight: bold; line-height: 1.5;}
}

@media screen and (min-width: 768px) and (max-width: 1023px) {
  body { width: 100%;}
}

@media screen and (min-width: 1024px) and (max-width: 1249px) {
  body { width: 100%;}
}

@media screen and (min-width: 1250px) {
  body { width: 100%;}
}

/* ============================================
   メインコンテンツ・ヘッダー・ナビゲーション
   ============================================ */

main { width: 100%; margin: 0; padding: 0;}
/* ヘッダー */
header { min-height: 50px; /*background-color: var(--color-bg);*/}
/* header nav / .logoSlogan / .gmo_row / .container / .headerTop / .navigationWrap → common.css に統合済み */
.navLeft { display: flex; flex-direction: column; align-items: flex-start;}
.space_between { justify-content: space-between;}
.container_max1000 { max-width: 1000px;}
.main_content { min-height: 300px;}
/* .navRight → common.css に統合済み */
ul.main_nav { list-style-type: none; padding: 0px; font-size: 0px; max-width: 1000px; margin: 0 auto;}
ul.main_nav > li { display: inline-block; padding: 0;}
ul.main_nav > li > a { display: block; padding: 25px 9px; position: relative; color: #333; font-size: 12px; font-weight: bold; box-sizing: border-box; cursor: pointer; text-decoration: none;}
ul.main_nav > li:hover { background-color: #f9f9f9;}
ul.main_nav > li:hover > a { color: #333; font-weight: 400;}
/* .ic / .ic.close / .ic.menu / .ic.menu .line → common.css に統合済み */
.ic.menu .line_last_child { margin-bottom: 0px;}
.header_contact { display: flex; gap: 8px; align-items: center;}
.header_contact .header_contact__tel { display: flex; flex-direction: column; gap: 3px;}
.header_contact .header_contact__tel a { color: #1c1c1c; text-decoration: none; font-size: 17px; font-weight: 600; display: flex; align-items: center; line-height: 20px; padding-left: 6px;}
.header_contact .header_contact__tel span img { display: inline-block; width: 17px; margin-right: 4px;}
.header_contact .header_contact__tel strong { font-weight: 500 !important; line-height: 19px;}
.header_contact .header_contact__tel small { font-size: 10px; line-height: 1.35;}
header .radius_btn:hover { background: #f2f4f8;}
/* .mobileMenuHead / .mobile_hamburger → common.css に統合済み(旧記述がmedia query無しでdisplay:noneを上書きし、スマホ表示でハンバーガーメニューが消える不具合の原因だったため削除) */
.gmomobileNav { margin: 0; position: fixed; text-transform: uppercase; width: 375px; padding: 14px 25px; height: 100%; right: -375px; opacity: 0; top: 0; z-index: 10000; -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); background: #007E8F; -moz-transition: all 0.3s ease-in; -webkit-transition: all 0.3s ease-in; transition: all 0.3s ease-in;}
.navigation_is_open .gmomobileNav { right: 0; opacity: 1;}
.mobnav_overlay { position: fixed; width: 100%; height: 100%; left: 0; top: 0; opacity: 0.6; background: black; z-index: 1001; visibility: hidden;}
.navigation_is_open .mobnav_overlay { visibility: visible;}
.gmomobileNavHeader { text-align: right; cursor: pointer;}
ul.sideNavMobile { margin-bottom: 50px;}
ul.sideNavMobile li { border-bottom: 1px #5AC7C0 solid;}
ul.sideNavMobile li a { color: white; display: block; padding: 13px 0; text-decoration: none;}
.gmomobileNav .base_btn { width: 100%; font-size: 16px;}
.gmomobileNav p.other_function { color: #ffffff; padding: 20px 0 10px 0;}
.sub_menu_block { padding: 15px;}
ul.main_nav ul.sub_menu li { float: left; width: 30%; border: none; text-align: left; height: auto; background-color: #fff; color: #005bab; margin: 0 14px 8px 0; padding: 4px; border-radius: 6px;}
ul.main_nav ul.sub_menu li:hover { opacity: 1;}
ul.main_nav ul.sub_menu li a:hover { opacity: 0.8;}
ul.main_nav ul.sub_menu li a { background: none; border: none; color: #005bab; font-size: 12px;}
ul.main_nav p.other_function { padding-top: 40px; color: #ffffff; font-weight: bold;}
.submenu_level_2 { margin: 0; padding: 0;}
.submenu_level_2 ul { list-style-type: none; padding: 0; margin: 0;}
.submenu_level_2 ul li { margin: 0; padding: 0;}
.submenu_level_2 ul li a { display: block; padding: 8px 12px; text-decoration: none; color: #005bab; font-size: 12px;}
.submenu_level_2 ul li a:hover { opacity: 0.8;}
.top_level_link { position: relative;}
.top_level_link2 { position: relative;}
.parent_menu { display: block; padding: 13px 0; color: white; text-decoration: none; cursor: pointer;}
.sub_parent_menu { display: block; padding: 8px 0; color: white; text-decoration: none; cursor: pointer;}
.close_sideMenu { cursor: pointer; display: inline-block;}
.gmomobileNavSide { padding: 0; margin: 0;}
.btn_round_arrow { position: relative;}
.btn_round_arrow svg { position: absolute; right: 18px; transition: transform .3s linear;}
.btn_round_arrow svg g.arrow { transition: transform .3s linear;}
.btn_round_arrow:hover svg g.arrow { transform: translateX(5px);}
.navigation_is_open .gmomobileNav { overflow-y: auto;}
.parent_menu + .sub_menu_block,
.sub_parent_menu + .submenu_level_2 { height: auto; max-height: 0px; overflow: hidden; transition: max-height 1.5s ease-in-out;}
.parent_menu.active + .sub_menu_block,
.sub_parent_menu.active + .submenu_level_2 { max-height: 2000px; transition: max-height 1.5s ease-in-out;}
ul.sideNavMobile li .parent_menu.active + .sub_menu_block,
ul.sideNavMobile li .sub_parent_menu.active + .submenu_level_2 { border-top: 1px #5AC7C0 solid;}
ul.sideNavMobile li:last-child,
ul.sideNavMobile li .submenu_level_2 li:last-child { border-bottom: none;}

@media screen and (max-width: 767px) {
  .ic.menu { display: block;}
  header.dark .ic.menu .line { background-color: #fff;}
  header.light .ic.menu .line { background-color: #000;}
  .ic.menu .line { -webkit-transition: all 0.4s ease 0s; -o-transition: all 0.4s ease 0s; transition: all 0.4s ease 0s; -webkit-transform: rotate(0deg); -moz-transform: rotate(0deg); -ms-transform: rotate(0deg); transform: rotate(0deg); -webkit-transform-origin: center center; -ms-transform-origin: center center; transform-origin: center center;}
  .ic.menu:focus .line { background-color: #fff !important;}
  .ic.menu:focus .line:nth-child(1) { -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg);}
  .ic.menu:focus .line:nth-child(2) { -webkit-transform: rotate(-45deg); -moz-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); margin-top: -10px;}
  .ic.menu:focus .line:nth-child(3) { transform: translateY(15px); opacity: 0;}
  .ic.menu:focus { outline: none;}
  .ic.menu:focus ~ .ic.close { opacity: 1; z-index: 21; outline: none;}
  .ic.menu:hover,
  .ic.menu:focus { opacity: 1;}
  ul.main_nav { z-index: 2; padding: 50px 0; position: fixed; right: 0px; top: 0px; width: 0px; background-color: rgba(0, 0, 0, 1); height: 100%; overflow: auto; -webkit-transition-property: background, width; -moz-transition-property: background, width; -o-transition-property: background, width; transition-property: background, width; -webkit-transition-duration: 0.6s; -moz-transition-duration: 0.6s; -o-transition-duration: 0.6s; transition-duration: 0.6s;}
  .ic.menu:focus ~ .main_nav { width: 300px; background-color: rgba(0, 0, 0, 1);}
  ul.main_nav > * { -webkit-transition-property: opacity; -moz-transition-property: opacity; -o-transition-property: opacity; transition-property: opacity; -webkit-transition-duration: 0.4s; -moz-transition-duration: 0.4s; -o-transition-duration: 0.4s; transition-duration: 0.4s; opacity: 0;}
  .ic.menu:focus ~ .main_nav > * { opacity: 1;}
  ul.main_nav > li > a:after { display: none;}
  ul.main_nav > li:first-child { border-radius: 0px;}
  ul.main_nav > li { display: block; border-bottom: 1px solid #444;}
  ul.main_nav > li > a { font-weight: 600;}
  ul.main_nav > li ul.sub_menu_lists > li a { color: #eee; font-size: 14px;}
  ul.main_nav > li:hover { background-color: transparent;}
  ul.main_nav > li:hover > a { color: #fff; text-decoration: none; font-weight: 600;}
  .ic.menu:focus ~ ul.main_nav > li > div.sub_menu_block { border-left: 0px solid #ccc; border-right: 0px solid #ccc; border-bottom: 0px solid #ccc; position: relative; visibility: visible; opacity: 1.0;}
  .sub_menu_block { padding: 0 30px;}
}

@media screen and (min-width: 769px) {
  .ic.menu { display: none;}
  ul.main_nav { display: block;}
  ul.main_nav > li > div.sub_menu_block { visibility: hidden; position: absolute; margin-top: 0px; width: 100%; color: #333; right: 0; box-sizing: border-box; z-index: 3; font-size: 16px; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; width: 1100px; padding: 40px 44px; background: #f1f1f1; opacity: 0.95; border-radius: 20px; opacity: 0; -webkit-transition: all 0.4s ease 0s; -o-transition: all 0.4s ease 0s; transition: all 0.4s ease 0s; -webkit-transform: rotateX(90deg); -moz-transform: rotateX(90deg); -ms-transform: rotateX(90deg); transform: rotateX(90deg); -webkit-transform-origin: top center; -ms-transform-origin: top center; transform-origin: top center;}
  ul.main_nav > li:hover > div.sub_menu_block { background-color: #1c9f91; border: 1px #1c9f91 solid; visibility: visible; opacity: 1; -webkit-transform: rotateX(0deg); -moz-transform: rotateX(0deg); -ms-transform: rotateX(0deg); transform: rotateX(0deg);}
  .main_nav .top_level_link:hover { background-color: transparent;}
  .main_nav .top_level_link:hover a span { position: relative;}
  .main_nav .top_level_link:hover a span:after { content: ""; background-color: #1C9F91; height: 1px; width: 100%; position: absolute; left: 0; bottom: -6px;}
  ul.main_nav ul.sub_menu li a { color: #ffffff; text-decoration: none; font-size: 16px;}
  ul.main_nav ul.sub_menu li li a { font-size: 14px;}
  ul.main_nav ul.sub_menu li { background-color: transparent; color: #ffffff; float: none; width: 100%; border-right: 1px #fff solid; border-radius: 0px;}
  ul.main_nav ul.sub_menu li a { position: relative;}
  ul.main_nav ul.sub_menu li:last-child { border-right: 0px;}
  ul.main_nav ul.sub_menu { display: grid; grid-template-columns: 270px 220px 510px; gap: 20px;}
  ul.main_nav ul.sub_menu li li { border-right: 0px; padding-left: 25px;}
  ul.main_nav ul.sub_menu li li a:before { content: ""; background-image: url(../images/chevron_right.svg); background-size: 100%; background-repeat: no-repeat; position: absolute; left: -23px; top: -2px; width: 20px; height: 20px;}
  ul.main_nav ul.sub_menu li.sub_menu_top li a:before { content: none;}
  ul.main_nav ul.sub_menu li.sub_menu_top li { padding-left: 0px;}
  ul.main_nav ul.sub_menu li li a:after { display: none;}
  ul.main_nav > li > div.sub_menu_block > * { -webkit-transition-property: opacity; -moz-transition-property: opacity; -o-transition-property: opacity; transition-property: opacity; -webkit-transition-duration: 0.4s; -moz-transition-duration: 0.4s; -o-transition-duration: 0.4s; transition-duration: 0.4s; opacity: 0;}
  ul.main_nav > li:hover > div.sub_menu_block > * { opacity: 1;}
  header.dark ul.main_nav > li > a { border-right: 1px solid #bbb;}
  header.light ul.main_nav > li > a { border-right: 1px solid #666;}
  ul.main_nav > li > a.mega_menu:before { content: ''; width: 1px; height: 62px; opacity: 0; transition: all 0.2s ease 0s; position: absolute; left: calc(50% - 12px); bottom: 0; z-index: 2; width: 0px; height: 0px; border-left: 12px solid transparent; border-right: 12px solid transparent; border-bottom: 12px solid #1C9F91;}
  ul.main_nav > li > a:after { content: ''; width: 1px; height: 62px; position: absolute; right: 0px; top: 0px; z-index: 2;}
  .main_nav .top_level_link:hover a.mega_menu:before { opacity: 1;}
  header.dark ul.main_nav > li > a:after { background-color: #777;}
  header.light ul.main_nav > li > a:after { background-color: #999;}
  ul.main_nav > li > a.mega_menu > span { display: block;}
}

@media screen and (min-width: 1100px) and (max-width: 1200px) {
  ul.main_nav > li > div.sub_menu_block { width: 1044px;}
}

/* フッター */
footer { background-color: #f3f4f8; padding-top: 80px; padding-left: 20px; padding-right: 20px;}
footer .container { max-width: var(--container-max-width); margin: 0 auto; padding: 0 3%;}
/* footer p → common.css に統合済み */
.back_to_top { text-align: right; border-bottom: 1px solid #c8c8c8; padding-bottom: 14px; margin-bottom: 28px;}
.back_to_top a { text-decoration: none; color: #1C9F91; font-size: 12px; display: flex; justify-content: flex-end; align-items: center; gap: 12px;}
/* .footCols / .footerlogo / .copyright / footer .gmoLogo / .gmoFooterLogo / .footer_security
   .servicesList / .footer_bottom / .gmp_group_title / .RevolutionList
   .management_section / .medicalDepartment_ftr 系 → common.css に統合済み */
/* .certificate_logo はセレクター名が異なるため残す */
.certificate_logo { padding-top: 10px;}

/* ============================================
   共通コンポーネント
   ============================================ */

/* ボタン */
.base_btn,
.radius_btn { width: auto; line-height: 1.25; display: flex; justify-content: flex-end; align-items: center; color: #1C9F91; border: 1px solid #1C9F91; text-decoration: none; background-color: white; border-radius: 40px; font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 14px; font-weight: bold; padding: 14px 18px; height: 48px; transition: .5s all;}
.radius_btn span { color: #1C9F91; display: inline-block; transition: .5s all;}
.radius_btn.active,
.radius_btn:hover { background: linear-gradient(77deg, rgba(0,84,108,1) 0%, rgba(0,126,143,1) 28%, rgba(28,159,145,1) 90%);}
.radius_btn.active span,
.radius_btn:hover span { background: transparent; color: white; -webkit-text-fill-color: #FFFFFF;}
.radius_btn:hover svg path { stroke: white;}
.radius_btn.active:hover { background: white;}
.radius_btn.active:hover span { background: linear-gradient(77deg, rgba(0,84,108,1) 0%, rgba(0,126,143,1) 28%, rgba(28,159,145,1) 90%); -webkit-background-clip: text !important; -webkit-text-fill-color: transparent;}
.radius_btns { width: auto; height: 100%; line-height: 1.25; display: flex; justify-content: flex-end; align-items: center; color: #1C9F91; border: 1px solid #1C9F91; text-decoration: none; background-color: white; border-radius: 40px; font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 14px; font-weight: bold; padding: 14px 18px; height: 48px; transition: all 0.5s ease 0s; position: relative;}
.radius_btns.fill::after { content: ""; background-image: linear-gradient(77deg, rgba(0,84,108,1) 0%, rgba(0,126,143,1) 28%, rgba(28,159,145,1) 90%); position: absolute; top: 0; right: 0; bottom: 0; left: 0; border-radius: 40px; overflow: hidden; z-index: 0; transition: all 0.5s ease-out;}
.radius_btns.fill:hover::after { opacity: 0; visibility: hidden;}
.radius_btns.fill span { color: #fff; z-index: 1; position: relative; transition: all 0.5s ease-out;}
.radius_btns.fill:hover span { background: linear-gradient(90deg, #00546C -2.01%, #1C9F91 103.87%); -webkit-background-clip: text; -webkit-text-fill-color: transparent;}
.btn_round_arrow { display: inline-flex; align-items: center; gap: var(--spacing-xs);}
/* パンくずリスト */
.breadcrumbs { /*padding: var(--spacing-md) 0;*/}
.breadcrumbs .st_aside { margin: 0 auto; padding: 6% 1%; max-width: var(--container-max-width);}
.breadcrumbs .st_aside span,
.breadcrumbs .st_aside span a { font-size: 12px; color: var(--color-text-gray);}
.breadcrumbs .st_aside span br { display: none;}

@media screen and (min-width: 768px) {
  .breadcrumbs .st_aside { padding: 12px 0 12px 10px;}
}

/* ページネーション */
.pagination,
.page_numbers { display: flex; justify-content: center; align-items: center; gap: var(--spacing-xs); margin: var(--spacing-lg) 0; list-style: none;}
.pagination a,
.page_numbers a { display: inline-block; padding: 8px 12px; border: 1px solid var(--color-border); border-radius: var(--border-radius); color: var(--color-text); font-size: var(--font-size-base);}
.pagination a:hover,
.page_numbers a:hover { background-color: var(--color-primary); color: var(--color-bg); border-color: var(--color-primary);}
.pagination .current,
.page_numbers .current { background-color: var(--color-primary); color: var(--color-bg); border-color: var(--color-primary);}

/* ============================================
   記事カード（共通化）
   ============================================ */

/* 記事リスト */
.post_list { display: flex; flex-wrap: wrap; gap: var(--spacing-sm); padding-left: 0; list-style: none;}
/* 記事カード */
.post_card { width: 100%; cursor: pointer; overflow: hidden; border-radius: var(--border-radius); border: 1px solid var(--color-border); background-color: var(--color-bg); transition: box-shadow 0.3s ease;}
/* レスポンシブ: 記事カードの列数 */

@media screen and (min-width: 768px) and (max-width: 1023px) {
  .post_list { gap: var(--spacing-sm) var(--spacing-md);}
  .post_list .post_card { width: calc((100% - var(--spacing-md)) / 2);}
}

@media screen and (min-width: 1024px) and (max-width: 1249px) {
  .post_list { gap: var(--spacing-sm) var(--spacing-md);}
  .post_list .post_card { width: calc((100% - var(--spacing-md) * 2) / 3);}
}

@media screen and (min-width: 1250px) {
  .post_list { gap: 24px 15px;}
  .post_list .post_card { width: calc((100% - 30px) / 3);}
}

.post_card:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);}
.post_card .thumb { display: block; width: 100%; aspect-ratio: 16/9; overflow: hidden;}
.post_card .thumb > img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease;}
.post_card:hover .thumb > img { transform: scale(1.05);}
.post_card .content { padding: 4%; background-color: var(--color-bg);}
.post_card .title { text-align: left; font-weight: 700; line-height: 1.3; padding: 0; margin: 0 0 4% 0;}
.post_card .title a { font-size: 15px; font-weight: bold; line-height: 1.3; text-decoration: none; color: var(--color-text); overflow: hidden; display: -webkit-box; text-overflow: ellipsis; -webkit-box-orient: vertical; -webkit-line-clamp: 3;}
.post_card .title span { display: none;}
.post_card .cats { display: flex; justify-content: flex-end; align-items: center; flex-wrap: wrap; gap: var(--spacing-xs) var(--spacing-sm); margin: 0 0 2% 0;}
.post_card .cats span { min-width: 120px; font-size: 11px; line-height: 1.2; border: 1px solid #707070; text-align: center; padding: 5px 10px; border-radius: var(--border-radius-round); display: inline-block; text-decoration: none; color: var(--color-text);}
.post_card .cats span.new { color: var(--color-accent); border-color: var(--color-accent); min-width: 60px;}
.post_card .tags { display: flex; flex-wrap: wrap; gap: 3px; /*margin-top: var(--spacing-sm);*/}
.post_card .tags a { font-size: 10px; line-height: 1.0; padding: 3px 8px; border-radius: 20px; margin: 0 2px 0 0; /*background-color: #ececec;*/ display: inline-block; text-decoration: none; color: #555;border: 1px solid #eee;}
/* レスポンシブ: 記事カード */

@media screen and (max-width: 767px) {
  .post_card.sp_wide { position: relative;}
  .post_card.sp_wide .thumb { position: absolute; top: 20px; right: 20px; width: 100px; aspect-ratio: 100/80;}
  .post_card.sp_wide .content { padding: 20px 20px 10px 20px;}
  .post_card.sp_wide .title { width: calc(100% - 110px); min-height: 80px; margin: 0 0 3% 0;}
  .post_card.sp_wide .title a { font-size: 17px;}
  .post_card.sp_wide .cats span { min-width: 100px;}
}

/* ============================================
   セクションヘッダー
   ============================================ */

.column_header { display: flex; align-items: flex-start; flex-direction: column; gap: 24px; margin: 0 auto var(--spacing-lg) auto; padding: 10% 4% 0; width: 100%; max-width: var(--container-max-width);}
.column_header_title { position: relative; white-space: nowrap; display: inline-block; font-size: 30px; font-weight: 700; padding: 0 0 5px 0; margin: 0; color: var(--color-text);}
.column_header_title::after { content: ""; position: absolute; bottom: 0; left: 0; display: inline-block; width: 150px; height: 2px; background: linear-gradient(to right, var(--color-primary-light), var(--color-primary-dark));}
.column_header_desc { font-size: 14px; color: var(--color-text-light);}

@media screen and (min-width: 768px) {
  .column_header { padding: 3% 2% 0;}
  .column_header_title { font-size: 40px; padding: 0 0 10px 0;}
  .column_header_title::after { width: 215px;}
  .column_header_desc { font-size: 16px;}
}

@media screen and (min-width: 1250px) {
  .column_header { margin: 0 auto; padding: 50px 40px 0; flex-direction: row; justify-content: space-between;}
  .column_header_desc { padding: 0 0 20px 0; align-self: flex-end;}
}

/* セクション別カラー */
.page_webinar .column_header_desc { font-size: 20px; font-weight: bold; color: var(--color-accent);}

@media screen and (min-width: 768px) {
  .page_webinar .column_header_desc { font-size: 24px;}
}

/* ============================================
   セクションボディ
   ============================================ */

/* 記事詳細ページのヘッダー */
.column_heading { position: relative; padding-top: 14px;}
.column_heading::before { content: ""; position: absolute; top: 0; left: -5%; display: inline-block; width: 200px; aspect-ratio: 200/56; background: url(../images/column/page_heading_bg.png) no-repeat top left/cover;}
.column_heading::after { content: ""; z-index: 2; position: absolute; top: 0; left: 0; width: 100vw; height: 4px; background: url(../images/column/colorbar.png) no-repeat top left/cover; margin: 0 calc(50% - 50vw);}
.column_heading_inner { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 10px 10%; background-color: #fff; padding: 3% 6%; box-shadow: 0 1px 0 rgba(0, 0, 0, 0.16);}
.column_heading_ttl { font-size: 20px; line-height: 1.2; text-align: left; padding: 0; margin: 0 !important;}
.column_heading_ttl span { font-size: 20px;}
.column_heading_desc { font-size: 14px; margin: 0 !important;}
/* .column_heading レスポンシブ */

@media screen and (min-width: 768px) {
  .column_heading { padding-top: 32px;}
  .column_heading::before { left: -100px; width: 400px; aspect-ratio: 400/128;}
  .column_heading::after { width: 70vw; height: 8px;}
  .column_heading_inner { box-shadow: none; flex-direction: row; border-bottom: 1px solid #ccc;}
  .column_heading_ttl { font-size: 28px; line-height: 1.3; font-weight: bold;}
}

.single_voice .column_heading_ttl .clinicname,
.single_voice .column_heading_ttl .kamoku { display: none;}
.single_voice .column_heading_ttl .subttl { display: block; font-size: 22px;}
/* Voice（導入事例）専用スタイル */
.voicepost_header { margin-top: 30px;}

@media screen and (min-width: 768px) {
  .voicepost_header { margin-top: 100px;}
}

.voicepost_meta { width: 100%; padding: 0 2%; margin-bottom: 30px;}

@media screen and (min-width: 768px) {
  .voicepost_meta { width: 42%; margin-bottom: 85px;}
}

.single_voice .voicepost_clinicname { font-size: 18px; line-height: 1.3; margin-bottom: 10px;}

@media screen and (min-width: 768px) {
  .single_voice .voicepost_clinicname { font-size: 28px; margin-bottom: 40px;}
}

.voicepost_kamoku { display: flex; font-size: 14px;}
.voicepost_kamoku_ttl { width: 80px;}
.voicepost_location { display: flex; font-size: 14px;}
.voicepost_location_ttl { width: 80px;}
.voicepost_tags { margin-top: 3%;}
.voicepost_tags a { font-size: 11px; line-height: 1.2; padding: 5px 10px 4px 10px; border-radius: 9999px; border: 1px solid #707070; margin: 0 2px 2px 0; display: inline-block; text-decoration: none; background-color: #ececec; color: #00546C;}
.voicepost_outlinetext { width: 100%; font-size: 16px; line-height: 1.5; background-color: #efecec; border-radius: 10px; margin-bottom: 20px; padding: 20px;}

@media screen and (min-width: 768px) {
  .voicepost_outlinetext { width: 98%; border-radius: 10px; border: 1px solid #fff; padding: 5% 4% 4% 4%; margin-bottom: 10%; white-space: pre-wrap; word-break: break-word;}
  .voicepost_kamoku span,
  .voicepost_location span { font-size: 15px; line-height: 1.4;}
}

.voicepost_thumb { width: 100%; aspect-ratio: 40/21; margin-bottom: 10px;}
.voicepost_thumb > img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px;}

@media screen and (min-width: 768px) {
  .voicepost_thumb { float: right; width: 50%; margin-right: -4%; margin-top: -30%;}
}

.seminar_banner_wrap { margin-bottom: 40px;}
.voicepost_outlinelist { display: flex; flex-wrap: wrap; border-top: 1px solid #e6e6e6; border-bottom: 1px solid #e6e6e6; padding: 10px; margin: 0 2% 20px 0;}
.voicepost_outlinelist dt { width: 100%; font-size: 20px; line-height: 1.3; padding: 10px 0 5px 0;}
.voicepost_outlinelist dd { width: 100%; font-size: 15px; padding: 5px 0 10px 0; white-space: pre-wrap; word-break: break-word;}
.voicepost_outlinelist dd:not(:last-child) { border-bottom: 1px solid #e6e6e6;}

@media screen and (min-width: 768px) {
  .voicepost_outlinelist { margin: 0 2% 50px 0; padding: 3% 0;}
  .voicepost_outlinelist dt { width: 14%; padding: 2% 0; margin-right: 10%;}
  .voicepost_outlinelist dd { width: 70%; padding: 2% 0;}
}

/* Webinar（セミナー）専用スタイル */
.single_webinar .post_header { display: none;}
.column_body .webinar_headtxt { margin-top: 40px;}
.column_body .webinar_headtxt p { font-size: 15px; margin: 0 0 20px 0;}
.webinarsec dl { display: flex; flex-wrap: wrap; margin-bottom: 10%;}
.webinarsec dl dt { width: 24%; padding: 4% 4%; border-bottom: 1px solid #ccc;}
.webinarsec dl dd { width: 70%; padding: 4%; border-bottom: 1px solid #ccc;}
.webinarsec dl dd span { font-size: 12px; line-height: 1.2;}
.webinarsec .speakersimg { width: 50%; margin: 2% 25%;}
.webinarsec .speakersimg img { width: 100%; height: auto;}
.webinarsec .speakersprof { width: 70%;white-space: pre-wrap; word-break: break-word;}
.webinarsec .speakersprof p.speakersprof_txt01 { font-size: 14px;}
.webinarsec .speakersprof dl dd,
.webinarsec .speakersprof dl dt { border: none; font-size: 14px; padding: 0;}
.webinarsec .speakerstxt { width: 100%;}
.webinarsec p.tacnter { text-align: left;}
ul.speakers_col03 li { list-style: none;}
ul.speakers_col03 li div p { font-size: 14px;}
.single_webinar .webinarsec dt,
.single_webinar .webinarsec dd { border-bottom: 1px solid #ccc;}

@media screen and (max-width: 767px) {
  ul.speakers_col03 li { display: flex;}
  ul.speakers_col03 li div.speakersimg { width: 30%;}
  .webinarsec .speakersprof { width: 100%;}
}

@media screen and (min-width: 768px) {
  .webinarsec .speakers { display: flex; margin-bottom: 50px;}
  .webinarsec .speakersimg { width: 30%; margin: 0 6% 0 0;}
  .webinarsec .speakersimg img { width: 100%; height: auto;}
  .webinarsec .speakerstxt { width: 57%;}
  .webinarsec p.tacnter { text-align: left; font-size: 20px;}
  ul.speakers_col03 { display: flex;}
  ul.speakers_col03 li { width: 33%;}
  ul.speakers_col03 li div img { width: 70%;}
}

/* 投稿詳細ページの要素 */
.post_head { margin-bottom: 30px;}
.post_thumb { width: 100%; margin-bottom: 15px;}
.post_thumb > img { width: 100%; height: auto; object-fit: cover; border-radius: 10px;}

@media screen and (min-width: 768px) {
  .single_column .post_head,
  .single_webinar .post_head { display: flex;}
  .single_column .post_thumb { width: 78%; margin: 0 20px 50px 0;}
  .single_webinar .post_head { margin: 0 20px 50px 0;}
}

.post_header { display: grid; grid-template-areas: "date cats writer" "tags tags writer"; grid-template-rows: min-content 1fr; grid-template-columns: min-content 1fr 124px; gap: 10px 25px; margin-bottom: 40px;}

@media screen and (min-width: 768px) {
  .single_column .post_header { width: 30%; grid-template-areas: 
      "date date"
      "cats cats"
      "writer writer"
      "tags tags"; grid-template-rows: 1fr 1fr; grid-template-columns: 1fr 1fr; gap: 10px 10px; margin-bottom: 60px;}
}

.post_date { grid-area: date; opacity: 0.6; font-size: 14px;}
.post_cats { grid-area: cats;}
.post_cats span,
.post_cats a { font-size: 14px; text-decoration: none;}
.post_tags { grid-area: tags;}
.post_tags a { font-size: 11px; line-height: 1.2; padding: 4px 10px; border-radius: 20px; margin: 0 2px 2px 0; background-color: #ececec; display: inline-block; text-decoration: none;}
.single_column .post_tags a { border: 1px solid #cccccc; margin: 0 3px 5px 0; color: #00546C;}
.post_writer { grid-area: writer; justify-self: end; display: flex; flex-direction: column; align-items: flex-end; gap: 10px 15px;}
.post_writer_icon > img { width: 50px; height: 50px; border-radius: 50%;}
.post_writer_info { flex: 1;}
.post_writer_groupname,
.post_writer_name { display: block; font-size: 13px; text-align: right;}

@media screen and (min-width: 768px) {
  .post_writer { flex-direction: row; align-items: center;}
  .post_writer_icon > img { width: 90px; height: 90px;}
  .post_writer_groupname,
  .post_writer_name { text-align: left;}
  .post_tags { min-height: 170px;}
  .single_news .post_tags { min-height: 0;}
  .single_news .post_header { margin-bottom: 0;}
}

.post_content { margin-top: 40px;}
.post_content h2 { font-size: 22px; font-weight: bold; line-height: 1.2; text-align: left; padding-bottom: 1%; margin: 40px 0 30px 0;}
.single_webinar h2 { position: relative;}
.single_webinar h2::after { content: ""; position: absolute; bottom: 0; left: 0; display: inline-block; width: 20%; height: 2px; background: linear-gradient(to right, #24b180, #00546c);}
.post_content h3 { font-size: 18px; font-weight: bold; margin: 35px 0 30px 0;}
.post_content h4 { font-weight: bold; margin: 20px 0 10px 0;}
.post_content p.interviewer { font-weight: bold;}
.post_content p.memo { color: #24b180; font-size: 13px; line-height: 20px;}
.column_body .post_mokuji { border-radius: 10px; padding: 20px;}
.column_body .post_mokuji ol { list-style: none; margin-top: 0; padding-left: 0;}
.column_body .post_mokuji ol li a { font-size: 13px; line-height: 1.2; color: #555; margin-bottom: 5px; text-decoration: none;}
.column_body .post_mokuji ol li ol { padding-left: 0; margin: 10px 0 15px 10px;}
.post_related { background-color: #efecec; border-radius: 10px; padding: 3%; margin: 50px 0;}
.post_related_title { font-size: 20px; margin-bottom: 1%;}
.column_body .post_related_list { display: flex; flex-wrap: wrap; gap: 20px 20px; padding-left: 0; margin: 0; list-style: none;}
.column_body .post_related_list > li { width: 100%; list-style: none; margin: 0;}
.column_body .post_related_list > li:not(:first-child) { display: none;}
.column_body .post_related_list > li .thumb { display: block; width: 100%; aspect-ratio: 16/9; margin-bottom: 2%;}
.column_body .post_related_list > li .thumb > img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px;}
.column_body .post_related_list > li .title > a { font-size: 14px; line-height: 1.5; overflow: hidden; display: -webkit-box; text-overflow: ellipsis; -webkit-box-orient: vertical; -webkit-line-clamp: 2;}
.post_share { display: none;}

@media screen and (min-width: 768px) {
  .post_content { margin-top: 0;}
  .post_content p { margin-bottom: 26px;}
  .post_content h2 { font-size: 28px; margin: 8% 0; font-weight: bold; line-height: 1.2;}
  .post_content h3 { font-size: 20px; margin: 10% 0 5%; font-weight: bold;}
  .post_content h4 { margin: 6% 0 2%;}
  .column_body .post_related_list > li { width: calc((100% - 40px) / 3);}
  .column_body .post_related_list > li:not(:first-child) { display: block;}
  .column_body .post_mokuji { padding: 0;}
  .post_share { display: block; text-align: right;}
  .post_share_title { color: #707070; font-size: 20px; margin-right: 1%;}
  .post_share_list { display: inline-flex; align-items: center; column-gap: 8px;}
  .post_share_list a > img { width: 45px; height: 45px; object-fit: contain;}
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .post_content h2 { margin: 5% 0;}
  .post_content h3 { margin: 4% 0 2%;}
}

.column_body { margin: var(--spacing-lg) 0;}
.column_body section p { margin-bottom: var(--spacing-lg);}
.column_body ul { margin: 3% 0;}
.column_body ul.post_list li { margin: 0;}
/* 投稿ボディ */
.post_body { display: flex; flex-direction: column; gap: var(--spacing-md);}
.post_content table, .post_content th, .post_content td { border: 1px solid #ccc; padding: 6px;}
.post_content tr:nth-child(1) { background-color: #e5eef4;}
.post_main { flex: 1;}
.post_main_index { flex: 1; max-width: 840px; margin: 0 auto;}
.post_side { width: 100%;}

@media screen and (min-width: 1250px) {
  .post_body { flex-direction: row; align-items: flex-start; column-gap: 4%;}
  .post_main { flex: 1; max-width: 790px;}
  .post_main_index { flex: 1; max-width: 840px; margin: 0 auto;}
  .post_side { width: 280px; margin-left: 40px; padding: 0 2px 50px 0;}
}

/* サイドボックス */
.post_sidebox { margin-bottom: var(--spacing-lg);}
.post_sidebox + .post_sidebox { margin-top: var(--spacing-lg);}

@media screen and (min-width: 1250px) {
  .post_sidebox + .post_sidebox { margin-top: 15%;}
}

.post_sidebox_ttl { position: relative; background-color: var(--color-bg-gray); font-size: 16px; text-align: left; font-weight: 400; padding: 10px 50px; border-radius: var(--border-radius); box-shadow: 0 3px 0 rgba(0, 0, 0, 0.16); margin-bottom: var(--spacing-md);}
.post_sidebox_ttl::before { content: "▼"; position: absolute; top: 50%; left: 20px; transform: translateY(-50%);}

@media screen and (min-width: 1250px) {
  .post_sidebox_ttl { position: relative; background-color: transparent; font-size: 24px; text-align: center; padding: 0 0 3% 0; margin-bottom: 10%; box-shadow: none;}
  .post_sidebox_ttl::after { content: ""; position: absolute; bottom: 0; left: 0; display: inline-block; width: 100%; height: 2px; background: linear-gradient(to right, var(--color-primary-light), var(--color-primary-dark));}
  .post_sidebox_ttl::before { content: none;}
}

.post_sidebox_catlist { padding: var(--spacing-md);}
.post_sidebox_catlist a { display: block; width: 100%; font-size: 13px; text-decoration: none; color: var(--color-text-light); margin-bottom: var(--spacing-xs);}
.post_sidebox_catlist a:hover { text-decoration: underline;}

@media screen and (min-width: 1250px) {
  .post_sidebox_catlist { padding: 0;}
}

.post_sidebox_taglist { display: flex; flex-wrap: wrap; align-items: center; gap: var(--spacing-xs); padding: var(--spacing-md);}
.post_sidebox_taglist p { display: block; width: 100%; margin-bottom: var(--spacing-xs);}
.post_sidebox_taglist a,
.post_sidebox_taglist span { font-size: 11px; line-height: 1.2; padding: 3px 8px; border-radius: 20px; background-color: #ececec; display: inline-block; text-decoration: none; color: var(--color-text-light);}

@media screen and (min-width: 1250px) {
  .post_sidebox_taglist { padding: 0;}
}

.post_sidebox_searchform { position: relative; width: 100%; border: 1px solid #d1d1d1; border-radius: 10px 10px 0 0; background-color: #fff;}
.post_sidebox_searchform input[type="text"] { width: 100% !important; height: 100%; font-size: 15px; border: none; padding: 10px 40px 10px 10px; border-radius: 10px 10px 0 0;}
.post_sidebox_searchform button { position: absolute; top: 0; right: 0; display: block; height: 100%; aspect-ratio: 1/1; background-color: transparent; border: none; padding: 0;}
.post_sidebox_searchform button > img { width: 100%; height: 100%; object-fit: contain;}
/*.post_sidebox_searchform {
  display: flex;
  gap: var(--spacing-xs);
  align-items: center;
}
.post_sidebox_searchform input[type="text"] {
  flex: 1;
  padding: 8px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--border-radius);
  font-size: var(--font-size-base);
}
.post_sidebox_searchform button {
  padding: 8px 12px;
  background-color: var(--color-primary);
  color: var(--color-bg);
  border-radius: var(--border-radius);
  cursor: pointer;
}
.post_sidebox_searchform button > img {
  width: 20px;
  height: 20px;
}*/

/* ============================================
   ユーティリティクラス
   ============================================ */

.clearfix::after { content: ""; display: table; clear: both;}
.text_center { text-align: center;}
.text_left { text-align: left;}
.text_right { text-align: right;}
.display_block { display: block;}
.display_none { display: none;}

@media screen and (min-width: 768px) {
  .s767_block { display: block;}
}

/* ============================================
   レスポンシブ調整
   ============================================ */

@media screen and (max-width: 767px) {
  .column_header { padding: 10% 2% 0;}
  .post_card .title a { font-size: 17px;}
  .post_card .cats span { min-width: 100px; font-size: 12px;}
}

@media screen and (min-width: 768px) and (max-width: 1249px) {
  .post_list { gap: var(--spacing-sm) var(--spacing-md);}
}

@media screen and (min-width: 769px) {
  ul.main_nav ul.sub_menu li div.submenu_level_2 { margin-top: 21px;}
  ul.main_nav ul.sub_menu li:nth-child(3) div.submenu_level_2 ul { display: grid; grid-template-columns: 47% 53%;}
  ul.main_nav ul.sub_menu li:nth-child(3) div.submenu_level_2 ul li { border-right: 1px #fff solid; margin: 0px; padding-top: 6px; padding-bottom: 6px;}
  ul.main_nav ul.sub_menu li:nth-child(3) div.submenu_level_2 ul li:nth-child(even) { border-right: 0; margin-left: 28px;}
  ul.main_nav li.top_level_link2 ul.sub_menu { display: grid; grid-template-columns: 70% 30%; gap: 20px;}
  ul.main_nav li.top_level_link2 ul.sub_menu li:nth-child(1) div.submenu_level_2 ul { display: grid; grid-template-columns: 30% 30% 40%;}
  ul.main_nav li.top_level_link2 ul.sub_menu li:nth-child(1) div.submenu_level_2 ul li { border-right: 1px #fff solid; margin: 0px; padding-top: 8px; padding-bottom: 8px;}
  ul.main_nav li.top_level_link2 ul.sub_menu li:nth-child(1) div.submenu_level_2 ul li:nth-child(2),
  ul.main_nav li.top_level_link2 ul.sub_menu li:nth-child(1) div.submenu_level_2 ul li:nth-child(3),
  ul.main_nav li.top_level_link2 ul.sub_menu li:nth-child(1) div.submenu_level_2 ul li:nth-child(5),
  ul.main_nav li.top_level_link2 ul.sub_menu li:nth-child(1) div.submenu_level_2 ul li:nth-child(6),
  ul.main_nav li.top_level_link2 ul.sub_menu li:nth-child(1) div.submenu_level_2 ul li:nth-child(8),
  ul.main_nav li.top_level_link2 ul.sub_menu li:nth-child(1) div.submenu_level_2 ul li:nth-child(9),
  ul.main_nav li.top_level_link2 ul.sub_menu li:nth-child(1) div.submenu_level_2 ul li:nth-child(11),
  ul.main_nav li.top_level_link2 ul.sub_menu li:nth-child(1) div.submenu_level_2 ul li:nth-child(12) { padding-left: 51px;}
  ul.main_nav li.top_level_link2 ul.sub_menu li:nth-child(1) div.submenu_level_2 ul li:nth-child(3),
  ul.main_nav li.top_level_link2 ul.sub_menu li:nth-child(1) div.submenu_level_2 ul li:nth-child(6),
  ul.main_nav li.top_level_link2 ul.sub_menu li:nth-child(1) div.submenu_level_2 ul li:nth-child(9) { border-right: 0px;}
  ul.main_nav li.top_level_link2 ul.sub_menu li:nth-child(1) div.submenu_level_2 { margin-top: 0px;}
  ul.main_nav li.top_level_link2 ul.sub_menu li a:after { display: none;}
}

/* 画像の中央揃え */
img.aligncenter { display: block; margin: 0 auto 3%; max-width: 100%;}
.aligncenter { clear: both; display: block; margin: 0 auto 3%;}

@media screen and (max-width: 767px) {
  img.aligncenter { margin: 0 auto 30px;}
  .aligncenter { margin: 0 auto 30px;}
}

/* カラムヘッダータイトル */
.column_head_title { font-size: 20px; line-height: 1.2;}

@media screen and (min-width: 768px) {
  .column_head_title { font-size: 40px; line-height: 46px;}
  .column_top .column_header_title,
  .single_column p.column_header_title,
  .single_voice p.column_header_title { font-size: 40px; padding: 0 0 10px 0;}
  .column_top .column_header_title::after,
  .single_column p.column_header_title::after,
  .single_voice p.column_header_title::after { width: 215px;}
}

/* ページ背景 */
.column_top,
.category_column,
.category_voice,
.single_column,
.single_webinar { background: url(../images/column/page_header_bg.jpg) no-repeat top/166% auto;}
.single_column { background: url(../images/column/page_header_bg02.jpg) no-repeat top left/116% auto;}
.single_voice { background: url(../images/column/page_header_bg_long.jpg) no-repeat top/166% auto;}
.single_voice .post_mokuji ol li ol { display: none;}
.single_column p,
.single_webinar p,
.single_voice p { margin-bottom: 30px;}
.single_column p span,
.single_webinar p span { font-size: 13px; line-height: 1.5; display: block;}
.single_column a,
.single_webinar a { color: #333;}
.single_column .post_sidebox_recommend,
.single_voice .post_sidebox_recommend,
.single_webinar .post_sidebox_recommend { display: none;}

@media screen and (min-width: 768px) {
  .single_column { padding-top: 50px;}
  .single_column p,
  .single_voice p { font-size: 18px; line-height: 36px;}
  .single_column .post_sidebox_recommend,
  .single_voice .post_sidebox_recommend,
  .single_webinar .post_sidebox_recommend { display: block;}
  .column_top,
  .category_column,
  .category_voice,
  .single_webinar { background: url(../images/column/page_header_bg.jpg) no-repeat top left/116% auto;}
  .single_column { background: url(../images/column/page_header_bg02.jpg) no-repeat top left/116% auto;}
  .single_voice { background: url(../images/column/page_header_bg_long.jpg) no-repeat top left/130% auto;}
  .single_voice img { max-width: 790px;}
  .single_column .mainbox,
  .single_webinar .mainbox { padding: 0 6px 4% 6px;}
}

@media screen and (min-width: 1250px) {
  .single_column .post_side,
  .single_voice .post_side,
  .single_webinar .post_side { position: relative; top: 30px;}
  .single_column .post_side::-webkit-scrollbar-track,
  .single_voice .post_side::-webkit-scrollbar-track,
  .single_voice .post_side::-webkit-scrollbar-thumb,
  .single_column .post_side::-webkit-scrollbar-thumb,
  .single_webinar .post_side::-webkit-scrollbar-track,
  .single_webinar .post_side::-webkit-scrollbar-thumb { border-radius: 10px;}
}

/* 本文の目次非表示 */
.single_column ul.contents_list,
.single_webinar ul.contents_list { display: none;}
.single_voice .post_content h2 { padding-bottom: 0; border-bottom: none;}
.single_voice .post_content strong { font-weight: bold;}
.single_voice .post_content .caption{ font-size: 14px; color: #009999;}
.single_voice h2.voice_themetitle{background-color: #f5f7f9; border-radius: 10px; padding: 30px; border-radius: 10px;}
/* voice_alink: ul liのテーマ切り替えリンクを横並びボタン化 */
.single_voice .voice_alink { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; padding: 0; list-style: none;}
.single_voice .voice_alink li { margin: 0; list-style: none;}
.single_voice .voice_alink a { display: flex; width: fit-content; align-items: center; justify-content: center; padding: 7px 20px; border: 1px solid #1C9F91; border-radius: 20px; color: #1C9F91; font-size: 14px; font-weight: bold; text-decoration: none; transition: .3s all;}
.single_voice .voice_alink a:hover { background-color: #1C9F91; color: #fff;}
/* 現在地ボタン: 常に反転表示・クリック不可 */
.single_voice .voice_alink a.currentBtn { background-color: #1C9F91; color: #fff; pointer-events: none; cursor: default;}
/* スマホでは折り返し・中央寄せにしたい場合 */
@media screen and (max-width: 767px) {
  .single_voice .voice_alink { justify-content: center;}
}
/* ウェビナー専用スタイル */
.webinar_body .contact_body { padding: 0 10px;}
.webinar_body .contact_body p { font-size: 13px; margin: 2px 0 10px 0;}
.webinar_body .contact_body p.sbtxt { font-size: 11px; line-height: 1.1;}
.webinar_body .contact_body p.maintxt { font-size: 11px; margin: 10px 0 2px 0;}
.webinar_body .contact_body p.maintxt span { font-size: 8px; line-height: 1.1; display: inline-block;}
.webinar_body .contact_body p.form_toptxt { font-size: 11px; line-height: 1.1;}
.webinar_body .contact_body .mr_require_checkbox label,
.webinar_body .contact_body .mr_require_checkbox label span { font-size: 10px;}
.webinar_body .contact_body p.maintxt span.valid_icon_check { font-size: 20px; display: none;}
.webinar_body h2.webinarttl { position: relative; font-size: 13px; line-height: 1.2; margin: 0 10px 10px; padding-bottom: 10px;}
.webinar_body h2.webinarttl::after { content: ""; position: absolute; bottom: 0; left: 0; display: inline-block; width: 100%; height: 2px; background: linear-gradient(to right, #24b180, #00546c);}
.webinar_body #mr_form { background-color: #E8E8E8;}
.webinar_body form .label_cb { font-size: 12px; line-height: 24px; background-color: #ffffff; padding: 2% 4%; border: 1px solid #eee; border-radius: 4px; margin-bottom: 3px;}
.webinar_body form .label_cb input { border: 1px solid #ccc; width: auto; margin: 0 2px 0 0;}
.webinar_body .attention { border: 1px solid #ccc; margin: 4% 0%; padding: 2%; background-color: #EBF2F9;}
.webinar_body .attention h2 { margin: 2%;}
.post_body { margin: 30px 6px;}

@media screen and (min-width: 768px) {
  .post_body { margin: 60px 0;}
  .webinar_body { margin-top: 50px;}
  .webinar_body .radius_btns { width: 50%; margin: 0 auto;}
  .webinar_body .radius_btns a { margin: 0 auto; text-decoration: none; font-size: 20px;}
}

/* お問い合わせフォーム */
.contact_body h2 { font-size: 24px; line-height: 1.2;}
.contact_body h2 span { display: block; line-height: 0.5;}
.contact_body h2.webinarttl span { display: block; font-size: 16px; line-height: 1.2;}
.contact_body p { margin-bottom: 0; color: #555; font-size: 15px; line-height: 1.2;}
.contact_body p.form_toptxt { font-size: 14px; line-height: 1.2; margin-bottom: 6%;}
.contact_body p.form_toptxt span { font-size: 11px; line-height: 1; display: block; padding: 10px 0 0 0;}
.contact_body p.form_toptxt span a { font-size: 11px;}
.contact_body p.maintxt { margin: 4px 0 0 0;}
.contact_body p.sbtxt { font-size: 12px; line-height: 1.2; color: #666; margin-bottom: 2%;}
.contact_body form { background-color: #fff; padding: 4% 4% 8% 4%; font-size: 15px;}
.contact_body form input { width: 100%; border-radius: 4px; border: 1px solid #ccc;}
.contact_body form input.mr_privacycheck { width: auto;}
.contact_body form textarea { border-radius: 4px; border: 1px solid #ccc;}
.contact_body form label { font-size: 15px; line-height: 1.5;}
.contact_body form label span { font-size: 19px; padding: 4px 4px 0 0;}
.contact_body form p.privacy_link { line-height: 2.2;}
.contact_body form p.privacy_link input { width: auto;}
.contact_body form .label_cb { line-height: 24px; background-color: #f7f7f7; padding: 2% 4%; border: 1px solid #eee; border-radius: 4px; margin-bottom: 3px;}
.contact_body form .label_cb input { border: 1px solid #ccc; width: auto; margin: 0 4px 0 0;}
.contact_body form span.imp { font-size: 12px; border: 1px solid #ff3300; border-radius: 4px; padding: 0 1px; color: #fff; background-color: #ff3300;}
.contact_body form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.contact_body form select { width: 100%; padding: 4% 1%;}
.contact_body form textarea { width: 100%; max-height: 90px;}
.contact_body form input.invalid { background-color: #ffcccc; border: 1px solid #ff0000;}
.contact_body .enter_url { margin: 60px 10px;}
.contact_body .enter_url a { display: block; width: 100%; text-align: center; margin: 30px 0; background-color: #24b180; color: #fff; font-weight: bold; border-radius: 48px; padding: 30px 10px; font-size: 18px; text-decoration: none;}
.contact_body .enter_url a:hover { opacity: 0.8;}

@media screen and (max-width: 767px) {
  .contact_body h2 { font-size: 20px;}
  .contact_body p { font-size: 14px;}
  .contact_body p.form_toptxt { font-size: 15px; margin: 0 4% 2% 4%;}
  .contact_body form { background-color: #fff; padding: 4%; font-size: 15px;}
  .contact_body form label { font-size: 15px; line-height: 1.5;}
  .contact_body form label span { font-size: 14px; padding: 0 10px 0 0;}
  .contact_body form label input { width: auto;}
  .contact_body form span.imp { font-size: 10px; line-height: 5px;}
  .contact_body form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
  .contact_body form select { width: 100%; padding: 1% 1%; font-size: 15px;}
  .contact_body form textarea { width: 100%; max-height: 66px;}
  .contact_body form .label_cb { line-height: 15px; padding: 2% 2%;}
  .contact_body form .label_cb span { font-size: 13px;}
  .contact_body form p.privacy_link { font-size: 11px; line-height: 1.6;}
  .contact_body form p.privacy_link a { font-size: 11px; line-height: 1.1; color: #223d95; display: inline-block;}
}

/* おすすめ記事タイトル */
.post_sidebox_recommend_ttl { font-size: 24px; font-weight: 400; text-align: center; margin-bottom: 20px;}

@media screen and (min-width: 1250px) {
  .post_sidebox_recommend_ttl { margin-bottom: 10%;}
  .post_sidebox_recommend .post_card { width: 100%;}
  .post_side_news .post_sidebox_recommend .post_card { width: 97%; margin-bottom: 4%;}
  .post_sidebox_recommend .post_card .title a { font-size: 13px; -webkit-line-clamp: 2;}
  .post_sidebox_recommend .post_card .cats span { font-size: 11px; padding: 3px 10px;}
  .post_sidebox_recommend .post_card .tags a,
  .post_sidebox_recommend .post_card .tags span { font-size: 11px;}
}

/* 関連記事 */
.post_relatedarticle { background-color: #efecec; border-radius: 10px; padding: 20px; margin-top: 40px;}
/* 目次関連 */
.post_sidebox_mokuji { margin-bottom: var(--spacing-lg);}
.post_mokuji_list { list-style: none; padding: 0; margin: 0;}
.post_mokuji_list li { margin-bottom: 10px;}
.post_mokuji_list li a { font-size: 14px; line-height: 1.2; text-decoration: none; color: #333;}
.post_mokuji_list li ol { padding-left: 0; margin: 10px 0 15px 10px;}
/* カラムボディの追加スタイル */
.column_body section p.interviewer { margin-bottom: 30px; font-size: 18px; font-weight: bold;}
.column_body section p.overview { font-weight: bold;}
.column_body section p.postscript { font-size: 13px; color: #336699;}
.column_body section div { line-height: 30px;}
.post_content ol li { font-size: 15px; line-height: 1.3; margin-bottom: 12px;}
.single_webinar .webinar_body .column_header_desc { font-size: 20px; font-weight: bold; color: #ff3300;}

@media screen and (min-width: 768px) {
  .single_webinar .webinar_body .column_header_desc { font-size: 24px;}
}

/* ============================================================
   TOP page specific styles (source_custom-style.css より)
   ============================================================ */

/* --- .title --- */
.title { font-size: 32px; font-family: "noto_sans_cjk_jpbold", sans-serif; line-height: 1.5;}
.title small { display: block; font-size: 28px;}
.title span { position: relative; display: inline-block;}
.title span::after { content: ''; display: block; margin: 0 auto; width: 86px; height: 2px; margin-top: 17px; background-repeat: repeat-x; background-image: url('../images/doot-line.svg');}
[data-aos][data-aos][data-aos-duration="1200"], body[data-aos-duration="1200"] [data-aos] { transition-duration: 0.8s;}
*:focus { outline: none;}

/* ============================================================
   TOP page animation styles (source_custom-animation.css より)
   ============================================================ */

/* ----- infinite-bounce ----- */
.infinite-bounce { --animation-delay: 0s; animation: bounce 1.5s infinite alternate; -webkit-animation: bounce 1.5s infinite alternate; animation-delay: var(--animation-delay);}

@keyframes bounce {
  from { transform: translateY(0px);}
  to { transform: translateY(-15px);}
}

@-webkit-keyframes bounce {
  from { transform: translateY(0px);}
  to { transform: translateY(-15px);}
}

/* ----- placeholder slide color hide ----- */
.track-record-section .placeholder-data.seminarSlidDetail h4 a,
.placeholder-data.seminarSlidDetail h4 a,
.track-record-section .placeholder-data.seminarSlidDetail p,
.placeholder-data.seminarSlidDetail p,
.track-record-section .placeholder-data.seminarSlidDetail .slideBtn a,
.placeholder-data.seminarSlidDetail .slideBtn a { color: #F2F4F8; background-color: #F2F4F8;}
/* ----- btn-round-arrow (SVG arrow) ----- */
.btn-round-arrow svg { position: absolute; right: 18px; transition: transform .3s linear;}
.btn-round-arrow svg g.arrow { transition: transform .3s linear;}
.btn-round-arrow:hover svg g.arrow { transform: translateX(5px);}
/* ----- seminar-sliderWrap swiper-button hover ----- */
.seminar-sliderWrap .swiper-button-next:hover:after,
.seminar-sliderWrap .swiper-button-prev:hover:after { background-image: url('../images/svg/arrow-slide-hover.svg');}
/* ----- Swiper container width CSS vars ----- */
.seminar-slider { --container-width: 864px; overflow: visible !important; width: var(--container-width) !important; margin-left: auto !important; margin-right: auto !important;}
.swiper-slider-1 { --container-width: 888px; overflow: visible !important; width: var(--container-width) !important; margin-left: auto !important; margin-right: auto !important;}
/* ----- banner_header.style2 btn span ----- */
.banner_header.style2 .base-btn span { font-size: 18px;}
/* ----- gmo_modal right offset ----- */
.gmo_modal { right: 32px;}
/* ----- newsList hover colors ----- */
.newsList .newsitem:hover .newsMeta,
.newsList .newsitem:hover p a { color: #00546C;}
.newsList.column-category .newsitem:hover .newsMeta,
.newsList.column-category .newsitem:hover p a { color: #1C9F91;}
/* ----- AOS custom transforms ----- */
[data-aos=fade-up] { transform: translate3d(0, 20px, 0);}
[data-aos=fade-right] { transform: translate3d(-20px, 0, 0);}
[data-aos=fade-left] { transform: translate3d(20px, 0, 0);}
/* ----- seminarSlidItem hover placeholder hide ----- */
.seminarSlidItem:hover .seminarSlidDetail.placeholder-data h4 a { color: #F2F4F8;}
/* ----- seminar-sliderWrap overflow ----- */
.seminar-sliderWrap { overflow: hidden;}
/* ----- newsList link line-clamp ----- */
.newsList .newsitem p a { -webkit-line-clamp: 2; display: -webkit-box; -webkit-box-orient: vertical; text-overflow: ellipsis; overflow: hidden; min-height: 48px;}
/* ----- navigation-is-open overflow ----- */
.navigation-is-open .gmomobileNav { overflow-y: auto;}
/* ----- br.mobile-only default hidden ----- */
br.mobile-only { display: none;}
/* ----- generic mobile menu slide animation ----- */
.parent-menu + .sub-menu-block,
.sub-parent-menu + .submenu-level-2 { height: auto; max-height: 0px; overflow: hidden; transition: max-height 1.5s ease-in-out;}
.parent-menu.active + .sub-menu-block,
.sub-parent-menu.active + .submenu-level-2 { max-height: 2000px; transition: max-height 1.5s ease-in-out;}
/* ----- step-wrapper show_ms default hidden ----- */
.introduction_section .step-wrapper.show_ms { display: none;}
/* ----- contact_fix form input ----- */
.contact_fix .mr_input_form { font-size: 16px;}
.contact_fix .mr_input_form::-webkit-input-placeholder { font-size: 10px;}
.contact_fix .mr_input_form::-moz-placeholder { font-size: 10px;}
.contact_fix .mr_input_form:-ms-input-placeholder { font-size: 10px;}
.contact_fix .mr_input_form:-moz-placeholder { font-size: 10px;}
/* ----- headerTop fixed position ----- */
.headerTop { position: fixed; width: 100%; top: 0; z-index: 100;}
/* ----- banner_header.style1 ----- */
.banner_header.style1 { overflow: hidden;}
.banner_header.style1 .container { max-width: 1104px;}
.banner_header.style1 h1 { line-height: 1.2; padding-bottom: 24px;}
.banner_header.style1 .fv_img01 { width: 80%;}
.banner_header.style1 .fv_img02 { width: 80%;}
.banner_header.style1 .bannerImg { max-height: 538px;}
.banner_header.style1 .bannerImg img { width: 85%;}
.banner_header.style1 .gmo_row { gap: 16px;}
.banner_header.style1 .gmo_row .gmo_col.left { padding-left: 54px;}

/* ----- mobile nav sidebar sub-menu padding ----- */

@media only screen and (min-width: 769px) {
  .gmomobileNavSide .sub-menu-block { padding: 0 15px;}
}

/* ============================================================
   Swiper / Seminar slider responsive
   ============================================================ */

@media only screen and (max-width: 991px) {
  header nav { margin-top: 0px;}
  .introduction_section .step-wrapper.show_ms { display: grid;}
  .vision_section .gmo_row { grid-template-columns: 1fr;}
}

@media only screen and (max-width: 900px) {
  .seminar-slider { --container-width: 85%;}
}

@media only screen and (max-width: 767px) {
  .banner_header.title-style h1 { font-size: 26px;}
  .banner_header .mobile-base-btnWrap { position: fixed !important; z-index: 99; bottom: 0px !important;}
  ul.sideNavMobile li .parent-menu.active + .sub-menu-block,
  ul.sideNavMobile li .sub-parent-menu.active + .submenu-level-2 { border-top: 1px #5AC7C0 solid;}
  ul.sideNavMobile li:last-child,
  ul.sideNavMobile li .submenu-level-2 li:last-child { border-bottom: none;}
  .meet_family_section { margin-bottom: 30px;}
  .gmoFooterLogo, .globalLogo { max-width: 234px; width: auto;}
  .seminar-slider { overflow: hidden !important;}
  .swiper-slider-1 { --container-width: 70%;}
  .seminar-sliderWrap .seminar-slider .container { min-width: auto !important; margin-left: 0px !important;}
  .banner_header.style2 .good-design-wrap { justify-content: flex-start; gap: 0; position: relative; padding-top: 24px; padding-bottom: 24px;}
  .banner_header.style2 h1 { font-size: 28px; line-height: 1.35;}
  .banner_header.style2 .good-design-wrap h3 { text-align: left; order: 2; padding-left: 93px;}
  .banner_header.style2 .good-design-img { order: 1; position: absolute; top: -30px;}
  .banner_header.style2 { background: url('../images/index2bg.jpg') no-repeat !important; background-position: center center !important; background-size: cover !important;}
  .banner_header.style1 .gmo_row .gmo_col.left { padding-left: 0px;}
}

@media screen and (min-width: 992px) and (max-width: 1200px) {
  .banner_header.style2 .gmo_row { grid-template-columns: 458px 558px;}
}

@media screen and (max-width: 1080px) {
  .banner_header.style2 .good-design-wrap { justify-content: center;}
  .banner_header.style2 .base-btn { margin-left: auto !important; margin-right: auto;}
}

@media only screen and (max-width: 600px) {
  .seminar-slider { --container-width: 420px;}
  .swiper-slider-1 { --container-width: 70%;}
  br.mobile-only { display: block;}
}

@media only screen and (max-width: 550px) {
  .swiper-slider-1 { --container-width: 280px;}
  .aside-form-wrap .aside-form { padding: 26px 20px 36px 20px !important;}
  .aside-form-wrap .aside-form #div_contact_fix #mr_form .mr_form_inner .mr_require_checkbox.label_cb { grid-template-columns: 1fr 1fr !important;}
  header nav .navLeft { max-width: 184px;}
}

@media only screen and (max-width: 450px) {
  .seminar-slider { --container-width: 75%;}
  .swiper-slider-1 { --container-width: 280px;}
  .aside-form-wrap .aside-form { padding: 26px 10px 36px 10px !important;}
}

@media only screen and (max-width: 419px) {
  .seminar-slider { --container-width: 100%;}
  .swiper-slider-1 { --container-width: 280px;}
}

/* ============================================================
   TOP page: min_section
   ============================================================ */

.min_section { background-color: #f3f4f8; padding: 82px 20px 80px 20px; overflow: hidden;}
.min_section_header { display: grid; grid-template-columns: 100%; justify-content: center; align-items: center; gap: 50px; padding-bottom: 50px;}
.min_section_header h3 { font-size: 30px; font-weight: bold;}
.min_section_header p { display: table; margin-left: auto; margin-right: auto; font-size: 20px; font-family: "noto_sans_cjk_jpmedium", sans-serif; padding-top: 62px; line-height: 1.6;}

@media only screen and (min-width: 768px) {
  .min_section_header { grid-template-columns: 400px 580px;}
}

/* ============================================================
   TOP page: management_section logo / paragraph
   ============================================================ */

.logo-gmo { text-align: center;}
.logo-gmo img { display: block; margin: 0 auto; max-width: 293px;}
.management_section > .container > p { text-align: center;}
.management_section .title { font-size: 34px; margin-bottom: 25px;}
.track-record-section .Fee_structure .title { font-size: 34px;}

/* ============================================================
   TOP page: contact_label centering
   ============================================================ */

.contact_label { text-align: center;}
.meet_family_section .gmo_col { text-align: center;}

/* ============================================================
   TOP page: global additions (source_custom-style.css より)
   ============================================================ */

.management_section { padding-left: 22px; padding-right: 22px;}
.choose_usList { padding-left: 3px; padding-right: 3px;}
.choose_usList .gmo_row .gmo_col.gmo_colImg img { margin-left: -25px; margin-right: -25px;}

/* ============================================================
   TOP page: choose_usList additions
   ============================================================ */

.choose_usList { gap: 30px;}
.choose_usList .base-btn2 { font-size: 80%; margin-top: 20px; width: 200px; height: 48px;}
.choose_1min { font-size: 60%; line-height: 1.35;}

/* ============================================================
   TOP page: top_bnr value-btn
   ============================================================ */

ul.top_bnr li { overflow: hidden;}
ul.top_bnr li .value-btn { display: flex; width: 320px; height: 120px; text-decoration: none; background-color: white; transition: .5s all; align-items: center; justify-content: center;}
ul.top_bnr li .value-btn:hover { background: linear-gradient(77deg, rgb(255, 255, 255) 0%, rgb(255, 255, 255) 28%, rgb(159, 233, 225) 90%); border-color: #ffffff;}

/* ============================================================
   TOP page: responsive
   ============================================================ */

@media only screen and (max-width: 767px) {
  .min_section { padding: 40px 20px;}
  .min_section_header { gap: 20px;}
  .min_section_header h3 { font-size: 22px;}
  .min_section_header p { font-size: 16px; padding-top: 0;}
  ul.top_bnr li .value-btn { width: 100%; height: auto;}
}

/* ============================================================
   TOP page: clinic_successImg centering
   ============================================================ */

.clinic_successImg img { display: block; margin: 0 auto;}

/* ============================================================
   TOP page: trackrecord_nolink font-weight fix
   ============================================================ */

.clinicTags .trackrecord_nolink { font-weight: normal; font-family: "noto_sans_cjk_jp_regularRg", sans-serif;}

/* ============================================================
   TOP page: news_section
   ============================================================ */

.news_section { background-color: #f3f4f8; padding: 90px 20px 55px 20px;}
.news_section h3 { font-size: 18px; font-family: "Montserrat", sans-serif; font-weight: 600; color: #00546C;}
.news_section .gmo_row { display: grid; grid-template-columns: 1fr 1fr; gap: 110px;}
.news_section .base-btn2 { font-size: 14px; width: 200px; height: 48px;}

/* ============================================================
   TOP page: Mobile (max-width: 767px)
   ============================================================ */

@media only screen and (max-width: 767px) {
  /* --- FV (banner_header) --- */
  .banner_header { padding-top: 27px;}
  .banner_header .gmo_row { grid-template-columns: 1fr;}
  .banner_header h1 { font-size: 30px;}
  .bannerLargHeading { font-size: 60px;}
  .banner_header .base-btnWrap { display: none;}
  .banner_header .mobile-base-btnWrap { position: absolute; bottom: 70px; left: 30px; right: 30px;}
  .banner_header .mobile-base-btnWrap .base-btn { border-radius: 0; font-size: 18px; border-top-left-radius: 36px; border-top-right-radius: 36px; background: linear-gradient(77deg, rgba(0,84,108,1) 0%, rgba(0,126,143,1) 28%, rgba(28,159,145,1) 90%); color: white; margin: 0 auto; border: none;}
  .banner_header .base-btn { max-width: 348px; width: 100%; height: 70px;}
  .banner_header .base-btn svg path { stroke: #fff;}
  .bannerImg { max-width: 70%; margin-left: auto; margin-right: auto;}
  /* --- achievementList --- */
  .achievementList { grid-template-columns: repeat(2, 1fr); justify-content: center; gap: 14px;}
  .achievementList > .achievementListItem:nth-child(2) { grid-column: 1 / -1;}
  .achievementList > .achievementListItem:nth-child(2) img { max-width: 300px;}
  .achievementList img { max-width: 250px; width: 100%;}
  /* --- clinic_success / support_systems --- */
  .clinic_success,
  .support_systems { grid-template-columns: 1fr;}
  .clinic_success { gap: 24px; margin-bottom: 56px;}
  /* --- choose_usList --- */
  .choose_usList { max-width: 500px; width: 100%; margin-left: auto; margin-right: auto; gap: 50px; margin-bottom: 65px;}
  .choose_usList .gmo_row { flex-direction: column; align-items: flex-start;}
  .choose_usListItem h2 { white-space: normal;}
  /* --- key_success --- */
  .key_success { margin-right: 0;}
  .key_success .gmo_row { flex-direction: column;}
  .key_success h4 { font-size: 16px;}
  .key_success h3 { font-size: 22px;}
  /* --- management_section --- */
  .management_section { padding-bottom: 38px;}
  /* --- vision_section --- */
  .vision_section { padding: 78px 23px 57px 23px;}
  .vision_section p { padding-bottom: 26px;}
  /* --- newsList --- */
  .newsList { padding-bottom: 33px;}
  .newsList .newsitem { padding-top: 15px;}
  /* --- news_section --- */
  .news_section { padding: 50px 20px 40px 20px;}
  .news_section .gmo_row { grid-template-columns: 1fr; gap: 128px;}
  /* --- open-form-btn (aside) --- */
  .open-form-btn { opacity: 0; pointer-events: none;}
  .aside-form-wrap.active,
  .aside-form-wrap.click-active { width: 100%;}
  /* --- supporList --- */
  .supporList, .supporList_ftr { grid-template-columns: 1fr 1fr 1fr; gap: 15px; margin-bottom: 62px;}
  /* --- customer_section --- */
  .customer_section { padding-top: 0; padding-left: 15px; padding-right: 15px;}
  .customer_section_header { grid-template-columns: 1fr; margin-left: -2px; margin-right: -2px;}
  .customer_section_headerItem { max-width: 450px; margin-left: auto; margin-right: auto; width: 100%;}
  .support_systems { padding-left: 12px; padding-right: 12px; padding-top: 14px;}
  /* --- introduction_section --- */
  .introduction_section .title { font-size: 28px;}
  /* --- track-record --- */
  .track-record-section { padding-bottom: 48px; overflow-x: hidden;}
  /* --- seminar slider --- */
  .seminar-sliderWrap .container { max-width: 100%; padding-left: 0; padding-right: 0;}
  .seminarSlidDetail h4 { font-size: 16px;}
  /* --- footer --- */
  footer { padding-top: 38px;}
  footer .gmo_row.space-between { justify-content: center;}
  /* footCols等の非表示化はcommon.cssに統合済み */
  .footer_copyright { margin-top: 37px;}
  /* --- base-btn --- */
  .base-btn { width: 340px;}
  /* --- title small --- */
  .title small { font-size: 18px;}
  /* --- choose_usList --- */
  .choose_usList h2 { font-size: 32px; padding-bottom: 35px;}
  .choose_usList p { font-size: 14px;}
  /* --- supporList svg --- */
  .supporList a svg, .supporList_ftr a svg { max-height: 46px; margin-left: 0;}
  /* --- Fee_structure --- */
  .Fee_structure { padding: 58px 25px 60px 25px; margin-left: -3px; margin-right: -3px;}
  .Fee_structure .clinic_success { gap: 32px; margin-bottom: 47px;}
  .Fee_structure .clinic_success .clinic_successItem { min-height: 500px;}
  /* --- customer_section title --- */
  .customer_section .title { font-size: 28px; line-height: 1.35;}
  /* --- introduction_section --- */
  .introduction_sectionWrap { background-color: #f3f4f8; padding-left: 13px; padding-right: 13px; padding-bottom: 120px;}
  .introduction_section .step-wrapper { padding-right: 40px; grid-template-columns: 1fr; gap: 28px; max-width: 450px;}
  .introduction_section .step-wrapper.hide_ms { display: none;}
  /* title_middle_border: PC(横向き)から縦向き・右端配置に切り替え */
  .introduction_section .title_middle_border { position: absolute; right: 15px; top: 150px; bottom: 50px; width: 10px; margin: 0; font-size: 15px; display: flex; align-items: center;}
  .introduction_section .title_middle_border .border { position: absolute; top: 0; bottom: 0; left: 3px; width: 1px; background-color: #00546C;}
  .title_middle_border:before { left: 0; top: 0px; bottom: auto; border-width: 1px 0 0 1px; transform: rotate(45deg); -webkit-transform: rotate(45deg);}
  .title_middle_border:after { left: 0px; right: 3px; top: auto; bottom: 0px; border-width: 0 1px 1px 0; transform: rotate(45deg); -webkit-transform: rotate(45deg);}
  .title_middle_border span { display: block; padding: 15px 5px; margin-left: -10px; background-color: #ffffff; position: relative;}
  .title_middle_border span b { display: none;}
  .title_middle_border span img { display: inline; min-width: 18px;}
  .supportBtn { padding-bottom: 50px;}
  .step-wrapper .step-item .step-indicator { display: none;}
  .step-wrapper .step-item:nth-child(even) { padding-top: 0;}
  .step-wrapper .step-item p { position: absolute; left: 0; top: 52%; text-align: left; line-height: 1.25; padding-top: 0;}
  /* --- newsList newsitem link --- */
  .newsList .newsitem p a { min-height: 40px;}
  /* --- seminar-sliderBtn ---
     矢印(100px×2)+ボタン(240px)が横並びで収まらず重なるため、
     ボタンを矢印の下段に流し込んで重なりを解消する */
  .seminar-sliderBtn { position: static; clear: both; display: flex; justify-content: center; margin-top: 16px;}
  /* --- utility --- */
  .hide_ms { display: none;}
  .s767_block { display: block;}
}

@media only screen and (max-width: 1200px) {
  .seminar-sliderWrap .swiper-button-next, .seminar-sliderWrap .swiper-button-prev { width: 80px; height: 80px; margin-top: 30px;}
}

/* seminar-sliderWrap swiper-button: スマホでは矢印をスライダー本体(.swiper)に重ねて上下中央・左右端に配置
   .container(下段のボタン領域)を position:static にして、矢印の絶対配置の基準を
   .swiper自体(スライダー本体の高さ全体)に切り替える */
@media only screen and (max-width: 480px) {
  .seminar-sliderWrap .container { position: static;}
  .seminar-sliderWrap .swiper-button-next, .seminar-sliderWrap .swiper-button-prev { position: absolute; top: calc(50% - 40px); margin-top: 0;}
  .seminar-sliderWrap .swiper-button-prev { left: -5px;}
  .seminar-sliderWrap .swiper-button-next { right: -5px;}
  .seminar-sliderBtn { margin-top: 66px;}
}

@media only screen and (max-width: 640px) {
  .supporList, .supporList_ftr { grid-template-columns: 1fr 1fr;}
}

/* =============================================
   料金ページ (price_page)
   ============================================= */

/* --- price_page コンテナ --- */
.price_page > .container { padding: 0 32px;}

@media (min-width: 768px) and (max-width: 1023px) { .price_page > .container { padding: 0 16px;} }

@media (max-width: 767px)                          { .price_page > .container { padding: 0 8px;} }
/* --- ユーティリティ --- */
.text_green { color: #009166;}
.text_blue { color: #1C9F91;}
.text_small { font-size: 0.8em; line-height: 1.4;}
.font_bold { font-weight: bold;}
/* --- imp_txt01（注意書き） --- */
.imp_txt01 { background-color: #f5f5f5; margin: 24px 0 40px; padding: 16px 20px;}
.imp_txt01 p { font-size: 14px; line-height: 1.8;}
.imp_txt01 span { color: #009166;}

@media (max-width: 767px) { .imp_txt01 p { font-size: 13px;} }
/* --- price_body 見出し --- */
.price_body h2 { font-size: 24px; font-weight: bold; color: #333; padding: 60px 0 20px 0; margin: 40px 0 20px; border-bottom: 2px solid #009166;}
.price_body h2:first-child { margin-top: 0;}

@media (max-width: 767px) { .price_body h2 { font-size: 18px;} }
/* --- tbl02 比較表 --- */
.tbl02_wrap { overflow-x: auto; margin-bottom: 40px; width: 100%; max-width: 100%;}
table.tbl02 { width: 100%; min-width: 560px; border-collapse: collapse;}
table.tbl02 tr th,
table.tbl02 tr td { padding: 12px 16px; font-size: 14px; line-height: 1.5; border: 2px solid #ccc; vertical-align: middle; text-align: center;}
table.tbl02 tr th.tbl_ttl { background-color: #ccdeee; color: #000; border: 2px solid #fff; border-bottom: 2px solid #ccc;}
table.tbl02 tr th.pctb02_ttl02 { background-color: #f0f0f0; text-align: left;}
table.tbl02 tr th.pctb02_ttlgmo { background-color: #00b982; color: #fff; border: 3px solid #00b982;}
table.tbl02 tr td.pctb01_gmo { border-left: 3px solid #00b982; border-right: 3px solid #00b982; background-color: #e5f4ef;}
table.tbl02 tr td.tbl_lttl { background-color: #f8f9fa; font-weight: bold; text-align: left;}
.pctb01_txt02 { font-size: 11px; color: #666; display: block;}

@media (max-width: 767px) {
  table.tbl02 tr th,
  table.tbl02 tr td { font-size: 11px; padding: 6px 8px;}
}

/* --- pricing_table --- */
.pricing_table { display: flex; flex-wrap: wrap; margin: 20px auto; padding: 60px 0; background: #fff;}
.pricing_table .col_labels { display: flex; flex-direction: column; width: 20%; background-color: #f8f9fa; font-weight: bold;}
.pricing_table .col_plan { display: flex; flex-direction: column; position: relative; margin-top: 50px;}
.pricing_table .col_plan:last-child { border-right: none;}
.pricing_table .dx_plan { width: 30%; border-right: 1px solid #ccc;}
.pricing_table .standard_plan { width: 50%;}
.pricing_table .cell_header,
.pricing_table .cell_data,
.pricing_table .cell_option { padding: 15px; border-bottom: 1px solid #ccc; display: flex; align-items: center; min-height: 60px;}
.col_labels .cell_data { border-left: 4px solid #c7cbd4;}
.pricing_table .cell_option { border-bottom: none; flex-grow: 1; align-items: flex-start;}
.pricing_table .col_labels .cell_header { background-color: #fff; min-height: 352px; border: none; border-bottom: 1px solid #ccc;}
.pricing_table .mobile_label { display: none; font-weight: bold; margin-bottom: 5px; color: #555;}

@media (min-width: 768px) and (max-width: 1023px) {
  .pricing_table { padding: 40px 0;}
  .pricing_table .col_labels { width: 22%;}
  .pricing_table .dx_plan { width: 28%;}
  .pricing_table .standard_plan { width: 50%;}
}

@media (max-width: 767px) {
  .pricing_table { flex-direction: column; background: transparent; padding: 24px 0;}
  .pricing_table .col_labels { display: none;}
  .pricing_table .col_plan { width: 100%; border: 1px solid #ccc; border-radius: 10px; margin-bottom: 24px; margin-top: 0; background: #fff; overflow: hidden;}
  .pricing_table .dx_plan { border-right: 1px solid #ccc;}
  .pricing_table .cell_data { flex-direction: column; align-items: flex-start; padding: 12px 16px;}
  .pricing_table .mobile_label { display: block;}
  .pricing_table .text_center { text-align: left;}
  .pricing_table .cell_header .text_center { text-align: center;}
}

/* --- 吹き出し --- */
.speech_bubble { position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); margin-bottom: 15px; background-color: #999; color: #fff; padding: 8px 50px; border-radius: 36px; font-size: 16px; font-weight: bold; white-space: nowrap; box-shadow: 0 2px 5px rgba(0,0,0,0.2); text-align: center;}
.pricing_table .standard_plan .speech_bubble { background: linear-gradient(135deg, #38EBAE 0%, #00546C 100%); padding: 8px 90px;}
.speech_bubble::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -8px; border-width: 8px; border-style: solid; border-color: #999 transparent transparent transparent;}
.standard_plan .speech_bubble::after { border-color: #00546c transparent transparent transparent;}

@media (max-width: 767px) {
  .speech_bubble { position: static; transform: none; border-radius: 0; white-space: normal; display: block; width: 100%; margin-bottom: 0; padding: 10px 16px; font-size: 14px;}
  .pricing_table .standard_plan .speech_bubble { padding: 10px 16px;}
}

/* --- プランヘッダー上部バー --- */
.pricing_table .plan_header_top { padding: 0; margin: -15px -15px 10px 0; height: 8px; width: 100%; border-radius: 12px 12px 0 0;}
.pricing_table .dx_plan .plan_header_top { background-color: #c7cbd4;}
.pricing_table .standard_plan .plan_header_top { background: linear-gradient(135deg, #38EBAE 0%, #00546C 100%);}
/* --- プランタイトル・価格 --- */
.pricing_table .plan_title { font-size: 1.5em; font-weight: bold; margin: 10px 0 5px; padding: 10px 0;}
.pricing_table .plan_price { font-size: 1.8em; font-weight: bold; margin: 10px 0;}
.pricing_table .plan_price span { font-size: 0.6em;}

@media (min-width: 768px) and (max-width: 1023px) {
  .pricing_table .plan_title { font-size: 1.2em;}
  .pricing_table .plan_price { font-size: 1.4em;}
}

@media (max-width: 767px) {
  .pricing_table .plan_title { font-size: 1.2em;}
  .pricing_table .plan_price { font-size: 1.5em;}
}

/* --- アイコンボックス --- */
.col_plan .feature_icons li .box { display: grid; width: 100%; height: 80px; min-width: 100px; padding: 0 0 3px; border: 1px solid #ddd; border-radius: 6px; background: #fff; grid-template-columns: 100%; grid-template-rows: 52px 1fr; transition: background-color .2s;}
.col_plan .feature_icons li .box p { font-size: 11px; font-weight: 500; line-height: 1.2; text-align: center; grid-column: 1; grid-row: 2; align-self: center;}
.col_plan .feature_icons li .box::before { width: 50px; height: 52px; grid-row: 1; grid-column: 1; justify-self: center; content: ''; background-repeat: no-repeat; background-position: center bottom; background-size: 100% auto;}
/* DXプランアイコン */
.dx_plan .feature_icons li:nth-child(1) .box::before { background-image: image-set(url(/common/images/products/function_icon2_2.webp) 1x, url(/common/images/products/function_icon2_2@2x.webp) 2x);}
.dx_plan .feature_icons li:nth-child(2) .box::before { background-image: image-set(url(/common/images/products/function_icon2_9.webp) 1x, url(/common/images/products/function_icon2_9@2x.webp) 2x);}
.dx_plan .feature_icons li:nth-child(3) .box::before { background-image: image-set(url(/common/images/products/function_icon2_12.webp) 1x, url(/common/images/products/function_icon2_12@2x.webp) 2x);}
/* スタンダードプラン：集患 */
.standard_plan .card_shukan ul li:nth-child(1) .box::before { background-image: image-set(url(/common/images/products/function_icon2_12.webp) 1x, url(/common/images/products/function_icon2_12@2x.webp) 2x);}
.standard_plan .card_shukan ul li:nth-child(2) .box::before { background-image: image-set(url(/common/images/products/function_icon2_14.webp) 1x, url(/common/images/products/function_icon2_14@2x.webp) 2x);}
.standard_plan .card_shukan ul li:nth-child(3) .box::before { background-image: image-set(url(/common/images/products/function_icon2_19.webp) 1x, url(/common/images/products/function_icon2_19@2x.webp) 2x);}
.standard_plan .card_shukan ul li:nth-child(4) .box::before { background-image: image-set(url(/common/images/products/function_icon2_24.webp) 1x, url(/common/images/products/function_icon2_19@2x.webp) 2x);}
/* スタンダードプラン：再診促進 */
.standard_plan .card_saishin ul li:nth-child(1) .box::before { background-image: image-set(url(/common/images/products/function_icon2_17.webp) 1x, url(/common/images/products/function_icon2_17@2x.webp) 2x);}
.standard_plan .card_saishin ul li:nth-child(2) .box::before { background-image: image-set(url(/common/images/products/function_icon2_18.webp) 1x, url(/common/images/products/function_icon2_18@2x.webp) 2x);}
.standard_plan .card_saishin ul li:nth-child(3) .box::before { background-image: image-set(url(/common/images/products/function_icon2_20.webp) 1x, url(/common/images/products/function_icon2_20@2x.webp) 2x);}
.standard_plan .card_saishin ul li:nth-child(4) .box::before { background-image: image-set(url(/common/images/products/function_icon2_21.webp) 1x, url(/common/images/products/function_icon2_21@2x.webp) 2x);}
/* スタンダードプラン：業務効率化 */
.standard_plan .card_kouritu ul li:nth-child(1) .box::before { background-image: image-set(url(/common/images/products/function_icon2_13.webp) 1x, url(/common/images/products/function_icon2_13@2x.webp) 2x);}
.standard_plan .card_kouritu ul li:nth-child(2) .box::before { background-image: image-set(url(/common/images/products/function_icon2_11.webp) 1x, url(/common/images/products/function_icon2_11@2x.webp) 2x);}
.standard_plan .card_kouritu ul li:nth-child(3) .box::before { background-image: image-set(url(/common/images/products/function_icon2_7.webp) 1x, url(/common/images/products/function_icon2_7@2x.webp) 2x);}
.standard_plan .card_kouritu ul li:nth-child(4) .box::before { background-image: image-set(url(/common/images/products/function_icon2_9.webp) 1x, url(/common/images/products/function_icon2_9@2x.webp) 2x);}
/* スタンダードプラン：経営高度化 */
.standard_plan .card_keiei ul li:nth-child(1) .box::before { background-image: image-set(url(/common/images/products/function_icon2_12.webp) 1x, url(/common/images/products/function_icon2_12@2x.webp) 2x);}
.standard_plan .card_keiei ul li:nth-child(2) .box::before { background-image: image-set(url(/common/images/products/function_icon2_22.webp) 1x, url(/common/images/products/function_icon2_22@2x.webp) 2x);}
.standard_plan .card_keiei ul li:nth-child(3) .box::before { background-image: image-set(url(/common/images/products/function_icon2_23.webp) 1x, url(/common/images/products/function_icon2_23@2x.webp) 2x);}
/* --- standard_plan グリッド・カード --- */
.standard_plan_gridcon { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; max-width: 800px; width: 100%; margin: 0 auto;}
.card { background-color: #fff; border-radius: 8px; padding: 0 20px; display: flex; flex-direction: column; align-items: center;}
.card_title { font-weight: bold; text-align: center; padding: 8px 0;}
.icon_wrapper { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px;}
/* .pricing_table .feature_icons の display:flex を上書き（specificity 0,3,0） */
.standard_plan .icon_wrapper.feature_icons { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; justify-content: unset; list-style: none; margin-top: 15px;}

@media (min-width: 768px) and (max-width: 1023px) {
  .standard_plan_gridcon { gap: 12px;}
}

@media (max-width: 767px) {
  .standard_plan_gridcon { grid-template-columns: 1fr; gap: 12px;}
  .card { padding: 0 12px 12px;}
  .standard_plan .icon_wrapper.feature_icons { grid-template-columns: repeat(2, 1fr);}
}

/* --- option_content --- */
.pricing_table .option_content h4 { color: #00546c; text-align: center; margin: 0 0 15px; font-size: 1em; font-weight: bold;}
.pricing_table .option_section_title { text-align: center; border-top: 1px solid #eee; border-bottom: 1px solid #eee; padding: 6px 0; margin: 15px 0; font-size: 13px;}
.pricing_table .option_list { padding-left: 20px; margin: 0 0 10px; list-style: none;}
.pricing_table .option_list li { margin-bottom: 5px; font-size: 13px;}
.pricing_table .feature_icons { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 15px; list-style: none;}
/* --- price_cta --- */
.price_cta { display: flex; flex-wrap: wrap; justify-content: center; padding: 16px 0; border-top: 1px solid #eee;}
.price_cta .dx_entry a { display: block; margin-bottom: 10px;}
.price_cta .price_ctabtn { margin: 8px 16px;}
.price_cta .price_ctabtn a { display: flex; justify-content: center; align-items: center; line-height: 1.25; color: #1C9F91; border: 1px solid #1C9F91; text-decoration: none; background-color: white; border-radius: 40px; font-weight: bold; font-size: 16px; padding: 12px 18px; min-height: 48px; transition: .5s all; text-align: center;}
.price_cta .standard_docdl a { position: relative; overflow: hidden;}
.price_cta .standard_docdl a::after { content: ""; background-image: linear-gradient(77deg, rgba(0,84,108,1) 0%, rgba(0,126,143,1) 28%, rgba(28,159,145,1) 90%); position: absolute; top: 0; right: 0; bottom: 0; left: 0; border-radius: 40px; z-index: 0; transition: all 0.5s ease-out;}
.price_cta .standard_docdl a span { color: #fff; z-index: 1; position: relative;}
.dx_plan .price_cta { flex-direction: column; align-items: stretch; padding-left: 10px; padding-right: 10px;}
.dx_plan .price_cta .price_ctabtn { margin: 8px 0; width: 100%;}
.dx_plan .price_cta .price_ctabtn a { width: 100%; box-sizing: border-box;}
.dx_plan .price_cta .dx_entry { display: flex; flex-direction: column; gap: 8px;}
.dx_plan .price_cta .dx_entry a { display: block; margin-bottom: 0;}
.standard_plan .price_cta { flex-direction: column; align-items: center;}
.standard_plan .price_cta .price_ctabtn { margin: 8px 0; width: 80%; max-width: 360px;}
.standard_plan .price_cta .price_ctabtn a { width: 100%;}

@media (max-width: 767px) {
  .price_cta { flex-direction: column; align-items: center;}
  .price_cta .price_ctabtn { margin: 6px 0; width: 100%;}
  .price_cta .price_ctabtn a { width: 100%; font-size: 14px; padding: 12px;}
  .price_cta .dx_entry { display: flex; flex-direction: column; gap: 8px;}
  .price_cta .dx_entry a { margin-bottom: 0;}
  .standard_plan .price_cta .price_ctabtn { width: 100%; max-width: none;}
}

/* ============================================================
   FAQ ページ（products/faq/index.php）
   ============================================================ */

/* イントロ文 */
.faq_intro { font-size: 16px; line-height: 1.8; margin-bottom: 40px;}
/* カテゴリ見出し h2 */
.faq_body h2 { background-color: #f5f5f5; border-radius: 10px; font-size: 22px; padding: 16px 24px; margin-top: 48px; margin-bottom: 32px;}
.faq_body h2:first-child { margin-top: 0;}
/* FAQ リスト */
.faq_body ul { list-style: none; padding: 0; margin: 0;}
.faq_body li { border-bottom: 1px solid #e4e4e4; padding: 20px 8px;}
.faq_body li:first-child { border-top: 1px solid #e4e4e4;}
/* Q 見出し h3 */
.faq_body h3 { font-size: 16px; font-weight: bold; margin: 0 0 10px 0; line-height: 1.6;}
.faq_body h3 span { display: block;}
/* 回答テキスト */
.faq_body li p:not(.link) { font-size: 15px; line-height: 1.8; margin: 0 0 8px 0; color: #333;}
/* p.link は common.css の標準デザイン（p.link.base-btn2.whiteBg）に統一。
   FAQページのみ本文密度に合わせ文字サイズを16pxに縮小（意図的な例外） */
.faq_body p.link.base-btn2.whiteBg a { font-size: 16px;}
/* タブレット (768px – 1023px) */

@media only screen and (min-width: 768px) and (max-width: 1023px) {
  .faq_intro { font-size: 15px;}
  .faq_body h2 { font-size: 20px; padding: 14px 20px;}
  .faq_body li { padding: 18px 8px;}
}

/* スマホ (max-width: 767px) */

@media only screen and (max-width: 767px) {
  .faq_intro { font-size: 14px; margin-bottom: 24px;}
  .faq_body h2 { font-size: 16px; padding: 12px 14px; margin-top: 32px; border-radius: 6px;}
  .faq_body li { padding: 16px 4px;}
  .faq_body h3 { font-size: 14px;}
  .faq_body li p:not(.link) { font-size: 14px;}
}

/* ============================================================
   同系テキストページ共通（accessibility, privacy, kiyaku 等）
   page_body クラスを section または entry-content に付与して使用。
   直接子セレクター（>）を使用することで、faq_body 等の内部要素への
   スタイル波及を防止している。
   ============================================================ */

.page_body { padding: 70px 0;}
.page_body_intro { font-size: 16px; line-height: 1.8; margin-bottom: 32px; color: #333;}
/* 同系テキストページ 標準 h2/h3/h4 デザイン（/accessdata 基準。2026-08-13統一）
   対象: accessdata, accessibility, requirement, request, informationsecurity, security */
.accessdata_page .entry-content h2,
.accessibility_page .entry-content h2,
.requirement_page .entry-content h2,
.request_page .entry-content h2,
.informationsecurity_page .entry-content h2,
.security_page .entry-content h2 { background-color: #f5f5f5; border-radius: 10px; font-size: 22px; padding: 16px 24px; margin-top: 48px; margin-bottom: 32px;}
.accessdata_page .entry-content h2:first-of-type,
.accessibility_page .entry-content h2:first-of-type,
.requirement_page .entry-content h2:first-of-type,
.request_page .entry-content h2:first-of-type,
.informationsecurity_page .entry-content h2:first-of-type,
.security_page .entry-content h2:first-of-type { margin-top: 0;}
.accessdata_page .entry-content h3,
.accessibility_page .entry-content h3,
.requirement_page .entry-content h3,
.request_page .entry-content h3,
.informationsecurity_page .entry-content h3,
.security_page .entry-content h3 { font-size: 18px; font-weight: bold; margin-top: 32px; margin-bottom: 12px; line-height: 1.4; color: #333;}
.accessdata_page .entry-content h4,
.accessibility_page .entry-content h4,
.requirement_page .entry-content h4,
.request_page .entry-content h4,
.informationsecurity_page .entry-content h4,
.security_page .entry-content h4 { font-size: 16px; font-weight: bold; margin-top: 20px; margin-bottom: 8px; color: #333;}
.page_body > p:not(.faq_intro) { font-size: 16px; line-height: 1.8; margin-bottom: 12px; color: #333;}
/* タブレット (768px – 1023px) */

@media only screen and (min-width: 768px) and (max-width: 1023px) {
  .page_body_intro { font-size: 15px;}
  .accessdata_page .entry-content h2,
  .accessibility_page .entry-content h2,
  .requirement_page .entry-content h2,
  .request_page .entry-content h2,
  .informationsecurity_page .entry-content h2,
  .security_page .entry-content h2 { font-size: 20px; padding: 14px 20px;}
  .accessdata_page .entry-content h3,
  .accessibility_page .entry-content h3,
  .requirement_page .entry-content h3,
  .request_page .entry-content h3,
  .informationsecurity_page .entry-content h3,
  .security_page .entry-content h3 { font-size: 17px; margin-top: 28px;}
  .page_body > p:not(.faq_intro) { font-size: 15px;}
}

/* スマホ (max-width: 767px) */

@media only screen and (max-width: 767px) {
  .page_body_intro { font-size: 14px; margin-bottom: 20px;}
  .accessdata_page .entry-content h2,
  .accessibility_page .entry-content h2,
  .requirement_page .entry-content h2,
  .request_page .entry-content h2,
  .informationsecurity_page .entry-content h2,
  .security_page .entry-content h2 { font-size: 16px; padding: 12px 14px; margin-top: 32px; border-radius: 6px;}
  .accessdata_page .entry-content h3,
  .accessibility_page .entry-content h3,
  .requirement_page .entry-content h3,
  .request_page .entry-content h3,
  .informationsecurity_page .entry-content h3,
  .security_page .entry-content h3 { font-size: 15px; margin-top: 24px;}
  .accessdata_page .entry-content h4,
  .accessibility_page .entry-content h4,
  .requirement_page .entry-content h4,
  .request_page .entry-content h4,
  .informationsecurity_page .entry-content h4,
  .security_page .entry-content h4 { font-size: 14px; margin-top: 16px;}
  .page_body > p:not(.faq_intro) { font-size: 14px;}
}

/* ============================================================
   サイトマップページ（sitemap/index.php）
   ============================================================ */

.sitemap_body { margin: 0 10%;}
ul#sitemap_list { list-style: none; padding: 0; margin: 0;}
ul#sitemap_list > li { display: flex; align-items: flex-start; padding: 10px 0; border-bottom: 1px solid #e8e8e8; line-height: 1.6;}
ul#sitemap_list > li:first-child { border-top: 1px solid #e8e8e8;}
ul#sitemap_list li::before { font-family: 'Material Icons'; content: '\e5e1'; font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; font-size: 16px; margin: 3px 10px 0 0; flex-shrink: 0; color: #009166;}
ul#sitemap_list a { color: #333; text-decoration: none; line-height: 1.6; font-size: 15px;}
ul#sitemap_list a:hover { color: #009166; text-decoration: underline;}
ul#sitemap_list a[aria-current="page"] { color: #009166; font-weight: bold;}
/* ネスト（子）リスト */
ul#sitemap_list ul.children { list-style: none; padding: 0; margin: 8px 0 0 0; width: 100%;}
/* 2階層目（機能一覧などの子リスト）は少し字下げして親と区別 */
ul#sitemap_list ul.children ul.children { margin-left: 20px;}
ul#sitemap_list ul.children li { display: flex; align-items: flex-start; border-bottom: none; padding: 4px 0;}
ul#sitemap_list ul.children li::before { font-size: 14px; margin-top: 2px; color: #aaa;}
ul#sitemap_list ul.children a { font-size: 14px; color: #555;}
ul#sitemap_list ul.children a:hover { color: #009166;}
/* タブレット (768px – 1023px) */

@media only screen and (min-width: 768px) and (max-width: 1023px) {
  .sitemap_body { margin: 0 4%;}
}

/* スマホ (max-width: 767px) */

@media only screen and (max-width: 767px) {
  .sitemap_body { margin: 0;}
  ul#sitemap_list > li { padding: 8px 0;}
  ul#sitemap_list li::before { font-size: 14px; margin-top: 2px;}
  ul#sitemap_list a { font-size: 14px;}
  ul#sitemap_list ul.children a { font-size: 13px;}
}

/* ============================================================
   サポート体制ページ（support/index.php）
   ============================================================ */

/* support_policy_lp: サポート体制メインラッパー（旧 lp_wid 相当） */
.support_policy_lp section h2 { color: #00546C; margin: 0; padding: 3% 0 1% 0; font-size: 28px; line-height: 1.3; text-align: center;}
.support_policy_lp section .st-aside { padding: 6% 4%; font-size: 16px;}
.support_policy_lp section .st-aside p,
.support_policy_lp section .st-aside ul li { font-size: 22px; margin: 0 1% 4% 1%; position: relative;}
/* spcy 背景・セクション共通 */
.spcy img { width: 100%;}
.spcy .spcy_movie { background-color: #F3F6F8;}
.spcy .spcy_movie .st-aside { margin: 80px auto 0; padding: 0; min-height: 350px;}
.spcy .spcy_movie .st-aside iframe { width: 100%; height: 350px;}
.spcy .spcy_movie .st-aside p { font-size: 21px; font-weight: bold; width: 100%; line-height: 1.3; padding: 20px 20px 0; margin: 0;}
.spcy .spcy_index { background-color: #F3F6F8;}
.spcy .spcy_before { background-color: #F3F6F8;}
.spcy .spcy_before .st-aside ul li { width: 100%; margin: 0; font-size: inherit;}
.spcy .spcy_before .st-aside ul li:last-child { margin-right: 0;}
.spcy .spcy_after { background-color: #E9F7F4;}
.spcy .spcy_after p { text-align: center;}
.spcy .spcy_security .st-aside { text-align: center;}
.spcy .spcy_security p { text-align: left;}
.spcy .spcy_security img { margin: 0 auto;}
.spcy .spcy_faq .st-aside { margin-bottom: 50px;}
.spcy .spcy_faq ul li a { text-decoration: underline;}
.spcy .spcy_faq h2 { margin-bottom: 40px;}
/* セクション h2 前アイコン */
.spcy .spcy_before h2::before,
.spcy .spcy_after h2::before,
.spcy .spcy_security h2::before,
.spcy .spcy_faq h2::before { content: ""; display: block; width: 84px; height: 70px; background-image: url('/common/images/support/sec_img.webp'); background-repeat: no-repeat; background-position: center; background-size: contain; margin: 0 auto; padding: 0 0 30px 0;}
/* toggle FAQ */
.support_policy_lp .online_faq dl.toggle_contents { border-top: 1px solid #00546C;}
.support_policy_lp .online_faq dl:last-child { border-bottom: 1px solid #00546C;}
.support_policy_lp .online_faq dt.toggle_title { position: relative; padding: 4% 12% 4% 5%; cursor: pointer; font-size: 15px; line-height: 1.4; font-weight: bold; text-align: left;}
.support_policy_lp .online_faq dt.toggle_title span { color: #00546C; font-size: 16px;}
.support_policy_lp .online_faq dt.toggle_title span.toggle_btn { position: absolute; top: 48%; right: 5%; transform: translateY(-50%); display: block; width: 24px; height: 24px; text-indent: 100%; white-space: nowrap; overflow: hidden;}
.support_policy_lp .online_faq dt.toggle_title span.toggle_btn::before,
.support_policy_lp .online_faq dt.toggle_title span.toggle_btn::after { display: block; content: ""; background-color: #00546C; position: absolute; width: 18px; height: 4px; top: 50%; left: 50%; transform: translate(-50%, -50%);}
.support_policy_lp .online_faq dt.toggle_title span.toggle_btn::before { width: 4px; height: 18px;}
.support_policy_lp .online_faq dt.toggle_title.selected .toggle_btn::before { content: normal;}
.support_policy_lp .online_faq dl.toggle_contents dd { display: none;}
.support_policy_lp .online_faq .st-aside dd ul li { background-color: #f7f9fa; margin: 0 4% 4%; padding: 4%; font-size: 16px; text-align: left;}
/* PC (min-width: 768px) */

@media only screen and (min-width: 768px) {
  .spcy { background-image: url('/common/images/support/spcy_movie_bg.webp'); background-repeat: no-repeat; background-position: 0 0;}
  .spcy.support_policy_lp section h2 { font-size: 40px; margin-bottom: 30px; padding-top: 0;}
  .spcy .spcy_before h2::before,
  .spcy .spcy_after h2::before,
  .spcy .spcy_security h2::before,
  .spcy .spcy_faq h2::before { width: 78px;}
  .spcy .spcy_movie .st-aside { margin: 0 auto; padding: 80px 0 40px 0; text-align: center; min-height: 600px;}
  .spcy .spcy_movie .st-aside iframe { width: 786px; height: 440px;}
  .spcy .spcy_movie .st-aside p { font-size: 28px; width: 55%; line-height: 1.3; margin: 0 auto; padding: 0;}
  .spcy .spcy_security .st-aside img:first-of-type { width: 40%; /* 1250px設計基準でコンテンツ幅1150px × 40% = 460px */}
  .spcy .spcy_security .st-aside img.pco { width: 90%;}
  .spcy .spcy_before .st-aside ul { display: flex;}
  .spcy .spcy_before .st-aside ul li { width: 31.8%; margin: 0 2% 0 0;}
  .support_policy_lp .online_faq dt.toggle_title { padding: 3% 12% 3% 5%;}
  .support_policy_lp .online_faq .st-aside dd ul li { padding: 3% 4%;}
}

/* タブレット (768px – 1023px) */

@media only screen and (min-width: 768px) and (max-width: 1023px) {
  .support_policy_lp section .st-aside { padding: 4% 3%;}
}

/* スマホ (max-width: 767px) */

@media only screen and (max-width: 767px) {
  .support_policy_lp section h2 { font-size: 22px; padding: 6% 0 2% 0;}
  .support_policy_lp section .st-aside p,
  .support_policy_lp section .st-aside ul li { font-size: 16px;}
  .spcy .spcy_movie .st-aside p { font-size: 16px;}
}

/* ============================================================
   ご意見・ご要望ページ（request/index.php）
   ============================================================ */

.banner_header.title-style.requirement_banner { background-image: url(/common/images/banner.webp);}
.requirement_page .page_body ul.requirement li { display: flex; align-items: center; gap: 10px;}
.requirement_page .page_body ul.requirement li img { width: 24px; height: 24px; object-fit: contain; flex-shrink: 0;}

@media only screen and (min-width: 768px) {
  .requirement_page .page_body ul.requirement { display: flex; gap: 24px;}
}

.privacy_page .entry-content h2 { background-color: #f5f5f5; border: none; border-radius: 10px; font-size: 28px; padding: 3% 6%; margin: 4% 0;}
.kiyaku_page .entry-content h2 { background-color: #f5f5f5; border: none; border-radius: 10px; font-size: 28px; padding: 3% 6%; margin: 4% 0;}
.privacy_page .entry-content h3,
.kiyaku_page .entry-content h3,
.api_kiyaku_page .entry-content h3,
.kiyaku_for_patient_page .entry-content h3 { background: none; border-top: 2px solid #e4e4e4; border-bottom: 2px solid #e4e4e4; margin: 7% 0 5% 0; padding: 3% 0; font-size: 20px; font-weight: bold; line-height: 1.5;}
.requirement_page .page_body ul.comment { list-style: none; padding: 0;}
.requirement_page .page_body ul.comment li { position: relative; padding-left: 1.4em;}
.requirement_page .page_body ul.comment li::before { content: "*"; position: absolute; left: 0;}
/* p.toptxt/h4/pの独自デザインは page_body_intro・同系テキストページ共通h4・page_body > p に統一済み */
.security_page .page_body ul,
.request_page .page_body ul,
.requirement_page .page_body ul { margin: 2% 0;}
.security_page .page_body ul li,
.request_page .page_body ul li,
.requirement_page .page_body ul li { line-height: 1.8; font-size: 16px;}
.security_page .page_body ul li span,
.request_page .page_body ul li span,
.requirement_page .page_body span { font-size: 18px; color: #3399cc;}
/* req_faq */
ul.req_faq li { line-height: 30px; margin-bottom: 2%; text-indent: -10px; padding-left: 20px;}
ul.req_faq li a { text-decoration: underline;}
ul.req_faq ul.atxt li { margin-bottom: 0; text-indent: 0; padding-left: 0;}
/* request_list */
ul.request_list { display: flex; flex-wrap: wrap; margin: 2% 20px 2% 0; list-style: none; padding: 0;}
ul.request_list li { background-color: #ffe555; position: relative; width: 100%; text-align: center; margin: 0 0 2% 0; font-size: 20px; font-weight: bold;}
ul.request_list li a { display: block; padding: 3.5% 0 4% 0; color: #333; text-decoration: none;}
ul.request_list li i { font-size: 28px; margin-right: 2%;}
ul.request_list li::before { content: ""; top: 0; left: 0; border-bottom: 2.5em solid transparent; border-left: 3em solid #fff; position: absolute;}
/* placeholder（CEO バナー画像準備中） */
.placeholder { margin-top: 32px; padding: 40px; background-color: #f5f5f5; text-align: center; color: #999; font-size: 14px; border-radius: 4px;}
/* PC (min-width: 768px) */

@media only screen and (min-width: 768px) {
  ul.request_list li { background-color: #1C9F91; width: 48%; margin-right: 2%;}
  ul.request_list li a { color: #fff;}
}

/* タブレット (768px – 1023px) */

@media only screen and (min-width: 768px) and (max-width: 1023px) {}
/* スマホ (max-width: 767px) */

@media only screen and (max-width: 767px) {
  .security_page .page_body ul li,
  .request_page .page_body ul li,
  .requirement_page .page_body ul li { font-size: 14px;}
  .security_page .page_body ul li span,
  .request_page .page_body ul li span,
  .requirement_page .page_body ul li span { font-size: 16px;}
  ul.req_faq li { line-height: 1.8;}
  ul.request_list { margin: 4% 0;}
  ul.request_list li { font-size: 16px;}
}

/* ==================================================
   CEOメッセージ (/ceomessage/)
================================================== */

.ceomessage { margin: 0 4%;}
.ceomessage h2 { background: url("/common/images/ceo/ceo_h2_bg_sp.png") no-repeat; background-size: 100%; margin: 4% 0 2% 0; padding: 12% 0 4% 12%; text-align: left;}
.ceo_04 h2,
.ceo_05 h2,
.ceo_06 h2 { background: url("/common/images/ceo/ceo_h2_bg02_sp.png") no-repeat; background-size: 100%; padding: 4% 0 4% 12%;}
.ceomessage h3 { border: none; display: inline;}
.ceomessage p { font-size: 16px; padding: 2% 0;}
.ceo_01 { position: relative;}
.ceo_01 img { position: absolute; top: 0;}
.ceo_01 p { padding: 210px 0 4% 0;}
.ceo_03 img { float: right; margin: 0 0 4% 4%;}
.ceo_06 img { width: 100%;}
/* PC (min-width: 768px) */

@media only screen and (min-width: 768px) {
  .ceomessage h2 { background: url("/common/images/ceo/ceo_h2_bg.png") no-repeat; background-size: auto; padding: 10% 0 4% 12%;}
  .ceo_04 h2,
  .ceo_05 h2,
  .ceo_06 h2 { background: url("/common/images/ceo/ceo_h2_bg02.png") no-repeat; background-size: auto; padding: 4% 0 4% 12%;}
  .ceo_01 img { width: 100%;}
  .ceo_01 p { padding: 440px 0 4% 0;}
}

/* ============================================
   標準下層ページ: #content 最大幅 1250px（lp.css 非読込ページ向け）
   TOP（is_top_page）・LP型（is_lp_page）では適用しない
   ============================================ */

body:not(.is_lp_page):not(.is_top_page) #content { max-width: 1250px; margin-left: auto; margin-right: auto; width: 100%; box-sizing: border-box;}

/* ============================================================
   患者の医院選びと予約行動に関する調査（reservation_survey/index.php）
   移転元: lp.css（当ページは common.css + style.css のみ）
   ============================================================ */

.banner_header.title-style.reservation_survey_banner { background-image: url(/common/images/banner.webp);}
.reservation_survey_section_intro { padding: 30px;}
.reservation_survey_footnote { color: #333; padding: 0 40px;}
.reservation_survey_lp .reservation_survey-box { width: 100%; padding: 0; box-shadow: 0 4px 4px rgba(0, 0, 0, 0.25); border-radius: 10px; font-size: 16px;}
.reservation_survey_lp section h2 span { font-size: 40px;}

@media screen and (max-width: 600px) {
  .banner_header.title-style.reservation_survey_banner .page-title-container { padding-left: 10%;}
  .reservation_survey_lp section h2 span { font-size: 20px;}
  .reservation_survey_banner .rs_col { display: block;}
  .reservation_survey_banner .rs_fv { padding-right: 0;}
  .reservation_survey_banner .rs_fv p { font-size: 12px; padding-top: 10px;}
  .reservation_survey_banner .rs_fv_img { width: 50%; margin: auto; padding-top: 5px;}
  .reservation_survey_lp section .reservation_survey-box p { padding: 10px 20px 0 20px; font-size: 12px;}
}

.reservation_survey_banner .rs_col { display: flex; flex-wrap: wrap;}
.reservation_survey_banner .rs_fv { padding-right: 60px;}
.reservation_survey_banner .rs_fv h1 { padding-top: 10px;}
.reservation_survey_banner .rs_fv p { font-size: 12px; padding-top: 30px; color: #fff;}
.reservation_survey_banner .rs_fv span { font-weight: bold; font-size: 12px; padding: 5px 10px; color: #b08772; background: #fff; border-radius: 20px;}
/* Q.質問文見出しとその下のグラフ画像: 左右に軽くパディングを入れて画面端との余白を確保 */
.reservation_survey_lp h2.title,
.reservation_survey_lp .flow img.rs_graf { padding: 0 8px;}
.reservation_survey_lp section h2 { color: #00546c; margin: 0; padding: 3% 0; font-size: 30px; line-height: 1.3; text-align: center; background-color: #fff;}
.reservation_survey_lp .reservation_survey-box p { padding: 30px 50px;}
.reservation_survey_lp .entry-content h2,
.reservation_survey_lp #st-page .entry-content_products h1,
.reservation_survey_lp .entry-content_products h2 { background-color: transparent;}
.reservation_survey_lp .entry-content > section { margin-bottom: 70px;}
.reservation_survey_lp section p.rs_comment { padding: 60px 40px; color: #00546c; font-size: 16px;}
.reservation_survey_lp .flow { text-align: center;}
.reservation_survey_lp .flow img.rs_graf { margin: auto;}

/* ============================================================
   メディカル革命が選ばれる理由（reason/index.php）
   本文・コンポーネントの基礎スタイルは common.css（.reason / .three_reason 等）
   参照元の source_custom-* / source_open は common へ先行取り込み済みのため、
   当ページ分はバナー背景と補助ラッパーのみを style.css に記載。
   ============================================================ */

.banner_header.title-style.reason.reason_banner { background-image: url(/common/images/banner.webp);}
/* 旧マークアップの入れ子を整理したラッパー（見た目変更不要なら未使用でも可） */
.reason_operation_flow { overflow: hidden;}
.reason_operation_txt p { margin: 0; color: #333;}
/* key_success: 見出し階層を h3 に統一（旧 h4 見た目の列） */
.key_success h3.reason_key_muted { padding: 23px 0; color: #1c1c1c; font-family: "noto_sans_cjk_jpmedium", sans-serif; text-align: center; font-size: 16px; line-height: 1.6; font-weight: normal;}
/* reason 本文: セクション背景はビューポート幅、内側 .container のみ 1250px（当ページ専用・共通化しない） */
body:not(.is_lp_page):not(.is_top_page) #content.reason_content_fullbleed { max-width: none; width: 100%; padding-left: 0; padding-right: 0; box-sizing: border-box;}
.reason_content_fullbleed .reason_strengths_page > section { padding-inline: 0; box-sizing: border-box;}
.reason_content_fullbleed .reason_strengths_page .meet_family_section { padding-inline: 0; box-sizing: border-box;}
.reason_content_fullbleed .reason_strengths_page section .container,
.reason_content_fullbleed .reason_strengths_page .meet_family_section .container { max-width: 1250px; box-sizing: border-box; margin-left: auto; margin-right: auto; padding-left: 8px; padding-right: 8px;}

@media screen and (min-width: 768px) {
  .reason_content_fullbleed .reason_strengths_page section .container,
  .reason_content_fullbleed .reason_strengths_page .meet_family_section .container { padding-left: 16px; padding-right: 16px;}
}

@media screen and (min-width: 1024px) {
  .reason_content_fullbleed .reason_strengths_page section .container,
  .reason_content_fullbleed .reason_strengths_page .meet_family_section .container { padding-left: 32px; padding-right: 32px;}
}

/* ============================================================
   メディカル革命の4つの価値（/value/01〜04）
   元: medical/common/assets/css/value.css 相当。クラスはスネークケースに統一。
   ============================================================ */

.banner_header.title-style.value_banner { position: relative; background-image: url(/common/images/banner.webp); background-size: cover; background-position: center top;}
.banner_header.title-style.value_banner::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to right, rgba(0, 137, 123, 0.95), rgba(0, 137, 123, 0.6)); z-index: 0; pointer-events: none;}
.banner_header.title-style.value_banner > .container,
.banner_header.title-style.value_banner > .breadcrum-wrapper { position: relative; z-index: 1;}
.banner_header.title-style.value_banner .value_banner_lead { color: #fff; font-size: 14px; line-height: 1.8; opacity: 0.95; margin: 0; max-width: 640px;}
.banner_header.title-style.value_banner .page-title-container { justify-content: flex-start;}
.banner_header.title-style.value_banner .gmo_row { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr); align-items: start;}
.banner_header.title-style.value_banner .gmo_col { width: 100%; text-align: left;}

@media screen and (min-width: 768px) {
  .banner_header.title-style.value_banner .gmo_row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 32px;}
  .banner_header.title-style.value_banner .gmo_col { grid-column: 1;}
  .banner_header.title-style.value_banner .value_banner_lead { font-size: 18px;}
}

.value_lp .fade_in_section { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease-out, transform 0.8s ease-out;}
.value_lp .fade_in_section.is_visible { opacity: 1; transform: translateY(0);}
.value_lp .stagger_item { opacity: 0;}
.value_lp .fade_in_section.is_visible .stagger_item { animation: value_fade_in_up 0.6s ease-out forwards;}
.value_lp .fade_in_section.is_visible .stagger_item:nth-child(1) { animation-delay: 0.1s;}
.value_lp .fade_in_section.is_visible .stagger_item:nth-child(2) { animation-delay: 0.2s;}
.value_lp .fade_in_section.is_visible .stagger_item:nth-child(3) { animation-delay: 0.3s;}
.value_lp .fade_in_section.is_visible .stagger_item:nth-child(4) { animation-delay: 0.4s;}

@keyframes value_fade_in_up {
  from { opacity: 0; transform: translateY(20px);}
  to { opacity: 1; transform: translateY(0);}
}

.value_lp .container { width: 100%; max-width: 1250px; margin-left: auto; margin-right: auto; box-sizing: border-box;}

@media screen and (max-width: 767px) {
  .value_lp .container { padding-left: 8px; padding-right: 8px;}
}

@media screen and (min-width: 768px) and (max-width: 1023px) {
  .value_lp .container { padding-left: 16px; padding-right: 16px;}
}

@media screen and (min-width: 1024px) {
  .value_lp .container { padding-left: 32px; padding-right: 32px;}
}

.value_lp .value_links_section { background-color: #fff; padding: 24px 0;}
.value_lp .value_links_list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; list-style: none; margin: 0; padding: 0;}
.value_lp .value_links_item { margin: 0;}
.value_lp .value_links_btn { display: block; width: 100%; text-align: center; border: 2px solid #00b982; color: #00b982; background: transparent; border-radius: 10px; padding: 10px; font-size: inherit; font-weight: 500; text-decoration: none; transition: background-color 0.2s, color 0.2s; box-sizing: border-box;}
.value_lp .value_links_btn:hover { background-color: #00b982; color: #fff;}
.value_lp .value_links_btn_current { background-color: #00b982; color: #fff; cursor: default; pointer-events: none;}

@media screen and (min-width: 1024px) {
  .value_lp .value_links_list { grid-template-columns: repeat(4, 1fr); gap: 20px;}
  .value_lp .value_links_btn { padding: 14px 10px;}
}

.value_lp .value_feature_section { padding: 64px 0;}

@media screen and (min-width: 768px) {
  .value_lp .value_feature_section { padding: 100px 0;}
}

.value_lp .value_feature_white { background-color: #fff;}
.value_lp .value_feature_gray { background-color: #f9fafb;}
.value_lp .value_feature_header { display: flex; align-items: center; gap: 32px; margin-bottom: 60px;}
.value_lp .value_feature_header_text { flex: 1;}
.value_lp .value_feature_number { font-size: 80px; font-weight: 700; color: #e5e7eb; line-height: 1; margin-bottom: 8px; font-family: "Montserrat", sans-serif;}

@media screen and (min-width: 768px) {
  .value_lp .value_feature_number { font-size: 120px;}
}

.value_lp .value_feature_title { margin-bottom: 12px; color: #00546c;}
.value_lp .value_feature_subtitle { color: #00897b; font-size: 18px; font-weight: 700;}
.value_lp .value_feature_subtitle:empty { display: none;}

@media screen and (min-width: 768px) {
  .value_lp .value_feature_subtitle { font-size: 30px;}
}

.value_lp .value_feature_main_img { display: none;}

@media screen and (min-width: 768px) {
  .value_lp .value_feature_main_img { display: block; flex-shrink: 0; align-self: flex-start; width: min(100%, 400px); aspect-ratio: 16 / 9; height: auto; background-color: #eee; border-radius: 8px; cursor: pointer; position: relative; overflow: hidden;}
  .value_lp .value_feature_main_img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; border-radius: 8px;}
}

.value_lp .value_feature_grid { display: grid; grid-template-columns: 1fr; gap: 24px;}

@media screen and (min-width: 768px) {
  .value_lp .value_feature_grid { grid-template-columns: repeat(3, 1fr); gap: 32px;}
}

.value_lp .value_card_img { width: 100%; height: auto; background-color: #fff; border-radius: 8px; margin-bottom: 16px; cursor: pointer; position: relative; overflow: hidden;}
.value_lp .value_card_img.no_pointer_cursor { cursor: default;}
.value_lp .value_card_img img { width: 100%; height: auto; object-fit: contain; border-radius: 8px;}
.value_lp .clickable_img { cursor: pointer; position: relative; overflow: hidden;}
.value_lp .clickable_img::after { content: ''; position: absolute; inset: 0; background-color: rgba(0, 0, 0, 0); transition: background-color 0.2s;}
.value_lp .clickable_img:hover::after { background-color: rgba(0, 0, 0, 0.1);}
.value_lp .clickable_img_zoom { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(255, 255, 255, 0.85); border-radius: 50%; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.2s; z-index: 1; pointer-events: none;}
.value_lp .clickable_img:hover .clickable_img_zoom { opacity: 1;}
.value_lp .clickable_img.no_pointer_cursor { cursor: default;}
.value_lp .value_feature_main_img.no_pointer_cursor { cursor: default;}
.value_lp .value_feature_main_img.no_pointer_cursor .clickable_img_zoom { display: none;}
.value_lp .value_card_title { font-size: 16px; font-weight: 700; margin-bottom: 10px; color: #333;}
.value_lp .value_card_body { font-size: 14px; color: #333; margin-bottom: 8px; line-height: 1.6;}
.value_lp .value_card_body:empty { display: none;}
.value_lp .value_card_note { font-size: 12px; color: #333;}
.value_lp .value_card_note strong { display: inline-block; border: 1px solid #00b982; border-radius: 12px; padding: 2px 10px; margin-right: 6px; font-weight: 700; vertical-align: baseline; line-height: 1.35;}
#value_modal_overlay.value_modal_overlay { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 16px; background-color: rgba(0, 0, 0, 0.7); backdrop-filter: blur(4px); opacity: 0; pointer-events: none; transition: opacity 0.2s;}
#value_modal_overlay.value_modal_overlay.is_open { opacity: 1; pointer-events: auto;}
.value_modal_box { position: relative; width: 100%; max-width: 1000px; transform: scale(0.95); transition: transform 0.2s;}
#value_modal_overlay.value_modal_overlay.is_open .value_modal_box { transform: scale(1);}
.value_modal_close { position: absolute; top: -36px; right: 0; background: none; border: none; color: #fff; font-size: 13px; cursor: pointer; display: flex; align-items: center; gap: 4px; opacity: 0.85; transition: opacity 0.2s;}
.value_modal_close:hover { opacity: 1;}
.value_modal_img { width: 100%; height: auto; border-radius: 8px; box-shadow: 0 25px 50px rgba(0, 0, 0, 0.4); display: block;}
/* /value/01〜04: セクション背景はビューポート幅、内側 .container のみ max 1250px（当サイト群専用・reason と同型） */
body:not(.is_lp_page):not(.is_top_page) #content.value_content_fullbleed { max-width: none; width: 100%; padding-left: 0; padding-right: 0; box-sizing: border-box;}
.value_content_fullbleed .value_lp > section { padding-inline: 0; box-sizing: border-box;}
.value_content_fullbleed .value_lp .container { max-width: 1250px; box-sizing: border-box; margin-left: auto; margin-right: auto; padding-left: 8px; padding-right: 8px;}

@media screen and (min-width: 768px) {
  .value_content_fullbleed .value_lp .container { padding-left: 16px; padding-right: 16px;}
}

@media screen and (min-width: 1024px) {
  .value_content_fullbleed .value_lp .container { padding-left: 32px; padding-right: 32px;}
}

/* ============================================================
   セミナー・コラム一覧（/columnandwebinar/index.php）
   ============================================================ */

body:not(.is_lp_page):not(.is_top_page) #content.columnandwebinar_content_fullbleed { max-width: none; width: 100%; margin-left: 0; margin-right: 0; box-sizing: border-box; background: url(/common/images/column/page_header_bg.jpg) no-repeat top left;}
.columnandwebinar_content_fullbleed #contentInner { width: 100%;}
.columnandwebinar_content_fullbleed .column_header,
.columnandwebinar_content_fullbleed .breadcrumbs .st-aside,
.columnandwebinar_content_fullbleed .mainbox { max-width: 1250px; margin-left: auto; margin-right: auto;}
.column_webinar_page .column_mv { margin: 24px auto 100px; width: 100%; max-width: none; padding: 0 8px; box-sizing: border-box;}
.column_webinar_page .column_mv_slider { margin: 0; padding: 0; list-style: none; overflow: hidden; border-radius: 8px;}
.column_webinar_page .column_mv_slide_link { display: block;}
.column_webinar_page .column_mv_slide_link img { width: 100%; height: auto; display: block; border-radius: 8px; margin: 0;}
.column_webinar_page .column_mv_slider .slick-dots { bottom: 10px;}
.column_webinar_page .column_mv_slider .slick-dots li button:before { color: #fff; opacity: 0.7;}
.column_webinar_page .column_mv_slider .slick-dots li.slick-active button:before { color: #fff; opacity: 1;}

@media screen and (max-width: 767px) {
  .column_webinar_page .column_mv_slider .slick-slide { padding: 0 8px !important; box-sizing: border-box;}
  .column_webinar_page .column_mv_slide_link img { width: min(280px, 78vw) !important;}
}

@media screen and (min-width: 1024px) {
  .column_webinar_page .column_mv { max-width: none; width: 100%;}
  .column_webinar_page .column_mv_slider .slick-slide { padding: 0 15px !important; box-sizing: border-box;}
  .column_webinar_page .column_mv_slide_link img { width: 500px !important;}
}

.column_webinar_page .column_theme { margin: 20px 0 28px;}
.column_webinar_page .column_theme_ttl { display: inline-block; margin-bottom: 12px; font-size: 14px; color: #333;}
.column_webinar_page .column_theme_list { display: flex; flex-wrap: wrap; gap: 8px;}
.column_webinar_page .column_theme_list a { display: inline-block; border: 1px solid #c8d7de; border-radius: 999px; padding: 6px 12px; font-size: 12px; color: #00546c; text-decoration: none; background: #fff;}
.column_webinar_page .column_theme_list a.all { background: #007e8f; color: #fff; border-color: #007e8f;}
.column_webinar_page .js_accordion_toggle { cursor: pointer;}
.column_webinar_page .column_seminar_postlist .post_card .cats { margin-top: 12px;}
.column_webinar_page .column_seminar { margin: 0 0 170px 0;}
.column_webinar_page .column_seminar_postlist { max-width: 1330px; display: flex; flex-wrap: nowrap; column-gap: 40px; overflow-x: auto; margin: 40px -18vw 0 0; padding: 0 0 36px 0;}
.column_webinar_page .column_seminar_postlist .post_card { width: 340px; flex: 0 0 340px; flex-shrink: 0;}
.column_webinar_page .column_seminar_postlist .post_card .content { min-height: 150px;}
.column_webinar_page .column_seminar_postlist .post_card .title { margin-bottom: 12px;}
.column_webinar_page .column_seminar_postlist .post_card .title a { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden;}
.column_webinar_page .column_seminar_postlist .meta { float: left;}
.column_webinar_page .column_seminar_postlist .method { display: inline-block; font-size: 12px; color: #00546c; background: #e6f4f7; border-radius: 999px; padding: 4px 10px;}
.column_webinar_page .column_seminar_postlist .cats { float: right; flex-direction: column; margin-top: 10px;}
.column_webinar_page .column_seminar_postlist .cats span { width: 140px; text-align: center; justify-content: center;}
.column_webinar_page .column_seminar_postlist::-webkit-scrollbar { height: 8px;}
.column_webinar_page .column_seminar_postlist::-webkit-scrollbar-thumb { background: #333; border-radius: 8px;}
.column_webinar_page .post_side .post_card .title { margin-bottom: 8px;}

@media screen and (min-width: 768px) {
  .column_webinar_page .column_seminar { margin: 0 0 10% 0;}
  .column_webinar_page .column_seminar_postlist .post_card { width: 360px; flex: 0 0 360px;}
  .column_webinar_page .column_mv { padding: 0 16px;}
}

@media screen and (min-width: 1024px) {
  .column_webinar_page .column_seminar_postlist .post_card { width: 380px; flex: 0 0 380px;}
  .column_webinar_page .column_mv { padding: 0 32px;}
}

@media screen and (max-width: 1249px) {
  .column_webinar_page .js_accordion_content { display: none;}
}

/* 全ページ共通: 本文とフッターの間隔 */
#content { padding-bottom: 70px;}

/* ==================================================
   Security (/security/)
================================================== */

.security_banner { background-image: url(/common/images/banner.webp);}
.security_page .security_content_img { display: block; margin: 0 auto 60px;}
.security_page .security_medis_figure { display: flex; align-items: flex-start; gap: 20px; margin: 16px 0 12px 0;}
.security_page .security_medis_pmark { width: 100px; height: auto; flex: 0 0 100px;}
.security_page .security_medis_text { font-size: 16px; line-height: 1.8; color: #333;}

@media only screen and (max-width: 767px) {
  .security_page .security_medis_figure { flex-direction: column; gap: 12px; margin: 12px 0;}
  .security_page .security_medis_pmark { width: 120px; flex: 0 0 120px;}
}

/* ==================================================
   Information Security (/informationsecurity/)
================================================== */

.informationsecurity_banner { background-image: url(/common/images/banner.webp);}
.informationsecurity_body > ol { margin: 8px 0 20px 1.4em; padding: 0;}
.informationsecurity_body > ol > li { font-size: 16px; line-height: 1.8; margin-bottom: 8px; color: #333;}
.informationsecurity_body > .informationsecurity_signature { text-align: right; margin-top: 24px;}

@media only screen and (max-width: 767px) {
  .informationsecurity_body > ol > li { font-size: 14px;}
}

/* ==================================================
   Privacy (/privacy/)
================================================== */

.privacy_banner { background-image: url(/common/images/banner.webp);}
.kiyaku_banner { background-image: url(/common/images/banner.webp);}
.api_kiyaku_banner { background-image: url(/common/images/banner.webp);}
.kiyaku_for_patient_banner { background-image: url(/common/images/banner.webp);}
.kiyaku_for_patient_page .entry-content h2 { background-color: #f5f5f5; border: none; border-radius: 10px; font-size: 28px; padding: 3% 6%; margin: 4% 0;}
.api_kiyaku_page .entry-content h2 { background-color: #f5f5f5; border: none; border-radius: 10px; font-size: 28px; padding: 3% 6%; margin: 4% 0;}

.privacy_body > .privacy_signature { text-align: right; margin-top: 24px;}
.privacy_body a { text-decoration: underline;}

/* ============================================================
   ユーティリティ（accessdata 等で使用）
   ============================================================ */

.mt10 { margin-top: 10px;}
.mb20 { margin-bottom: 20px;}

/* ============================================================
   アクセスデータページ（accessdata/index.php）
   h2/h3/h4 は「同系テキストページ共通」セクションの標準デザインに統一済み
   ============================================================ */

@media only screen and (max-width: 767px) {
  .mt10 { margin-top: 8px;}
  .mb20 { margin-bottom: 16px;}
}

/* ============================================================
   エコシステムパートナーページ（ecopartner/index.php）
   ============================================================ */

/* CSS変数（ページスコープ） */
.ecopartnerPage { --color-black: #333; --color-green: #068a7d;}
/* アニメーション */

@keyframes menuFadeIn {
  0% { opacity: 0;}
  100% { opacity: 1;}
}

@keyframes menuFadeOut {
  0% { opacity: 1;}
  99% { opacity: 0;}
  100% { display: none; opacity: 0;}
}

@keyframes fadeIn {
  0% { opacity: 0;}
  100% { opacity: 1;}
}

@keyframes fadeOut {
  0% { opacity: 1;}
  100% { opacity: 0;}
}

@keyframes moveLeftRight {
  0% { transform: translateX(-10px);}
  90% { transform: translateX(10px);}
  100% { transform: translateX(10px);}
}

@keyframes moveLeftRightSP {
  0% { transform: translateX(calc(calc(4/393) * -100vw));}
  85% { transform: translateX(calc(calc(4/393) * 100vw));}
  100% { transform: translateX(calc(calc(4/393) * 100vw));}
}

@keyframes poyoyon {
  0% { transform: translateX(140px); opacity: 0;}
  50% { transform: translateX(0);}
  65% { transform: translateX(30px);}
  100% { transform: translateX(0);}
  50%, 100% { opacity: 1;}
}

@keyframes poyoyonRevarse {
  0% { transform: translateX(-140px); opacity: 0;}
  50% { transform: translateX(0);}
  65% { transform: translateX(-30px);}
  100% { transform: translateX(0);}
  50%, 100% { opacity: 1;}
}

@keyframes poyoyonSP {
  0% { transform: translateX(calc(calc(70/393) * 100vw)); opacity: 0;}
  50% { transform: translateX(0);}
  65% { transform: translateX(calc(calc(15/393) * 100vw));}
  100% { transform: translateX(0);}
  50%, 100% { opacity: 1;}
}

@keyframes poyoyonRevarseSP {
  0% { transform: translateX(calc(calc(70/393) * -100vw)); opacity: 0;}
  50% { transform: translateX(0);}
  65% { transform: translateX(calc(calc(15/393) * -100vw));}
  100% { transform: translateX(0);}
  50%, 100% { opacity: 1;}
}

/* 共通 */
.ecopartnerPage * { font-family: "noto_sans_cjk_jp_regularRg", sans-serif; font-style: normal;}
.ecopartnerPage .ecopartnerContents { width: min(calc(100% - 40px), 1250px); padding: 97px 0 137px; margin-inline: auto;}
.ecopartnerPage .ecopartnerContents * { color: var(--color-black);}
.ecopartnerPage .ecopartnerContents .spShow { display: none;}
.ecopartnerPage .ecopartnerContents .pcShow { display: inline-block;}
.ecopartnerPage .ecopartnerContents img { height: auto;}
.ecopartnerPage .ecopartnerContents a { text-decoration: none; color: var(--color-black);}
/* メディカル革命セクション */
.ecopartnerContents .medicalReserve { position: relative; display: grid; max-width: 1043px; margin-inline: auto; grid-template-columns: 1fr 1fr; grid-template-rows: auto 1fr; gap: 35px; container-type: inline-size;}
.ecopartnerContents .medicalReserve > h2 { position: absolute; z-index: 2; top: 50%; left: 50%; width: calc(calc(388/1043) * 100cqw); justify-self: center; align-self: center; translate: -50% -50%;}
.ecopartnerContents .medicalReserve .medicalReserveSec { z-index: 1; display: grid; width: 100%; max-width: 400px; padding: 33px 40px 33px 71px; border: 12px solid #e8f0f2; border-radius: 10px; background: #fff; grid-template-rows: subgrid; grid-row: span 2; gap: 0;}
.ecopartnerContents .medicalReserve .medicalReserveSec h2 { font-size: 20px; font-weight: 700; line-height: 1.5; position: relative; max-width: 240px; margin-bottom: 24px; padding-bottom: 6px; color: var(--color-green); border-bottom: 1px solid var(--color-black);}
.ecopartnerContents .medicalReserve .medicalReserveSec h2::before { position: absolute; bottom: -1px; width: 50px; height: 2px; content: ''; background: var(--color-black);}
.ecopartnerContents .medicalReserve .medicalReserveSec p { font-size: 16px; font-weight: 500; line-height: 1.5;}

@media (max-width: 825px) {
  .ecopartnerContents .medicalReserve .medicalReserveSec p .pcShow { display: none;}
}

.ecopartnerContents .medicalReserve .medicalReserveSec:nth-child(even) h2::before { left: 0;}
.ecopartnerContents .medicalReserve .medicalReserveSec:nth-child(odd) h2 { text-align: right;}
.ecopartnerContents .medicalReserve .medicalReserveSec:nth-child(odd) h2::before { right: 0;}
.ecopartnerContents .medicalReserve .medicalReserveSec1 { padding-left: 59px; grid-column: 1;}
.ecopartnerContents .medicalReserve .medicalReserveSec1 p { padding-left: 10px;}
.ecopartnerContents .medicalReserve .medicalReserveSec2 { padding-left: 70px; grid-column: 2; align-self: start; justify-self: end;}
.ecopartnerContents .medicalReserve .medicalReserveSec2 p { padding-left: 40px;}
.ecopartnerContents .medicalReserve .medicalReserveSec3 { padding-left: 59px; grid-column: 1; align-self: end; justify-self: start;}
.ecopartnerContents .medicalReserve .medicalReserveSec3 p { padding-left: 14px;}
.ecopartnerContents .medicalReserve .medicalReserveSec4 { padding-left: 70px; grid-column: 2; align-self: end; justify-self: end;}
.ecopartnerContents .medicalReserve .medicalReserveSec4 p { padding-left: 2px;}
/* リード文 */
.ecopartnerContents .read { font-size: 24px; font-weight: 500; line-height: 1.5; max-width: 1117px; margin: 130px auto 0;}
/* pageNav */
.ecopartnerContents .pageNav { display: flex; min-height: 140px; margin-top: 60px; padding: 30px 60px; border: 4px solid var(--color-green); border-radius: 8px; justify-content: space-between; align-items: center; gap: 13px;}
.ecopartnerContents .pageNav h2 { font-size: 16px; font-weight: 700; display: flex; flex-shrink: 0; align-items: center;}
.ecopartnerContents .pageNav h2::before { width: 25px; height: 23px; margin-right: 6px; content: ''; background: url('../images/ecopartner/arrow_ic.svg') no-repeat center center / contain; flex-shrink: 0;}
.ecopartnerContents .pageNav .pcNav { display: flex; flex-flow: row wrap; align-items: center; justify-content: center; gap: 13px;}
.ecopartnerContents .pageNav .pcNav a { font-size: 16px; font-weight: 700; display: grid; min-height: 40px; padding: 5px 42px; border: 6px solid #e8f0f2; border-radius: 20px; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.25); place-content: center;}
.ecopartnerContents .pageNav .pcNav a:hover { opacity: .8;}
.ecopartnerContents .pageNav .spNav { display: none;}
/* リスト見出し */
.column_heading { position: relative; padding-top: 14px;}
.column_heading::before { position: absolute; top: 0; left: -5%; display: inline-block; width: 200px; content: ''; background: url('../images/ecopartner/page_heading_bg.png') no-repeat top left/cover; aspect-ratio: 200/56;}
.column_heading::after { position: absolute; z-index: 2; top: 0; left: 0; width: 100vw; height: 4px; margin: 0 calc(50% - 50vw); content: ''; background: url('../images/ecopartner/colorbar.png') no-repeat top left/cover;}
.column_heading_inner { position: relative; display: flex; flex-direction: column; padding: 3% 6%; background-color: #fff; box-shadow: 0 1px 0 rgba(0,0,0,.16); align-items: flex-start; gap: 10px 10%;}
.column_heading_ttl { font-size: 20px; font-weight: 700; line-height: 1.5; margin: 0 !important; padding: 0; text-align: left;}
.column_heading_ttl span { font-size: 20px;}
.column_heading_desc { font-size: 14px; margin: 0 !important;}

@media print, screen and (min-width: 768px) {
  .column_heading { padding-top: 32px;}
  .column_heading::before { left: -100px; width: 400px; aspect-ratio: 400/128;}
  .column_heading::after { width: 70vw; height: 8px;}
  .column_heading_inner { flex-direction: row; border-bottom: 1px solid #ccc; box-shadow: none;}
  .column_heading_ttl { font-size: 28px;}
}

/* パートナー一覧 */
.ecopartnerContents .ecopartnerList .listRow { display: grid; margin-top: 87px; padding: 53px 37px; background: #f3f6f8; grid-template-columns: 1fr 1fr 1fr; gap: 43px;}
.ecopartnerContents .ecopartnerList .ecopartnerBox { display: grid; padding: 29px 21px 52px; border-radius: 10px; background: #fff; grid-template-rows: subgrid; grid-row: span 5; gap: 0;}
.ecopartnerContents .ecopartnerList .ecopartnerBox .logo { display: flex; margin-bottom: 33px; text-align: center; align-items: center;}
.ecopartnerContents .ecopartnerList .ecopartnerBox h2 { font-size: 24px; font-weight: 700; line-height: 1.5; margin-bottom: 10px;}
.ecopartnerContents .ecopartnerList .ecopartnerBox .company { font-size: 20px; font-weight: 700; line-height: 1.5; margin-bottom: 25px; color: var(--color-green);}
.ecopartnerContents .ecopartnerList .ecopartnerBox .description { font-size: 16px; line-height: 1.5;}
.ecopartnerContents .ecopartnerList .ecopartnerBox .goSiteBtn { font-size: 16px; font-weight: 700; display: grid; width: 240px; height: 39px; margin: 23px auto 0; padding-bottom: .1em; text-align: center; border: 6px solid #e8f0f2; border-radius: 20px; background-color: #fff; background-image: image-set(
    url('../images/ecopartner/other_tab.png') 1x,
    url('../images/ecopartner/other_tab@2x.png') 2x
  ); background-repeat: no-repeat; background-position: calc(100% - 24px) center; background-size: 21px auto; place-content: center;}
.ecopartnerContents .ecopartnerList .ecopartnerBox .goSiteBtn:hover { opacity: .8;}
.ecopartnerContents .ecopartnerList1 { margin-top: 82px;}
.ecopartnerContents .ecopartnerList + .ecopartnerList { margin-top: 110px;}
.ecopartnerContents .ecopartnerList4 .ecopartnerBox h2 { margin-bottom: 39px;}
/* タブレット (768px – 1023px) */

@media only screen and (min-width: 768px) and (max-width: 1023px) {
  .ecopartnerContents .ecopartnerList .listRow { grid-template-columns: 1fr 1fr; gap: 32px; padding: 40px 24px;}
  .ecopartnerContents .ecopartnerList .ecopartnerBox { grid-template-rows: auto; grid-row: auto;}
  .ecopartnerContents .medicalReserve .medicalReserveSec { padding: 24px 30px 24px 40px;}
  .ecopartnerContents .read { font-size: 20px; margin-top: 80px;}
  .ecopartnerContents .pageNav { padding: 24px 32px;}
}

/* スマホ (max-width: 767px) */

@media only screen and (max-width: 767px) {
  .ecopartnerPage .ecopartnerContents { width: 100%; padding: calc(calc(70/393) * 100vw) 0;}
  .ecopartnerPage .ecopartnerContents .spShow { display: inline-block;}
  .ecopartnerPage .ecopartnerContents .pcShow { display: none;}
  .ecopartnerPage .ecopartnerContents img { width: 100%;}
  .ecopartnerContents .medicalReserve { max-width: calc(calc(376/393) * 100vw); gap: calc(calc(44/393) * 100vw) calc(calc(20/393) * 100vw);}
  .ecopartnerContents .medicalReserve > h2 { width: calc(calc(133/393) * 100vw);}
  .ecopartnerContents .medicalReserve .medicalReserveSec { max-width: none; padding: calc(calc(22/393) * 100vw) 0; border: calc(calc(6/393) * 100vw) solid #e8f0f2; border-radius: calc(calc(10/393) * 100vw);}
  .ecopartnerContents .medicalReserve .medicalReserveSec h2 { font-size: calc(calc(15/393) * 100vw); position: relative; width: auto; min-height: calc(calc(37/393) * 100vw); margin-bottom: calc(calc(15/393) * 100vw); padding-bottom: calc(calc(7/393) * 100vw); color: var(--color-green); border-bottom: none;}
  .ecopartnerContents .medicalReserve .medicalReserveSec h2::before { bottom: calc(calc(1/393) * 100vw); width: calc(calc(15/393) * 100vw); height: calc(calc(2/393) * 100vw);}
  .ecopartnerContents .medicalReserve .medicalReserveSec h2::after { position: absolute; bottom: 0; left: 0; width: calc(calc(130/393) * 100vw); height: calc(calc(1/393) * 100vw); content: ''; background: var(--color-black);}
  .ecopartnerContents .medicalReserve .medicalReserveSec p { font-size: calc(calc(14/393) * 100vw);}
  .ecopartnerContents .medicalReserve .medicalReserveSec:nth-child(odd) h2 { text-align: justify;}
  .ecopartnerContents .medicalReserve .medicalReserveSec:nth-child(odd) h2::before { right: auto; left: 0;}
  .ecopartnerContents .medicalReserve .medicalReserveSec1 { padding-left: calc(calc(15/393) * 100vw);}
  .ecopartnerContents .medicalReserve .medicalReserveSec1 p { padding-right: calc(calc(15/393) * 100vw); padding-left: 0;}
  .ecopartnerContents .medicalReserve .medicalReserveSec2 { padding-left: calc(calc(20/393) * 100vw);}
  .ecopartnerContents .medicalReserve .medicalReserveSec2 p { padding-right: calc(calc(7/393) * 100vw); padding-left: 0;}
  .ecopartnerContents .medicalReserve .medicalReserveSec3 { padding-left: calc(calc(15/393) * 100vw);}
  .ecopartnerContents .medicalReserve .medicalReserveSec3 p { padding-right: calc(calc(15/393) * 100vw); padding-left: 0;}
  .ecopartnerContents .medicalReserve .medicalReserveSec4 { padding-left: calc(calc(20/393) * 100vw);}
  .ecopartnerContents .medicalReserve .medicalReserveSec4 p { padding-right: calc(calc(15/393) * 100vw); padding-left: 0;}
  .ecopartnerContents .read { font-size: calc(calc(16/393) * 100vw); max-width: calc(calc(349/393) * 100vw); margin: calc(calc(26/393) * 100vw) auto 0;}
  .ecopartnerContents .pageNav { min-height: 0; margin-top: calc(calc(54/393) * 100vw); padding: calc(calc(19/393) * 100vw) calc(calc(40/393) * 100vw) calc(calc(19/393) * 100vw) calc(calc(36/393) * 100vw); border: none; border-radius: calc(calc(8/393) * 100vw); background: #f3f6f8; flex-flow: column; justify-content: center; align-items: center; gap: calc(calc(14/393) * 100vw) 0;}
  .ecopartnerContents .pageNav h2 { font-size: calc(calc(16/393) * 100vw); width: 100%; padding-left: calc(calc(19/393) * 100vw); flex-shrink: auto;}
  .ecopartnerContents .pageNav h2::before { display: none;}
  .ecopartnerContents .pageNav .pcNav { display: none;}
  .ecopartnerContents .pageNav .spNav { position: relative; display: block; width: 100%;}
  .ecopartnerContents .pageNav .spNav .label { font-size: calc(calc(16/393) * 100vw); font-weight: 700; position: relative; z-index: 1; display: flex; width: 100%; height: calc(calc(50/393) * 100vw); padding: 0 calc(calc(50/393) * 100vw) .15em calc(calc(50/393) * 100vw); border: calc(calc(6/393) * 100vw) solid #e8f0f2; border-radius: calc(calc(25/393) * 100vw); background: url('../images/ecopartner/sp_arrow_ic.svg') no-repeat calc(100% - calc(calc(50/393) * 100vw)) center; background-color: #fff; background-size: calc(calc(16/393) * 100vw) auto; align-items: center;}
  .ecopartnerContents .pageNav .spNav select { position: absolute; z-index: 2; top: 0; left: 0; width: 100%; height: calc(calc(50/393) * 100vw); cursor: pointer; opacity: 0;}
  .ecopartnerContents .pageNav .spNav select option { font-size: 16px;}
  .ecopartnerContents .ecopartnerList .listRow { margin-top: calc(calc(35/393) * 100vw); padding: calc(calc(20/393) * 100vw) calc(calc(16.5/393) * 100vw); grid-template-columns: 100%; gap: calc(calc(35/393) * 100vw);}
  .ecopartnerContents .ecopartnerList .ecopartnerBox { padding: calc(calc(29/393) * 100vw) calc(calc(20/393) * 100vw) calc(calc(52/393) * 100vw); border-radius: calc(calc(10/393) * 100vw); grid-template-rows: auto; grid-row: auto;}
  .ecopartnerContents .ecopartnerList .ecopartnerBox .logo { margin-bottom: calc(calc(8/393) * 100vw);}
  .ecopartnerContents .ecopartnerList .ecopartnerBox h2 { font-size: calc(calc(20/393) * 100vw); margin-bottom: calc(calc(2/393) * 100vw);}
  .ecopartnerContents .ecopartnerList .ecopartnerBox .company { font-size: calc(calc(16/393) * 100vw); margin-bottom: calc(calc(13/393) * 100vw);}
  .ecopartnerContents .ecopartnerList .ecopartnerBox .description { font-size: calc(calc(15/393) * 100vw);}
  .ecopartnerContents .ecopartnerList .ecopartnerBox .goSiteBtn { font-size: calc(calc(15/393) * 100vw); width: calc(calc(238/393) * 100vw); height: calc(calc(39/393) * 100vw); margin: calc(calc(40/393) * 100vw) auto 0; border: calc(calc(6/393) * 100vw) solid #e8f0f2; border-radius: calc(calc(20/393) * 100vw); background-image: url('../images/ecopartner/other_tab@2x.png'); background-position: calc(100% - calc(calc(24/393) * 100vw)) center; background-size: calc(calc(21/393) * 100vw) auto;}
  .ecopartnerContents .ecopartnerList1 { margin-top: calc(calc(42/393) * 100vw);}
  .ecopartnerContents .ecopartnerList + .ecopartnerList { margin-top: calc(calc(42/393) * 100vw);}
  .ecopartnerContents .ecopartnerList4 .ecopartnerBox h2 { margin-bottom: calc(calc(13/393) * 100vw);}
}

/* ========================================
   この記事を書いた人（author card）
======================================== */

.author-card { box-sizing: border-box; border: 1px solid rgba(124, 139, 173, 0.35); border-radius: 10px; padding: 40px; background: #ffffff; margin-top: 40px;}
.author-head { display: flex; align-items: center; gap: 10px; padding-bottom: 20px; margin-bottom: 28px; border-bottom: 1px solid rgba(124, 139, 173, 0.35);}
.author-pen-icon { flex: none; width: 28px; height: 28px; color: #16a178;}
.author-head h2 { font-weight: 700; font-size: 16px; line-height: 1.4; letter-spacing: 0.02em; color: #17181b; margin: 0;}
.author-body { display: flex; align-items: flex-start;}
.author-main { flex: 1; min-width: 0;}
.author-title-row { display: flex; align-items: center; gap: 16px; padding-bottom: 14px; margin-bottom: 14px;}
.author-title-text { flex: 1; min-width: 0;}
.author-name-row { margin-bottom: 0;}
.author-name { font-weight: 700; font-size: 20px; line-height: 1.3; color: #17181b;}
.author-affil { display: flex; flex-direction: column; gap: 4px; padding-top: 10px; margin-top: 10px; position: relative;}
.author-affil::before { content: ""; position: absolute; top: 0; left: 0; width: 70%; height: 2px; background: linear-gradient(to right, #24b180, #00546c);}
.author-org { font-weight: 700; font-size: 14px; line-height: 24px; color: #077d5a;}
.author-role { font-weight: 500; font-size: 14px; line-height: 24px; color: #5b6886;}
.author-icon { flex: none; width: 125px; height: 125px; border-radius: 50%; overflow: hidden; display: block;}
.author-icon img { width: 100%; height: 100%; object-fit: cover; display: block;}
section.author-card .author-bio { font-weight: 400; font-size: 14px; line-height: 24px; color: #17181b; margin: 0;text-align: left;}

@media (max-width: 860px) {
    .author-card { width: 100%;}
    .author-body { flex-direction: column; align-items: center; text-align: center;}
    .author-title-row { flex-direction: column; align-items: center;}
    .author-affil::before { left: 50%; transform: translateX(-50%);}
    .author-name-row { justify-content: center;}
}

/* ============================================================
  FV新デザイン（fv-renewal）
  Montserrat フォントは index.astro の slot="head" で読み込み
  既存CSSに影響しないよう .fv_new_ 接頭辞で統一
  ============================================================ */

/* Montserrat（2,700数字用）: 既存サイトに未導入のため追加 */

/* ========================================
  セクション全体
======================================== */

.fv_new { width: 100%; overflow: hidden;}

/* ========================================
  ヒーローエリア
======================================== */

.fv_new_hero { position: relative; width: 100%; height: 52.78vw; overflow: hidden; max-height: 700px;}
/*
  【ヘッダー重ね配置について】
  Figmaデザインではヘッダーがこのヒーロー背景に重なるレイアウトです。
  既存ヘッダーに以下を追加すると完全一致します：
    header { position: absolute; top: 29px; left: 0; width: 100%; z-index: 10; }
  ヘッダーを絶対配置に変更しない場合は .fv_new_hero の height を 635px に、
  .fv_new_content の top を 36px に変更してください。
*/

/* ========================================
  スライダー（4枚フェード）
======================================== */

.fv_new_slider { position: absolute; inset: 0;}
.fv_new_slide { position: absolute; left: 0; top: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1s ease-in-out;}
.fv_new_slide.is_active { opacity: 1;}
.fv_new_slide img { width: 100%; height: 100%; object-fit: cover; display: block;}

/* ========================================
  コンテンツオーバーレイ
======================================== */

.fv_new_content { position: absolute; top: 60px; left: calc((100% - 1000px) / 2); width: 463px; z-index: 2; display: flex; flex-direction: column; gap: 36px;}
/* ---- タイトル ---- */
.fv_new_title_block { display: flex; flex-direction: column; gap: 0;}
.fv_new_title_text { position: relative; height: 104px; width: 417px;}
.fv_new_title_img { position: absolute; left: 0; top: 0; width: 271px; height: 104px; max-width: none;}
.fv_new_title_suffix { position: absolute; left: 283px; top: 50px; font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 32px; color: #fff; line-height: 1.6; white-space: nowrap;}
.fv_new_heading { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 38px; color: #fff; line-height: 1.35; margin: 0;}
.fv_new_heading_accent { color: #D1B28B;}
/* ---- 実績 + 権威性バッジ ---- */
.fv_new_meta { display: flex; gap: 8px; align-items: center;}
/* 2,700件統計ブロック */
.fv_new_stats { position: relative; width: 249px; height: 160px; flex-shrink: 0; overflow: hidden;}
.fv_new_stats_deco { position: absolute; max-width: none;}
.fv_new_stats_deco_l { top: 22.66px; left: 0; width: 57px; height: 137px;}
.fv_new_stats_deco_r { top: 22.66px; right: 0; width: 57px; height: 137px;}
.fv_new_stats_deco_t { top: 0; left: 68px; width: 111px; height: 25px;}
.fv_new_stats_label { position: absolute; top: 42px; left: 0; right: 0; margin: 0; font-family: "noto_sans_cjk_jpmedium", sans-serif; font-size: 16px; color: #fff; text-align: center; line-height: 1.6; white-space: nowrap;}
.fv_new_stats_number { position: absolute; top: 40px; left: 0; right: 0; margin: 0; font-family: 'Montserrat', "noto_sans_cjk_jpbold", sans-serif; font-weight: 600; text-align: center; line-height: 1; background: linear-gradient(90deg, #fff 0%, #D1B28B 90%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;}
.fv_new_stats_digit { font-size: 72px; font-family: inherit;}
.fv_new_stats_comma { font-size: 40px; font-family: inherit;}
.fv_new_stats_unit { position: absolute; bottom: 3px; left: 0; right: 0; margin: 0; font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 22px; color: #fff; text-align: center; line-height: 1.5; white-space: nowrap;}
/* 権威性バッジ群 */
.fv_new_authority { display: flex; flex-direction: column; gap: 8px; align-items: center; flex-shrink: 0;}
.fv_new_authority img { display: block; height: 48px; flex-shrink: 0;}
.fv_new_authority img:nth-child(1) { width: 206px;}  /* fv_authority_01.svg */
.fv_new_authority img:nth-child(2) { width: 163px;}  /* fv_authority_03.svg */
.fv_new_authority img:nth-child(3) { width: 156px;}  /* fv_authority_04.svg */
/* ---- 資料ダウンロードボタン（style.css .base-btn + .btn-round-arrow 準拠） ---- */
.fv_new_dl_btn { display: flex; align-items: center; justify-content: center; position: relative; width: 360px; height: 72px; background-color: #fff; color: #1C9F91; border: 1px solid #1C9F91; border-radius: 40px; text-decoration: none; flex-shrink: 0; font-family: "noto_sans_cjk_jpbold", sans-serif; padding-right: 15px; line-height: 1.25; transition: .5s all;}
.fv_new_dl_btn svg { position: absolute; right: 18px; transition: transform .3s linear;}
.fv_new_dl_btn svg g.arrow { transition: transform .3s linear;}
.fv_new_dl_btn:hover { background: linear-gradient(77deg, rgba(0,84,108,1) 0%, rgba(0,126,143,1) 28%, rgba(28,159,145,1) 90%); border-color: #fff; color: #fff;}
.fv_new_dl_btn:hover svg g.arrow { transform: translateX(5px);}
.fv_new_dl_btn:hover svg path { stroke: #fff;}
.fv_new_dl_btn_text { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 18px; letter-spacing: 0.72px; padding-right: 15px; padding-top: 5px; background: linear-gradient(77deg, rgba(0,84,108,1) 0%, rgba(0,126,143,1) 28%, rgba(28,159,145,1) 90%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; transition: .5s all;}
.fv_new_dl_btn:hover .fv_new_dl_btn_text { background: transparent; -webkit-text-fill-color: #fff; color: #fff;}

/* ========================================
  FV下 4カードメニュー
======================================== */

.fv_new_menu { position: relative; margin-top: -48px; padding-bottom: 64px; z-index: 3;}
.fv_new_menu_inner { display: flex; gap: 24px; justify-content: center; width: 1000px; margin: 0 auto;}
.fv_new_menu_card { position: relative; display: flex; flex-direction: column; align-items: center; padding: 16px 0; width: 232px; flex-shrink: 0; box-sizing: border-box; border: 1px solid #007E8F; border-radius: 16px; background: linear-gradient(120.46deg, #fff 51%, #f2f4f8 100%); text-decoration: none; color: inherit; cursor: pointer; transition: background 0.2s ease;}
.fv_new_menu_card:hover { background: #D6F0ED; opacity: 1;}
.fv_new_menu_tag { position: absolute; top: -15px; left: 50%; transform: translateX(-50%); background: #D1B28B; color: #fff; border-radius: 32px; font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 15px; line-height: 1.6; padding: 4px 24px; white-space: nowrap;}
.fv_new_menu_icon { width: 200px; height: 200px; object-fit: cover; display: block; margin: 0 auto;}
.fv_new_menu_body { display: flex; flex-direction: column; align-items: center; gap: 16px; margin-top: 8px;}
.fv_new_menu_text { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 22px; color: #00546C; text-align: center; line-height: 1.5; margin: 0;}
.fv_new_menu_btn { display: block; width: 64px; height: 40px; flex-shrink: 0;}
.fv_new_menu_btn img { width: 100%; height: 100%; object-fit: contain; display: block;}

/* ========================================
  ▼▼▼ 以下、2026-06-18 追記分 ▼▼▼
  「医療における1分とは」セクション (Figma: 2675:6807)
  「その1分から4つのプラスを生む」セクション (Figma: 2664:1900)
  ※ フォント・カラーは既存サイトCSSの定義を流用
    noto_sans_cjk_jpbold / noto_sans_cjk_jpmedium / Montserrat
    #00546C / #1C9F91 / #007E8F / #D1B28B / #1C1C1C / #F2F4F8
======================================== */

/* ========================================
  「医療における1分とは」セクション
======================================== */

.fv_new_1min { background: #F2F4F8; padding: 88px 0 120px; overflow: hidden;}
.fv_new_1min_inner { width: 1000px; margin: 0 auto; position: relative;}
.fv_new_1min_bg_text { position: absolute; top: -175px; left: 0; font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 152px; color: #fff; line-height: 1.6; white-space: nowrap; pointer-events: none; z-index: 0; margin: 0;}
.fv_new_1min_card { position: relative; z-index: 1; background: #fff; border-radius: 16px; padding: 64px 120px; margin-top: 106px; display: flex; flex-direction: column; gap: 40px; align-items: center;}
.fv_new_1min_title { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 34px; color: #00546C; letter-spacing: 0.08em; line-height: 1.5; text-align: center; margin: 0;}
.fv_new_1min_accent { font-size: 44px; color: #D1B28B;}
.fv_new_1min_body { display: flex; align-items: center; gap: 32px; width: 100%;}
.fv_new_1min_texts { flex: 1; display: flex; flex-direction: column; gap: 32px; font-family: "noto_sans_cjk_jpmedium", sans-serif; font-size: 16px; color: #1C1C1C; line-height: 1.6;}
.fv_new_1min_texts p { margin: 0;}
.fv_new_1min_img { width: 368px; height: 368px; object-fit: cover; flex-shrink: 0; display: block;}
.fv_new_1min_tagline { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 22px; color: #1C9F91; line-height: 1.5; text-align: center; margin: 0;}

/* ========================================
  「その1分から4つのプラスを生む」セクション
======================================== */

.fv_new_point { background: #fff; padding: 80px 0 120px;}
.fv_new_point_inner { width: 1000px; margin: 0 auto;}
/* ---- タイトルエリア ---- */
.fv_new_point_header { text-align: center; margin-bottom: 64px;}
.fv_new_point_logo_line { display: flex; align-items: end; justify-content: center; gap: 8px; font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 18px; color: #00546C; margin: 0 0 16px;}
.fv_new_point_logo { height: 40px; width: auto; display: block;}
.fv_new_point_title { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 34px; color: #00546C; letter-spacing: 0.08em; line-height: 1.5; margin: 0 0 20px;}
.fv_new_point_num_accent { font-size: 44px;}
.fv_new_point_subtitle { font-family: "noto_sans_cjk_jpmedium", sans-serif; font-size: 15px; color: #1C1C1C; line-height: 1.6; margin: 0;}
/* ---- 各アイテム共通 ---- */
.fv_new_point_item { display: flex; align-items: center; gap: 80px; padding: 60px 0; border-top: 1px solid #E5E7EB;}
.fv_new_point_item_even { flex-direction: row;}
.fv_new_point_text { flex: 0 0 400px; display: flex; flex-direction: column; gap: 20px;}
.fv_new_point_index { font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 96px; line-height: 1; background: linear-gradient(77deg, #00546c 0%, #007e8f 28.5%, #1c9f91 90%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; display: block; margin: 0;}
.fv_new_point_sub { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 28px; color: #00546C; line-height: 1.35; margin: 0;}
.fv_new_point_heading { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 44px; color: #00546C; letter-spacing: 0.05em; line-height: 1.35; margin: 0;}
.fv_new_point_desc { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 18px; color: #00546C; line-height: 1.6; margin: 0;}
.fv_new_point_btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: #007E8F; color: #fff; font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 16px; border-radius: 36px; width: 235px; height: 56px; text-decoration: none; flex-shrink: 0; transition: opacity 0.2s;}
.fv_new_point_btn:hover { opacity: 0.85;}
/* ---- 画像エリア ---- */
.fv_new_point_visual { flex: 0 0 520px; position: relative; height: 520px;}
.fv_new_point_ellipse { position: absolute; width: 480px; height: 480px; border-radius: 50%; /*background: linear-gradient(135deg, rgba(0,126,143,0.10) 0%, rgba(28,159,145,0.18) 100%);*/ top: 20px; left: 20px;}
.fv_new_point_img { position: absolute; top: 0; left: 0; width: 520px; height: 520px; object-fit: contain; z-index: 1; display: block;}

/* ========================================
  レスポンシブ（design-guidelines.md 準拠）
  ブレイクポイント: max-width 767px / 1023px
======================================== */

/* ---- タブレット以下 (max-width: 1023px) ---- */

@media (max-width: 1023px) {
  /* FV ヒーロー・スライダー */
  .fv_new_hero { height: 56.7vw;}
  .fv_new_slide { top: 0; height: 100%;}
  .fv_new_content { left: 24px; top: 80px; width: calc(100% - 48px);}
  .fv_new_heading { font-size: 30px;}
  .fv_new_dl_btn { width: 100%; max-width: 340px;}
  /* FV メニューカード（2×2グリッド） */
  .fv_new_menu_inner { width: 100%; padding: 0 16px; box-sizing: border-box; flex-wrap: wrap; gap: 12px;}
  .fv_new_menu_card { width: calc(50% - 6px);}
  /* 1min */
  .fv_new_1min_inner { width: 100%; padding: 0 16px; box-sizing: border-box;}
  .fv_new_1min_bg_text { font-size: 88px;}
  .fv_new_1min_card { margin-top: 60px; padding: 44px 32px;}
  .fv_new_point_inner { width: 100%; padding: 0 16px; box-sizing: border-box;}
  .fv_new_point_item { flex-direction: column; gap: 24px;}
  .fv_new_point_item_even { flex-direction: column-reverse;}
  .fv_new_point_text { flex: none; width: 100%;}
  .fv_new_point_visual { flex: none; width: 100%; max-width: 480px; height: 480px; margin: 0 auto;}
  .fv_new_point_ellipse { width: 432px; height: 432px; top: 24px; left: 24px;}
  .fv_new_point_img { width: 100%; height: 100%;}
}

/* ---- スマートフォン (max-width: 767px) ---- */

@media (max-width: 767px) {
   /* 既存TOPの .min_section { padding: 0 20px } に相当する左右余白 */
  section.container { padding-left: 20px; padding-right: 20px;} 
   /* FV ヒーロー・スライダー */
  .fv_new_hero { height: 138.67vw;}
  .fv_new_slide { top: 0; height: 100%;}
  .fv_new_slide img { object-position: 70% center; filter: brightness(0.5);}
  .fv_new_content { left: 8px; top: 20px; width: calc(100% - 16px); gap: 16px;}
  .fv_new_title_text { width: 100%; height: 86px;}
  .fv_new_title_img { width: 225px; height: 86px;}
  .fv_new_title_suffix { left: 238px; top: 41px; font-size: 26px;}
  .fv_new_heading { font-size: 27px;}
  .fv_new_authority { gap: 4px; margin-left: -62px;}
  .fv_new_authority img { height: 36px;}
  .fv_new_authority img:nth-child(1) { width: 155px;}
  .fv_new_authority img:nth-child(2) { width: 122px;}
  .fv_new_authority img:nth-child(3) { width: 117px;}
  .fv_new_stats { transform: scale(0.75); transform-origin: left center;}
  .fv_new_dl_btn { width: 300px; height: 56px; align-self: center;}
  .fv_new_dl_btn_text { font-size: 15px;}
  /* FV メニューカード（2×2グリッド） */
  .fv_new_menu_inner { padding: 0 8px; gap: 8px;}
  .fv_new_menu_card { width: calc(50% - 4px);}
  .fv_new_menu_icon { width: 120px; height: 120px;}
  .fv_new_menu_text { font-size: 15px;}
  /* 1min */
  .fv_new_1min { padding: 48px 0 56px;}
  .fv_new_1min_inner { padding: 0 8px;}
  .fv_new_1min_bg_text { font-size: 56px;}
  .fv_new_1min_card { margin-top: 32px; padding: 28px 16px; gap: 24px;}
  .fv_new_1min_title { font-size: 20px;}
  .fv_new_1min_accent { font-size: 26px;}
  .fv_new_1min_body { flex-direction: column-reverse; align-items: center;}
  .fv_new_1min_img { width: 100%; max-width: 240px; height: 240px;}
  .fv_new_1min_tagline { font-size: 14px;}
  .fv_new_point { padding: 40px 0 60px;}
  .fv_new_point_inner { padding: 0 8px;}
  .fv_new_point_header { margin-bottom: 28px;}
  .fv_new_point_logo { height: 28px;}
  .fv_new_point_logo_line { font-size: 14px;}
  .fv_new_point_title { font-size: 20px;}
  .fv_new_point_num_accent { font-size: 26px;}
  .fv_new_point_subtitle { font-size: 13px;}
  .fv_new_point_item { padding: 28px 0;}
  .fv_new_point_visual { max-width: 300px; height: 300px;}
  .fv_new_point_ellipse { width: 265px; height: 265px; top: 15px; left: 15px;}
  .fv_new_point_index { font-size: 72px;}
  .fv_new_point_text { padding-left: 15%; box-sizing: border-box;}
  .fv_new_point_desc { font-size: 14px;}
  .fv_new_point_btn { width: 235px; align-self: center;}
  .fv_new_point_sub { font-size: 22px;}
  .fv_new_point_heading { font-size: 32px;}
}

/* Logo Slider */
.logo_slider { padding: 14px 0;}
.logo_slider .owl-carousel .owl-item img { max-height: 64px; object-fit: contain;}

/* ==========================================================
   value-new.css — medical-reserve_value01_PC 新デザイン（value-new.cssから移動・統合）
   Figma: fBWPXoXofkPHV5k8PpdxyH / node 2675:6907
   共通カラー: main #00546C / sub #1C9F91 / accent #D1B28B / text #1C1C1C / bg #F2F4F8
   ========================================================== */

body { margin: 0;}

/* ========================================
   FV ヒーローセクション
   ヘッダー(96px)はドキュメントフローに残したまま、
   FV 背景が section 全体を埋める構造
   ========================================= */

.vn-hero { position: relative; height: 456px; /* Figma FV 581px - ヘッダー125px = 456px */ overflow: hidden; background-color: #012e3e;}
.vn-hero__bg { position: absolute; top: -4.15%; left: 0; width: 100%; height: 139.25%; object-fit: cover; max-width: none; display: block;}
/* テキストオーバーレイ */
.vn-hero__content { position: absolute; left: 258px; top: 40px; /* Figma top:165 - header:125 = 40 */ z-index: 2; display: flex; flex-direction: column; gap: 0;}
/* 「1分の価値」ロゴ */
.vn-hero__logo-wrap { height: 88px; margin-bottom: 40px;}
.vn-hero__logo-img { height: 110px; width: auto; display: block;}
/* メインタイトル（52px） */
.vn-hero__h1 { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 52px; color: #fff; line-height: 1.35; letter-spacing: 4.16px; margin: 0 0 4px; white-space: nowrap;}
/* サブタイトル（28px） */
.vn-hero__subtitle { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 28px; color: #fff; line-height: 1.35; margin: 0 0 28px; white-space: nowrap;}
/* リード文（15px） */
.vn-hero__lead { font-family: "noto_sans_cjk_jpmedium", sans-serif; font-size: 15px; color: #fff; line-height: 1.6; margin: 0;}
/* パンくず */
.vn-breadcrumb { position: absolute; bottom: 0; left: 0; right: 0; height: 36px; background: rgba(255, 255, 255, 0.20); display: flex; align-items: center; z-index: 2;}
.vn-breadcrumb p { font-family: "noto_sans_cjk_jp_regularRg", sans-serif; font-size: 11px; color: #fff; line-height: 1.35; margin: 0; padding-left: 95px;}
.vn-breadcrumb a { color: #fff; text-decoration: none; font-size: 11px;}

/* ========================================
   FV下 ナビゲーションカード
   ========================================= */

.vn-menu { background: #fff; padding: 64px 0;}
.vn-menu__inner { display: flex; gap: 24px; justify-content: center; max-width: 1000px; margin: 0 auto;}
.vn-menu__card { position: relative; display: flex; flex-direction: column; align-items: center; padding: 16px 0 16px; width: 232px; flex-shrink: 0; box-sizing: border-box; border: 1px solid #007E8F; border-radius: 16px; background: linear-gradient(120.46deg, #fff 51%, #f2f4f8 100%); text-decoration: none; color: inherit; transition: opacity 0.2s;}
.vn-menu__card--current { background: #D6F0ED; pointer-events: none; cursor: default;}
.vn-menu__tag { position: absolute; top: -15px; left: 50%; transform: translateX(-50%); background: #D1B28B; color: #fff; border-radius: 32px; font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 15px; line-height: 1.6; padding: 4px 24px; white-space: nowrap;}
.vn-menu__icon { width: 200px; height: 200px; object-fit: cover; display: block; margin: 0 auto; border-radius: 8px;}
.vn-menu__body { display: flex; flex-direction: column; align-items: center; gap: 16px; margin-top: 8px;}
.vn-menu__text { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 22px; color: #00546C; text-align: center; line-height: 1.5; margin: 0;}
.vn-menu__btn { display: block; width: 64px; height: 40px; flex-shrink: 0;}
.vn-menu__btn img { width: 100%; height: 100%; object-fit: contain; display: block;}

/* ========================================
   機能ポイントセクション
   ========================================= */

.vn-point { background: #F2F4F8; padding: 80px 0 120px;}
.vn-point--white { background: #fff;}
.vn-point__inner { max-width: 1000px; margin: 0 auto; padding: 0 20px; box-sizing: border-box;}
/* ---- セクションヘッダー（番号+タイトル+メイン画像） ---- */
.vn-point__header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 40px;}
.vn-point__header-left { display: flex; flex-direction: column; gap: 40px; flex: 1;}
.vn-point__heading-block { display: flex; flex-direction: column; gap: 0;}
/* 大番号（背景テキスト） */
.vn-point__number { font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 200px; color: #fff; line-height: 0.7; display: block; margin-bottom: -30px; letter-spacing: -4px; user-select: none;}
.vn-point--white .vn-point__number { color: #F2F4F8;}
.vn-point__title { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 28px; color: #1C1C1C; line-height: 1.35; margin: 0;}
.vn-point__subtitle { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 34px; color: #1C9F91; line-height: 1.2; letter-spacing: 2.72px; margin: 0;}
/* メイン画像（右側、480x270） */
.vn-point__main-img { width: 480px; height: 270px; object-fit: cover; flex-shrink: 0; border-radius: 8px; display: block;}
/* ---- 機能カード（3枚、交互レイアウト） ---- */
.vn-point__cards { display: flex; flex-direction: column; gap: 20px;}
.vn-point__card { display: flex; align-items: center; gap: 72px; padding: 32px 72px; border: 1px solid #00546C; border-radius: 16px; background: #fff; box-sizing: border-box;}
/* 偶数カード：画像が右 */
.vn-point__card--reverse { flex-direction: row-reverse;}
/* 円形クロップ画像ラッパー */
.vn-point__card-img-wrap { flex-shrink: 0; width: 320px; height: 320px; border-radius: 50%; overflow: hidden;}
.vn-point__card-img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block;}
/* テキスト側 */
.vn-point__card-body { flex: 1; display: flex; flex-direction: column; gap: 10px; min-width: 0;}
.vn-point__card-content { display: flex; flex-direction: column; gap: 24px;}
.vn-point__card-title { font-family: "noto_sans_cjk_jpbold", sans-serif; font-size: 28px; color: #00546C; line-height: 1.35; margin: 0;}
.vn-point__card-desc { font-family: "noto_sans_cjk_jp_regularRg", sans-serif; font-size: 15px; color: #1C1C1C; line-height: 1.6; margin: 0;}
/* 関連診療科／関連機能ボックス */
.vn-dept-box { border: none; display: flex; flex-direction: column; align-items: flex-start; gap: 16px; padding: 0; box-sizing: border-box;}
.vn-dept-label { border: none; border-radius: 0; padding: 0; font-family: "noto_sans_cjk_jpmedium", sans-serif; font-size: 16px; color: #00546C; line-height: 1.6; display: inline-block; white-space: nowrap;}
/* 診療科名／関連機能名: 科目・機能名ごとに個別の角丸ボーダーを付与し、
   /products/yoyakuの課題タグ(.tag)と同様のホバー反転を実装する。
   文字サイズ(15px)はvn-dept-list側のまま維持 */
.vn-dept-list { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; font-family: "noto_sans_cjk_jp_regularRg", sans-serif; font-size: 15px; color: #1C1C1C; line-height: 1.6;}
.vn-dept-list a,
.vn-dept-list .vn-dept-tag--pending { display: inline-block; padding: 4px 14px; border: 1px solid #d3d3d3; border-radius: 20px; color: inherit;}
.vn-dept-list a { text-decoration: none; transition: .2s all;}
.vn-dept-list a:hover { background-color: #1C9F91; border-color: #1C9F91; color: #fff;}
/* 「脳神経外科」等、ページ未公開のためリンクなしで暫定表示する科目タグ */
.vn-dept-list .vn-dept-tag--pending { color: #999;}
/* 末尾の「など」。ボーダーは付けず、他の科目タグと区別する */
.vn-dept-list .vn-dept-etc { color: #666;}

/* ========================================
   レスポンシブ
   ========================================= */

/* タブレット (max 1023px) */

@media (max-width: 1023px) {
  .vn-hero { height: 380px;}
  .vn-hero__content { left: 24px; top: 24px;}
  .vn-hero__h1 { font-size: 36px; letter-spacing: 2px;}
  .vn-hero__subtitle { font-size: 20px;}
  .vn-hero__logo-wrap { margin-bottom: 24px;}
  .vn-breadcrumb p { padding-left: 24px;}
  .vn-menu__inner { flex-wrap: wrap; max-width: 600px; gap: 12px;}
  .vn-menu__card { width: calc(50% - 6px);}
  .vn-point__header { flex-direction: column;}
  .vn-point__main-img { width: 100%; height: auto;}
  .vn-point__number { font-size: 120px;}
  .vn-point__title { font-size: 22px;}
  .vn-point__subtitle { font-size: 24px;}
  .vn-point__card { flex-direction: column; gap: 24px; padding: 24px 24px;}
  .vn-point__card--reverse { flex-direction: column;}
  .vn-point__card-img-wrap { width: 240px; height: 240px;}
}

/* スマートフォン (max 767px) */

@media (max-width: 767px) {
  .vn-hero { height: 320px;}
  .vn-hero__content { left: 16px; top: 16px;}
  .vn-hero__logo-wrap { height: 60px; margin-bottom: 16px;}
  .vn-hero__logo-img { height: 60px;}
  .vn-hero__h1 { font-size: 26px; letter-spacing: 1px; white-space: normal;}
  .vn-hero__subtitle { font-size: 16px; white-space: normal; margin-bottom: 16px;}
  .vn-hero__lead { font-size: 12px;}
  .vn-menu { padding: 32px 0;}
  .vn-menu__inner { max-width: 100%; padding: 0 8px; flex-wrap: wrap; gap: 8px;}
  .vn-menu__card { width: calc(50% - 4px);}
  .vn-menu__icon { width: 120px; height: 120px;}
  .vn-menu__text { font-size: 15px;}
  .vn-point { padding: 40px 0 60px;}
  .vn-point__inner { padding: 0 8px;}
  .vn-point__number { font-size: 80px;}
  .vn-point__title { font-size: 18px;}
  .vn-point__subtitle { font-size: 18px; letter-spacing: 1px;}
  .vn-point__card { padding: 20px 16px; gap: 20px;}
  .vn-point__card-img-wrap { width: 180px; height: 180px;}
  .vn-point__card-title { font-size: 20px;}
  .vn-point__card-desc { font-size: 14px;}
}