:root{--bg:#f1f2f4;--ink:#111;--line:#c8c9cb;--space:clamp(20px,3.5vw,52px)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--bg);font-family:Inter,"Noto Sans JP",sans-serif;font-size:12px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{height:auto}.skip-link{position:fixed;top:-60px;left:20px;z-index:99;padding:10px;background:#111;color:#fff}.skip-link:focus{top:20px}
.site-header{display:grid;grid-template-columns:160px 1fr;gap:32px;align-items:start;padding:34px var(--space) 18px}.wordmark{font-family:Georgia,serif;font-size:62px;font-weight:400;line-height:.8;letter-spacing:-.09em}.wordmark sup{margin-left:4px;font-family:Inter,sans-serif;font-size:8px;letter-spacing:0}.custom-logo{width:auto;max-width:180px;max-height:70px}.site-navigation .menu{display:flex;justify-content:flex-end;gap:28px;margin:0;padding:5px 0;list-style:none;font-weight:600}.site-navigation a{position:relative}.site-navigation a::after{position:absolute;right:0;bottom:-3px;left:0;height:1px;background:#111;content:"";transform:scaleX(0);transform-origin:left;transition:transform .2s}.site-navigation a:hover::after,.current-menu-item>a::after{transform:scaleX(1)}.menu-toggle{display:none;border:0;background:none;font-weight:600}
.project-head,.single-head{padding:22px var(--space)}.project-head h1,.single-head h1{margin:5px 0 0;font-size:15px;font-weight:500}.category-filter{display:grid;grid-template-columns:90px 1fr;gap:20px}.category-filter>div{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));gap:2px 20px}.category-filter a:hover{text-decoration:underline}.outline-number{font-size:54px;font-weight:400;line-height:1;color:transparent;-webkit-text-stroke:1px #111;text-align:right}
.project-strip{display:flex;gap:10px;overflow-x:auto;padding:0 var(--space) 28px;scrollbar-width:thin;scroll-snap-type:x proximity}.project-card{flex:0 0 clamp(230px,22vw,350px);scroll-snap-align:start}.project-card figure{display:grid;aspect-ratio:.68;margin:0 0 10px;overflow:hidden;place-items:center;background:#d4d5d7}.project-card:nth-child(4n+2) figure{background:#dedbd5}.project-card:nth-child(4n+3) figure{background:#c8ced0}.project-card:nth-child(4n+4) figure{background:#d9d4d2}.project-card figure img{height:100%;object-fit:cover;filter:grayscale(1);transition:filter .35s,transform .35s}.project-card:hover figure img{filter:grayscale(0);transform:scale(1.02)}.project-card figure>span{font-size:clamp(42px,7vw,96px);color:transparent;-webkit-text-stroke:1px #111}.project-card h2{margin:0;font-size:17px;font-weight:500;text-transform:uppercase;letter-spacing:.015em}.project-meta{margin-top:3px;color:#4e4e4e;font-size:10px}.project-meta ul{display:inline;margin:0;padding:0;list-style:none}.project-meta li{display:inline}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px 10px;padding:10px var(--space) 70px}.project-grid .project-card{min-width:0}.navigation.pagination{padding:0 var(--space) 60px}.nav-links{display:flex;gap:20px}
.service-child-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.single-head{padding-top:75px}.single-head h1{font-size:clamp(28px,5vw,70px);line-height:1;text-transform:uppercase}.single-meta{padding-top:8px}.single-visual{margin:25px var(--space) 90px}.single-visual img{max-height:85vh;object-fit:cover}.entry-content{width:min(calc(100% - 40px),860px);margin:0 auto;padding:20px 0 120px;font-size:15px;line-height:1.9}.entry-content h2{margin-top:65px;font-size:30px;line-height:1.3}.entry-content h3{margin-top:42px;font-size:20px}.entry-content a{text-decoration:underline}.post-navigation{display:flex;justify-content:space-between;padding:0 var(--space) 80px;font-size:14px}.not-found{min-height:65vh;padding:100px var(--space)}.not-found .outline-number{text-align:left;font-size:clamp(90px,20vw,280px)}.not-found h1{font-size:30px}
.breadcrumbs-list{display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:8px 0;list-style:none}.breadcrumbs-list li{display:flex;align-items:center}.breadcrumbs-list li+li::before{margin:0 .7em;color:#777;content:"-"}.breadcrumbs-list a:hover{text-decoration:underline}.breadcrumbs-list span[aria-current=page]{color:#555}
.site-footer{display:grid;grid-template-columns:1fr 1fr 1fr 1.2fr;gap:30px;padding:30px var(--space);border-top:1px solid var(--line);font-size:10px}.site-footer .menu{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none}.footer-contact{text-align:right}.footer-contact a{font-weight:600}
@media(max-width:800px){.site-header{grid-template-columns:1fr auto}.wordmark{font-size:48px}.menu-toggle{display:block}.site-navigation{position:fixed;inset:0;z-index:10;display:none;padding:100px 30px;background:#111;color:#fff}.site-navigation.is-open{display:block}.site-navigation .menu{align-items:flex-start;flex-direction:column;font-size:28px}.menu-toggle{position:relative;z-index:11}.menu-toggle[aria-expanded=true]{color:#fff}.project-head,.single-head{grid-template-columns:1fr auto;gap:20px}.category-filter{grid-column:1/-1;grid-row:2}.category-filter>div{grid-template-columns:repeat(2,1fr)}.outline-number{grid-column:2;grid-row:1}.project-strip{padding-bottom:50px}.project-card{flex-basis:76vw}.project-grid{grid-template-columns:1fr 1fr}.service-child-grid{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr 1fr}.footer-contact{text-align:left}}
@media(max-width:520px){.project-grid{grid-template-columns:1fr}.project-head,.single-head{padding-top:35px}.category-filter{grid-template-columns:65px 1fr}.site-footer{grid-template-columns:1fr}.outline-number{font-size:42px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important}}

/* Entry headings */
.entry-content :is(h1,h2,h3,h4,h5){color:var(--ink);font-weight:500;text-wrap:pretty}
.entry-content h1{margin:0 0 1.15em;padding:0 0 .32em;border-bottom:1px solid var(--ink);font-size:clamp(1.9rem,5vw,3.4rem);line-height:1.08;letter-spacing:-.045em}
.entry-content h2{display:flex;align-items:center;gap:.65em;margin:2.4em 0 .9em;padding:0 0 0 .65em;border-left:4px solid var(--ink);font-size:clamp(1.5rem,3.4vw,2rem);line-height:1.25;letter-spacing:-.025em}
.entry-content h2::after{min-width:36px;height:1px;flex:1;background:var(--line);content:""}
.entry-content h3{position:relative;margin:2.2em 0 .8em;padding-bottom:.55em;font-size:clamp(1.25rem,2.6vw,1.55rem);line-height:1.35;letter-spacing:-.015em}
.entry-content h3::after{position:absolute;bottom:0;left:0;width:3rem;height:2px;background:var(--ink);content:""}
.entry-content h4{margin:2em 0 .65em;padding:.45em .7em;border:1px solid var(--line);background:rgba(255,255,255,.42);font-size:clamp(1.05rem,2.1vw,1.25rem);line-height:1.45;letter-spacing:.025em}
.entry-content h5{display:flex;align-items:center;gap:.55em;margin:1.8em 0 .55em;font-size:clamp(.95rem,1.8vw,1.05rem);line-height:1.5;letter-spacing:.06em}
.entry-content h5::before{width:1.25rem;height:1px;flex:0 0 auto;background:var(--ink);content:""}
@media(max-width:520px){.entry-content h1{margin-bottom:1em}.entry-content h2{margin-top:2em;padding-left:.5em}.entry-content h3{margin-top:1.8em}.entry-content h4{margin-top:1.6em}}

/* Entry lists */
.entry-content :is(ul,ol,dl){margin:1.6em 0}
.entry-content :is(ul,ol){padding-left:0;list-style:none}
.entry-content :is(ul,ol)>li{position:relative;margin:.55em 0;padding-left:1.8em}
.entry-content ul>li::before{position:absolute;top:.78em;left:.25em;width:.45em;height:.45em;border:1px solid var(--ink);background:transparent;content:"";transform:translateY(-50%) rotate(45deg)}
.entry-content ol{counter-reset:entry-list}
.entry-content ol>li{counter-increment:entry-list}
.entry-content ol>li::before{position:absolute;top:.05em;left:0;color:#666;font-size:.78em;font-weight:600;letter-spacing:.04em;content:counter(entry-list,decimal-leading-zero)}
.entry-content :is(ul,ol) :is(ul,ol){margin:.55em 0;padding-left:.75em}
.entry-content ul ul>li::before{width:.4em;height:1px;border:0;background:var(--ink);transform:none}
.entry-content li>p{margin:.35em 0}
.entry-content dl{display:grid;gap:8px}
.entry-content dt{position:relative;padding:1em 1.1em .25em 2em;background:rgba(216,182,164,.13);font-weight:600;letter-spacing:.025em}
.entry-content dt::before{position:absolute;top:1.45em;left:1em;width:7px;height:7px;background:#d8b6a4;content:"";transform:rotate(45deg)}
.entry-content dd{margin:-8px 0 0;padding:.55em 1.1em 1em 2em;background:rgba(216,182,164,.13);color:#444}
.entry-content dd+dd{padding-top:0}
@media(max-width:520px){.entry-content :is(ul,ol,dl){margin:1.35em 0}.entry-content :is(ul,ol)>li{padding-left:1.55em}.entry-content dd{padding-left:.75em}}

/* Page hero */
.single-head.page-hero{display:block;min-height:0;padding:0 var(--space) 28px}
.page-hero__visual{position:relative;display:flex;min-height:clamp(280px,38vw,500px);align-items:flex-end;overflow:hidden;padding:clamp(26px,4vw,52px);background-color:#d4d5d7;background-position:center;background-size:cover;isolation:isolate}
.page-hero__title{position:relative;z-index:1;max-width:min(100%,1100px)}
.page-hero__label{display:block;margin-bottom:.8rem;font-size:10px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.page-hero .page-hero__title h1{margin:0;font-size:clamp(2.25rem,5.5vw,5rem);font-weight:500;line-height:.95;letter-spacing:-.055em;text-wrap:balance;text-transform:none}
.page-hero.has-thumbnail .page-hero__visual::before{position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(0,0,0,.04) 25%,rgba(0,0,0,.68) 100%);content:""}
.page-hero.has-thumbnail .page-hero__title{color:#fff;text-shadow:0 2px 24px rgba(0,0,0,.24)}
.page-hero.no-thumbnail .page-hero__visual{display:block;min-height:0;overflow:visible;padding:58px 0 28px;background:none}
.page-hero.no-thumbnail .page-hero__title{position:relative;max-width:100%;padding:12px 0 18px 34px}
.page-hero.no-thumbnail .page-hero__title::before{position:absolute;top:0;bottom:0;left:0;width:8px;background:#d8b6a4;content:""}
.page-hero.no-thumbnail .page-hero__title::after{position:absolute;bottom:0;left:34px;width:72px;height:2px;background:var(--ink);content:""}
.page-hero.no-thumbnail .page-hero__title h1{max-width:none;font-size:clamp(2rem,4vw,3.25rem);line-height:1.2;letter-spacing:-.035em}
.page-hero>.breadcrumbs{padding-top:14px}
@media(max-width:520px){.single-head.page-hero{padding-top:18px;padding-bottom:22px}.page-hero.has-thumbnail .page-hero__visual{min-height:250px;padding:24px 20px}.page-hero.has-thumbnail .page-hero__title h1{font-size:clamp(2rem,10vw,3.25rem);line-height:1}.page-hero.no-thumbnail .page-hero__visual{padding:32px 0 14px}.page-hero.no-thumbnail .page-hero__title{padding:8px 0 15px 24px}.page-hero.no-thumbnail .page-hero__title::before{width:6px}.page-hero.no-thumbnail .page-hero__title::after{left:24px;width:52px}.page-hero.no-thumbnail .page-hero__title h1{font-size:clamp(1.75rem,8vw,2.4rem)}.page-hero__label{margin-bottom:.55rem}}

/* Section divider arrow */
.arrow{position:relative;width:min(calc(100% - 40px),860px);height:76px;margin:54px auto 62px}
.arrow::after{position:absolute;top:0;left:50%;width:58px;height:68px;background:#d8b6a4;content:"";clip-path:polygon(29% 0,71% 0,71% 43%,100% 43%,50% 100%,0 43%,29% 43%);filter:drop-shadow(0 3px 2px rgba(0,0,0,.12));transform:translateX(-50%)}
@media(max-width:520px){.arrow{height:62px;margin:40px auto 46px}.arrow::after{width:48px;height:57px}}

/* Contact Form 7 */
.entry-content>.wpcf7{width:100%;margin-top:20px}
.entry-content>.wpcf7 form{margin:0}
.entry-content>.wpcf7 form>p{margin:0 0 8px;font-size:11px;font-weight:500;letter-spacing:.04em}
.entry-content>.wpcf7 .wpcf7-form-control-wrap{display:block;margin-bottom:30px}
.entry-content>.wpcf7 input[type=text],
.entry-content>.wpcf7 input[type=email],
.entry-content>.wpcf7 input[type=tel],
.entry-content>.wpcf7 input[type=url],
.entry-content>.wpcf7 textarea{display:block;width:100%;padding:12px 14px;border:0;border-bottom:1px solid var(--ink);border-radius:0;outline:0;background:#fff;color:var(--ink);font:inherit;font-size:15px;line-height:1.6;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.entry-content>.wpcf7 textarea{min-height:190px;padding:14px;border:1px solid var(--ink);resize:vertical}
.entry-content>.wpcf7 input[type=text]:focus,
.entry-content>.wpcf7 input[type=email]:focus,
.entry-content>.wpcf7 input[type=tel]:focus,
.entry-content>.wpcf7 input[type=url]:focus{border-color:#777;box-shadow:0 2px 0 #111}
.entry-content>.wpcf7 textarea:focus{border-color:#777;box-shadow:inset 0 0 0 1px #111}
.entry-content>.wpcf7 .wpcf7-not-valid{border-color:#b42318}
.entry-content>.wpcf7 .wpcf7-not-valid-tip{margin-top:7px;color:#b42318;font-size:11px;font-weight:400}
.entry-content>.wpcf7 input[type=submit]{min-width:180px;margin-top:12px;padding:15px 32px;border:1px solid var(--ink);border-radius:0;background:var(--ink);color:var(--bg);font:inherit;font-size:12px;font-weight:600;letter-spacing:.08em;cursor:pointer;transition:background .2s,color .2s;-webkit-appearance:none;appearance:none}
.entry-content>.wpcf7 input[type=submit]:hover,
.entry-content>.wpcf7 input[type=submit]:focus-visible{background:transparent;color:var(--ink)}
.entry-content>.wpcf7 form.submitting input[type=submit]{cursor:wait;opacity:.55}
.entry-content>.wpcf7 .wpcf7-spinner{margin:0 0 0 12px;vertical-align:middle}
.entry-content>.wpcf7 .wpcf7-response-output{margin:30px 0 0;padding:14px 16px;border-width:1px;font-size:12px}
@media(max-width:520px){.entry-content>.wpcf7 .wpcf7-form-control-wrap{margin-bottom:22px}.entry-content>.wpcf7 input[type=submit]{width:100%}}

/* ========================================
   お問い合わせ用封筒
======================================== */
.yy-envelope {
	--envelope-width: 480px;
	--envelope-height: 280px;

	/* 封筒本体の線 */
	--envelope-line: #b5b5b5;

	/* フタの斜線は少し濃くする */
	--envelope-flap-line: #8f8f8f;

	--envelope-bg: #fff;

	position: relative;
	display: block;
	width: var(--envelope-width);
	height: calc(var(--envelope-height) + 105px);
	margin: 0 auto;
	color: #222;
	text-decoration: none;
	box-sizing: border-box;
}


/* ========================================
   縦書きテキスト
======================================== */

.yy-envelope__text {
	position: absolute;
	top: 63px;
	left: 50%;
	z-index: 20;

	display: flex;
	align-items: flex-start;
	gap: 8px;

	transform: translateX(-50%);
	pointer-events: none;
}

.yy-envelope__ja {
	font-family:
		"Yu Mincho",
		"YuMincho",
		"Hiragino Mincho ProN",
		"Hiragino Mincho Pro",
		serif;

	font-size: 26px;
	font-weight: 400;
	line-height: 1.65;
	letter-spacing: 0.08em;
}

.yy-envelope__en {
	padding-top: 4px;

	color: #777;

	font-family:
		Arial,
		Helvetica,
		sans-serif;

	font-size: 13px;
	line-height: 1;
	letter-spacing: 0.04em;
}


/* ========================================
   封筒全体
======================================== */

.yy-envelope__body {
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;

	display: block;
	width: 100%;
	height: var(--envelope-height);

	overflow: visible;
}


/* ========================================
   封筒本体・外枠
======================================== */

.yy-envelope__back {
	position: absolute;
	inset: 0;
	z-index: 1;

	display: block;

	background: var(--envelope-bg);
	border: 1px solid var(--envelope-line);

	box-sizing: border-box;
}


/* ========================================
   封筒下部の折り線
======================================== */

/* 左下から中央へ向かう線 */
.yy-envelope__fold-left {
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: 3;

	display: block;
	width: 50%;
	height: 52%;

	background:
		linear-gradient(
			to bottom right,
			transparent calc(50% - 0.5px),
			var(--envelope-line) 50%,
			transparent calc(50% + 0.5px)
		);

	pointer-events: none;
}

/* 右下から中央へ向かう線 */
.yy-envelope__fold-right {
	position: absolute;
	right: 0;
	bottom: 0;
	z-index: 3;

	display: block;
	width: 50%;
	height: 52%;

	background:
		linear-gradient(
			to bottom left,
			transparent calc(50% - 0.5px),
			var(--envelope-line) 50%,
			transparent calc(50% + 0.5px)
		);

	pointer-events: none;
}

/* ========================================
   フタの下に見える影
======================================== */

.yy-envelope__shadow {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 4;

	display: block;
	width: 100%;
	height: 65%;

	background: rgba(0, 0, 0, 0.08);

	/* 閉じたフタと同じ三角形 */
	clip-path: polygon(
		0 0,
		100% 0,
		50% 100%
	);

	opacity: 0;

	/*
	 * top位置は動かさない。
	 * 最上部を基準に、元のフタの大きさで配置する。
	 */
	transform-origin: 50% 0;
	transform: scaleY(1);

	transition: opacity 0.35s ease;

	pointer-events: none;
}


/* ========================================
   封筒のフタ
======================================== */
.yy-envelope__flap {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 5;

	display: block;
	width: 100%;
	height: 65%;

	background: var(--envelope-bg);

	clip-path: polygon(
		0 0,
		100% 0,
		50% 100%
	);

	/*
	 * 上辺を軸に縦方向へ縮める。
	 * 疑似要素の枠線も一緒に変形するため、
	 * アニメーション時にもずれません。
	 */
	transform-origin: 50% 0;
	transform: scaleY(1);

	transition:
		transform 0.45s cubic-bezier(0.4, 0, 0.2, 1);

	pointer-events: none;
}

/* フタ左側の斜線 */
.yy-envelope__flap::before {
	content: "";

	position: absolute;
	top: 0;
	left: 0;

	display: block;
	width: 62.8%;
	height: 2px;

	background: var(--envelope-flap-line);

	transform-origin: left center;
	transform: translateY(-1px) rotate(37.2deg);

	pointer-events: none;
}

/* フタ右側の斜線 */
.yy-envelope__flap::after {
	content: "";

	position: absolute;
	top: 0;
	right: 0;

	display: block;
	width: 62.8%;
	height: 2px;

	background: var(--envelope-flap-line);

	transform-origin: right center;
	transform: translateY(-1px) rotate(-37.2deg);

	pointer-events: none;
}


/* ========================================
   マウスオーバー時
======================================== */

/* フタの先端を少し上げる */
.yy-envelope:hover .yy-envelope__flap,
.yy-envelope:focus-visible .yy-envelope__flap {
	transform: scaleY(0.90);
}

/*
 * 影は移動させず、元のフタの位置に残す。
 * 縮んだフタとの差が影として見える。
 */
.yy-envelope:hover .yy-envelope__shadow,
.yy-envelope:focus-visible .yy-envelope__shadow {
	opacity: 1;
	transform: scaleY(1);
}


/* ========================================
   キーボード操作
======================================== */

.yy-envelope:focus-visible {
	outline: 2px solid #555;
	outline-offset: 8px;
}


/* ========================================
   スマートフォン
======================================== */

@media screen and (max-width: 600px) {

	.yy-envelope {
		--envelope-width: 300px;
		--envelope-height: 175px;

		height: calc(var(--envelope-height) + 80px);
	}

	.yy-envelope__ja {
		font-size: 20px;
		line-height: 1.55;
	}

	.yy-envelope__en {
		font-size: 11px;
	}

	.yy-envelope:hover .yy-envelope__flap,
	.yy-envelope:focus-visible .yy-envelope__flap {
		transform: scaleY(0.91);
	}

	.yy-envelope:hover .yy-envelope__shadow,
	.yy-envelope:focus-visible .yy-envelope__shadow {
		opacity: 1;
		transform: scaleY(1);
	}
}


/* ========================================
   アニメーション抑制設定
======================================== */
.contact-wrap {
    margin: 3em 0 5em;
}
@media (prefers-reduced-motion: reduce) {

	.yy-envelope__flap,
	.yy-envelope__shadow {
		transition: none;
	}
}
