:root {
	--foundation-primary: #016a3a;
	--foundation-secondary: #bcb19e;
	--foundation-white: #fefefe;
	--foundation-light-gray: #e6e6e6;
	--foundation-medium-gray: #cacaca;
	--foundation-dark-gray: #8a8a8a;
	--foundation-black: #0a0a0a;
	--palette-highlight: #edbb02;
	--palette-translation: #4774B8;
	--palette-movie: #ee7961;
	--palette-design: #74bbe4;
	--palette-interpretation: #da5d9e;
	--palette-staffing: #e1c845;
	--palette-englishtraining: #9cbf68;
}

html,
body {
	overflow-x: hidden;
}

body {
	text-autospace: normal;
	font-optical-sizing: auto;
	min-width: 320px;
}

address,
cite,
dfn,
[lang|="ja"] em,
[lang|="ja"] i {
	font-style: normal;
}

cite {
	display: initial;
	color: inherit;
	font-size: inherit;
}

cite::before {
	content: none;
}

a:hover,
a:focus {
	text-decoration: underline;
}

.no-js .off-canvas {
	display: none;
}

.c-tagline {
	font-size: 0.875rem;
	padding: 0.5rem;
	background: var(--foundation-white);
	color: var(--foundation-dark-gray);
}

.sticky.is-stuck .c-tagline {
	display: none;
}

/* Large and up */
@media screen and (min-width: 64em) {
	/* 余白を .top-bar / .menu の組み合わせに合わせる.
	   TODO: 移行後, その余白を再考. */
	.c-tagline {
		padding: 1.2rem 1.5rem;
		padding-bottom: 0.7rem;
	}
}

.c-tagline {
	margin-bottom: 0;
}

.c-titleBar {
	outline: 1px solid var(--foundation-light-gray);
}

.sticky.is-stuck {
	box-shadow: 0 0 10px rgba(10, 10, 10, 0.7);
}

.c-titleBar-image {
	height: 1.6rem;
}

.c-titleBar-caption {
	font-size: 0.53rem;			/* 画像の幅に合わせる. */
	text-transform: uppercase;
}

.position-top {
	height: auto;
	max-height: 100vh;
}

.o-inverse {
	background-color: var(--foundation-primary);
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAAAlwSFlzAAALEwAACxMBAJqcGAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPlBpeGVsbWF0b3IgMy43LjM8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzI8L3RpZmY6WVJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjU8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyPC90aWZmOlhSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+ODwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFlEaW1lbnNpb24+ODwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgqVgS8fAAAAR0lEQVQYGWO4ceMG7////zEwSNza2pqXAZ8kSBGGAphOmMkoCtAlQabDFWCThCt4/fo12EEwY5HdxYBPEmwCyCvYdIIkQZoBgumpfP4aV20AAAAASUVORK5CYII=");
	color: var(--foundation-white);
}

.c-menu a {
	color: inherit;
}

.c-menu .o-inverse.accordion-menu .is-accordion-submenu-parent:not(.has-submenu-toggle) > a::after {
	border-color: var(--foundation-white) transparent transparent;
}

.c-menu .close-button {
	color: var(--foundation-white);
}

.c-menu .close-button:hover,
.c-menu .close-button:focus {
	color: var(--foundation-light-gray);
}

.c-menu-padded {
	padding: 1rem;
}

.c-menu-padded.accordion-menu a {
	padding: 0.7rem 0;
}

.c-menu-padded > li {
	border-bottom: 1px solid var(--foundation-light-gray);
}

.c-menu-padded > li:first-child {
	border-top: 1px solid var(--foundation-light-gray);
}

.c-topBar .media-object {
	padding: 0.7rem 1rem;		/* .menu に合わせる. */
	margin-bottom: 0;
}

/* TODO: 移行後, 削除. */
.c-topBar .media-object-section:first-child {
	padding-right: 2rem;
}

.c-topBar .menu {
	font-size: 0.875rem;
}

.c-topBar-caption {
	font-size: 0.875rem;
	line-height: 1;
	text-transform: uppercase;
	color: var(--foundation-dark-gray);
}

.sticky.is-anchored.is-at-top .c-topBar {
	padding-top: 0;
}

.menu.c-serviceMenu a {
	padding: 0.7rem 0;
}

.c-serviceMenu a,
.sticky.is-stuck .c-serviceMenu-large a {
	line-height: 1.6;
}

.c-serviceMenu a {
	font-weight: bold;
	background-color: var(--foundation-primary);
	color: var(--foundation-white);
}

.c-serviceMenu-large a {
	line-height: 3;
}

.c-serviceMenu a:hover,
.c-serviceMenu a:focus {
	text-decoration: none;
}

.c-serviceMenu a.translation:hover,
.c-serviceMenu a.translation:focus {
	background-color: var(--palette-translation);
}

.c-serviceMenu a.movie:hover,
.c-serviceMenu a.movie:focus {
	background-color: var(--palette-movie);
}

.c-serviceMenu a.design:hover,
.c-serviceMenu a.design:focus {
	background-color: var(--palette-design);
}

.c-serviceMenu a.interpretation:hover,
.c-serviceMenu a.interpretation:focus {
	background-color: var(--palette-interpretation);
}

.c-serviceMenu a.staffing:hover,
.c-serviceMenu a.staffing:focus {
	background-color: var(--palette-staffing);
}

.c-serviceMenu a.englishtraining:hover,
.c-serviceMenu a.englishtraining:focus {
	background-color: var(--palette-englishtraining);
}

.c-sitemap {
	padding-top: 2.5rem;
	padding-bottom: 2.5rem;
	background: var(--foundation-primary);
	color: var(--foundation-white);
	font-size: 0.875rem;
}

.c-sitemap ul {
	list-style: '▸  ';
}

.c-sitemap a {
	color: inherit;
}

.c-sitemap .h5 {
	margin-bottom: 2rem;
}

.c-sitemap .h6 {
	padding-bottom: 0.5rem;
	border-bottom: 1px solid var(--foundation-medium-gray);
}

/* Large and up */
@media screen and (min-width: 64em) {
	.c-sitemap .medium-5.cell ul {
		column-count: 2;
		column-gap: 0.9375rem;
	}

	.c-sitemap .medium-5.cell ul > li {
		break-inside: avoid;
	}
}

.o-footer {
	padding-top: 2rem;
	padding-bottom: 1rem;
	font-size: 0.875rem;
}

.o-footer-privacy img,
.o-footer-iso img {
	height: 5em;
}

.o-footer-iso abbr {
	border-bottom-width: 0;
}

.u-stretchedLink::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1;
}

.u-wordBreak {
	word-wrap: break-word;
	overflow-wrap: break-word;
	word-break: keep-all;
}
