@charset "UTF-8";
/* ============================================================
   大阪院 新トップページ（2026-10 改修）
   inc/top-new.php と footer-top.php 専用。ほかのページでは読み込まない
   クラスは ntop_ で始まる（既存クラスと衝突しない）
   色：背景 #F6FAFB／メイン #307CA4
   ============================================================ */
.ntop{
  --ntop-blue:#307CA4;
  --ntop-navy:#2A6E98;
  --ntop-bg:#F6FAFB;
  --ntop-pale:#E6F3F9;
  --ntop-pill:#CFE7F4;
  --ntop-line:#BFDBEA;
  --ntop-label:#86BCD8;
  --ntop-text:#444;
  --ntop-green:#06C755;
  color:var(--ntop-text);
  font-family:"Noto Sans JP","游ゴシック Medium","Yu Gothic Medium",游ゴシック,"Yu Gothic",sans-serif;
  font-size:14px;
  line-height:1.8;
  background:var(--ntop-bg);
}
.ntop *,.ntop *::before,.ntop *::after{ box-sizing:border-box; }
.ntop img{ max-width:100%; height:auto; vertical-align:top; }
.ntop a{ text-decoration:none; }
.ntop ul,.ntop ol{ margin:0; padding:0; list-style:none; }
.ntop figure{ margin:0; }
.ntop p{ margin:0; }
/* テーマ style.css のセレクタ無し h3::after（下線）を打ち消す */
.ntop h2::before,.ntop h2::after,.ntop h3::before,.ntop h3::after{ content:none !important; display:none !important; }
.ntop h2,.ntop h3{ margin:0; padding:0; border:0; background:none; }

/* --- セクション共通 --- */
/* テーマ共通の section の上下余白（30px/60px）を打ち消す */
.ntop_sec{ margin:0 !important; padding:56px 0; }
.ntop_inner{ width:min(960px,100%); margin:0 auto; padding:0 20px; }
.ntop_ttl{ display:flex; flex-direction:column; align-items:center; margin:0 0 28px !important; text-align:center; }
.ntop_ttl i{ display:block; font-family:"Lora",serif; font-style:normal; font-size:15px; letter-spacing:.2em; line-height:1.4; color:var(--ntop-label); }
.ntop_ttl span{ display:block; margin-top:2px; font-size:26px; font-weight:500; letter-spacing:.1em; line-height:1.5; color:var(--ntop-navy); }
/* 英字の両側に線（PROMISE・RESULTS） */
.ntop_ttl.is-line i{ display:flex; align-items:center; gap:18px; width:100%; max-width:620px; }
.ntop_ttl.is-line i::before,.ntop_ttl.is-line i::after{ content:''; flex:1; height:1px; background:var(--ntop-label); }

/* --- 矢印（>） --- */
.ntop_btn a,.ntop_other_list a,.ntop_reserve_btn a,.ntop_reserve_sub a,.ntop_clinic_btns a.is-fill,.ntop_counsel_line,.ntop_line_btn{ position:relative; }
.ntop_btn a::after,.ntop_other_list a::after,.ntop_reserve_btn a::after,.ntop_reserve_sub a::after,.ntop_clinic_btns a.is-fill::after,.ntop_counsel_line::after,.ntop_line_btn::after{
  content:''; position:absolute; top:50%; width:7px; height:7px; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; transform:translateY(-50%) rotate(45deg);
}

/* --- 青い丸ボタン --- */
.ntop_btn{ text-align:center; }
.ntop_btn a{ display:inline-block; min-width:240px; padding:11px 44px; border-radius:999px; background:var(--ntop-blue); color:#fff !important; font-size:14px; font-weight:500; letter-spacing:.12em; line-height:1.5; transition:opacity .3s; }
.ntop_btn a::after{ right:20px; }
.ntop_btn a:hover{ opacity:.8; }
.ntop_btn.is-light a{ background:var(--ntop-pill); color:var(--ntop-navy) !important; }

/* ============================================================
   4つのボタン
   ============================================================ */
.ntop_nav{ background:var(--ntop-blue); }
.ntop_nav_list{ display:flex; width:min(960px,100%); margin:0 auto !important; }
.ntop_nav_list li{ flex:1; position:relative; }
.ntop_nav_list li + li::before{ content:''; position:absolute; left:0; top:20%; bottom:20%; width:1px; background:rgba(255,255,255,.5); }
.ntop_nav_list a{ display:flex; flex-direction:column; align-items:center; gap:4px; padding:14px 4px 12px; color:#fff !important; font-size:15px; font-weight:700; letter-spacing:.04em; line-height:1.3; transition:opacity .3s; }
.ntop_nav_list a:hover{ opacity:.75; }
.ntop_nav_list img{ width:32px; height:32px; }

/* ============================================================
   LINE（緑の大きいボタン＋黄色の吹き出し）
   ============================================================ */
.ntop_line{ padding:36px 20px 32px; background:#E8F5FB; }
.ntop_line_btn{ display:flex; align-items:center; justify-content:center; gap:20px; width:min(620px,100%); min-height:84px; margin:0 auto; padding:12px 48px 12px 28px; border-radius:999px; background:var(--ntop-green); box-shadow:0 4px 0 #04A146; color:#fff !important; transition:opacity .3s; }
.ntop_line_btn::after{ right:30px; width:10px; height:10px; border-width:2.5px; }
.ntop_line_btn:hover{ opacity:.85; }
.ntop_line_badge{ position:absolute; left:50%; top:0; transform:translate(-50%,-55%); padding:3px 20px; border-radius:999px; background:#FFF100; box-shadow:0 2px 4px rgba(0,0,0,.18); color:#0B8F3A; font-size:14px; font-weight:700; letter-spacing:.06em; line-height:1.5; white-space:nowrap; }
.ntop_line_icon{ flex-shrink:0; width:52px; height:52px; }
.ntop_line_icon svg{ display:block; width:100%; height:100%; }
.ntop_line_text{ font-size:24px; font-weight:700; letter-spacing:.08em; line-height:1.3; }

/* ============================================================
   お悩みの部位から探す
   ============================================================ */
.ntop_search{ padding-bottom:0; background:linear-gradient(180deg,#EEF8FC 0%,#E1F1F9 100%); }
.ntop_tab{ display:flex; justify-content:center; gap:10px; margin:0 auto 20px !important; }
.ntop_tab li{ flex:1 1 0; max-width:200px; }
.ntop_tab button{ display:flex; flex-direction:column; align-items:center; justify-content:center; width:100%; padding:6px 4px; border:1.5px solid var(--ntop-blue); border-radius:999px; background:#fff; color:var(--ntop-blue); font-family:inherit; font-size:15px; font-weight:700; letter-spacing:.08em; line-height:1.3; cursor:pointer; transition:background .3s,color .3s; }
.ntop_tab button small{ font-size:11px; font-weight:500; letter-spacing:.04em; }
.ntop_tab li.is-active button{ background:var(--ntop-blue); color:#fff; }
.ntop_parts{ position:relative; display:none; grid-template-columns:26% 1fr 26%; align-items:center; max-width:760px; margin:0 auto; }
.ntop_parts.is-active{ display:grid; }
.ntop_parts_img{ position:relative; align-self:end; z-index:1; }
.ntop_parts_img img{ display:block; width:100%; height:auto; }
.ntop_parts_img.is-face{ margin:0 -2%; }
.ntop_parts_img.is-body{ width:62%; margin:0 auto; }
.ntop_parts_img.is-skin{ margin:0 -2%; }
.ntop_dot{ position:absolute; z-index:3; width:10px; height:10px; margin:-5px 0 0 -5px; border:1.5px solid var(--ntop-blue); border-radius:50%; background:#fff; }
.ntop_parts_lines{ position:absolute; left:0; top:0; z-index:2; width:100%; height:100%; overflow:visible; pointer-events:none; }
.ntop_parts_lines line{ stroke:var(--ntop-blue); stroke-width:1; }
.ntop_parts_btns{ position:relative; z-index:4; display:flex; flex-direction:column; gap:18px; padding:20px 0 40px !important; }
/* 既存のポップアップ用クラス（index_menu_parts_list_text_menu_item）の見た目を打ち消して新デザインに */
.ntop_parts_btns li.index_menu_parts_list_text_menu_item{ width:auto !important; margin:0 !important; padding:0 !important; border:0 !important; background:none !important; }
.ntop_parts_btns li.index_menu_parts_list_text_menu_item a{ display:block !important; padding:7px 6px !important; border:1.5px solid var(--ntop-blue) !important; border-radius:12px !important; background:#fff !important; color:var(--ntop-navy) !important; font-size:15px !important; font-weight:700 !important; letter-spacing:.04em; line-height:1.4 !important; text-align:center; transition:background .3s,color .3s; }
.ntop_parts_btns li.index_menu_parts_list_text_menu_item a::before,
.ntop_parts_btns li.index_menu_parts_list_text_menu_item a::after{ content:none !important; }
.ntop_parts_btns li.index_menu_parts_list_text_menu_item a:hover{ background:var(--ntop-blue) !important; color:#fff !important; }

/* ============================================================
   無料カウンセリング相談
   ============================================================ */
.ntop_counsel{ background:var(--ntop-bg); }
.ntop_counsel_list{ display:grid; grid-template-columns:1fr 1fr; gap:16px; max-width:900px; margin:0 auto; }
.ntop_counsel_card{ padding:10px 10px 14px; border-radius:8px; background:#fff; box-shadow:0 4px 16px rgba(48,124,164,.10); }
.ntop_counsel_head{ display:flex; align-items:flex-start; justify-content:space-between; gap:8px; margin-bottom:8px; }
.ntop_counsel_name{ display:flex; flex-direction:column; font-size:20px; font-weight:700; letter-spacing:.06em; line-height:1.3; color:var(--ntop-navy); }
.ntop_counsel_name i{ font-family:"Lora",serif; font-style:normal; font-size:9px; font-weight:400; letter-spacing:.2em; color:#8A9BA5; }
.ntop_counsel_status{ flex-shrink:0; padding:3px 14px; border-radius:999px; background:#1FAF55; color:#fff; font-size:12px; font-weight:700; letter-spacing:.06em; line-height:1.5; }
.ntop_counsel_photo{ position:relative; padding-bottom:22px; }
.ntop_counsel_photo img{ display:block; width:100%; aspect-ratio:630/340; object-fit:cover; border-radius:6px; }
.ntop_counsel_line{ position:absolute; left:6%; right:6%; bottom:0; display:flex; align-items:center; justify-content:center; gap:8px; padding:9px 26px 9px 12px; border-radius:999px; background:var(--ntop-green); box-shadow:0 3px 0 #04A146; color:#fff !important; font-size:15px; font-weight:700; letter-spacing:.04em; line-height:1.3; transition:opacity .3s; }
.ntop_counsel_line::after{ right:16px; }
.ntop_counsel_line:hover{ opacity:.85; }
.ntop_counsel_line .ntop_line_badge{ padding:1px 12px; font-size:11px; }
.ntop_counsel_line .ntop_line_icon{ width:26px; height:26px; }

/* ============================================================
   症例写真（既存の症例カードを改修案のデザインに寄せる）
   ============================================================ */
.ntop_case{ background:var(--ntop-bg) !important; padding:56px 0 !important; }
.ntop_case .index_case_inner{ width:min(960px,100%) !important; margin:0 auto !important; padding:0 20px !important; }
.ntop_case .section{ margin-top:0 !important; }
.ntop_case .c-tab-list.pt02{ display:flex; flex-wrap:nowrap !important; justify-content:center; gap:10px; margin:0 auto 20px !important; }
.ntop_case .c-tab-list.pt02 li{ flex:1 1 0; width:auto !important; max-width:170px; margin:0 !important; padding:0 !important; }
.ntop_case .c-tab-list.pt02 li,.ntop_case .c-tab-list.pt02 h3,.ntop_case .c-tab-list.pt02 li a{ height:auto !important; min-height:0 !important; }
.ntop_case .c-tab-list.pt02 li a{ display:block; padding:6px 4px !important; border:1px solid var(--ntop-line) !important; border-radius:2px !important; background:#fff !important; color:var(--ntop-navy) !important; font-size:13px !important; font-weight:500; line-height:1.5 !important; text-align:center; }
.ntop_case .c-tab-list.pt02 li.active a{ background:var(--ntop-blue) !important; border-color:var(--ntop-blue) !important; color:#fff !important; }
.ntop_case .case_list_item{ background:#fff !important; border:1px solid var(--ntop-line) !important; border-radius:6px !important; overflow:hidden; }
.ntop_case .case_list_item_ttl p{ color:var(--ntop-navy) !important; font-weight:700; }
.ntop_case .case_modal_info{ margin-top:8px; padding:10px 12px 12px; border-radius:6px; background:#EDF5FA; }
.ntop_case .case_modal_info dl{ border-color:var(--ntop-line) !important; }
.ntop_case .case_modal_info dt{ color:var(--ntop-navy) !important; font-weight:700; }
.ntop_case .case_list_item_ttl{ height:auto !important; min-height:0 !important; padding:0 0 8px !important; }
.ntop_case .case_list_item_ttl p{ height:auto !important; min-height:0 !important; margin:0 !important; justify-content:center; }
.ntop_case .case_doctor_detail{ align-items:center; gap:10px; }
/* テーマ側で写真欄が幅100%になっているため固定幅に（名前欄が潰れないように） */
.ntop_case .case_doctor_detail dd.case_doctor_detail-img{ flex:0 0 44px !important; width:44px !important; height:44px; margin:0 !important; }
.ntop_case .case_doctor_detail dd:not(.case_doctor_detail-img){ flex:1 1 auto; width:auto !important; }
/* 2026-10-27 先方指摘：インスタマークは名前の横に（顔写真｜名前｜インスタ を1行に並べる） */
.ntop_case .case_doctor{ display:grid !important; grid-template-columns:44px minmax(0,max-content) 26px; justify-content:start; align-items:center; column-gap:10px; }
.ntop_case .case_doctor dl,.ntop_case .case_doctor a.case_doctor_detail{ display:contents !important; }
.ntop_case .case_doctor dt{ grid-column:1 / -1; }
.ntop_case .case_doctor .insta{ position:static !important; width:26px; margin:0 !important; }
.ntop_case .case_doctor_detail-img img{ width:44px; height:44px; border-radius:50%; object-fit:cover; background:#fff; }
.ntop_case .case_modal_btn .btn01{ background:var(--ntop-blue) !important; border-color:var(--ntop-blue) !important; color:#fff !important; border-radius:999px !important; }
.ntop_case .case_modal_btn .btn02{ background:#fff !important; border:1px solid var(--ntop-blue) !important; color:var(--ntop-navy) !important; border-radius:999px !important; }
/* PC（751px以上）は3列。カード同士にすき間をあける（SPは既存のスライダー） */
/* 2026-10-27 先方指摘：PCで見づらい→公開中のトップと同じ横幅（1210px）に広げ、写真・文字を大きく見せる */
@media screen and (min-width:751px){
  .ntop_case .index_case_inner{ width:min(1250px,100%) !important; max-width:none !important; }
  .ntop_case .c-tab-list.pt02{ gap:16px; margin-bottom:28px !important; }
  .ntop_case .c-tab-list.pt02 li{ max-width:260px; }
  .ntop_case .c-tab-list.pt02 li a{ padding:12px 6px !important; font-size:16px !important; }
  .ntop_case .case_list{ flex-wrap:wrap; margin:0 -8px !important; }
  .ntop_case .case_list_item{ width:calc(33.333% - 16px) !important; margin:0 8px 16px !important; padding:20px 12px 14px !important; }
  .ntop_case .case_list_item_ttl p{ font-size:22px !important; }
  .ntop_case .case_modal_info{ margin-top:10px; padding:12px 14px 14px; }
  /* 症例カード：テーマの固定高さ(height01〜03)を外し、横に並ぶカード同士で各項目の高さをJSで揃える（下の余白も解消） */
  .ntop_case .case_modal_info dd{ height:auto !important; min-height:0 !important; }
  .ntop_case .case_list_item_ttl p{ min-height:0 !important; }
}

/* ============================================================
   お約束・実績
   ============================================================ */
.ntop_promise{ background:linear-gradient(180deg,#F8FBFC 0%,#EEF6FA 100%); }
.ntop_promise_body{ display:grid; grid-template-columns:37% 1fr; gap:10px; align-items:stretch; }
.ntop_promise_img img{ display:block; width:100%; height:100%; object-fit:cover; object-position:left center; border-radius:4px; }
.ntop_promise_list{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ntop_promise_list li{ display:grid; grid-template-columns:50px 1fr; grid-template-rows:auto 1fr; column-gap:12px; padding:14px 14px 12px; border:1px solid var(--ntop-line); border-radius:4px; background:rgba(255,255,255,.9); }
.ntop_promise_list li.is-wide{ grid-column:1 / -1; }
.ntop_promise_list img{ grid-row:1; width:42px; height:42px; margin:2px 0 0 4px; }
.ntop_promise_head{ position:relative; padding:0 0 6px 12px; margin-bottom:8px; border-bottom:1px solid var(--ntop-line); }
.ntop_promise_head::before{ content:''; position:absolute; left:0; top:2px; bottom:8px; width:1px; background:var(--ntop-line); }
.ntop_promise_list i{ display:block; font-family:"Lora",serif; font-style:normal; font-size:17px; line-height:1.1; color:var(--ntop-label); }
.ntop_promise_list h3{ font-size:15px !important; font-weight:700; letter-spacing:.04em; line-height:1.5 !important; color:var(--ntop-navy); }
.ntop_promise_list p{ grid-column:1 / -1; font-size:12px; line-height:1.75; color:#555; }
.ntop_promise_list li.is-wide p{ grid-column:2; }
.ntop_results_ttl{ margin-top:44px !important; }
.ntop_results{ display:flex; justify-content:center; gap:28px; }
.ntop_results li{ display:flex; flex-direction:column; align-items:center; justify-content:center; width:170px; aspect-ratio:1; border:1.5px solid #7DB3D2; border-radius:50%; background:#fff; box-shadow:inset 0 0 0 4px #fff,inset 0 0 0 5px #D5E9F3; color:var(--ntop-navy); line-height:1.2; }
.ntop_results_label{ padding:0 4px 4px; margin-bottom:4px; border-bottom:1px solid var(--ntop-line); font-size:13px; font-weight:700; }
.ntop_results strong{ font-family:"Lora",serif; font-size:44px; font-weight:500; line-height:1.1; color:#1F5A84; }
.ntop_results_unit{ font-size:14px; font-weight:700; }
.ntop_results_note{ margin-top:14px !important; font-size:11px; line-height:1.7; color:#666; text-align:center; }

/* ============================================================
   ドクター（ドクター紹介・監修医情報 共通）
   ============================================================ */
.ntop_doctor{ background:var(--ntop-bg); }
.ntop_doctor_list{ display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:720px; margin:0 auto; }
.ntop_dr{ display:flex; flex-direction:column; border:1px solid #A9CDE1; border-radius:8px; background:#fff; overflow:hidden; }
.ntop_dr_img{ background:#F3F3F3; }
.ntop_dr_img img{ display:block; width:100%; aspect-ratio:4/3; object-fit:contain; object-position:center bottom; }
.ntop_dr_body{ display:flex; flex-direction:column; flex:1; padding:16px 20px 20px; }
.ntop_dr_head{ position:relative; padding-right:40px; }
.ntop_dr_pos{ font-size:12px; line-height:1.5; color:#333; }
.ntop_dr_name{ font-size:20px !important; font-weight:500; letter-spacing:.12em; line-height:1.5 !important; color:#222; }
.ntop_dr_insta{ position:absolute; right:0; top:50%; transform:translateY(-50%); width:30px; transition:opacity .3s; }
.ntop_dr_insta:hover{ opacity:.75; }
.ntop_dr_comment{ margin-top:10px !important; padding-bottom:14px; border-bottom:1px dotted #8FB4C8; font-size:12px; line-height:1.9; letter-spacing:.05em; color:#555; }
.ntop_dr_qual_ttl{ margin-top:12px !important; font-size:12px; font-weight:700; color:var(--ntop-blue); }
.ntop_dr_qual{ font-size:11px; line-height:1.8; color:#444; }
.ntop_dr .ntop_btn{ margin-top:auto; padding-top:18px; }
.ntop_dr .ntop_btn a{ min-width:0; width:min(260px,100%); }
.ntop_dr.is-single{ max-width:520px; margin:0 auto; }
.ntop_dr.is-single .ntop_dr_comment{ font-size:13px; }
.ntop_dr.is-single .ntop_dr_qual{ font-size:12px; }

/* ============================================================
   お知らせ
   ============================================================ */
.ntop_news{ background:var(--ntop-bg); }
.ntop_news_list{ max-width:960px; margin:0 auto !important; border-top:1px solid #D7E3E9; }
.ntop_news_list li{ border-bottom:1px solid #D7E3E9; }
.ntop_news_list a{ position:relative; display:flex; align-items:center; gap:28px; padding:22px 52px 22px 14px; color:var(--ntop-navy) !important; font-size:14px; line-height:1.6; letter-spacing:.04em; transition:background .3s; }
.ntop_news_list a:hover{ background:#EEF6FA; }
.ntop_news_list a::after{ content:'\2192'; position:absolute; right:16px; top:50%; transform:translateY(-50%); font-size:18px; line-height:1; color:var(--ntop-navy); }
.ntop_news_list time{ flex-shrink:0; width:110px; font-family:"Heebo",sans-serif; font-weight:700; letter-spacing:.2em; }

/* ============================================================
   各院のご案内
   ============================================================ */
.ntop_clinics{ background:#EEF7FB; }
.ntop_clinic_list{ display:grid; grid-template-columns:1fr 1fr; gap:14px; max-width:900px; margin:0 auto; }
.ntop_clinic{ display:flex; flex-direction:column; padding:10px 10px 14px; border-radius:8px; background:#fff; box-shadow:0 4px 16px rgba(48,124,164,.10); }
.ntop_clinic figure img{ display:block; width:100%; aspect-ratio:630/260; object-fit:cover; border-radius:4px; }
.ntop_clinic_name{ display:flex; flex-direction:column; align-items:center; margin:10px 0 0 !important; padding-bottom:8px !important; border-bottom:1px solid var(--ntop-line) !important; font-size:22px !important; font-weight:500; letter-spacing:.1em; line-height:1.35 !important; color:var(--ntop-blue); }
.ntop_clinic_name i{ font-family:"Lora",serif; font-style:normal; font-size:9px; letter-spacing:.2em; color:#8A9BA5; }
.ntop_clinic_info{ margin:10px 0 0; padding:0 6px; }
.ntop_clinic_info div{ display:grid; grid-template-columns:86px 1fr; gap:6px; padding:5px 0; }
.ntop_clinic_info dt{ display:flex; align-items:flex-start; gap:8px; font-size:12px; font-weight:700; line-height:1.7; color:#333; }
.ntop_clinic_info dt::before{ content:''; flex-shrink:0; width:18px; height:18px; margin-top:1px; background:var(--ntop-navy); -webkit-mask:var(--ntop-ico) center/contain no-repeat; mask:var(--ntop-ico) center/contain no-repeat; }
.ntop_clinic_info dt.is-pin{ --ntop-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7zm0 9.5A2.5 2.5 0 1 1 12 6.5a2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E"); }
.ntop_clinic_info dt.is-train{ --ntop-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C7 2 4 2.6 4 6v9.5A3.5 3.5 0 0 0 7.5 19L6 20.5V21h2.2l2-2h3.6l2 2H18v-.5L16.5 19a3.5 3.5 0 0 0 3.5-3.5V6c0-3.4-3-4-8-4zM7.5 17a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zM11 10H6V6h5v4zm5.5 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm1.5-7h-5V6h5v4z'/%3E%3C/svg%3E"); }
.ntop_clinic_info dt.is-clock{ --ntop-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm0 18a8 8 0 1 1 0-16 8 8 0 0 1 0 16zm.5-13H11v6l5.2 3.2.8-1.3-4.5-2.7V7z'/%3E%3C/svg%3E"); }
.ntop_clinic_info dd{ margin:0; font-size:12px; line-height:1.7; color:#333; }
.ntop_clinic_info dd a.is-ext{ display:inline-flex; align-items:center; gap:2px; margin-left:2px; color:var(--ntop-navy) !important; font-weight:700; }
.ntop_clinic_info dd a.is-ext::after{ content:''; width:11px; height:11px; background:var(--ntop-navy); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 3h7v7h-2V6.4l-9.3 9.3-1.4-1.4L17.6 5H14V3zM5 5h6v2H5v12h12v-6h2v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 3h7v7h-2V6.4l-9.3 9.3-1.4-1.4L17.6 5H14V3zM5 5h6v2H5v12h12v-6h2v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2z'/%3E%3C/svg%3E") center/contain no-repeat; }
.ntop_clinic_btns{ display:grid; grid-template-columns:1.25fr 1fr; gap:8px; margin-top:auto !important; padding-top:10px; }
.ntop_clinic_btns a{ display:flex; align-items:center; justify-content:center; gap:6px; height:100%; padding:9px 6px; border:1px solid var(--ntop-blue); border-radius:999px; font-size:12px; font-weight:700; line-height:1.3; text-align:center; transition:opacity .3s; }
.ntop_clinic_btns a.is-fill{ padding-right:20px; background:var(--ntop-blue); color:#fff !important; }
.ntop_clinic_btns a.is-fill::after{ right:12px; width:6px; height:6px; }
.ntop_clinic_btns a.is-tel{ background:#fff; color:var(--ntop-navy) !important; }
.ntop_clinic_btns a.is-tel i{ display:inline-flex; width:14px; height:14px; color:var(--ntop-navy); }
.ntop_clinic_btns a.is-tel i svg{ width:100%; height:100%; }
.ntop_clinic_btns a:hover{ opacity:.8; }

/* ============================================================
   ここから footer-top.php
   ============================================================ */
.ntop_foot{ display:block; }
/* アクセス */
.ntop_access{ background:#DDEFF8; }
.ntop_access_item{ display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:16px; border-radius:14px; background:#fff; }
.ntop_access_item + .ntop_access_item{ margin-top:18px; }
.ntop_access_map iframe{ display:block; width:100%; height:100%; min-height:300px; border:0; }
.ntop_access_name{ font-size:18px !important; font-weight:700; letter-spacing:.06em; line-height:1.5 !important; color:var(--ntop-navy); }
.ntop_access_text > p{ margin-top:8px !important; font-size:12px; line-height:1.8; color:var(--ntop-navy); }
.ntop_access_text > p a{ color:inherit !important; }
.ntop_access .footer_access_list{ display:flex; flex-direction:column; gap:10px; margin-top:16px !important; padding:0 !important; }
.ntop_access .footer_access_list_item{ width:auto !important; margin:0 !important; padding:0 !important; border:0 !important; }
.ntop_access .footer_access_list_item_btn{ margin:0 !important; padding:0 !important; font-size:13px !important; font-weight:500 !important; line-height:1.5 !important; }
.ntop_access .footer_access_list_item_btn a{ position:relative; display:block !important; padding:10px 40px 10px 18px !important; border:0 !important; border-radius:999px !important; background:#D3EAF6 !important; color:var(--ntop-navy) !important; font-size:13px !important; text-align:left; transition:opacity .3s; }
.ntop_access .footer_access_list_item_btn a::before{ content:none !important; }
.ntop_access .footer_access_list_item_btn a::after{ content:'' !important; position:absolute; right:18px; top:50%; width:7px; height:7px; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; background:none !important; transform:translateY(-50%) rotate(45deg); }
.ntop_access .footer_access_list_item_btn a i{ font-style:normal; }
.ntop_access .footer_access_list_item_btn a:hover{ opacity:.8; }

/* 動画（改修案どおり 2×2） */
.ntop_movie{ background:#E4F2F9; }
.ntop .ntop_movie_list{ display:grid; grid-template-columns:1fr 1fr; gap:14px; max-width:720px; margin:0 auto; }
.ntop_movie_list a{ display:block; height:100%; padding:12px 12px 10px; border-radius:8px; background:#fff; color:var(--ntop-navy) !important; transition:opacity .3s; }
.ntop_movie_list a:hover{ opacity:.85; }
.ntop_movie_list figure{ position:relative; overflow:hidden; }
.ntop_movie_list figure img{ display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.ntop_movie_list figure::after{ content:''; position:absolute; left:50%; top:50%; width:36px; height:36px; margin:-18px 0 0 -18px; border-radius:50%; background:rgba(0,0,0,.65) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M9 7v10l8-5z'/%3E%3C/svg%3E") center/22px no-repeat; }
.ntop_movie_list p{ margin-top:10px !important; font-size:12px; font-weight:500; line-height:1.6; text-align:center; }
.ntop_movie .ntop_btn{ margin-top:22px; }
.ntop_movie .ntop_btn a{ min-width:320px; }

/* SNS */
.ntop_sns{ background:#F8FBFC; padding:36px 0 40px; }
.ntop_sns .ntop_ttl{ margin-bottom:20px !important; }
.ntop_sns_list{ display:flex; justify-content:center; gap:16px; }
.ntop_sns_list li{ display:flex; flex-direction:column; align-items:center; width:60px; }
.ntop_sns_list a{ display:flex; align-items:center; justify-content:center; width:60px; height:60px; border:1px solid #E1EBF0; border-radius:50%; background:#fff; box-shadow:0 2px 6px rgba(0,0,0,.08); transition:opacity .3s; }
.ntop_sns_list a:hover{ opacity:.75; }
.ntop_sns_list img{ width:36px; height:36px; }
.ntop_sns_list span{ margin-top:6px; font-size:11px; letter-spacing:.1em; color:#777; line-height:1.2; }

/* その他コンテンツ（改修案どおり 2列） */
.ntop_other{ background:var(--ntop-bg); }
.ntop .ntop_other_list{ display:grid; grid-template-columns:1fr 1fr; gap:22px 16px; max-width:720px; margin:0 auto; }
.ntop_other_list a{ display:flex; align-items:center; height:100%; min-height:72px; padding:12px 44px 12px 32px; border-radius:999px; background:var(--ntop-pill); color:var(--ntop-navy) !important; font-size:17px; font-weight:500; letter-spacing:.06em; line-height:1.5; transition:opacity .3s; }
.ntop_other_list a::after{ right:26px; width:9px; height:9px; }
.ntop_other_list a:hover{ opacity:.8; }
.ntop_other_sub{ display:flex; justify-content:center; gap:32px; margin-top:36px !important; }
.ntop_other_sub a{ color:var(--ntop-navy) !important; font-size:15px; letter-spacing:.06em; text-decoration:underline !important; text-underline-offset:4px; }

/* 予約 */
.ntop_reserve{ padding:80px 0; background:linear-gradient(180deg,#E3F2F9 0%,#EEF7FB 100%); text-align:center; }
.ntop_reserve_text{ font-size:16px; line-height:2; letter-spacing:.06em; color:var(--ntop-navy); }
.ntop_reserve_btn{ margin-top:32px !important; }
.ntop_reserve_btn a{ display:inline-flex; align-items:center; justify-content:center; gap:22px; width:min(560px,100%); padding:24px 64px; border-radius:999px; background:var(--ntop-pill); color:var(--ntop-navy) !important; font-size:22px; font-weight:500; letter-spacing:.06em; line-height:1.4; transition:opacity .3s; }
.ntop_reserve_btn a::after{ right:32px; width:11px; height:11px; border-width:2px; }
.ntop_reserve_btn a:hover{ opacity:.8; }
.ntop_reserve_btn img{ width:36px; height:36px; }
.ntop_reserve_sub{ display:flex; flex-direction:column; align-items:center; gap:20px; margin-top:32px !important; }
.ntop_reserve_sub a{ padding-right:24px; color:var(--ntop-navy) !important; font-size:15px; letter-spacing:.06em; text-decoration:underline !important; text-underline-offset:4px; }
.ntop_reserve_sub a::after{ right:2px; width:7px; height:7px; }

/* 監修医情報 */
.ntop_direct{ background:var(--ntop-bg); }

/* コピーライト（改修案には無いが、サイトの表記として最小限で残す） */
.ntop_copy{ padding:20px 20px 28px; background:var(--ntop-bg); border-top:1px solid #DCE8EE; color:#777; text-align:center; }
.ntop_copy_note{ font-size:11px; line-height:1.7; }
.ntop_copy .is-lora{ margin-top:6px !important; font-size:11px; letter-spacing:.08em; }

/* ============================================================
   SP（768px以下）
   ============================================================ */
@media screen and (max-width:768px){
  .ntop{ font-size:13px; }
  .ntop_sec{ padding:40px 0; }
  .ntop_inner{ padding:0 14px; }
  .ntop_ttl{ margin-bottom:20px !important; }
  .ntop_ttl i{ font-size:11px; }
  .ntop_ttl span{ font-size:19px; }
  .ntop_ttl.is-line i{ max-width:320px; gap:12px; }
  .ntop_btn a{ min-width:220px; padding:10px 40px; font-size:13px; }

  .ntop_nav_list a{ padding:10px 2px 8px; font-size:12px; gap:3px; }
  .ntop_nav_list img{ width:24px; height:24px; }

  .ntop_line{ padding:28px 14px 22px; }
  .ntop_line_btn{ gap:12px; min-height:62px; padding:8px 36px 8px 16px; box-shadow:0 3px 0 #04A146; }
  .ntop_line_btn::after{ right:18px; width:8px; height:8px; border-width:2px; }
  .ntop_line_badge{ padding:2px 14px; font-size:12px; }
  .ntop_line_icon{ width:38px; height:38px; }
  .ntop_line_text{ font-size:17px; letter-spacing:.04em; }

  .ntop_tab{ gap:6px; margin-bottom:12px !important; }
  .ntop_tab button{ font-size:12px; padding:4px 2px; }
  .ntop_tab button small{ font-size:9px; }
  .ntop_parts{ grid-template-columns:27% 1fr 27%; }
  .ntop_parts_btns{ gap:10px; padding:10px 0 24px !important; }
  .ntop_parts_btns li.index_menu_parts_list_text_menu_item a{ padding:5px 2px !important; border-width:1px !important; border-radius:8px !important; font-size:11px !important; letter-spacing:0; }
  .ntop_dot{ width:7px; height:7px; margin:-3.5px 0 0 -3.5px; border-width:1px; }

  .ntop_counsel_list{ gap:8px; }
  .ntop_counsel_card{ padding:6px 6px 8px; border-radius:6px; }
  .ntop_counsel_head{ gap:4px; margin-bottom:5px; }
  .ntop_counsel_name{ font-size:13px; letter-spacing:.02em; }
  .ntop_counsel_name i{ font-size:7px; }
  .ntop_counsel_status{ padding:2px 6px; font-size:9px; letter-spacing:0; }
  .ntop_counsel_photo{ padding-bottom:16px; }
  .ntop_counsel_line{ left:3%; right:3%; gap:4px; padding:6px 16px 6px 6px; font-size:10px; letter-spacing:0; box-shadow:0 2px 0 #04A146; }
  .ntop_counsel_line::after{ right:8px; width:5px; height:5px; }
  .ntop_counsel_line .ntop_line_badge{ padding:0 6px; font-size:8px; }
  .ntop_counsel_line .ntop_line_icon{ width:18px; height:18px; }

  .ntop_case{ padding:40px 0 !important; }
  .ntop_case .index_case_inner{ padding:0 14px !important; }
  .ntop_case .c-tab-list.pt02{ gap:6px; }
  .ntop_case .c-tab-list.pt02 li a{ font-size:12px !important; }

  /* お約束：SPは写真を上、項目を2列 */
  .ntop_promise_body{ grid-template-columns:1fr; }
  .ntop_promise_img img{ height:auto; aspect-ratio:16/10; }
  .ntop_promise_list{ gap:8px; }
  .ntop_promise_list li{ grid-template-columns:36px 1fr; column-gap:8px; padding:10px 10px 10px 8px; }
  .ntop_promise_list img{ width:32px; height:32px; margin:2px 0 0; }
  .ntop_promise_head{ padding-left:8px; }
  .ntop_promise_list i{ font-size:14px; }
  .ntop_promise_list h3{ font-size:12px !important; letter-spacing:0; }
  .ntop_promise_list p{ font-size:11px; line-height:1.7; }
  .ntop_results_ttl{ margin-top:34px !important; }
  .ntop_results{ gap:8px; }
  .ntop_results li{ width:31.5%; max-width:118px; border-width:1px; box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 4px #D5E9F3; }
  .ntop_results_label{ font-size:9px; padding:0 2px 2px; margin-bottom:2px; letter-spacing:-.03em; }
  .ntop_results strong{ font-size:26px; }
  .ntop_results_unit{ font-size:10px; }
  .ntop_results_note{ font-size:9px; }

  /* ドクター：SPは1列 */
  .ntop_doctor_list{ grid-template-columns:1fr; gap:16px; }
  .ntop_dr_body{ padding:14px 16px 18px; }

  .ntop_news_list a{ flex-direction:column; align-items:flex-start; gap:2px; padding:14px 36px 14px 4px; font-size:12px; }
  .ntop_news_list a::after{ right:6px; }

  /* 各院のご案内：SPは1列 */
  .ntop_clinic_list{ grid-template-columns:1fr; gap:14px; }
  .ntop_clinic_name{ font-size:19px !important; }

  /* アクセス：SPは地図を上 */
  .ntop_access_item{ grid-template-columns:1fr; gap:12px; padding:12px; }
  .ntop_access_map iframe{ min-height:200px; }

  .ntop_movie_list{ gap:10px; }
  .ntop_movie_list a{ padding:8px 8px 6px; }
  .ntop_movie_list p{ font-size:10px; }
  .ntop_movie .ntop_btn a{ min-width:0; width:86%; }

  .ntop_sns{ padding:28px 0 32px; }
  .ntop_sns_list{ gap:6px; }
  .ntop_sns_list li{ width:auto; flex:1; max-width:46px; }
  .ntop_sns_list a{ width:100%; height:auto; aspect-ratio:1; }
  .ntop_sns_list img{ width:62%; height:auto; }
  .ntop_sns_list span{ font-size:8px; }

  .ntop_other_list{ gap:12px 8px; }
  .ntop_other_list a{ min-height:48px; padding:8px 26px 8px 16px; font-size:12.5px; letter-spacing:.02em; }
  .ntop_other_list a::after{ right:14px; width:7px; height:7px; }
  .ntop_other_sub{ gap:20px; margin-top:22px !important; }
  .ntop_other_sub a{ font-size:12px; }

  .ntop_reserve{ padding:52px 0; }
  .ntop_reserve_text{ font-size:12px; }
  .ntop_reserve_btn{ margin-top:22px !important; }
  .ntop_reserve_btn a{ gap:12px; padding:16px 40px 16px 24px; font-size:16px; }
  .ntop_reserve_btn a::after{ right:22px; width:8px; height:8px; }
  .ntop_reserve_btn img{ width:24px; height:24px; }
  .ntop_reserve_sub{ gap:14px; margin-top:22px !important; }
  .ntop_reserve_sub a{ font-size:12px; }

  /* SP追従CTAに最下部が隠れないように */
  .ntop_copy{ padding-bottom:110px; }
}
