/* ==========================================================================
   Memory Design Corporate / main.css
   サイト全体の見た目はこのファイル1つで管理しています。
   色・フォント・余白は最初の :root の変数を変えると全ページに反映されます。
   ========================================================================== */

/* ---------- Tokens ---------- */
:root {
	/* Brand colors */
	--c-brown: #3F3222;     /* ダークブラウン: ボタン、ラベル、帯 */
	--c-ink: #2C2925;       /* 墨: 見出し、フッター */
	--c-gray: #585654;      /* グレー: 本文、小さい文字 */
	--c-gray-2: #82807D;    /* グレー2: 枠線（小さい文字には使わない） */
	--c-paper: #FEFDF7;     /* 生成り: 背景 */
	/* Derived tints */
	--c-paper-2: #F3F0E4;   /* 交互のセクション背景 */
	--c-line: #E2DED3;      /* 区切り線 */
	--c-white: #FFFFFF;
	--c-on-dark: #FEFDF7;
	--c-on-dark-2: #D6D3CB;
	--c-on-dark-3: #B5B2AB;
	--c-dark-line: #4A4640;
	--c-hover: #2C2925;
	--c-tone-1: #5E5345;    /* 画像がないときの仮置き色 */
	--c-tone-2: #6B6259;
	--c-tone-3: #4A4640;

	/* Fonts: Adobe Fonts (minion-pro / futura-pt) + Noto Sans JP / Pretendard */
	--f-cjk: 'Noto Sans JP';
	--f-serif: 'minion-pro', 'Minion Pro', var(--f-cjk), Georgia, serif;
	--f-sans: 'futura-pt', 'Futura PT', var(--f-cjk), 'Helvetica Neue', Arial, sans-serif;

	/* Layout */
	--wrap: 1440px;
	--gutter: clamp(20px, 5.5vw, 80px);
	--gap: 32px;
	--sec: clamp(72px, 9vw, 128px);
	--header-h: 88px;
}
html[lang^="ko"] {
	--f-cjk: 'Pretendard Variable', 'Pretendard';
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
	margin: 0;
	background: var(--c-paper);
	color: var(--c-ink);
	font-family: var(--f-sans);
	font-size: 16px;
	line-height: 1.9;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
/* 改行: 単語の途中で行が切れないようにする */
/* 日本語: 文節で改行（Chrome・Edge対応。未対応のブラウザでは通常の改行） */
html[lang^="ja"] body { word-break: auto-phrase; line-break: strict; }
/* 韓国語: 語（分かち書きの単位）の途中で改行しない */
html[lang^="ko"] body { word-break: keep-all; }
/* 英語など: 単語の途中でハイフン分割しない */
body { hyphens: manual; overflow-wrap: break-word; }
/* 見出しは行の長さをそろえ、本文は最終行に1語だけ残らないようにする */
h1, h2, h3, .d1, .d2, .d3 { text-wrap: balance; }
p, li, dd, blockquote, figcaption { text-wrap: pretty; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--c-ink); }
a:hover { color: var(--c-brown); }
p, h1, h2, h3, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--c-brown); outline-offset: 3px; }

.skip { position: absolute; left: -9999px; top: 8px; z-index: 100; padding: 10px 16px; background: var(--c-ink); color: var(--c-paper); }
.skip:focus { left: 8px; }

.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); }

/* ---------- Typography ---------- */
.ey { font-family: 'futura-pt', 'Futura PT', var(--f-sans); font-size: 12px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; color: var(--c-brown); line-height: 1.6; }
.ey--muted { color: var(--c-gray); }
.d1, .d2, .d3 { font-family: var(--f-serif); font-weight: 500; color: var(--c-ink); }
.d1 em, .d2 em, .d3 em { font-style: italic; }
.d1 { font-size: clamp(40px, 5vw, 66px); line-height: 1.3; letter-spacing: .01em; }
.d1--page { font-size: clamp(36px, 4.4vw, 58px); }
.d2 { font-size: clamp(28px, 3vw, 42px); line-height: 1.42; }
.d2--md { font-size: clamp(26px, 2.6vw, 36px); }
.d2--sm { font-size: clamp(24px, 2.3vw, 32px); }
.d3 { font-size: clamp(21px, 1.9vw, 26px); line-height: 1.45; font-weight: 600; }
.d3--lg { font-size: clamp(24px, 2.2vw, 30px); }
.d3--sm { font-size: clamp(19px, 1.6vw, 21px); }
.lead { font-size: clamp(16px, 1.3vw, 18px); line-height: 1.95; color: var(--c-gray); }
.p { font-size: 16px; line-height: 1.95; color: var(--c-gray); }
.p--sm { font-size: 15px; }
.sm { font-size: 13px; line-height: 1.7; color: var(--c-gray); }
.num { font-family: var(--f-serif); font-weight: 400; line-height: 1; color: var(--c-brown); font-size: 40px; }
.numline { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.numline--lg .num { font-size: 56px; }
.tagline { font-weight: 500; font-size: clamp(20px, 1.8vw, 24px); }
.signature { font-size: 22px; }

/* English: Latin serif runs larger and tighter */
html[lang^="en"] .d1 { font-size: clamp(44px, 5vw, 72px); line-height: 1.1; letter-spacing: -.005em; }
html[lang^="en"] .d1--page { font-size: clamp(44px, 5.3vw, 76px); }
html[lang^="en"] .d2 { font-size: clamp(32px, 3.5vw, 50px); line-height: 1.15; }
html[lang^="en"] .d2--md { font-size: clamp(30px, 3vw, 42px); }
html[lang^="en"] .d2--sm { font-size: clamp(28px, 2.7vw, 38px); }
html[lang^="en"] .d3 { font-size: clamp(24px, 2.2vw, 30px); line-height: 1.25; }
html[lang^="en"] .d3--sm { font-size: clamp(21px, 1.7vw, 24px); }
html[lang^="en"] .tagline { font-size: clamp(22px, 2vw, 28px); }
html[lang^="en"] .lead, html[lang^="en"] .p { line-height: 1.75; }
html[lang^="ko"] .d1 { font-size: clamp(38px, 4.7vw, 62px); line-height: 1.35; letter-spacing: -.01em; }
html[lang^="ko"] .d1--page { font-size: clamp(34px, 4.2vw, 56px); }
html[lang^="ko"] .d2 { letter-spacing: -.01em; }
html[lang^="ko"] .lead, html[lang^="ko"] .p { line-height: 1.9; }

/* ---------- Buttons & links ---------- */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px;
	min-height: 52px; padding: 0 30px;
	background: var(--c-brown); border: 1px solid var(--c-brown); color: var(--c-paper);
	font-family: var(--f-sans); font-size: 14px; font-weight: 500; letter-spacing: .06em; text-decoration: none; cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s;
}
.btn:hover { background: var(--c-hover); border-color: var(--c-hover); color: var(--c-paper); }
.btn--outline { background: transparent; border-color: var(--c-ink); color: var(--c-ink); }
.btn--outline:hover { background: var(--c-ink); color: var(--c-paper); }
.btn--light { background: var(--c-paper); border-color: var(--c-paper); color: var(--c-ink); }
.btn--light:hover { background: #EDEAE0; border-color: #EDEAE0; color: var(--c-ink); }
.btn--sm { min-height: 44px; padding: 0 22px; font-size: 13px; }
.btn--lg { min-height: 56px; padding: 0 44px; font-size: 15px; }
.btns { display: flex; flex-wrap: wrap; gap: 16px; }
.lnk { align-self: flex-start; font-size: 14px; font-weight: 500; letter-spacing: .04em; line-height: 1.6; }
.lnk a, a.lnk { display: inline-block; padding-bottom: 4px; border-bottom: 1px solid currentColor; color: var(--c-ink); text-decoration: none; }
.lnk a:hover, a.lnk:hover { color: var(--c-brown); }

/* ---------- Core blocks (block editor content) ---------- */
.wp-block-group { box-sizing: border-box; }
figure.wp-block-image { margin: 0; overflow: hidden; background: var(--c-tone-1); }
figure.wp-block-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.r-4x3 img, .media.r-4x3 { aspect-ratio: 4 / 3; }
.r-16x10 img, .media.r-16x10 { aspect-ratio: 16 / 10; }
.r-16x9 img, .media.r-16x9 { aspect-ratio: 16 / 9; }
.r-wide img, .media.r-wide { aspect-ratio: 8 / 3; }
/* 会社案内のメイン写真：人物が見えるよう、下寄りを表示 */
.r-wide img { object-position: 50% 80%; }
.r-portrait img, .media.r-portrait { aspect-ratio: 4 / 5; }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 16px; }
.wp-block-button { margin: 0; }
.wp-block-button .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 30px;
	background: var(--c-brown); border: 1px solid var(--c-brown); border-radius: 0; color: var(--c-paper);
	font-family: var(--f-sans); font-size: 14px; font-weight: 500; letter-spacing: .06em; line-height: 1.4; text-decoration: none;
	transition: background-color .2s, color .2s, border-color .2s;
}
.wp-block-button .wp-block-button__link:hover { background: var(--c-hover); border-color: var(--c-hover); color: var(--c-paper); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; border-color: var(--c-ink); color: var(--c-ink); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--c-ink); color: var(--c-paper); }
.cta--dark .wp-block-button .wp-block-button__link { background: var(--c-paper); border-color: var(--c-paper); color: var(--c-ink); }
.cta--dark .wp-block-button .wp-block-button__link:hover { background: #EDEAE0; border-color: #EDEAE0; }
.section-head__title { display: flex; flex-direction: column; gap: 20px; }
.section-head--tight { margin-bottom: 32px; }
.hero__text .wp-block-buttons { margin-top: 0; }

/* ---------- Media / placeholders ---------- */
.media { position: relative; overflow: hidden; background: var(--c-tone-1); }
.media img { width: 100%; height: 100%; object-fit: cover; }
.media.ph { display: flex; align-items: flex-end; padding: 18px 20px; color: var(--c-on-dark); font-family: var(--f-sans); font-size: 12px; letter-spacing: .06em; line-height: 1.5; }
.tone-1 { background: var(--c-tone-1); }
.tone-2 { background: var(--c-tone-2); }
.tone-3 { background: var(--c-tone-3); }
.r-4x3 { aspect-ratio: 4 / 3; }
.r-16x10 { aspect-ratio: 16 / 10; }
.r-16x9 { aspect-ratio: 16 / 9; }
.r-wide { aspect-ratio: 8 / 3; }
.r-portrait { aspect-ratio: 4 / 5; }

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: 50; background: var(--c-paper); border-bottom: 1px solid var(--c-line); }
.admin-bar .site-header { top: 32px; }
.site-header__inner { max-width: var(--wrap); margin-inline: auto; padding-inline: var(--gutter); height: var(--header-h); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; flex-direction: column; gap: 4px; color: var(--c-ink); text-decoration: none; }
.brand__name { font-family: 'minion-pro', 'Minion Pro', Georgia, serif; font-size: 28px; font-weight: 500; line-height: 1; letter-spacing: .01em; }
.brand__sub { font-family: 'futura-pt', 'Futura PT', var(--f-sans); font-size: 9px; font-weight: 500; letter-spacing: .46em; color: var(--c-gray); }
.brand--light { color: var(--c-on-dark); }
.brand--light .brand__name { font-size: 34px; }
.brand--light .brand__sub { color: var(--c-on-dark-3); font-size: 10px; }
.brand__logo { display: block; height: 32px; width: auto; max-width: none; align-self: flex-start; }
.brand--light .brand__logo { height: 42px; }
.site-nav { display: flex; align-items: center; gap: 40px; }
.gnav { display: flex; align-items: center; gap: 36px; }
.gnav a { padding: 10px 0; border-bottom: 1.5px solid transparent; color: var(--c-gray); font-size: 14px; letter-spacing: .04em; text-decoration: none; }
.gnav a:hover { color: var(--c-ink); }
.gnav a[aria-current="page"] { color: var(--c-ink); font-weight: 500; border-bottom-color: var(--c-brown); }
.site-nav__end { display: flex; align-items: center; gap: 28px; }
.lang { display: flex; align-items: center; gap: 14px; font-family: 'futura-pt', 'Futura PT', var(--f-sans); font-size: 12px; letter-spacing: .12em; }
.lang a, .lang span { display: inline-block; padding: 12px 0; text-decoration: none; }
.lang a { color: var(--c-gray); }
.lang span { color: var(--c-ink); font-weight: 600; }
/* Services dropdown */
.gnav__item { position: relative; display: flex; align-items: center; gap: 2px; }
.sub-toggle { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 44px; padding: 0; border: 0; background: none; color: var(--c-gray); cursor: pointer; }
.sub-toggle span { width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s; }
.has-sub.is-open .sub-toggle span { transform: translateY(2px) rotate(-135deg); }
.sub { position: absolute; top: 100%; left: -24px; z-index: 60; min-width: 280px; padding: 10px 0; background: var(--c-paper); border: 1px solid var(--c-line); box-shadow: 0 16px 40px rgba(44, 41, 37, .08); visibility: hidden; opacity: 0; transform: translateY(6px); transition: opacity .18s, transform .18s, visibility 0s .18s; }
.has-sub:hover .sub, .has-sub:focus-within .sub, .has-sub.is-open .sub { visibility: visible; opacity: 1; transform: none; transition: opacity .18s, transform .18s; }
.gnav .sub a { display: flex; align-items: baseline; gap: 14px; padding: 12px 24px; border: 0; color: var(--c-ink); font-size: 14px; white-space: nowrap; }
.gnav .sub a:hover { background: var(--c-paper-2); color: var(--c-brown); }
.sub .num { font-size: 18px; }

html:not(.is-ready) .sub, html:not(.is-ready) .site-nav { transition: none !important; }
.chips + .grid-3 { margin-top: 48px; }

/* Chat buttons (WhatsApp / KakaoTalk / LINE) */
.msg { display: flex; flex-direction: column; gap: 12px; }
.cta .msg { align-items: center; margin-top: 4px; }
.msg__list { display: flex; flex-wrap: wrap; gap: 10px; }
.msg__btn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 1px solid var(--c-gray-2); background: transparent; color: var(--c-ink); font-size: 13px; letter-spacing: .04em; text-decoration: none; transition: background-color .2s, border-color .2s; }
.msg__btn:hover { border-color: var(--c-ink); background: var(--c-white); color: var(--c-ink); }
.msg__icon { flex-shrink: 0; }
.msg--dark .msg__label { color: var(--c-on-dark-2); }
.msg--dark .msg__btn, .site-footer .msg--dark .msg__btn { border-color: var(--c-on-dark-3); color: var(--c-on-dark); }
.msg--dark .msg__btn:hover, .site-footer .msg--dark .msg__btn:hover { background: rgba(254, 253, 247, .08); border-color: var(--c-on-dark); color: var(--c-on-dark); text-decoration: none; }

.nav-toggle { display: none; align-items: center; gap: 10px; min-height: 44px; padding: 0 4px; background: none; border: 0; cursor: pointer; font-size: 13px; letter-spacing: .08em; color: var(--c-ink); }
.nav-toggle__bar, .nav-toggle__bar::before, .nav-toggle__bar::after { display: block; width: 22px; height: 1.5px; background: currentColor; position: relative; transition: transform .2s, background-color .2s; }
.nav-toggle__bar::before, .nav-toggle__bar::after { content: ""; position: absolute; left: 0; }
.nav-toggle__bar::before { top: -7px; }
.nav-toggle__bar::after { top: 7px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar::before { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar::after { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Sections ---------- */
.section { padding-block: var(--sec); }
.section--alt { background: var(--c-paper-2); }
.section--line { border-top: 1px solid var(--c-line); }
.section--flush-top { padding-top: 24px; }
.section--dark { background: var(--c-brown); color: var(--c-on-dark); }
.section-head { display: flex; flex-direction: column; gap: 20px; margin-bottom: 56px; }
.section-head--row { flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 48px; }
.section-head__text { max-width: 520px; }
.section-head--center { align-items: center; text-align: center; margin-bottom: 48px; gap: 16px; }

.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gap); }
.grid-2--tight { gap: 32px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gap); }
.grid-3--rows { row-gap: 64px; }
.grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--gap); }

.split { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; }
.split__head { grid-column: span 5; display: flex; flex-direction: column; gap: 24px; }
.split__body { grid-column: 7 / span 6; display: flex; flex-direction: column; gap: 24px; padding-top: 44px; }
.split--even { row-gap: 64px; }
.split--even > :first-child { grid-column: span 5; display: flex; flex-direction: column; gap: 20px; }
.split--even > :last-child { grid-column: 7 / span 6; display: flex; flex-direction: column; gap: 20px; }

.rule-top { display: flex; flex-direction: column; gap: 16px; padding-top: 24px; border-top: 1px solid var(--c-ink); }

/* ---------- Home ---------- */
.hero { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: center; padding-block: 72px 80px; }
.hero__text { grid-column: span 6; display: flex; flex-direction: column; gap: 32px; }
.hero__text .lead { max-width: 600px; }
/* 見出し上の英字ラベルと見出しの間は、ほかのセクション見出しと同じ20pxにそろえる */
.hero__text > .ey, .page-hero__text > .ey { margin-bottom: -12px; }
.page-hero__text > .ey, .page-hero > .ey { margin-bottom: -10px; }
.hero__media { grid-column: span 6; height: 520px; }
.hero__media img { object-position: 50% 40%; } /* ホームのメイン写真：アルバムとカメラが入るように */

.biz, .duo { display: flex; flex-direction: column; gap: 22px; }
.biz__links { display: flex; flex-wrap: wrap; gap: 12px 28px; }
.biz__links > * { margin: 0; }
.duo .media, .duo .wp-block-image { aspect-ratio: auto; height: 340px; }
.duo .wp-block-image img { aspect-ratio: auto; }

.facts { border-bottom: 1px solid var(--c-line); padding-block: 56px; }
.fact { display: flex; flex-direction: column; gap: 10px; padding-top: 20px; border-top: 1px solid var(--c-ink); }
.fact__value { font-size: 21px; font-weight: 500; }
html[lang^="en"] .fact__value { font-size: 23px; }

.card { display: flex; flex-direction: column; gap: 14px; }
.card__meta { letter-spacing: .06em; }
.card__title { font-size: clamp(20px, 1.7vw, 23px); }
html[lang^="en"] .card__title { font-size: clamp(22px, 1.9vw, 26px); }
.card[hidden] { display: none; }
/* カード全体を詳細ページへのリンクに */
.card { position: relative; }
.card__link { color: inherit; text-decoration: none; }
.card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.card__link:focus-visible { outline: none; }
.card:has(.card__link:focus-visible) { outline: 2px solid var(--c-brown); outline-offset: 6px; }
.card__media { position: relative; overflow: hidden; }
.card__media .media img { transition: transform .6s ease; object-position: 50% 20%; } /* 縦長の写真でも顔が切れないように、上寄りで切り抜く */
.card:hover .card__media .media img { transform: scale(1.03); }
.card:hover .card__link { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.play-badge { position: absolute; left: 16px; top: 16px; display: inline-flex; align-items: center; gap: 8px; height: 32px; padding: 0 12px; background: rgba(44, 41, 37, .78); color: var(--c-on-dark); font-family: 'futura-pt', 'Futura PT', var(--f-sans); font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.play-badge__len { padding-left: 8px; border-left: 1px solid rgba(254, 253, 247, .4); letter-spacing: .06em; }

/* ---------- Project detail (/works/…) ---------- */
.work__hero { padding-bottom: 56px; gap: 24px; }
.work__back, .work__all { display: inline-flex; gap: 8px; align-self: flex-start; color: var(--c-gray); text-decoration: none; letter-spacing: .06em; }
.work__back:hover, .work__all:hover { color: var(--c-ink); text-decoration: underline; text-underline-offset: 4px; }
.work__back { margin-bottom: 8px; }
.work__title { max-width: none; }
.film { position: relative; aspect-ratio: 16 / 9; background: var(--c-ink); overflow: hidden; }
.film .film__poster { position: absolute; inset: 0; aspect-ratio: auto; height: 100%; }
.film__play { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; width: 100%; border: 0; padding: 0; background: linear-gradient(0deg, rgba(44, 41, 37, .45), rgba(44, 41, 37, .15)); color: var(--c-on-dark); font: inherit; cursor: pointer; }
.film__icon { display: flex; align-items: center; justify-content: center; width: 96px; height: 96px; padding-left: 4px; border: 1px solid rgba(254, 253, 247, .85); border-radius: 50%; background: rgba(44, 41, 37, .35); transition: background .25s ease, transform .25s ease; }
.film__play:hover .film__icon, .film__play:focus-visible .film__icon { background: var(--c-paper); color: var(--c-ink); transform: scale(1.04); }
.film__play:focus-visible { outline: 2px solid var(--c-paper); outline-offset: -8px; }
.film__label { display: inline-flex; gap: 12px; font-size: 13px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.film__len { padding-left: 12px; border-left: 1px solid rgba(254, 253, 247, .5); letter-spacing: .06em; }
.film iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.film.is-playing .film__poster, .film.is-playing .film__play { display: none; }
.work__image { width: 100%; }

/* Photo gallery (no enlargement; protected against casual saving) */
.gallery__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gallery__item { position: relative; aspect-ratio: 4 / 3; }
.gallery__item:first-child { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
.gallery__photo { position: relative; height: 100%; margin: 0; background: var(--c-tone-1); overflow: hidden; }
.gallery__photo img { width: 100%; height: 100%; object-fit: cover; }
.gallery__grid--1 { grid-template-columns: 1fr; }
.gallery__grid--1 .gallery__item:first-child { grid-column: auto; grid-row: auto; aspect-ratio: 16 / 9; }
.gallery__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gallery__grid--2 .gallery__item:first-child { grid-column: auto; grid-row: auto; aspect-ratio: 4 / 3; }
.gallery__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gallery__grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gallery__grid--4 .gallery__item:first-child { grid-row: span 3; grid-column: span 2; }
.gallery__cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 24px 16px 12px; background: linear-gradient(0deg, rgba(28, 26, 23, .6), transparent); font-size: 12px; line-height: 1.5; color: var(--c-on-dark); }
[data-protect] img { -webkit-user-select: none; user-select: none; -webkit-user-drag: none; -webkit-touch-callout: none; pointer-events: none; }
[data-protect] .gallery__photo::after, [data-protect] .media::after { content: ""; position: absolute; inset: 0; z-index: 1; }
[data-protect] .media { position: relative; }
.work__body { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; padding-block: 88px var(--sec); }
.work__text { grid-column: 1 / span 7; }
.work__text > :first-child { margin-top: 0; }
.work__info { grid-column: 9 / span 4; align-self: start; position: sticky; top: calc(var(--header-h) + 32px); padding: 0; background: none; border-top: 1px solid var(--c-ink); }
.work__body--info .work__info { grid-column: 1 / span 5; position: static; }
.work__related .card__title { font-size: clamp(19px, 1.5vw, 21px); }

/* 取引先ロゴ帯：上下の余白をほかのセクションより詰める */
.section.clients { padding-block: calc(var(--sec) * .65); }
.clients .section-head--center { margin-bottom: 36px; }
.clients__marquee { overflow: hidden; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.clients__grid { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; margin: 0; padding: 0; list-style: none; }
.clients__grid li { flex-shrink: 0; display: flex; align-items: center; justify-content: center; height: 96px; padding: 0 48px; margin: 0; font-family: 'minion-pro', 'Minion Pro', Georgia, serif; font-size: 22px; font-weight: 500; line-height: 1.3; color: var(--c-gray); white-space: nowrap; }
.clients__grid img { display: block; height: 48px; width: auto; max-width: 220px; object-fit: contain; }
.clients__grid img[src*="korea-startup-center"] { height: 80px; }
/* Scrolls sideways in one row once main.js has doubled the logos (see initClientsMarquee). */
.clients__grid.is-marquee { flex-wrap: nowrap; justify-content: flex-start; width: max-content; animation: mdc-marquee var(--mq-duration, 45s) linear infinite; }
.clients__marquee:hover .clients__grid.is-marquee { animation-play-state: paused; }
@keyframes mdc-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .clients__grid.is-marquee { animation-duration: 90s; } }

.cta { padding-block: 112px; text-align: center; }
.cta__inner { display: flex; flex-direction: column; align-items: center; gap: 28px; }
.cta__text { max-width: 640px; }
.cta--dark { background: var(--c-brown); }
.cta--dark .ey { color: #D6CDBE; }
.cta--dark .d2 { color: var(--c-on-dark); }
.cta--dark .p { color: var(--c-on-dark-2); }
.cta--light { background: var(--c-paper-2); }

/* ---------- Page hero ---------- */
.page-hero { display: flex; flex-direction: column; gap: 30px; padding-block: 104px 72px; }
.page-hero__lead { max-width: 760px; }
.page-hero--split { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; }
.page-hero--split .page-hero__text { grid-column: span 7; display: flex; flex-direction: column; gap: 30px; }
.page-hero--split .page-hero__text .lead { max-width: 600px; }
.page-hero__split { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; margin-bottom: 26px; }
.page-hero__split .page-hero__text { grid-column: span 7; display: flex; flex-direction: column; gap: 30px; }
.page-hero__aside { grid-column: 9 / span 4; }
.page-hero--media { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: center; padding-bottom: 112px; }
.page-hero--media .page-hero__text { grid-column: span 6; display: flex; flex-direction: column; gap: 30px; }
.page-hero__media { grid-column: 8 / span 5; height: 520px; }
.page-hero--plain { padding-bottom: 40px; }

/* ---------- Services ---------- */
.idx { grid-column: 9 / span 4; display: flex; flex-direction: column; border-bottom: 1px solid var(--c-line); counter-reset: idx; }
.idx li { counter-increment: idx; }
ul.idx a::before { content: counter(idx, decimal-leading-zero); font-family: var(--f-serif); font-size: 26px; line-height: 1; color: var(--c-brown); }
.idx a { display: flex; align-items: baseline; gap: 20px; padding: 20px 0; border-top: 1px solid var(--c-line); color: var(--c-ink); text-decoration: none; font-size: 17px; }
.idx a:hover { color: var(--c-brown); }
.idx .num { font-size: 26px; }

.svc { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 48px; }
.svc__text { grid-column: span 5; display: flex; flex-direction: column; gap: 24px; }
.svc__side { grid-column: 7 / span 6; display: flex; flex-direction: column; gap: 32px; }
.svc--reverse .svc__side { grid-column: 1 / span 6; grid-row: 1; }
.svc--reverse .svc__text { grid-column: 8 / span 5; grid-row: 1; }
.list-label { margin-bottom: -20px; }
.list { border-bottom: 1px solid var(--c-line); }
.list li { display: flex; align-items: center; gap: 14px; padding: 16px 0; border-top: 1px solid var(--c-line); font-size: 15.5px; line-height: 1.6; color: var(--c-ink); }
.list li::before { content: ""; flex-shrink: 0; width: 6px; height: 6px; background: var(--c-brown); }
.list-2 .list, .list--2col { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; }
.dot { flex-shrink: 0; width: 6px; height: 6px; background: var(--c-brown); }
.svc__side .d3--sm { padding-bottom: 14px; }
.badge { align-self: center; padding: 4px 10px; border: 1px solid var(--c-brown); color: var(--c-brown); font-size: 11px; font-weight: 600; letter-spacing: .16em; line-height: 1.4; }
.note { padding: 16px 20px; background: var(--c-paper-2); color: var(--c-gray); font-size: 13px; line-height: 1.8; }
.info { display: flex; flex-direction: column; padding: 8px 28px; background: var(--c-paper); }
.info > div { display: flex; gap: 20px; padding: 16px 0; border-bottom: 1px solid var(--c-line); }
.info > div:last-child { border-bottom: 0; }
.info dt, .info .rk { width: 110px; flex-shrink: 0; font-size: 13px; line-height: 1.7; color: var(--c-gray); }
.info dd, .info .rv { font-size: 15px; line-height: 1.7; }

.steps { counter-reset: none; }

/* ---------- About ---------- */
.message { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 48px; }
.message__portrait { grid-column: span 5; display: flex; flex-direction: column; gap: 16px; }
.message__portrait img { object-position: 50% 20%; }
.message__body { grid-column: 7 / span 6; display: flex; flex-direction: column; gap: 24px; }
.cv { display: flex; flex-direction: column; gap: 10px; padding-top: 16px; }
.rows { display: flex; flex-direction: column; border-bottom: 1px solid var(--c-line); }
.rows > div { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 24px; padding: 20px 0; border-top: 1px solid var(--c-line); font-size: 15.5px; line-height: 1.8; }
.rows dt, .rows .rk { font-size: 13px; font-weight: 600; letter-spacing: .04em; color: var(--c-gray); padding-top: 2px; }
.rows--cv > div { grid-template-columns: 120px minmax(0, 1fr); gap: 20px; padding: 16px 0; font-size: 15px; line-height: 1.7; }
.rows--cv dt { font-weight: 400; }
.rows--narrow { margin-top: 12px; }
.rows--narrow > div { grid-template-columns: 140px minmax(0, 1fr); gap: 20px; }
html[lang^="en"] .rows > div { grid-template-columns: 220px minmax(0, 1fr); }
html[lang^="en"] .rows--cv > div { grid-template-columns: 140px minmax(0, 1fr); }
html[lang^="en"] .rows--narrow > div { grid-template-columns: 150px minmax(0, 1fr); }
.company { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 40px; }
.company__head { grid-column: span 4; display: flex; flex-direction: column; gap: 20px; }
.company .rows { grid-column: 5 / span 8; }

/* ---------- Projects ---------- */
.chips { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 12px; }
.chip { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border: 1px solid var(--c-gray-2); background: transparent; color: var(--c-gray); font-size: 14px; cursor: pointer; }
.chip:hover { border-color: var(--c-ink); color: var(--c-ink); }
.chip[aria-pressed="true"] { background: var(--c-ink); border-color: var(--c-ink); color: var(--c-paper); }
.soon { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 32px; border: 1px dashed var(--c-brown); text-align: center; }
.soon__badge { color: var(--c-brown); font-weight: 600; letter-spacing: .2em; }
.soon__title { font-family: var(--f-serif); font-size: 20px; line-height: 1.6; color: var(--c-ink); }
.voice { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 24px; }
.voice > .ey { grid-column: span 3; color: #D6CDBE; }
.voice__body { grid-column: 4 / span 8; display: flex; flex-direction: column; gap: 28px; }
.voice__quote { font-family: var(--f-serif); font-size: clamp(20px, 1.9vw, 26px); line-height: 1.8; color: var(--c-on-dark); }
html[lang^="en"] .voice__quote { font-style: italic; font-size: clamp(22px, 2.1vw, 30px); line-height: 1.5; }
.voice figcaption { display: flex; flex-direction: column; gap: 4px; font-size: 14px; color: var(--c-on-dark-2); }
.voice figcaption strong { color: var(--c-on-dark); font-weight: 600; }
.voice__cite { font-size: 14px; line-height: 1.7; color: var(--c-on-dark-2); }
.voice__cite strong { color: var(--c-on-dark); font-weight: 600; }

/* ---------- Careers ---------- */
.tags { display: flex; flex-wrap: wrap; gap: 8px; }
.tags li { display: inline-flex; align-items: center; min-height: 30px; padding: 0 12px; border: 1px solid var(--c-gray-2); font-size: 12px; letter-spacing: .04em; color: var(--c-gray); }
.pos { display: flex; flex-direction: column; gap: 18px; padding: 40px; background: var(--c-paper); }
.pos .num { font-size: 36px; }
.pos__label { font-weight: 600; padding-top: 6px; }
.req { display: flex; flex-direction: column; gap: 8px; }
.req li { display: flex; gap: 12px; align-items: baseline; font-size: 15px; line-height: 1.7; }
.req li::before { content: ""; flex-shrink: 0; width: 5px; height: 5px; background: var(--c-brown); transform: translateY(-3px); }
.process { margin-top: 12px; border-bottom: 1px solid var(--c-line); }
.process li, .process__step { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 16px; padding: 20px 0; border-top: 1px solid var(--c-line); }
.process .num { font-size: 28px; }
.process li div, .process__text { display: flex; flex-direction: column; gap: 4px; }
.process strong, .process__title { font-size: 16px; font-weight: 600; line-height: 1.6; }

/* ---------- Forms ---------- */
.form-layout { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 40px; }
.form-layout__head { grid-column: span 4; display: flex; flex-direction: column; gap: 20px; }
.form-layout > :last-child { grid-column: 6 / span 7; }
.form { display: flex; flex-direction: column; gap: 28px; }
.form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.field { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; border: 0; min-width: 0; }
.field__label { padding: 0; font-size: 13px; font-weight: 600; letter-spacing: .04em; color: var(--c-ink); }
legend.field__label { margin-bottom: 12px; }
.field__opt { font-weight: 400; color: var(--c-gray); }
.in { width: 100%; min-height: 52px; padding: 0 16px; border: 1px solid var(--c-gray-2); border-radius: 0; background: var(--c-white); font-size: 16px; color: var(--c-ink); }
.in::placeholder { color: var(--c-gray); opacity: .8; }
.in:focus { outline: 2px solid var(--c-brown); outline-offset: 0; border-color: var(--c-brown); }
select.in { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--c-ink) 50%), linear-gradient(135deg, var(--c-ink) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 40px; }
.ta { min-height: 180px; padding: 14px 16px; line-height: 1.7; resize: vertical; }
.radios, .checks { display: flex; flex-wrap: wrap; gap: 10px 28px; }
.radios { gap: 10px; }
.rc { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 18px; border: 1px solid var(--c-gray-2); background: var(--c-white); font-size: 14px; cursor: pointer; }
.rc:has(input:checked) { border-color: var(--c-brown); box-shadow: inset 0 0 0 1px var(--c-brown); }
.rc input, .ck input { width: 18px; height: 18px; margin: 0; accent-color: var(--c-brown); }
.ck { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 15px; cursor: pointer; }
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.notice { margin-bottom: 28px; padding: 16px 20px; font-size: 15px; line-height: 1.7; }
.notice--ok { background: var(--c-paper-2); border: 1px solid var(--c-brown); color: var(--c-ink); }
.notice--err { background: #FBEDEA; border: 1px solid #8C3B2B; color: #6E2A1D; }

.contact { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 48px; align-items: start; }
.contact__form { grid-column: span 7; }
.contact__aside { grid-column: 9 / span 4; display: flex; flex-direction: column; gap: 24px; }
.section--form { padding-top: 88px; }
.box { display: flex; flex-direction: column; gap: 16px; padding: 32px; background: var(--c-paper-2); }
.kv { border-bottom: 1px solid var(--c-line); }
.kv > div { display: flex; flex-direction: column; gap: 2px; padding: 12px 0; border-top: 1px solid var(--c-line); font-size: 15px; line-height: 1.7; }
.kv a { text-decoration: none; }

/* ---------- Generic pages ---------- */
.prose-page { padding-bottom: var(--sec); }
.prose { max-width: 820px; font-size: 16px; line-height: 1.95; color: var(--c-ink); }
.prose > * + * { margin-top: 1.2em; }
.prose h2 { font-family: var(--f-serif); font-weight: 500; font-size: 28px; line-height: 1.4; margin-top: 2em; }
.prose h3 { font-weight: 600; font-size: 20px; margin-top: 1.6em; }
.prose ul { list-style: disc; padding-left: 1.4em; }
.prose ol { list-style: decimal; padding-left: 1.4em; }
.prose table { width: 100%; border-collapse: collapse; }
.prose th, .prose td { padding: 14px 12px; border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: top; }
.prose th { width: 32%; font-weight: 600; color: var(--c-gray); }
.prose .legal-table td:first-child { width: 32%; font-size: 14px; font-weight: 600; color: var(--c-gray); }
.prose .legal-table { margin-inline: 0; }
.prose .legal-table table { border: 0; border-top: 1px solid var(--c-ink); }
.prose .legal-table td { border: 0; border-bottom: 1px solid var(--c-line); padding: 18px 16px 18px 0; }
@media (max-width: 640px) { .prose .legal-table td { display: block; width: auto; padding: 4px 0; border: 0; } .prose .legal-table td:first-child { padding-top: 16px; } .prose .legal-table tr { display: block; border-bottom: 1px solid var(--c-line); padding-bottom: 12px; } }

/* ---------- Footer ---------- */
.site-footer { background: var(--c-ink); color: #EFECE4; padding-block: 72px 36px; }
.site-footer a { color: #EFECE4; text-decoration: none; }
.site-footer a:hover { color: var(--c-on-dark); text-decoration: underline; }
.site-footer__top { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; row-gap: 48px; }
.site-footer__company { grid-column: span 5; display: flex; flex-direction: column; gap: 18px; }
.site-footer__tagline { font-family: var(--f-serif); font-size: 20px; line-height: 1.5; color: var(--c-on-dark); }
.site-footer address { display: flex; flex-direction: column; gap: 6px; font-style: normal; font-size: 13px; line-height: 1.7; color: var(--c-on-dark-2); }
.site-footer address strong { color: #EFECE4; font-weight: 600; }
.site-footer address a { color: var(--c-on-dark-2); text-decoration: underline; text-underline-offset: 3px; }
.site-footer__col { grid-column: span 2; display: flex; flex-direction: column; gap: 14px; font-size: 14px; line-height: 1.5; }
.site-footer__col:first-of-type { grid-column: 7 / span 2; }
.site-footer__head { font-family: 'futura-pt', 'Futura PT', var(--f-sans); font-size: 11px; font-weight: 500; letter-spacing: .22em; text-transform: uppercase; color: var(--c-on-dark-3); }
.site-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin-top: 64px; padding-top: 24px; border-top: 1px solid var(--c-dark-line); font-size: 12px; color: var(--c-on-dark-3); }
.site-footer__bottom a { font-weight: 500; letter-spacing: .04em; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1180px) {
	.gnav { gap: 24px; }
	.site-nav { gap: 28px; }
	.site-nav__end { gap: 20px; }
}

@media (max-width: 1024px) {
	.gallery__grid { gap: 12px; }
	.work__body { display: flex; flex-direction: column; gap: 48px; padding-top: 56px; }
	.work__body .work__info { position: static; align-self: stretch; padding: 0; }
	:root { --header-h: 72px; --gap: 24px; }
	.brand__name { font-size: 24px; }
	.brand__logo { height: 26px; }
	.brand--light .brand__logo { height: 35px; }
	.nav-toggle { display: inline-flex; }
	.site-nav {
		position: fixed; inset: var(--header-h) 0 0 0; z-index: 49;
		flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 32px;
		padding: 32px var(--gutter) 48px; background: var(--c-paper); overflow-y: auto;
		visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity .2s, transform .2s, visibility 0s .2s;
	}
	.admin-bar .site-nav { top: calc(var(--header-h) + 46px); }
	.site-nav.is-open { visibility: visible; opacity: 1; transform: none; transition: opacity .2s, transform .2s; }
	.gnav { flex-direction: column; align-items: stretch; gap: 0; }
	.gnav a { padding: 18px 0; border-bottom: 1px solid var(--c-line); font-size: 17px; color: var(--c-ink); }
	.gnav a[aria-current="page"] { border-bottom-color: var(--c-line); color: var(--c-brown); }
	.gnav__item { flex-direction: column; align-items: stretch; gap: 0; }
	.sub-toggle { display: none; }
	.sub { position: static; min-width: 0; padding: 0; border: 0; box-shadow: none; background: none; visibility: visible; opacity: 1; transform: none; transition: none; }
	.gnav .sub a { padding: 14px 0 14px 20px; border-bottom: 1px solid var(--c-line); font-size: 15px; color: var(--c-gray); white-space: normal; }
	.gnav .sub a:hover { background: none; }
	.site-nav__end { flex-direction: column; align-items: stretch; gap: 24px; }
	.site-nav__end .btn { min-height: 52px; }
	.lang { gap: 24px; font-size: 14px; }
	body.nav-open { overflow: hidden; }

	.hero, .page-hero--split, .page-hero__split, .page-hero--media, .split, .svc, .message, .company, .form-layout, .contact, .voice, .site-footer__top { grid-template-columns: minmax(0, 1fr); }
	.hero > *, .page-hero--split > *, .page-hero__split > *, .page-hero--media > *, .split > *, .split--even > *, .svc > *, .svc--reverse > *, .message > *, .company > *, .company .rows, .form-layout > *, .contact > *, .voice > *, .voice__body, .site-footer__top > *, .site-footer__col:first-of-type {
		grid-column: 1 / -1 !important; grid-row: auto !important;
	}
	.hero { padding-block: 56px 72px; row-gap: 40px; }
	.hero__media { height: auto; aspect-ratio: 4 / 3; }
	.page-hero { padding-block: 64px 48px; }
	.page-hero--split, .page-hero__split, .page-hero--media { row-gap: 32px; }
	.page-hero__media { height: auto; aspect-ratio: 4 / 3; }
	.split { row-gap: 24px; }
	.split__body { padding-top: 0; }
	.svc--reverse .svc__text { order: -1; }
	.grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
	.message__portrait { max-width: 480px; }
	.site-footer__top { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.site-footer__company { grid-column: 1 / -1 !important; }
	.site-footer__col, .site-footer__col:first-of-type { grid-column: auto !important; }
}

@media (max-width: 720px) {
	.gallery__grid, .gallery__grid--3, .gallery__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.gallery__item:first-child, .gallery__grid--4 .gallery__item:first-child { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 4 / 3; }
	.gallery__grid--4 .gallery__item:last-child { grid-column: 1 / -1; }
	.film__icon { width: 68px; height: 68px; }
	.film__icon svg { width: 22px; height: 22px; }
	.work__hero { padding-bottom: 40px; }
	.work__related .section-head--row { flex-direction: column; align-items: flex-start; gap: 16px; }
	:root { --sec: 72px; }
	.section-head--tight { margin-bottom: 24px; }
	html[lang^="ja"] .d1, html[lang^="ko"] .d1 { font-size: 34px; }
	html[lang^="ja"] .d1--page, html[lang^="ko"] .d1--page { font-size: 32px; }
	.section-head, .section-head--row { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 40px; }
	.section-head--center { align-items: center; }
	.grid-2, .grid-3, .form__row { grid-template-columns: minmax(0, 1fr); }
	.grid-3--rows { row-gap: 48px; }
	.grid-4 { grid-template-columns: minmax(0, 1fr); }
	.facts .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 20px; }
	.list-2 .list, .list--2col { grid-template-columns: minmax(0, 1fr); }
	.duo .media { height: auto; aspect-ratio: 16 / 10; }
	.r-wide { aspect-ratio: 4 / 3; }
	.pos { padding: 28px 24px; }
	.box { padding: 24px; }
	.info { padding: 4px 20px; }
	.info > div { flex-direction: column; gap: 4px; }
	.rows > div, html[lang^="en"] .rows > div, .rows--narrow > div, html[lang^="en"] .rows--narrow > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
	.rows--cv > div, html[lang^="en"] .rows--cv > div { grid-template-columns: 100px minmax(0, 1fr); }
	.clients__grid li { height: 80px; padding: 0 28px; font-size: 18px; }
	.clients__grid img { height: 38px; max-width: 170px; }
	.clients__grid img[src*="korea-startup-center"] { height: 64px; }
	.cta { padding-block: 80px; }
	.btns .btn { flex: 1 1 auto; }
	.btn--lg { width: 100%; }
	.site-footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.site-footer__bottom { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { transition: none !important; }
}

/* Client voices slider (mdc/voices) */
.voices { display: flex; flex-direction: column; gap: 32px; }
.voices__track { display: grid; }
.voices .voices__slide { grid-column: 1; grid-row: 1; margin: 0; display: flex; flex-direction: column; gap: 28px; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility 0s linear .8s; }
.voices__slide.is-active { opacity: 1; visibility: visible; transition: opacity .8s ease, visibility 0s; }
.voices blockquote.voice__quote { margin: 0; }
.voices__dots { display: flex; gap: 4px; }
.voices__dot { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.voices__dot span { display: block; width: 28px; height: 2px; background: var(--c-on-dark-3); transition: background-color .3s; }
.voices__dot[aria-current="true"] span { background: var(--c-on-dark); }
.voices__dot:focus-visible { outline: 1px solid var(--c-on-dark); outline-offset: -6px; }
@media (prefers-reduced-motion: reduce) { .voices__slide, .voices__slide.is-active { transition: none; } }
.editor-styles-wrapper .voices__slide:not(:first-child) { display: none; }
