@charset "utf-8";
/*
Theme Name: takeo mayumi 2
Theme URI: https://takeomayumi.com/
Version: 2.0
*/

/* common
---------------------------------------------------------------------------*/
:root {
	--color-text: #136A39;
	--color-bg: #FBFFF9;
	--color-bg-dark: #F3F8F0;
	--color-bg-green: #E3EADE;
	--color-border: #DCE7D7;
	--color-border-green-light: #E2EADE;
	--color-border-green: rgba(19,106,57,0.7);
	--color-border-green-border: rgba(19,106,57,0.4);
	--font-gothic: 'yu-gothic-pr6n', '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック体', YuGothic, 'Hiragino Sans', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, sans-serif;
	--font-sans-l: 'NeueHaasUnicaPro-Light', sans-serif;
	--font-sans-r: 'NeueHaasUnicaPro-Regular', sans-serif;
}

body {
	overflow-y: scroll;
	background-color: var(--color-bg);
	color: var(--color-text);
	font-size: 14px;
	font-family: var(--font-gothic);
	font-weight: 400;
	line-height: 1;
	font-feature-settings: 'palt' 1;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-text-size-adjust: none !important;
	/*min-height: 100vh;
	min-height: 100dvh;*/
	min-height: -webkit-fill-available;
	-webkit-tap-highlight-color: transparent;
}

body.noscroll { position: fixed; width: 100%; }

::-moz-selection { background: #F3F8F0; color: var(--color-text); }
::selection { background: #F3F8F0; color: var(--color-text); }

p { font-size: 14px; line-height: 2; letter-spacing: 0.07em; margin-bottom: 14px; }
p:last-child { margin-bottom: 0 !important; }
address,i { font-style: normal; }
img { max-width: none; }

.block { display: inline-block !important; }
.wide { display: none !important; }
.narrow { display: inline-block !important; }

/* #loading
------------------------------------*/
#loading {
	display: none !important;
}

/* link
------------------------------------*/
a { color: var(--color-text); text-decoration: none; -webkit-transform: translateZ(0); }

.line { display: inline-block; position: relative; padding-bottom: 1px; line-height: 1; }
.line:after { display: block; content: ''; position: absolute; bottom: 0; left: 0; background-color: var(--color-text); width: 100%; height: 1px; }

/* .btn
------------------------------------*/
.btn-back a {
	display: inline-block;
	position: relative;
	padding: 5px 10px 10px 25px;
	font-family: var(--font-sans-r);
	font-size: 15px;
	letter-spacing: 0.03em;
	white-space: nowrap;
}
.btn-back a i { display: block; position: absolute; top: 3px; left: 0; transform: scaleX(-1); }

.btn-ac .plus {
	position: absolute;
	top: 32px;
	right: 7px;
	width: 13px;
	height: 13px;
	transition: .8s cubic-bezier(0.23, 1, 0.32, 1); /* easeOutQuint */
	transform: rotate(0deg);
}
.btn-ac.active .plus { transform: rotate(225deg); }

.btn-ac .plus:before, .btn-ac .plus:after { display: block; content: ''; position: absolute; background-color: var(--color-text); }
.btn-ac .plus:before { top: 0; left: 6px; width: 1px; height: 100%; }
.btn-ac .plus:after { top: 6px; left: 0; width: 100%; height: 1px; }

/* .btn-nav
------------------------------------*/
.btn-nav {
	position: fixed;
	top: 0;
	right: 0;
	box-sizing: border-box;
	width: 88px;
	height: 74px;
	z-index: 10001;
}

.btn-nav div, .btn-nav span {
	display: inline-block;
	box-sizing: border-box;
	transition: all .2s;
}

.btn-nav div {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: 45px;
	height: 11px;
}

.btn-nav span {
	position: absolute;
	left: 0;
	background-color: var(--color-text);
	width: 100%;
	height: 1px;
	-webkit-transform: translateZ(0);
}

.btn-nav span:nth-of-type(1) { top: 0; }
.btn-nav span:nth-of-type(2) { bottom: 0; }

/* .btn-nav.active
------------------------------------*/
.btn-nav.active span:nth-of-type(1) { transform: translateY(5px) rotate(-11deg); }
.btn-nav.active span:nth-of-type(2) { transform: translateY(-5px) rotate(11deg); }

/* .nav-sp
------------------------------------*/
.nav-sp {
	position: fixed;
	top: 0;
	left: 0;
	background: var(--color-bg-green);
	box-sizing: border-box;
	width: 100%;
	height: 100vh;
	height: 100dvh;
	z-index: 9999;
	display: none;
	opacity: 0;
}

.nav-sp .inner {
	overflow-y: scroll;
	box-sizing: border-box;
	width: 100vh;
	height: 100dvh;
}

.nav-sp .gnav {
	position: absolute;
	top: 50%;
	left: 28px;
	transform: translateY(-50%);
	margin-top: 6px;
}

.gnav a { display: block; padding: 7px 10px; }
.gnav strong { display: block; margin-bottom: -4px; font-weight: normal; }
.gnav strong img { width: auto; height: 42px; }
.gnav em { display: block; margin-left: 1px; }
.gnav em img { width: auto; height: 24px; }

.nav-sp .sns { position: absolute; bottom: 70px; left: 32px; }
.nav-sp .copyright { position: absolute; bottom: 35px; left: 38px; }
.nav-sp .copyright img { width: 180px; }

@media (max-height: 599px) {
	.nav-sp .gnav { margin-top: 15px; }
	.gnav a { padding-top: 6px; padding-bottom: 6px; }
	.gnav strong img { height: 40px; }
	.gnav em img { height: 22px; }
	.nav-sp .sns { bottom: 60px; left: 30px; }
	.nav-sp .copyright { bottom: 30px; left: 35px; }
	.nav-sp .copyright img { width: 170px; }
}


/* #wrap
---------------------------------------------------------------------------*/
#wrap { position: relative; }


/* header
---------------------------------------------------------------------------*/
.header {
	box-sizing: border-box;
	height: 120px;
	margin: 0 0 78px;
	padding: 0;
}

.header .title {
	position: relative;
	top: 30px;
	left: 22px;
	width: 190px;
}

.header .title.fixed { position: fixed; z-index: 10000; }
.header .title-en img { width: 162px; height: auto; }
.header .title-jp { margin: 3px 0 11px 1px; }
.header .title-jp img { width: 97px; height: auto; }
.header .title-sub { margin-left: 2px; }
_::-webkit-full-page-media, _:future, :root .header .title-sub { margin-left: 4px; }
.header .title-sub img { width: 107px; height: auto; }
.header .gnav { display: none; }

.header .title-en {
	position: relative;
}

.header .title-en .loading-wrap {
	position: absolute;
	top: 0;
	left: 59px;
}

.header .title-en .loading {
	margin: 1px 0 0 0.5px;
	opacity: 0;
}

.header .title-en .loading img {
	width: 15.5px;
}

.header .title-en .loading-logo {
	position: absolute;
	top: 0;
	left: 1px;
	overflow: hidden;
	width: 18.5px;
	height: 18.5px;
	/*opacity: 0;*/
}

.header .title-en .loading-logo > img {
	display: block;
	position: relative;
	width: 18.5px;
	z-index: 2;
}

.header .title-en .loading-logo .mask-bg {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	background: linear-gradient(135deg, #136A39 46.07%, #FBFFF9 107.72%);
	width: 18.5px;
	height: 18.5px;
	z-index: 0;
}

.header .title-en .loading-logo .mask {
	display: block;
	position: absolute;
	top: 5px;
	left: 10px;
	background: var(--color-bg);
	width: 11px;
	height: 8px;
	transform-origin: left center;
	z-index: 1;
	/*opacity: 0;*/
}

.header .title-en .loading-logo .mask-bg,
.header .title-en .loading-logo .mask { animation: spin .5s infinite linear; }
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); }}


/* footer
---------------------------------------------------------------------------*/
footer { box-sizing: border-box; margin: 0; padding: 160px 0 26px 28px; }
.copyright { position: absolute; bottom: 32px; right: 30px; }
.copyright img { width: 162px; }
.sns { display: -webkit-box; display: flex; }
.sns li a { display: block; padding: 0 5px; }
.pagetop { display: none; }


/* contents
---------------------------------------------------------------------------*/
#mainContents { display: block; width: 100%; margin: 0; padding: 0; text-align: left; }
.contents { position: relative; box-sizing: border-box; opacity: 0; }

#topContents,
#projectContents,
#profileContents,
#contactContents,
#errorContents {
	padding-right: 25px;
	padding-left: 55px;
}

/* .title-page
------------------------------------*/
.title-page { display: none !important; }

/* .dot-list
------------------------------------*/
.dot-list li {
	position: relative;
	margin: 0 0 2px 2px;
	padding-left: 13px;
	font-size: 13px;
	letter-spacing: 0.09em;
}

.dot-list li, .dot-list li p { line-height: 1.8; }
.dot-list li:last-of-type { margin-bottom: 0; }
.dot-list li:before { display: block; content: '・'; position: absolute; top: -1px; left: 0; }


/* page top
---------------------------------------------------------------------------*/

/* .project-feature
------------------------------------*/
.project-feature { margin-bottom: 80px; }

.project-feature > h2 {
	margin: 0 0 22px;
	font-family: var(--font-sans-l);
	font-size: 17px;
	letter-spacing: 0.07em;
}

/* .project-list-category
------------------------------------*/
.project-list-category {
	display: -webkit-box;
	display: flex;
	margin: 0 0 20px;
	white-space: nowrap;
}

.project-list-category h2 {
	margin-right: 14px;
	font-family: var(--font-sans-l);
	font-size: 12px;
	letter-spacing: 0.05em;
	transform: translateY(5px);
}

_::-webkit-full-page-media, _:future, :root .project-list-category h2 {
	transform: translateY(6px);
}

.project-list-category h2 .all { display: inline-block; }

.project-list-category ul { display: -webkit-box; display: flex; }
.project-list-category li { margin-right: 4px; font-size: 14px; letter-spacing: 0.04em; }
.project-list-category li.active { pointer-events: none; }

.project-list-category li span {
	display: block;
	position: relative;
	padding: 4px;
}

.project-list-category li span i {
	display: block;
	position: absolute;
	bottom: 3px;
	left: 4px;
	background: var(--color-text);
	/*width: calc(100% - 10px);*/
	width: 0;
	height: 1px;
	opacity: 0.8;
}

.project-list-category li span i {
	animation: project-list-category_line_out .1s ease-out forwards;
}
@keyframes project-list-category_line_out {
	0% { left: inherit; right: 4px; width: calc(100% - 9px); }
	100% { left: inherit; right: 4px; width: calc(0%); }
}

.project-list-category li.active span i {
	animation: project-list-category_line_in .35s cubic-bezier(0.19, 1, 0.22, 1) .15s forwards;
}
@keyframes project-list-category_line_in {
	0% { left: 4px; width: calc(0%); }
	100% { left: 4px; width: calc(100% - 9px); }
}


/* .project-list
------------------------------------*/
.project-list { border-top: 1px solid var(--color-border); }
.project-list article { border-bottom: 1px solid var(--color-border); }

.project-list article a {
	display: block;
	padding: 13px 0 16px;
}

.project-list article h2 {
	margin-bottom: 7px;
	font-size: 15px;
	line-height: 1.65;
	letter-spacing: 0.05em;
}

.project-list article .category {
	display: -webkit-box;
	display: flex;
}

.project-list article .category span {
	display: inline-block;
	border: 1px solid var(--color-border-green-border);
	border-radius: 6px;
	margin-right: 6px;
	padding: 4px 6px 4px 7px;
	font-size: 12px;
	letter-spacing: 0.07em;
}


/* page project single
---------------------------------------------------------------------------*/
#projectContents .btn-back { display: none; }

/* .project-title
------------------------------------*/
.project-title { margin-bottom: 30px; }

.project-title .year {
	display: inline-block;
	margin: 0 7px 7px 2px;
	font-family: var(--font-sans-l);
	font-size: 12px;
	letter-spacing: 0.08em;
	white-space: nowrap;
	opacity: 0.8;
}

.project-title .client {
	display: inline-block;
	font-size: 12px;
	letter-spacing: 0.04em;
	white-space: nowrap;
}

.project-title h1 {
	margin-top: 11px;
	font-size: 21px;
	line-height: 1.65;
	letter-spacing: 0.04em;
}

/* .project-main-img
------------------------------------*/
.project-main-img {
	position: relative;
	overflow: hidden;
	width: 100%;
	margin: 0 auto 2dvh;
	padding-bottom: 40px;
}

.slider-project-main-img {
	position: relative;
	width: 100%;
	height: 0;
	padding-bottom: calc(100%/3*2);
}

.slider-project-main-img.movie {
	padding-bottom: calc(56.25%);
}

.project-main-img .slick-list,
.project-main-img .slick-track,
.project-main-img .slick-slide {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
}

.project-main-img .inner {
	background-color: var(--color-bg-dark);
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	opacity: 0;
}

.project-main-img .inner:first-of-type {
	opacity: 1;
}

.project-main-img .inner img {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.project-main-img .inner.movie.youtube iframe {
	position: absolute;
	left: -1px;
	width: calc(100% + 2px);
}

.slider-project-main-img.movie .inner.movie.youtube iframe {
	top: -1px;
	height: calc(100% + 3px);
}

.slider-project-main-img:not(.movie) .inner.movie.youtube iframe {
	top: 50%;
	transform: translateY(-50%);
	height: 84.5%;
}

.project-main-img .inner.movie.inline video {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%);
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 100%;
}

.project-main-img .slick-arrow {
	position: absolute;
	bottom: -37px;
	width: 26px;
	height: 30px;
	background: url(img/share/ico-arrow-modal.svg) no-repeat center center / 12px auto;
	text-indent: -9999px;
}

.project-main-img .slick-prev {
	right: 26px;
	transform: scaleX(-1);
}

.project-main-img .slick-next {
	right: 0;
}

.project-main-img .slide-count {
	position: absolute;
	bottom: 13px;
	right: 62px;
	font-family: var(--font-sans-l);
	font-size: 12px;
	letter-spacing: 0.06em;
}

/* .project-txt
------------------------------------*/
.project-txt p a {
	text-decoration: underline;
}

.project-txt .jp p {
	font-size: 15px;
	line-height: 1.85;
	letter-spacing: 0.012em;
	text-align: justify;
}

.project-txt .en { margin: 45px 0 0 25px; font-family: var(--font-sans-l); }
.project-txt .en h2 { margin-bottom: 16px; font-size: 17px; line-height: 1.6; letter-spacing: 0.02em; }
.project-txt .en p { line-height: 1.62; font-size: 14px; letter-spacing: 0.015em; }

.project-txt .credit-wrap {
	margin-top: 45px;
}

.project-txt .credit-wrap + .credit-wrap {
	margin-top: 15px !important;
}

.project-txt .credit {
	font-size: 13px;
	line-height: 1.55;
	letter-spacing: -0.01em;
}

.project-txt .jp + .credit {
	margin-top: 25px;
}

.project-txt .credit > div,
.project-txt .credit > div dt,
.project-txt .credit > div dd {
	display: inline;
}

.project-txt .credit > div { margin-right: 4px; }
.project-txt .credit > div.year { margin-right: 1px; }
/*.project-txt .credit > div > i { display: none; }*/

.project-txt .credit dt i { padding: 0 3px 0 1px; }
.project-txt .credit .year dt i { padding: 0 0 0 5px; }

.project-txt .credit dt,
.project-txt .credit dd {
	display: inline;
}

.project-txt .url {
	margin-top: 30px;
	padding-bottom: 10px;
	font-family: var(--font-sans-l);
}

.project-txt .url li { margin-bottom: 7px; font-size: 14px; line-height: 1.2; letter-spacing: 0; word-break: break-all; }
.project-txt .url li:last-of-type { margin-bottom: 0; }
.project-txt .url li i { padding: 0 5px 0 2px; }
.project-txt .url li a { display: inline; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.project-txt .url li a:after { display: none; }

/* .project-img
------------------------------------*/
.project-img { margin-top: 55px; }
.project-img:first-child { margin-top: 5px !important; }

.project-img .img { margin-bottom: 25px; }
.project-img .img:last-of-type { margin-bottom: 0; }
.project-img figure img { width: 100%; }

.project-img figcaption {
	display: block;
	margin-top: 13px;
	font-size: 13px;
	line-height: 1.7;
	letter-spacing: 0.02em;
}

/*.project-img figcaption:not(.size-s) {
	line-height: 1.5;
}*/

.project-img figcaption + figcaption.size-s {
	margin-top: 3px !important;
	text-align: left;
}

.project-img figcaption.size-s {
	margin-top: 7px !important;
	font-family: var(--font-sans-l);
	font-size: 10px !important;
	text-align: right;
}

.project-img .img2 { display: -webkit-box; display: flex; justify-content: space-between; }
.project-img .img2 figure { width: 47%; }
.project-img .img2 figcaption { margin-top: 10px; font-size: 12px; line-height: 1.6; letter-spacing: 0; }
.project-img .img2 figcaption.size-s { margin-top: 6px; }

.project-img .movie:not(:first-child),
.project-img .movie + .img:not(.movie) {
	margin-top: 35px;
}

.project-img .movie.youtube .iframe {
	position: relative;
	overflow: hidden;
	width: 100%;
	height: 0;
	padding-bottom: 56.25%;
}

.project-img .movie.youtube iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.project-img .movie video { width: 100%; height: auto; }

/* .project-detail
------------------------------------*/
.project-detail { margin: 80px 0 0; }

.project-detail .project-detail-inner { margin-bottom: 60px; }
.project-detail .project-detail-inner.accordion { position: relative; margin-bottom: -7px; margin-left: -5px; }
.project-detail .project-detail-inner.accordion:first-of-type { margin-top: -8px; }
.project-detail .project-detail-inner.accordion:last-of-type { margin-bottom: 0; border-bottom: 1px solid var(--color-border); }

.project-detail .project-detail-inner.accordion .mask {
	display: none;
	position: absolute;
	top: 0;
	left: 0;
	background: var(--color-bg);
	width: 100%;
	height: 100%;
	z-index: 1;
	opacity: 0;
	pointer-events: none;
}

.project-detail-inner > h2 {
	position: relative;
	background: var(--color-bg);
	padding: 15px 50px 15px 5px;
	font-size: 15px;
	line-height: 1.5;
	letter-spacing: 0.04em;
	cursor: pointer;
}

.project-detail .project-detail-inner.accordion > h2 {
	display: flex;
	align-items: center;
	position: sticky;
	top: 0;
	left: 0;
	min-height: 52px;
	padding-top: 22px;
	z-index: 2;
}

.project-detail .project-detail-inner.accordion > h2:before,
.project-detail .project-detail-inner.accordion > h2:after {
	display: block;
	content: '';
	position: absolute;
	left: 0;
	background: var(--color-border);
	width: 100%;
	height: 1px;
	transition: .2s ease-out;
}

.project-detail .project-detail-inner.accordion > h2:before { top: 7px; }
.project-detail .project-detail-inner.accordion > h2:after { bottom: 0; opacity: 0; }
.project-detail .project-detail-inner.accordion > h2.active.sticky:before { opacity: 0; }
.project-detail .project-detail-inner.accordion > h2.active.sticky:after { opacity: 1; }

.project-detail .project-detail-inner.accordion > h2.btn-ac .plus { top: 41px; }
.project-detail .project-detail-inner.accordion > h2.btn-ac.sticky .plus { opacity: 0; }

.project-detail-inner > h2 span,
.project-detail-inner > h2.btn-ac .plus { transition: .15s ease-out; }

.project-detail-inner > h2 figure {
	align-self: flex-start;
	overflow: hidden;
	position: relative;
	width: 52px;
	min-width: 52px;
	height: 52px;
	margin-right: 18px;
}

.project-detail-inner > h2 figure img {
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	object-fit: cover;
	width: 100%;
	height: 100%;
}

.project-detail-inner > h2 span {
	display: inline-block;
	font-size: 14px;
	letter-spacing: 0.05em;
}

.project-detail-inner > h2 em {
	display: block;
	margin: 3px 0 3px 1px;
	font-family: var(--font-sans-l);
	font-size: 11px;
	line-height: 1.5;
	letter-spacing: 0.02em;
}

.project-detail-inner > h2 + div { display: none; padding: 0 6px 60px 6px; }
.project-detail-inner .project-txt { padding-top: 15px; }
.project-detail-inner .project-txt .credit-wrap { margin-top: 45px; }
.project-detail-inner .project-txt .jp + .credit-wrap { margin-top: 30px; }
.project-detail-inner .project-txt .url { margin-top: 25px; }
.project-detail-inner .project-img { margin-top: 45px; }

/* .project-modal
------------------------------------*/
.project-modal {
	display: none;
	overflow-y: scroll;
	position: fixed;
	top: 0;
	left: 0;
	background: rgba(227,234,222,1);
	width: 100%;
	height: 100vh;
	height: 100dvh;
	z-index: 10100;
	opacity: 0;
}

.project-modal-inner {
	position: relative;
	overflow: hidden;
	height: 100vh;
	height: 100dvh;
	min-height: 100vh;
	min-height: 100dvh;
}

.project-modal-close {
	position: absolute;
	bottom: 0;
	right: 0;
	padding: 30px 30px;
	z-index: 2;
	opacity: 0;
}

.project-modal-close img {
	width: 46px;
	height: auto;
}

.project-modal .slick-arrow {
	position: absolute;
	bottom: 0;
	background: url(img/share/ico-arrow-modal.svg) no-repeat left 10px center;
	background-size: 14px auto;
	width: 55px;
	height: 70px;
	text-indent: -9999px;
	z-index: 1;
}

.project-modal .slick-prev { left: 0; transform: scaleX(-1); }
.project-modal .slick-next { left: 55px; }

.project-modal-slide,
.project-modal-slide .slick-list,
.project-modal-slide .slick-track {
	width: 100% !important;
	height: 100% !important;
	z-index: 0;
}

.project-modal-slide .inner {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	transform: none !important;
	opacity: 1 !important;
}

.project-modal-slide .inner:not(.cap) {
	height: 100vh !important;
	height: 100dvh !important;
}

.project-modal-slide .inner:not(.cap) img {
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%,-50%) !important;
	width: auto;
	max-width: calc(100% - 0px);
	height: auto;
	max-height: calc(100% - 0px);
	margin: 0 auto !important;
}

.project-modal-slide .inner.cap img {
	display: block;
	width: 100%;
	height: auto;
}

.project-modal-slide .inner .caption {
	padding: 35px 35px 100px;
}

.project-modal-slide .inner .caption,
.project-modal-slide .inner .caption p {
	font-size: 14px;
	line-height: 2;
	letter-spacing: 0.02em;
	text-align: justify;
}

.project-modal-slide .inner .caption-wrap figcaption {
	display: none;
}

.project-modal-slide .inner figure {
	position: relative;
	width: 100%;
	height: 100%;
	opacity: 0;
}

/* .project-other
------------------------------------*/
.project-other { margin-top: 150px; }

.project-detail > h2,
.project-other > h2 {
	margin: 0 0 25px;
	font-size: 14px;
	letter-spacing: 0.07em;
}


/* page profile
---------------------------------------------------------------------------*/
.sec-profile .img { white-space: nowrap; }
.sec-profile .img img { width: 160px; height: auto; }

.sec-profile .img h4,
.sec-profile .img h3,
.sec-profile .img h2 { display: none; }

.sec-profile .img.narrow h4,
.sec-profile .img.narrow h3,
.sec-profile .img.narrow h2 { display: block; }

.sec-profile .img h4 {
	margin-bottom: 26px;
	font-family: var(--font-sans-l);
	font-size: 11px;
	letter-spacing: 0.06em;
}

.sec-profile .img h3 {
	margin-bottom: 16px;
	margin-left: -1px;
	font-family: var(--font-sans-l);
	font-size: 19px;
	letter-spacing: 0.09em;
}

.sec-profile .img h2 {
	margin-left: -1px;
	font-size: 13px;
	letter-spacing: 0.09em;
}

.sec-profile .txt {
	margin-top: 42px;
	margin-bottom: 50px;
}

.sec-profile .txt .jp {
	margin-bottom: 30px;
}

.sec-profile .txt .jp p {
	line-height: 2.05;
	letter-spacing: 0.02em;
	text-align: justify;
}

.sec-profile .txt .en p {
	font-size: 14px;
	line-height: 1.85;
	letter-spacing: -0.03em;
}


/* page contact
---------------------------------------------------------------------------*/
.sec-contact { margin-bottom: 38px; }
.sec-contact p { letter-spacing: 0.05em; }


/* .form-wrap
------------------------------------*/
.form-wrap { margin-bottom: 60px; }

.sent .form-wrap,
.sent .sec-privacy,
.sent .privacy-check,
.sent .btn-submit {
	display: none!important;
}


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

.form-wrap dt {
	margin-bottom: 7px;
}

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

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

.form-wrap dt span {
	padding-left: 6px;
	font-size: 10px;
	letter-spacing: 0.08em;
}

.form-wrap dd {
  box-sizing: border-box;
	min-height: 54px;
}

.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,
.form-wrap .btn-select .customSelect {
	display: inline-block;
	box-sizing: border-box;
	background-color: #FFFFFF;
	border: 1px solid var(--color-border-green-light);
	border-radius: 2px;
	width: 100%;
	height: 42px;
	padding: 12px 14px;
	font-size: 16px;
	letter-spacing: 0.06em;
}

.form-wrap textarea { height: 320px; padding: 16px 20px; }
::-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-top: 20px; }
.privacy-check .wpcf7-form-control-wrap { width: auto; margin-right: 10px; transform: translateY(3px); }
_::-webkit-full-page-media, _:future, :root .privacy-check .wpcf7-form-control-wrap { transform: translateY(1px); }

.privacy-check p { font-size: 13px; letter-spacing: 0.04em;}

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

.btn-submit:before {
	display: block;
	content: '';
	position: absolute;
	top: 9px;
	left: 0;
	background: url(img/share/logo-mark.svg) no-repeat left top;
	background-size: 100% auto;
	width: 24px;
	height: 24px;
	transform: scaleX(-1);
	pointer-events: none;
}

.btn-submit:after {
	display: block;
	content: '';
	position: absolute;
	bottom: 4px;
	left: 0;
	background-color: var(--color-border-green-border);
	width: calc(100% - 5px);
	height: 1px;
}

.btn-submit input {
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	display: block;
	background: none;
	box-sizing: border-box;
	border: none;
	margin: 0;
	padding: 0 5px 5px 0;
	font-size: 14px;
	line-height: 1.4;
	letter-spacing: 0.08em;
	text-align: left;
	white-space: nowrap;
}

/* 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: 9px 0 16px;
	padding: 0;
	font-size: 11px;
	line-height: 1.6;
	letter-spacing: 0.05em;
}

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

.txt-response,
.wpcf7-response-output {
	margin: 30px 0 0;
	font-size: 14px;
	line-height: 1.8;
	letter-spacing: 0.08em;
	text-decoration: underline;
}

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

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

/* .sec-privacy
------------------------------------*/
.sec-privacy {
	overflow: hidden;
	box-sizing: border-box;
	background-color: var(--color-bg-dark);
	border-radius: 2px;
	height: 240px;
	padding: 8px 6px;
}

.sec-privacy .inner {
	overflow-y: scroll;
	box-sizing: border-box;
	height: 100%;
	padding: 35px 25px 30px;
}

.sec-privacy .inner::-webkit-scrollbar { width: 1px; }
.sec-privacy .inner::-webkit-scrollbar-track { border-radius: 0; background: none; }
.sec-privacy .inner::-webkit-scrollbar-thumb { border-radius: 0; background: var(--color-text); }

.sec-privacy h2 {
	margin-bottom: 25px;
	font-size: 13px;
	letter-spacing: 0.06em;
}

.sec-privacy p {
	font-size: 11px;
	line-height: 1.85;
	letter-spacing: 0.03em;
	text-align: justify;
}

.sec-privacy dl > div { margin-bottom: 25px; }
.sec-privacy dl > div:last-of-type { margin-bottom: 0; }
.sec-privacy dt { margin-bottom: 7px; }
.sec-privacy dt, .sec-privacy dt p { font-size: 12px; }
.sec-privacy dd ul { margin: -6px 0 18px; }
.sec-privacy dd ul.mt { margin-top: -2px; }
.sec-privacy dd .dot-list.mt li { margin-bottom: 4px; }

/* 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; }


/* page error
---------------------------------------------------------------------------*/
#errorContents h1 {
	margin-bottom: 24px;
	font-size: 17px;
	line-height: 1.6;
	letter-spacing: 0.08em;
}

.sec-contact p { text-align: justify; }
.sec-contact p a { text-decoration: underline; }
.sec-contact p br { display: none; }