@charset "utf-8";
/*
Theme Name: hamada-dental3
Theme URI: https://hamada-dental.net/
Description: 専用のベーステーマ
Version: 3.0
*/

/* common
---------------------------------------------------------------------------*/
body {
	background-color: #FDFBF2;
	color: #7A6856;
	font-size: 14px;
	font-family: a-otf-gothic-bbb-pr6n, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック体', YuGothic, 'Hiragino Sans', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, sans-serif;
	line-height: 1;
	font-feature-settings: 'palt' 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-text-size-adjust: 100%;
}

body.noscroll { overflow-y: scroll; position: fixed; width: 100%; }

::-moz-selection { background: #CCCCCC; color: #7A6856; }
::selection { background: #CCCCCC; color: #7A6856; }

p { font-size: 14px; line-height: 1.8; letter-spacing: 0.1em; margin-bottom: 10px; }
p:last-of-type { margin-bottom: 0 !important; }
address,i { font-style: normal; }
img { max-width: none; }

.clearfix:after { content: ''; display: block; clear:both; }

body#pc .pc_view { display: block !important; }
body#pc .sp_view { display: none !important; }
body#sp .sp_view { display: block !important; }
body#sp .pc_view { display: none !important; }

/* #wrap
------------------------------------*/
#wrap { min-width: 1300px; }
#wrap-s { position: relative; }
.opening { display: none; }
body.top .opening { display: block; }

/* #loading
------------------------------------*/
#loading {
	display: none;
	opacity: 0;
	position: fixed;
	top: 50%;
	left: 50%;
	border: 1px solid #7FA401;
	border-top-color: transparent;
	border-radius: 50%;
	width: 24px;
	height: 24px;
	margin: -12px 0 0 -144px;
	z-index: 99999;
	animation: spin 0.5s infinite linear;
}

#loading.center {
	margin-left: -12px;
}

@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* txt
-----------------------------------*/
.font-gothic,
.btn-link a,
.nav-service li a { font-family: tbchibirgothicplusk-pro, sans-serif; }

.font-serif-jp { font-family: "Zen Old Mincho", '游明朝体', '游明朝', YuMincho, 'ヒラギノ明朝 ProN', 'Hiragino Mincho ProN', 'ＭＳ Ｐ明朝', 'MS PMincho', serif; }
.font-sans { font-family: 'Lato', sans-serif; }

.marker { box-shadow: inset 0 -6px 0 0 #FFF22C; }
.txt-line { display: inline-block; background-color: #5B4023; width: 20px; height: 1px; margin: 0 3px; vertical-align: middle; transform: translateY(-2px); }

h2,h3,h4,h5,h6,
.gnav li strong,
.snav li a,
.header-btm,
.header-btm a,
.info .inner,
.list-dot li,
.list-dl dd,
.title-sub.beige strong,
.nav-service li strong,
.nav-service li.index em,
.schedule td:first-of-type,
.footer-schedule .schedule + p,
.obsession-list .title strong,
.sec-engage-inner .box,
.txt-img .txt .biofilm p,
.optimal-list .tel-wrap .tel,
.btn-select .customSelect,
.news-table th {
	color: #5B4023;
}

.title-jp,
.title-sub strong,
.list-dl dt,
.sec-lead .txt h1,
.service-list2 > h2,
.obsession-list .title em,
.sec-cycle .img h4 em,
.optimal-list h4 em,
.pmtc h4 strong,
.biofilm h4,
.news-list article time,
.news-main a,
.news-title time {
	color: #7FA401;
}

.btn-link a,
.header-top .gnav em,
.txt-top h2 em,
.news-header time,
.nav-service li em,
.title-en,
.title-sub.en strong,
.sec-lead h1,
.sec-lead .en,
.news-head h1 em,
.news-head h2 em {
	color: #92B600;
}

/* link
------------------------------------*/
a { color: #7A6856; text-decoration: none; transition: .15s ease-out; -webkit-transform: translateZ(0); }
a:hover { text-decoration: none; opacity: 0.5; }

.line { display: inline-block; position: relative; padding-bottom: 2px; line-height: 1; }
.line:after {
	display: block;
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	background-color: #7A6856;
	width: 100%;
	height: 1px;
}

/* .btn
------------------------------------*/
.btn-link a {
	display: inline-block;
	box-sizing: border-box;
	background-color: #FFFFFF;
	border-radius: 40px;
	border: 1px solid #87BC25;
	padding: 9px 20px 11px 24px;
	font-size: 15px;
	/* font-weight: bold; */
	text-align: center;
	line-height: 1.4;
	letter-spacing: 0.18em;
	-webkit-transform: perspective(0);
}

.btn-link a:hover {
	background-color: #87BC25;
	color: #FFFFFF;
	opacity: 1;
}

.btn-color > a,
.btn-color > span {
	display: inline-block;
	background-color: #87BC25;
	border-radius: 50px;
	padding: 17px 30px 19px 30px;
	color: #FFFFFF;
	font-size: 17px;
	font-weight: 500;
	letter-spacing: 0.2em;
	text-align: center;
	transition: .15s ease-out;
}

.btn-color.size-l > a,
.btn-color.size-l > span {
	display: block;
	padding-top: 24px;
	padding-bottom: 26px;
	font-size: 20px;
	letter-spacing: 0.22em;
	/* font-weight: bold; */
}

.btn-color i {
	display: inline-block;
	background: url(img/share/ico-arrow-white.svg) no-repeat left top;
	margin-left: 16px;
	width: 16px;
	height: 13px;
}

.btn-arrow a {
	display: inline-block;
	box-sizing: border-box;
	background: url(img/share/ico-arrow-btn-green.svg) no-repeat left top;
	min-height: 34px;
	padding: 6px 5px 5px 52px;
	color: #5B4023;
	font-size: 18px;
	letter-spacing: 0.18em;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.btn-set > div {
	display: inline-block;
	margin: 10px 8px 0 0;
}


/* header
---------------------------------------------------------------------------*/
header {
	position: fixed;
	top: 0;
	right: 0;
	background-color: #FFFFFF;
	width: 265px;
	height: 100vh;
	margin: 0;
	padding: 0;
	z-index: 100;
}

header.fix {
	position: fixed !important;
	top: 0 !important;
}

header::-webkit-scrollbar { width: 1px; }
header::-webkit-scrollbar-track { border-radius: 0; background: #FFFFFF; }
header::-webkit-scrollbar-thumb { border-radius: 0; background: #E2DDD2; }

.header-inner {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	min-height: 700px;
}

/* media query
-----------------------------------*/
@media (max-width: 1300px) {
	header {
		right: inherit;
		left: calc(1300px - 265px);
	}
}
@media (max-height: 880px) {
	header {
		overflow-y: scroll;
		box-sizing: border-box;
	}
}

header .logo {
	position: absolute;
	top: min(6.8vh, 60px);
	left: 0;
	width: 100%;
	text-align: center;
}

header .nav-wrap {
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 100%;
	margin-top: 10px;
}

/* .gnav
------------------------------------*/
.gnav {
	margin-bottom: 35px;
	text-align: center;
}

.gnav li a {
	display: inline-block;
	padding: 1.4vh 20px;
	white-space: nowrap;
}

.gnav li strong {
	display: block;
	margin-bottom: 11px;
	font-size: 18px;
	letter-spacing: 0.15em;
}

.gnav li em {
	color: #C4A686;
	font-size: 13px;
	letter-spacing: 0.2em;
}

/* .snav
------------------------------------*/
.snav { margin: 0 0 0 50px; }
.snav li { margin-bottom: 10px; }
.snav li:last-of-type { margin-bottom: 0; }

.snav li a {
	position: relative;
	display: block;
	background: url(img/share/ico-arrow-green.svg) no-repeat left top 8px;
	padding: 5px 5px 5px 25px;
	font-size: 15px;
	letter-spacing: 0.15em;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.1em;
	white-space: nowrap;
}

/* .header-btm
------------------------------------*/
.header-btm {
	position: absolute;
	bottom: 0;
	left: 0;
	box-sizing: border-box;
	background-color: #F3EAE2;
	width: 100%;
	padding: 25px 35px 30px 40px;
	white-space: nowrap;
}

.header-btm .btn-access {
	position: absolute;
	top: 32px;
	right: 32px;
}

.btn-access a {
	display: inline-block;
	box-sizing: border-box;
	border-radius: 20px;
	background: #7A6856 url(img/share/ico-pin.svg) no-repeat left 14px top 8px;
	padding: 7px 15px 8px 31px;
	color: #FFFFFF;
	font-size: 14px;
	letter-spacing: 0.1em;
}

.header-btm address {
	display: block;
	margin: 0 0 12px -1px;
	font-size: 14px;
	line-height: 1.7;
	letter-spacing: 0.09em;
}

.header-btm address span {
	display: block;
	margin-left: 1px;
	font-size: 12px;
	letter-spacing: 0.1em;
}

.header-btm .tel {
	font-size: 21px;
	letter-spacing: 0.1em;
}

.header-btm .tel span {
	padding-right: 6px;
	font-size: 13px;
	letter-spacing: 0.12em;
}

.header-btm .ico-list {
	overflow: hidden;
}

.header-btm .ico-list li {
	float: right;
	margin-left: 7px;
}

/* media query
-----------------------------------*/
@media (max-height: 1020px) {
	header .logo {
		top: 45px;
	}
	header .logo img {
		width: 190px;
		height: auto;
		-webkit-backface-visibility: hidden;
	}
	.gnav li a {
		padding-top: 11px;
		padding-bottom: 11px;
	}
	.gnav li strong {
		margin-bottom: 10px;
		font-size: 17px;
		letter-spacing: 0.12em;
	}
	.gnav li em {
		font-size: 12px;
		letter-spacing: 0.15em;
	}
	.snav li {
		margin-bottom: 5px;
	}
	.snav li a {
		padding-bottom: 5px;
		font-size: 14px;
	}
	.header-btm {
		padding-bottom: 25px;
	}
	.header-btm address {
		margin-bottom: 10px;
		font-size: 13px;
		letter-spacing: 0.1em;
	}
	.header-btm .tel {
		font-size: 20px;
	}
}

@media (max-height: 900px) {
	header .logo {
		top: 40px;
	}
	header .logo img {
		width: 180px;
	}
	#gnav-top {
		display: none;
	}
	.header-top #gnav-top {
		display: block;
	}
	.gnav {
		margin-bottom: 22px;
	}
	.gnav li a {
		padding-top: 10px;
		padding-bottom: 10px;
	}
	.gnav li strong {
		font-size: 15px;
	}
	.snav li a {
		padding-bottom: 6px;
		font-size: 13px;
		letter-spacing: 0.12em;
	}
}

@media (max-height: 800px) {
	header .logo {
		top: 28px;
	}
	header .logo img {
		width: 152px;
	}
	header .nav-wrap {
		margin-top: -3px;
	}
	.gnav li strong {
		margin-bottom: 7px;
	}
	.gnav li em {
		font-size: 11px;
	}
	.snav li {
		margin-bottom: 4px;
	}
	.header-btm {
		padding-top: 18px;
	}
	.header-btm address {
		margin-bottom: 6px;
	}
	.header-btm .ico-list {
		margin-bottom: -6px;
	}
	.header-btm .ico-list li {
		margin-left: 5px;
	}
	.header-btm .ico-list li img {
		width: 29px;
		height: auto;
	}
}


/* footer
---------------------------------------------------------------------------*/
footer {
	width: 100%;
	margin: 180px 0 0;
	padding: 0;
}

/* .nav-service
------------------------------------*/
.nav-service {
	position: relative;
	box-sizing: border-box;
	border-radius: 15px;
	background-color: #FFFFFF;
	box-shadow: 0 3px 0 #E4DBC8;
	width: 975px;
	margin: 0 auto -60px;
	z-index: 2;
}

.nav-service:before {
	display: block;
	content: '';
	position: absolute;
	top: 0;
	left: 15px;
	background-color: #C1D615;
	width: calc(100% - 30px);
	height: 3px;
}

.nav-service ul {
	display: -webkit-box;
	display: flex;
	flex-wrap: wrap;
}

.nav-service li {
	box-sizing: border-box;
	position: relative;
	/*border-right: 1px solid #F8F1E3;*/
	width: calc(100% / 3);
}

.nav-service li:after {
	display: block;
	content: '';
	position: absolute;
	top: 26px;
	right: 0;
	background-color: #F8F1E3;
	width: 1px;
	height: 80px;
}

.nav-service li:nth-of-type(4):after,
.nav-service li:nth-of-type(5):after {
	top: 10px;
}

.nav-service li:nth-of-type(3n):after {
	display: none;
}

.nav-service li a {
	display: -webkit-box;
	display: flex;
	-webkit-box-align: center;
	align-items: center;
	padding: 26px 0 26px 28px;
}

.nav-service li:nth-of-type(1) a,
.nav-service li:nth-of-type(2) a,
.nav-service li:nth-of-type(3) a {
	padding-bottom: 18px;
}

.nav-service li:nth-of-type(4) a,
.nav-service li:nth-of-type(5) a {
	padding-top: 10px;
}

.nav-service li:nth-of-type(6) a {
	padding: 25px 0 25px 45px;
}

.nav-service li figure {
	width: 80px;
	min-width: 80px;
}

.nav-service li figure img {
	border-radius: 4px;
}

.nav-service li div {
	padding-left: 24px;
	letter-spacing: 0.18em;
}

.nav-service li strong {
	display: block;
	margin-bottom: 12px;
	font-size: 18px;
}

.nav-service li em {
	margin-left: 1px;
	font-size: 13px;
	letter-spacing: 0.16em;
}

.nav-service li.index a {
	display: block;
}

.nav-service li.index em {
	display: block;
	margin-bottom: 13px;
	font-size: 13px;
	letter-spacing: 0.26em;
}

.nav-service li.index strong {
	display: block;
	font-size: 16px;
	letter-spacing: 0.16em;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.1em;
}

.nav-service li.index strong i {
	display: inline-block;
	background: url(img/share/ico-arrow-btn.svg) no-repeat left top;
	width: 17px;
	height: 17px;
	margin-left: 9px;
	transform: translateY(3px);
}

/* .footer-inner
------------------------------------*/
.footer-inner {
	box-sizing: border-box;
	background-color: #F8F1E3;
	width: 100%;
	padding: 225px 0 65px;
}

.footer-inner-s {
	position: relative;
	width: 965px;
	margin: 0 auto;
}

/* .footer-info
------------------------------------*/
.footer-info {
	position: relative;
	float: left;
	width: 224px;
	margin-right: 112px;
	white-space: nowrap;
}

.footer-info .logo {
	margin: 0 0 35px 5px;
}

.footer-info address {
	display: block;
	margin-bottom: 10px;
	font-size: 15px;
	line-height: 1.8;
	letter-spacing: 0.14em;
}

.footer-info address span {
	display: block;
	font-size: 10px;
	letter-spacing: 0.12em;
}

.footer-info .tel {
	font-size: 28px;
	font-weight: 300;
	letter-spacing: 0.06em;
}

.footer-info .tel span {
	padding-right: 6px;
	font-size: 16px;
	font-weight: 400;
	letter-spacing: 0.12em;
}

/*
.ico-tel {
	position: absolute;
	bottom: 45px;
	right: -80px;
	box-sizing: border-box;
	background-color: #B99C7D;
	border-radius: 50%;
	width: 75px;
	height: 75px;
	padding: 19px 0 0 4px;
	color: #FFFFFF;
	font-size: 12px;
	line-height: 1.6;
	letter-spacing: 0.15em;
	white-space: nowrap;
	text-align: center;
}
*/

.ico-reservation {
	position: absolute;
	box-sizing: border-box;
	width: 105px;
	height: 105px;
	line-height: 1;
	white-space: nowrap;
	text-align: center;
}

.info .ico-reservation {
	top: -24px;
	right: 0;
}

footer .ico-reservation {
	bottom: 29px;
	right: -97px;
}

.ico-reservation .txt1 {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
	opacity: 0;
}

.ico-reservation a {
	display: block;
	position: absolute;
	top: 15px;
	left: 15px;
	background-color: #593B1A;
	border-radius: 50%;
	width: 75px;
	height: 75px;
	color: #FFFFFF;
	z-index: 1;
	opacity: 0;
	transition: inherit;
}

.ico-reservation.active a {
	transition: .15s ease-out !important;
}

.ico-reservation a:hover {
	opacity: 0.5 !important;
}

.ico-reservation .txt2 {
	position: absolute;
	top: 0;
	left: 0;
	box-sizing: border-box;
	width: 75px;
	height: 75px;
	padding: 10px 0 0 2px;
	font-size: 13px;
	line-height: 1.2;
	letter-spacing: 0.06em;
	opacity: 0;
	z-index: 1;
}

.ico-reservation .txt3 {
	display: inline-block;
	border-bottom: 1px solid #FFFFFF;
	position: absolute;
	bottom: 14px;
	left: 16px;
	padding-bottom: 2px;
	z-index: 0;
}

.ico-reservation .txt3 i {
	position: absolute;
	top: 0;
	right: 0;
	background-color: #593B1A;
	width: 100%;
	height: calc(100% + 1px);
}

/* .schedule
------------------------------------*/
.schedule {
	background-color: #FFFFFF;
	width: 100%;
	white-space: nowrap;
}

.schedule table {
	width: 100%;
}

.schedule tr {
	border-bottom: 1px solid #F1EEE2;
}

.schedule th {
	background-color: #B99C7D;
	border-right: 1px solid #CFBDA1;
	padding: 8px 9px 10px 11px;
	color: #FFFFFF;
	font-size: 15px;
	font-weight: 400;
	text-align: center;
	vertical-align: middle;
	letter-spacing: 0.1em;
}

.schedule th:first-of-type {
	border-radius: 5px 0 0 0;
	font-size: 12px;
	letter-spacing: 0.18em;
}

.schedule th:last-of-type {
	border-radius: 0 5px 0 0;
}

.schedule td {
	border-right: 1px solid #F1EEE2;
	padding: 11px 10px;
	color: #87BC25;
	font-size: 14px;
	text-align: center;
	vertical-align: middle;
}

.schedule th:first-of-type,
.schedule td:first-of-type {
	padding-right: 16px;
	padding-left: 16px;
}

.schedule td:first-of-type {
	font-size: 14px;
	text-align: right;
	letter-spacing: 0.08em;
}

.schedule th:last-of-type,
.schedule td:last-of-type {
	border-right: none;
}

.schedule tr:last-of-type td:first-of-type {
	border-radius: 0 0 0 5px;
}

.schedule tr:last-of-type td:last-of-type {
	border-radius: 0 0 5px 0;
}

.schedule td span {
	font-size: 18px;
	font-weight: bold;
}

.schedule + p {
	margin-top: 10px;
	font-size: 13px;
	letter-spacing: 0.08em;
}

/* .footer-schedule
------------------------------------*/
.footer-schedule {
	position: relative;
	float: left;
}

.footer-schedule .name-en {
	margin: 0 0 44px 4px;
}

.footer-schedule .schedule + p {
	position: absolute;
	bottom: 0;
	left: 435px;
	font-size: 11px;
	line-height: 1.9;
	letter-spacing: 0.1em;
	white-space: nowrap;
}

/* footer other
------------------------------------*/
.copy-footer {
	position: absolute;
	top: -55px;
	right: 69px;
}

.copyright {
	position: absolute;
	top: -55px;
	right: 28px;
}

.pagetop {
	position: absolute;
	bottom: 5px;
	right: 15px;
}


/* contents
---------------------------------------------------------------------------*/
#mainContents {
	display: block;
	width: calc(100% - 265px);
	margin: 0;
	padding: 0;
	text-align: left;
	opacity: 0;
}

/* .bg-green
------------------------------------*/
.bg-green {
	background: url(img/share/bg-green) repeat left top;
	background-size: 200px auto;
}

/* .sns
------------------------------------*/
.sns li {
	display: inline-block;
	margin-right: 2px;
}

.sns a {
	position: relative;
	display: inline-block;
	box-sizing: border-box;
	border-radius: 50%;
	background-color: #FFFFFF;
	border: 1px solid #87BC25;
	width: 38px;
	height: 38px;
	padding: 8px;
}

.sns a img {
	opacity: 1;
	transition: .15s ease-out;
}

.sns a .on {
	display: block;
	position: absolute;
	top: 8px;
	left: 8px;
	opacity: 0;
}

.sns a:hover {
	background-color: #87BC25 !important;
	opacity: 1;
}

.sns a:hover img { opacity: 0; }
.sns a:hover .on { opacity: 1; }

/* .list-dot
------------------------------------*/
.list-dot li {
	position: relative;
	margin: 0 0 6px 3px;
	padding-left: 15px;
	font-size: 14px;
	line-height: 1.6;
	letter-spacing: 0.1em;
}

.list-dot li:last-of-type {
	margin-bottom: 0 !important;
}

.list-dot li:before {
	display: block;
	content: '・';
	position: absolute;
	top: 0;
	left: 0;
	font-weight: bold;
}

/* .list-dl
------------------------------------*/
.list-dl {
	font-size: 14px;
	line-height: 1.7;
	letter-spacing: 0.15em;
}

.list-dl > div {
	display: -webkit-box;
	display: flex;
	border-bottom: 1px solid #E2DDD2;
	padding: 20px 9px 12px;
}

.list-dl > div:last-of-type {
	margin-bottom: 20px;
}

.list-dl dt {
	box-sizing: border-box;
	width: 60px;
	min-width: 60px;
	padding-right: 20px;
}

/* .attention-list
------------------------------------*/
.attention-list li {
	position: relative;
	margin: 0 0 10px;
	padding-left: 16px;
	font-size: 13px;
	line-height: 1.6;
	letter-spacing: 0.1em;
}

.attention-list li:last-of-type { margin-bottom: 0; }
.attention-list li:before { display: block; content: '※'; position: absolute; top: 0; left: 0; }

/* .info
------------------------------------*/
.info {
	display: -webkit-box;
	display: flex;
	width: 970px;
	margin: 0 auto;
	white-space: nowrap;
}

.info figure {
	position: relative;
	width: 452px;
	min-width: 452px;
	height: 508px !important;
}

.info figure img:nth-of-type(1) {
	display: block;
	margin-bottom: 18px;
}

.info figure img:nth-of-type(3) {
	display: block;
	position: absolute;
	bottom: 0;
	right: 0;
}

.info .inner {
	position: relative;
	box-sizing: border-box;
	width: 100%;
	padding: 18px 0 0 55px;
}

.info .mark {
	position: absolute;
	top: 0;
	right: -10px;
}

.info h1 {
	margin-bottom: 20px;
	color: #7B6855;
	font-size: 24px;
	letter-spacing: 0.1em;
}

.info h1 strong{
	font-size: 15px;
	letter-spacing: 0.08em;
	padding-bottom: 11px;
	display: block;
}

.info .list-wrap {
	display: -webkit-box;
	display: flex;
	margin-bottom: 30px;
}

.info .list-dot {
	padding-right: 15px;
}

.info .list-dot li {
	padding-left: 12px;
	color: #7B6855;
	font-size: 15px;
	line-height: 1.4;
}

.info .schedule + p br {
	display: none;
}

.info .address {
	position: relative;
	margin: 30px 0 50px;
}

.info address {
	margin-bottom: 4px;
	font-size: 15px;
	line-height: 1.8;
	letter-spacing: 0.1em;
}

.info address span {
	padding-right: 6px;
	font-size: 12px;
	letter-spacing: 0.12em;
}

.info .tel {
	font-size: 34px;
	font-weight: 300;
	letter-spacing: 0.06em;
}

.info .tel span {
	padding-right: 4px;
	font-size: 20px;
	letter-spacing: 0.06em;
}

.info .close {
	position: absolute;
	top: 5px;
	right: 10px;
	box-sizing: border-box;
	background-color: #FFFFFF;
	border: 1px solid #8C5A1F;
	border-radius: 3px;
	text-align: center;
}

.info .close h2 {
	background-color: #8A5A26;
	padding: 4px 2px 6px 4px;
	color: #FFFFFF;
	font-size: 14px;
	letter-spacing: 0.2em;
}

.info .close p {
	padding: 3px 18px 5px 20px;
}

.info .txt {
	position: relative;
}

.info .txt p {
	margin-bottom: 12px;
	letter-spacing: 0.07em;
}

.info .txt p:nth-of-type(2) {
	margin-left: -3px;
}

.info .txt p span {
	font-size: 17px;
}

.info .txt p strong {
	position: relative;
	display: inline-block;
	border-bottom: 1px solid #5C4020;
	margin-right: 6px;
	font-size: 22px;
	line-height: 1.4;
	letter-spacing: 0.06em;
}

/*
.info .txt .sns {
	position: absolute;
	top: -5px;
	right: 10px;
}

.info .txt .btn-link {
	position: absolute;
	top: -5px;
	right: 57px;
}

.info .txt .btn-link a {
	padding: 6px 12px 9px 13px;
	color: #87BC25;
	font-size: 15px;
	font-weight: normal;
	letter-spacing: 0.08em;
}

.info .txt .btn-link a:hover {
	color: #FFFFFF;
}
*/

/* .img-main
------------------------------------*/
.img-main {
	width: 100%;
	margin-bottom: 120px;
}

.img-main .inner img {
	width: 100%;
	height: auto;
	-webkit-backface-visibility: hidden;
}

/* .img-center
------------------------------------*/
.img-center {
	margin-bottom: 120px;
}

.img-center img {
	width: 100%;
	height: auto;
}

/* .title-en
------------------------------------*/
.title-en {
	position: relative;
	margin-bottom: 52px;
	padding-bottom: 20px;
	font-size: 18px;
	letter-spacing: 0.2em;
}

.title-en:after {
	display: block;
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	background-color: #92B600;
	width: 44px;
	height: 1px;
	opacity: 0.4;
}

/* .title-jp
------------------------------------*/
.title-jp {
	margin-bottom: 20px;
}

.title-jp strong {
	position: relative;
	display: inline-block;
	padding: 0 0 7px;
	font-size: 15px;
	letter-spacing: 0.25em;
}

.title-jp strong:after {
	display: block;
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	background-color: #7FA401;
	width: calc(100% - 2px);
	height: 1px;
}

/* .title-sub
------------------------------------*/
.title-sub {
	margin: 0 0 30px 1px;
}

.title-sub strong {
	position: relative;
	display: inline-block;
	padding-bottom: 7px;
	font-size: 15px;
	letter-spacing: 0.2em;
	white-space: nowrap;
}

.title-sub strong:after {
	display: block;
	content: '';
	position: absolute;
	bottom: 0;
	left: -1px;
	background-color: #7FA401;
	width: calc(100% - 2px);
	height: 1px;
}

.title-sub.beige strong:after {
	background-color: #7A6856;
	opacity: 0.4;
}

.title-sub.en strong {
	padding-bottom: 0;
}

.title-sub.en strong:after {
	display: none;
}

/* .sec-lead
------------------------------------*/
.sec-lead {
	position: relative;
	display: -webkit-box;
	display: flex;
	width: 880px;
	margin: 0 auto 90px;
}

.sec-lead.img {
	width: 860px;
	margin-top: -20px;
}

.sec-lead h1,
.sec-lead .en {
	position: absolute;
	top: -30px;
	left: 0;
	font-size: 14px;
	letter-spacing: 0.2em;
	white-space: nowrap;
}

.sec-lead .en {
	font-size: 17px;
	font-weight: 300;
	letter-spacing: 0.15em;
}

.sec-lead h2 {
	padding-right: 60px;
	font-size: 26px;
	line-height: 1.7;
	letter-spacing: 0.2em;
	white-space: nowrap;
}

.sec-lead p {
	margin-top: 2px;
	font-size: 15px;
	line-height: 2.2;
	letter-spacing: 0.2em;
	text-align: justify;
}

.sec-lead .txt {
	width: 100%;
}

.sec-lead .txt h1 {
	position: inherit;
	margin: 0 0 20px 2px;
}

.sec-lead .txt h2 {
	margin: 0 0 24px/*  -1px */;
	padding-right: 0;
	letter-spacing: 0.25em;
}

.sec-lead figure {
	width: 332px;
	min-width: 332px;
	margin-top: 10px;
}

/* .txt-img
------------------------------------*/
.txt-img {
	display: -webkit-box;
	display: flex;
	-webkit-box-align: center;
	align-items: center;
	width: 880px;
	margin: 0 auto 100px;
}

.txt-img .txt h2 {
	margin-bottom: 18px;
}

.txt-img .txt h3 {
	margin-bottom: 20px;
	font-size: 24px;
	line-height: 1.7;
	letter-spacing: 0.15em;
	white-space: nowrap;
}

.txt-img .txt p {
	font-size: 15px;
	line-height: 2;
	letter-spacing: 0.12em;
	text-align: justify;
}

.txt-img .box {
	box-sizing: border-box;
	background-color: #F8F1E3;
	border-radius: 7px;
	margin: 25px -4px 0;
	padding: 24px 18px 18px 28px;
}

.txt-img .txt .btn-link {
	margin: 30px 0 0 -4px;
}

.txt-img figcaption {
	margin-top: 12px;
	font-size: 12px;
	line-height: 1.8;
	letter-spacing: 0.1em;
	text-align: justify;
}

/* .nav-page
------------------------------------*/
.nav-page {
	width: 100%;
	margin-bottom: 100px;
	padding: 40px 0 44px;
	text-align: center;
	white-space: nowrap;
}

.nav-page h2 {
	margin-bottom: 40px;
}

.nav-page h2 strong {
	position: relative;
	display: inline-block;
	padding-bottom: 12px;
	color: #FFFFFF;
	font-size: 21px;
	letter-spacing: 0.35em;
}

.nav-page h2 strong:after {
	display: block;
	content: '';
	position: absolute;
	bottom: 0;
	left: -2px;
	background-color: #FDFBF2;
	width: 100%;
	height: 1px;
	opacity: 0.4;
}

.nav-page ul {
	display: -webkit-box;
	display: flex;
	box-sizing: border-box;
	border-left: 1px solid #E5DFC6;
	width: 870px;
	margin: 0 auto;
}

.nav-page li {
	position: relative;
	box-sizing: border-box;
	border-right: 1px solid #E5DFC6;
	width: calc(100% / 3);
	height: 75px;
}

.nav-page li a {
	display: block;
	position: relative;
	box-sizing: border-box;
	color: #FFFFFF;
	height: 100%;
	padding-top: 15px;
}

.nav-page li strong {
	display: block;
	font-size: 20px;
	letter-spacing: 0.12em;
}

.nav-page li strong span {
	display: block;
	margin: -12px 0 7px;
	font-size: 13px;
}

.nav-page li em {
	display: block;
	position: absolute;
	bottom: 2px;
	left: 0;
	width: 100%;
	font-size: 14px;
	letter-spacing: 0.15em;
}


/* .wp-pagenavi
---------------------------------------------------------------------------*/
.wp-pagenavi {
	overflow: hidden;
	margin-top: 120px;
	text-align: center;
	font-size: 16px;
}

.wp-pagenavi a,
.wp-pagenavi .extend {
	box-sizing: border-box;
	height: 38px;
	margin: 0 5px;
	padding: 10px 10px;
}

.wp-pagenavi .current {
	position: relative;
	box-sizing: border-box;
	display: inline-block;
	width: 38px;
	height: 38px;
	margin: 0 8px;
	padding: 10px 0 0;
}

.wp-pagenavi .current:after {
	display: block;
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	box-sizing: border-box;
	border: 1px solid #E5E1DE;
	border-radius: 50%;
	width: 38px;
	height: 38px;
	z-index: -1;
}

.wp-pagenavi a.previouspostslink,
.wp-pagenavi a.nextpostslink {
	display: inline-block;
	background: url(img/share/ico-arrow-wide.svg) no-repeat center center;
	width: 36px;
	height: 38px;
	text-indent: -9999px;
}

.wp-pagenavi a.previouspostslink {
	margin-right: 35px;
	transform: scaleX(-1);
}

.wp-pagenavi a.nextpostslink {
	margin-left: 35px;
}


/* .news-head
---------------------------------------------------------------------------*/
.news-head,
.news-list {
	width: 880px;
	margin: 0 auto;
}

.news-head {
	position: relative;
	margin-bottom: 40px;
}

.news-head h1 em,
.news-head h2 em {
	padding-right: 15px;
	font-size: 36px;
	font-weight: 300;
	letter-spacing: 0.06em;
}

.news-head h1 strong,
.news-head h2 strong {
	font-size: 16px;
	letter-spacing: 0.15em;
}

.news-head .category {
	position: absolute;
	top: 10px;
	right: 1px;
	display: -webkit-box;
	display: flex;
}


/* .news-list
---------------------------------------------------------------------------*/
.news-list {
	display: -webkit-box;
	display: flex;
	flex-wrap: wrap;
}

.news-list article {
	position: relative;
	width: 255px;
	margin: 80px 57px 0 0;
}

.news-list article:nth-of-type(1),
.news-list article:nth-of-type(2),
.news-list article:nth-of-type(3) {
	margin-top: 0;
}

.news-list article:nth-of-type(3n) {
	margin-right: 0;
}

.news-list article a {
	display: block;
}

.news-list figure {
	position: relative;
	overflow: hidden;
	width: 100%;
	margin-bottom: 22px;
	padding-bottom: 65.8%;
}

.news-list figure img {
	display: block;
	position: absolute;
	top: 50%;
	left: 0;
	width: auto;
	min-width: 100%;
	height: auto;
	min-height: 100%;
	transform: translate(0,-50%);
	-webkit-backface-visibility: hidden;
}

.news-list time {
	display: block;
	position: absolute;
	top: 0;
	right: -20px;
	font-size: 10px;
	letter-spacing: 0.18em;
	-ms-writing-mode: tb-rl;
	writing-mode: vertical-rl;
	font-feature-settings: 'palt' 0;
}

.news-list h2 {
	margin-bottom: 12px;
	font-size: 16px;
	line-height: 1.6;
	letter-spacing: 0.12em;
}

.news-list p {
	font-size: 12px;
	text-align: justify;
}


/* .sec-policy
---------------------------------------------------------------------------*/
.sec-policy {
	width: 910px;
	margin: 0 auto 100px;
}

.sec-policy > figure {
	margin-bottom: 78px;
}

.sec-policy-inner {
	display: -webkit-box;
	display: flex;
	justify-content: space-between;
	flex-direction: row-reverse;
}

.sec-policy-inner .txt {
	padding: 17px 0 0 24px;
}

.sec-policy-inner .txt h3 {
	margin-bottom: 30px;
}

.sec-policy-inner .txt p {
	font-size: 15px;
	line-height: 2;
	letter-spacing: 0.15em;
}

.sec-policy-inner .txt .btn-set {
	margin: 15px 0 0 -4px;
}

.sec-policy-inner .img {
	position: relative;
	padding-right: 47px;
}

.sec-policy-inner .img .en {
	position: absolute;
	top: 55px;
	right: -15px;
}

.sec-policy-inner .img .jp {
	position: absolute;
	bottom: 32px;
	right: -50px;
}


/* .sec-service
---------------------------------------------------------------------------*/
.sec-service {
	width: 920px;
	margin: 0 auto;
}

/* .service-list1
------------------------------------*/
.service-list1 {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 0 55px;
	margin: 0 auto 115px;
}

.service-list1 .inner figure {
	margin-bottom: 25px;
}

.service-list1 .inner .txt {
	position: relative;
	padding: 0 3px 72px;
}

.service-list1 .inner h2 {
	margin: 0 0 18px;
}

.service-list1 .inner h2 strong {
	padding-bottom: 5px;
	font-size: 14px;
}

.service-list1 .inner h3 {
	margin: 0 0 16px;
	font-size: 19px;
	line-height: 1.75;
	letter-spacing: 0.16em;
}

.service-list1 .inner p {
	font-size: 14px;
	line-height: 2;
	letter-spacing: 0.1em;
	text-align: justify;
}

.service-list1 .inner .btn-link {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
}

.service-list1 .inner .btn-link a {
	display: block;
	font-size: 15px;
}

/* .service-list2
------------------------------------*/
.service-list2 > h2 {
	margin-bottom: 55px;
	font-size: 24px;
	letter-spacing: 0.2em;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.3em;
}

.service-list2 .inner {
	display: flex;
	position: relative;
}

.service-list2 .inner:not(:last-child) {
	margin-bottom: 70px;
}

.service-list2 figure {
	position: relative;
	width: 365px;
	min-width: 365px;
	margin-right: 50px;
}

.service-list2 figure figcaption {
	position: absolute;
	top: -34px;
	left: -34px;
}

.service-list2 .txt {
	padding: 0 50px 0 0;
}

.service-list2 .txt h2 {
	margin-bottom: 24px;
}

.service-list2 .txt h2 strong {
	font-size: 16px;
}

.service-list2 .txt h3 {
	margin-bottom: 20px;
	font-size: 23px;
	letter-spacing: 0.19em;
}

.service-list2 .txt p {
	line-height: 2.2;
	letter-spacing: 0.1em;
	text-align: justify;
}

.service-list2 .txt .btn-link {
	margin: 24px 0 0 -2px;
}

.service-list2 .txt .btn-link a {
	padding-right: 30px;
	padding-left: 34px;
}

.service-list2 .txt .attention {
	position: absolute;
	bottom: -30px;
	left: 0;
	font-size: 12px;
	letter-spacing: 0.06em;
}


/* .service-main
---------------------------------------------------------------------------*/
#wrap:has(.service-main) header,
#wrap:has(.service-detail-main) header {
	position: absolute;
	top: 100vh;
}

#wrap:has(.service-detail-main) header {
	display: none;
}

.service-main,
.service-detail-main {
	position: relative;
	box-sizing: border-box;
	overflow: hidden;
	width: calc(100% + 265px);
}

.service-main {
	height: 100vh;
	white-space: nowrap;
}

.service-main,
.service-main a,
.service-main h2 {
	color: #FFFFFF;
}

.service-main a {
	display: block;
	position: relative;
	width: 100%;
	height: 100%;
}

.service-main a:hover { opacity: 0.7; }
.service-main > a:hover { opacity: 1 !important; }

.service-main .btn-index,
.service-main .service-main-title,
.service-main .txt h2,
.service-main .txt p ,
.service-main .btn-scroll {
	opacity: 0;
}

.service-main figure {
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 100%;
}

.service-main figure img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.service-main-title {
	position: absolute;
	top: 46px;
	right: 48px;
	text-align: right;
	z-index: 1;
}

.service-main-title h1 {
	margin-bottom: 20px;
	font-size: 29px;
	letter-spacing: 0.2em;
}

.service-main-title em {
	display: block;
	margin-right: 6px;
	font-size: 13px;
	letter-spacing: 0.2em;
}

.service-detail-main .service-main-title em {
	color: #C4A686;
}

.service-main .txt {
	position: absolute;
	bottom: 72px;
	left: 90px;
	z-index: 1;
}

.service-main .txt h2 {
	margin-bottom: 22px;
	font-size: 42px;
	line-height: 1.6;
	letter-spacing: 0.25em;
}

.service-main .txt p {
	font-size: 22px;
	line-height: 2.15;
	letter-spacing: 0.18em;
}

.service-main .btn-index,
.service-detail-main .btn-index {
	position: absolute;
	top: 50px;
	left: 50px;
	z-index: 1;
}

.service-detail-main .btn-index {
	top: 46px;
}

.service-main .btn-index a,
.service-detail-main .btn-index a {
	display: inline-block;
	background: url(img/share/ico-arrow-white.svg) no-repeat left top 3px / 14px auto;
	min-height: 11px;
	margin-right: 20px;
	padding: 0 0 0 25px;
	font-size: 15px;
	letter-spacing: 0.15em;
	text-decoration: underline;
	text-decoration-color: rgba(255,255,255,0.5);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.3em;
}

.service-detail-main .btn-index a {
	background-image: url(img/share/ico-arrow-brown.svg);
	color: #5B4023;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.3em;
}

.service-main .btn-scroll {
	position: absolute;
	bottom: 40px;
	right: 50px;
	z-index: 1;
}


/* .bnr-contact
---------------------------------------------------------------------------*/
.bnr-contact {
	background-color: #FFFFFF;
	position: relative;
	border-radius: 20px;
	width: 920px;
	height: 288px;
	margin: 140px auto 0;
	text-align: left;
	opacity: 0;
}

.bnr-contact a {
	display: block;
	position: relative;
	box-sizing: border-box;
	width: 100%;
	height: 100%;
	padding: 84px 0 39px 90px;
}

.bnr-contact a:hover { opacity: 1 !important; }

.bnr-contact h2 {
	position: absolute;
	top: 35px;
	left: 35px;
	font-size: 16px;
	letter-spacing: 0.2em;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.4em;
}

.bnr-contact h3 {
	margin: 0 0 24px 4px;
	font-size: 24px;
	line-height: 1.8;
	letter-spacing: 0.24em;
}

.bnr-contact h3.size-s {
	margin-bottom: 26px;
	font-size: 22px;
	transform: translateY(-2px);
}

body#pc .bnr-contact h3 .pc_view {
	display: inline-block !important;
}

.bnr-contact h4 {
	position: absolute;
	top: -34px;
	right: 32px;
}

.bnr-contact .tel {
	display: inline-block;
	border-bottom: 1px solid #5B4023;
	position: absolute;
	bottom: 64px;
	left: 589px;
	padding-bottom: 1px;
	font-size: 18px;
	font-weight: 500;
	letter-spacing: 0.06em;
}

.bnr-contact .tel strong {
	padding-left: 2px;
	font-size: 30px;
	font-weight: 300;
	letter-spacing: 0.04em;
}

.bnr-contact address {
	position: absolute;
	bottom: 34px;
	left: 589px;
	font-size: 15px;
	letter-spacing: 0.08em;
}

.bnr-contact .btn-color { transition: .15s ease-out; }
.bnr-contact a:hover .btn-color { opacity: 0.7; }

.bnr-contact .img1 {
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	border-radius: 0 0 0 20px;
}

.bnr-contact .img2 {
	position: absolute;
	bottom: 0;
	left: 415px;
}

.bnr-contact .pic { position: absolute; top: -11px; right: 129px; }
.bnr-contact .pic .img { display: block; transform-origin: center bottom; }
.bnr-contact .pic .img1,
.bnr-contact .pic .img2 { display: block; position: absolute; opacity: 0; }
.bnr-contact .pic .img1 { top: 69px; left: 109px; }
.bnr-contact .pic .img2 { top: 80px; left: 103px; }


/* .service-detail
---------------------------------------------------------------------------*/
.service-detail-main {
	position: relative;
	margin-bottom: 75px;
	padding: max(0.7vw, 104px) 0 0 max(3vw, 41px);
}

.service-detail-main .img1 {
	width: 66.4%;
}

.service-detail-main .img2 {
	position: absolute;
	top: max(33vw, 480px);
	right: 6.4%;
	width: 20.8%;
}

.service-detail-main .img1 img,
.service-detail-main .img2 img {
	width: 100%;
}

.service-detail-main .txt {
	margin: 60px 0 0 6%;
}

.service-detail-main .txt h2 {
	margin-bottom: 19px;
	color: #5B4023;
	font-size: 31px;
	font-weight: 500;
	line-height: 1.8;
	letter-spacing: 0.1em;
}

.service-detail-main .txt h2 i { display: inline-block; }
.service-detail-main .txt h2 i:nth-of-type(1) { margin-left: -12px; }
.service-detail-main .txt h2 i:nth-of-type(2) { margin-right: -16px; }

.service-detail-main .txt p {
	font-size: 16px;
	line-height: 2.2;
	letter-spacing: 0.16em;
}

.service-detail-main nav {
	position: absolute;
	top: max(20.8vw, 300px);
	right: 7.5%;
}

.service-detail-main nav ul {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px 24px;
}

.service-detail-main nav li a {
	display: inline-block;
	background: url(img/share/ico-arrow-green-down.svg) no-repeat center left / max(1.3vw, 16px) auto;
	min-height: max(1.3vw, 16px);
	padding: 1px 0 0 max(1.9vw, 20px);
	color: #5B4023;
	font-size: max(1vw, 14px);
	letter-spacing: 0.12em;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
	white-space: nowrap;
}

/* .contact-fix
------------------------------------*/
.contact-fix {
	position: fixed;
	bottom: 40px;
	left: 40px;
	z-index: 10;
}

.contact-fix em {
	display: block;
	margin: 0 0 3px 2px;
	font-size: 13px;
	line-height: 1.7;
	letter-spacing: 0.11em;
	opacity: 0;
}

.contact-fix a:hover { opacity: 1; }
.contact-fix a .mask span { transition: .15s ease-out; }
body#pc .contact-fix a .mask span .pc_view { display: inline-block !important; }
.contact-fix a:hover .mask span { opacity: 0.8; }

.contact-fix a > div {
	display: inline-block;
	overflow: hidden;
	position: relative;
	width: 0;
	margin-top: 7px;
}

.contact-fix a > div > span {
	display: inline-block;
	overflow: hidden;
	background: linear-gradient(270deg, #7FA401 0%, #EDE135 146.85%);
	padding: 7px 6px 8px 10px;
	color: #FFFFFF;
	font-size: 19px;
	letter-spacing: 0.14em;
	white-space: nowrap;
}

.contact-fix i {
	display: inline-block;
	background: url(img/share/ico-arrow-btn-white.svg) no-repeat left top/ 18px auto;
	width: 18px;
	height: 18px;
	margin-left: 5px;
	padding-right: 5px;
	transform: translateY(2px);
}

/* .sec-message
------------------------------------*/
.sec-message {
  border-top: 1px solid #7FA401;
  width: 936px;
  margin: 0 auto 125px;
}

.sec-message h2 {
  color: #7FA401;
  margin-bottom: 65px;
  padding: 16px 0 0 6px;
  font-size: 18px;
  letter-spacing: 0.24em;
}

.sec-message h2:has(+p) {
	margin-bottom: 25px;
}

.sec-message h2 + p {
	margin: 0 0 75px 6px !important;
	font-size: 16px;
	letter-spacing: 0.16em;
}

.sec-message .message {
  position: relative;
  width: 100%;
}

.sec-message .message .inner {
  position: absolute;
  background-color: #F8F1E3;
  border-radius: 10px;
  padding: 26px 38px 30px 38px;
  color: #5B4023;
  font-size: 18px;
  line-height: 1.9;
  letter-spacing: 0.24em;
}

.sec-message .message .inner:after {
	display: block;
	content: '';
	position: absolute;
	bottom: -20px;
	background: #CAC6BC;
  width: 32px;
  height: 20px;
  clip-path: polygon(0 0, 100% 0%, 0 100%);
}

.sec-message .message .inner span {
	padding-left: 4px;
	font-size: 15px;
	letter-spacing: 0.14em;
}

/* .service-detail-target
------------------------------------*/
.service-detail-target .message {
	height: 415px;
	margin: 0 0 60px 33px;
}

.service-detail-target .message .inner {
	padding: 32px 40px 36px 42px;
	font-size: 20px;
	line-height: 1.7;
	letter-spacing: 0.16em;
}

.service-detail-target .message .txt1 { top: 0px; left: 56px; }
.service-detail-target .message .txt2 { top: 50px; left: 560px; }
.service-detail-target .message .txt3 { top: 207px; left: 0px; }
.service-detail-target .message .txt4 { top: 257px; left: 385px; }

.service-detail-target .message .txt1:after { transform: scaleX(-1); }
.service-detail-target .message .txt3:after { left: 137px; }
.service-detail-target .message .txt4:after { left: 221px; transform: scaleX(-1); }

.service-detail-target .inner-wrap {
	display: flex;
	justify-content: space-between;
	margin: 0 24px 0 8px;
}

.service-detail-target .inner-wrap h3 {
	margin: 0 0 10px 5px;
	font-size: 15px;
	letter-spacing: 0.12em;
}

.service-detail-target .inner-wrap .box {
	background-color: #FFFFFF;
	border-radius: 6px;
	padding: 28px 40px 27px 30px;
}

.service-detail-target .inner-wrap .inner:nth-of-type(2) .box {
	padding-bottom: 28px;
}

.service-detail-target .inner-wrap .box ul {
	display: inline-block;
	vertical-align: top;
}

.service-detail-target .inner-wrap .box ul:not(:last-of-type) {
	margin-right: 25px;
}

.service-detail-target .inner-wrap .box li:not(:last-of-type) {
	margin-bottom: 7px;
}

.service-detail-target .inner-wrap .inner:nth-of-type(2) .box li:not(:last-of-type) {
	margin-bottom: 4px;
}

.service-detail-target .inner-wrap .box li {
	font-size: 15px;
	line-height: 1.7;
}

.service-detail-target .inner-wrap .box li span {
	font-size: 13px;
}

/* .service-detail-bg-wrap
------------------------------------*/
.service-detail-bg-wrap {
	background-color: #F6EFDD;
	padding: 110px 0 110px;
}

.service-detail-bg-wrap + .service-detail-bg-wrap {
	border-top: 1px solid #D8D2CB;
	padding-top: 110px;
}

.service-detail-bg-wrap .sec-inner {
	width: 900px;
	margin: 0 auto;
}

.service-detail-sec-title {
	position: relative;
	padding: 0 0 0 220px;
}

.service-detail-sec-title h2 {
	position: absolute;
	top: -2px;
	left: 0;
	color: #7FA401;
	font-size: 20px;
	line-height: 1.8;
	letter-spacing: 0.15em;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.3em;
}

.service-detail-sec-title h2 span {
	font-size: 13px;
}

.service-detail-sec-title p {
	font-size: 16px;
	line-height: 2.2;
	letter-spacing: 0.16em;
}

/* .service-detail-anchor-wrap
------------------------------------*/
.service-detail-anchor-wrap {
	display: flex;
	align-self: flex-start;
	margin-top: 80px;
}

.service-detail-anchor-wrap nav {
	position: sticky;
	align-self: flex-start;
	top: 20px;
	left: 0;
	width: 220px;
	min-width: 220px;
	padding-top: 58px;
}

.service-detail-anchor-wrap nav li {
	margin-bottom: 10px;
}

.service-detail-anchor-wrap nav li a {
	display: inline-block;
	position: relative;
	padding: 0 10px 10px 0;
	color: #5B4023;
	font-size: 15px;
	line-height: 1.6;
	letter-spacing: 0.15em;
}

.service-detail-anchor-wrap nav li a span {
	display: inline-block;
	position: relative;
}

.service-detail-anchor-wrap nav li a span:after {
	display: block;
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	background-color: #5B4023;
	/*width: 0;*/
	width: 100%;
	height: 1px;
	transition: .15s ease-out;
}

.service-detail-anchor-wrap nav li.current a {
	width: 100%;
}

.service-detail-anchor-inner {
	padding-right: 10px;
}

/* .service-detail-flow
------------------------------------*/
#service-detail-flow,
#service-detail-point {
	margin-top: -80px;
	padding-top: 80px;
}

.service-detail-flow .list {
	position: relative;
	margin: 55px 0 0 235px;
	padding-left: 48px;
}

.service-detail-flow .list:before {
	display: block;
	content: '';
	position: absolute;
	top: 4px;
	left: 0;
	background: url(img/share/line-dot-brown-v.svg) repeat-y left top;
	width: 1px;
	height: calc(100% - 110px);
	z-index: 0;
}

.service-detail-flow .inner:not(:last-of-type) {
	margin-bottom: 55px;
}

.service-detail-flow .inner h3 {
	position: relative;
	margin-bottom: 10px;
	font-size: 18px;
	line-height: 2;
	letter-spacing: 0.16em;
}

.service-detail-flow .inner h3 i {
	display: block;
	box-sizing: border-box;
	position: absolute;
	top: 4px;
	left: -63px;
	background-color: #FFFFFF;
	border: 1px solid #7A6856;
	border-radius: 50%;
	width: 30px;
	height: 30px;
	padding: 5px 0 0 9px;
	font-size: 16px;
	line-height: 1;
}

.service-detail-flow .inner h3 span {
	padding-left: 4px;
	font-size: 14px;
	letter-spacing: 0.1em;
}

.service-detail-flow .inner p {
	line-height: 2;
	letter-spacing: 0.12em;
	white-space: nowrap;
}

.service-detail-flow .inner figure {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 10px;
	width: 610px;
	margin: 22px 0 0 -2px;
}

.service-detail-flow .inner figure img {
	border-radius: 5px;
}

/* .service-detail-point
------------------------------------*/
.service-detail-anchor-inner .point {
	margin-bottom: 100px;
	margin-top: -80px;
	padding-top: 80px;
}

.service-detail-anchor-inner .point h3 {
	display: inline-block;
	background-color: #FFFFFF;
	border: 1px solid #7FA401;
	border-radius: 30px;
	margin: 0 0 25px -3px;
	padding: 5px 13px 5px 16px;
	color: #7FA401;
	font-size: 14px;
	letter-spacing: 0.1em;
	white-space: nowrap;
}

.service-detail-anchor-inner .point h3:has(+h4) {
	margin-bottom: 25px;
}

.service-detail-anchor-inner .point h4 {
	margin-bottom: 10px;
	font-size: 15px;
	letter-spacing: 0.15em;
}

.service-detail-anchor-inner .point h4 span {
	display: inline-block;
	position: relative;
	padding: 0 0 4px 1px;
}

.service-detail-anchor-inner .point h4 span:after {
	display: block;
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	background-color: #5B4023;
	width: calc(100% - 2px);
	height: 1px;
}

.service-detail-anchor-inner .point h5 {
	margin-bottom: 15px;
	font-size: 23px;
	line-height: 1.8;
	letter-spacing: 0.18em;
}

.service-detail-anchor-inner .point p {
	font-size: 15px;
	line-height: 2.1;
	text-align: justify;
}

.service-detail-anchor-inner .point .attention-list {
	margin-top: 13px;
}

.service-detail-anchor-inner .point .img {
	margin-top: 32px;
}

.service-detail-anchor-inner .point .img figure {
	position: relative;
}

.service-detail-anchor-inner .point .img img.rad {
	border-radius: 5px;
}

.service-detail-anchor-inner .point .img figcaption {
	margin-top: 8px;
	font-size: 14px;
	line-height: 1.6;
	letter-spacing: 0.08em;
}

.service-detail-anchor-inner #point1 .img {
	display: flex;
	justify-content: space-between;
}

.service-detail-anchor-inner #point1 .img .zoom {
	position: absolute;
	bottom: -32px;
	right: -53px;
}

.service-detail-anchor-inner #point1 .img .zoom + figcaption {
	position: absolute;
	bottom: -25px;
	left: 85px;
	color: #7FA401;
}

.service-detail-anchor-inner #point2 .img {
	display: flex;
	justify-content: space-between;
}

.service-detail-anchor-inner #point3 .img {
	position: relative;
}

.service-detail-anchor-inner #point3 .img .zoom {
	display: block;
	position: absolute;
	bottom: -70px;
	right: 23px;
}

/* .service-detail-fee
------------------------------------*/
.service-detail-fee {
	margin-top: -20px;
	padding-top: 80px;
}

.service-detail-fee h3 strong {
	font-size: 18px;
}

.service-detail-fee .table-price {
	margin-left: 0;
}

.service-detail-fee .table-price th {
	width: 25%;
}

.service-detail-fee .price-detail {
	position: relative;
	padding: 0 0 0 183px;
}

.service-detail-fee .price-detail h4 {
	position: absolute;
	top: 0;
	left: 0;
	color: #7FA401;
	font-size: 16px;
	line-height: 1.7;
	letter-spacing: 0.16em;
}

.service-detail-fee .price-detail .box {
	background-color: #FDFBF2;
	border-radius: 6px;
	margin-bottom: 10px;
	padding: 16px 25px 18px 30px;
}

/* .table-price
------------------------------------*/
.table-price {
  background-color: #FFFFFF;
  border-radius: 4px;
  width: 100%;
  margin: 35px 0 35px -5px;
  font-size: 17px;
  line-height: 1.7;
  text-align: center;
}

.table-price tr:first-of-type th { border-radius: 4px 0 0 0; }
.table-price tr:last-of-type th { border-radius: 0 0 0 4px; }

.table-price th,
.table-price td {
  border-bottom: 1px solid #E7E7E7;
  width: 50%;
  padding: 14px;
}

.table-price tr:last-of-type th,
.table-price tr:last-of-type td {
  border-bottom: none;
}

.table-price th {
  background-color: #7FA401;
  color: #FFFFFF;
  font-weight: normal;
  letter-spacing: 0.18em;
}

.table-price td {
  letter-spacing: 0.1em;
}

.table-price td span {
  padding-left: 1px;
  font-size: 12px;
}

/* .service-detail-faq
------------------------------------*/
.service-detail-faq {
	position: relative;
	box-sizing: border-box;
	width: 870px;
	margin: 0 auto 140px;
	padding: 90px 0 0 200px;
}

.service-detail-faq > h2 {
	position: absolute;
	top: 118px;
	left: 0;
}

.faq-list dl {
  border-bottom: 1px solid #E3DED3;
}

.faq-list dt:not(:first-of-type) {
	border-top: 1px solid #E3DED3;
}

.faq-list dt button {
  position: relative;
  width: 100%;
  padding: 32px 76px 20px 73px;
	color: #5B4023;
  font-size: 17px;
  line-height: 1.8;
  letter-spacing: 0.14em;
  text-align: left;
}

.faq-list dt button .q {
  position: absolute;
  top: 31px;
  left: 20px;
	box-sizing: border-box;
	background-color: #7FA401;
	border-radius: 50%;
	width: 33px;
	height: 33px;
	padding: 1px 0 0 10px;
	color: #FFFFFF;
	font-size: 17px;
	letter-spacing: 0;
}

.faq-list dt button .arrow {
	display: block;
	position: absolute;
	top: 41px;
	right: 30px;
	width: 16px;
	height: 13px;
}

.faq-list dt button .arrow:before {
	display: block;
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	background: url(img/share/ico-arrow-green.svg) no-repeat left top / 100% auto;
	width: 16px;
	height: 13px;
	transition: .2s ease-out;
}

.faq-list dt button .arrow:after {
	display: block;
	content: '';
	position: absolute;
	top: 6px;
	left: 0;
	background: #7FA401;
	width: 16px;
	height: 2px;
	transition: .2s ease-out;
	opacity: 0;
}

.faq-list dt.active button .arrow:before {
	transform: rotateX(90deg);
	opacity: 0;
}

.faq-list dt.active button .arrow:after {
	opacity: 1;
}

.faq-list dd {
  display: none;
  padding: 0 76px 18px 73px;
	transform: translateY(-7px);
}

.faq-list dd,
.faq-list dd p {
	line-height: 2.15;
	text-align: justify;
}

/* .service-detail-contact
------------------------------------*/
.service-detail-contact {
	width: 936px;
	margin: 0 auto;
	text-align: center;
}

.service-detail-contact > figure {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 0 33px;
	margin-bottom: 70px;
}

.service-detail-contact > h2 {
	margin-bottom: 27px;
	font-size: 25px;
	line-height: 2;
	letter-spacing: 0.2em;
}

.service-detail-contact > h2 strong {
	color: #7FA401;
}

.service-detail-contact > p {
	font-size: 15px;
	letter-spacing: 0.18em;
}

.service-detail-contact .bnr-contact {
	margin-top: 95px;
}

/* .form-wrap
------------------------------------*/
.form-wrap {
	width: 720px;
	margin: 100px auto 0;
	color: #5B4023;
	text-align: left;
}

.form-wrap dl, .form-wrap dl p { line-height: 1.6; }
.form-wrap dl div { display: flex; margin-bottom: 16px; }
.form-wrap dl div:last-of-type { margin-bottom: 0; }

.form-wrap dt {
	position: relative;
	box-sizing: border-box;
	width: 170px;
	min-width: 170px;
	padding: 15px 0 0;
}

.form-wrap dt:has(span) {
	padding-top: 7px;
}

.form-wrap dt,
.form-wrap dt p {
	font-size: 15px;
	letter-spacing: 0.12em;
}

.form-wrap dl > div:last-of-type dt {
	padding-top: 10px;
	align-self: flex-start;
}

.form-wrap dt.must:before {
	display: block;
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	background-color: var(--color-text);
	border-radius: 50%;
	width: 4px;
	height: 4px;
}

.form-wrap dt span {
	display: block;
	margin-top: 2px;
	font-size: 12px;
	letter-spacing: 0.1em;
}

.form-wrap dd {
	box-sizing: border-box;
	width: 100%;
	min-height: 56px;
}

.form-wrap dd.radio {
	padding-top: 12px;
}

.form-wrap dd p {
	font-size: 12px;
	line-height: 1.7;
	text-align: justify;
}

/* input
------------------------------------*/
.wpcf7-form-control-wrap {
	display: inline-block;
	position: relative;
	width: 100%;
}

.form-wrap input[type="text"],
.form-wrap input[type="email"],
.form-wrap input[type="tel"],
.form-wrap textarea {
	font-family: var(--font-gothic-jp-device);
}

.form-wrap input[type="text"],
.form-wrap input[type="email"],
.form-wrap input[type="tel"],
.form-wrap select,
.form-wrap textarea,
.form-wrap .btn-select .customSelect {
	display: inline-block;
	box-sizing: border-box;
	background-color: #FFFFFF;
	border: 1px solid #BCB3A8;
	border-radius: 4px;
	width: 100%;
	height: 56px;
	padding: 12px 20px;
	font-size: 16px;
	letter-spacing: 0.1em;
}

.form-wrap .wpcf7-radio input[type="radio"] {
  -webkit-appearance: none;
	display: block;
	content: '';
	position: absolute;
	top: 6px;
	left: 0;
	box-sizing: border-box;
	background-color: #FFFFFF;
	border: 1px solid #7A6856;
	border-radius: 50%;
	width: 16px;
	height: 16px;
	cursor: pointer;
}

.form-wrap .wpcf7-radio input[type="radio"]:before {
	display: block;
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	background-color: #7A6856;
	border-radius: 50%;
	width: 8px;
	height: 8px;
	opacity: 0;
	transition: .1s ease-out;
}

.form-wrap .wpcf7-radio input[type="radio"]:checked:before {
	opacity: 1;
}

.form-wrap .wpcf7-radio label {
	display: inline-block;
	position: relative;
	margin-right: 26px;
	padding: 0 0 0 26px;
	font-size: 16px;
	letter-spacing: 0.08em;
	white-space: nowrap;
	cursor: pointer;
}

.form-wrap select {
	appearance: none;
	position: relative;
	cursor: pointer;
	z-index: 1;
}

.btn-select .wpcf7-form-control-wrap .customSelect {
	position: relative;
	z-index: 0;
}

.btn-select .wpcf7-form-control-wrap:before {
	display: block;
	content: '';
	position: absolute;
	top: 29px;
	right: 22px;
	background-color: var(--color-text);
	width: 9px;
	height: 8px;
	clip-path: polygon(0 0, 100% 0%, 50% 100%);
	z-index: 1;
	pointer-events: none;
}

.form-wrap textarea {
	height: 400px;
	padding: 18px 20px;
	line-height: 1.8;
}

::-webkit-input-placeholder { display: none; font-size: 0; }
:-moz-placeholder { display: none; font-size: 0; }
::-moz-placeholder { display: none; font-size: 0; }
:placeholder-shown { display: none; font-size: 0; }

/* .privacy-check
------------------------------------*/
.privacy-check {
	margin: 10px 0 0 175px;
}

.privacy-check p {
	letter-spacing: 0.08em;
}

.privacy-check .wpcf7-form-control-wrap {
	width: auto;
	margin-right: 16px;
  transform-origin: left center;
}

@supports (-webkit-appearance: none) and (not (-webkit-touch-callout: none)) {
	.privacy-check .wpcf7-form-control-wrap {
		transform: scale(1.3) translateY(1px);
	}
}

_::-webkit-full-page-media, _:future, :root .privacy-check .wpcf7-form-control-wrap {
	transform: scale(1.3) translateY(-1px);
}

/* .btn-submit
------------------------------------*/
.btn-submit {
	position: relative;
	display: block;
	margin: 50px 0 0 170px;
}

.btn-submit input {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	display: block;
	box-sizing: border-box;
	background: #593B1A url(img/share/ico-arrow-white.svg) no-repeat right 170px center;
	border: none;
	border-radius: 4px;
	width: 100%;
	margin: 0;
	padding: 18px 50px 20px 20px;
	color: #FFFFFF;
	font-size: 17px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.12em;
	text-align: center;
	white-space: nowrap;
	transition: .15s ease-out;
}

.btn-submit input:hover { opacity: 0.7; }

/* .sec-privacy
------------------------------------*/
.sec-privacy {
	box-sizing: border-box;
	background-color: #F8F1E3;
	border: none;
	border-radius: 4px;
	margin: 30px 0 0 170px;
	padding: 15px;
	text-align: left;
}

.sec-privacy .inner {
	overflow-y: scroll;
	box-sizing: border-box;
	width: 100%;
	height: 240px;
	padding: 42px 40px 36px 36px;
	overflow-x: auto;
	position: relative;
}

.sec-privacy .inner::-webkit-scrollbar { width: 2px !important; }
.sec-privacy .inner::-webkit-scrollbar-track { background: none; }
.sec-privacy .inner::-webkit-scrollbar-thumb { background: #7FA401; }

.sec-privacy h2 {
	margin-bottom: 35px;
	color: #7FA401;
	font-size: 16px;
	letter-spacing: 0.1em;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.3em;
}

.sec-privacy dl > div {
	display: block;
	margin-bottom: 35px;
}

.sec-privacy dt {
	width: auto;
	margin: 35px 0 10px;
	padding: 0;
	color: #7FA401;
}

.sec-privacy dt:first-of-type {
	margin-top: 0;
}

.sec-privacy dt p {
	font-size: 16px;
	letter-spacing: 0.1em;
}

.sec-privacy dd {
	text-align: justify;
}

.sec-privacy dd p {
	font-size: 14px;
	line-height: 2;
	letter-spacing: 0.06em;
}

.sec-privacy .list-dot {
	margin: 13px 0 0 2px;
}

.sec-privacy .list-dot li {
	margin-bottom: 8px;
}

.sec-privacy .list-dot li:before {
	top: 1px;
}

.sec-privacy .list-dot li p {
	line-height: 1.7;
}

.sec-privacy ol {
	padding: 15px 0px 20px 18px;
}

.sec-privacy ol:last-child {
	padding-bottom: 0;
}

.sec-privacy ol li {
	margin-bottom: 4px;
	list-style: decimal;
	font-size: 12px;
	line-height: 1.8;
	letter-spacing: 0.06em;
}

/* error
------------------------------------*/
.form-wrap .txt-error,
.wpcf7-not-valid-tip,
.txt-response,
.wpcf7-response-output { display: block; }

.form-wrap .txt-error,
.wpcf7-not-valid-tip {
	margin: 10px 0 0;
	padding: 0;
	font-size: 13px;
	line-height: 1.6;
	letter-spacing: 0.08em;
}

.screen-reader-response { display: none; }

.txt-response,
.wpcf7-response-output {
	margin: 30px 0 0 170px;
	font-size: 16px;
	line-height: 1.6;
	letter-spacing: 0.12em;
}

.wpcf7-response-output:first-child {
	margin: -45px 0 45px;
	padding-top: 45px;
}

.wpcf7-response-output:empty {
	margin: 0;
	padding-top: 0;
}

.hidden-fields-container {
	border: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* recaptcha
------------------------------------*/
.grecaptcha-badge { pointer-events: none; z-index: -999; opacity: 0; transition: .15s ease-out; }
body.contact .grecaptcha-badge { pointer-events: auto; z-index: 0; opacity: 1; }