@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: 1140px;
    height: 600px;
    margin: 0 auto 170px;
    background: url(1129hero-pc.jpg) no-repeat center;
    background-size: cover;
}
.hero-title {
	position: absolute;
	bottom: -150px;
	left: 50%;
	transform: translateX(-50%);
	background: #FCFCFC;
	max-width: 996px;
	width: 92%;
	margin: 0 auto;
	padding: 30px 40px;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.hero-title-en {
	position:relative;
	font-weight: 600;
	font-size: 1.75em;
	color: #385184;
	margin-bottom: 10px;
}
.hero-title-en::after {
	content: "";
	display: block;
	max-width: 100%;
	width: 27.5em;
	height: 2px;
	background-color: #385184;
	position: absolute;
	bottom: 0;
}
.hero-title-jp {
	font-weight: 900;
	font-size: 3em;	
	line-height: 1.25;
}

@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%;
		height: 100vw;
	    margin: 0 auto 80px;
	    background: url(1129hero-sp.jpg) no-repeat center;
	    background-size: contain;
	    background-position: top;
	}
	.hero-title {
		bottom: -70px;
		padding: 20px 10px;
	}
	.hero-title-en {
		font-size: 4.5vw;
		width: 100%;
	}
	.hero-title-en::after {
		width: 90%;
		height: 2px;
		bottom: -10px;
		left: 50%;
		transform: translateX(-50%);
	}
	.hero-title-jp {
		font-size: 8.5vw;
		text-align: center;	
		line-height: 1.25;
	}
}


/*
 LEAD
------------------------------------------------------------*/
.lead {
	background: #385184;
	padding: 40px 4%;
}
.lead-p {
	max-width: 800px;
	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;
	}
}


/*
 MODEL HOUSE
------------------------------------------------------------*/
.modelhouse {
	max-width: calc( 1280px + 8% );
	margin: 80px auto 0;
	padding: 0 4%;
}
.modelhouse-box {
	display: flex;
	gap: 20px;
}
.modelhouse-box-pic {
	width: 50%;
}
.modelhouse-cap {
	font-size: .975em;
	text-align: center;
	margin-top: 5px;
}

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


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

@media screen and (max-width: 768px) {
	.content {
		margin: 60px auto;
	}
}
.section.box-R {
	display: flex;
	justify-content: space-between;
}
.section.box-L2 {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}
.section.box-C {
	display: flex;
	justify-content: center;
	margin: 50px auto;
}
.section-box-txt {
	width: 100%;
}
.section-box-txt {
	width: 60.5%;
}
.section-box-pic {
	width: 35.5%;
	padding-top: 8px;
}
p.mc {
	font-weight: 600;
	text-align: justify;
	margin: 14px 0 30px;
}
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;
}
.person-title {
	font-size: .875em;
	line-height: 1.5;
	margin-top: 2px;
}
.person-name {
	font-size: .875em;
	line-height: 1.5;
	margin-top: 4px;
}
.person-name span {
	font-weight: 600;
	font-size: 1.2857em;
}
.pic-title {
	font-weight: 600;
	line-height: 1.5;
	color: #385184;
	margin: 34px 0 5px;
}
.pic-img {
	margin-top: 8px;
}
.pic-source {
	font-size: .875em;
	line-height: 1.5;
	margin-top: 4px;
}
.hd2 {
	font-weight: 600;
	font-size: 2.5em;
	line-height: 1.5;
	text-align: center;
	color: #385184;
	margin: 80px auto 40px;
}
.section-box-C.w640 {
	width: 640px;
}
.section-box-C.w800 {
	width: 800px;
}
.section-box-P {
	width: 640px;
	display: flex;
}
.section-box-P.w800 {
	width: 800px;
}
.pic-mb20 {
	margin-bottom: 20px;
}
.section-box-P-pic {
	width: 50%;
	padding: 0;
	margin: 0;
	line-height: 0;
}
.section-box-P-txt {
	width: 50%;
	padding: 30px 40px 0;
	margin: 0;
	background: #E4E9EF;
}
.section-box-P-txt .hd3 {
	font-weight: 600;
	font-size: 1em;
	line-height: 1.5;
	color: #385184;
	text-align: left;
	margin-bottom: 8px;
}
.section-box-P-txt p {
	font-size: .9375em;
	line-height: 2;
	text-align: justify;
}
.illust-box {
	position: relative;
	margin-top: 6px;
}
span.sub {
	font-size: .75em;
	margin: 0!important;
}
.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) {
	.section.box-R {
		flex-direction: column;
		align-items: center;
	}
	.section.box-L2 {
		flex-direction: column;
	}
	.section-box-txt {
		width: 100%;
	}
	.section-box-pic {
		width: 76%;
		padding-top: 8px;
		margin: 24px auto 40px;
	}
	.section-box-pic.mTop0 {
		margin-top: 0;
	}
	.order1 {
		order: 1;
	}
	.order2 {
		order: 2;
	}
	.order3 {
		order: 3;
	}
	.hd2 {
		font-size: 1.875em;
	}
	.section-box-P {
		width: 90%;
		flex-direction: column;
	}
	.section-box-P-pic {
		width: 100%;
	}
	.section-box-P-txt {
		width: 100%;
		padding: 20px;
	}
	.section-box-P-txt p {
		font-size: .875em;
		line-height: 1.5;
	}
	.section-box-P-txt .hd3 {
		margin-bottom: 5px;
	}
	.pic-s {
		width: 60%;
	}
	.section-link {
		margin-top: 60px;
	}
}


/*
 DATA-TABLE
------------------------------------------------------------*/
.data-tbl-wrap {
	display: flex;
	justify-content: space-between;
}
.data-tbl {
	border: 1px #707070 solid;
	border-collapse: collapse;
	text-align: center;
}
.data-tbl.main {
	width: 700px;
	margin-right: 10px;
}
.data-tbl.sub {
	width: 180px;
}
.data-tbl tr th,
.data-tbl tr td {
	padding: 7px;
	border-right: 1px #707070 solid;
	border-bottom: 1px #707070 solid;
	height: 40px;
	vertical-align: middle;
}
.data-tbl tbody tr th {
	font-weight: 600;
}
.data-tbl .tbl-bg1 {
	background: #FFFDEC;
}
.data-tbl .tbl-bg2 {
	background: #FCE0D3;
}
.data-tbl .tbl-bg3 {
	background: #CBEAF9;
}
.data-tbl .tbl-bg4 {
	background: #CFE6D3;
}
.data-tbl thead {
	height: 143px;
}
.data-tbl .t-left {
	text-align: left;
}
.data-tbl .f-small {
	font-size: .875em;
}
.data-tbl-sp {
	display: none;
}

@media screen and (max-width: 960px) {
	.data-tbl {
		font-size: .875em;
	}
}

@media screen and (max-width: 768px) {
	.data-tbl-wrap {
		flex-direction: column;
	}
	.data-tbl {
		font-size: .875em;
	}
	.data-tbl thead {
		height: auto;
	}
	.data-tbl.main {
		width: 100%;
	}
	.data-tbl.sub {
		width: 100%;
	}
	.data-tbl tr th,
	.data-tbl tr td {
		height: auto;
		padding: 7px 4px;
	}
	.data-tbl .height-set {
		height: auto;
	}
	.data-tbl-sp {
		display: table-cell;
	}
	.data-tbl-wrap .data-tbl:first-child {
		margin-bottom: 20px;
	}
}

/*
 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;
	}
}


/*
 NEXT 2024.12.13追加
------------------------------------------------------------*/
.section-page {
	background: #E4E9EF;
	padding: 80px 0 90px;
	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;
	right: -30px;
	border-left: 15px solid #385184;
	border-top: 15px solid transparent;
	border-right: 15px solid transparent;
	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-right: 12px;
	}
	.section-page-box-next::after {
		content: "";
		position: absolute;
		right: -24px;
		border-left: 12px solid #385184;
		border-top: 12px solid transparent;
		border-right: 12px solid transparent;
		border-bottom: 12px solid transparent;
	}
	.section-page-box-title {
		font-size: 1.125em;
		text-decoration: underline;
		text-align: center;
		margin-top: 10px;
	}
}
