@charset "UTF-8";
/* ============ 下層ページ共通スタイル ============ */

/* 自由診療ページ用 */
.prv-section{
  margin-bottom:56px;
  padding-bottom:56px;
  border-bottom:1px solid var(--ink-100);
}
.prv-section:last-of-type{
  border-bottom:none;
}

.prv-h2{
  font-size:22px;
  margin-bottom:24px;
  border-bottom:2px solid var(--ink-200);
  padding-bottom:8px;
  color:var(--green-800);
  scroll-margin-top:100px;
  font-family:"Noto Serif JP",serif;
  font-weight:500;
  letter-spacing:0.06em;
}

.prv-h4{
  font-weight:600;
  margin-bottom:8px;
  margin-top:20px;
  font-size:14px;
  color:var(--ink-900);
}

.prv-section p{
  font-size:13.5px;
  line-height:1.9;
  color:var(--ink-800);
  margin-bottom:16px;
}

.prv-section .note{
  font-size:12px;
  color:var(--ink-600);
  line-height:1.7;
  margin-bottom:12px;
}

/* 目次リンク */
.toc-link{
  display:flex;
  align-items:center;
  padding:12px 16px;
  background:#f8faf9;
  color:var(--green-800);
  border-radius:4px;
  text-decoration:none;
  border:1px solid #e8f0ec;
  transition:background 0.2s;
  font-size:13px;
}
.toc-link:hover{
  background:#e8f0ec;
}

/* 料金ボックス */
.price-box{
  background:#f8faf9;
  padding:24px;
  border-radius:4px;
  border:1px solid #e8f0ec;
  margin-top:24px;
  margin-bottom:16px;
}
.price-box h4{
  font-weight:600;
  margin-bottom:12px;
  font-size:14px;
}
.price-box h5{
  font-size:14px;
  font-weight:600;
  margin-bottom:8px;
  color:var(--green-800);
  margin-top:16px;
}
.price-box h5:first-of-type{
  margin-top:0;
}
.price-box p{
  font-size:13px;
  line-height:1.8;
  color:var(--ink-800);
  margin-bottom:12px;
}

/* 料金リスト */
.price-list{
  list-style:none;
  margin:0 0 16px;
  padding:0;
}
.price-list li{
  display:flex;
  justify-content:space-between;
  border-bottom:1px dashed #ddd;
  padding-bottom:8px;
  margin-bottom:8px;
  font-size:13px;
  line-height:1.6;
  gap:16px;
}
.price-list li span:first-child{
  color:var(--ink-800);
}
.price-list li span:last-child{
  font-weight:500;
  white-space:nowrap;
  color:var(--ink-900);
}

/* おすすめボックス */
.recommend-box{
  background:#fff;
  padding:24px;
  border-radius:4px;
  border:1px solid var(--ink-200);
  margin:24px 0;
}
.recommend-box h4{
  font-weight:600;
  margin-bottom:12px;
  color:var(--green-700);
  font-size:14px;
}

/* 注意事項ボックス */
.caution-box{
  background:#fff;
  padding:16px;
  border-radius:4px;
  border:1px solid var(--ink-200);
  margin-top:24px;
}
.caution-box h4{
  font-weight:600;
  margin-bottom:8px;
  font-size:14px;
}

/* 警告ボックス */
.warn-box{
  background:#fff0f0;
  padding:16px;
  border-radius:4px;
  margin-top:24px;
  font-size:13px;
  line-height:1.7;
  color:var(--ink-800);
}
.warn-box h4{
  font-weight:600;
  font-size:14px;
}
.warn-box p{
  font-size:13px;
  line-height:1.7;
  margin-bottom:8px;
}

/* 共通リスト */
.disc-list{
  list-style:disc;
  margin-left:24px;
  margin-bottom:12px;
  font-size:13px;
  line-height:1.8;
  color:var(--ink-700);
}

/* 情報カード（予防医療ページ用） */
.info-card{
  margin-top:16px;
  padding:24px;
  border-radius:4px;
  background:#fff;
  border:1px solid var(--ink-200);
  margin-bottom:24px;
}
.info-card-title{
  font-size:15px;
  color:var(--green-800);
  margin-bottom:12px;
  border-bottom:1px dashed #ccc;
  padding-bottom:8px;
  font-weight:600;
}
.info-card-sub{
  font-size:14px;
  color:var(--ink-900);
  margin-top:16px;
  margin-bottom:8px;
  font-weight:600;
}
.note-list{
  color:var(--ink-600);
}

/* 検査項目テーブル */
.checkup-table{
  width:100%;
  border-collapse:collapse;
  font-size:12.5px;
  margin-top:16px;
  text-align:left;
}
.checkup-table th,
.checkup-table td{
  padding:8px 12px;
  border:1px solid var(--ink-200);
  line-height:1.6;
}
.checkup-table thead tr{
  background-color:#f9f9f9;
}
.checkup-table th{
  font-weight:500;
  font-size:12px;
  color:var(--ink-900);
}

/* ============ Page Hero (下層共通ヒーロー) ============ */
.page-hero{
  background:var(--green-900);
  padding:72px 40px 64px;
  text-align:center;
}
.page-hero .en{
  display:block;font-size:11px;letter-spacing:0.3em;color:var(--green-600);
  margin-bottom:16px;text-transform:uppercase;
}
.page-hero h1{
  font-family:"Noto Serif JP",serif;font-size:30px;font-weight:500;
  letter-spacing:0.1em;color:#fff;margin:0 0 20px;
}
.page-hero .lead{
  font-size:13.5px;line-height:1.9;color:rgba(255,255,255,0.65);
  max-width:560px;margin:0 auto;
}

/* ============ First Visit ============ */
.fv-body{
  padding:72px 40px;
  background:var(--marble);
}
.fv-grid{
  max-width:1100px;margin:0 auto;
  display:grid;grid-template-columns:1fr 1fr;gap:64px;
  align-items:start;
}
.fv-col-title{margin-bottom:36px;}
.fv-col-title .en{
  display:block;font-size:11px;letter-spacing:0.28em;color:var(--green-600);
  margin-bottom:8px;
}
.fv-col-title h2{
  font-family:"Noto Serif JP",serif;font-size:22px;font-weight:500;
  letter-spacing:0.08em;color:var(--ink-900);margin:0;
}
.flow-list{display:flex;flex-direction:column;gap:0;}
.flow-item{
  display:flex;gap:20px;
  padding:24px 0;
  border-bottom:1px solid var(--ink-100);
}
.flow-item:first-child{border-top:1px solid var(--ink-100);}
.step-num{
  font-family:"Noto Serif JP",serif;font-size:22px;font-weight:500;
  color:var(--green-700);letter-spacing:0.04em;
  flex-shrink:0;width:36px;padding-top:2px;
}
.step-content h3{
  font-size:15px;font-weight:600;color:var(--ink-900);
  margin:0 0 8px;letter-spacing:0.04em;
}
.step-content p{
  font-size:13px;line-height:1.85;color:var(--ink-700);margin:0 0 8px;
}
.step-content p:last-child{margin-bottom:0;}
.web-inquiry-list{
  list-style:none;padding:0;margin:10px 0 0;
}
.web-inquiry-list li{
  font-size:12.5px;line-height:2;
}
.web-inquiry-list a{
  color:var(--green-700);text-decoration:underline;
}
.web-inquiry-list a:hover{color:var(--green-900);}
.bring-box{
  background:#fff;border:1px solid var(--ink-100);
  padding:28px;margin-bottom:24px;
}
.bring-list{list-style:none;padding:0;margin:0;}
.bring-list li{
  display:flex;align-items:baseline;gap:10px;
  font-size:13.5px;color:var(--ink-800);line-height:1.7;
  padding:9px 0;border-bottom:1px solid var(--ink-100);
}
.bring-list li:last-child{border-bottom:none;}
.bring-list li::before{
  content:"✓";color:var(--green-600);font-size:12px;flex-shrink:0;
}
.private-note{
  background:var(--green-900);color:#fff;
  padding:24px 28px;margin-bottom:24px;
}
.private-note h3{
  font-size:13.5px;font-weight:600;letter-spacing:0.04em;
  margin:0 0 10px;color:#fff;
}
.private-note p{
  font-size:12.5px;line-height:1.85;color:rgba(255,255,255,0.7);margin:0;
}
.payment-box{margin-bottom:0;}
.payment-box h3{
  font-size:13.5px;font-weight:600;color:var(--ink-900);
  border-bottom:1px solid var(--ink-200);padding-bottom:10px;margin:0 0 14px;
}
.payment-box p{
  font-size:13px;line-height:1.85;color:var(--ink-700);margin:0 0 14px;
}
.payment-box img{
  width:100%;height:auto;display:block;
  border:1px solid var(--ink-100);border-radius:2px;
}
.fv-action{
  max-width:1100px;margin:56px auto 0;text-align:center;
}
.fv-action a{
  display:inline-flex;align-items:center;gap:12px;
  background:var(--green-800);color:#fff;
  padding:18px 48px;font-size:14px;letter-spacing:0.12em;
  transition:background .2s;
}
.fv-action a:hover{background:var(--green-900);}
.fv-action svg{flex-shrink:0;}

/* レスポンシブ */
@media (max-width:860px){
  .prv-h2{font-size:18px;}
  .price-list li{flex-direction:column; gap:4px;}
  .price-list li span:last-child{align-self:flex-end;}
  .checkup-table{min-width:600px;}
  .info-card{padding:16px;}

  .page-hero{padding:56px 24px 48px;}
  .page-hero h1{font-size:24px;}
  .fv-body{padding:56px 24px;}
  .fv-grid{grid-template-columns:1fr;gap:48px;}
}
@media (max-width:480px){
  .fv-body{padding:40px 20px;}
  .bring-box{padding:20px;}
  .private-note{padding:20px;}
}
