/*----- [ Initial Settings ] -----*/
:root {
	--any-border-radius: 10px;

    --font-ryumin-medium : 'Ryumin Medium KL';
	--font-midashi-go: 'Midashi Go MB31';
	--font-weight-default: 500;

	--button-ctrl-panel-large: 60px;
	--button-ctrl-panel-small: 36px;

	--color-ctrl-panel-frame: #909090;
	--color-ctrl-panel-inner: #333333;
	--color-ctrl-panel-input: #ffff99;
	--color-ctrl-panel-button-on-background: #efefef;
	--color-ctrl-panel-button-off-background: #ffffff;
	--color-ctrl-panel-button-on-light: #ffffff;
	--color-ctrl-panel-button-on-shadow: #3f70e8;
	--color-ctrl-panel-button-off-light: #ffffff;
	--color-ctrl-panel-button-off-shadow: #cccccc;
}


/*----- [ Common Parts ] -----*/
/* Paren */
.note::before {
	content: '［';
}
.note::after {
	content: '］';
}

:is(
	.separate-volume,
	.f3-heading,
	.r3-heading
)::before {
	content: '（';
}
:is(
	.separate-volume,
	.f3-heading,
	.r3-heading
)::after {
	content: '）';
}

/* Gothic */
:is(
	.num.gothic,
	:is(
		.f3-part,
		.f3-chapter,
		.f3-section,
		.f3-subsection,
		.f3-division,
		.f3-article,
		.f3-supplementary-provisions,
		.r3-part,
		.r3-chapter,
		.r3-section,
		.r3-subsection,
		.r3-division,
		.r3-article,
		.r3-supplementary-provisions
	) .num
) {
	font-family: sans-serif;
	font-weight: 700;
}
@container (width > 600px) and (width <= 1000px) {
	:is(
		.num.gothic,
		:is(
			.f3-part,
			.f3-chapter,
			.f3-section,
			.f3-subsection,
			.f3-division,
			.f3-article,
			.f3-supplementary-provisions,
			.r3-part,
			.r3-chapter,
			.r3-section,
			.r3-subsection,
			.r3-division,
			.r3-article,
			.r3-supplementary-provisions
		) .num
	) {
		font-family: sans-serif;
	}
}
@container (width > 1000px) {
	:is(
		.num.gothic,
		:is(
			.f3-part,
			.f3-chapter,
			.f3-section,
			.f3-subsection,
			.f3-division,
			.f3-article,
			.f3-supplementary-provisions,
			.r3-part,
			.r3-chapter,
			.r3-section,
			.r3-subsection,
			.r3-division,
			.r3-article,
			.r3-supplementary-provisions
		) .num
	) {
		font-family: sans-serif;
	}
}


/*----- [ Section Title ] -----*/
h2 {
	opacity: 0;
	position: absolute;
	top: 0;
	left: 0;
	width: 0;
	height: 0;
}


/*----- [ Page Title ] -----*/
.header-page-title-paren {
	display: inline-block;
	translate: 0 -0.125rem;
	font-family: serif;
}
@container (width > 600px) and (width <= 1000px) {
	.header-page-title-paren {
		font-family: serif;
	}
}
@container (width > 1000px) {
	.header-page-title-paren {
		translate: 0 -0.25rem;
		font-family: serif;
	}
}
.header-page-title-paren.before {
	margin-left: 0.5rem; 
}


/*----- [ Last Revision ] -----*/
.container-last-revision {
	width: 100%;
}
.last-revision-inner {
	display: flex;
	flex-direction: column;

	font-family: serif;
	font-weight: var(--font-weight-default);
}
@container (width > 600px) and (width <= 1000px) {
	.last-revision-inner {
		flex-direction: column;
	}	
}
@container (width > 1000px) {
	.last-revision-inner {
		flex-direction: row;
		column-gap: 20px;

/*		font-family: var(--font-ryumin-medium), serif;*/
	}
}
:is(
	.last-revision-inner-left,
	.last-revision-inner-right
) {
	flex: 0 0 100%;
	margin: 0;
}
@container (width > 600px) and (width <= 1000px) {
	:is(
		.last-revision-inner-left,
		.last-revision-inner-right
	) {
		flex: 0 0 100%;
	}
}
@container (width > 1000px) {
	.last-revision-inner-left {
		flex: 0 0 50%;
		text-align: right;
	}
	.last-revision-inner-right {
		flex: 0 0 50%;
		text-align: left;
	}
}


/*----- [ Ctrl-Panel Container] -----*/
.container-ctrl-panel {
	width: 100%;
	margin-bottom: 2rem;
}
.container-ctrl-panel button {
	margin: 0;
	padding: 0;
	border-radius: var(--any-border-radius);
}
.container-ctrl-panel button:is(:hover, :focus) {
	cursor: pointer;
}


/*----- [ Ctrl-Panel Handle ] -----*/
.ctrl-panel-handle {
	display: flex;
	flex-direction: row;
	justify-content: center;
	width: 100%;
}
.checkbox--ctrl-panel-state {
	display: none;
}
.button--ctrl-panel-opener {
	margin: 0 auto;
	width: 15rem;

	font-family: sans-serif;
	text-align: center;

	border: solid 1px var(--color-ctrl-panel-frame);
	background-color: var(--color-ctrl-panel-button-off-background);
}
.button--ctrl-panel-opener:hover {
	background-color: var(--color-ctrl-panel-button-on-background);
}


/*----- [ Ctrl-Panel Frame ] -----*/
.ctrl-panel-frame {
	width: 100%;
}
.button-type-square {
	width: var(--button-ctrl-panel-small);
	height: var(--button-ctrl-panel-small);
}
@container (width > 600px) and (width <= 1000px) {
	.button-type-square {
		width: var(--button-ctrl-panel-small);
		height: var(--button-ctrl-panel-small);
	}
}
@container (width > 1000px) {
	.button-type-square {
		width: var(--button-ctrl-panel-large);
		height: var(--button-ctrl-panel-large);
	}
}
.button-type-square svg {
	width: 100%;
	height: 100%;
}

/* Toolbox */
.toolbox {
	width: 100%;
	margin: 1rem auto 0;

	border: solid 1px var(--color-ctrl-panel-frame);
	border-radius: var(--any-border-radius);
	position: relative;

	margin: 1rem 0;
	padding: 1rem 0;
}
.toolbox h3 {
	font-size: 1rem;
	font-family: sans-serif;
	color: var(--color-ctrl-panel-frame);

	width: 6.5rem;
	text-align: center;
	background-color: #ffffff;

	position: absolute;
	top: -0.7rem;
	left: 2rem;
	z-index: 1;
}

/*----- [ Jump To Article ] -----*/
/* Alert */
.jump-to-article-alert {
	width: 90%;
	margin: 0 auto;
	position: relative;
}
@container (width > 600px) and (width <= 1000px) {
	.jump-to-article-alert {
		width: 90%;
	}
}
@container (width > 1000px) {
	.jump-to-article-alert {
		width: 54rem;
	}
}

/* Items */
.jump-to-article-items {
	width: 90%;
	margin: 0 auto;
}
@container (width > 600px) and (width <= 1000px) {
	.jump-to-article-items {
		width: 90%;
	}
}
@container (width > 1000px) {
	.jump-to-article-items {
		width: 90%;
		display: flex;
	}
}

/* Items - Notice */
.jump-to-article-notice {
	width: 100%;
	margin: 0;

	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
}
@container (width > 600px) and (width <= 1000px) {
	.jump-to-article-notice {
		width: 100%;
		margin: 0;
	}
}
@container (width > 1000px) {
	.jump-to-article-notice {
		flex: auto;
		margin: 0;
		justify-content: right;
	}
}

/* Items - Source */
.jump-to-article-source {
	width: 100%;
	margin: 1rem 0 0;

	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
}
@container (width > 600px) and (width <= 1000px) {
	.jump-to-article-source {
		width: 100%;
		margin: 1rem 0 0;
	}
}
@container (width > 1000px) {
	.jump-to-article-source {
		flex: auto;
		margin: 0;
		justify-content: left;
	}
}
.input--jump-to-article {
	width: 6rem;
	height: 1.25rem;
	margin: 0 1rem;
	text-align: center;

	border: solid 1px var(--color-ctrl-panel-frame);
	border-radius: var(--any-border-radius);
}
.input--jump-to-article:focus {
	background-color: var(--color-ctrl-panel-input);
}
.button--jump-to-article {
	border: solid 1px var(--color-ctrl-panel-button-off-shadow);
	background-color: var(--color-ctrl-panel-button-off-shadow);
}
.path--jump-to-article {
	fill: var(--color-ctrl-panel-button-off-shadow);
	stroke: var(--color-ctrl-panel-button-off-light);
}
.ul--jump-to-article {
	margin: 0;
	padding-left: 1rem;

	font-size: 0.8rem;
	color: var(--color-ctrl-panel-inner);
}
.li--jump-to-article {
	margin: 0;
}


/*----- [ Various Settings ] -----*/
/* Alert */
.setting-alert {
	width: 90%;
	margin: 1rem auto 0;
	position: relative;
}
@container (width > 600px) and (width <= 1000px) {
	.setting-alert {
		width: 90%;
	}
}
@container (width > 1000px) {
	.setting-alert {
		width: 54rem;
	}
}

/* Items */
.setting-items {
	width: 90%;
	margin: 0 auto;
}
@container (width > 600px) and (width <= 1000px) {
	.setting-items {
		width: 90%;	
	}	
}
@container (width > 1000px) {
	.setting-items {
		width: 90%;
		
		display: flex;
		flex-direction: row;
		justify-content: center;
	}
}
.item-box {
	width: 100%;
	margin: 1rem 0 0;
}
@container (width > 600px) and (width <= 1000px) {
	.item-box {
		width: 100%;
		margin: 1rem 0 0;
	}
}
@container (width > 1000px) {
	:is(
		.item-box.change-column,
		.item-box.change-fontsize
	) {
		flex: 0 0 40%;
		margin: 0;
	}
	.item-box.change-appearance {
		flex: 0 0 20%;
		margin: 0;
	}
}
h4 {
	font-size: 1rem;
	text-align: center;

	color: var(--color-ctrl-panel-frame);
}
.item-box-inner {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	column-gap: 10px;

	padding: 0;
}

/* Actions */
.setting-actions {
	width: 90%;
	margin: 1.5rem auto 0;
}
@container (width > 600px) and (width <= 1000px) {
	.setting-actions {
		width: 90%;
		margin: 1.5rem auto 0;
	}
}
@container (width > 1000px) {
	.setting-actions {
		width: 54rem;
		margin: 2.5rem auto 0;

		display: flex;
		flex-direction: row;
		justify-content: center;
	}
}
.action-box {
	width: 100%;
	margin: 1rem 0 0;
}
@container (width > 600px) and (width <= 1000px) {
	.action-box {
		width: 100%;
		margin: 1rem 0 0;
	}
}
@container (width > 1000px) {
	.action-box {
		flex: 1;
		margin: 0;
	}
}
.action-box-inner {
	width: 100%;
	text-align: center;
}
.action-box-inner button {
	margin: 0;
	padding-left: 2rem;
	padding-right: 2rem;

	border: solid 1px var(--color-ctrl-panel-frame);
	background-color: var(--color-ctrl-panel-button-off-background);
}
.action-box-inner button:hover {
	background-color: var(--color-ctrl-panel-button-on-background);
}
.action-box-inner p {
	margin: 0;

	font-size: 0.8rem;
	text-align: center;
	color: var(--color-ctrl-panel-inner);
}

/* Notice */
.setting-notice {
	width: 90%;
	margin: 1rem auto 0;

	font-size: 0.8rem;
	color: var(--color-ctrl-panel-inner);
	text-align: center;
}
@container (width > 600px) and (width <= 1000px) {
	.setting-notice {
		width: 90%;
	}
}
@container (width > 1000px) {
	.setting-notice {
		width: 54rem;
		text-align: right;
	}
}


/*----- [ Alert Message ] -----*/
.alert-msg {
	font-size: 1rem;
	font-family: sans-serif;
	text-align: center;

	color: #ffffff;
	background-color: #000000;
	border-radius: var(--any-border-radius);

	position: absolute;
	left: 10%;
	width: 80%;
	padding: 0.5rem;
	z-index: 2;

	animation-name: fadeOut;
	animation-duration: 1.5s;
    animation-delay: 1s;
	animation-fill-mode: forwards;
}
@container (width > 600px) and (width <= 1000px) {
	.alert-msg {
		left: 10%;
		width: 80%;
	}
}
@container (width > 1000px) {
	.alert-msg {
		left: calc(50% - 15rem);
		width: 30rem;
	}
}
@keyframes fadeOut {
	from {
		opacity: 1;
	}
	to {
		opacity: 0;
	}
}
.alert-msg.jump-to-article {
	top: 0.5rem;
}
.alert-msg.setting {
	top: -10rem;
}
@container (width > 600px) and (width <= 1000px) {
	.alert-msg.setting {
		top: -10rem;
	}
}
@container (width > 1000px) {
	.alert-msg.setting {
		top: 0.5rem;
	}
}


/*----- [ Change Column ] -----*/
.radio--change-column {
	display: none;
}
.button--vertical-writing {
	border: solid 1px var(--color-ctrl-panel-button-on-shadow);
	background-color: var(--color-ctrl-panel-button-on-shadow);
}
.button--horizontal-writing {
	border: solid 1px var(--color-ctrl-panel-button-off-shadow);
	background-color: var(--color-ctrl-panel-button-off-shadow);
}
.path--vertical-writing {
	fill: var(--color-ctrl-panel-button-on-shadow);
	stroke: var(--color-ctrl-panel-button-on-light);
}
.path--horizontal-writing {
	fill: var(--color-ctrl-panel-button-off-shadow);
	stroke: var(--color-ctrl-panel-button-off-light);
}
.p--change-column-height {
	font-size: 1rem;
	color: var(--color-ctrl-panel-inner);
	text-align: center;

	margin: 0;
}
.p--change-column-height span {
	font-size: 0.8rem;
}
.input--change-column-height {
	width: 6rem;
	height: 1.25rem;
	text-align: center;

	border: solid 1px var(--color-ctrl-panel-frame);
	border-radius: var(--any-border-radius);
}
.input--change-column-height:focus {
	background-color: var(--color-ctrl-panel-input);
}


/*----- [ Change Appearance ] -----*/
.radio--change-appearance {
	display: none;
}
.button--visible-amendment {
	border: solid 1px var(--color-ctrl-panel-button-on-shadow);
	background-color: var(--color-ctrl-panel-button-on-shadow);
}
.button--mixed-amendment {
	border: solid 1px var(--color-ctrl-panel-button-off-shadow);
	background-color: var(--color-ctrl-panel-button-off-shadow);
}
.path--visible-amendment-circle-rt {
	fill: var(--color-ctrl-panel-button-on-shadow);
	stroke: var(--color-ctrl-panel-button-on-light);
}
.path--visible-amendment-circle-rb {
	fill: var(--color-ctrl-panel-button-on-light);
	stroke: var(--color-ctrl-panel-button-on-light);
}
.path--visible-amendment-circle-lt {
	fill: var(--color-ctrl-panel-button-on-light);
	stroke: var(--color-ctrl-panel-button-on-light);
}
.path--visible-amendment-circle-lb {
	fill: var(--color-ctrl-panel-button-on-shadow);
	stroke: var(--color-ctrl-panel-button-on-light);
}
.path--visible-amendment-line-rt {
	fill: none;
	stroke: var(--color-ctrl-panel-button-on-light);
}
.path--visible-amendment-line-rb {
	fill: none;
	stroke: var(--color-ctrl-panel-button-on-light);
}
.path--visible-amendment-line-lt {
	fill: none;
	stroke: var(--color-ctrl-panel-button-on-light);
}
.path--visible-amendment-line-lb {
	fill: none;
	stroke: var(--color-ctrl-panel-button-on-light);
}
.path--mixed-amendment-circle-rt {
	fill: var(--color-ctrl-panel-button-off-shadow);
	stroke: var(--color-ctrl-panel-button-off-light);
}
.path--mixed-amendment-circle-rb {
	fill: var(--color-ctrl-panel-button-off-light);
	stroke: var(--color-ctrl-panel-button-off-light);
}
.path--mixed-amendment-circle-lt {
	fill: var(--color-ctrl-panel-button-off-light);
	stroke: var(--color-ctrl-panel-button-off-light);
}
.path--mixed-amendment-circle-lb {
	fill: var(--color-ctrl-panel-button-off-shadow);
	stroke: var(--color-ctrl-panel-button-off-light);
}


/*----- [ Change Font Size ] -----*/
.radio--change-font-size {
	display: none;
}
:is(
	.button--font-size-small,
	.button--font-size-medium,
	.button--font-size-large
) {
	border: solid 1px var(--color-ctrl-panel-button-off-shadow);
	background-color: var(--color-ctrl-panel-button-off-shadow);
}
.button--font-size-default {
	border: solid 1px var(--color-ctrl-panel-button-on-shadow);
	background-color: var(--color-ctrl-panel-button-on-shadow);
}
:is(
	.path--font-size-small,
	.path--font-size-medium,
	.path--font-size-large
) {
	fill: none;
	stroke: var(--color-ctrl-panel-button-off-light);
}
.path--font-size-default {
	fill: none;
	stroke: var(--color-ctrl-panel-button-on-light);
}


/*----- [ LawBody ] -----*/
.column {
    font-family: serif;
}
@container (width > 600px) and (width <= 1000px) {
	.column {
		font-family: serif; 
	}
}
@container (width > 1000px) {
	.column {
		font-family: serif;
		font-weight: var(--font-weight-default);
	}
}
:is(p, li) {
	margin: 0;
	text-align: justify;
}
blockquote.refer {
	font-size: 0.8rem;
	border: dotted 2px #3f70e8;
	border-radius: var(--any-border-radius);
}
:is(
	del,
	.del
) {
	text-decoration: line-through;
}
:is(
	del.mixed,
	.del.mixed
) {
	display: none;
}
:is(
	ins,
	.ins
) {
	text-decoration: underline;
}
:is(
	ins.mixed,
	.ins.mixed
) {
	text-decoration: none;
}

:is(
	.promulgation-2-lawnum,
	.promulgation-3-lawnum,
	.promulgation-4-lawnum
) {
	font-family: sans-serif;
	font-weight: 700;
}
@container (width > 600px) and (width <= 1000px) {
	:is(
		.promulgation-2-lawnum,
		.promulgation-3-lawnum,
		.promulgation-4-lawnum
	) {
		font-family: sans-serif;
	}
}
@container (width > 1000px) {
	:is(
		.promulgation-2-lawnum,
		.promulgation-3-lawnum,
		.promulgation-4-lawnum
	) {
		font-family: sans-serif;
	}
}
