@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;
}


/*
 HERO
------------------------------------------------------------*/
.hero {
	position: relative;
    max-width: 900px;
    margin: 0 auto;
}
.hero-title {
	width: 100%;
	margin: 0 auto;
	padding: 30px 0;
}
.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;	
}

@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: 767px) {
	.hero {
		width: 100%;
	    margin: 0 auto;
	}
	.hero-title {
		bottom: -120px;
		padding: 20px 10px;
	}
	.hero-title-en {
		font-size: 4.5vw;
	}
	.hero-title-en::after {
		width: 90%;
		height: 2px;
		bottom: -10px;
		left: 50%;
		transform: translateX(-50%);
	}
	.hero-title-jp {
		font-size: 9vw;
		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: 767px) {
	.lead {
		padding: 20px 4%;
	}
	.lead-p {
		font-size: 1em;
	}
}


/*
 MODEL HOUSE
------------------------------------------------------------*/
.modelhouse {
	max-width: calc( 1140px + 8% );
	margin: 80px auto 0;
	padding: 0 4%;
}
.modelhouse-box {
	display: flex;
	gap: 10px;
	line-height: 1;
}
.modelhouse-box-main {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.modelhouse-box-sub {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.modelhouse-box-main-pic {
	max-width: 770px;
}
.modelhouse-box-sub {
	max-width: 360px;
}
.modelhouse-cap {
	font-size: .975em;
	text-align: center;
	margin-top: 5px;
}

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


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

@media screen and (max-width: 767px) {
	.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;
}

.section.zu1 {
	max-width: 900px;
	margin: 50px auto 0;
}
.zu1-box {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 20px;
}
.zu1-box-ai {
	width: 320px;
}
.zu1-box-ai-caption {
	font-size: .875em;
	line-height: 1.5!important;
}
.zu1-box-pic {
	display: flex;
	justify-content: space-between;
	gap: 10px;
}
.zu1-box-pic-01 {
	width: 200px;
	display: flex;
	flex-direction: column;
}
.zu1-box-pic-02 {
	width: 170px;
	display: flex;
	flex-direction: column;
}
.zu1-box-pic-03 {
	width: 170px;
	display: flex;
	flex-direction: column;
}
.zu1-box-pic-01-img {
	margin-bottom: 5px;
}
.zu1-box-pic-02-img {
	margin-bottom: 5px;
}
.zu1-box-pic-03-img {
	margin-bottom: 5px;
}
.zu1-box-pic-caption {
	font-size: .875em;
	line-height: 1.5!important;
	text-indent: -1em;
	padding-left: 1em;
}
.zu1-box-pic-caption .num {
	color: #CF000E;
	font-weight: 600;
}
.zu1-box-pic2-01 {
	width: 260px;
	display: flex;
	flex-direction: column;
}
.zu1-box-pic2-02 {
	width: 140px;
	display: flex;
	flex-direction: column;
}
.zu1-box-pic2-03 {
	width: 140px;
	display: flex;
	flex-direction: column;
}

@media screen and (max-width: 767px) {
	.zu1-box {
		flex-direction: column;
		margin-bottom: 30px;
	}
	.zu1-box-ai {
		width: 100%;
	}
	.zu1-box-pic {
		flex-direction: column;
	}
	.zu1-box-pic-01,
	.zu1-box-pic-02,
	.zu1-box-pic-03,
	.zu1-box-pic2-01,
	.zu1-box-pic2-02,
	.zu1-box-pic2-03 {
		width: 100%;
		flex-direction: row;
	}
	.zu1-box-pic-01-img,
	.zu1-box-pic-02-img,
	.zu1-box-pic-03-img,
	.zu1-box-pic2-01-img,
	.zu1-box-pic2-02-img,
	.zu1-box-pic2-03-img {
		width: 50%;
		aspect-ratio: 1 / 1;
		margin-right: 10px;
		margin-bottom: 0;
	}
	.zu1-box-pic-01-img img,
	.zu1-box-pic-02-img img,
	.zu1-box-pic-03-img img,
	.zu1-box-pic2-01-img img,
	.zu1-box-pic2-02-img img,
	.zu1-box-pic2-03-img img {
		object-fit: cover;
	}
}

.section.column-k {
	max-width: 900px;
	margin: 50px auto 0;
}
.column-k-box {
	display: flex;
	justify-content: space-between;
	gap: 10px;
}
.column-k-box-pic {
	width: 64.4444%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
}
.column-k-box-pic1 {
	width: 40.3448%;
}
.column-k-box-pic2 {
	width: 57.931%;
	position: relative;
}
.column-k-box-pic2-img {
}
.column-k-box-fukidashi {
	width: 32.7381%;
	position: absolute;
	right: 8px;
	bottom: -66px;
}
.column-k-box-pic-caption {
	width: 75.0853%;
	font-size: .875em;
	line-height: 1.5!important;
}
.column-k-caption {
	font-size: .875em;
	line-height: 1.5!important;
}
.column-k-box-data {
	width: 32.2222%;
}
.column-k-box-data-title {
	font-size: .875em;
	font-weight: 600;
}
.column-k-box-data-sub {
	font-size: .8125em;
}
.column-k-box-data-caption {
	margin-top: 5px;
	font-size: .8125em;
	line-height: 1.5!important;
}

@media screen and (max-width: 767px) {
	.column-k-box {
		flex-direction: column;
	}
	.column-k-box-pic {
		width: 100%;
		flex-direction: column;
		margin-bottom: 10px;
		position: relative;
	}
	.column-k-box-pic1 {
		width: 100%;
		order: 1;
	}
	.column-k-box-pic2 {
		width: 100%;
		order: 3;
		margin-top: 10px;
		text-align: center;
	}
	.column-k-box-fukidashi {
		width: 20%;
		right: 8%;
		bottom: -15%;
	}
	.column-k-box-pic-caption {
		width: 100%;
		order: 2;
		margin-top: 10px;
	}
	.column-k-box-data {
		width: 100%;
		margin-top: 60px;
	}
	.column-k-box-data img {
		max-width: 290px;
	}
	.column-k-box-data-caption {
		margin-top: 0;
	}
}

@media screen and (max-width: 430px) {
	.column-k-box-fukidashi {
		width: 30%;
		right: 5%;
		bottom: -25%;
	}
}

.section.column-e {
	max-width: 900px;
	margin: 50px auto 0;
}
.column-e-box {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: flex-start;
	gap: 10px;
	line-height: 1;
}
.column-e-box-pic1 {
	width: 28.8888%;
	align-self: stretch;
}
.column-e-box-pic1 img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.column-e-box-pic2 {
	width: 68.8888%;
	position: relative;
}
.column-e-box-logo {
	width: 11.2931%;
	position: absolute;
	left: 87%;
	top: 94%;
}
.column-e-box-caption {
	width: 88%;
	font-size: .875em;
	line-height: 1.5!important;
}

@media screen and (max-width: 767px) {
	.column-e-box {
		flex-direction: column;
	}
	.column-e-box-pic1 {
		width: 100%;
	}
	.column-e-box-pic2 {
		width: 100%;
	}
	.column-e-box-logo {
		width: 16%;
		left: 82%;
	}
	.column-e-box-caption {
		width: 76%;
	}
}

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: 767px) {
	.hd2 {
		font-size: 1.875em;
	}
	.section-link {
		margin-top: 60px;
	}
}

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

/*
 NEXT 2024.10.18追加
------------------------------------------------------------*/
.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: 767px) {
	.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;
	}
}