@charset "utf-8";

/* =====================
  Reset
===================== */
html {
	height: 100%;
}

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}

/* =====================
  Base
===================== */
body {
	background-color: #ffffff;
	height: 100%;
	font-size: 16px;
	color: #333;
	line-height: 1.8;
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic",
		"游ゴシック Medium", "Yu Gothic Medium", "游ゴシック",
		"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Noto Sans Japanese",
		"メイリオ", "Meiryo", sans-serif;
	-webkit-text-size-adjust: 100%;
}

h1 {
	font-size: 2rem;
}

h2 {
	font-size: 1.6rem;
}

h3 {
	color: #1A3D8D;
	font-weight: bold;
	font-size: 1.4rem;
}

h4 {
	font-weight: bold;
	font-size: 1.2rem;
	margin: 12px 0;
}

h5 {
	font-size: 16px;
	font-weight: normal;
	text-align: right;
	margin-bottom: 12px;
}

p {
	margin-bottom: 12px;
}

a {
	color: #1A3D8D;
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
	opacity: .7;
}

a:visited {
	color: #4c0099;
}

@media screen and (min-width: 768px) {
	a[href^="tel:"] {
		pointer-events: none;
		color: #333;
	}

	a[href^="tel:"].white-link {
		color: #fff !important;
	}
}

@media screen and (max-width: 767px) {

	h1,
	h2,
	h3 {
		line-height: 1.5;
	}

	h5 {
		text-align: left;
	}
}

/* =====================
  コメントCSS（DL）
===================== */
dl {
	display: flex;
	flex-wrap: wrap;
	padding: 6px 0;
}

dt {
	width: 120px;
	/* 1文字16px */
	margin-bottom: 9px;
	margin-right: 1rem;
	font-weight: bold;
}

dd {
	width: calc(100% - 120px - 16px);
	margin-bottom: 12px;
}

.dl3em dl {
	display: flex;
	flex-wrap: wrap;
	padding: 6px 0;
	margin-bottom: 12px;
}

.dl3em dt {
	width: 48px;
	margin-bottom: 9px;
	margin-right: 1em;
	font-weight: bold;
}

.dl3em dd {
	width: calc(100% - 48px - 16px);
	margin-bottom: 9px;
}

.dl4em dl {
	display: flex;
	flex-wrap: wrap;
	padding: 6px 0;
	margin-bottom: 12px;
}

.dl4em dt {
	width: 64px;
	margin-bottom: 9px;
	margin-right: 1em;
	font-weight: bold;
}

.dl4em dd {
	width: calc(100% - 64px - 16px);
	margin-bottom: 9px;
}

.dl8em dl {
	display: flex;
	flex-wrap: wrap;
	padding: 6px 0;
	margin-bottom: 12px;
}

.dl8em dt {
	width: 128px;
	margin-bottom: 9px;
	margin-right: 1em;
	font-weight: bold;
}

.dl8em dd {
	width: calc(100% - 128px - 16px);
	margin-bottom: 9px;
}

.dl10em dl {
	display: flex;
	flex-wrap: wrap;
	padding: 6px 0;
	margin-bottom: 12px;
}

.dl10em dt {
	width: 160px;
	margin-bottom: 9px;
	margin-right: 1em;
	font-weight: bold;
}

.dl10em dd {
	width: calc(100% - 160px - 16px);
	margin-bottom: 9px;
}

.dl12em dl {
	display: flex;
	flex-wrap: wrap;
	padding: 6px 0;
	margin-bottom: 12px;
}

.dl12em dt {
	width: 192px;
	margin-bottom: 9px;
	margin-right: 1em;
	font-weight: bold;
}

.dl12em dd {
	width: calc(100% - 192px - 16px);
	margin-bottom: 9px;
}

@media screen and (max-width: 767px) {

	dl,
	.dl3em,
	.dl4em,
	.dl8em,
	.dl10em,
	.dl12em {
		display: block;
	}

	dt,
	.dl3em dt,
	.dl4em dt,
	.dl8em dt,
	.dl10em dt,
	.dl12em dt {
		width: 100%;
	}

	dd,
	.dl3em dd,
	.dl4em dd,
	.dl8em dd,
	.dl10em dd,
	.dl12em dd {
		width: 100%;
	}
}

/* =====================
  Lists
===================== */
ul {
	margin-bottom: 12px;
}

ul li {
	list-style-position: outside;
	list-style-type: disc;
	margin-left: 1.5rem;
}

ol {
	margin-bottom: 12px;
	counter-reset: num;
	list-style: none;
}

ol>li {
	counter-increment: num;
	position: relative;
	margin-bottom: 0.4rem;
	padding-left: 1.4rem;
}

ol>li::before {
	content: counter(num);
	position: absolute;
	left: 0;
	top: 0.35rem;
	width: 1.4rem;
	height: 1.4rem;
	line-height: 1.4;
	text-align: center;
	background: #fff;
	color: #333;
	border-radius: 50%;
	border: 1px solid #333;
	font-weight: bold;
	font-size: 0.8rem;
}

strong {
	font-weight: bold;
}

small {
	font-size: 0.9rem;
}

/* =====================
  Container
===================== */
.container {
	max-width: 900px;
	margin: auto;
	/* display: flex; */
	/* flex-direction: column; */
	padding: 12px 0;
}

@media screen and (max-width: 900px) {
	.container {
		margin: 0 48px;
	}
}

@media screen and (max-width: 767px) {
	.container {
		margin: 0 12px;
	}
}

/* =========================================================
  画像まわり
========================================================= */

/* 1) グローバルimg */
img {
	display: block;
	max-width: 100%;
	height: auto;
}

/* 2) “mediaを使わない画像”は中央寄せ */

/* 1) デフォルト：container内の画像は中央（ただしレイアウト部品内は除外） */
.container img {
	display: block;
	margin: 0 auto 24px;
}

/* 2) 例外：横並び/メディア部品の中の画像は“各部品側”で管理する */
.container .flexbox img,
.container .rightimg-flexbox img,
.container .leftimg-flexbox img {
	margin: 0;
	/* ← ここは各部品の指定で調整 */
}

.container figure {
	margin: 0 auto 24px;
}

.container figure>img {
	margin: 0;
	/* figureが中央なのでimg自体は0でOK */
}


/* 画像単体の補助クラス（互換） */
.display-none {
	display: inline !important;
}

/* テキスト先頭に置く小さなアイコン専用 */
.img-icon {
	display: inline;
	margin: 0 9px 0 0;
	vertical-align: middle;
	max-width: none;
	height: auto;
	margin-bottom: 0;
}

/* 3) media：左右レイアウト（is-right / is-left） */
.media {
	display: flex;
	align-items: flex-start;
	gap: 18px;
}

.media> :first-child {
	flex: 1;
	min-width: 0;
}

.media>img {
	flex: 0 0 auto;
	margin: 0;
	display: block;
	max-width: none;
	/* width/height属性を尊重 */
	height: auto;
}

.media.is-right>img {
	margin-left: auto;
}

.media.is-left {
	flex-direction: row-reverse;
}

.media.is-left>img {
	margin-right: auto;
}

@media screen and (max-width: 767px) {
	.media {
		display: block;
	}

	.media>img {
		max-width: 100%;
		margin: 18px auto 36px;
	}
}



/* 削除予定 ここから */

/* 4) 既存：画像配置（当面維持） */
.rightimg-flexbox {
	display: flex;
	align-items: flex-start;
}

.rightimg-textwrap {
	margin-right: 18px;
}

.rightimg-flexbox>img,
.rightimg-flexbox .caption-img {
	margin-left: auto;
	/* 右端へ */
}

.container .rightimg-flexbox img {
	margin: 0 0 24px auto;
	/* ←右寄せ */
}

.rightimg-flexbox a {
	margin-left: auto;
}

.rightimg-flexbox .caption-img {
	margin-left: auto;
}

/* 画像配置 左よせ（既存） */
.leftimg-flexbox {
	display: flex;
	align-items: flex-start;
}

.leftimg-textwrap {
	margin-left: 18px;
}

.leftimg-flexbox .caption-img {
	flex: 0 0 auto;
	/* shrinkさせない */
	width: auto;
}

.leftimg-flexbox .caption-img>img {
	width: auto;
	/* 画像を親幅にフィットさせない */
	max-width: none;
	/* max-width:100% の制限を外す（必要） */
	height: auto;
}

@media screen and (max-width: 900px) {
	.leftimg-flexbox {
		flex-direction: column;
	}

	.leftimg-flexbox>img {
		display: block;
		order: 1;
		margin: 0 auto 36px;
		max-width: 100%;
	}

	.leftimg-textwrap {
		margin: 0;
	}

	/* rightimg-flexbox：blockにしない（矛盾防止） */
	.rightimg-flexbox {
		flex-direction: column;
	}

	.container .rightimg-flexbox img {
		margin: 0 auto 36px;
		/* 中央 */
		max-width: 100%;
	}

	.rightimg-flexbox>img,
	.rightimg-flexbox a,
	.rightimg-flexbox .caption-img {
		margin: 0 auto 36px;
		max-width: 100%;
	}

	.rightimg-textwrap {
		margin: 0;
	}

	.shisetsu-ttl .rightimg-flexbox .shisetsu-qr {
		margin: 0 auto 24px;
		text-align: center;
	}

	.shisetsu-ttl .rightimg-flexbox .shisetsu-qr img {
		margin: 0 auto;
		display: block;
		max-width: 100%;
	}
}

/* PCでは leftimg-flexbox の caption-img だけ固定サイズ尊重（必要なら） */
@media screen and (min-width: 768px) {
	.leftimg-flexbox .caption-img>img {
		width: auto;
		max-width: none;
		/* ←PCだけ解除 */
	}
}

/* スマホでは必ず画面内に収める（念押し） */
@media screen and (max-width: 767px) {
	.leftimg-flexbox .caption-img>img {
		max-width: 100% !important;
	}
}

/* 削除予定 ここまで */



@media screen and (max-width: 900px) {
	.img-right-wrap {
		display: block;
	}

	.img-right {
		margin: 0 auto;
	}

	.caption-img {
		margin: 0 auto;
	}
}

/* キャプションありの画像 */
.caption-img img {
	margin-left: auto;
	margin-right: auto;
	margin-bottom: 0;
	margin-top: 6px;
}

.caption-img p {
	font-size: 80%;
	text-align: center;
	margin: 12px 0 24px 0;
}

.caption-img>img {
	max-width: 100%;
	height: auto;
	box-sizing: border-box;
}

.img-left {
	margin-left: 0;
	margin-right: auto;
	display: block;
}

.img-right {
	margin-left: auto;
	margin-right: 0;
	display: block;
}

@media screen and (max-width: 767px) {

	.img-left,
	.img-right {
		margin-left: auto;
		margin-right: auto;
	}
}

.img-line {
	border: 1px solid #c6c6c6;
}

/* 画像大（既存） */
@media screen and (max-width: 900px) {
	img.imglarge {
		width: 100%;
		padding: 0;
	}
}

@media screen and (max-width: 767px) {
	img.imglarge {
		width: 100%;
		padding: 0;
	}
}

/* =====================
  配置
===================== */
.container .flexbox-between {
	display: flex;
	justify-content: space-between;
}

.container .flexbox {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 24px;
}

.container .flexbox-items-normal {
	align-items: normal;
}

.container .flexbox-column {
	display: flex;
	flex-flow: column;
}

.container .flexbox-column img {
	margin: 12px 12px 24px 12px;
}

@media screen and (max-width: 900px) {
	.container .flexbox-between {
		flex-direction: column;
	}

	.container .flexbox-between img {
		max-width: 100%;
		height: auto;
	}

	.container .flexbox {
		flex-direction: column;
	}

	.container .flexbox img {
		margin: 12px 0;
	}

	.container .flexbox-column img {
		padding: 0;
	}
}

/* =====================
  ホーム
===================== */
.ttl {
	display: flex;
	margin-top: 54px;
}

.ttl-side {
	flex: 1;
	padding: 16px 0;
}

.ttl-side h2 {
	font-size: 3rem;
	color: #CCC;
	font-weight: bold;
	text-align: right;
	line-height: 1;
}

.ttl-side h1 {
	font-size: 1.2rem;
	color: #999;
	font-weight: normal;
	text-align: right;
}

.ttl-side address {
	font-size: 0.85rem;
	color: #333;
	font-weight: normal;
	font-style: normal;
	text-align: right;
}

.ttl-side p {
	font-size: 0.85rem;
	color: #999;
	padding-top: 12px;
	text-align: right;
}

/* 表紙img */
.top-main {
	display: flex;
}

.top-img {
	flex-direction: column;
}

.top-img img {
	margin: 0;
}

.top-caption {
	width: 450px;
}

.top-caption h3 {
	font-size: 93%;
	line-height: 1.5;
	font-weight: normal;
	color: #8A8A8A;
	margin-top: 9px;
}

/* インデックス */
.top-index {
	display: inline-flex;
	flex-direction: column;
	margin-left: auto;
	width: calc(100% - 480px);
}

.top-index p {
	color: #333;
	font-weight: bold;
	background-color: #f5f5fe;
	border-bottom: 1px solid #c6c6c6;
	border-right: 1px solid #c6c6c6;
	padding: 6px 0 4px 16px;
	margin: 0 0 0.5rem;
}

.index-list {
	font-size: 100%;
	margin: 16px 0 1.5rem 0;
}

.index-list li {
	list-style-type: disc;
	margin-bottom: 0.8rem;
	line-height: 1.5;
	list-style-position: outside;
}

@media screen and (max-width: 767px) {
	.ttl {
		flex-direction: column;
	}

	.ttl img {
		width: 250px;
		margin-left: 0;
	}

	.ttl h2,
	.ttl h1,
	.ttl p {
		text-align: left;
	}

	.ttl-side h2 {
		margin-top: 12px;
	}

	.top-main {
		flex-direction: column;
	}

	.top-img {
		order: 2;
	}

	.top-img img {
		padding: 0;
		margin: 0;
	}

	.top-index {
		width: 100%;
		order: 1;
	}

	.top-caption {
		width: auto;
	}
}

/* 説明 */
.top-desc {
	padding: 9px 0;
}

.top-desc h3 {
	color: #1A3D8D;
	font-size: 1.3rem;
	font-weight: bold;
	margin: 16px 0 6px;
}

/* 人口・世帯数 */
.population {
	padding: 32px 0;
}

.population h2 {
	background: #1A3D8D;
	color: #fff;
	font-size: 1.2rem;
	font-weight: bold;
	line-height: 1.2;
	padding: 6px 16px;
	margin-bottom: 0;
}

.population dl {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	background-color: #FFF;
	border-top: 1px solid #D6D6D6;
	border-left: 1px solid #D6D6D6;
	padding: 0;
	margin: 0;
}

.population dt {
	flex-basis: 120px;
	background-color: #EFEFEF;
	font-weight: bold;
	text-align: center;
	margin-bottom: 0;
	margin-right: 0;
}

.population dd {
	margin-left: 0;
	flex-basis: calc(100% - 120px);
	margin-bottom: 0;
}

.population dt,
.population dd {
	padding: 6px;
	box-sizing: border-box;
	border-right: 1px solid #D6D6D6;
	border-bottom: 1px solid #D6D6D6;
}

/* =====================
  グローバルメニュー
===================== */
.ttl-global {
	margin-top: 24px;
	border-bottom: solid 3px #f5dcf2;
	position: relative;
}

.ttl-global:after {
	position: absolute;
	content: " ";
	display: block;
	border-bottom: solid 3px #2B88CF;
	bottom: -3px;
	width: 35%;
}

@media screen and (max-width: 767px) {
	.ttl-global:after {
		width: 100%;
	}
}

.ttl-global p {
	margin: 0;
	font-size: 0.9rem;
	font-weight: bold;
}

@media screen and (max-width: 767px) {
	.ttl-global p {
		font-size: 0.8rem;
	}
}

.page-navigation {
	display: flex;
	justify-content: center;
	padding: 12px 0;
	background-color: #f5f5fe;
	border-bottom: 1px solid #c6c6c6;
	margin-bottom: 12px;
}

.page-navigation .homePage {
	padding: 0 3rem;
}

.page-navigation .previousPage::before {
	content: url(../regular/arrow_l.gif);
	vertical-align: middle;
	padding-right: 6px;
	pointer-events: none;
}

.page-navigation .nextPage::after {
	content: url(../regular/arrow_r.gif);
	vertical-align: middle;
	padding-left: 6px;
	pointer-events: none;
}

/* =====================
  nav footer
===================== */
.global-nav_list {
	background-color: #f7f8fd;
	padding: 24px;
}

.index-ttl-nav_list {
	color: #1A3D8D;
	font-weight: bold;
}

.index-nav_list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.index-nav_list li {
	list-style: none;
	margin-left: 18px;
	padding: 9px 0;
}

.index-nav_list li a {
	text-decoration: none;
	color: #333;
}

.index-nav_list li ::before {
	content: url(../regular/arrow_indexnav.png);
	vertical-align: middle;
	padding-right: 6px;
	pointer-events: none;
}

/* ページトップへ */
#page_top {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	line-height: 70px;
	display: none;
	position: fixed;
	right: 30px;
	bottom: 30px;
	color: #fff;
	display: inline-block;
	text-decoration: none;
	text-align: center;
}

#page_top::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	display: inline-block;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background-color: #333;
	opacity: .5;
	z-index: -1;
}

/* =====================
  お知らせ
===================== */
.oshirase-top {
	display: flex;
	align-items: flex-start;
}

.oshirase-top img {
	margin: 0;
	padding-right: 16px;
	padding-left: 6px;
}

@media screen and (max-width: 767px) {
	.contents-top img {
		margin: 0;
		display: block;
	}
}

.oshirasemenu-outer {}

.oshirase-menu {
	text-align: right;
}

.oshirase-menu ul {
	padding: 12px;
}

.oshirase-menu ul li {
	display: inline-block;
	margin: 0;
	padding: 12px 6px 0;
}

.oshirase-heading {
	background-color: #1A3D8D;
	margin-bottom: 12px;
}

.oshirase-heading img {
	margin-left: 0;
	margin-bottom: 0;
	padding: 3px 0 9px 0;
}

.oshirase-heading h1 {
	font-size: 1rem;
	padding: 6px 0 0 9px;
	margin: 6px;
}

.oshirase {
	padding-top: 18px;
}

.oshirase-last {
	padding: 18px 0;
}

.oshirase h2 {
	color: #333;
	position: relative;
	padding: 0 0.9rem;
	margin-bottom: 18px;
	font-size: 1.7rem;
	line-height: 1.5;
}

.oshirase h2:before {
	content: "";
	display: inline-block;
	position: absolute;
	top: 0;
	left: 0;
	bottom: -7px;
	width: 7px;
	height: 100%;
	border-radius: 7px;
	background: #1A3D8D;
}

.oshirase h3 {
	color: #333;
	font-weight: bold;
	font-size: 1.2rem;
	line-height: 1.5;
	margin-top: 24px;
	margin-bottom: 12px;
	text-indent: -1rem;
	padding-left: 1rem;
}

.oshirase h3::before {
	content: '●';
	color: #1A3D8D;
	margin-right: 2px;
	opacity: 0.5;
}

.oshirase h4 {
	color: #1A3D8D;
	font-weight: bold;
	font-size: 1.2rem;
	line-height: 1.5;
	margin-bottom: 12px;
}

.oshirase h5 {
	border-bottom: 1px solid #c6c6c6;
	padding: 1rem 0 3rem 0;
	margin-bottom: 2rem;
}

.oshirase h5:last-child {
	border-bottom: none;
	padding-bottom: 0;
}





.shisetsu {
	padding-bottom: 1rem;
	margin-bottom: 1rem;
}

.shisetsu h3 {
	color: #333;
	font-weight: bold;
	font-size: 1.2rem;
	line-height: 1.5;
	margin-top: 24px;
	margin-bottom: 12px;
	text-indent: -1rem;
	padding-left: 1rem;
}

.shisetsu h3::before {
	content: '●';
	color: #1A3D8D;
	margin-right: 2px;
	opacity: 0.5;
}

.shisetsu h4 {
	color: #1A3D8D;
	font-weight: bold;
	font-size: 1.2rem;
	line-height: 1.5;
	margin-bottom: 12px;
}

.shisetsu h5 {
	border: none;
	padding: 1rem 0 0 0;
}

.shisetsu-ttl {
	border: 1px solid #ccc;
	margin: 12px 0 24px;
}

.shisetsu-ttl h2 {
	background-color: #E1EFF1;
	padding: 0.3rem 0.7rem;
	margin: 0;
}

.shisetsu-ttl h2:before {
	content: none;
}

.shisetsu-ttl h5 {
	border: none;
	padding: 0;
	margin: 1.2rem 0 12px 1.2rem;
	text-align: left;
}

.shisetsu-ttl dl {
	margin: 0 1.2rem;
	display: flex;
	flex-wrap: wrap;
	padding: 6px 0;
	margin-bottom: 0;
}

.shisetsu-ttl dt {
	width: 48px;
	margin-bottom: 9px;
	margin-right: 1rem;
	font-weight: bold;
}

.shisetsu-ttl dd {
	width: calc(100% - 48px - 16px);
	margin-bottom: 9px;
}

.shisetsu .shisetsu-qr {
	padding: 16px;
	margin: 0 0 0 auto;
}

.oshirase-arekore {
	border-bottom: 1px solid #c6c6c6;
	background: url(../regular/warning02.gif) no-repeat top right / 38px auto;
	margin-bottom: 2rem;
}

.oshirase-arekore h2 {
	padding-top: 12px;
	padding-bottom: 12px;
	margin-bottom: 24px;
}

.arekore-box {
	border: 1px dashed #A0A0A0;
	padding: 12px 24px;
	margin: 24px 0;
}

.oshirase-johokyoku h2 {
	padding-top: 12px;
	padding-bottom: 12px;
	margin-bottom: 24px;
}

.johokyoku-info {
	background: url(../regular/toyama_jouhoukyoku.gif) no-repeat top left / 90px auto;
	height: 120px;
}

.johokyoku-info dl {
	margin-left: 7rem;
}

.johokyoku-threme {
	margin: 12px 0;
}

.johokyoku-threme dt {
	width: 60px;
}

.oshirase-gomi {
	border-bottom: 1px solid #c6c6c6;
	background: url(../regular/gomi.gif) no-repeat top right / 60px auto;
	margin-bottom: 2rem;
}

.oshirase-h5-none {
	border-bottom: none !important;
	padding-bottom: 0 !important;
}

@media screen and (max-width: 767px) {
	.shisetsu-ttl dl {
		display: block;
	}

	.shisetsu-ttl dt {
		width: 100%;
	}

	.shisetsu-ttl dd {
		width: 100%;
	}

	.oshirase-menu img {
		width: 101px;
		padding: 0;
		display: inline-block;
		margin: 0;
		vertical-align: middle;
	}

	.oshirase-heading img {
		width: 150px;
		display: inline-block;
		padding: 0;
	}

	.johokyoku-info {
		height: 150px;
	}
}


/* =====================
  テーブル（基本）
===================== */

table {
	border-collapse: collapse;
	margin: 12px 0;
	background: #fff;
}

th,
td {
	border: 1px solid #c6c6c6;
	padding: 6px;
	vertical-align: middle;
}

th {
	background-color: #DEDEDE;
	font-weight: 700;
}

td {
	background-color: #fff;
}


/* =====================
  横スクロール用ラッパー
===================== */

.table-scroll {
	width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
}

/* PCでは基本100%で表示 */
.table-scroll table {
	width: 100%;
}


/* =====================
  ヘッダ固定（必要な場合のみ）
===================== */

.table-scroll thead th {
	position: sticky;
	top: 0;
	z-index: 1;
}

/* sticky時に罫線が消えない対策 */
.table-scroll thead th::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-bottom: 1px solid #c6c6c6;
	pointer-events: none;
}


/* =====================
  JSが絡む場合の保険
===================== */

.table-scroll.js-scrollable {
	overflow-x: auto !important;
	overflow-y: hidden !important;
	max-height: none !important;
}


/* =====================
  スマホ：横スクロール前提
===================== */

@media screen and (max-width: 767px) {

	/* ★最重要：テーブルを内容幅にする */
	.table-scroll table {
		width: max-content;
		min-width: max-content;
	}

	/* セルは折り返さない */
	.table-scroll th,
	.table-scroll td {
		white-space: nowrap;
	}

	/* colgroupの幅指定を素直に使う */
	.table-scroll col {
		width: auto;
	}
}


/* =====================
  装飾・ユーティリティ（任意）
===================== */

/* 空セルの斜線 */
table td:empty {
	background-image: linear-gradient(to right top,
			transparent calc(50% - 0.5px),
			#999 50%,
			#999 calc(50% + 0.5px),
			transparent calc(50% + 1px));
}

/* 罫線ユーティリティ */
.border-double-top {
	border-top: double 3px #999;
}

.border-double-right {
	border-right: double 3px #999 !important;
}

.border-dashed-top {
	border-top: 2px dashed #999;
}
.border-dashed-bottom {
	border-bottom: 2px dashed #999;
}

.border-bold-top {
	border-top: 3px solid #555;
}

.border-bold-bottom {
	border-bottom: 3px solid #555;
}

.border-bold-right {
	border-right: 3px solid #555 !important;
}

.border-bold-left {
	border-left: 3px solid #555;
}

.border-no-top {
	border-top: none;
}

.border-no-bottom {
	border-bottom: none;
}

.border-no-left {
	border-left: none;
}

.table-dummy-th {
	background-color: #DEDEDE;
	font-weight: bold;
	text-align: center;
}

.table-ttl {
	background-color: #fffbe6;
	font-weight: bold;
}

.table-full {
	width: 100%;
}



/* =====================
  相談
===================== */
.sodan-cont {
	margin: 18px 0 30px 0;
}

.sodan-cont-ttl {
	margin: 18px 0;
}

.sodan-cont-ttl h1 {
	color: #1A3D8D;
	font-size: 2em;
	text-align: center;
}

.sodan-cont h2 {
	font-size: 1.4rem;
	text-align: center;
	margin-bottom: 6px;
}

.sodan-cont h5 {
	text-align: right;
	margin: 2rem 0;
}

.heart-box {
	background-color: #FEF2F2;
	border-radius: 18px;
	padding: 18px 24px;
	margin: 30px 0;
}

.heart-box h3 {
	color: #333;
	font-size: 1.2rem;
}

/* 相談窓口案内に変更 */
.sodan-cont02 {
	margin: 18px 0 30px 0;
}

.sodan-cont02-ttl {
	margin: 18px 0;
}

.sodan-cont02-ttl h1 {
	color: #1A3D8D;
	font-size: 2rem;
}

.sodan-cont02 h2 {
	font-size: 1.5rem;
	line-height: 2;
	color: #1A3D8D;
	background-color: #EFEFEF;
	margin-bottom: 6px;
	padding: 0.3rem 0.7rem;
}

.sodan-cont02 span {
	font-size: 0.7rem;
	border-radius: 6px;
	border: 2px solid #E6E6E6;
	background-color: #fff;
	padding: 0.3rem 0.6rem;
}

.sodan-cont02 h2 small {
	font-size: 0.8rem;
}

.sodan-cont02 h5 {
	text-align: right;
	margin: 2rem 0;
}

.sodan-cont02 li {
	position: relative;
	margin-left: 0;
	padding-left: 15px;
	list-style-type: none;
	font-size: 1.2em;
	font-weight: bold;
	line-height: 2.2;
}

.sodan-cont02 li:before {
	content: "";
	position: absolute;
	top: .8rem;
	left: 0;
	width: 10px;
	height: 10px;
	background-color: #1A3D8D;
	border-radius: 50%;
}

.sodan-cont02 li small {
	font-size: 0.9rem;
	font-weight: normal;
}

.tokubetsusodan {
	background-color: #ffffff;
	border: 2px solid #e6e6e6;
	border-radius: 12px;
	padding: 12px 24px;
	margin: 12px 0;
}

.tokubetsusodan h2 {
	font-size: 1.8rem;
	padding: 0.5rem 0;
}

.tokubetsusodan h3 {
	font-size: 1.5rem;
	line-height: 2;
	color: #1A3D8D;
	background-color: #EFEFEF;
	margin-bottom: 6px;
	padding: 0.3rem 0.7rem;
}

/* =====================
  親子相談・健康づくり
===================== */
.kenko-cont {
	margin: 18px 0 30px 0;
}

.kenko-cont-ttl {
	margin: 18px 0;
}

.kenko-cont-ttl h1 {
	position: relative;
	padding: 1.5rem 2rem;
	background: #E0E8F9;
	color: #1A3D8D;
	font-size: 2rem;
	text-align: center;
	margin-bottom: 18px;
}

.kenko-cont-ttl h1:before,
.kenko-cont-ttl h1:after {
	position: absolute;
	left: 0;
	width: 100%;
	content: '';
	border-top: 4px dotted #fff;
}

.kenko-cont-ttl h1:before {
	top: 6px;
}

.kenko-cont-ttl h1:after {
	bottom: 6px;
}

.kenko-cont h2 {
	color: #1A3D8D;
	background: #EFEFEF;
	padding: 12px 18px;
	margin-bottom: 24px;
}

.kenko-cont h5 {
	text-align: right;
	margin: 2rem 0;
}

.ikusapo-ttl {
	background: #FFFAE6;
	border-radius: 12px;
	margin-top: 24px;
	padding: 24px;
}

.jidoukan-ttl {
	background: #EFEFEF;
	display: flex;
}

.jidoukan-ttl h2 {
	color: #1A3D8D;
	background: #EFEFEF;
	padding: 12px 18px;
	margin-bottom: 0 !important;
}

.jidoukan-ttl .jidoukan-info {
	background: #1A3D8D;
	color: #FFF;
	text-align: bold;
	margin: 1rem 0;
	padding: 0.5rem;
	display: flex;
	align-items: center;
	height: 70px;
}

.jidokan-ttl02 {
	background: #EFEFEF;
	padding-bottom: 12px;
	margin-bottom: 24px;
}

.jidokan-ttl02 h2 {
	font-size: 1.6rem;
	margin-bottom: 0 !important;
}

.jidokan-ttl02 h3 {
	color: #333;
	font-size: 1.2rem;
}

.jidokan-ttl02 h5 {
	margin: 0 !important;
}

.jidokan-ttl02 .jidokan-name {
	display: flex;
	justify-content: space-between;
	background-color: #fcfcfc;
	border-radius: 12px;
	margin: 0 18px 6px 18px;
	padding: 6px 18px;
}

@media screen and (max-width: 900px) {
	.jidokan-name {
		flex-direction: column;
	}
}

/* =====================
  診察室からお答えします
===================== */
.shinsatsu {
	background: #eff6fb;
	border: solid 3px #1A3D8D;
	border-radius: 12px;
	padding: 24px;
	margin-bottom: 24px;
}

.shinsatsu h2 {
	padding-left: 3.3em;
	line-height: 3;
	background: url(../regular/shinsatushitu.png) no-repeat top left / 70px auto;
	margin-bottom: 20px;
}

.shinsatsu h3 {
	background-color: #fff;
	padding: 9px 12px;
	border-radius: 9px;
	font-size: 1.2em;
}

.shinsatsu h4 {
	margin-top: 1em;
	color: #333;
}

/* お知らせページの診察室 */
.oshirase .shinsatsu h2:before {
	content: none;
}

.oshirase .shinsatsu h3 {
	padding-left: 1.6em;
	color: #1A3D8D;
}

.oshirase .shinsatsu h3:before {
	content: none;
}

/* =====================
  広報クイズ
===================== */
.quiz {
	margin: 18px 0;
}

.quiz h1 {
	color: #1A3D8D;
	text-align: center;
}

.question {
	display: flex;
	margin: 24px 0;
}

.quiz h2 {
	font-size: 1.25em;
	font-weight: bold;
	background-color: #f8c8c8;
	margin-right: 3em;
	padding: 6px 24px;
	height: 50px;
	position: relative;
}

.quiz h2::after {
	content: '';
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 25px 0 25px 20px;
	border-color: transparent transparent transparent #f8c8c8;
	position: absolute;
	top: -2%;
	left: 100%;
}

.quiz h3 {
	color: #333;
	font-weight: bold;
	padding-top: 6px;
}

.quiz h4 {
	color: #931d35;
	font-weight: bold;
	margin-top: 32px;
}

.quiz-answer-box {
	background-color: #fffbe6;
	padding: 0.5em 1.5em 0;
	margin: 24px 0;
	border-radius: 12px;
}

@media screen and (max-width: 767px) {
	.question {
		flex-direction: column;
		margin-right: 0;
	}

	.quiz h3 {
		margin-top: 10px;
	}
}

/* =====================
  特集
===================== */
.feature {
	margin: 18px 0 30px 0;
}

.feature h1 {
	display: flex;
	align-items: center;
	margin-bottom: 18px;
	color: #FFF;
	font-size: 1.8em;
	line-height: 1.5;
	padding: 18px;
	height: 130px;
	background: #1A3D8D url(../regular/koho-h1.png) no-repeat right top / auto 100%;
}

.feature h2 {
	color: #1A3D8D;
	background-color: #EFF3F6;
	border-bottom: #fff solid 1px;
	border-right: #fff solid 1px;
	padding: 12px 18px;
	margin-bottom: 24px;
	margin-top: 48px;
}

.feature h3 {
	color: #333;
	position: relative;
	padding: 0 0.9em;
	margin-bottom: 18px;
	margin-top: 24px;
}

.feature h3:before {
	content: "";
	display: inline-block;
	position: absolute;
	top: 0;
	left: 0;
	bottom: -7px;
	width: 7px;
	height: 100%;
	border-radius: 7px;
	background: #1A3D8D;
}

.feature h5 {
	margin: 2em 0;
}

/* h1（flex）のテキストにルビが入っているときに使う */
.h1-inner {
	display: inline-block;
}

@media screen and (max-width: 767px) {
	.feature h1 {
		height: auto;
	}
}

/* =====================
  その他
===================== */
/* スマートフォンのときだけ改行 */
.sp_br {
	display: none;
}

@media screen and (max-width: 767px) {
	.sp_br {
		display: block;
	}
}

.text-smaller-toiawase {
	font-size: 0.9em;
}

.text-smaller {
	font-size: 0.7em;
}

.text-smaller-little {
	font-size: 0.87em;
}

.text-smallest {
	font-size: 0.55em;
}

.text-bigger {
	font-size: 1.3em;
}

.text-bigger-little {
	font-size: 1.15em;
}

.text-biggest {
	font-size: 1.6em;
}

.text-kome {
	color: #7F92A4;
	font-weight: bold;
}

.text-bold {
	font-weight: bold;
}

.text-normal {
	font-weight: normal;
}

.text-center {
	text-align: center;
}

.text-left {
	display: block;
	text-align: left !important;
}

.text-right {
	text-align: right;
}

.text-brown {
	color: #984455;
}

.text-blue {
	color: #1A3D8D;
}

.text-red {
	color: #d7003a;
}

.text-bk {
	color: #333;
}

.text-white {
	color: #fff;
}

.text-green {
	color: #00533f;
}

.open-large-img {
	text-align: center;
	color: #7F92A4;
	font-weight: bold;
	font-size: 0.8em;
	margin-top: 12px;
}

.text-caption-gray {
	font-size: 93%;
	line-height: 1.5;
	font-weight: normal;
	color: #8A8A8A;
	margin-top: 9px;
}

/* 説明リストのテーブル */
.dlTable {
	margin: 24px 0;
}

.dlTable dl {
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	padding: 0;
	border: 1px solid #D6D6D6;
}

.dlTable dt {
	width: 180px;
	background-color: #EFEFEF;
	display: flex;
	justify-content: center;
	align-items: center;
	border-right: 1px solid #D6D6D6;
}

.dlTable dd {
	width: calc(100% - 180px - 16px);
}

.dlTable dt,
.dlTable dd {
	padding: 1em;
	margin: 0;
}

.column {
	flex-direction: column;
}

@media screen and (max-width: 767px) {
	.dlTable dt {
		width: 100%;
		border-bottom: 1px solid #D6D6D6;
	}

	.dlTable dd {
		width: 100%;
	}
}

/* 児童館 */
.jidoukan-box-radius {
	border-radius: 12px;
	padding: 18px 18px 9px;
	margin: 24px 0px;
	background-color: #FBFBF0;
	border: 3px dotted #93C295;
}

.jidoukan-box-radius h3 {
	color: #136055;
}

/* 富山市表彰 */
#cards {
	display: flex;
	flex-flow: row wrap;
}

.card {
	width: 225px;
	height: 520px;
	padding: 20px;
}

#cards h3 {
	text-align: center;
}

#cards h3:before {
	content: none;
}

#cards h4 {
	text-align: center;
	margin: 12px;
}

.card2 {
	width: 450px;
	height: 520px;
	padding: 20px 40px;
}

.picture img {
	width: 100%;
	height: auto;
	display: block;
	margin-bottom: 12px;
}

.description {
	width: 100%;
	height: 145px;
	box-sizing: border-box;
}

@media screen and (max-width: 767px) {
	#cards {
		justify-content: center;
	}
}

sup {
	vertical-align: super;
	font-size: 0.7em;
}

sub {
	font-size: 0.7em;
	vertical-align: bottom;
	position: relative;
	bottom: -0.1em;
}

/* 余白の調整 */
.margin-top24 {
	margin-top: 24px;
}

.margin-bottom24 {
	margin-bottom: 24px;
}

.margin-bottom12 {
	margin-bottom: 12px;
}

.padding-top24 {
	padding-top: 24px;
}

.padding-top48 {
	padding-top: 48px;
}

.padding-bottom24 {
	padding-bottom: 24px;
}

.padding-bottom48 {
	padding-bottom: 24px;
}

.padding24 {
	padding: 24px;
}

.padding12 {
	padding: 12px;
}

.padding24-0 {
	padding: 24px 0;
}

.padding0-24 {
	padding: 0 24px;
}

.padding12-0 {
	padding: 12px 0;
}

.padding0-12 {
	padding: 0 12px;
}

.padding-left24 {
	padding-left: 24px;
}

.padding-right24 {
	padding-right: 24px;
}

.margin-inherit {
	margin: inherit !important;
	padding: inherit !important;
}

.no-gap {
	margin: 0 !important;
	padding: 0 !important;
}

.no-gap-inlineblock {
	margin: 0 !important;
	padding: 0 !important;
	display: inline-block !important;
}

.padding0 {
	padding: 0 !important;
}

.align-left {
	margin: 0 !important;
	margin-right: auto !important;
	display: block;
}

/* QRコード */
.QR-link {
	text-decoration: none;
	color: #fff;
	display: block;
	border-radius: 15%;
	box-shadow: 0px 2px 7px 0px #ccc;
	transition: 0.2s;
	position: relative;
	top: 0;
	max-width: none;
	padding: 6px;
}

.QR-link:hover {
	top: 2px;
	box-shadow: 0px 1px 5px 0px #ccc;
}

.QR-comment {
	color: #7F92A4;
	font-weight: bold;
	text-align: right;
	font-size: 0.9em;
}

@media screen and (max-width: 767px) {
	.QR-link {
		margin: auto;
		display: block;
		margin-bottom: 24px;
		margin-top: 24px;
	}

	img.QR-link {
		max-width: 100%;
	}

	.QR-comment {
		text-align: left;
	}
}

/* Box 系 */
.box-line-dash {
	border: 1px dashed #A0A0A0;
	padding: 12px 24px;
	margin: 12px 0;
}

.box-blue {
	background-color: #F2F9FF;
	border: 2px solid #DDEFFF;
	border-radius: 12px;
	padding: 24px 24px 9px;
	margin: 24px 0px;
}

.box-grey {
	background-color: #f0f0f0;
	border: 2px solid #d5d5d5;
	padding: 12px 24px;
	border-radius: 12px;
	margin: 12px 0;
}

.box-yellow {
	background-color: #FFFBE6;
	border: 2px solid #fff3b3;
	padding: 12px 24px;
	border-radius: 12px;
	margin: 12px 0;
}

.box-green {
	background-color: #F4F8E4;
	border: 2px solid #eff5dc;
	padding: 12px 24px;
	border-radius: 12px;
	margin: 12px 0;
}

.box-orange {
	background-color: #FFF6F0;
	border: 2px solid #FFE7D7;
	padding: 12px 24px;
	border-radius: 12px;
	margin: 12px 0;
}

.box-red {
	background-color: #FEF0F0;
	border: 2px solid #FAC4C4;
	padding: 12px 24px;
	border-radius: 12px;
	margin: 12px 0;
}

.box-pink {
	background-color: #FFF7FA;
	border: 2px solid #FFEAF2;
	padding: 12px 24px;
	border-radius: 12px;
	margin: 12px 0;
}

.box-white {
	background-color: #FFFFFF;
	padding: 12px 24px;
	border-radius: 12px;
	margin: 12px 0;
}

.box-line {
	background-color: #ffffff;
	border: 2px solid #e6e6e6;
	border-radius: 12px;
	padding: 12px 24px;
	margin: 12px 0;
}

.box-line-brown {
	background-color: #ffffff;
	border: 2px solid #984455;
	border-radius: 12px;
	padding: 12px 24px;
	margin: 12px 0;
}

.box-switching {
	background-color: #F9F9F9;
	padding: 12px 24px;
	margin: 12px 0;
}

.box-line-dash h2,
.box-blue h2,
.box-grey h2,
.box-yellow h2,
.box-line h2,
.box-line-brown h2,
.box-green h2,
.box-pink h2,
.box-red h2,
.box-orange h2 {
	margin-top: 24px;
}

.box-line-dash h3,
.box-blue h3,
.box-grey h3,
.box-yellow h3,
.box-line h3,
.box-line-brown h3,
.box-green h3,
.box-pink h3,
.box-red h3,
.box-orange h3 {
	color: #333;
	padding-top: 12px;
	padding-left: 0;
	margin-top: 6px;
}

.box-line-dash h3:before,
.box-blue h3:before,
.box-grey h3:before,
.box-yellow h3:before,
.box-line h3:before,
.box-line-brown h3:before,
.box-green h3:before,
.box-pink h3:before,
.box-red h3:before,
.box-orange h3:before {
	content: none;
}

.oshirase .box-line-dash h3,
.oshirase .box-blue h3,
.oshirase .box-grey h3,
.oshirase .box-yellow h3,
.oshirase .box-line h3,
.oshirase .box-line-brown h3,
.oshirase .box-green h3,
.oshirase .box-pink h3,
.oshirase .box-red h3,
.oshirase .box-orange h3 {
	padding-left: 1em;
}

.box-line-dash h4,
.box-blue h4,
.box-grey h4,
.box-yellow h4,
.box-line h4,
.box-line-brown h4,
.box-green h4 {
	color: #1A3D8D;
}

.box-line-dash p,
.box-blue p,
.box-grey p,
.box-yellow p,
.box-line p,
.box-line-brown p,
.box-green p {
	padding: 0;
}

.box-inner-standard h3 {
	color: #333;
	position: relative;
	padding: 0 0.9em;
	margin-bottom: 18px;
	margin-top: 18px;
}

.box-inner-standard h3:before {
	content: "";
	display: inline-block;
	position: absolute;
	top: 0;
	left: 0;
	bottom: -7px;
	width: 7px;
	height: 100%;
	border-radius: 7px;
	background: #1A3D8D;
}

.box-inner-standard-oshirase h3 {
	color: #333;
	font-weight: bold;
	font-size: 1.2em;
	line-height: 1.5;
	margin-top: 24px;
	margin-bottom: 12px;
	text-indent: -1em;
	padding-left: 1em;
}

.box-inner-standard-oshirase h3:before {
	content: '●';
	color: #1A3D8D;
	margin-right: 2px;
	opacity: 0.5;
}

.box-half {
	width: 50%;
}

.box-one_third {
	width: 35%;
}

@media screen and (max-width: 767px) {

	.box-half,
	.box-one_third {
		width: 100%;
	}
}

/* Bar系 */
.bar-blue {
	background-color: #1A3D8D;
	color: #ffffff;
	padding: 4px 6px;
}

.bar-grey {
	background-color: #EFEFEF;
	color: #333;
	padding: 4px 6px;
}

.bar-grey-w {
	background-color: #939393;
	color: #FFFFFF;
	padding: 4px 6px;
	font-weight: bold;
}

.bar-blue-focus {
	background-color: #1A3D8D;
	color: #ffffff;
	padding: 4px 6px;
	font-weight: bold;
	font-size: 1.2rem;
}

.bar-grey-w-focus {
	background-color: #939393;
	color: #FFFFFF;
	padding: 4px 6px;
	font-weight: bold;
	font-size: 1.2rem;
}

.bar-white {
	background-color: #ffffff;
	padding: 4px 6px;
}

.bar-white-featureH1 {
	background-color: #ffffff;
	color: #1A3D8D;
	font-size: 0.7em;
	padding: 4px 6px;
}

.bar-yellow {
	background-color: #FFFBE6;
	color: #333;
	padding: 4px 6px;
}

.bar-pink {
	background-color: #FFE6EA;
	color: #333;
	padding: 4px 6px;
}

.back-yellow {
	background-color: #fff79a;
}

.back-pink {
	background-color: #FCEDF3;
}

.back-red {
	background-color: #d7003a;
}

.back-brown {
	background-color: #984455;
}

hr {
	border: dashed 1px #c6c6c6;
}

.underline-wavy {
	text-decoration: underline wavy;
	text-underline-offset: 5px;
}

.underline-wavy-red {
	text-decoration: underline wavy #d7003a;
	text-underline-offset: 5px;
}

.underline-highlighter {
	background-image: linear-gradient(120deg, #fcf7a7 0%, #fcf7a7 100%);
	background-repeat: no-repeat;
	background-size: 100% 0.8rem;
	background-position: 0 0.8rem;
	padding-bottom: 0.2rem;
}

/* 矢印類（既存） */
.arrow-down {
	display: inline-block;
	position: relative;
	width: 20px;
	height: 30px;
	background-color: #1A3D8D;
}

.arrow-down::after {
	content: '';
	position: absolute;
	left: 50%;
	bottom: -10px;
	transform: translateX(-50%);
	width: 0;
	height: 0;
	border-left: 20px solid transparent;
	border-right: 20px solid transparent;
	border-top: 20px solid #1A3D8D;
}

.arrow-right {
	display: inline-block;
	position: relative;
	width: 24px;
	height: 12px;
	background-color: #1A3D8D;
	vertical-align: middle;
	margin: 0 18px;
}

.arrow-right::after {
	content: '';
	position: absolute;
	top: 50%;
	right: -8px;
	transform: translateY(-50%);
	width: 0;
	height: 0;
	border-top: 15px solid transparent;
	border-bottom: 15px solid transparent;
	border-left: 15px solid #1A3D8D;
}

/* 矢印の方向が変わるCSS */
.arrow-switch {
	display: inline-block;
	width: 20px;
	height: 12px;
	background: #333;
	position: relative;
	margin: 6px 24px 6px 6px;
}

.arrow-switch::after {
	content: "";
	position: absolute;
	right: -16px;
	top: 50%;
	transform: translateY(-50%);
	border-top: 16px solid transparent;
	border-bottom: 16px solid transparent;
	border-left: 16px solid #333;
}

@media (max-width: 767px) {
	.arrow-switch {
		width: 12px;
		height: 20px;
		margin: 0 6px 24px 6px;
	}

	.arrow-switch::after {
		right: 50%;
		top: auto;
		bottom: -16px;
		transform: translateX(50%);
		margin-top: -1px;
		border-left: 16px solid transparent;
		border-right: 16px solid transparent;
		border-top: 16px solid #333;
		border-bottom: none;
	}
}

.fukidashi {
	position: relative;
	padding: 0.6rem;
	background: repeating-linear-gradient(-45deg, #FFFAE6, #FFFAE6 3px, #FFF2BF 3px, #FFF2BF 7px);
	border-radius: 7px;
}

.fukidashi:after {
	position: absolute;
	content: '';
	top: 100%;
	left: 30px;
	border: 15px solid transparent;
	border-top: 15px solid #FFF2BF;
	width: 0;
	height: 0;
}

/* 特例背景 */
.bg-exception {
	width: 900px;
	height: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)),
		url('../images/01-01bg.png');
	background-size: cover;
	background-position: center;
	padding: 2rem;
}

.bg-exception .text-box {
	background-color: rgba(255, 255, 255, 0.7);
	padding: 20px 30px;
	border-radius: 10px;
	position: relative;
	z-index: 2;
	color: #333;
}

.bg-exception .text-box h3 {
	margin: 0 0 10px;
}

.bg-exception .text-box p {
	margin: 5px 0;
	color: black;
}

@media screen and (max-width: 767px) {
	.bg-exception {
		width: 100%;
		height: auto;
		padding: 10px 10px;
	}

	.bg-exception .text-box {
		padding: 15px 15px;
	}
}

@media screen and (max-width: 900px) {
	.bg-exception {
		width: 100%;
		height: auto;
		padding: 10px 10px;
	}
}

/* チェックボックスのリスト */
ul.check-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

ul.check-list li {
	position: relative;
	padding-left: 1.5rem;
	margin-bottom: 0.5rem;
	list-style: none;
	margin-left: 0;
}

ul.check-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.3rem;
	width: 1rem;
	height: 1rem;
	background-color: white;
	border: 1px solid #333;
	box-sizing: border-box;
}

.center-box {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	height: 100vh;
}

.center-box-w {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.line-sp-only {
	border-bottom: none;
}

@media screen and (max-width: 767px) {
	.line-sp-only {
		border-bottom: 2px dotted #ccc;
		margin-bottom: 24px;
	}
}