/******************************************************************
layout - pagetop
******************************************************************/
[data-pagetop] { display: none; position: fixed; z-index: 100; bottom: 30px; right: 30px; }

.l-pagetop__btn { width: 60px; height: 60px; transition-property: opacity; transition-duration: 0.3s; }

.l-pagetop__btn img { max-width: 100%; }

@media print, screen and (min-width: 990px) { .l-pagetop__btn:hover { opacity: .6; } }

@media screen and (max-width: 989px) { .l-pagetop__btn { width: 40px; height: 40px; } }

/******************************************************************
component - bg
******************************************************************/
.c-bg { padding-top: 60px; padding-bottom: 60px; }

.c-bg .planMainBlock { margin-bottom: 0; }

.c-bg .planArticle { margin-top: 0; }

/******************************************************************
component - image-button
******************************************************************/
.c-image-button { margin-bottom: 40px; display: flex; flex-wrap: wrap; margin-right: -1px; margin-top: -1px; }

@media screen and (max-width: 989px) { .c-image-button { margin-bottom: 30px; } }

@media print, screen and (max-width: 428px) { .c-image-button { flex-direction: column; margin-right: 0; margin-top: -8px; } }

.c-image-button__item { position: relative; width: calc(25% - 1px); margin-right: 1px; margin-top: 1px; display: flex; }

.c-image-button__item--col4 { width: calc(25% - 1px); }

.c-image-button__item--col3 { width: calc(33.33333% - 1px); }

.c-image-button__item--col2 { width: calc(50% - 1px); }

@media screen and (max-width: 989px) { .c-image-button__item { width: calc(50% - 1px); } }

@media print, screen and (max-width: 428px) { .c-image-button__item { width: 100%; margin-right: 0; margin-top: 5px; } }

.c-image-button__item > * { display: flex; flex-grow: 1; flex-direction: column; }

.c-image-button__item a { text-decoration: none; transition-property: opacity; transition-duration: 0.3s; }

.c-image-button__item a:hover { opacity: .8; }

.c-image-button__item img { width: 100%; }

.c-image-button__text { position: absolute; bottom: 0; flex-grow: 1; display: flex; align-items: center; justify-content: center; width: 100%; box-sizing: border-box; background-color: rgba(0, 0, 0, 0.8); padding: 10px; text-align: center; color: #fff; line-height: 1.4; font-size: 16px; }

/******************************************************************
component - nav
******************************************************************/
.c-nav { margin-bottom: 40px; }

@media screen and (max-width: 989px) { .c-nav { margin-bottom: 30px; } }

@media print, screen and (min-width: 990px) { .c-nav { display: flex; flex-wrap: wrap; justify-content: center; margin-right: -1em; margin-top: -1em; } }

@media screen and (max-width: 989px) { .c-nav { font-size: 14px; text-align: center; line-height: 2.0; } }

.c-nav__item { margin-right: 1em; margin-top: 1em; }

.c-nav__item:not(:last-child) { padding-right: 1em; border-right: 1px solid #444; }

@media screen and (max-width: 989px) { .c-nav__item { display: inline; } }

.c-nav__item a { text-decoration: none; color: #444; transition-property: opacity; transition-duration: 0.3s; }

.c-nav__item a:hover { color: #444; opacity: .6; }

/******************************************************************
component - accordion
******************************************************************/
.c-accordion { margin-bottom: 40px; }

@media screen and (max-width: 989px) { .c-accordion { margin-bottom: 30px; } }

.c-accordion > *:not(:first-child) { margin-top: 20px; }

.c-accordion__head { font-size: 16px; font-weight: bold; cursor: pointer; user-select: none; position: relative; background-color: #7e8082; color: #fff; transition-property: opacity; transition-duration: 0.3s; padding-right: 10px; }

@media screen and (max-width: 989px) { .c-accordion__head { font-size: 14px; outline: 0; } }

.c-accordion__head:hover { opacity: .7; }

@media screen and (max-width: 989px) { .c-accordion__head { padding-right: 8px; } }

.c-accordion__headinner { display: flex; line-height: 1.4; position: relative; padding: 10px 20px; }

.c-accordion__headinner::before, .c-accordion__headinner::after { position: absolute; content: ""; margin: auto; box-sizing: border-box; vertical-align: middle; }

.c-accordion__headinner::before { border-top: 2px solid #fff; width: 14px; height: 0; top: 0; bottom: 0; right: 0; }

.c-accordion__headinner::after { border-left: 2px solid #fff; width: 0; height: 14px; top: 0; bottom: 0; right: 6px; transition-property: all; transition-duration: 0.3s; }

@media screen and (max-width: 989px) { .c-accordion__headinner { padding: 8px 5%; } }

.c-accordion__head[aria-expanded="true"] .c-accordion__headinner::after { height: 0; }

.c-accordion__body { display: none; padding-bottom: .1px; }

/******************************************************************
component - table-scroll
******************************************************************/
.c-table-fixedscroll-col table, .c-table-scroll table { min-width: 700px; margin-bottom: 5px !important; }

.c-table-scroll { margin-bottom: 40px; overflow-x: auto; }

@media screen and (max-width: 989px) { .c-table-scroll { margin-bottom: 30px; } }

.c-table-scroll::-webkit-scrollbar { width: 5px; background: #F1F1F1; }

.c-table-scroll::-webkit-scrollbar:horizontal { height: 5px; background: #F1F1F1; }

.c-table-scroll::-webkit-scrollbar-thumb { background: #BCBCBC; border-radius: 2px; }

.c-table-scroll::-webkit-scrollbar-thumb:horizontal { background: #BCBCBC; border-radius: 2px; }

/******************************************************************
component - heading
******************************************************************/
.c-heading-subset { margin-bottom: 40px; text-align: center; }

@media screen and (max-width: 989px) { .c-heading-subset { margin-bottom: 30px; } }

.c-heading-subset__main { display: block; font-size: 2.7rem; font-weight: 500; line-height: 1.6; }

@media screen and (max-width: 989px) { .c-heading-subset__main { font-size: 2rem; } }

.c-heading-subset__sub { display: block; font-size: 14px; color: #999999; }

.c-heading-full { width: 100vw; margin: 0 calc(50% - 50vw) 40px; background-color: #f1f1f1; background-position: center center; background-size: cover; background-repeat: no-repeat; text-align: center; display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: 2.7rem; font-weight: 500; line-height: 1.6; }

@media screen and (max-width: 989px) { .c-heading-full { margin-bottom: 30px; } }

@media screen and (max-width: 989px) { .c-heading-full { font-size: 2rem; } }

.c-heading-full.u-left { align-items: flex-start; }

.c-heading-full.u-right { align-items: flex-end; }

.c-heading-full__body { display: block; padding: 20px; }

/******************************************************************
component - youtube
******************************************************************/
.c-youtube { margin-bottom: 40px; width: 880px; max-width: 100%; margin-right: auto; margin-left: auto; border: 10px solid #f1f1f1; border-radius: 40px; overflow: hidden; }

@media screen and (max-width: 989px) { .c-youtube { margin-bottom: 30px; } }

.c-youtube--portrait { width: 400px; }

.c-youtube__inner { position: relative; padding-top: 56.25%; display: block; }

.c-youtube__inner > * { display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }

.c-youtube--portrait .c-youtube__inner { position: relative; padding-top: 177.77778%; display: block; }

.c-youtube--portrait .c-youtube__inner > * { display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }

.c-youtube__inner:not(:first-child) { margin-top: 0.5rem; }

@media screen and (max-width: 989px) { .c-youtube__inner:not(:first-child) { margin-top: 0.375rem; } }

.c-youtube__inner:not(:last-child) { margin-bottom: 0.5rem; }

@media screen and (max-width: 989px) { .c-youtube__inner:not(:last-child) { margin-bottom: 0.375rem; } }

.c-youtube__overlay { position: absolute; z-index: +1; top: 0; left: 0; width: 100%; height: 100%; }

/******************************************************************
utility - text-align
******************************************************************/
.u-center { text-align: center !important; }

.u-right { text-align: right !important; }

.u-left { text-align: left !important; }

@media screen and (max-width: 989px) { .u-sp-center { text-align: center !important; }
  .u-sp-right { text-align: right !important; }
  .u-sp-left { text-align: left !important; } }

/******************************************************************
utility - icon-blank
******************************************************************/
.u-icon-blank { position: relative; padding-left: 11px; margin-left: 0.3em; }

.u-icon-blank::after { position: absolute; content: ""; margin: auto; box-sizing: border-box; vertical-align: middle; top: 0; bottom: 0; left: 0; width: 11px; height: 15px; background: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMCIgd2lkdGg9IjExcHgiIGhlaWdodD0iMTBweCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiMwMDA7fS5jbHMtMntmaWxsOm5vbmU7c3Ryb2tlOiMwMDA7c3Ryb2tlLWxpbmVjYXA6c3F1YXJlO3N0cm9rZS1taXRlcmxpbWl0OjEwO308L3N0eWxlPjwvZGVmcz48dGl0bGU+aWNuX2JsYW5rPC90aXRsZT48ZyBpZD0i44Os44Kk44Ok44O8XzIiIGRhdGEtbmFtZT0i44Os44Kk44Ok44O8IDIiPjxnIGlkPSLjg6zjgqTjg6Tjg7xfMS0yIiBkYXRhLW5hbWU9IuODrOOCpOODpOODvCAxIj48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik04LDFWN0gxVjFIOE05LDBIMFY4SDlWMFoiLz48cG9seWxpbmUgY2xhc3M9ImNscy0yIiBwb2ludHM9IjUuNSA5LjUgMTAuNSA5LjUgMTAuNSA0LjUiLz48L2c+PC9nPjwvc3ZnPg==") no-repeat left center; }

/******************************************************************
utility - icon-pdf
******************************************************************/
.u-icon-pdf { position: relative; padding-left: 16px; margin-left: 0.3em; }

.u-icon-pdf::after { position: absolute; content: ""; margin: auto; box-sizing: border-box; vertical-align: middle; top: 0; bottom: 0; left: 0; width: 16px; height: 17px; background: url("/special/common/img/common/icon_pdf.png") no-repeat center center/100% auto; }
