/* =========================================================
   初診・再診の方へ 専用CSS（page-visit.php）
   共通部分（見出し・ボタン・波・三角形の装飾など）は soshigaya-base.css
========================================================= */

/* --- 共通の小見出し・注釈 --- */
.p-ssg .p-visit-title {
	margin-bottom: 14px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.6;
}
.p-ssg * + .p-visit-title {
	margin-top: 36px;
}
.p-ssg .p-visit-note {
	margin-top: 6px;
	font-size: 13px;
	line-height: 1.85;
}
.p-ssg .p-visit-note a {
	color: inherit;
	text-decoration: none;
}

/* 「■ 小学生以下」など：前にミントの四角 */
.p-ssg .p-visit-sub,
.p-visit-mark {
	font-size: 15px;
	font-weight: 700;
}
.p-ssg .p-visit-sub {
	margin: 20px 0 6px;
	line-height: 1.6;
}
.p-ssg .p-visit-sub::after {
	content: none; /* 共通CSSの h4 の飾りを消す */
}
.p-ssg .p-visit-sub::before, /* 共通CSSの見出し装飾の打ち消しより強く */
.p-visit-mark::before,
.p-visit-squares li::before {
	content: "";
	display: inline-block;
	width: .8em;
	height: .8em;
	margin-right: 6px;
	background: var(--ssg-mint);
	vertical-align: -.02em;
}

/* 黒丸のリスト */
.p-ssg .p-visit-dots {
	margin: 4px 0 !important;
	padding-left: 1.5em !important;
	font-weight: 700;
	list-style: disc;
}

/* ミントの四角のリスト */
.p-visit-squares {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.p-visit-squares li {
	line-height: 1.95;
}

/* --- 文章（左）＋写真（右端までいっぱい） --- */
.p-visit-row {
	display: grid;
	grid-template-columns: minmax(0, 470px) minmax(0, 1fr);
	gap: 40px;
	align-items: start;
	padding-left: max(20px, calc((100% - var(--ssg-inner)) / 2));
}
.p-visit-row__img img {
	width: 100%;
	height: auto;
	aspect-ratio: 535 / 350;
	object-fit: cover;
	border-radius: var(--ssg-radius) 0 0 var(--ssg-radius);
}

/* --- 受診される前にお読みください --- */
.p-visit-box {
	margin-top: 40px;
	padding: 34px 30px 30px;
	border-radius: var(--ssg-radius);
	background: var(--ssg-gray);
}

/* --- 予約方法（診察室の選び方） --- */
.p-visit-howto {
	display: grid;
	grid-template-columns: minmax(0, 470px) 237px;
	justify-content: space-between;
	gap: 40px;
	margin-bottom: 70px;
}
.p-ssg .p-visit-lead {
	font-size: 17px;
	font-weight: 700;
}
.p-visit-howto__btn {
	width: 100%;
	margin-top: 12px;
}
.p-ssg .p-visit-room {
	margin-top: 36px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.8;
}
.p-visit-room span::before {
	content: "｜";
	color: #aaa;
	font-weight: 400;
}
.p-visit-howto__img img {
	width: 100%;
	height: auto;
	aspect-ratio: 237 / 437;
	object-fit: cover;
	object-position: top;
	border-radius: 4px;
}

/* --- 診療の流れ：タブ --- */
.p-visit-tabs {
	display: flex;
	align-items: flex-end;
	gap: 2px;
}
.p-visit-tab {
	min-width: 166px;
	padding: 16px 16px 14px;
	border: 0;
	border-radius: var(--ssg-radius) var(--ssg-radius) 0 0;
	background: #ddd;
	color: var(--ssg-brown);
	font-family: var(--ssg-font);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
	cursor: pointer;
	transition: background-color .3s, color .3s;
}
.p-visit-tab[aria-selected="true"] {
	min-width: 227px;
	padding-block: 22px 20px;
	background: var(--ssg-mint);
	color: #fff;
	cursor: default;
}
.p-visit-tab:not([aria-selected="true"]):hover {
	background: #cfe9e5;
}

.p-visit-panel {
	padding: 0 30px;
	border: 2px solid var(--ssg-mint);
	border-radius: 0 var(--ssg-radius) var(--ssg-radius) var(--ssg-radius);
	background: #fff;
}
.p-visit-steps {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}
.p-visit-step {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 280px;
	gap: 38px;
	padding: 26px 6px 30px;
}
.p-visit-step + .p-visit-step {
	border-top: 1px dashed #9ccfc8;
}
.p-ssg .p-visit-step__title {
	margin-bottom: 14px;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.6;
}
.p-visit-step__body > p + p {
	margin-top: 14px;
}
.p-visit-step__btns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin: 20px 0 22px;
}
.p-visit-step__wide {
	width: 100%;
	margin: 20px 0;
}
.p-visit-step__img {
	margin: 0;
}
.p-visit-step__img img {
	width: 100%;
	height: auto;
	aspect-ratio: 280 / 178;
	object-fit: cover;
	border-radius: 4px;
}
.p-visit-step__img figcaption {
	margin-top: 18px;
	color: #e0403f;
	font-size: 15px;
	font-weight: 700;
	text-align: center;
}

/* 日帰り手術の場合：鼻・副鼻腔手術外来ページの「流れ」ブロックをそのまま表示（見た目は ssg-medical.css）
   タブとつながるよう、枠の色・角だけ合わせる */
.p-visit-panel.is-surgery {
	padding: 0;
	border: 0;
	background: none;
}
.p-ssgMedical__body.p-visit-surgery {
	padding: 0;
	font-family: var(--ssg-font-body); /* 「一般の診察」と同じ書体・字間 */
	font-size: 15px;
	letter-spacing: .03em;
}
.p-ssgMedical__body.p-visit-surgery h3 {
	font-family: var(--ssg-font);
}
.p-ssgMedical__body.p-visit-surgery::before {
	content: none;
}
.p-ssgMedical__body.p-visit-surgery > .is-style-ssg-flow {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0 36px; /* 「一般の診察」と同じ余白 */
	border-color: var(--ssg-mint);
	border-radius: var(--ssg-radius); /* 2つ目のタブの下なので、左上も角丸 */
	background: #fff;
}
/* 各ステップ：「一般の診察」と同じ余白・区切り線 */
.p-ssgMedical__body.p-visit-surgery > .is-style-ssg-flow > * {
	margin: 0;
	padding: 26px 0 30px;
}
.p-ssgMedical__body.p-visit-surgery > .is-style-ssg-flow > * + * {
	margin-top: 0;
	padding-top: 26px;
	border-top: 1px dashed #9ccfc8;
}
.p-visit-surgery-none {
	padding: 30px;
	border: 2px solid var(--ssg-mint);
}

/* --- お支払いについて --- */
.p-visit-pay {
	margin-top: 40px;
	padding: 34px 30px 40px;
	background: var(--ssg-gray);
}
.p-visit-pay__cards {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	margin: 30px 0 0 !important;
	padding: 0 14px !important;
	list-style: none;
}
.p-visit-pay__cards img {
	width: auto;
	height: 60px;
	max-width: 110px;
	object-fit: contain;
}
.p-ssg .p-visit-pay__note {
	margin-top: 30px;
}
.p-visit-more {
	margin-top: 60px;
	text-align: center;
}
.p-visit-more .p-ssgBtn {
	width: min(470px, 100%);
}

/* =========================================================
   タブレット（〜1024px）
========================================================= */
@media (max-width: 1024px) {
	.p-visit-row {
		grid-template-columns: minmax(0, 1fr) minmax(0, 40%);
		gap: 30px;
	}
	.p-visit-step {
		grid-template-columns: minmax(0, 1fr) 36%;
		gap: 24px;
	}
}

/* =========================================================
   SP（〜767px）
========================================================= */
@media (max-width: 767px) {
	.p-ssg .p-visit-title,
	.p-ssg .p-visit-step__title {
		font-size: 17px;
	}
	.p-ssg * + .p-visit-title {
		margin-top: 28px;
	}

	/* 文章→写真の順に縦に並べる（写真は右端までいっぱい） */
	.p-visit-row {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.p-visit-row__body {
		padding-right: 20px;
	}
	.p-visit-row__img img {
		aspect-ratio: 3 / 2;
	}

	.p-visit-box {
		padding: 24px 18px 20px;
	}

	.p-visit-howto {
		grid-template-columns: 1fr;
		gap: 30px;
		margin-bottom: 50px;
	}
	.p-ssg .p-visit-lead {
		font-size: 15px;
	}
	.p-ssg .p-visit-room {
		margin-top: 26px;
		font-size: 17px;
	}
	.p-visit-howto__img {
		width: 60%;
		margin-inline: auto;
	}

	.p-visit-tab {
		flex: 1;
		min-width: 0 !important;
		padding: 12px 8px;
		font-size: 14px;
	}
	.p-visit-tab[aria-selected="true"] {
		padding-block: 16px;
	}
	.p-visit-panel,
	.p-visit-surgery > .is-style-ssg-flow {
		border-radius: 0 0 var(--ssg-radius) var(--ssg-radius);
	}
	.p-visit-panel {
		padding: 0 16px;
	}
	.p-ssgMedical__body.p-visit-surgery {
		font-size: 14px;
	}
	.p-ssgMedical__body.p-visit-surgery > .is-style-ssg-flow {
		padding: 0 16px;
	}
	.p-ssgMedical__body.p-visit-surgery > .is-style-ssg-flow > * {
		padding-block: 24px;
	}
	.p-visit-step {
		grid-template-columns: 1fr;
		gap: 16px;
		padding: 24px 0;
	}
	.p-visit-step__btns {
		gap: 10px;
	}
	.p-visit-step__img figcaption {
		margin-top: 8px;
		font-size: 14px;
	}

	.p-visit-pay {
		padding: 24px 18px 28px;
	}
	.p-visit-pay__cards {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 14px 10px;
		justify-items: center;
		padding: 0 !important;
	}
	.p-visit-pay__cards img {
		height: 40px;
		max-width: 80px;
	}
	.p-visit-more {
		margin-top: 40px;
	}
}
