@charset "UTF-8";

/* CSS Document */

/* ==========================================================
   DESIGN TOKENS
   Main : #0E0E0E (Black)
   Sub  : #2B2B2B (Charcoal) / #6B6B6B (Iron) / #E8E2D6 (Wood) / #F5F2EC (Paper)
   Acc  : #B8924A (Gold — logo / restrained accent only)
   Type : Shippori Mincho (JP heading) + Cormorant Garamond (Latin heading)
          Noto Sans JP (body) + JetBrains Mono (label)
   ========================================================== */
:root {
	--c-ink: #0E0E0E;
	--c-charcoal: #2B2B2B;
	--c-iron: #6B6B6B;
	--c-iron-soft: #9A9388;
	--c-line: #cdc6b8;
	--c-wood: #E8E2D6;
	--c-paper: #F5F2EC;
	--c-paper-deep: #ECE6D8;
	--c-gold: #B8924A;
	--c-gold-soft: #d4b478;
	--f-jp-serif: "Shippori Mincho", "Yu Mincho", "Hiragino Mincho ProN", serif;
	--f-en-serif: "Cormorant Garamond", "Times New Roman", serif;
	--f-jp-sans: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
	--f-mono: "JetBrains Mono", "Courier New", monospace;
}


/* ==========================================================
   BASE
   ========================================================== */
html {
	scroll-behavior: smooth;
}
body {
	font-family: var(--f-jp-sans);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.9;
	color: var(--c-ink);
	background: var(--c-paper);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img {
	max-width: 100%;
	display: block;
}
a {
	color: inherit;
	text-decoration: none;
}
::selection {
	background: var(--c-ink);
	color: var(--c-wood);
}


/* ==========================================================
   共通ユーティリティ
   ========================================================== */
/* コンテンツ幅（1200px / 960px の2種） */
.wrapper {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 48px;
}
.wrapper_small {
	max-width: 960px;
	margin: 0 auto;
	padding: 0 48px;
}

/* セクションの上下パディング */
.container {
	position: relative;
	padding: 160px 0;
}

/* PC/SP 表示切り替え */
.pc { display: block; }
.sp { display: none; }

/* Mono label / eyebrow */
.eyebrow {
	font-family: var(--f-mono);
	font-size: 11px;
	letter-spacing: 0.28em;
	color: var(--c-iron);
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	gap: 12px;
}
.eyebrow::before {
	content: "";
	width: 24px;
	height: 1px;
	background: var(--c-iron);
}
.eyebrow--center::before { display: none; }
.eyebrow--center { gap: 0; }

/* 見出し（共通） */
.h-jp {
	font-family: var(--f-jp-serif);
	font-weight: 600;
	line-height: 1.55;
	letter-spacing: 0.04em;
	color: var(--c-ink);
}
.h-en {
	font-family: var(--f-en-serif);
	font-weight: 500;
	font-style: italic;
	letter-spacing: 0.02em;
	color: var(--c-charcoal);
}

/* Hairline */
.hairline {
	height: 1px;
	background: var(--c-line);
	border: 0;
}

/* セクション番号ラベル */
.section-num {
	position: absolute;
	top: 48px;
	left: 48px;
	font-family: var(--f-mono);
	font-size: 11px;
	letter-spacing: 0.24em;
	color: var(--c-iron);
	display: flex;
	align-items: center;
	gap: 14px;
}
.section-num::after {
	content: "";
	width: 60px;
	height: 1px;
	background: var(--c-iron);
}

/* 背景テーマ（セクション共通の配色切替） */
.theme-paper { background: var(--c-paper); }
.theme-wood { background: var(--c-wood); }
.theme-ink {
	background: var(--c-ink);
	color: var(--c-paper);
}
.theme-ink .h-jp { color: var(--c-paper); }
.theme-ink .eyebrow { color: var(--c-gold-soft); }
.theme-ink .eyebrow::before { background: var(--c-gold-soft); }
.theme-ink .section-num { color: var(--c-iron-soft); }
.theme-ink .section-num::after { background: var(--c-iron-soft); }

/* 共通ボタン */
.btn-primary {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 22px 36px;
	background: var(--c-paper);
	color: var(--c-ink);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.1em;
	border: 1px solid var(--c-paper);
	transition: all .25s ease;
}
.btn-primary:hover {
	background: var(--c-gold);
	color: var(--c-paper);
	border-color: var(--c-gold);
}
.btn-primary--dark {
	background: var(--c-ink);
	color: var(--c-paper);
	border-color: var(--c-ink);
}
.btn-primary .arrow {
	font-family: var(--f-en-serif);
	font-style: italic;
	font-size: 18px;
}

.btn-ghost-light {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding: 22px 28px;
	border: 1px solid rgba(245,242,236,0.4);
	color: var(--c-paper);
	font-size: 13px;
	letter-spacing: 0.12em;
	transition: all .25s ease;
}
.btn-ghost-light:hover {
	border-color: var(--c-paper);
	background: rgba(245,242,236,0.06);
}

.btn-line {
	display: inline-flex;
	align-items: center;
	gap: 14px;
	padding: 18px 32px;
	border: 1px solid var(--c-ink);
	font-size: 13px;
	letter-spacing: 0.16em;
	font-weight: 500;
	transition: all .25s ease;
}
.btn-line:hover {
	background: var(--c-ink);
	color: var(--c-paper);
}
.btn-line .arrow {
	font-family: var(--f-en-serif);
	font-style: italic;
}


/* ==========================================================
   logo（ヘッダー・フッター共通のブランドマーク）
   ========================================================== */
.logo {
	display: flex;
	align-items: center;
	gap: 14px;
}
.logo__glyph {
	width: 36px;
	height: 36px;
	border: 1px solid var(--c-ink);
	display: grid;
	place-items: center;
	font-family: var(--f-en-serif);
	font-style: italic;
	font-weight: 600;
	font-size: 18px;
	color: var(--c-gold);
	letter-spacing: -0.04em;
	background: var(--c-paper);
}
.logo__text {
	display: flex;
	flex-direction: column;
	line-height: 1.1;
}
.logo__en {
	font-family: var(--f-en-serif);
	font-weight: 600;
	font-size: 18px;
	letter-spacing: 0.18em;
	color: var(--c-ink);
}
.logo__jp {
	font-family: var(--f-jp-serif);
	font-size: 10px;
	letter-spacing: 0.16em;
	color: var(--c-iron);
	margin-top: 4px;
}


/* ==========================================================
   header
   ========================================================== */
.header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(245,242,236,0.92);
	backdrop-filter: saturate(140%) blur(8px);
	-webkit-backdrop-filter: saturate(140%) blur(8px);
	border-bottom: 1px solid var(--c-line);
	transition: box-shadow .3s ease;
}
.header.is-scroll {
	box-shadow: 0 6px 24px rgba(14,14,14,0.08);
}
.header__inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 18px 48px;
	display: grid;
	grid-template-columns: auto 1fr auto;
	align-items: center;
	gap: 40px;
}
.header__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 22px;
	background: var(--c-ink);
	color: var(--c-paper);
	font-size: 12px;
	letter-spacing: 0.16em;
	font-weight: 500;
	transition: background .25s ease;
}
.header__cta:hover { background: var(--c-gold); }
.header__cta .arrow {
	font-family: var(--f-en-serif);
	font-style: italic;
}


/* ==========================================================
   global-nav（PC横並びナビ）
   ========================================================== */
.global-nav__box {
	display: flex;
	gap: 36px;
	justify-content: center;
}
.global-nav__link {
	font-size: 13px;
	letter-spacing: 0.12em;
	font-weight: 500;
	color: var(--c-charcoal);
	position: relative;
	padding: 6px 0;
}
.global-nav__link::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 0;
	height: 1px;
	background: var(--c-ink);
	transition: width .3s ease;
}
.global-nav__link:hover::after { width: 100%; }
.global-nav__link.is-current::after { width: 100%; }
.global-nav__num {
	font-family: var(--f-mono);
	font-size: 9px;
	color: var(--c-gold);
	margin-right: 6px;
	vertical-align: super;
}


/* ==========================================================
   footer
   ========================================================== */
.footer {
	background: var(--c-ink);
	color: var(--c-paper);
	padding: 96px 0 32px;
	border-top: 1px solid var(--c-charcoal);
}
.footer__top {
	display: grid;
	grid-template-columns: 1.6fr 1fr 1fr 1fr;
	gap: 48px;
	padding-bottom: 64px;
	border-bottom: 1px solid rgba(245,242,236,0.15);
}
.footer__brand .logo__glyph {
	border-color: var(--c-paper);
	background: transparent;
}
.footer__brand .logo__en { color: var(--c-paper); }
.footer__brand .logo__jp { color: rgba(245,242,236,0.5); }
.footer__addr {
	margin-top: 24px;
	font-size: 12px;
	line-height: 2;
	color: rgba(245,242,236,0.6);
}
.footer__h4 {
	font-family: var(--f-mono);
	font-size: 11px;
	letter-spacing: 0.24em;
	color: var(--c-gold-soft);
	margin-bottom: 20px;
}
.footer__nav-item {
	font-size: 13px;
	line-height: 2.2;
	color: rgba(245,242,236,0.75);
}
.footer__nav-item a:hover { color: var(--c-gold-soft); }
.footer__bottom {
	margin-top: 32px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: var(--f-mono);
	font-size: 10px;
	letter-spacing: 0.2em;
	color: rgba(245,242,236,0.4);
}
.footer__marquee {
	font-family: var(--f-en-serif);
	font-style: italic;
	font-size: 14px;
	color: var(--c-gold-soft);
	letter-spacing: 0.04em;
}


/******************************************************

タブレットの設定 960px~1199pxの場合に適用

*******************************************************/
@media screen and (max-width: 1199px){
	.wrapper { padding-left: 32px; padding-right: 32px; }
	.wrapper_small { padding-left: 32px; padding-right: 32px; }
	.header__inner { padding-left: 32px; padding-right: 32px; }
}


/******************************************************

タブレットの設定 768px~959pxの場合に適用

*******************************************************/
@media screen and (max-width: 959px){
	.container { padding: 100px 0; }
	.wrapper { padding-left: 24px; padding-right: 24px; }
	.wrapper_small { padding-left: 24px; padding-right: 24px; }

	.header__inner {
		grid-template-columns: auto 1fr;
		padding: 14px 24px;
	}
	.global-nav { display: none; }
	.header__cta { display: none; }

	.footer__top { grid-template-columns: 1fr 1fr; gap: 32px; }
}


/******************************************************

SPの設定 767px以下の場合に適用

*******************************************************/
@media screen and (max-width: 767px){
	body { font-size: 14px; }

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

	.container { padding: 80px 0; }
	.wrapper { padding-left: 20px; padding-right: 20px; }
	.wrapper_small { padding-left: 20px; padding-right: 20px; }
	.header__inner { padding-left: 20px; padding-right: 20px; }

	.section-num {
		left: 20px;
		top: 24px;
		font-size: 10px;
	}
	.section-num::after { width: 32px; }

	.btn-primary,
	.btn-ghost-light {
		justify-content: center;
		padding: 18px 24px;
	}

	.footer { padding: 64px 0 24px; }
	.footer__top {
		grid-template-columns: 1fr;
		gap: 32px;
		padding-bottom: 40px;
	}
	.footer__bottom {
		flex-direction: column;
		gap: 12px;
		text-align: center;
	}
}
