@font-face {
font-family: 'Droid';
src: url('../fonts/DroidSerif-Regular.woff') format('woff');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Droid';
src: url('../fonts/DroidSerif-Italic.woff') format('woff');
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: 'Droid';
src: url('../fonts/DroidSerif-Bold.woff') format('woff');
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'Droid';
src: url('../fonts/DroidSerif-BoldItalic.woff') format('woff');
font-weight: 700;
font-style: italic;
}

@font-face {
font-family: 'Roboto';
src: url('../fonts/Roboto-Thin.woff') format('woff');
font-weight: 200;
font-style: normal;
}
@font-face {
font-family: 'Roboto';
src: url('../fonts/Roboto-Light.woff') format('woff');
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: 'Roboto';
src: url('../fonts/Roboto-Regular.woff') format('woff');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Roboto';
src: url('../fonts/Roboto-Italic.woff') format('woff');
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: 'Roboto';
src: url('../fonts/Roboto-Medium.woff') format('woff');
font-weight: 500;
font-style: normal;
}
@font-face {
font-family: 'Roboto';
src: url('../fonts/Roboto-MediumItalic.woff') format('woff');
font-weight: 500;
font-style: italic;
}
@font-face {
font-family: 'Roboto';
src: url('../fonts/Roboto-Bold.woff') format('woff');
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'Roboto';
src: url('../fonts/Roboto-BoldItalic.woff') format('woff');
font-weight: 700;
font-style: italic;
}

@font-face {
font-family: 'RobotoCondensed';
src: url('../fonts/RobotoCondensed-Regular.woff') format('woff');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'RobotoCondensed';
src: url('../fonts/RobotoCondensed-Italic.woff') format('woff');
font-weight: 400;
font-style: italic;
}
@font-face {
font-family: 'RobotoCondensed';
src: url('../fonts/RobotoCondensed-Bold.woff') format('woff');
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'RobotoCondensed';
src: url('../fonts/RobotoCondensed-BoldItalic.woff') format('woff');
font-weight: 700;
font-style: italic;
}

@font-face {
font-family: 'YaHei';
src: url('../fonts/chinese.msyh.woff') format('woff');
font-weight: normal;
font-style: normal;
}



@font-face {
font-family: 'NotoSerif JP';
src: url('../fonts/NotoSerifJP-Regular.woff') format('woff');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'NotoSerif JP';
src: url('../fonts/NotoSerifJP-Medium.woff') format('woff');
font-weight: 500;
font-style: normal;
}
@font-face {
font-family: 'NotoSerif JP';
src: url('../fonts/NotoSerifJP-SemiBold.woff') format('woff');
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: 'NotoSerif JP';
src: url('../fonts/NotoSerifJP-Bold.woff') format('woff');
font-weight: 700;
font-style: normal;
}


@font-face {
font-family: 'NotoSansSerif JP';
src: url('../fonts/NotoSansJP-Light.woff') format('woff');
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: 'NotoSansSerif JP';
src: url('../fonts/NotoSansJP-Regular.woff') format('woff');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'NotoSansSerif JP';
src: url('../fonts/NotoSansJP-Medium.woff') format('woff');
font-weight: 500;
font-style: normal;
}
@font-face {
font-family: 'NotoSansSerif JP';
src: url('../fonts/NotoSansJP-SemiBold.woff') format('woff');
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: 'NotoSansSerif JP';
src: url('../fonts/NotoSansJP-Bold.woff') format('woff');
font-weight: 700;
font-style: normal;
}





@font-face {
font-family: 'Icomoon';
src: url('../fonts/icomoon2.woff') format('woff');
font-weight: normal;
font-style: normal;
}

[class*="icon"],
a#navmaintrigger::after,
.pagenav_article a.prev::before,
.pagenav_article a.next::after,
#navmainswitch a::before,
#navmain .active a::before,
.text_framed::before,
.category-name a::before,
.next_category a::after {
font-family: 'icomoon' !important;
speak: none;
font-style: normal;
font-weight: normal !important;
font-variant: normal;
text-transform: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}

html {
height: 100%;
box-sizing: border-box;
}

*, *::before, *::after {
box-sizing: border-box;
}

body {
min-height: 100vh;
margin: 0;
padding: 0;
font-family: 'Droid';
font-size: 16px;
font-weight: 400;
line-height: 1.6;
color: #000;
hyphens: manual;
-ms-hyphens: manual;
-webkit-hyphens: manual;
background-color: #333;
-moz-osx-font-smoothing: grayscale;
}

/*** Chinese ***/

body.chinese {
font-family: 'YaHei';
}
.chinese .subtitle {
font-family: 'YaHei';
font-size: 2.125rem;
}
.chinese #navmainswitch a::before {
vertical-align: bottom;
font-size: 22px;
vertical-align: middle;
}

#langnav a:last-child {
font: 400 18px/40px 'YaHei';
}

.chinese .table {
font-family: 'YaHei';
}
.chinese #navmain {
font-family: 'YaHei';
font-size: 1.0625em;
font-weight: normal;
}
.chinese #navmainswitch a {
font-size: 20px;
font-weight: 500;
}
.chinese .category-name {
font-size: 0.875em;
}

.chinese .mfp-bottom-bar {
font-family: 'YaHei';
font-size: 15px;
}

.chinese .floated {
font-size: 15px;
}
.chinese footer {
font-family: 'YaHei';
}
.chinese .pagenav_article {
font-family: 'YaHei';
}
.chinese .imagerow figcaption {
font-family: 'YaHei';
}
.chinese .left_col,
.chinese .right_col {
font-family: 'YaHei';
}
.chinese .left_col h3,
.chinese .right_col h3,
.chinese .right_col h4 {
font-family: 'YaHei';
font-weight: bold;
}

.chinese .blog_container article .lining p {
font-family: 'YaHei';
}

/*** end Chinese ***/

/*** Japanese ***/

body.japanese {
font-family: 'NotoSerif JP';
line-height: normal;
}

.japanese .subtitle {
font-family: 'NotoSansSerif JP';
font-size: 2.125rem;
font-weight: 400;
}
.japanese #navmainswitch a {
font-size: 20px;
font-weight: 600;
}

.japanese #navmain a {
line-height: 1.2;
}

#lang_options a:nth-last-child(2) {
font-family: 'NotoSansSerif JP';
font-size: 17px;
}

.japanese #mast_caption {
font-family: 'NotoSerif JP';
font-size: 0.938em;
}

.japanese .catname {
font-family: 'NotoSansSerif JP';
font-size: 0.938em;
}
.japanese .category-name {
font-family: 'NotoSansSerif JP';
font-size: 0.75em;
}
.chinese table {
font-family: 'YaHei';
}
.japanese table {
font-family: 'NotoSerif JP';
}
.japanese #navmain {
font-family: 'NotoSansSerif JP';
font-size: 1.125em;
font-weight: 500;
}
.japanese h1 {
margin: 0 0 .5em;
font-family: 'NotoSansSerif JP';
font-size: 1.875em;
font-weight: 400;
}
.japanese h2 {
margin: 1.5em 0 1em;
font-family: "NotoSansSerif JP";
font-size: 1.6em;
font-weight: 400;
}
.japanese h3 {
margin: 1.5em 0 1em;
font-family: "NotoSansSerif JP";
font-weight: 500;
font-size: 1.250em;
line-height: normal;
}
.japanese .h1_subtitle {
margin: -0.5em 0 1em;
font-size: 1.5em;
}
.japanese .h1_subtitle.outdent,
.chinese .h1_subtitle.outdent{
margin-left: -0.5em;
}

.home.japanese .blog_container .article h2,
.japanese .blog_container .blog_item h2 {
font-family: 'NotoSansSerif JP';
font-size: 1.375em;
font-weight: 400;
}

.japanese .mfp-bottom-bar {
font-size: 15px;
}

.japanese .floated {
font-size: 15px;
}
.japanese footer {
font-family: 'NotoSansSerif JP';
}
.japanese .pagenav_article {
font-family: 'NotoSansSerif JP';
font-size: 1.25em;
font-weight: 500;
}
.japanese .imagerow figcaption {
font-size: 0.875em;
}
body.japanese .left_col,
body.japanese .right_col {
font-family: 'NotoSansSerif JP';
/*font-weight: 500;*/
line-height: normal;
}
.japanese .left_col h3,
.japanese .right_col h3,
.japanese .right_col h4 {
font-family: 'NotoSansSerif JP';
font-size: 1.25em;
font-weight: 500;
}

.japanese .blog_container article .lining p {
font-family: 'NotoSansSerif JP';
}

.japanese th,
.japanese strong {
font-weight: 600;
}
.japanese .next_category a {
font-family: 'NotoSansSerif JP';
font-size: 18px;
}

.com-finder__counter.search-pages-counter {
display: none;
}

/*** end Japanese ***/

/* main containers */

.wrapper {
max-width: 1920px;
margin: 0 auto;
background-color: #fff;
}

.top_flex {
min-height: 100vh;
display: flex;
flex-direction: column;
}

header {
flex-grow: 0;
background: #ccc url(../img/loader1.gif) no-repeat center center;
}
main {
flex: 1;
padding: 40px 0;
display: flex;
flex-flow: row nowrap;
position: relative;
}
.blog main {
background-color: #ECECEC;
}
.article main {
padding: 40px 0 20px;
}
.article-body {
line-height: 1.7;
}

footer {
flex-grow: 0;
font-family: 'RobotoCondensed';
font-size: 1em;
font-weight: 500;
background-color: #fff;
border-top: 1px solid #ccc;
}
.japanese footer {
font-weight: 400;
}

.home footer,
.blog footer {
border: none;
}

.column_width {
width: 100%;
height: 100%;
max-width: 1600px;
margin: 0 auto;
padding: 0 30px;
}

/* end main containers */


/** header **/

.header_top {
display: flex;
flex-flow: row nowrap;
font-family: 'Roboto';
background-color: #fff;
}

.header_top .column_width {
display: flex;
flex-flow: row nowrap;
width: 100%;
max-width: 1600px;
margin: 0 auto;
padding: 0 30px;
}

header .left {
flex: 0 1 auto;
}
header .right {
flex: 1 1 auto;
text-align: right;
padding: 20px 0 0;
display: flex;
flex-flow: row nowrap;
justify-content: flex-end;
}

#site_title {
font-size: 2.5rem;
font-weight: 300;
line-height: 1;
padding: 20px 0 24px;
}

#site_title span {
display: inline-block;
}
#site_title a .name {
color: #e21b22;
}
#site_title a .domain {
color: #0E3769;
}

.squares {
display: inline-block;
width: 20px;
height: 20px;
vertical-align: middle;
color: #e21b22;
}

.column_width.info {
position: relative;
width: 100%;
height: auto;
margin: 0 auto;
padding: 20px 30px 30px;
text-align: right;
display: flex;
justify-content: flex-end;
}
#imageinfo {
width: 28px;
height: 28px;
z-index: 101;
}
a#infoswitch {
width: 28px;
height: 28px;
padding: 6px;
line-height: 28px;
font-size: 16px;
background-color: #fff;
color: #000;
border-radius: 18px;
filter: drop-shadow(0px 0px 5px rgba(0,0,0,.5));
transition: all 0.33s ease;
}
a#infoswitch:hover,
a#infoswitch:focus {
color: #fff;
background-color: #E21B22;
cursor: pointer;
}
#mast_caption {
display: none;
position: absolute;
right: 44px;
top: 34px;
width: 470px;
padding: 20px;
font-family: "Roboto";
font-size: 0.875em;
text-align: left;
background: #fff;
z-index: 100;
}
#mast_caption.open {
display: block;
}

.mast, 
.mast-content-frame {
display: flex;
flex-direction: column;
justify-content: space-between;
max-width: 1920px;
min-height: 582px;
background-size: cover !important;
}

.slideshow_frame {
position: relative;
margin: 0;
padding: 0;	
margin: 0;
box-sizing: border-box;
width: 100%;
min-height: 582px;
animation: slideshow 15s ease-in-out infinite;
background: #333;
}
.slideshow_frame > figure {
padding: 0;
margin: 0;
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
animation: fade 30s linear infinite 0s;
backface-visibility: hidden;
background-size: cover;
background-position: center center;
color: transparent;
opacity: 0;
z-index: 0;
}

@keyframes fade {  0% {
animation-timing-function: ease-in;
opacity: 0;
}
8% {
animation-timing-function: ease-out;
opacity: 1;
}
17% {
opacity: 1
}
25% {
opacity: 0
}
100% {
opacity: 0
}
}

.mast-content-frame {
position: relative;
width: 100%;
height: 100%;
}
.mast-menu-frame {
position: absolute;
width: 100%;
left: 0;
bottom: 0;
z-index: 10;
}

header a {
color: #000;
}
header a:hover,
header a:focus {
color: #0E3769;
}

/*** search ***/

.com-finder.finder {
margin-bottom: 40px;
}

.search_container {
margin: 0 auto;
}
.form_container {
padding: 30px;
background-color: #ececec;
}

.searchbox {
display: flex;
background-color: #fff;
border: 1px solid #C9C9C7;
}

.inputfield {
flex: 1 1 auto; 
padding: 0 10px;
color: #000;
background-color: transparent;
border: none;
font: 400 1em/50px 'Roboto';
color: #333;
}
.japanese .inputfield {
font-family: 'NotoSansSerif JP';
}
.chinese .inputfield {
font-family: 'YaHei';
}
.inputfield:focus {
color: #000;
}
.searchbutton {
flex: 0 0 auto; 
width: 44px;
height: 50px;
font-size: 22px;
line-height: 50px;
padding: 0 10px;
border: none;
text-align: right;
color: #0E3769;
background: transparent;
cursor: pointer;
}
.searchbutton:hover {
color: #E21B22;
}

.search_results {
margin-top: 40px;
}

.searchres-pagination {
margin-top: 40px;
padding-top: 20px;
border-top: 1px dotted #000;
}
.search-pagination ul {
margin: 0;
padding: 0;
font: 500 16px/40px 'Roboto';
display: flex;
gap: 10px;
cursor: pointer;
}

.search-pagination li {
list-style: none;
margin: 0;
padding: 0;
}
.search-pagination a {
display: block;
min-width: 40px;
height: 40px;
border: 1px solid #0E3769;
text-align: center;
}
.search-pagination a:hover {
border-color: #E21B22;
}
.search-pagination .active a {
color: #fff;
background-color: #0E3769;
}
.search-pagination .active a:hover {
border-color: #0E3769;
}

.search-pages-counter {
margin-top: 20px;
font: 400 1em/normal 'Roboto';
}
.search-pages-counter strong {
font-weight: 400;
}

.com-finder__empty h2 {
font-size: 1.2em;
/*font-weight: 500;*/
}
.com-finder__empty p {
display: none;
}

.com-finder__explained {
margin-top: 20px;
font: 400 1em/normal 'Roboto';
}

.imprint .columns p {
margin: 0 0 1em;
}

/*** end search ***/

#langnav {
display: flex;
flex-direction: row-reverse;
position: relative;
font: 400 16px/40px 'RobotoCondensed';
text-transform: uppercase;
padding-left: 20px;
height: 42px;
background-color: #fff;
}

#lang_options {
position: static;
display: flex;
flex-flow: row nowrap;
}
.search_icon {
order: 2;
}


#langnav a {
display: block;
width: 42px;
height: 42px;
margin-left: 8px;
text-align: center;
color: #0E3769;
border: 1px solid #C9C9C7;
transition: all 0.5s ease;
}
#langnav a#search_link {
margin-left: 30px;
}

#langnavswitch {
display: none;
}

#langnav a:hover, #langnav a.active {
color: #fff;
background-color: #e21b22;
border-color: #e21b22
}
#langnav a.active {
color: #e21b22;
background-color: #fff;
}

/** end header **/

/** navmain **/

.nav.column_width {
height: 100%;
position: relative;
}

#navmainswitch {
display: none;
}
#navmainswitch a {
display: block;
padding: 12px 20px;
color: #fff;
font-family: "Roboto";
font-size: 1em;
font-weight: 700;
line-height: 30px;
text-transform: uppercase;
background-color: #E21B22;
transition: background-color 0.5s ease;
}
#navmainswitch a::before {
content: "\e918";
font-size: 20px;
line-height: 30px;
vertical-align: bottom;
padding-right: 5px;
}

#navmainswitch a:hover,
#navmainswitch a:active {
background-color: #0E3769;
}

a#navmainswitch::after {
display: block;
float: left;
margin-right: 10px;
width: 30px;
text-align: center;
content: "\e617";
font-size: 30px;
}
a#navmainswitch.close::after {
content: "\e209";
font-size: 28px;
}

#navmain {
display: block;
font-family: 'Roboto';
font-weight: 500;
line-height: normal;
}
#navmain ul {
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-flow: row wrap;
}
#navmain li {
flex: 1 1 12.5%;
min-width: 160px;
margin: 0;
padding: 1px 1px 0 1px;
list-style: none;
display: flex;
flex-direction: column;
}

#navmain a {
height: 100%;
padding: 12px 10px 15px;
color: #fff;
transition: background-color 0.5s ease;
background-color: #e21b22;
}
#navmain a:hover {
background-color: #0E3769;
}
#navmain .active a {
color: #000;
background-color: #ececec;
}
#navmain .active a:hover {
color: #fff;
background-color: #0E3769;
}

.mute-menu #navmain .active a {
color: #fff;
background-color: #e21b22;
}
.mute-menu #navmain .active a:hover {
color: #fff;
background-color: #0E3769;
}

/** end navmain **/

/** main **/

/*** article ***/

.article_container {
display: flex;
flex-flow: row nowrap;
}
article {
min-width: 100%;
}
.left_col,
.right_col {
flex: 1 1 18%;
max-width: 18%;
font-family: "Roboto";
}
.right_col h3,
.right_col h4 {
line-height: normal;
}

.center_col {
flex: 1 1 74%;
max-width: 64%;
padding: 0 3vw 0;
position: relative;
}

.blog .left_col,
.blog .right_col {
display: none;
}
.blog .center_col {
flex: 1 1 100%;
max-width: 100%;
padding: 0;
}

.left_col h3,
.right_col h3,
.right_col h4 {
margin: 0 0 1em;
font-family: "RobotoCondensed";
font-weight: 400;
font-size: 1.250em;
line-height: normal;
}
.right_col h4 {
margin: 0 0 1em 0;
font-size: 1.125em;
}
.right_col ul.related, 
.right_col ul.external {
padding-bottom: 10px;
}

.left_col .nav,
.right_col ul {
list-style: none;
margin: 0;
padding: 0;
}

.left_col .nav li,
.right_col li {
margin: 0 0 10px;
padding-bottom: 10px;
border-bottom: 1px dotted #9b9893;
}

.left_col .nav li:last-child,
.right_col ul li:last-child {
border-bottom: none;
}

.left_col .current a {
color: #E21B22;
}

.external a {
color: #4a6f00;
}
.external a:hover,
.external a:focus {
color: #E21B22;
}

.catname {
margin-bottom: 20px;
font-family: "Roboto";
font-size: 0.75em;
font-weight: 500;
text-transform: uppercase;
color: #666;
}
.no-catname .catname {
display: none;
}

h1 {
margin: 0 0 0.75em;
font-family: "RobotoCondensed";
font-size: 2.5em;
line-height: normal;
font-weight: 400;
}
.chinese h1 {
font-size: 2.25em;
}
h1.page_title {
margin: 0 0 1em;
font-family: "RobotoCondensed";
line-height: normal;
font-weight: 400;
}
.h1_subtitle {
margin: -1em 0 0.75em;
font-family: "RobotoCondensed";
font-size: 1.375em;
line-height: normal;
font-weight: 400;
}

h2 {
margin: 1em 0 1em;
font-family: "RobotoCondensed";
line-height: normal;
font-size: 1.750em;
font-weight: 400;
}
.section_title h2 {
margin: 0 0 1em;
}

h3 {
margin: 0 0 1.5em;
font-family: "RobotoCondensed";
font-weight: 400;
font-size: 1.250em;
line-height: normal;
}

p.lead {
margin: 0 0 1.5em;
padding: 15px 0;
font-size: 1.125em;
border-top: 1px dotted #999;
border-bottom: 1px dotted #999;
}

.imagerow {
display: flex;
flex-flow: row wrap;
margin: 2em 0;
padding: 4px;
background: #ececec url(../img/pattern3.png) repeat top left;
}
.imagerow.plain {
background: #ECECEC url(none);
}
.counties .imagerow.plain {
text-align: center;
}

.imagerow figure {
flex: 1 1 25%;
max-width: 50%;
margin: 0;
border: 4px solid transparent;
background-clip: padding-box;
background-color: #fff;
}
.imagerow.three figure {
flex: 1 1 33.33%;
max-width: 100%;
margin: 0;
border: 4px solid transparent;
background-clip: padding-box;
background-color: #fff;
}

.imagerow.two figure {
flex: 1 1 50%;
max-width: 50%;
margin: 0;
border: 4px solid transparent;
background-clip: padding-box;
background-color: #fff;
}

.imagerow img {
width: 100%;
}

.imagerow figcaption {
padding: 15px;
font-family: "Roboto";
font-size: 0.875em;
line-height: 1.4;
}

.social {
margin-top: 30px;
font-size: 24px;
}
.social a {
margin-right: 20px;
}

.table_scroller {
overflow-x: auto;
line-height: normal;
}

.table_scroller.smalltype {
font-size: 0.938em; 
}

/*** end article ***/

/*** blog ***/

.textbox .article_container {
display: block;
}

.textbox .blog_container {
margin-top: 2em;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 20px;
}
.textbox .blog_container article {
padding-bottom: 10px;
font-family: 'Roboto';
font-weight: 400;
background-color: #fff;
}
.textbox h1 {
margin: 0 0 1em;
font-family: "RobotoCondensed";
line-height: normal;
font-size: 1.750em;
font-weight: 400;
}
.textbox .blog_container article h2 {
font-family: 'RobotoCondensed';
font-size: 1.5em;
line-height: 1.25;
font-weight: 500;
margin: 0;
padding: 20px 20px 0;
}
.japanese.textbox .blog_container article {
font-family: 'NotoSerif JP';
}
.japanese.textbox h1,
.japanese.textbox .blog_container article h2 {
font-family: 'NotoSansSerif JP';
font-weight: 500;
}

.category-desc {
margin-bottom: 2.5em;
}

.blog_container {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 20px;
}

.blog_intro {
columns: 300px 4;
}
.blog_intro.twocols {
columns: 460px 2;
column-gap: 40px;
}
.blog_intro p {
margin: 0 0 .5em;
}

.blog_container .blog_item .lining {
display: flex;
flex-direction: column;
height: 100%;
background-color: #fff;
}
.blog_container figure {
margin: 0;
}

.blog_container figure img {
max-width: 100%;
}

article .category_link {
position: absolute;
left: 0;
bottom: 0;
padding: 15px 20px 10px;
background-color: #fff;
font-weight: 500;
font-size: 0.688em;
line-height: 1;
text-transform: uppercase;
}

.blog_container .blog_item h2 {
font-family: 'RobotoCondensed';
font-size: 1.5em;
line-height: 1.25;
font-weight: 500;
margin: 0;
padding: 20px 20px 0;
}
.blog_container article {
background-color: #fff;
}

.blog_container .blog_item .lining p {
font-size: 0.938em;
margin: 0;
padding: 15px 20px 30px;
}

.home .blog_container .article {
display: flex;
flex-direction: column;
height: 100%;
background-color: #fff;
}
.home .blog_container .article h2 {
font-family: 'RobotoCondensed';
font-size: 1.5em;
line-height: 1.25;
font-weight: 500;
margin: 0;
padding: 20px 20px 0;
}
.home .blog_container .article .item-content {
position: relative;
}
.home .blog_container .article .article-info {
display: inline-block;
position: absolute;
left: 0;
top: -35px;
margin: 0;
padding: 15px 20px 11px;
background-color: #fff;
}

.article-info-term span {
display: none;
}

.category-name {
margin: 0;
font-family: 'Roboto';
font-weight: 500;
font-size: 0.688em;
line-height: 1;
text-transform: uppercase;
}

.category-name a {
color: #0E3769;
}
.category-name a:hover, 
.category-name a:focus {
color: #E21B22;
}

.category-name a::before {
content: "\e5c8";
margin-right: 3px;
font-size: 1.2em;
vertical-align: top;
}

.home .blog_container .article p {
font-size: 0.938em;
margin: 0;
padding: 15px 20px 30px;
}

/**** video ****/

.video {
box-sizing: border-box;
text-align: center;
margin-bottom: 1em;
background-color: #eee;
}
.video iframe, .video object {
display: block;
margin: auto;
}
.videoWrapper {
position: relative;
padding-bottom: 56.25%; /* 16:9 */
padding-top: 25px;
height: 0;
overflow: hidden;
}
.video .videoWrapper iframe,
.video .videoWrapper object {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}

.readmore {
font-family: 'Roboto';
font-weight: 600;
font-size: .765em;
line-height: 30px;
text-transform: uppercase;
margin-top: 1em;
}
.readmore a {
padding: 5px 8px 5px 4px;
margin-left: -4px;
}

.readmore a::before {
content: "\e205";
font-size: 20px;
line-height: 30px;
vertical-align: middle;
padding-right: 3px;
}
/**** end video ****/


/*** end blog ***/

/*** blog pagination ***/

.pagenav {
margin: 30px 0 0;
}
.chinese .pagenav {
font-family: "Roboto";
}

.pagenav a {
display: inline-block;
margin-right: 10px;
padding-top: 1px;
width: 42px;
height: 42px;
text-align: center;
vertical-align: middle;
font-size: 28px;
line-height: 40px;
color: #000;
background-color: #fff;
border: 1px solid #C9C9C7;
transition: all .25s ease-out;
}
.pagenav a:hover {
color: #fff;
background-color: #e21b22;
border-color: #e21b22
}
.pagenav a.disabled {
color: #C0C0C0;
}
.pagenav a.disabled:hover {
color: #C0C0C0;
background-color: #fff;
border-color: #C9C9C7
}
.pagenav a.prev::before {
content: "\e90d";
}
.pagenav a.next::before {
content: "\e90e";
}

/*** end blog pagination ***/

/*** article pagination ***/

.pagenav_article {
font-family: "Roboto";
line-height: 1;
margin: 60px 0 0;
padding-top: 20px;
border-top: 1px dotted #999;
display: flex;
flex-flow: row nowrap;
justify-content: space-between ;
}
.first-in-chapter .pagenav_article {
justify-content: flex-end;
}
.pagenav_article div {
flex: 1 1 50%;
}

.pagenav_article a,
.next_category a {
display: flex;
align-items: center;
gap: 5px;
transition: all .25s ease-out;
line-height: 1;
}
.pagenav_article a.next,
.next_category a {
justify-content: flex-end;
}

.pagenav_article div:last-child {
text-align: right;
}

.pagenav_article a.prev::before {
content: "\e5c4";
font-size: 22px;
}
.pagenav_article a.next::after,
.next_category a::after {
content: "\e5c8";
font-size: 22px;
}
.next_category {
z-index: 10;
position: absolute;
top: -22px;
right: 0;
white-space: nowrap;
}
.next_category a {
font-family: 'Roboto';
}

/*** end article pagination ***/

/** end main **/

/** footer **/
footer .column_width {
display: flex;
flex-flow: row nowrap;
align-items: top;
padding-top: 40px;
padding-bottom: 60px;
}

footer .left {
flex: 1 1 55%;
padding-right: 40px;
}
footer .right {
flex: 1 1 45%;
text-align: right;
}
#footer_right a {
position: relative;
display: inline-block;
line-height: 40px;
margin-left: 10px;
margin-bottom: 10px;
color: #000;
padding: 0 18px;
border: 1px solid #C9C9C7;
transition: background-color 0.5s ease;
}
#footer_right a:hover {
color: #fff;
background-color: #E21B22;
border: 1px solid #E21B22;
}

/** end footer **/

/* to top */
.fixed {
display: none;
height: 40px;
position: fixed;
bottom: 0;
right: 0;
z-index: 100;
}

.fixed a {
display: block;
width: 40px;
height: 40px;
line-height: 40px;
font-size: 24px;
text-align: center;
color: #fff;
background-color: #0E3769;
box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.4);
}
.fixed a:hover,
.fixed a:focus,
.fixed a:active {
color: #fff;
background-color: #E21B22;
}
/* end to top */

/* standard tags */

img {
display: block;
border: none;
max-width: 100%;
width: auto;
height: auto;
}
a {
color: #0E3769;
text-decoration: none;
outline: none;
}
a:hover, a:focus {
color: #e21b22;
text-decoration: none;
outline: none;
}

p {
margin: 1em 0;
}
/* end standard tags */

sup {
font-size: 0.625em;
}
.scaps {
font-variant: small-caps;
}

.clearfloats::after {
content: " ";
display: block;
height: 0;
visibility: hidden;
clear: both;
}

.squeeze img {
width: 100%;
margin: 2em 0;
}
.text_framed.squeeze img {
margin: 1em 0;
}
img.squeeze {
width: 100%;
}
.squeeze.loose {
background-color: #f4f4f4;
}
.squeeze.loose img {
max-width: 500px; 
margin: 0 auto;
}
.download img {
padding-bottom: 10px;
}

.audio_container {
margin: 2em 0;
}
.audio_container figcaption {
margin: 0 0 .5em;
font-family: 'Roboto';
font-size: 0.875em;
font-weight: 500;
}

table {
width: 100%;
border-collapse: collapse;
font-family: 'Roboto';
margin: 2em 0;
}

th, td {
padding: 6px 10px;
text-align: left;
vertical-align: top;
border: 1px solid #CAC7BF;
}
th {
font-weight: 500;
}

.spaced_vert {
margin-top: 2em;
margin-bottom: 2em;
}

.floated {
float: left;
width: 260px;
padding: 20px;
background-color: #ececec;
margin-right: 30px;
}
.floated.eng,
.floated.jap  {
min-width: 380px;
}
.floated.es {
min-width: 400px;
}
.floated.jap  {
min-width: 370px;
}

ul li {
margin: 0 20px .5em 0;
}

.text_framed {
position: relative;
margin: 2em 0;
padding: 20px;
background-color: #F4F4F4;
border: 1px solid #F1B11D;
border-radius: 5px;
}
.text_framed::before {
content: "\e9d2";
font-size: 20px;
line-height: 18px;
color: #FF9900;
position: absolute;
left: 20px;
top: -3px;
}
.mixed_content {
display: grid;
gap: 20px;
grid-template-columns: 1fr auto;
}
.imprint .columns p.image_framed {
background-color: #F4F4F4;
margin-bottom: 2em;
}
.image_framed img {
width: 50%;
margin: 0 auto;
}

.columns_flex {
display: flex;
flex-flow: row wrap;
margin: 0 -20px;
}
.columns_flex div {
flex: 1 1 auto;
padding: 0 20px;
}

.columns_flex div:first-child {
flex: 1 0 20%;
max-width: 20%;
}
.columns_flex div:last-child {
flex: 1 1 80%;
max-width: 80%;
}

.nowrap {
white-space: nowrap;
}

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

.mast, 
.slideshow_frame,
.mast-content-frame {
min-height: calc(100vw / 3.3);
}

}

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

#site_title {
padding: 30px 0;
}
header .right {
padding: 28px 0 0;
}
.mast, 
.slideshow_frame,
.mast-content-frame {
min-height: calc(100vw / 3);
}
.nav.column_width {
padding: 0;
}
.blog main .column_width {
margin: 0 auto;
padding: 0 10px;
}
.blog_top {
margin: 0 20px 2em;
}
.pagenav {
margin: 30px 20px 0;
}
}

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

.imagerow figure,
.imagerow.three figure {
flex: 1 1 50%;
}
.mast, 
.slideshow_frame,
.mast-content-frame {
min-height: calc(100vw / 2.8);
}

}


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

.mast, 
.slideshow_frame,
.mast-content-frame {
min-height: calc(100vw / 2.5);
}

#navmain li {
flex: 0 1 25%;
}

}

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

body,
body.chinese,
body.japanese {
font-size: 15px;
}
.japanese .subtitle {
font-size: 2.188rem;
}

.column_width,
.column_width.info,
.header_top .column_width,
footer .column_width {
padding-left: 20px;
padding-right: 20px;
}
#mast_caption {
right: 34px;
}

.pagenav {
margin: 30px 10px 0;
}

h1 {
font-size: 2.333em;
}

.left_col h3,
.right_col h3 {
font-size: 1.267em;
}

}

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

.blog_top {
margin-left: 15px;
margin-right: 15px;
}
h1 {
font-size: 2.133em;
}

.pagenav {
margin: 30px 0 0;
}

}

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

#site_title {
padding: 20px 0;
}
.squares {
width: 16px;
height: 16px;
}
.header_top .column_width {
flex-direction: column;
}

header .left {
order: 1;
}
header .right {
text-align: left;
margin: 0 -20px;
background-color: #ececec;
padding: 0;
justify-content: flex-start;
}
#langnav {
position: relative;
width: 100%;
justify-content: space-between;
padding: 0;
background-color: transparent;
}
#langnav a {
display: block;
width: 42px;
height: 42px;
margin-left: 0;
text-align: center;
color: #0E3769;
border: none;
border-right: 1px solid #fff;
transition: all 0.5s ease;
}
#langnav a:hover, #langnav a#search_link:hover {
color: #fff;
background-color: #e21b22;
border-right: 1px solid #fff;
}
#langnav a.active {
color: #000;
border-right: 1px solid #fff;
}
#langnav a.active:hover {
color: #e21b22;
background-color: #fff;
border-right: 1px solid #fff;
}

#langnav a#search_link {
float: right;
font-size: 16px;
width: 42px;
border-left: 1px solid #fff;
transition: all 0.5s ease;
}

.blog_container {
margin-top: 0;
}
.blog_intro {
column-gap: 20px;
}

.blog .article_container {
margin-left: 0;
margin-right: 0;
padding: 0 10px;
}

.article_container {
flex-flow: column;
}
.left_col {
max-width: none;
margin-top: 40px;
order: 2;
}

.center_col {
max-width: none;
padding: 0;
order: 1;
}
.right_col {
max-width: none;
padding: 0;
margin-top: 20px;
order: 3;
}

#navmainswitch {
display: block;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 54px;
z-index: 20;
}

#navmain {
display: none;
width: 100%;
margin: 0;
position: absolute;
top: 0;
left: 0;
font-size: 1.067em;
background-color: #fff;
box-shadow: 0 0 20px 0 rgba(0,0,0,.5);
z-index: 10;
}

#navmain li {
flex: 1 1 50%;
}

#navmain a, 
#navmain .active a {
height: 100%;
padding: 15px 36px 15px 20px;
color: #000;
transition: background-color 0.5s ease;
background-color: #ECECEC;
}

#navmain a:hover {
color: #fff;
background-color: #0E3769;
}

#navmain .active a::before {
content: "\e948";
display: block;
float: right;
margin: -2px -25px -2px 0;
font-size: 18px;
}

#navmain .active a:hover {
color: #fff;
background-color: #0E3769;
}

.pagenav_article {
margin: 30px 0 0;
padding: 20px 0;
border-bottom: 10px solid #ECECEC;
}

footer .column_width {
padding: 30px 20px 40px;
}

.mixed_content {
grid-template-columns: auto;
}

.next_category {
top: -54px;
}

}

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

footer .column_width {
flex-direction: column;
}
footer .left {
flex: 1 0 100%;
padding-right: 0;
padding-top: 20px;
}
footer .right {
flex: 1 0 auto;
order: -1;
text-align: left;
}
#footer_right a {
margin: 0 10px 0 0;
}

}

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

.mast, 
.slideshow_frame,
.mast-content-frame {
min-height: calc(100vw / 2.2);
}

}

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

#navmainswitch {
height: 48px;
}
#navmainswitch a {
padding: 9px 20px;
}

.home .blog_container {
gap: 15px;
}

}

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

body,
body.chinese,
body.japanese {
font-size: 14px;
}

.chinese .subtitle {
font-size: 2.125rem;
}

#site_title a .domain {
padding-right: 0;
}

.mast, 
.slideshow_frame,
.mast-content-frame {
min-height: calc(100vw / 2);
}
.column_width.info {
padding-top: 10px;
}
#mast_caption {
top: 24px;
}

.form_container {
padding: 20px;
}
.search_container {
padding: 0 0 20px 0;
}

.blog_container {
display: flex;
flex-flow: column;
gap: 15px;
}
.blog_container .blog_item {
max-width: 100%;
}

.form_container {
margin: 0 -10px;
}

.floated, .floated.eng {
float: none;
width: auto;
min-width: none;
margin: 1em auto;
}
.audio_container {
text-align: center;
}

.imagerow figure,
.imagerow.three figure,
.imagerow.two figure {
flex: 1 0 100%;
max-width: none;
border: none;
}
.imagerow.plain figure {
border-top: 1px solid #ECECEC;
border-bottom: 1px solid #ECECEC;
}
.imagerow figcaption {
padding: 15px 0 30px;
}
.imagerow figure:last-child figcaption {
padding-bottom: 0;
}
.imagerow {
padding: 0;
border: none;
}

}

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

.mast, 
.slideshow_frame,
.mast-content-frame {
min-height: calc(100vw / 1.8);
}

#navmain li {
flex: 1 1 100%;
}
#navmain a, 
#navmain .active a {
padding: 13px 36px 13px 20px;
}

.blog_container article h2 {
line-height: normal;
}
#footer_right a {
margin: 0 5px 0 0;
line-height: 34px;
padding: 0 10px;
}
.columns_flex {
display: block;
}
.columns_flex div:first-child,
.columns_flex div:last-child {
max-width: 100%;
}
.columns_flex div:last-child {
padding-top: 40px;
}

}

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

#site_title {
font-size: 2rem;
}
.japanese .subtitle,
.chinese .subtitle {
font-size: 1.625rem;
}

.mast, 
.slideshow_frame,
.mast-content-frame {
min-height: calc(100vw / 1.6);
}
#mast_caption {
width: 270px;
padding: 15px;
}
.blog main .column_width {
padding: 0;
}

#site_title {
line-height: 1.2;
}

#langnavswitch {
width: 45px;
height: 42px;
text-align: center;
display: flex;
align-items: center;
border-right: 1px solid #fff;
}

#lang_options {
display: none;
position: absolute;
left: -45px;
top: 42px;
width: 46px;
flex-flow: column nowrap;
z-index: 30;
}
#lang_options.open {
display: flex;
}

img#lng {
width: 44px;	
}

#lang_options a {
border: none;
margin-top: 1px;
background-color: #0e3769;
color: #fff;
filter: drop-shadow(5px 5px 5px rgba(0, 0, 0, .5));
}

#lang_options a:hover, #lang_options a.active {
color: #fff;
border-color: #fff;
background-color: #e21b22;
border-right: 0;
}

}

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

header .right {
margin: 0 -10px;
}
.column_width,
.column_width.info,
.header_top .column_width,
footer .column_width {
padding-left: 10px;
padding-right: 10px;
}
.mast, 
.slideshow_frame,
.mast-content-frame {
min-height: calc(100vw / 1.4);
}

#mast_caption {
right: 24px;
padding: 10px;
}

#navmainswitch a {
padding: 9px 10px;
}
#navmain a, 
#navmain .active a {
padding: 13px 36px 13px 10px;
}

main {
padding: 30px 0;
}
h1.page_title {
margin: 0 0 .75em;
}
h2.section_title {
margin: 0 0 .75em;
}
.home .blog_container .article .article-info {
padding: 15px 10px 11px;
}

.blog_container .blog_item h2,
.home .blog_container .article h2 {
padding: 20px 10px 0;
}
.blog_container .blog_item .lining p,
.home .blog_container .article p {
padding: 15px 10px 30px;
}

.pagenav {
margin: 20px 0 0;
}

#footer_left a {
display: block;
}
th, td {
padding: 4px 5px;
}

audio {
display: block;
max-width: 340px;
margin: 0 auto;
}

}

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

.mast,
.slideshow_frame, 
.mast-content-frame {
min-height: calc(100vw / 1.2);
}

footer .column_width {
padding-top: 20px;
}
#footer_right a {
margin: 10px 5px 0 0;
}



}