*,
::before,
::after {
	box-sizing: border-box;
}

html {
	font-size: 16px;
	line-height: 1;
	tab-size: 4;
	font-weight: 400;
	font-family: "Zen Maru Gothic", sans-serif;
	font-style: normal;
	scroll-behavior: smooth;
	color: #333333;
	background: #fff;
}
html::-webkit-scrollbar {
	display: none;
}

body {
	margin: 0;
	line-height: inherit;
	position: relative;
	z-index: 0;
	background: #fff !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-size: inherit;
	font-weight: inherit;
}

a {
	color: inherit;
	text-decoration: inherit;
}

b,
strong {
	font-weight: bold;
}

small {
	font-size: 80%;
}

table {
	text-indent: 0;
	border-color: inherit;
	border-collapse: collapse;
}

button,
input,
optgroup,
select,
textarea {
	font-family: inherit;
	font-size: 100%;
	font-weight: inherit;
	line-height: inherit;
	color: inherit;
	margin: 0;
	padding: 0;
}

button,
select {
	text-transform: none;
}

button,
[type="button"],
[type="reset"],
[type="submit"] {
	-webkit-appearance: button;
	background-color: transparent;
	background-image: none;
	border: none;
}

:-moz-focusring {
	outline: auto;
}

:-moz-ui-invalid {
	box-shadow: none;
}

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
	margin: 0;
}

ol,
ul,
menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

textarea {
	resize: vertical;
}

:disabled {
	cursor: default;
}

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
	display: block;
	vertical-align: middle;
}

img,
video {
	max-width: 100%;
	height: auto;
}

.not-scroll {
	touch-action: none;
	overflow: hidden;
}

.no-scroll-bar::-webkit-scrollbar {
	display: none;
}

[x-cloak] {
	display: none !important;
}

::-webkit-scrollbar {
	width: 5px;
	height: 5px;
}

::-webkit-scrollbar-thumb {
	background-color: rgba(197, 197, 197, 0.55);
	border-radius: 5px;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.3);
}

::-webkit-scrollbar-track {
	border-radius: 10px;
	box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1);
}

header,
footer {
	overflow: hidden;
}

.pc {
	display: block;
}
.sp {
	display: none;
}
br.pc {
	display: inline;
}
br.sp {
	display: none;
}

@media screen and (max-width: 999px) {
	.pc {
		display: none;
	}
	.sp {
		display: block;
	}
	br.pc {
		display: none;
	}
	br.sp {
		display: inline;
	}
}

img.img-contain {
	width: 100%;
	height: 100%;
	object-fit: contain;
	transition: all ease-in-out 0.33s;
}
img.img-cover {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: all ease-in-out 0.33s;
}

main,
section,
footer {
	width: 100%;
	margin: 0 auto;
	max-width: 500px;
	overflow: hidden;
	position: relative;
}

.fixed-bnr {
	width: 100%;
	position: fixed;
	display: flex;
	justify-content: center;
	align-items: center;
	max-width: 400px;
	bottom: 0;
	left: 0;
	right: 0;
	margin: 0 auto;
	padding: 0 15px;
	z-index: -1;
	opacity: 0;
	pointer-events: none;
	transition: all ease 0.5s;
}
.fixed-bnr.active {
	z-index: 999;
	opacity: 1;
	pointer-events: all;
}
.fixed-bnr > a {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	aspect-ratio: 370 / 113;
	transition: all ease 0.33s;
}
.fixed-bnr > a:hover {
	filter: brightness(1.08);
}

.sec-mv {
	z-index: 10;
	margin-bottom: -30px;
}
.cta {
	background: #fff2b2;
	overflow: visible;
	aspect-ratio: 400 / 181;
	z-index: 10;
}
.cta.cta-ac {
	aspect-ratio: 400 / 284;
}
.cta.cta-bd {
	aspect-ratio: 400 / 284;
}
.cta > figure {
	position: absolute;
	top: -10px;
	left: 0;
	right: 0;
	margin: 0 auto;
}
.cta > .btn-box {
	width: 77%;
	position: absolute;
	bottom: 5.52%;
	left: 0;
	right: 0;
	margin: 0 auto;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	padding: 0 15px;
}
.cta.cta-ac > .btn-box {
	width: 89%;
	flex-flow: column;
	gap: 10px;
	bottom: 8%;
}
.cta.cta-bd > .btn-box {
	flex-flow: column;
	gap: 10px;
}
.cta > .btn-box > a {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	transition: all ease 0.33s;
}

.cta > .btn-box > a:hover {
	filter: brightness(1.08);
}
.sec-example {
	padding-top: 40px;
	background: #fff;
	margin-bottom: 40px;
	z-index: 0;
}

.sec-example > figure {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	aspect-ratio: 365 / 62;
	max-width: 365px;
	margin: 0 auto;
	margin-bottom: 15px;
}
.example-slider-area {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 15px;
}
.swiper.example-slider {
	width: 100%;
	position: relative;
}
.swiper-pagination {
	position: relative !important;
	bottom: 0 !important;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 15px;
}
.swiper-pagination-bullet {
	width: 9px !important;
	height: 9px !important;
	background: #e2f4fe;
	opacity: 1;
	margin: 0 !important;
	transform: all ease 0.33s;
}
.swiper-pagination-bullet-active {
	width: 13px !important;
	height: 13px !important;
	opacity: 1;
	background: #71c8f5;
}

.sec-faq {
	padding-top: 63px;
	padding-bottom: 40px;
	background-image: url("../images/bg-faq.webp");
	background-repeat: repeat;
	background-size: 100%;
	background-position: top;
}
.sec-faq > figure {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	aspect-ratio: 96 / 74;
	max-width: 160px;
	margin: 0 auto;
	margin-bottom: 36px;
}

.faq-list {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 16px;
	margin: 0 auto;
	padding: 0 24px;
}

.faq-list .acc-box {
	width: 100%;
	position: relative;
	flex-shrink: 0;
	background: #fff;
	filter: drop-shadow(0px 3px 6px rgb(0 0 0 / 16%));
	border-radius: 8px;
	overflow: hidden;
}

.faq-list .acc-btn {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	cursor: pointer;
	gap: 15px;
	position: relative;
	background: #f26f83;
	color: #fff;
	padding: 14px 24px;
}

.faq-list .acc-btn > p {
	width: 100%;
	font-size: 18px;
	letter-spacing: 0;
	line-height: 1.6;
	font-weight: bold;
	display: flex;
	align-items: flex-start;
	gap: 16px;
}
.faq-list .acc-btn > p::before {
	content: "";
	width: 21px;
	height: auto;
	aspect-ratio: 1 / 1;
	flex-shrink: 0;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	background-image: url(../images/icon-q.svg);
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	transition: all ease 0.33s;
	margin-top: 4px;
}

.faq-list .acc-btn::after {
	content: "";
	width: 22px;
	height: auto;
	aspect-ratio: 1 / 1;
	flex-shrink: 0;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	background-image: url(../images/icon-circle-plus-fill.svg);
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	transition: all ease 0.33s;
}
.faq-list .acc-box.is-open .acc-btn::after {
	background-image: url(../images/icon-circle-minus-fill.svg);
}

.faq-list .acc-panel-inner {
	width: 100%;
	padding-top: 20px;
}
.answer-box {
	width: 100%;
	display: flex;
	flex-flow: column;
	padding: 24px;
	padding-top: 0;
	gap: 15px;
}

.answer-box > h3 {
	width: 100%;
	font-size: 18px;
	letter-spacing: 0;
	line-height: 1.6;
	font-weight: bold;
	display: flex;
	align-items: flex-start;
	position: relative;
	gap: 20px;
}
.answer-box > h3::before {
	content: "";
	width: 21px;
	height: auto;
	aspect-ratio: 1 / 1;
	flex-shrink: 0;
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	background-image: url(../images/icon-a.svg);
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	transition: all ease 0.33s;
	margin-top: 5px;
}
.answer-box > p {
	width: 100%;
	font-size: 14px;
	letter-spacing: 0;
	line-height: 1.6;
}

.sec-cta-txt {
	padding-top: 40px;
	padding-bottom: 40px;
	z-index: 0;
}
.sec-cta-txt > figure {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	aspect-ratio: 336 / 50;
	max-width: 336px;
	margin: 0 auto;
}

.sec-gbp {
	margin-top: 30px;
	margin-bottom: 10px;
	min-height: 0px;
}

.sec-contact-form {
	padding-top: 38px;
	background: #fff;
	padding-bottom: 38px;
	z-index: 0;
}
.sec-contact-form > figure {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	aspect-ratio: 347 / 46;
	max-width: 347px;
	margin: 0 auto;
	margin-bottom: 30px;
}
.contact-form-area {
	width: 100%;
	display: flex;
	flex-flow: column;
	gap: 30px;
	padding: 0 16px;
	align-items: center;
	justify-content: flex-start;
}
.contact-form-wrapper {
	width: 100%;
}
.form-step-box {
	width: 68.75%;
	max-width: 275px;
	aspect-ratio: 275 / 63;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.form-grid-cont {
	width: 100%;
	display: flex;
	flex-flow: column;
	align-items: center;
	gap: 30px;
	justify-content: flex-start;
	overflow: hidden;
}
.form-grid {
	width: 100%;
	display: flex;
	flex-flow: column;
	gap: 16px;
	align-items: flex-start;
	justify-content: flex-start;
}
.form-grid > dl {
	width: 100%;
	display: flex;
	flex-flow: column;
	gap: 9px;
	align-items: flex-start;
	justify-content: flex-start;
}
.form-grid > dl > dt {
	width: 100%;
	display: flex;
	gap: 12px;
	align-items: center;
	justify-content: flex-start;
}
.form-grid > dl > dt > p {
	font-size: 14px;
}
.badge-required {
	font-size: 12px;
	width: 40px;
	height: auto;
	padding: 3px;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	flex-shrink: 0;
	background-color: #fff;
	border: 1px solid #ec5f58;
	color: #ec5f58;
	border-radius: 4px;
}
.form-grid > dl > dd {
	width: 100%;
}
.form-grid > dl > dd input,
.form-grid > dl > dd textarea {
	width: 100%;
	display: block;
	background: #eee;
	border: none;
	outline: none;
	padding: 12px;
	font-size: 16px;
	border-radius: 4px;
}
.wpcf7-not-valid-tip {
	width: 100%;
	font-size: 12px;
	margin-top: 5px;
	display: block;
	color: #ec5f58;
}
.screen-reader-response {
	width: 100%;
	display: flex;
	flex-flow: column;
	gap: 10px;
	font-size: 12px;
	color: #ec5f58;
}
.screen-reader-response ul li {
	margin-bottom: 5px;
}
.privacy-check-box {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
}
.privacy-check-box > div {
	width: 100%;
	display: flex;
	justify-content: center;
	gap: 10px;
	align-items: center;
}
.privacy-check-box > div br {
	display: none;
}
.privacy-check-box input[type="checkbox"] {
	margin-right: 9px;
}
.privacy-check-box span.wpcf7-list-item-label {
	font-size: 14px;
}
.privacy-check-box span.wpcf7-list-item-label a {
	text-decoration: underline;
	transition: all ease 0.33s;
}
.privacy-check-box span.wpcf7-list-item-label a:hover {
	text-decoration: none;
	color: #ec5f58;
}
.submit-box {
	width: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	overflow: hidden;
	position: relative;
}
.submit-box > div {
	width: 100%;
	display: flex;
	overflow: hidden;
	flex-flow: column;
	align-items: center;
	justify-content: flex-start;
	gap: 10px;
}
.submit-box > div > br {
	display: none;
}
.btn-form-submit {
	color: transparent;
	width: 100%;
	height: auto;
	background-repeat: no-repeat;
	background-size: cover;
	transition: all ease 0.33s;
	cursor: pointer;
	display: flex;
	justify-content: center;
	align-items: center;
	max-width: 266px;
	height: auto;
	aspect-ratio: 266 / 52;
}
.btn-form-submit.btn-confirm {
	background-image: url("../images/btn-form-confirm.webp");
}
.btn-form-submit.btn-send {
	background-image: url("../images/btn-form-send.webp");
}
.btn-form-submit:hover {
	filter: brightness(1.08);
}
.thanks-txt {
	width: 100%;
	text-align: center;
	line-height: 1.6;
	font-size: 16px;
	padding-bottom: 50px;
	border-bottom: 1px solid #ddd;
}

.ti-widget.ti-goog {
	padding-left: 20px;
	padding-right: 20px;
}

.ti-header-write-btn-container {
	display: none;
}

.ti-widget.ti-goog.ti-review-text-mode-readmore.ti-text-align-left {
	margin-top: 20px;
}

.sec-mv {
	position: relative;
	display: inline-block;
}

.google-rating-banner {
	position: absolute;
	bottom: 180px;
	left: 0px;
	z-index: 10;
}

.google-rating-img {
	width: auto;
	max-width: 80%;
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.google-rating-banner:hover .google-rating-img {
	transform: translateY(5px);
}

.img-contain {
	display: block;
	width: 100%;
	height: auto;
}

@media screen and (max-width: 768px) {
	.google-rating-banner {
		bottom: 130px;
		left: 0px;
	}

	.google-rating-img {
		max-width: 60%;
	}
}
/* 2025.03.25 add */
.cta_1_2 {
    background: #fff2b2;
    overflow: visible;
    aspect-ratio: 400 / 261;
    z-index: 10;
}

.cta_1_2 > .btn-box {
    position: absolute;
    top: 0%;
	bottom: 10%;
    left: 0;
    right: 0;
    width: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 0 15px;
}
.cta_1_2 > .btn-box a {
    width: 48%;
}
.cta_1_2 > .tel-btn {
    position: absolute;
    bottom: 10%;
    left: 0;
    right: 0;
    width: 70%;
    margin: 0 auto;
    text-align: center;
}
.fixed-bnr1_2 {
    position: fixed;
    bottom: 0;
	left: 0;
    right: 0;
    width: 100%;
	max-width: 500px;
	margin: 0 auto;
	padding: 3px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: -1;
	opacity: 0;
	background-color: rgba(255, 255, 255, 0.9);
    box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);
	height: 70px; /* 固定の高さを設定 */
	transition: all ease 0.5s;
}
.fixed-bnr1_2.active {
	z-index: 999;
	opacity: 1;
	pointer-events: all;
}
.btn-wrapper {
    padding: 0 2px;
    box-sizing: border-box;
	width: 100%;
}
.btn-wrapper.form,
.btn-wrapper.line {
    flex: 3; /* より大きい比率 */
}
.btn-wrapper.tel{
	width: 14%;
}

.fixed-bnr1_2 a {
    display: block;
    height: 100%;
}

.fixed-bnr1_2 img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 画像をコンテナにフィットさせる */
    display: block;
    border-radius: 6px;
}

/* 2025.05.08 add */
.cta_line {
    background: #fff2b2;
    overflow: visible;
    aspect-ratio: 400 / 170;
    z-index: 10;
	margin-bottom: 35px;
}

.cta_line > figure {
    position: absolute;
    bottom: 13%;
    left: 0;
    right: 0;
    width: 73%;
    margin: 0 auto;
    text-align: center;
}

.cta_line > .btn-box {
    width: 90%;
    position: absolute;
    top: 47%;
    transform: translateY(-53%);
    left: 0;
    right: 0;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    padding: 0 15px;
}