@charset "utf-8";


/* ============================================================================================== */
/* Bridal-check                                                                                */
/* ============================================================================================== */

/* ----------------------------------------------------------------------- */
/* title */
.part-ttl {
	display:inline-block;
	padding-bottom: 0;
	background:rgba(0, 0, 0, 0) linear-gradient(transparent 80%, #fbdfdb 0%) repeat scroll 0 0;
}

.part-ttl-s {
	font-size: 0.6em;
}

/* ----------------------------------------------------------------------- */
/* mb-table */

.mb-table,
.mb-table tbody,
.mb-table tr,
.mb-table th,
.mb-table td {
	display: block;
	width: 100%;
	box-sizing: border-box;
}

.mb-table {
	background: rgba(219,215,211,.1);
	border: solid 1px rgba(124,113,102,.2);
	border-radius: 5px;
}

.mb-table .tr-border.sp td {
	position: relative;
}

.mb-table .tr-border.sp td:before {
	content: '';
	width: 100%;
	height: 1px;
	background: rgba(124,113,102,.2);
	position: absolute;
	left: 0;
	top: 0;
}

.mb-table th {
	background: rgba(124,113,102,.1);
	padding: 10px;
}

.mb-table th .th-ttl {
	font-weight: 500;
	font-size: 1.0em;
	display: inline-flex;
	margin-right: .5em;
}

.mb-table td {
	padding: 10px;
	font-size: 1.0em;
}

.mb-table .cp br {
	line-height: initial;
}

.ss__items {
	margin-top: 20px;
}

.sab-ttl {
	font-weight: 500;
}
/* ----------------------------------------------------------------------- */
/* Rubella HI guide (風疹抗体価 HI法) */

.hi-guide {
  margin-top: 15px;
}

.hi-guide__row {
  display: grid;
  grid-template-columns: 110px 1fr; /* 左ラベル幅 */
  gap: 12px;
  align-items: stretch;
  margin-top: 12px;
}

.hi-guide__label {
  background: #d6d6d6;
  border-radius: 6px;
  font-weight: 600;
  font-size: 0.95em;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 14px 10px;
  line-height: 1.3;
}

.hi-guide__body {
  background: #f2f2f2;
  border-radius: 6px;
  padding: 14px 16px;
  font-size: 0.95em;
  line-height: 1.7;
}

@media screen and (max-width: 767px) {
  .hi-guide__row {
    grid-template-columns: 1fr; /* スマホは上下に積む */
    gap: 8px;
  }

  .hi-guide__label {
    justify-content: flex-start;
    padding: 10px 12px;
  }

  .hi-guide__body {
    padding: 12px 12px;
  }
}

/* ----------------------------------------------------------------------- */
/* option */

ol {
	background: rgba(232,227,225,.5);
	border: solid 1px rgba(232,227,225,.5);
	border-radius: 5px;
}

.price-list {
	padding: 10px 25px 15px 25px;
}

.option {
	display: inline-flex;
	align-items: center;
	position: relative;
	width: 100%;
	margin-top: 10px;
}

.option:before {
	content: '';
	width: 100%;
	height: 1px;
	border-top: dashed 1px rgba(58,9,2,.3);
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	margin: auto;
	z-index: -1;
}

.li-ss {
	font-size: 0.8em;
}

.li-price {
	background: #f1f1f1;
	padding-left: 10px;
	margin-left: auto;
	line-height: normal;
}

.li-item {
	background: #f1f1f1;
	padding-right: 10px;
}

.li-attention {
	font-size: 0.8em;
	margin-top: 10px;
}

.s__item p + p{
	margin-top: 1em;
}


/* ============================================================================================== */
/* Media query                                                                                    */
/* ============================================================================================== */

/* ----------------------------------------------------------------------- */
/* SmartPhone */

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

}

@media screen and (min-width: 414px) {

}

@media screen and (min-width: 500px) {


}

@media screen and (orientation:landscape) {

}

/* over iphone 6 plus landscape */
@media screen and (orientation:landscape) and (min-width: 736px) {

}

/* ----------------------------------------------------------------------- */
/* Tablet */

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

	/* mb-table */
	.mb-table {
		display: table;
		border-collapse: separate;
		border-spacing: 0;
	}

	.mb-table tbody {
		display: table-row-group;
	}

	.mb-table tr {
		display: table-row;
	}

	.mb-table th {
		display: table-cell;
		width: 15%;
		min-width: 125px;
		padding: 25px;
		vertical-align: top;
	}

	.mb-table td {
		display: table-cell;
		width: 75%;
		padding: 25px;
	}

	.mb-table .tr-border.pc th,
	.mb-table .tr-border.pc td {
		position: relative;
	}

	.mb-table .tr-border.pc th:before,
	.mb-table .tr-border.pc td:before {
		content: '';
		width: 100%;
		height: 1px;
		position: absolute;
		left: 0;
		top: 0;
	}

	.mb-table .tr-border.pc.end th:before,
	.mb-table .tr-border.pc.end td:before {
		background: rgba(124,113,102,.2);
	}


}

/* ----------------------------------------------------------------------- */
/* over ipad landscape */

@media screen and (orientation:landscape) and (min-width: 1024px) {

}

/* ----------------------------------------------------------------------- */
/* Desktop */

@media screen and (min-width: 1280px) {



}

@media screen and (min-width: 1440px) {

}

/* ==========================================================
   Bridal Check Table Responsive & Border Styling
   ========================================================== */

.table-scroll {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-top: 15px;
  border: 1px solid rgba(124,113,102,.2);
  border-radius: 5px;
}

/* テーブル全体 */
.bridal-price-table,
.bridal-option-table {
  min-width: 700px; /* スマホで横スクロールを誘発 */
  border-collapse: collapse;
  width: 100%;
  background: #fff;
}

/* 枠線をしっかり表示 */
.bridal-price-table th,
.bridal-price-table td,
.bridal-option-table th,
.bridal-option-table td {
  border: 1px solid rgba(124,113,102,.3);
  text-align: center;
  vertical-align: middle;
  padding: 10px;
}

/* 左端（検査項目）は左寄せ */
.bridal-price-table td:first-child,
.bridal-option-table td:first-child {
  text-align: left;
  white-space: nowrap;
}

/* ヘッダー部分 */
.bridal-price-table thead th,
.bridal-option-table thead th {
  background: rgba(124,113,102,.1);
  font-weight: 600;
}

/* 表内のマーク（●） */
.bridal-price-table td,
.bridal-option-table td {
  font-size: 0.95em;
}

/* スクロールバーの見た目を少し調整（任意） */
.table-scroll::-webkit-scrollbar {
  height: 8px;
}
.table-scroll::-webkit-scrollbar-thumb {
  background: rgba(124,113,102,.3);
  border-radius: 4px;
}

/* ==========================================================
   Bridal専用テーブル（.bridal-table）
   ========================================================== */

/* 横スクロール用のラッパー */
.table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  width: 100%;
  border: 1px solid rgba(124,113,102,.2);
  border-radius: 5px;
  margin-top: 15px;
}

/* テーブル全体設定 */
.bridal-table {
  border-collapse: collapse;
  width: 100%;
  background: #fff;
  border: 1px solid rgba(124,113,102,.2);
  table-layout: fixed;
  min-width: 900px; /* スマホで横スクロール誘発 */
}

/* 各セル設定 */
.bridal-table th,
.bridal-table td {
  border: 1px solid rgba(124,113,102,.3);
  text-align: center;
  vertical-align: middle;
  padding: 10px 8px;
  white-space: normal;
  word-break: break-word;
  font-size: 0.95em;
}

/* 左端（検査項目）列は左寄せ */
.bridal-table th:first-child,
.bridal-table td:first-child {
  text-align: left;
  white-space: nowrap;
}

/* ヘッダー行 */
.bridal-table thead th {
  background: rgba(124,113,102,.1);
  font-weight: 600;
}

/* スクロールバーのデザイン */
.table-scroll::-webkit-scrollbar {
  height: 8px;
}
.table-scroll::-webkit-scrollbar-thumb {
  background: rgba(124,113,102,.3);
  border-radius: 4px;
}

/* ==========================================================
   スマホ時（767px以下）
   ========================================================== */
@media screen and (max-width: 767px) {
  .table-scroll {
    overflow-x: auto !important;
  }

  .bridal-table {
    min-width: 750px; /* 横スクロール用 */
    table-layout: fixed;
  }

  .bridal-table th,
  .bridal-table td {
    padding: 8px 6px;
    font-size: 0.9em;
  }

  .bridal-table th:first-child,
  .bridal-table td:first-child {
    white-space: normal; /* 項目名も折り返し許可 */
  }
}
/* ==========================================================
   Bridal Table 折り返し対応（長文セルはみ出し防止）
   ========================================================== */

.bridal-table th:first-child,
.bridal-table td:first-child {
  text-align: left;
  white-space: normal; /* ← 折り返し許可（ここが重要） */
  word-break: break-word; /* 英数字混在でも折り返し */
}

/* すべてのセルでも折り返しを許可しておく */
.bridal-table th,
.bridal-table td {
  white-space: normal;
  word-break: break-word;
}
/* ==========================================================
   Bridal Table：折り返し + 枠線再設定（最終安定版）
   ========================================================== */

.bridal-table th,
.bridal-table td {
  border: 1px solid rgba(124,113,102,.3) !important; /* ← 枠線を強制維持 */
  white-space: normal !important; /* 折り返し有効 */
  word-break: break-word !important; /* 英数混在でも改行 */
  vertical-align: middle;
  text-align: center;
  padding: 10px 8px;
}

/* 左端（検査項目）列：折り返し許可＋左寄せ */
.bridal-table th:first-child,
.bridal-table td:first-child {
  text-align: left;
  white-space: normal !important;
  word-break: break-word !important;
}

/* ヘッダー行背景 */
.bridal-table thead th {
  background: rgba(124,113,102,.1);
  font-weight: 600;
}


/* ----------------------------------------------------------------------- */
/* 料金表（プレコン） */

.priceTbl{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
  font-size:14px;
  min-width: 720px; /* スマホは横スクロール */
}

.priceTbl th,.priceTbl td{
  border:1px solid #bfbfbf;
  padding:10px 10px;
  vertical-align:middle;
}

.priceTbl thead th{
  text-align:center;
  font-weight:700;
}

/* 列幅（スクショ比率に寄せる） */
.priceTbl col.col-cat{ width:110px; }
.priceTbl col.col-item1{ width:180px; }
.priceTbl col.col-item2{ width:auto; }
.priceTbl col.col-price{ width:110px; }
.priceTbl col.col-mark{ width:120px; }

.priceTbl .colhead{
  text-align:center;
}

.priceTbl .priceTotal{
  font-size:16px;
  font-weight:700;
}

.priceTbl .cat,
.priceTbl .subcat{
  text-align:center;
  font-weight:700;
}

.priceTbl .catBlank{
  background:#fff;
}

.priceTbl .subitem{
  padding-left:10px;
}

/* 黄色は「価格セルだけ」 */
.priceTbl .priceCell{
  background:#fff0c8;
  text-align:center;
  font-weight:700;
}

.priceTbl .mark{
  text-align:center;
  font-size:18px;
  line-height:1;
}

.priceTbl .option{
  text-align:center;
  font-weight:700;
}

@media (max-width: 767px){
  .priceTbl{ font-size:13px; }
}

/* 列幅（価格列が太い問題を抑える） */
.priceTbl { table-layout: fixed; width:100%; border-collapse:collapse; }
.priceTbl col.col-cat   { width: 120px; }
.priceTbl col.col-price { width: 90px; }   /* ←黄色列を細く */
.priceTbl col.col-mark  { width: 140px; }  /* ●列 */

/* 区分なし行を希望.pngのように中央寄せ */
.priceTbl .itemCenter{
  text-align:center;
  font-weight:600;
}

/* 価格セル（黄色） */
.priceTbl .priceCell{
  background:#fff0c8;
  text-align:center;
  font-weight:700;
}
.priceTbl .priceTotal{
  text-align:center;
  font-weight:700;
  font-size: 18px;
}
.priceTbl td.optCell{
  display: table-cell;
  text-align: center;
  font-weight: 700;
  white-space: nowrap;
}
/* この画像だけ100%表示 */
.contents-img.is-full img{
  width: 100% !important;
  max-width: 100% !important;
}
