#SCT2 .box:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
#SCT2 .box {
zoom: 1;
}

/* CONTENTS */
#VISUAL {
overflow: hidden;
position: relative;
background-color: #fff;
padding: 0 0 20px 0;
}
#VISUAL::before {
content: '';
display: block;
position: absolute;
left: 0;
top: 0;
background-color: #f2f2f2;
height: 100%;
}
.initView #VISUAL::before {
transition: width 1s ease;
transition-delay: 0.3s;
width: 0;
}
.activeView #VISUAL::before {
width: 100%;
}
#VISUAL .bg {
transform: translateX(100%);
padding: 0 0 0 0;
}
.initView #VISUAL .bg {
transition: transform 1s ease;
transition-delay: 0.6s;
}
.activeView #VISUAL .bg {
transform: translateX(0);
}
#VISUAL img {
width: 100%;
height: auto;
}
#VISUAL .catch {
outline: 1px solid transparent;
position: relative;
margin: -20px 20px 0 0;
background-color: #fff;
padding: 20px;
text-align: left;
transform: scale(1.2);
opacity: 0;
}
.initView #VISUAL .catch {
transition: all 1.5s ease;
transition-delay: 1.5s;
opacity: 0;
}
.activeView #VISUAL .catch {
transform: scale(1);
opacity: 1;
}
#VISUAL .catch h3 {
font-family: garamond-premier-pro, serif;
font-style: normal;
font-weight: 400;
font-size: 32px;
letter-spacing: 0.1em;
line-height: 1.2;
}
#VISUAL .catch h3 span {
display: inline-block;
}
#VISUAL .catch p {
font-size: 16px;
line-height: 2;
}
#VISUAL .catch p.lnk {
margin-top: 10px;
font-size: 16px;
font-weight: 700;
line-height: 1.2;
text-align: right;
}
#VISUAL .catch p.lnk a {
transition: all 0.5s ease;
background: linear-gradient(#BF3939, #BF3939) 0 100%/0 3px no-repeat;
padding-bottom: 3px;
text-decoration: none;
color: #333;
}
#VISUAL .catch p.lnk a:hover {
background-size: 100% 3px;
}
#VISUAL .catch p.lnk a::after {
content: 'keyboard_double_arrow_right';
display: inline-block;
margin-left: 5px;
font-family: "Material Symbols Outlined";
font-weight: normal;
font-style: normal;
line-height: 1;
vertical-align: -0.15em;
font-size: 16px;
color: #BF3939;
}
.fade-slide img {
transform: scale(1.2);
transition: .8s cubic-bezier(.645, .045, .355, 1);
}
.fade-slide.is-current img {
transform: scale(1);
}
@media (min-width: 769px) {
	#VISUAL {
	position: relative;
	padding: 0 0 0 0;
	height: 520px;
	}
	#VISUAL .bg {
	position: absolute;
	right: 0;
	top: 0;
	box-sizing: border-box;
	max-width: 800px;
	}
	#VISUAL img {
	width: 800px;
	height: 520px;
	}
	#VISUAL .cont {
	margin: 0 auto;
	max-width: 1200px;
	}
	#VISUAL .catch {
	box-sizing: border-box;
	margin: 80px 0 0 50px;
	width: 460px;
	}
	#VISUAL .catch h3 {
	font-size: 48px;
	}
	#VISUAL .catch p {
	line-height: 2.25;
	}
}
@media (min-width: 1300px) {
	#VISUAL .catch {
	width: 700px;
	}
}

#SERVICE {
overflow: hidden;
position: relative;
background-color: #fff;
padding-bottom: 20px;
}
#SERVICE::before {
box-sizing: border-box;
transition: all 1s ease;
transition-delay: 1s;
content: '';
display: block;
position: absolute;
left: 0;
top: 0;
background-color: #f2f2f2;
width: 50%;
}
.initView #SERVICE::before {
height: 0;
}
.activeView #SERVICE::before {
height: 100%;
}
#TOPICS .head,
#WORKS .head,
#SERVICE .head {
position: relative;
padding: 40px 20px;
}
#TOPICS .head .en,
#WORKS .head .en,
#SERVICE .head .en {
font-family: garamond-premier-pro, serif;
font-style: normal;
font-weight: 400;
font-size: 36px;
letter-spacing: 0.1em;
line-height: 1.2;
}
#TOPICS .head .en::before,
#WORKS .head .en::before,
#SERVICE .head .en::before {
content: '';
display: block;
background-color: #333;
margin: 0 auto 20px auto;
width: 2px;
height: 50px;
}
#TOPICS .head h2,
#WORKS .head h2,
#SERVICE .head h2 {
font-size: 16px;
font-weight: 700;
}
#TOPICS .head h2::before,
#WORKS .head h2::before,
#SERVICE .head h2::before {
content: '';
display: block;
background-color: #bcbf56;
margin: 0 auto 10px auto;
width: 40px;
height: 3px;
}
#TOPICS .head .lead,
#WORKS .head .lead,
#SERVICE .head .lead {
margin-top: 20px;
font-size: 16px;
line-height: 1.5;
text-align: left;
}
#WORKS .cont,
#SERVICE .cont {
padding: 0 20px;
text-align: left;
}
#WORKS .block,
#SERVICE .block {
padding-bottom: 40px;
}
#WORKS .pack,
#SERVICE .pack {
cursor: pointer;
}
#SERVICE .block:nth-child(odd) .image {
margin-right: -20px;
}
#SERVICE .block:nth-child(even) .image {
margin-left: -20px;
}
#TOPICS .block .image,
#SERVICE .block .image {
display: block;
position: relative;
overflow: hidden;
}
#TOPICS .block .image:before,
#TOPICS .block .image:after,
#SERVICE .block .image:before,
#SERVICE .block .image:after {
transition: all 0.5s ease;
content: '';
position: absolute;
background-color: #fff;
height: 2px;
width: 100%;
z-index: 1;
}
#TOPICS .block .image:before,
#SERVICE .block .image:before {
top: 10px;
left: 0;
transform: translateX(100%);
}
#TOPICS .block .image:after,
#SERVICE .block .image:after {
bottom: 10px;
right: 0;
transform: translateX(-100%);
}
#TOPICS .block .image a,
#SERVICE .block .image a {
display: block;
}
#TOPICS .block .image a:before,
#TOPICS .block .image a:after,
#SERVICE .block .image a:before,
#SERVICE .block .image a:after {
transition: all 0.5s ease;
content: '';
position: absolute;
background-color: #fff;
width: 2px;
height: 100%;
z-index: 1;
}
#TOPICS .block .image a:before,
#SERVICE .block .image a:before {
top: 0;
left: 10px;
transform: translateY(100%);
}
#TOPICS .block .image a:after,
#SERVICE .block .image a:after {
bottom: 0;
right: 10px;
transform: translateY(-100%);
}
#TOPICS .block.hover .image a:before,
#TOPICS .block.hover .image a:after,
#TOPICS .block.hover .image:before,
#TOPICS .block.hover .image:after,
#TOPICS .block .image:hover a:before,
#TOPICS .block .image:hover a:after,
#TOPICS .block .image:hover:before,
#TOPICS .block .image:hover:after,
#SERVICE .pack.hover .image a:before,
#SERVICE .pack.hover .image a:after,
#SERVICE .pack.hover .image:before,
#SERVICE .pack.hover .image:after,
#SERVICE .block .image:hover a:before,
#SERVICE .block .image:hover a:after,
#SERVICE .block .image:hover:before,
#SERVICE .block .image:hover:after {
transform: translate(0, 0);
}
#TOPICS .block img,
#SERVICE .block img {
transition: transform 0.5s ease;
width: 100%;
height: auto;
}
#TOPICS .block.hover a img,
#TOPICS .block a:hover img,
#SERVICE .pack.hover a img,
#SERVICE .block a:hover img {
transform: scale(1.1) rotate(3deg);
}
#WORKS .block h3,
#SERVICE .block h3 {
margin-top: 15px;
font-size: 18px;
font-weight: 700;
line-height: 1.5;
}
#WORKS .block h3 a,
#SERVICE .block h3 a {
transition: all 0.5s ease;
background: linear-gradient(#BF3939, #BF3939) 0 100%/0 3px no-repeat;
padding-bottom: 3px;
text-decoration: none;
color: #333;
}
#WORKS .pack.hover h3 a,
#WORKS h3 a:hover,
#SERVICE .pack.hover h3 a,
#SERVICE h3 a:hover {
background-size: 100% 3px;
}
#WORKS .block h3 a::after,
#SERVICE .block h3 a::after {
position: relative;
top: 0;
content: 'keyboard_double_arrow_right';
display: inline-block;
margin-left: 5px;
font-family: "Material Symbols Outlined";
font-weight: normal;
font-style: normal;
line-height: 1;
vertical-align: -0.15em;
font-size: 16px;
color: #BF3939;
}
#WORKS .block p,
#SERVICE .block p {
margin-top: 10px;
font-size: 14px;
line-height: 1.5;
}
@media (min-width: 769px) {
	#SERVICE {
	padding-bottom: 40px;
	}
	#TOPICS .head,
	#WORKS .head,
	#SERVICE .head {
	box-sizing: border-box;
	margin: 0 auto;
	padding: 40px 50px;
	max-width: 1200px;
	}
	#TOPICS .head .en,
	#WORKS .head .en,
	#SERVICE .head .en {
	font-size: 48px;
	}
	#WORKS .cont,
	#SERVICE .cont {
	box-sizing: border-box;
	margin: 0 auto;
	padding: 0 50px;
	max-width: 1200px;
	}
	#WORKS .list,
	#SERVICE .list {
	display: flex;
	flex-wrap: wrap;
	}
	#WORKS .block,
	#SERVICE .block {
	box-sizing: border-box;
	padding-bottom: 40px;
	width: 50%;
	float: left;
	}
	#WORKS .block:nth-child(odd),
	#SERVICE .block:nth-child(odd) {
	padding-right: 25px;
	}
	#WORKS .block:nth-child(even),
	#SERVICE .block:nth-child(even) {
	padding-left: 25px;
	}
	#WORKS .block:nth-child(odd) .image,
	#SERVICE .block:nth-child(odd) .image {
	margin-right: 0;
	}
	#WORKS .block:nth-child(even) .image,
	#SERVICE .block:nth-child(even) .image {
	margin-left: 0;
	}
	#WORKS .block img,
	#SERVICE .block img {
	width: 100%;
	height: auto;
	}
	#WORKS .block h3,
	#SERVICE .block h3 {
	margin-top: 20px;
	font-size: 24px;
	}
	#WORKS .block h3 a::after,
	#SERVICE .block h3 a::after {
	top: -2px;
	}
	#WORKS .block p,
	#SERVICE .block p {
	margin-top: 20px;
	font-size: 16px;
	}
}

#WORKS {
overflow: hidden;
position: relative;
background-color: #f2f2f2;
padding-bottom: 20px;
}
#WORKS::before {
box-sizing: border-box;
transition: all 1s ease;
transition-delay: 0.3s;
content: '';
display: block;
position: absolute;
left: 0;
top: 0;
background-color: #fff;
width: 50%;
}
.initView #WORKS::before {
height: 0;
}
.activeView #WORKS::before {
height: 100%;
}
#WORKS .list {
padding-bottom: 20px;
}
#WORKS .block .image {
position: relative;
}
#WORKS .block .image::before {
transition: opacity 0.5s ease;
content: "";
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: radial-gradient(rgba(0, 0, 0, 0.5) 0% 10%, rgba(0, 0, 0, 0) 60% 100%);
opacity: 0;
z-index: -1;
}
#WORKS .pack.hover .image::before,
#WORKS .block .image:hover::before {
opacity: 1;
}
#WORKS .block img {
width: 100%;
height: auto;
}
#TOPICS .more,
#WORKS .more,
#SERVICE .more {
position: relative;
overflow: hidden;
background-color: #7c8c42;
font-size: 16px;
}
#SERVICE .more {
margin: 40px auto 0 auto;
width: 60%;
}
#TOPICS .more a,
#WORKS .more a,
#SERVICE .more a {
position: relative;
display: block;
height: 60px;
line-height: 60px;
text-align: center;
color: #fff;
text-decoration: none;
}
#TOPICS .more a::after,
#WORKS .more a::after,
#SERVICE .more a::after {
content: 'keyboard_double_arrow_right';
display: inline-block;
margin-left: 5px;
font-family: "Material Symbols Outlined";
font-weight: normal;
font-style: normal;
line-height: 1;
vertical-align: -0.15em;
font-size: 16px;
line-height: 60px;
color: #fff;
}
#TOPICS .more:before,
#WORKS .more:before,
#SERVICE .more:before {
transition: all 0.3s ease;
content: "";
position: absolute;
top: 0;
right: -50px;
bottom: 0;
left: 0;
border-right: 50px solid transparent;
border-bottom: 60px solid #bf3939;
transform: translateX(-100%);
}
#TOPICS .more:hover:before,
#WORKS .more:hover:before,
#SERVICE .more:hover:before {
transform: translateX(0);
}
@media (min-width: 769px) {
	#WORKS {
	padding-bottom: 40px;
	}
	#WORKS .head .lead {
	text-align: center;
	}
}

#TOPICS {
overflow: hidden;
position: relative;
background-color: #bcbf56;
padding-bottom: 20px;
}
#TOPICS .head h2::before {
background-color: #7c8c42;
}
#TOPICS .cont {
padding: 0 20px;
text-align: left;
}
#TOPICS .list {
padding-bottom: 20px;
}
#TOPICS .block {
margin-bottom: 30px;
cursor: pointer;
}
#TOPICS .image {
padding-left: 0;
text-align: center;
font-size: 0;
line-height: 0;
}
#TOPICS .image img {
width: 100%;
height: auto;
}
#TOPICS .date {
padding-top: 10px;
font-size: 14px;
font-weight: 700;
}
#TOPICS h3 {
font-size: 18px;
font-weight: 700;
line-height: 1.5;
}
#TOPICS h3 a {
transition: all 0.5s ease;
background: linear-gradient(#BF3939, #BF3939) 0 100%/0 3px no-repeat;
padding-bottom: 3px;
text-decoration: none;
color: #333;
}
#TOPICS .block.hover h3 a,
#TOPICS h3 a:hover {
background-size: 100% 3px;
}
#TOPICS .ctg {
margin-top: 10px;
font-size: 14px;
font-weight: 700;
}
#TOPICS.article {
background-color: #fff;
}
#TOPICS.article .head {
text-align: center;
}
#TOPICS.article .article-image {
overflow: hidden;
margin: 0 20px 30px 20px;
}
#TOPICS.article .article-image img {
display: block;
width: 100%;
height: auto;
}
#TOPICS.article .article-body {
padding: 0 20px 40px 20px;
text-align: left;
}
#TOPICS.article .article-body p {
margin-top: 24px;
font-size: 16px;
line-height: 2;
}
#TOPICS.article .article-body p:first-child {
margin-top: 0;
}
#TOPICS.article .article-body strong {
font-weight: 700;
}
#TOPICS.article .article-body .more {
margin-top: 36px;
}
#TOPICS.article .back {
margin: 0 20px 20px 20px;
font-size: 16px;
}
#TOPICS.article .back a {
color: #333;
font-weight: 700;
text-decoration: none;
}
#TOPICS.article .back a::before {
content: 'keyboard_double_arrow_left';
display: inline-block;
margin-right: 5px;
font-family: "Material Symbols Outlined";
font-weight: normal;
font-style: normal;
line-height: 1;
vertical-align: -0.15em;
color: #BF3939;
}
@media (min-width: 769px) {
	#TOPICS {
	padding-bottom: 40px;
	}
	#TOPICS .head {
	box-sizing: border-box;
	margin: 0 auto;
	padding: 40px 50px;
	max-width: 1200px;
	}
	#TOPICS .head .en {
	font-size: 48px;
	}
	#TOPICS .head .lead {
	text-align: center;
	}
	#TOPICS .cont {
	box-sizing: border-box;
	margin: 0 auto;
	padding: 0 50px;
	max-width: 1200px;
	}
	#TOPICS .block {
	margin-bottom: 30px;
	}
	#TOPICS .image {
	float: right;
	box-sizing: border-box;
	margin-left: 50px;
	width: 265px;
	font-size: 0;
	line-height: 0;
	}
	#TOPICS .image img {
	width: 265px;
	height: auto;
	}
	#TOPICS .date {
	float: left;
	padding-top: 7px;
	font-size: 14px;
	}
	#TOPICS h3 {
	margin-left: 180px;
	font-size: 30px;
	}
	#TOPICS .ctg {
	margin-left: 180px;
	font-size: 14px;
	}
	#TOPICS.article .article-image,
	#TOPICS.article .article-body,
	#TOPICS.article .back {
	box-sizing: border-box;
	margin-right: auto;
	margin-left: auto;
	max-width: 900px;
	}
	#TOPICS.article .article-image {
	margin-bottom: 40px;
	}
	#TOPICS.article .article-body {
	padding-right: 50px;
	padding-left: 50px;
	}
	#TOPICS.article .article-body p {
	font-size: 17px;
	}
	#TOPICS.article .article-body .more {
	margin-right: 0;
	margin-left: 0;
	width: 320px;
	}
}
