@charset "utf-8";

/*============================================================
	RESET
*/
* {
	margin: 0;
	padding: 0;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	background-color: transparent;
	background-image: none;
	background-position: 0 0;
	background-repeat: no-repeat;
	text-decoration: none;
	text-indent: 0;
	text-transform: none;
	font-style: normal;
	font-size: inherit;
    font-family: inherit;
    font-weight: inherit;
	line-height: inherit;
	color: inherit;
}
ul {
	list-style-type: none;
}
a {
	outline: 0;
	cursor: pointer;
}
img {
	display: block;
	width: 100%;
	height: auto;
}
button {
	outline: 0;
	border: 0;
	background: transparent;
	-webkit-appearance: none;
	appearance: none;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
	text-decoration: none;
	cursor: pointer;
}

/*============================================================
	BODY
*/
body {
	font-family: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "メイリオ", "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
	font-weight: 500;
}
.body {
	overflow: hidden;
}
h2,
h3,
h4 {
	font-weight: 700;
}
@media screen and (min-width: 768px) {
	.body {
		min-width: 1000px;
	}
}

/*============================================================
	CONTAINER
*/
.container {
	position: relative;
	margin: 0 auto;
	padding: 0 50px;
	max-width: 1100px;
}
@media screen and (max-width: 767px) {
	.container {
		padding: 0;
	}
}

/*============================================================
	HEADER
*/
header {
	padding: 20px 0;
}
header a {
	display: block;
	margin: 0 auto;
	width: 116px;
}
@media (max-width: 640px) {
    header {
        padding: 3.46667vw 0;
    }
    header a {
        width: 22.93333vw;
    }
}

/*============================================================
	FOOTER
*/
footer {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 120px;
}
footer small {
	display: block;
	font-size: 12px;
}
@media screen and (max-width: 767px) {
	footer {
		height: 21.3vw;
	}
	footer small {
		font-size: 3vw;
	}
}

/*============================================================
	メイン
*/
.main-wrapper {
	padding: 0 0 80px 0;
	background-color: #eaf5f1;
}
.main {
	position: relative;
	display: flex;
	align-items: center;
	margin: 0 0 50px 0;
	height: 650px;
}
.main .kv {
	overflow: hidden;
	position: absolute;
	top: 0;
	left: 50px;
	right: 0;
	height: 100%;
}
.main .kv span {
	display: block;
	width: 100%;
	height: 100%;
	background-position: 50% 20%;
	background-image: url('../img/pic_main.jpg');
	background-size: cover;
}
.main .vol {
	position: absolute;
	z-index: 1;
	top: 10px;
	right: 20px;
	width: 400px;
}
.main .headline {
	position: relative;
	background-color: rgba(255,255,255,0.6);
	box-shadow: 0 0 20px rgba(0,0,0,0.3);
}
.main .headline h1 {
	width: 380px;
}
@media screen and (min-width: 1400px) {
	.main {
		height: 650px;
		height: 46.428vw;
	}
}
@media screen and (max-width: 767px) {
	.main-wrapper {
		padding: 0 0 5.33vw 0;
	}
	.main {
		display: block;
		margin: 0;
		height: auto;
	}
	.main .kv {
		position: relative;
		left: 2.66vw;
		height: 85.33vw;
	}
	.main .kv span {
		background-position: 50% 50%;
	}
	.main .vol {
		position: static;
		width: 100%;
	}
	.main .headline {
		background-color: transparent;
		box-shadow: 0 0 0 rgba(0,0,0,0);
	}
	.main .headline h1 {
		width: 100%;
	}
}

/*============================================================
	バナー
*/
.banner a {
	display: block;
	margin: 0 auto;
	position: relative;
	max-width: 980px;
}
.banner a .base {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
}
/* .banner a .base::before {
	content: '';
	display: block;
	position: absolute;
	top: 30%;
	right: 1.98%;
	left: 1.98%;
	bottom: 0;
	border-radius: 10px;
	box-shadow: 0 10px 20px rgba(0,0,0,0.5);
	background-color: rgba(0,0,0,0.5);
} */
.os-pc .banner a .base {
	transition: opacity linear 0.2s;
}
.os-pc .banner a:hover .base {
	opacity: 0.7;
}
.banner a > span {
	display: block;
	position: relative;
}
.banner a img {
	position: relative;
}
.banner a .sp {
	display: none;
}
.banner a .book {
	position: absolute;
	top: 46%;
	left: 3.4%;
	width: 12.2%;
	box-shadow: 5px 5px 10px rgba(0,0,0,0.16);
	transform: translate(0, -50%);
}
@media screen and (min-width: 768px) {
	.banner a:hover .hover {
		opacity: 1;
	}
}
@media screen and (max-width: 767px) {
	.banner {
		padding: 0 2.66vw;
	}
	.banner a::before {
		content: '';
		display: block;
		position: absolute;
		top: 0;
		right: 0;
		left: 0;
		bottom: 0;
		box-shadow: 0 0 2.66vw rgba(0,0,0,0.3);
		background-color: rgba(0,0,0,0.3);
	}
	.banner a .pc {
		display: none;
	}
	.banner a .sp {
		display: block;
	}
	.banner a .book {
		top: 4.6%;
		left: 5.8%;
		width: 18.4%;
		box-shadow: 1.3vw 1.3vw 2.6vw rgba(0,0,0,0.16);
		transform: translate(0, 0);
	}
}

/*============================================================
	CV
*/
.cv {
	margin: 45px 0 60px 0;
}
@media screen and (max-width: 767px) {
	.cv {
		margin: 0 0 12vw 0;
	}
}

/*============================================================
	ギャラリー
*/
.gallery {
	position: relative;
	margin: 60px 0 60px 0;
}
.gallery .slider {
	overflow: hidden;
	margin: 0 0 -58px 0;
	width: 100%;
}
.gallery .slider .block {
	width: 80vw;
}
@media screen and (min-width: 1400px) {
	.gallery .slider .block {
		width: 1120px;
	}
}
.gallery .slider .block span {
	position: relative;
	display: block;
	height: 600px;
}
.gallery .slider .block span img {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.gallery .slider .slick-arrow {
	display: block;
	overflow: hidden;
	position: absolute;
	z-index: 10;
	top: 50%;
	margin: -40px 0 0 0;
	width: 80px;
	height: 80px;
	background-position: 50% 50%;
	background-repeat: no-repeat;
	background-color: #000;
	background-size: 25px 25px;
	text-indent: -999em;
}
.gallery .slider .slick-prev {
	left: 0;
	background-image: url('../img/arrow_prev.svg');
}
.gallery .slider .slick-next {
	right: 0;
	background-image: url('../img/arrow_next.svg');
}
.gallery .heading {
	display: flex;
	position: relative;
	z-index: 1;
	margin: 0 0 -145px 0;
}
.gallery .heading .frame {
	margin: 0 0 0 -30px;
	padding: 35px 40px 40px 40px;
	background-color: rgba(255,255,255,0.6);
	box-shadow: 0 5px 20px rgba(0,0,0,0.15);
}
.gallery .heading h2 {
	max-width: 634px;
}
.gallery .heading h2 br.sp {
	display: none;
}
.gallery .heading .tags {
	margin: 15px 0 0 0;
	font-size: 12px;
	line-height: 1.5;
}
.gallery .heading .tags ul {
	display: flex;
	justify-content: flex-end;
}
.gallery .heading .tags ul li {
	padding: 0 0 0 10px;
}
.gallery .heading .tags ul li div {
	padding: 0.5em 1.5em;
	border: 1px solid #000;
	border-radius: 5px;
}
.gallery .thumb {
}
.gallery .thumb ul {
	display: flex;
	padding: 0 25px;
}
.gallery .thumb ul li {
	flex-basis: 20%;
	padding: 0 5px;
}
.gallery .thumb ul li a {
	position: relative;
	display: block;
	background-color: #fff;
	box-shadow: 0 3px 10px rgba(0,0,0,0.15);
}
.gallery .thumb ul li a img {
	display: block;
}
.gallery .thumb ul li a:after {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border: 2px solid #fff;
	transition: border 0.3s ease 0;
}
.gallery .thumb ul li.current a {
	cursor: default;
}
.gallery .thumb ul li.current a img {
	opacity: 1 !important;
}
.gallery .thumb ul li.current a:after {
	border: 3px solid #008c4f;
}
.gallery .lead {
	margin: 25px 0 0 0;
	font-size: 14px;
	line-height: 2.5;
}
/**/
.os-pc .gallery .slider .slick-arrow {
	transition: background-color 0.3s linear;
}
.os-pc .gallery .slider .slick-arrow:hover {
	background-color: #444;
}
.os-pc .thumb ul li a img {
	transition: opacity 0.3s linear;
}
.os-pc .thumb ul li a:hover img {
	opacity: 0.7;
}
@media screen and (max-width: 767px) {
	.gallery {
		margin: 9.33vw 0 6.66vw 0;
	}
	.gallery .slider {
		position: relative;
		margin: 0 0 -5.8vw 0;
		height: auto;
	}
	.gallery .slider .block {
		width: 86vw;
	}
	.gallery .slider .block span {
		height: 91.2vw;
	}
	.gallery .slider .slick-arrow {
		margin: -6.1vw 0 0 0;
		width: 12.2vw;
		height: 12.2vw;
		background-size: 5vw 5vw;
	}
	.gallery .heading {
		margin: 0 0 -20vw 0;
		padding: 0 2.66vw;
	}
	.gallery .heading .frame {
		float: none;
		margin: 0;
		padding: 5.33vw 5.33vw 5.33vw 5.33vw;
		box-shadow: 0 5px 20px rgba(0,0,0,0.15);
	}
	.gallery .heading h2 {
		font-size: 8.5vw;
		line-height: 1.3;
	}
	.gallery .heading h2 br.pc {
		display: none;
	}
	.gallery .heading h2 br.sp {
		display: block;
	}
	.gallery .heading .tags {
		margin: 3.6vw 0 0 0;
		font-size: 3.2vw;
	}
	.gallery .heading .tags ul {
		justify-content: flex-start;
	}
	.gallery .heading .tags ul li {
		padding: 0 2.66vw 0 0;
	}
	.gallery .heading .tags ul li div {
		border-radius: 5px;
	}
	.gallery .thumb {
		padding: 0 2.66vw;
	}
	.gallery .thumb ul {
		margin: 0 -0.5vw;
		padding: 0;
	}
	.gallery .thumb ul li {
		padding: 0 0.5vw;
	}
	.gallery .thumb ul li a {
		box-shadow: 0 3px 10px rgba(0,0,0,0.15);
	}
	.gallery .thumb ul li.current a:after {
		border-width: 2px;
	}
	.gallery .lead {
		margin: 4vw 0 0 0;
		padding: 0 2.66vw;
		font-size: 4vw;
		line-height: 2;
	}
}

/*============================================================
	セクション
*/
.section {
	position: relative;
	display: flex;
	margin: 100px 0 60px 0;
}
.section .base {
	overflow: hidden;
	position: absolute;
	top: 60px;
	left: 0;
	width: 100%;
	height: 730px;
}
@media screen and (min-width: 1600px) {
	.section .base {
		height: 45.625vw;
	}
}
.section .base span {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
	background-size: cover;
}
.section01 .base span {
	background-image: url('../img/pic_01_01.jpg');
	background-position: 50% 50%;
}
.section02 .base span {
	background-image: url('../img/pic_02_01.jpg');
	background-position: 10% 50%;
}
.section03 .base span {
	background-image: url('../img/pic_03_01.jpg');
	background-position: 50% 50%;
}
.section .wrap {
	position: relative;
	width: 530px;
}
.section .heading .frame {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0 0 50px 0;
	padding: 35px 40px 30px 40px;
	min-height: 420px;
	background-color: rgba(255,255,255,0.6);
	box-shadow: 0 5px 20px rgba(0,0,0,0.15);
}
.section01 .heading h2 {
	width: 390px;
}
.section02 .heading h2 {
	width: 256px;
}
.section03 .heading h2 {
	width: 256px;
}
.section .heading .lead {
	margin: 10px 0 0 0;
	font-size: 18px;
	line-height: 2;
}
.section .grid {
	display: flex;
}
.section .grid .col span {
	display: block;
	width: 280px;
}
@media screen and (min-width: 1400px) {
	.section .grid .col span {
		width: 20vw;
	}
}
.section-right {
	justify-content: flex-end;
}
.section-right .base {
	padding: 0 400px 0 0;
}
.section-right .grid {
	justify-content: flex-end;
	padding: 0 50px 0 0;
}
.section-right .grid .col {
	padding: 0 0 0 10px;
}
.section-left .base {
	padding: 0 0 0 400px;
}
.section-left .grid {
	padding: 0 0 0 50px;
}
.section-left .grid .col {
	padding: 0 10px 0 0;
}
/**/
@media screen and (max-width: 767px) {
	.section {
		display: block;
		margin: 8vw 0 16vw 0;
		padding: 0;
	}
	.section::before {
		top: 0;
		bottom: 21vw;
		height: auto;
	}
	.section .base {
		position: relative;
		top: 0;
		padding: 0 !important;
		height: 104.2vw;
	}
	.section .wrap {
		padding: 0 2.66vw;
		width: auto;
		min-height: initial;
	}
	.section .heading {
		margin: -13.3vw 0 4vw 0;
		padding: 0 !important;
	}
	.section .heading .frame {
		margin: 0;
		padding: 7vw 2.66vw;
		min-height: initial;
		box-shadow: 0 5px 20px rgba(0,0,0,0.15);
	}
	.section01 .heading h2 {
		width: 65.06vw;
	}
	.section02 .heading h2 {
		width: 84.8vw;
	}
	.section03 .heading h2 {
		width: 84.8vw;
	}
	.section .heading .lead {
		margin: 1vw 1vw 0 1vw;
		font-size: 4vw;
		line-height: 2;
	}
	.section .grid {
		margin: 0 -2vw;
		padding: 0;
	}
	.section .grid .col {
		padding: 0 2vw;
	}
	.section .grid .col span {
		width: 100%;
	}
}

/*============================================================
	その他の実例集はこちら
*/
.other {
	margin: 60px 0 0 0;
}
.other a {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 110px;
}
.other a::before {
	content: '';
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	border: 10px solid #e3e97e;
	opacity: 0.8;
	transition: all linear 0.2s;
}
.other img {
	position: relative;
	width: 440px;
}
@media screen and (min-width: 768px) {
	.os-pc .other a:hover::before {
		background-color: #f4ff7a;
		opacity: 1;
	}
}
@media screen and (max-width: 767px) {
	.other {
		margin: 5.33vw 0 0 0;
		padding: 0 5.33vw;
	}
	.other a {
		height: auto;
	}
	.other img {
		width: 100%;
	}
}