@charset "UTF-8";

/* ==========================================================================
 * Root
 * ========================================================================== */
*,
::before,
::after {
	background-repeat: no-repeat;
	box-sizing: border-box;
}
html {
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	font-size: 62.5%;
	overflow-x: hidden;
}
body {
	margin: 0;
}

/* ==========================================================================
 * HTML5 display definitions
 * ========================================================================== */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
	display: block;
}
audio,
canvas,
progress,
video {
	display: inline-block;
	vertical-align: baseline;
}
audio:not([controls]) {
	display: none;
	height: 0;
}

/* ==========================================================================
 * Anchor
 * ========================================================================== */
a:link,
a:visited {
	background-color: transparent;
	color: #479cd7;
	text-decoration: none;
}
a:active,
a:hover {
	outline: 0;
}

/* ==========================================================================
 * Embedded
 * ========================================================================== */
img {
	max-width: 100%;
	height: auto;
	border: 0;
	vertical-align: bottom;
}
svg:not(:root) {
	overflow: hidden;
}

/* ==========================================================================
 * Grouping
 * ========================================================================== */
figure {
	margin: 0;
}
hr {
	box-sizing: content-box;
	height: 0;
	border: none;
	border-top: 1px solid #bbb;
}
dd {
	margin-left: 0;
}

/* ==========================================================================
 * List
 * ========================================================================== */
ul,
ol {
	margin: 0;
	padding: 0;
}
ul {
	list-style: none;
}
ul.list-disc {
	margin-left: 1.55em;
	list-style: disc;
}
ul.list-annotation {
	margin-left: 1.3em;
}
ul.list-annotation li::before {
	margin-left: -1.3em;
	content: "※\0020";
}

/* ==========================================================================
 * Text
 * ========================================================================== */
b,
strong {
	font-weight: bold;
}
mark {
	background: #ff0;
	color: #000;
}
small,
.txt-small{
	font-size: 80%;
}
sub,
sup {
	font-size: 75%;
	line-height: 0;
	position: relative;
	vertical-align: baseline;
}
sub {
	bottom: -0.25em;
}
sup {
	top: -0.5em;
}
address {
	font-style: normal;
}
h1,
.h1 {
	font-size: 3.2rem;
	line-height: 1.2;
	margin: 0;
}
h2,
.h2 {
	font-size: 2.4rem;
	line-height: 1.2;
	margin: 0;
}
h3,
.h3 {
	font-size: 1.8rem;
	line-height: 1.2;
	margin: 0;
}
h4,
.h4 {
	font-size: 1.6rem;
	line-height: 1.2;
	margin: 0;
}
p {
	margin: 0;
}
p + p {
	margin-top: .5em;
	margin-bottom: 0;
}
.txt-left {
	text-align: left;
}
.txt-center {
	text-align: center;
}
.txt-right {
	text-align: right;
}
.txt-unbold {
	font-weight: normal;
}
.txt-bold {
	font-weight: bold;
}
.txt-emphasis {
	color: #e74c3c;
}
.txt-notes {
	color: #7f8c8d;
}

/* ==========================================================================
 * Table
 * ========================================================================== */
table {
	border-collapse: collapse;
	border-spacing: 0;
}
td,
th {
	padding: 0;
}

/* ==========================================================================
 * Common
 * ========================================================================== */
#page__container {
	max-width: 750px;
	margin: 0 auto;
}

/* ==========================================================================
 * Responsive
 * ========================================================================== */

/*PCのみ表示(640px以下非表示)*/
@media screen and (max-width: 640px) {
	.visible-pc {
		display: none !important;
	}
}

/*SPのみ表示(641px以上非表示)*/
@media screen and (min-width: 641px) {
	.visible-sp {
		display: none !important;
	}
}

/*PCのみ非表示(640px以上非表示)*/
@media screen and (min-width: 640px) {
	.hidden-pc {
		display: none !important;
	}
}

/*SPのみ非表示(641px以下非表示)*/
@media screen and (max-width: 641px) {
	.hidden-sp {
		display: none !important;
	}
}

/* ==========================================================================
 * Header
 * ========================================================================== */
.hd {
	background: #fff;
	width: 100%;
	max-width: 750px;
}
.header__wrap {
	display: flex;
	justify-content: space-between;
	align-items: center;
	height: 50px;
	width: auto;
}
.header__logo {
	width: 118px;
	display: flex;
	margin-left: 16px;
}
#page-container > header > div > div > li.visible-sp {
	list-style: none;
}
.gnavi {
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: right;
}
/* hamburger menu */
.menu__btn {
	align-items: center;
	display: flex;
	height: 50px;
	justify-content: center;
	padding: 20px;
	z-index: 1100;
	position: sticky;
	width: 50px;
	background: #3d1f02;
	cursor: pointer;
}
.menu__btn span, .menu__btn span::before, .menu__btn span::after {
	content: '';
	background: #fff;
	display: block;
	height: 2px;
	position: absolute;
	width: 26px;
	transition: all 0.3s;
}
.menu__btn span::before {
	bottom: 8px;
}
.menu__btn span::after {
	top: 8px;
}
#menu__btn--check:checked ~ .menu__btn span {
	background-color: transparent;
}
#menu__btn--check:checked ~ .menu__btn span::before {
	bottom: 0;
	transform: rotate(45deg);
}
#menu__btn--check:checked ~ .menu__btn span::after {
	top: 0;
	transform: rotate(-45deg);
}
#menu__btn--check {
	display: none;
}
.gnavi__hamburger-menu {
	background: #fff8e8;
	height: 100%;
	position: fixed;
	top: 0;
	left: 100%;
	z-index: 1000;
	transition: all 0.5s;
	width: 100%;
}
#menu__btn--check:checked ~ .gnavi__hamburger-menu {
	left: 0;
}
.gnavi__hamburger-menu ul {
	padding: 20% 10px 20%;
}
.gnavi__hamburger-menu ul li {
	border-bottom: 1px dotted #1d1e1e;
	list-style: none;
	width: 100%;
}
.gnavi__hamburger-menu ul li a {
	box-sizing: border-box;
	color: #1d1e1e;
	display: block;
	padding: 14px 15px 13px 3%;
	position: relative;
	text-decoration: none;
	width: 100%;
	transition: color 0.3s;
}
.gnavi__hamburger-menu ul li a:hover {
	color: #1d1e1e;
}
.gnavi__hamburger-menu ul li a::before {
	border-top: 2px solid #1d1e1e;
	border-right: 2px solid #1d1e1e;
	content: "";
	height: 7px;
	transform: rotate(45deg);
	position: absolute;
	right: 11px;
	top: 26px;
	width: 7px;
}
.gnavi__hamburger-menu ul li a.active::before {
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
}
.nav__cta {
	width: 90%;
	margin: 0 auto;
	filter: drop-shadow(0px 3px 3px rgba(74, 54, 12, 0.3));
}
.nav__cta img {
	width: 100%;
}

.annotation {
	display: block;
	padding: 20px 16px;
	font-size: 1rem;
}

/* cta */
.cta {
	position: relative;
}
.cta__btn {
	position: absolute;
	bottom: 16.5%;
	left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    width: 85%;
    animation: pulse 1.5s ease-in-out infinite; /* この行を追加 */
}

.cta__tel {
	position: absolute;
	bottom: 15%;
	left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    width: 85%;
    animation: pulse 1.5s ease-in-out infinite; /* この行を追加 */
}


/* アニメーション定義を追加 */
@keyframes pulse {
    0%, 100% {
        transform: translateX(-50%) scale(1);
    }
    50% {
        transform: translateX(-50%) scale(1.05);
    }
}

/* trouble */
.trouble_cause1 {
	margin: -15% 0 0;
}
.trouble_cause2 {
	margin: -10% 0 0;
	position: relative;
}
.trouble_cause2 .video__tl {
	position: absolute;
	top: 15%;
	left: 50%;
    transform: translateX(-50%);
	text-align: center;
	z-index: 1;
	width: 100%;
}
.trouble_cause2 .video__tl img {
	margin: 0 0 0 4%;
	width: 80%;
}
.trouble_cause2 .video__ct {
	background: #000;
	padding: 3%;
	position: absolute;
	top: 13%;
	left: 50%;
    transform: translateX(-50%);
	width: 94%;
}
.trouble_cause2 .video__ct video {
	height: 100%;
	width: 100%;
}
.focus__ct {
	margin: -15% 0 0;
}
.focus__ct {
	position: relative;
}
.focus__movie {
	position: absolute;
	top: 45%;
	left: 50%;
    transform: translateX(-50%);
	width: 84%;
}
.focus__movie video {
	clip-path: inset(0 2px 0 0);
	height: 100%;
	width: 100%;
}

/* explanation */
.explanation {
	margin: -10% 0 0;
	position: relative;
	z-index: 1;
}
.explanation__ct2 {
	margin: -5% 0 0;
	position: relative;
	z-index: 1;
}

.mov {
	position: relative;
}
.mov video {
	position: absolute;
	top: 52%;
	width: 90%;
	left: 5%;
	border-radius: 5px;
	overflow: hidden;
}


/* ==========================================================================
 * faq
 * ========================================================================== */
#faq {
	background: #efefef;
	padding: 50px 0;
}
#faq h2 {
	margin-bottom: 20px;
}
#faq ul {
	margin-top: 50px;
    margin-bottom: 50px;
}
#faq ul li+li{
	margin-top: 30px;
}
.faq__qaList dt {
	background: url("../images/q.png") left top no-repeat;
	background-color: #f05d58;
	background-position: 20px 50%;
	background-size: 3%;
	border-radius: 10px;
	font-size: 2.4rem;
	font-weight: bold;
	color: #fff;
	padding: 20px 90px 20px 75px;
	position: relative;
	cursor: pointer;
}
.faq__qaList dt.open::before {
    content: "";
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 15%;
    right: 1.5em;
    width: 20px;
    height: 20px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: rotate(135deg);
}
.faq__qaList dt.close::after {
    content: "";
    margin: auto;
    position: absolute;
    top: 0;
    bottom: -10%;
    right: 1.5em;
    width: 20px;
    height: 20px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: rotate(-45deg);
}
@media screen and (max-width: 640px) {
	#faq ul {
		margin-top: 0;
		margin-bottom: 0;
	}
	.faq__qaList dl {
		margin-bottom: 0;
	}
	.faq__qaList dt {
		font-size: 2.0rem;
		padding: 10px 57px 10px 64px;
		background-size: 25px;
	}
	.faq__qaList dd {
		padding: 30px 20px 30px 64px;
		background-size: 25px;
	}
	.faq__qaList dt.open::before {
		right: 1em;
	}
	.faq__qaList dt.close::after {
		right: 1em;
	}
	#faq ul li+li {
		margin-top: 10px;
	}
}