@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: 767px) {
  .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: 767px) {
  .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;
}

span.sup {
	font-size: .75em;
	vertical-align: top;
	margin: 0;
}

/*
 HEAD
------------------------------------------------------------*/
.head {
	width: 100%;
	height: 20px;
	background: #9C0F13;
	position: relative;
	margin-bottom: 70px;
}
.head-title {
	position: absolute;
	top: 0;
	left: 50%;
 	transform: translateX(-50%);
}

@media screen and (max-width: 767px) {
	.head {
		margin-bottom: 10%;
	}
}


/*
 TITLE
------------------------------------------------------------*/
.title {
	width: 900px;
	margin: auto;
}
.title-sub {
	position:relative;
	font-size: 1.625em;
	font-family: "Noto Serif JP", serif;
	font-optical-sizing: auto;
	font-weight: 700;
	font-style: normal;
	color: #9C0F13;
	text-align: center;
	margin-bottom: 10px;
	padding-bottom: 10px;
}
.title-sub::after {
	content: "";
	display: block;
	max-width: 100%;
	width: 100%;
	height: 1px;
	background-color: #9C0F13;
	position: absolute;
	bottom: 0;
}
.title-main {
	font-weight: 900;
	font-size: 3.75em;
	text-align: center;
	line-height: 1.25;
}

@media screen and (max-width: 1080px) {
	.title-sub {
		font-size: 2.4vw;
	}
	.title-main {
		font-size: 5.5vw;
	}
}

@media screen and (max-width: 900px) {
	.title {
		width: 100%;
		padding: 0 4%;
    	margin: 0 auto;
	}
}

@media screen and (max-width: 767px) {
	.title-sub {
		font-size: 4vw;
	}
	.title-main {
		font-size: 8vw;
	}
}


/*
 OVERVIEW
------------------------------------------------------------*/
.overview {
	margin: 40px auto;
	padding: 0 4%;
}
.overview-box {
	max-width: 980px;
	display: flex;
	justify-content: space-between;
	margin: auto;
	line-height: 0;
}
.overview-box-main {
	width: 66.32653%;
}
.overview-box-sub {
	width: 32.653%;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	flex-wrap: wrap;
}
.overview-box-sub-a {
	width: 100%;
	margin-bottom: 10px;
}
.overview-box-sub-b {
	width: 59.375%;
}
.overview-box-sub-c {
	width: 37.5%;
}
.overview-caption {
	max-width: 980px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 15px auto 0;
}
.overview-caption-logo {
	width: 20.40816%;
	height: auto;
}
.overview-caption-txt {
	width: 76.5306%;
	font-size: .875em;
	line-height: 1.5;
}

@media screen and (max-width: 767px) {
	.overview {
		margin: 20px auto 40px;
	}
	.overview-box {
		flex-direction: column;
	}
	.overview-box-main {
		width: 100%;
		margin-bottom: 10px;
	}
	.overview-box-sub {
		width: 100%;
	}
	.overview-caption {
		flex-direction: column;
	}
	.overview-caption-logo {
		width: 40%;
		margin-bottom: 5px;
	}
	.overview-caption-txt {
		width: 100%;
	}
}


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

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


/*
 CONTENT
------------------------------------------------------------*/
.content {
	max-width: calc( 900px + 8% );
	margin: auto;
	padding: 0 4%;
}
.hd2 {
	font-weight: 600;
	font-size: 2.5em;
	line-height: 1.5;
	text-align: center;
	color: #111;
	margin: 80px auto 40px;
}
.content p {
	line-height: 2;
}
p.mc {
	font-weight: 600;
	text-align: justify;
	margin-bottom: 30px;
}
p.comment {
	text-align: justify;
	margin-bottom: 16px;
}
p.indent {
	text-align: justify;
	text-indent: 1em;
}
p.comment .name {
	font-weight: 900;
	color: #9C0F13;
	margin-right: 1em;
}

.person {
	margin-top: 50px;
}
.person-lst {
	display: flex;
	justify-content: center;
	gap: 20px;
}
.person-lst-box {
	width: 23.33333333%;
}
.person-lst-box-cap-ttl {
	font-size: .875em;
}
.person-lst-box-cap-name {
	font-size: .875em;
}
.person-lst-box-cap-name span {
	font-size: 1.2857em;
	font-weight: 600;
}

@media screen and (max-width: 767px) {
	.hd2 {
		font-size: 7vw;
		margin: 60px auto 20px;
	}
	.person-lst {
		flex-direction: column;
	}
	.person-lst-box {
		width: 100%;
		display: flex;
		align-items: center;
	}
	.person-lst-box img {
		width: 50%;
	}
	.person-lst-box-cap {
		width: 50%;
		padding-left: 4%;
	}
}

.goal {
	margin-top: 50px;
}
.goal-caption {
	font-size: 1.25em;
	font-weight: 600;
}
.goal-img {
	text-align: center;
}

@media screen and (max-width: 767px) {
	.goal-caption {
		margin-bottom: 10px;
	}
}

.fukuoka {
	border: 2px solid #272968;
	border-radius: 20px;
	padding: 40px 50px;
	margin-top: 50px;
}
.fukuoka-ttl {
	font-size: 1.75em;
	font-weight: 600;
	color: #272968;
	text-align: center;
	margin-bottom: 20px;
}
.fukuoka-p {
	text-align: justify;
	margin-bottom: 20px;
}
.fukuoka-p a {
	color: #272968;
	text-decoration: underline;
}
.fukuoka-p a:hover {
	color: #9C0F13;
}
.fukuoka-box {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	max-width: 670px;
	margin: auto;
}
.fukuoka-box-pic1 {
	width: 68.6567164%;
}
.fukuoka-box-pic2 {
	width: 29.850746%;
}
.fukuoka-box-cap {
	width: 100%;
	font-size: .875em;
	text-align: center;
}

@media screen and (max-width: 767px) {
	.fukuoka {
		padding: 30px 4%;
	}
	.fukuoka-ttl {
		font-size: 6vw;
		margin-bottom: 10px;
	}
	.fukuoka-box {
		align-items: center;
	}
	.fukuoka-box-pic1 {
		width: 100%;
		line-height: 0;
		margin-bottom: 10px;
	}
	.fukuoka-box-pic2 {
		width: 50%;
	}
	.fukuoka-box-cap {
		width: 50%;
		text-align: justify;
		padding-left: 10px;
	}
}

.section-w {
	display: flex;
	justify-content: space-between;
}
.section-w-txt {
	width: 60.4444444%;
}
.section-w-pic {
	width: 35.5555555%;
}
.section-w-pic-cap {
	font-size: .875em;
	line-height: 1.5!important;
}

@media screen and (max-width: 767px) {
	.section-w {
		flex-direction: column;
		margin-bottom: 30px;
	}
	.section-w-txt {
		width: 100%;
	}
	.section-w-pic {
		width: 100%;
	}
}

.annotation-lst {
	margin-top: 40px;
}
.annotation-lst li {
	font-size: .875em;
	line-height: 2;
}

.taiken {
	width: 100%;
	background: #EEEEEE;
	padding: 80px 4% 100px;
	margin-top: 80px;
}
.taiken-inner {
	max-width: 960px;
	margin: auto;
}
.taiken-hd2 {
	font-size: 2.5em;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
	color: #9C0F13;
}
.taiken-hd2-sp {
	display: none;
}
.taiken-hdsub {
	font-size: 1.875em;
	font-weight: 600;
	line-height: 1.5;
	text-align: center;
	margin-top: 10px;
}
.taiken-hd3 {
	max-width: 600px;
	font-size: 1.5em;
	font-weight: 600;
	line-height: 1.5;
	color: #9C0F13;
	text-align: center;
	background: #FFF;
	border: 1px solid #9C0F13;
	border-radius: 30px;
	padding: 10px 50px;
	margin: 50px auto 0;
}
.taiken-p {
	max-width: 900px;
	text-align: justify;
	line-height: 2;
	margin: 30px auto 0;
}
.taiken-pic1 {
	max-width: 900px;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 0 auto 0;
}
.taiken-pic1-unit {
	width: 47.777777%;
	margin-top: 30px;
}
.taiken-pic1-unit-cap {
	font-size: .875em;
	text-align: center;
	line-height: 1.5;
}
.taiken-w {
	max-width: 900px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 30px auto 0;
}
.taiken-w-txt {
	width: 74.444444%;
	text-align: justify;
	line-height: 2;
}
.taiken-w-img {
	width: 22.222222%;
}
.taiken-w-img img {
	border-radius: 50%;
}
.taiken-pic2 {
	max-width: 900px;
	display: flex;
	justify-content: space-between;
	margin: 30px auto 0;
}
.taiken-pic2-unit {
	width: 33.333333%;
}
.taiken-pic1-unit-cap {
	font-size: .875em;
	text-align: center;
	line-height: 1.5;
}
.taiken-pic2-see {
	width: 63.333333%;
}
.taiken-pic2-see-wrap {
	display: flex;
	justify-content: space-between;
}
.taiken-pic2-see-unit {
	width: 49.1228%;
	position: relative;
	padding-top: 20px;
}
.taiken-pic2-see-unit-ttl {
	position: absolute;
	width: 200px;
	background: #FFF;
	font-size: 1.125em;
	font-weight: 600;
	color: #9C0F13;
	text-align: center;
	border: 1px solid #9C0F13;
	border-radius: 20px;
	padding: 5px;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
}
.taiken-pic2-see-unit-ttl.colorB {
	background: #9C0F13;
	color: #FFF;
}
.taiken-pic2-unit-cap {
	font-size: .875em;
	text-align: center;
	line-height: 1.5;
}

@media screen and (max-width: 960px) {
	.taiken-hd2-sp {
		display: block;
	}
}

@media screen and (max-width: 767px) {
	.taiken {
		padding: 50px 4%;
		margin-top: 50px;
	}
	.taiken-hd2 {
		font-size: 6.4vw;
	}
	.taiken-hdsub {
		font-size: 4.6vw;
	}
	.taiken-hd3 {
		font-size: 4.6vw;
		border-radius: 50px;
		padding: 10px 20px;
		margin: 40px auto 0;
	}
	.taiken-p {
		margin: 20px auto 0;
	}
	.taiken-pic1-unit {
		width: 100%;
		margin-top: 20px;
	}
	.taiken-w {
		flex-direction: column;
		margin: 20px auto 0;
	}
	.taiken-w-txt {
		width: 100%;
	}
	.taiken-w-img {
		width: 200px;
		margin-top: 20px;
	}
	.taiken-w-img img {
		border-radius: 50%;
	}
	.taiken-pic2 {
		flex-direction: column;
		margin: 30px auto 0;
	}
	.taiken-pic2-unit {
		width: 100%;
	}
	.taiken-pic1-unit-cap {
		font-size: .875em;
		text-align: center;
		line-height: 1.5;
	}
	.taiken-pic2-see {
		width: 100%;
	}
	.taiken-pic2-see-wrap {
		flex-direction: column;
	}
	.taiken-pic2-see-unit {
		width: 100%;
		margin-top: 20px;
	}
}

.feature {
	width: 100%;
	padding: 80px 4% 0;
}
.feature-inner {
	max-width: 996px;
	margin: auto;
}
.feature-hd2 {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	line-height: 1;
}
.feature-hd2 div {
	font-size: 2.5em;
	font-weight: 600;
	text-align: center;
}
.feature-hd2 img {
	height: 43px;
}
.feature-pic {
	display: flex;
	justify-content: space-between;
	margin: 40px auto 0;
}
.feature-pic-unit1 {
	width: 35.74297%;
}
.feature-pic-unit2 {
	width: 24.096385%;
}
.feature-pic-unit3 {
	width: 38.15261%;
}
.feature-pic-unit-cap {
	max-width: 330px;
	font-size: .875em;
	text-align: center;
	line-height: 1.5;
	margin: auto;
}
.feature-p {
	max-width: 900px;
	margin-top: 30px;
	text-align: justify;
	line-height: 2;
	margin: 30px auto 0;
}
.feature-box {
	max-width: 996px;
	display: flex;
	justify-content: space-between;
	margin: 50px auto 0;
}
.feature-box-unitL {
	width: 73.092369%;
}
.feature-box-unitR {
	width: 24.698795%;
}
.feature-box-unit-table {
	width: 100%;
	border: 1px solid #40AA9A;
}
.feature-box-unit-table-head {
	background: #40AA9A;
	font-size: 1.25em;
	font-weight: 600;
	color: #FFF;
	text-align: center;
	padding: 10px;
}
.feature-box-unit-table-body {
	display: flex;
	font-size: .9375em;
	font-weight: 600;
}
.feature-box-unit-table-body-anshin {
	flex-grow: 1;
	border-right: 1px solid #40AA9A;
}
.feature-box-unit-table-body-riben {
	flex-grow: 1;
}
.feature-box-unit-table-body-anshin-th,
.feature-box-unit-table-body-riben-th {
	background: #EEE;
	font-weight: 600;
	text-align: center;
	padding: 10px;
}
.feature-box-unit-table-body-anshin-td,
.feature-box-unit-table-body-riben-td {
	padding: 15px;
}
.feature-box-unit-table-body-anshin-td ul li,
.feature-box-unit-table-body-riben-td ul li {
	line-height: 1.5;
	padding-left: 1em;
	text-indent: -1em;
	font-family: "Noto Sans JP", sans-serif;
}
.feature-table-red {
	color: #CC0000;
	font-weight: 600;
}
.feature-box-unit-table-body-riben-td ul li.feature-table-kome {
	font-size: .9375em;
	font-weight: 400;
	padding-left: 1.8666666em;
	text-indent: -0.9333333em;
}
.feature-table-note {
	font-size: .9375em;
	text-align: right;
	margin-top: 4px;
}
.feature-box-unitR-cap {
	font-size: .875em;
	text-align: center;
	line-height: 1.5;
}
.feature-link {
	margin: 30px auto 0;
}
.feature-link a {
	display: block;
	width: 560px;
	background: #40AA9A;
	border-radius: 50px;
	font-size: 1.25em;
	font-weight: 600;
	color: #FFF;
	line-height: 1;
	text-align: center;
	padding: 20px;
	margin: auto;
	transition: .3s;
}
.feature-link a:hover {
	opacity: .7;
}
.feature-member {
	width: 800px;
	margin: 80px auto 0;
}
.feature-member-cap {
	font-size: .875em;
	text-align: center;
	line-height: 1.5;
}

@media screen and (max-width: 900px) {
	.feature-member {
		width: 100%;
		margin: 60px auto 0;
	}

}

@media screen and (max-width: 767px) {
	.feature {
		padding: 50px 4% 0;
	}
	.feature-hd2 {
		flex-direction: column;
		gap: 10px;
	}
	.feature-hd2 div {
		font-size: 7vw;
	}
	.feature-hd2 img {
		width: 48%;
		height: auto;
	}
	.feature-pic {
		flex-direction: column;
		align-items: center;
		margin: 30px auto 0;
		gap: 10px;
	}
	.feature-pic-unit1 {
		width: 100%;
	}
	.feature-pic-unit2 {
		width: 90%;
	}
	.feature-pic-unit3 {
		width: 90%;
	}
	.feature-box {
		flex-direction: column;
		align-items: center;
		margin: 30px auto 0;
	}
	.feature-box-unitL {
		width: 100%;
	}
	.feature-box-unitR {
		width: 200px;
		margin-top: 30px;
	}
	.feature-box-unit-table-body {
		flex-direction: column;
	}
	.feature-box-unit-table-body-anshin {
		border-right: none;
	}
	.feature-link a {
		width: 100%;
		font-size: 4.2vw;
		line-height: 1.5;
		padding: 15px;
	}
}

.section-link {
	width: 100%;
	background: #D7E7FC;
	padding: 90px 4%;
	margin-top: 80px;
	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: 767px) {
	.section-link {
		margin-top: 60px;
	}
}
