/******************************************************************
com - reset
******************************************************************/
.com-header { -webkit-font-smoothing: antialiased; }

.com-header * { margin: 0; padding: 0; width: auto; height: auto; box-sizing: content-box; font-weight: 500; line-height: 1.8; color: #2f2f2f; font-size: 14px; background-color: transparent; text-align: left; }

.com-header nav { display: block; }

.com-header a { text-decoration: none; }

.com-header a:focus, .com-header a:hover { color: #2f2f2f; }

.com-header li { list-style: none; }

.com-header img { max-width: 100%; height: auto; vertical-align: middle; }

.com-header input[type="text"] { -webkit-appearance: none; box-sizing: border-box; vertical-align: middle; background-color: #ffffff; border: 0; }

.com-header button { background-color: transparent; border: none; cursor: pointer; padding: 0; appearance: none; }

/******************************************************************
scroll-lock
******************************************************************/
body.is-scroll-lock { position: fixed; width: 100%; height: 100%; left: 0; }

/******************************************************************
com - header
******************************************************************/
@media print, screen and (min-width: 641px) { .com-header { border-top: 3px solid #e60012; background-color: #ffffff; }
  .com-header__main { border-bottom: 2px solid #dddddd; }
  .com-header__main-inner { max-width: 1280px; margin-right: auto; margin-left: auto; padding-right: 16px; padding-left: 16px; display: flex; align-items: center; }
  .com-header__main-logo { padding-top: 8px; padding-bottom: 8px; }
  .com-header__main-logo a { display: block; width: 131px; height: 24px; text-indent: -9999px; overflow: hidden; background: url("/common/images/logo.png") left top/contain no-repeat; }
  .com-header__main-nav-tb { display: none; }
  .com-header__main-nav-pc { flex-grow: 1; display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; padding-top: 4px; padding-bottom: 4px; }
  .com-header__main-nav-pc li:not(:last-child) { margin-left: 32px; }
  .com-header__main-nav-pc li:last-child { margin-left: 20px; }
  .com-header__main-nav-pc a { font-weight: bold; transition-property: color; transition-duration: 0.3s; }
  .com-header__main-nav-pc a:focus, .com-header__main-nav-pc a:hover { color: #fa0014; }
  .com-header__main a.com-header__main-search-pc { position: relative; display: block; width: 26px; height: 27px; background: url("/common/images/search.svg") left top/contain no-repeat; transition-property: opacity; transition-duration: 0.3s; }
  .com-header__main a.com-header__main-search-pc:focus, .com-header__main a.com-header__main-search-pc:hover { opacity: 0.6; }
  .com-header__main-searcharea { display: none; border-bottom: 2px solid #dddddd; background-color: #efefef; padding-top: 20px; padding-bottom: 20px; padding-right: 16px; padding-left: 16px; }
  .com-header__main-searcharea.is-active .com-header__main-searcharea-inner { opacity: 1; }
  .com-header__main-searcharea-inner { max-width: 900px; margin-right: auto; margin-left: auto; background-color: #ffffff; border-radius: 60px; padding: 8px 20px; display: flex; align-items: center; opacity: 0; transition-property: opacity; transition-duration: 0.3s; }
  .com-header__main-searcharea-inner input[type="text"] { flex-grow: 1; font-size: 20px; outline: 0; }
  .com-header__main-searcharea-inner button { display: block; width: 31px; height: 33px; background: url("/common/images/search.svg") left top/contain no-repeat; transition-property: opacity; transition-duration: 0.3s; }
  .com-header__main-searcharea-inner button:focus, .com-header__main-searcharea-inner button:hover { opacity: 0.6; }
  .com-overlay { display: none; } }

@media all and (-ms-high-contrast: none) { .com-header__main-nav-pc a:not(.com-header__main-search-pc) { display: inline-block !important; padding-top: 8px !important; } }

@media screen and (max-width: 640px) { HTML .sug_element { padding: 15px !important; font-size: 24px; }
  .com-header { border-top: 4.2px solid #e60012; background-color: #ffffff; position: relative; z-index: 1001; }
  .com-header__main { border-bottom: 3.64px solid #dddddd; }
  .com-header__main-inner { display: flex; }
  .com-header__main-logo { padding-top: 25.2px; padding-bottom: 25.2px; padding-left: 21px; }
  .com-header__main-logo a { display: block; width: 91vw; height: 7.28vw; max-width: 181px; max-height: 33.6px; text-indent: -9999px; overflow: hidden; background: url("/common/images/logo-l.png") left top/contain no-repeat; }
  .com-header__main-nav-pc { display: none; }
  .com-header__main-nav-tb { flex-grow: 1; display: flex; align-items: center; justify-content: flex-end; padding-right: 22.4px; }
  .com-header__main-search-tb { position: relative; display: block; width: 43.68px; height: 45.36px; background: url("/common/images/search.svg") left top/contain no-repeat; }
  .com-header__main-menu-tb { display: block; width: 50.4px; height: 43.68px; margin-left: 22.4px; vertical-align: middle; position: relative; }
  .com-header__main-menu-tb::after { position: absolute; content: ""; margin: auto; box-sizing: border-box; vertical-align: middle; top: 0; right: 0; bottom: 0; left: 0; width: 50.4px; height: 5px; border-top: 5px solid #000000; border-radius: 5px; }
  .com-header__main-menu-tb.is-active::after { border-top-color: transparent; }
  .com-header__main-menuitem-tb::before { position: absolute; content: ""; margin: auto; box-sizing: border-box; vertical-align: middle; top: 0; right: 0; left: 0; width: 50.4px; height: 5px; border-top: 5px solid #000000; border-radius: 5px; transition-property: all; transition-duration: 0.3s; }
  .com-header__main-menuitem-tb::after { position: absolute; content: ""; margin: auto; box-sizing: border-box; vertical-align: middle; right: 0; bottom: 0; left: 0; width: 50.4px; height: 5px; border-top: 5px solid #000000; border-radius: 5px; transition-property: all; transition-duration: 0.3s; }
  .com-header__main-menu-tb.is-active .com-header__main-menuitem-tb::before { top: 20.16px; transform: rotate(45deg); }
  .com-header__main-menu-tb.is-active .com-header__main-menuitem-tb::after { bottom: 18.48px; transform: rotate(-45deg); }
  .com-header__main-searcharea { display: none; border-bottom: 3.64px solid #dddddd; background-color: #efefef; padding-top: 20.16px; padding-bottom: 20.16px; padding-right: 20.16px; padding-left: 20.16px; }
  .com-header__main-searcharea.is-active .com-header__main-searcharea-inner { opacity: 1; }
  .com-header__main-searcharea-inner { margin-right: auto; margin-left: auto; background-color: #ffffff; border-radius: 60px; padding: 6.72px 20.16px 6.72px 23.52px; display: flex; align-items: center; opacity: 0; transition-property: opacity; transition-duration: 0.3s; }
  .com-header__main-searcharea-inner input[type="text"] { width: calc(100% - 38.64px); flex-grow: 1; font-size: 26.88px; outline: 0; }
  .com-header__main-searcharea-inner button { display: block; width: 36.96px; height: 38.64px; background: url("/common/images/search.svg") left top/contain no-repeat; transition-property: opacity; transition-duration: 0.3s; }
  .com-overlay { display: none; position: fixed; z-index: 1000; top: 0; left: 0; width: 100vw; height: 100vh; background-color: rgba(0, 0, 0, 0.65); } }

/******************************************************************
com - nav
******************************************************************/
@media print, screen and (min-width: 641px) { .com-header nav { background-color: #ffffff; }
  .com-header__sub-pc { border-bottom: 2px solid #dddddd; }
  .com-header__sub-inner-pc { max-width: 1280px; margin-right: auto; margin-left: auto; padding-right: 16px; padding-left: 16px; display: flex; align-items: center; min-height: 35px; }
  .com-header__sub-logo-pc { font-size: 16px; font-weight: bold; line-height: 1.4; padding-top: 6px; padding-bottom: 6px; }
  .com-header__sub-logo-pc a { font-size: 16px; font-weight: bold; line-height: 1.4; transition-property: color; transition-duration: 0.3s; }
  .com-header__sub-logo-pc a:focus, .com-header__sub-logo-pc a:hover { color: #fa0014; }
  .com-header__sub-logoimg-pc { padding-top: 5px; padding-bottom: 5px; }
  .com-header__sub-nav-pc { flex-grow: 1; display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
  .com-header__sub-nav-pc li:not(:first-child) { margin-left: 16px; }
  .com-header__sub-nav-pc a { display: inline-block; transition-property: color; transition-duration: 0.3s; font-size: 12px; padding: 7px 0; }
  .com-header__sub-nav-pc a:focus, .com-header__sub-nav-pc a:hover { color: #fa0014; }
  .com-header__sub-btn-red a { line-height: 1; transition-property: background,color; transition-duration: 0.3s; background-color: #d02d25; color: #ffffff; padding: 7px 0.8em; font-weight: bold; }
  .com-header__sub-btn-red a:focus, .com-header__sub-btn-red a:hover { background-color: #a5241d; color: #ffffff; }
  .com-header__sub-btn-gray a { line-height: 1; transition-property: background,color; transition-duration: 0.3s; background-color: #666666; color: #ffffff; padding: 7px 0.8em; font-weight: bold; }
  .com-header__sub-btn-gray a:focus, .com-header__sub-btn-gray a:hover { background-color: #4d4d4d; color: #ffffff; }
  .com-header__sub-btn-yellow a { line-height: 1; transition-property: background,color; transition-duration: 0.3s; background-color: #f68e1e; color: #ffffff; padding: 7px 0.8em; font-weight: bold; }
  .com-header__sub-btn-yellow a:focus, .com-header__sub-btn-yellow a:hover { background-color: #d87409; color: #ffffff; }
  .com-header__sub-btn-blue a { line-height: 1; transition-property: background,color; transition-duration: 0.3s; background-color: #006cad; color: #ffffff; padding: 7px 0.8em; font-weight: bold; }
  .com-header__sub-btn-blue a:focus, .com-header__sub-btn-blue a:hover { background-color: #004c7a; color: #ffffff; }
  .com-header__open-tb { display: none; } }

@media all and (-ms-high-contrast: none) { .com-header__sub-logo-pc { padding-top: 9px !important; padding-bottom: 3px !important; }
  .com-header__sub-logoimg-pc { padding-top: 6px !important; padding-bottom: 4px !important; }
  .com-header__sub-nav-pc a { padding-top: 9px !important; padding-bottom: 4px !important; } }

@media screen and (max-width: 640px) { .com-header nav { background-color: #ffffff; }
  .com-header__sub-pc { display: none; }
  .com-header__open-tb { display: none; position: absolute; z-index: +1; width: 100%; background: #ffffff; }
  .com-header__open-link1-tb { display: block; box-sizing: border-box; border-bottom: 1px solid #c7c7c7; font-size: 26.88px; font-weight: bold; line-height: 1.4; position: relative; padding-right: 44.1px; padding: 20.16px 53.76px 20.16px 26.88px; }
  .com-header__open-link1-tb::after { position: absolute; content: ""; margin: auto; box-sizing: border-box; vertical-align: middle; top: 0; bottom: 0; right: 0; transform: translate(-30.24px, 6.56px) rotate(45deg); transform-origin: top right; border-top: 3.36px solid #8e8e8e; border-right: 3.36px solid #8e8e8e; width: 15.12px; height: 15.12px; transition-property: top, right, bottom, left; transition-duration: 0.3s; }
  .com-header .com-header__open-button1-tb { display: block; box-sizing: border-box; width: 100%; border-bottom: 1px solid #c7c7c7; padding: 20.16px 53.76px 20.16px 26.88px; font-size: 26.88px; font-weight: bold; line-height: 1.4; position: relative; }
  .com-header .com-header__open-button1-tb::before, .com-header .com-header__open-button1-tb::after { position: absolute; content: ""; margin: auto; box-sizing: border-box; vertical-align: middle; }
  .com-header .com-header__open-button1-tb::before { border-top: 3.36px solid #8e8e8e; width: 20.16px; height: 0; top: 0; bottom: 0; right: 0; }
  .com-header .com-header__open-button1-tb::after { border-left: 3.36px solid #8e8e8e; width: 0; height: 20.16px; top: 0; bottom: 0; right: 9px; transition-property: all; transition-duration: 0.3s; }
  .com-header .com-header__open-button1-tb::before, .com-header .com-header__open-button1-tb::after { transform: translateX(-26.88px); }
  .com-header .com-header__open-button1-tb.is-active::after { height: 0; }
  .com-header__open-linkbutton1-tb { border-bottom: 1px solid #c7c7c7; display: flex; }
  .com-header__open-linkbutton1-link-tb { flex-grow: 1; display: block; box-sizing: border-box; font-size: 26.88px; font-weight: bold; line-height: 1.4; padding: 20.16px 53.76px 20.16px 26.88px; }
  .com-header__open-linkbutton1-button-tb { display: block; box-sizing: border-box; width: 75.6px; position: relative; }
  .com-header__open-linkbutton1-button-tb::before, .com-header__open-linkbutton1-button-tb::after { position: absolute; content: ""; margin: auto; box-sizing: border-box; vertical-align: middle; }
  .com-header__open-linkbutton1-button-tb::before { border-top: 3.36px solid #8e8e8e; width: 20.16px; height: 0; top: 0; bottom: 0; right: 0; }
  .com-header__open-linkbutton1-button-tb::after { border-left: 3.36px solid #8e8e8e; width: 0; height: 20.16px; top: 0; bottom: 0; right: 9px; transition-property: all; transition-duration: 0.3s; }
  .com-header__open-linkbutton1-button-tb::before, .com-header__open-linkbutton1-button-tb::after { transform: translateX(-26.88px); }
  .com-header__open-linkbutton1-button-tb.is-active::after { height: 0; }
  .com-header__open-local-target { display: none; border-bottom: 1px solid #c7c7c7; }
  .com-header__open-local-target li { background-color: #efefef; }
  .com-header__open-local-target li:not(:last-child) { border-bottom: 1px solid #ffffff; }
  .com-header__open-local-target a { display: block; box-sizing: border-box; width: 100%; font-size: 26.88px; line-height: 1.4; padding: 16.8px 26.88px 16.8px 26.88px; }
  .com-header__open-sub-tb { border-bottom: 8.4px solid #e60012; background-color: #efefef; }
  .com-header__open-sub-tb li:not(:last-child) { border-bottom: 1px solid #ffffff; }
  .com-header__open-sub-tb a { display: block; text-align: center; padding: 16.8px; line-height: 1.4; font-size: 182%; } }

.com-display-off { position: absolute; width: 1px; height: 1px; margin: -1px; border: 0; overflow: hidden; padding: 0; clip: rect(0, 0, 0, 0); }

/******************************************************************
com - nav(add)
******************************************************************/
@media print, screen and (min-width: 641px) { .com-header { position: relative; z-index: 1001; } }

@media screen and (max-width: 640px) { .com-header__open-button1-tb { line-height: 1.1 !important; padding: 18.48px 53.76px 15.12px 26.88px !important; font-size: 25.2px !important; }
  .com-header__open-button1-tb small { display: block; font-size: 18.48px; } }

.com-header__sub-logoimg-pc a { font-weight: bold; }

.com-header__open-logoimg-tb a { font-weight: bold; font-size: 189%; }

.com-header__open-tb { overflow-y: auto; max-height: 100vh; }

/******************************************************************
com - header-fixed
******************************************************************/
.com-header-fixed { position: relative; z-index: 1002; }

.com-header-fixed[data-header-fixed="false"] .com-header-fixed__inner { position: static; }

.com-header-fixed[data-header-fixed="true"] .com-header-fixed__inner { position: fixed; top: 0; width: 100%; }

/******************************************************************
layout - nav
******************************************************************/
.l-nav { background: #f5f5f5; }

@media print, screen and (min-width: 769px) { .l-nav { position: relative; z-index: 1000; }
  .l-nav__inner { max-width: 1280px; margin-right: auto; margin-left: auto; padding-right: 16px; padding-left: 16px; } }

@media print, screen and (max-width: 768px) { .l-nav { display: none; } }

/******************************************************************
layout - nav-main
******************************************************************/
@media print, screen and (min-width: 769px) { .l-nav-main { display: flex; }
  .l-nav-main > .l-nav-main__item:first-child { border-left: 1px solid #fff; }
  .l-nav-main > .l-nav-main__item { flex-grow: 1; width: 100%; }
  .l-nav-main > .l-nav-main__item > a { display: flex; align-items: center; box-sizing: border-box; height: 100%; padding: 14px; border-right: 1px solid #fff; text-align: center; line-height: 1.5; font-weight: bold; color: #2f2f2f; font-size: 16px; }
  .l-nav-main > .l-nav-main__item > a > span { flex-grow: 1; display: block; }
  .l-nav-main > .l-nav-main__item > a small { display: block; font-size: 12px; font-weight: normal; }
  .l-nav-main > .l-nav-main__item > a:hover, .l-nav-main > .l-nav-main__item[data-menu-item="event,true"] > a { color: #e60012; opacity: 1 !important; background-color: #fff; } }

/******************************************************************
layout - nav-mega
******************************************************************/
.l-nav-mega { position: absolute; left: 0; width: 100%; background: #fff; }

@media print, screen and (min-width: 769px) { .l-nav-mega { display: none; z-index: 1000; }
  .l-nav-mega__inner { max-width: 1280px; margin-right: auto; margin-left: auto; padding-right: 16px; padding-left: 16px; padding-top: 50px; padding-bottom: 50px; }
  .l-nav-mega__title { margin-bottom: 20px; position: relative; padding-left: 7.5px; padding-left: 18px; }
  .l-nav-mega__title::after { position: absolute; content: ""; margin: auto; box-sizing: border-box; vertical-align: middle; top: 0; bottom: 0; left: 0; transform: translate(7.5px, 3px) rotate(135deg); transform-origin: top left; border-top: 2px solid #e60012; border-left: 2px solid #e60012; width: 8px; height: 8px; transition-property: top, right, bottom, left; transition-duration: 0.3s; }
  .l-nav-mega__title a { font-size: 18px; color: #263163; font-weight: bold; }
  .l-nav-mega__nav { margin-left: 18px; margin-right: 18px; }
  .l-nav-mega__nav ul { display: flex; flex-wrap: wrap; margin-right: -3%; }
  .l-nav-mega__nav li { width: calc(25% - 3%); margin-right: 3%; }
  .l-nav-mega__nav a { display: block; border-bottom: 1px solid #e0e0e0; padding: 12px 0 8px; color: #263163; font-size: 90%; }
  .l-nav-mega__nav--3col li { width: calc(33.33333% - 3%); margin-right: 3%; } }

@media print, screen and (max-width: 768px) { .l-nav-mega { display: none; } }

/******************************************************************
layout - nav-mega-overlay
******************************************************************/
.l-nav-mega-overlay { display: none; z-index: 999; position: fixed; top: 0; left: 0; width: 100%; height: 100vh; background-color: rgba(0, 0, 0, 0.66); }