@charset "utf-8";

/*
===== universal reset =================================
*/
*:not(ul):not(ol) {
	margin:0;
	padding:0;
}

*, *:before, *:after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
}

/*
===== body and base setting ===========================
*/

body {
	margin:0;
	padding:0;
	font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Yu Gothic", YuGothic, "ヒラギノ角ゴ ProN W3", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif;
}

/* general params
--------------------*/

img {
	width:100%;
	border:none;
	vertical-align:bottom;
}

h2.entry-title {
	padding:18px;
	text-align:center;
	font-size:2rem;
	font-family: "ta-kakugo-gf-03", sans-serif;
	font-weight: 400;
}

#content {
		h2,h3,h4 {
		font-family: "ta-kakugo-gf-03", sans-serif;
		font-weight: 400;
		font-style: normal;
		margin-bottom: 1.2em;
	}
}

#content h2 {
	font-size:2.6em;
	line-height:1.2em;
}

@media screen and (max-width: 768px) {
	#content h2 {
	font-size:1.8em;
}
}

.description p {
	margin-bottom:1.8em;
}

@media screen and (min-width: 769px) {
	.description > p {
		font-size:140%;
		font-weight:600;
		color: #746969;
		text-align:center;
	}
}

#content {
	p:last-child,
	ul:last-child{
		margin-bottom:0;
	}
}

@media screen and (max-width: 768px) {
	#content h2 br,
	#content p br {
		display:none;
	}
}

/*
===== header ===========================
*/

header {
	position:absolute;
	top:0;
	left:0;
	width:100%;
	/* height:64px; */
}

header .inn {
	margin:16px auto;
	padding:0 8px;
	max-width:1300px;
	display:flex;
	justify-content:space-between;
}

h1 a {
	display:block;
	width: min(30vw, 240px);
	aspect-ratio: 50 / 9;
	background:url(images/d_logo.png)  no-repeat;
	background-size:contain;
	text-indent:-9999px;
}

/*
===== cover ===========================
*/
.cover {
	width: 100%;
	height: 100vh;
	background-image:url(images/film.jpg),url(images/gopro.png),url(images/cover.jpg);
	background-repeat:repeat-x,no-repeat,no-repeat;
	background-position:bottom,left bottom,center;
	background-size:60%,24%,cover;
}

@media screen and (max-width: 768px) {
	.cover {
		background-position:bottom,left 400px,center;
		background-size:80%,90%,cover;
	}
}

.cover .inn {
	height: 100vh;
	display:flex;
	align-items: center;
	justify-content: center;
	flex-flow: column;
}

.cover .inn h2 {
	font-size:clamp(3rem, 1.041rem + 9.8vw, 9rem);
	font-family: "ta-kakugo-gf-02", sans-serif;
	font-weight: 400;
	font-style: normal;
	color:#fff;
}

.cover .inn p {
	font-size:clamp(1.6rem, 0.02rem + 4.9vw, 4rem);
	font-family: "ta-kakugo-gf-03", sans-serif;
	font-weight: 400;
	font-style: normal;
	color:#fff;
}

/*
===== link setting ===========================
*/

a:hover img {
	opacity:0.8;
}

a.contact,
.btn a {
	display:block;
	padding:6px 20px;
	text-decoration:none;
	color:#fff;
	font-size:min(2.8vw,20px);
	background:#148102;
	border-radius:24px;
	font-family: "ta-kakugo-gf-03", sans-serif;
	font-weight: 400;
	font-style: normal;
}

a.contact:hover,
.btn a:hover {
	color:#000;
	background:#fdff02;
}

header .inn a.contact {
	padding:6px 20px;
	text-decoration:none;
	font-size:min(2.8vw,20px);
}

.btn a {
	margin-top:120px;
	padding:6px 20px;
	text-decoration:none;
	font-size:min(20vw,24px);
	text-align:center;
}

#content .inn  a.contact {
	margin:64px auto 32px;
	padding:14px 8px;
	width:24%;
	text-decoration:none;
	text-align:center;
	border-radius:44px;
}

a.contact.detail {
	background:#39a7e0;
}

#content .inn  a.contact.detail {
	margin:64px auto 32px;
	padding:16px 20px;
	width:40%;
	text-decoration:none;
	text-align:center;
	font-size:120%;
	border-radius:44px;
}

a.contact.detail:hover {
	background:#fdff02;
}

@media screen and (max-width: 768px) {
	#content .inn  a.contact {
		margin:64px auto 32px;
		padding:16px 20px;
		width:100%;
		font-size:120%;
		border-radius:44px;
	}

	#content .inn  a.contact.detail {
		padding:12px;
		width:100%;
		font-size:120%;
	}
}

/*botup*/
#botup {
	position:fixed;
	bottom:120px;
	right:16px;
	z-index: 998;
}

#botup a {
	display:
	table-cell;
	width:45px;
	height:45px;
	font-size:16px;
	text-align:
	center;
	color: #ffffff;
	text-decoration:
	none;
	vertical-align: middle;
	border-radius:50%;
	background: #148101;
}

#botup a:hover {
	color:#000;
	background: #fdff02;
}

/*
===== layout setting ===========================
*/
#page {
	position:absolute;
	top:0;
	left:0;
	width:100%;
}

.wrapper {
	margin-top:80px;
}

.home .wrapper {
	margin-top:0;
}

#content .inn {
	padding:80px 16px;
		h2,h4 {
			text-align:center;
		}
}

#content .inn:nth-child(odd) {
	background: #f1f9f0;
}

#content .inn:nth-child(even) {
	background:#fff;
}

#content .inn > section {
	position:relative;
	margin:0 auto;
	max-width:1200px;
}

#content .inn.sample {
	/* background:url(images/bg_sample.jpg) no-repeat; */
	background-size:cover;
}

/*
===== form setting ===========================
*/
#contact table {
	width:100%;
	font-size:1.2em;
}

#contact table th {
	padding:8px;
	font-weight:normal;
	background:#f1f9f1;
}

#contact table td {
	padding:8px;
	background:#fff;
}

@media screen and (min-width: 769px) {
	#contact table th {
		width:20%;
	}
}

@media screen and (max-width: 768px) {
	#contact table th,
	#contact table td {
		display:block;
	}
}

.require {
	color:#c00;
}

input[type="text"],
input[type="email"],
textarea {
	font-size:110%;
	width:100%;
}

p:has(input[type="submit"]),
p:has(input[type="reset"]) {
	text-align:center;
}

input[type="submit"],
input[type="reset"] {
	font-family: "ta-kakugo-gf-03", sans-serif;
	font-weight: 400;
	font-style: normal;
	color:#fff;
	background:#148101;
	border:none;
}

input[type="submit"] {
	margin:48px 0 0;
	padding:24px 120px;
	font-size:24px;
	border-radius:36px;
}

input[type="reset"] {
	margin:24px 0 0;
	padding:10px 24px;
	font-size:14px;
	border-radius:36px;
}

input[type="submit"]:hover,
input[type="reset"]:hover {
	cursor:pointer;
	color:#000;
	background:#fdff02;
}

/*================== footer ======================*/
footer {
	display:flex;
	width:100%;
	aspect-ratio: 16 / 6;
	background:url(images/camera.jpg) bottom no-repeat;
	background-size:cover;
}

footer .inn {
	position:absolute;
	bottom:0;
	margin:8px;
	padding:8px;
	/* width:100%; */
	font-size:80%;
	background:rgba(255,255,255,0.6);
	border:dashed 1px;
}

footer .inn a {
	font-size:1.6em;
	font-weight:600;
	color:#148101;
	text-decoration:none;
}

footer a:hover {
	text-decoration:underline;
}

/*========== other setting ===================*/
.attention {
	color:#000;
	background:linear-gradient(transparent 60%, #ff9bbd 60%);
}

.caution {
	font-size:100% !important;
	color:#c00 !important;
}

.detail {
	display:flex;
	justify-content:space-between;
}

.detail div {
	margin-bottom:16px;
	padding:16px;
	width:32%;
	background:#fff;
		h4 {
			margin-bottom:0.4em !important;
			font-size:1.4em;
		}
		h4:before {
			content:"";
			display:inline-block;
			width:36px;
			height:30px;
			background:url(images/i_thumsup.png) no-repeat;
			background-size:contain;
		}
		p {
			text-align:left !important;
		}
}

@media screen and (max-width: 769px) {
	.detail div {
		width:100%;
	}
	.detail {
		flex-flow: column;
	}
}

.mv > div {
	background:#ff6;
}

.mv div h4:before {
	display:none;
}

.fadein {
	opacity: 0;
	transform: translateY(30px);
	transition-property: transform, opacity;
	transition-duration: 1.5s;
	transition-delay: 0s;
}

.fadein.is-active {
	opacity: 1;
	transform: translateY(0);
}

/*======================動画用==========================*/
iframe[src*="youtube.com"],
iframe[src*="youtube-nocookie.com"] {
	aspect-ratio: 16 / 9;
	width: 100%;
	height: auto;
}

/*======================テンプレで制御できないやつ==========================*/
body:not(.page-id-7)  h1 a {
	background:url(images/d_logo_b.png)  no-repeat;
	background-size:contain;
}

body:not(.page-id-7) header {
	border-bottom:solid 1px #ccc;;
}

body:not(.page-id-7)  #content .inn {
	background:none;
}

/*フォームありがとう画面*/
.page-id-54 header .inn div  {
	display:none;
}

#post-54 section {
	display:flex;
	align-items: center;
	justify-content: center;
	flex-flow: column;
}