/* CSS Document */

@charset "UTF-8";

@import url('style.css');

/*----------------------------------------------------------------------
調整
-----------------------------------------------------------------------*/
main p {
	line-height: 1.9;
}

/*----------------------------------------------------------------------
LR-rayout
-----------------------------------------------------------------------*/
div.left, div.right {
	gap: 80px 48px;
}
@media screen and (max-width: 1200px) {
	div.left, div.right {
		gap: 60px 48px;
	}
}

@media screen and (max-width: 960px) {
	div.left, div.right {
		column-gap: 1.5rem;
	}

	div.left > picture, div.right > picture {
		text-align: center;
		direction: ltr;
	}
}

div.left > div, div.right > div {
	align-self: end;
}

/*----------------------------------------------------------------------
grid
-----------------------------------------------------------------------*/
.grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 20px 68px;
	margin-top: 2rem;
}
@media screen and (max-width: 1160px) {
	.grid {
		column-gap: 40px;
	}
}
@media screen and (max-width: 960px) {
	.grid {
		column-gap: 20px;
	}
}

/*----------------------------------------------------------------------
figcaption
-----------------------------------------------------------------------*/
.grid figure {
	position: relative;
}

.grid figure > figcaption {
	position: absolute;
	bottom: 15%;
	right: 6%;
	font-size: 1.625rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	color: #FFF;
	text-align: right;
}

.grid figure > figcaption > small {
	display: block;
	font-size: 12px;
	font-weight: 600;
}

@media screen and (max-width: 900px) {
	.grid figure > figcaption > small {
		margin-top: 0.375rem;
		font-weight: 800;
	}
}

/*----------------------------------------------------------------------
lined
-----------------------------------------------------------------------*/
p.lined {
	position: relative;
	max-width: 900px;
	margin-top: 1.125rem;
	padding: 0 32px 0.25rem;
	border-left: 2px solid var(--link-hover-color);
	border-bottom: 2px solid var(--link-hover-color);
	font-size: 1.375rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	line-height: 1.6;
	color: #333;
	text-align: center;
}
p.lined::after{
	position: absolute;
	content: "";
	top: 0;
	left: -2px;
	display: block;
	border-left: 2px solid #F9FAFA;
	height: 10px;
}

@media screen and (max-width: 960px) {
	p.lined {
		line-height: 1.2;
	}
}

@media screen and (max-width: 736px) {
	p.lined {
		width: 100%;
		padding: 0 12px 0.5rem;
		font-size: 1.0625rem;
		letter-spacing: 0.08em;
	}
}

/*----------------------------------------------------------------------
見出し
-----------------------------------------------------------------------*/
main > article h2 {
	padding: 0;
	border-left: none;
}

main > article:not(#Events):not(#News) h2 {
	font-size: 2.375rem;
	letter-spacing: 0.09em;
	line-height: 1.2;
}

main > article h2 small {
	display: block;
	font-size: 0.6em;
}

@media screen and (max-width: 736px) {
	main > article:not(#Events):not(#News) h2 {
		font-size: 1.5rem;
		line-height: 1.4;
	}
}

/*----------------------------------------------------------------------
リンクボタン
-----------------------------------------------------------------------*/
a.link-button {
	margin-top: 1.25rem;
}

@media screen and (min-width: 900px) {
	div.left a.link-button, div.right a.link-button {
		margin-top: 2.25rem;
	}
}

@media screen and (max-width: 900px) {
	article#Brand div.grid a.link-button, article#Perspectives div.grid a.link-button {
		margin-left: 20px;
	}
}

/*----------------------------------------------------------------------
ヘッダー
-----------------------------------------------------------------------*/
header {
	transition: 0.1s linear;
}
header:not(.change-color) {
	background: transparent;
	transition: 0.1s linear;
}

header:not(.change-color) a.logo {
	opacity: 0;
}

header:not(.change-color) #overlay-button span:before, header:not(.change-color) #overlay-button span:after {
	background: #FFF !important;
}
header:not(.change-color) #overlay-button p {
	color: #FFF !important;
}

/*----------------------------------------------------------------------
ヘッダー
-----------------------------------------------------------------------*/
header {
	transition: 0.1s linear;
}
header:not(.change-color) {
	background: transparent;
	transition: 0.1s linear;
}

header:not(.change-color) a.logo {
	opacity: 0;
}

header:not(.change-color) #overlay-button span:before, header:not(.change-color) #overlay-button span:after {
	background: #FFF !important;
}
header:not(.change-color) #overlay-button p {
	color: #FFF !important;
}

/*----------------------------------------------------------------------
Movie
-----------------------------------------------------------------------*/
#Movie {
	position: relative;
	width: 100%;
	height: 100vh;
}
@media screen and (max-width: 736px) {
	#Movie {
		height: calc(62vh + 66px);
	}
}

#Movie video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

#Movie > h1 {
	position: absolute;
	bottom: 12%;
	left: 50%;
	width: 430px;
	max-width: 80vw;
	height: auto;
	transform: translateX(-50%);
}
@media screen and (max-width: 900px) {
	#Movie > h1 {
		max-width: 64vw;
	}
}

#Movie > p {
	position: absolute;
	top: 30%;
	left: 5%;
	font-size: 2.875rem;
	font-weight: 800;
	line-height: 1.6;
	color: #FFF;
}
@media screen and (max-width: 900px) {
	#Movie > p {
		font-size: 2.5rem;
	}
}
@media screen and (max-width: 736px) {
	#Movie > p {
		font-size: 1.5rem;
	}
}

/*----------------------------------------------------------------------
Brand
-----------------------------------------------------------------------*/
#Brand > picture {
	position: relative;
	width: 396px;
	max-width: 60vw;
	transform: translateY(40%);
	z-index: 50;
}

#Brand h2 {
	display: inline-block;
	direction: rtl;
}

#Brand p.lined {
	max-width: 560px;
}

#Brand div.right {
	grid-template-columns: 1fr 5fr;
}

#Brand div.right > div:first-of-type {
	width: calc(100% + 600px);
	padding-bottom: 1rem;
	z-index: 2;
}

#Brand p:not(.lined) {
	padding: 0px 20px;
	text-shadow: 1px 1px 0px rgba(255, 255, 255, 0.4);
}

#Brand div._100 {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
	gap: 20px;
}

#Brand div.grid {
	gap: 0;
	margin:  0 0 2.5rem;
}

@media screen and (min-width: 960px) {
	#Brand {
		margin-top: -30px;
	}

	#Brand div.grid, #Brand div._100 {
		max-width: 1010px;
	}
}

@media screen and (max-width: 960px) {
	#Brand > picture {
		margin-left: auto;
		margin-bottom: 2rem;
		transform: translateY(0);
	}

	#Brand div.right {
		grid-template-columns: 1fr;
		gap: 0;
		margin: 0;
		padding: 0;
	}

	#Brand p:not(.lined) {
		padding: 0;
	}

	#Brand div.right > div:first-of-type {
		width: 100%;
	}
}

@media screen and (max-width: 900px) {
	#Brand div._100 {
		gap: 0 8px;
	}
}

@media screen and (max-width: 736px) {
	#Brand {
		margin-top: 50px;
	}
}

/*----------------------------------------------------------------------
Perspectives
-----------------------------------------------------------------------*/
#Perspectives div._100 {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
	gap: 0 20px;
	margin-top: 1.25rem;
}

@media screen and (min-width: 900px) {
	#Perspectives div._100 {
		padding: 0 20px;
	}
}
@media screen and (max-width: 900px) {
	#Perspectives div._100 {
		gap: 0 8px;
	}
}

#Perspectives .grid {
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 0;
}
@media screen and (min-width: 1160px) {
	#Perspectives .grid {
		padding: 0px 160px;
	}
}

/*----------------------------------------------------------------------
Concept
-----------------------------------------------------------------------*/
#Concept figure::after {
	position: absolute;
	top: 50%;
	right: 3%;
	content: "\f105";
	display: grid;
	place-items: center;
	width: 20px;
	height: 20px;
	background: #FFF;
	border: 1px solid;
	border-radius: 50%;
	font-family: "Line Awesome Free";
	font-size: 14px;
	font-weight: 900;
	transform: translateY(-50%);
}

#Concept figcaption {
	top: calc(50% - 2px);
	right: calc(3% + 28px);
	bottom: auto;
	transform: translateY(-50%);
}

#Concept .grid {
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 16px 16px;
}
@media screen and (min-width: 1400px) {
	#Concept .grid {
		width: calc(100% + 100px);
		transform: translateX(-0px);
	}
}
@media screen and (min-width: 1620px) {
	#Concept .grid {
		width: calc(100% + 210px);
	}
}
@media screen and (max-width: 960px) {
	#Concept .grid {
		margin-top: 4rem;
	}
}

/*----------------------------------------------------------------------
Consultation
-----------------------------------------------------------------------*/
main > article#Consultation > h2 {
	line-height: 1.05;
}

#Consultation .grid figure > figcaption {
	bottom: 25%;
}
#Consultation .grid figcaption::after {
	display: block;
	content: "■ご来社　■オンライン";
	margin-top: 1.25rem;
	font-size: 0.5em;
	font-weight: 600;
	direction: ltr;
}

#Consultation figure > div {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 10px 14px;
	padding-top: 0.75rem;
}

#Consultation figure > div > a {
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
}
#Consultation figure > div > a::before {
	content: "\f138";
	margin-right: 0.125rem;
	font-family: "Line Awesome Free";
	font-size: 1.125em;
	font-weight: 900;
	vertical-align: -1px;
}

@media screen and (min-width: 1160px) {
	#Consultation .grid {
		grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
	}
}

@media screen and (max-width: 900px) {
	#Consultation .grid figure > figcaption {
		padding-bottom: 6px;
		font-size: 1.25rem;
	}
}

@media screen and (max-width: 900px) {
	#Consultation figure > div > a {
		font-size: 0.875rem;
	}
}

/*----------------------------------------------------------------------
Viewing
-----------------------------------------------------------------------*/
#Viewing h2 {
	text-align: center;
}

#Viewing p.lined {
	display: table;
	margin-left: auto;
	margin-right: auto;
}

#Viewing .grid {
	row-gap: 2rem;
}
#Viewing .grid:first-of-type {
	padding-bottom: 3rem;
	/* border-bottom: 1px solid var(--primary-text-color); */
}

#Viewing .grid > div {
	display: flex;
	flex-direction: column;
}

#Viewing .grid > div .link-button {
	align-self: end;
}

#Viewing .grid > div p {
	flex-grow: 1;
	margin-top: 1rem;
	font-size: 0.875rem;
}

@media screen and (min-width: 1160px) {
	#Viewing p.lined+p {
		text-align: center;
	}
}

@media screen and (min-width: 900px) {
	#Viewing .grid > div p {
		padding: 0px 16px;
	}
}

#Viewing h3 {
	display: inline-block;
	padding: 0;
	font-size: 1.75rem;
	font-weight: 800;
	letter-spacing: 0.13em;
}

#Viewing h4 {
	margin-top: 0.75rem;
	line-height: 1.5;
}

/*----------------------------------------------------------------------
News
-----------------------------------------------------------------------*/
#News {
	width: 100vw;
	margin: 0 calc(50% - 50vw);
	background: #EDEDEC;
}

#News .inner {
	width: 1200px;
	max-width: 100%;
	margin: 0 auto;
	padding-left: 20px;
	padding-right: 20px;
}

ul.news-content {
	margin-top: 2rem;
}

@media screen and (min-width: 960px) {
	ul.news-content {
		padding: 0px 80px;
	}
}
ul.news-content li {
	padding: 1rem;
	border-bottom: 1px solid #999;
	font-weight: 400;
	line-height: 1.8;
}

ul.news-content li {
	padding: 1rem;
	border-bottom: 1px solid #999;
	font-weight: 400;
}

ul.news-content li span {
	display: block;
	margin: 0.25rem 0.75rem 0;
}

ul.news-content li span.button::before {
	display: inline-block;
	content: "\f0fe";
	margin-right: 0.625em;
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
}
ul.news-content li span.active::before {
	display: inline-block;
	content: "\f146";
	margin-right: 0.625em;
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
}
ul.news-content li span.button:hover {
	color: var(--link-hover-color);
	text-decoration: underline;
	cursor: pointer;
}

ul.news-content li div {
	margin: 0.75rem 1rem 0;
}

ul.news-content li div > p {
	font-size: 0.875rem;
}
ul.news-content li div > p+p {
	margin-top: 1.25rem;
}

ul.news-content li p > a {
	font-weight: 600;
}

@media screen and (max-width: 736px) {
	#News {
		padding: 50px 0px;
	}

	ul.news-content li span {
		margin: 0em 0em 0.25em 0.5em;
	}
}

/*----------------------------------------------------------------------
Events
-----------------------------------------------------------------------*/
#Events {
	width: 100vw;
	margin: 0 calc(50% - 50vw);
	padding: 60px 0px;
	background: #EDEDEC;
}

#Events > h2 {
	position: relative;
	width: 1340px;
	max-width: 100%;
	margin: 0 auto 3rem;
	padding: 0 20px;
}
#Events > h2::after {
	position: absolute;
	content: "";
	bottom: 35%;
	width: 120px;
	height: 1px;
	margin-left: 20px;
	background: var(--primary-text-color);
}

#Events .inner {
	display: grid;
	grid-template-columns: 7fr 4fr;
	gap: 30px 40px;
	align-items: center;
	width: 1160px;
	max-width: 100%;
	margin: 0 auto;
	padding-left: 20px;
	padding-right: 20px;
}
@media screen and (max-width: 1000px) {
	#Events .inner {
		grid-template-columns: 4fr 3fr;
	}
}
@media screen and (max-width: 736px) {
	#Events .inner {
		grid-template-columns: 1fr;
	}
}

#Events .inner:nth-child(n+2) {
	margin-top: 35px;
}

#Events h3 {
	font-weight: 800;
	margin: 0;
}

#Events h3 span {
	display: block;
	font-size: 1.375rem;
}

#Events p.ev-date {
	margin-top: 1rem;
	font-size: 1.25rem;
	font-weight: 800;
	line-height: 1.4;
}

#Events p.ev-date > span {
	display: block;
	color: #B16965;
	font-size: 0.875rem;
}

#Events p.ev-date+p {
	font-size: 0.9375rem;
	font-weight: 800;
	line-height: 1.4;
}

#Events p.ev-date+p > small {
	display: block;
	font-weight: 600;
	color: #477085;
}

#Events a.link-button {
	margin-top: 1.625rem;
}

#Events h4, #Events h4+p {
	width: 1160px;
	max-width: 100%;
}

#Events h4 {
	margin: 1.5rem auto 0.75rem;
	padding-left: 20px;
	padding-right: 20px;
	font-size: 1.125rem;
	font-weight: 700;
}

#Events h4+p {
	margin: 0 auto;
	padding-left: 20px;
	padding-right: 20px;
	font-size: 0.875rem;
	line-height: 1.7;
}
@media screen and (min-width: 1000px) {
	#Events h4+p {
		padding-left: 80px;
		padding-right: 80px;
	}
}

/*----------------------------------------------------------------------
2024_1108追加
-----------------------------------------------------------------------*/
#Viewing {
	padding-bottom: 60px;
}
@media screen and (max-width: 736px) {
	#Viewing {
		padding-top: 50px;
	}
}

#News {
	padding: 60px 0 80px;
}
@media screen and (max-width: 736px) {
	#News {
		padding: 50px 0 80px;
	}
}

ul.news-content li {
	font-weight: 600;
}

.news-content li a {
	display: block;
	font-weight: 400;
}

@media screen and (min-width: 900px) {
	.news-content li a {
		margin-left: 20px;
	}
}

footer {
	margin-top: 0;
}
