@charset "UTF-8";

/*
RESET CSS
------------------------------------------------------------*/
/*
* Prefixed by https://autoprefixer.github.io
* PostCSS: v8.4.14,
* Autoprefixer: v10.4.7
* Browsers: last 4 version
*/

/***
    The new CSS reset - version 1.9 (last updated 19.6.2023)
    GitHub page: https://github.com/elad2412/the-new-css-reset
***/

/*
    Remove all the styles of the "User-Agent-Stylesheet", except for the 'display' property
    - The "symbol *" part is to solve Firefox SVG sprite bug
    - The "html" element is excluded, otherwise a bug in Chrome breaks the CSS hyphens property (https://github.com/elad2412/the-new-css-reset/issues/36)
 */
*:where(:not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)) {
    all: unset;
    display: revert;
}

/* Preferred box-sizing value */
*,
*::before,
*::after {
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
}

/* Reapply the pointer cursor for anchor tags */
a, button {
    cursor: revert;
}

/* Remove list styles (bullets/numbers) */
ol, ul, menu {
    list-style: none;
}

/* For images to not be able to exceed their container */
img {
    max-inline-size: 100%;
    max-block-size: 100%;
}

/* removes spacing between cells in tables */
table {
    border-collapse: collapse;
}

/* Safari - solving issue when using user-select:none on the <body> text input doesn't working */
input, textarea {
    -webkit-user-select: auto;
}

/* revert the 'white-space' property for textarea elements on Safari */
textarea {
    white-space: revert;
}

/* minimum style to allow to style meter element */
meter {
    -webkit-appearance: revert;
    -moz-appearance: revert;
         appearance: revert;
}

/* preformatted text - use only for this feature */
:where(pre) {
    all: revert;
}

/* reset default text opacity of input placeholder */
::-webkit-input-placeholder {
    color: unset;
}
::-moz-placeholder {
    color: unset;
}
:-ms-input-placeholder {
    color: unset;
}
::-ms-input-placeholder {
    color: unset;
}
::placeholder {
    color: unset;
}

/* remove default dot (•) sign */
::marker {
    content: initial;
}

/* fix the feature of 'hidden' attribute.
   display:revert; revert to element instead of attribute */
:where([hidden]) {
    display: none;
}

/* revert for bug in Chromium browsers
   - fix for the content editable attribute will work properly.
   - webkit-user-select: auto; added for Safari in case of using user-select:none on wrapper element*/
:where([contenteditable]:not([contenteditable="false"])) {
    -moz-user-modify: read-write;
    -webkit-user-modify: read-write;
    overflow-wrap: break-word;
    -webkit-line-break: after-white-space;
    -webkit-user-select: auto;
}

/* apply back the draggable feature - exist only in Chromium and Safari */
:where([draggable="true"]) {
    -webkit-user-drag: element;
}

/* Revert Modal native behavior */
:where(dialog:modal) {
    all: revert;
}


/* SETTING 
====================================================== */
.pc { display: block!important; }
.sp { display: none!important; }
@media screen and (max-width: 768px) {
  .pc { display: none!important; }
  .sp { display: block!important; }
}

.t-center { text-align: center; }
.t-left { text-align: left; }
.t-right { text-align: right; }

.mt0 { margin-top: 0!important; }
.mb0 { margin-bottom: 0!important; }
.mb30 { margin-bottom: 30px!important; }
.mb40 { margin-bottom: 40px!important; }
.mb80 { margin-bottom: 80px!important; }

@media screen and (max-width: 768px) {
  .mb30 { margin-bottom: 15px!important; }
  .mb40 { margin-bottom: 20px!important; }
  .mb80 { margin-bottom: 40px!important; }
}

.clearfix::after {
  content: "";
  display: block;
  clear: both;
}

body {
  position: relative;
  overflow-x: hidden;
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  color: #111;
}

.no-yakuhan {
  font-family: "Noto Sans JP", sans-serif;
}

.main-wrap {
	background: #FCFCFC;
	border-bottom: 1px solid #CCC;
}


/*
 HERO
------------------------------------------------------------*/
.hero {
	position: relative;
    max-width: 900px;
    margin: 0 auto;
}
.hero-title {
	width: 100%;
	margin: 0 auto;
	padding: 40px 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.hero-title-en {
	position:relative;
	font-weight: 600;
	font-size: 1.75em;
	color: #385184;
	text-align: center;
	margin-bottom: 15px;
}
.hero-title-en::after {
	content: "";
	display: block;
	width: 100%;
	height: 2px;
	background-color: #385184;
	position: absolute;
	bottom: 0;
}
.hero-title-jp {
	font-weight: 900;
	font-size: 3em;	
	line-height: 1.25;
	text-align: center;
}

@media screen and (max-width: 960px) {
	.hero-title-en {
		font-size: 2.75vw;
		text-align: center;
		margin-bottom: 20px;
	}
	.hero-title-en::after {
		height: 2px;
		bottom: -10px;
		left: 50%;
		transform: translateX(-50%);
	}
	.hero-title-jp {
		text-align: center;	
		line-height: 1.25;
	}
}

@media screen and (max-width: 768px) {
	.hero {
		width: 100%;
	    margin: 0 auto;
	}
	.hero-title {
		bottom: -120px;
		padding: 20px 10px;
	}
	.hero-title-en {
		font-size: 4.5vw;
	}
	.hero-title-en::after {
		height: 2px;
		bottom: -10px;
		left: 50%;
		transform: translateX(-50%);
	}
	.hero-title-jp {
		font-size: 8.8vw;
		text-align: center;	
		line-height: 1.25;
	}
}


/*
 LEAD
------------------------------------------------------------*/
.lead {
	background: #385184;
	padding: 40px 4%;
}
.lead-p {
	max-width: 900px;
	width: 100%;
	font-weight: 600;
	font-size: 1.0625em;
	line-height: 2;
	text-align: justify;
	color: #FFF;
	margin: 0 auto;
}

@media screen and (max-width: 768px) {
	.lead {
		padding: 20px 4%;
	}
	.lead-p {
		font-size: 1em;
	}
}


/*
 PROUD
------------------------------------------------------------*/
.proud {
	max-width: calc( 800px + 8% );
	margin: 80px auto 0;
	padding: 0 4%;
}
.proud-pic {
	line-height: 1;
	margin-bottom: 5px;
}
.proud-cap {
	font-size: .975em;
	text-align: center;
}

@media screen and (max-width: 768px) {
	.proud {
		margin: 20px auto 0;
		padding: 0 4%;
	}
	.proud-box {
		flex-direction: column;
		gap: 10px;
	}
	.proud-box-main {
		gap: 10px;
	}
	.proud-box-sub {
		flex-direction: row;
	}
	.proud-box-main-pic {
		width: 100%;
	}
	.proud-box-sub {
		width: 100%;
		max-width: initial;
	}
	.proud-cap {
		font-size: .875em;
	}
}


/*
 BOUSAI
------------------------------------------------------------*/
.bousai {
	max-width: 600px;
	margin: 50px auto 0;
}
.bousai-title {
	font-weight: 600;
	line-height: 1.5;
	color: #385184;
	margin-bottom: 10px;
	display: flex;
	align-items: center;
}
.bousai-title-num {
	width: 1.25em;
	margin-left: .25em;
	margin-right: .2em;
}
.bousai-lst {

}
.bousai-lst-li {
	line-height: 0;
	margin-top: 15px;
	position: relative;
}
.bousai-lst-li:first-child {
	margin-top: 0;
}
.bousai-lst-li:first-child::before {
	position: absolute;
	content: url(./num1.svg);
	top: 0;
	left: 0;
}
.bousai-lst-li:last-child::before {
	position: absolute;
	content: url(./num2.svg);
	top: 0;
	left: 0;
}
.bousai-pic {
	margin-top: 5px;
}
.bousai-pic:first-child {
	margin-top: 0;
}
.bousai-cap {
	font-size: .975em;
	text-align: justify;
	margin-top: 10px;
}


/*
 JITSUGEN
------------------------------------------------------------*/
.jitsugen {
	width: 100%;
	margin: 50px auto 0;
}
.jitsugen-title {
	font-weight: 600;
	line-height: 1.5;
	color: #385184;
	margin-bottom: 10px;
	display: flex;
	align-items: center;
}
.jitsugen-lst {
	display: flex;
}
.jitsugen-lst-li {
	line-height: 0;
}
.jitsugen-lst-li:first-child {
	margin-right: 10px;
}
.jitsugen-cap {
	max-width: 800px;
	font-size: .975em;
	text-align: justify;
	margin: 10px auto 0;
}

@media screen and (max-width: 768px) {
	.jitsugen-lst {
		display: flex;
		flex-direction: column;
	}
	.jitsugen-lst-li:first-child {
		margin-right: 0;
		margin-bottom: 10px;
	}
}


/*
 SETTI
------------------------------------------------------------*/
.setti {
	max-width: 800px;
	margin: 50px auto 0;
}
.setti-title {
	font-weight: 600;
	line-height: 1.5;
	color: #385184;
	margin-bottom: 10px;
	display: flex;
	align-items: center;
}
.setti-box {
	display: flex;
}
.setti-box-pic {
	width: 50%;
	padding: 0;
	margin: 0;
	line-height: 0;
}
.setti-box-txt {
	width: 50%;
	padding: 30px 40px 0;
	margin: 0;
	background: #E4E9EF;
}
.setti-box-txt .hd3 {
	font-weight: 600;
	font-size: 1em;
	line-height: 1.5;
	text-align: left;
	margin-bottom: 8px;
}
.setti-box-txt p {
	font-size: .9375em;
	line-height: 2;
	text-align: justify;
}

@media screen and (max-width: 768px) {
	.setti-box {
		width: 100%;
		flex-direction: column;
	}
	.setti-box-pic {
		width: 100%;
	}
	.setti-box-txt {
		width: 100%;
		padding: 20px;
	}
	.setti-box-txt p {
		font-size: .875em;
		line-height: 1.5;
	}
	.setti-box-txt .hd3 {
		margin-bottom: 5px;
	}
}


/*
 CONTENT
------------------------------------------------------------*/
.content {
	max-width: calc( 900px + 8% );
	margin: 75px auto 0;
	padding: 0 4%;
}
.content p {
	line-height: 2;
}

@media screen and (max-width: 768px) {
	.content {
		margin: 60px auto;
	}
}

.pic-title {
	font-weight: 600;
	line-height: 1.5;
	color: #385184;
	margin-bottom: 10px;
}
.pic-title-mb {
	margin-bottom: 10px;
}
.pic-title-sub {
	font-weight: 600;
	line-height: 1.5;
	color: #CF000E;
	border-bottom: 1px solid #CF000E;
	margin-bottom: 20px;
}

p.mc {
	font-weight: 600;
	text-align: justify;
	margin: 30px 0;
}
p.comment {
	text-align: justify;
	margin-bottom: 16px;
}
p.indent {
	text-align: justify;
	text-indent: 1em;
}
p.comment span {
	font-weight: 900;
	color: #385184;
	margin-right: 1em;
}
.hd2 {
	font-weight: 600;
	font-size: 2.5em;
	line-height: 1.5;
	text-align: center;
	color: #385184;
	margin: 80px auto 40px;
}
span.sup {
	font-size: .75em;
	margin: 0!important;
	vertical-align: text-top;
}
.section-link {
	width: 100%;
	background: #E4E9EF;
	padding: 90px 4%;
	margin-top: 100px;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.section-link-title {
	font-weight: 600;
	font-size: 1.125em;
}
.section-link-name {
	font-weight: 600;
	font-size: 1.5em;
	margin-top: 20px;
}
.section-link-url {
	font-weight: 600;
	font-size: 1.125em;
	color: #385184;
	text-decoration: underline;
	margin-top: 20px;
}
.section-link-url:hover {
	color: #CF000E;
}

@media screen and (max-width: 768px) {
	.hd2 {
		font-size: 1.875em;
	}
	.section-link {
		margin-top: 60px;
	}
}

@media screen and (max-width: 430px) {
	.hd2 {
		font-size: 7.2vw;
	}
}

/*
 NEXT
------------------------------------------------------------*/
.section-page {
	margin: 80px auto 0;
}
.section-page-box {
	display: flex;
	justify-content: center;
	align-items: center;
}
.section-page-box-next {
	display: flex;
	justify-content: center;
	position: relative;
	width: 80px;
	height: 30px;
	background: #385184;
	color: #FFF;
	font-size: 1.125em;
	font-weight: 600;
	margin-right: 25px;
}
.section-page-box-next::after {
	content: "";
	position: absolute;
	left: -30px;
	border-left: 15px solid transparent;
	border-top: 15px solid transparent;
	border-right: 15px solid #385184;
	border-bottom: 15px solid transparent;
}
.section-page-box-title {
	color: #385184;
	font-size: 1.375em;
	font-weight: 600;
	text-decoration: underline;
}
.section-page-box-title:hover {
	color: #CF000E;
}

@media screen and (max-width: 768px) {
	.section-page-box {
		flex-direction: column;
	}
	.section-page-box-next {
		width: 60px;
		height: 24px;
		font-size: 1em;
		line-height: 1.5;
		margin-left: 12px;
	}
	.section-page-box-next::after {
		content: "";
		position: absolute;
		left: -24px;
		border-left: 12px solid transparent;
		border-top: 12px solid transparent;
		border-right: 12px solid #385184;
		border-bottom: 12px solid transparent;
	}
	.section-page-box-title {
		font-size: 1.125em;
		text-decoration: underline;
		text-align: center;
		margin-top: 10px;
	}
}


/*
 INDEX
------------------------------------------------------------*/
.section-index {
	background: #385184;
	color: #FFF;
	padding: 80px 4%;
}
.index-lst {
	max-width: 900px;
	margin: 0 auto;
}
.index-lst .index-hd {
	border-left: none;
	position: relative;
 	padding-left: 22px;
	transition: .3s;
	display: inline-block;
}
.index-lst .index-hd:before {
	position: absolute;
	content: '';
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 6px 0 6px 8px;
	border-color: transparent transparent transparent #FFF;
	top: 0;
	left: 0;
	bottom: 0;
	margin: auto;
}
.index-hd:hover {
	opacity: .7;
}
.index-hd-txt {
	position: relative;
	background: #385184;
	padding-right: .5em;
	display: flex;
	align-items: center;
}
.index-hd-txt .index-hd-txt-index {
	font-size: 1.5em;
	font-weight: 900;	
}
.index-hd-txt .index-hd-txt-title {
	font-size: 1.25em;
	font-weight: 600;
	margin-left: 1em;
}
.index-lst .index-page {
	margin-top: 1.5em;
	border-left: 6px solid #FFF;
	padding-left: 16px;
}

.index-lst span {
	display: block;
}
.index-lst .index-page .shoulder {
	font-size: 1em;
	margin-bottom: .25em;
}
.index-lst .index-page .main {
	font-size: 1.25em;
	font-weight: 600;
}
.index-lst .index-page a {
	display: inline-block;
	transition: .3s;
}
.index-lst .index-page a:hover {
	opacity: .7;
}

@media screen and (max-width: 768px) {
	.index-hd-txt {
		flex-direction: column;
		align-items: flex-start;
		padding-right: 0;
	}
	.index-hd-txt .index-hd-txt-title {
		margin-left: 0;
	}
	.index-lst .index-hd:before {
		border-width: 0;
	}

	.index-lst .index-hd {
		border-left: 6px solid #FFF;
	}
}