@charset "UTF-8";
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, hr, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; outline: 0; vertical-align: baseline; background: transparent; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; margin: 0; }

body { -webkit-text-size-adjust: 100%; /* for iOS, Android */ }

li { list-style: none; }

a, button { -webkit-tap-highlight-color: transparent; /* for iOS, Android */ }

img { max-width: 100%; height: auto; vertical-align: top; }

table { border-collapse: collapse; border-spacing: 0; }

caption, th { text-align: left; }

button { padding: 0; border-style: none; border-radius: 0; background-color: transparent; outline: none; cursor: pointer; -webkit-appearance: none; -moz-appearance: none; appearance: none; line-height: 1; }

input, select, textarea { padding: 0; border-style: none; border-radius: 0; background-color: transparent; outline: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; font-family: inherit; line-height: 1; }

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

html { font-size: 62.5%; }

body { /* Traditional */ font-family: "SF Pro TC", "SF Pro Text", "SF Pro Icons", "PingFang TC", "Microsoft JhengHei", "Helvetica Neue", Helvetica, Arial, sans-serif; /* Simplified font-family: 微软雅黑, "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif; */ font-size: 1.6rem; font-weight: normal; line-height: 1; }

button, input, select, textarea { font-family: inherit; font-size: 100%; }

.txt-vertical { -webkit-writing-mode: vertical-rl; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; }

@media screen and (max-width: 767px) { body { font-size: 1.5rem; } }

/* required styles */
.leaflet-pane, .leaflet-tile, .leaflet-marker-icon, .leaflet-marker-shadow, .leaflet-tile-container, .leaflet-pane > svg, .leaflet-pane > canvas, .leaflet-zoom-box, .leaflet-image-layer, .leaflet-layer { position: absolute; left: 0; top: 0; }

.leaflet-container { overflow: hidden; }

.leaflet-tile, .leaflet-marker-icon, .leaflet-marker-shadow { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-user-drag: none; }

/* Prevents IE11 from highlighting tiles in blue */
.leaflet-tile::selection { background: transparent; }

/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile { image-rendering: -webkit-optimize-contrast; }

/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container { width: 1600px; height: 1600px; -webkit-transform-origin: 0 0; }

.leaflet-marker-icon, .leaflet-marker-shadow { display: block; }

/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg, .leaflet-container .leaflet-marker-pane img, .leaflet-container .leaflet-shadow-pane img, .leaflet-container .leaflet-tile-pane img, .leaflet-container img.leaflet-image-layer, .leaflet-container .leaflet-tile { max-width: none !important; max-height: none !important; }

.leaflet-container.leaflet-touch-zoom { -ms-touch-action: pan-x pan-y; touch-action: pan-x pan-y; }

.leaflet-container.leaflet-touch-drag { -ms-touch-action: pinch-zoom; /* Fallback for FF which doesn't support pinch-zoom */ touch-action: none; touch-action: pinch-zoom; }

.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { -ms-touch-action: none; touch-action: none; }

.leaflet-container { -webkit-tap-highlight-color: transparent; }

.leaflet-container a { -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); }

.leaflet-tile { -webkit-filter: inherit; filter: inherit; visibility: hidden; }

.leaflet-tile-loaded { visibility: inherit; }

.leaflet-zoom-box { width: 0; height: 0; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; z-index: 800; }

/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg { -moz-user-select: none; }

.leaflet-pane { z-index: 400; }

.leaflet-tile-pane { z-index: 200; }

.leaflet-overlay-pane { z-index: 400; }

.leaflet-shadow-pane { z-index: 500; }

.leaflet-marker-pane { z-index: 600; }

.leaflet-tooltip-pane { z-index: 650; }

.leaflet-popup-pane { z-index: 700; }

.leaflet-map-pane canvas { z-index: 100; }

.leaflet-map-pane svg { z-index: 200; }

.leaflet-vml-shape { width: 1px; height: 1px; }

.lvml { behavior: url(#default#VML); display: inline-block; position: absolute; }

/* control positioning */
.leaflet-control { position: relative; z-index: 800; pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ pointer-events: auto; }

.leaflet-top, .leaflet-bottom { position: absolute; z-index: 1000; pointer-events: none; }

.leaflet-top { top: 0; }

.leaflet-right { right: 0; }

.leaflet-bottom { bottom: 0; }

.leaflet-left { left: 0; }

.leaflet-control { float: left; clear: both; }

.leaflet-right .leaflet-control { float: right; }

.leaflet-top .leaflet-control { margin-top: 10px; }

.leaflet-bottom .leaflet-control { margin-bottom: 10px; }

.leaflet-left .leaflet-control { margin-left: 10px; }

.leaflet-right .leaflet-control { margin-right: 10px; }

/* zoom and fade animations */
.leaflet-fade-anim .leaflet-tile { will-change: opacity; }

.leaflet-fade-anim .leaflet-popup { opacity: 0; -webkit-transition: opacity 0.2s linear; -moz-transition: opacity 0.2s linear; transition: opacity 0.2s linear; }

.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { opacity: 1; }

.leaflet-zoom-animated { -webkit-transform-origin: 0 0; -ms-transform-origin: 0 0; transform-origin: 0 0; }

.leaflet-zoom-anim .leaflet-zoom-animated { will-change: transform; }

.leaflet-zoom-anim .leaflet-zoom-animated { -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1); -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1); transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1); transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1); transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1), -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1); }

.leaflet-zoom-anim .leaflet-tile, .leaflet-pan-anim .leaflet-tile { -webkit-transition: none; -moz-transition: none; transition: none; }

.leaflet-zoom-anim .leaflet-zoom-hide { visibility: hidden; }

/* cursors */
.leaflet-interactive { cursor: pointer; }

.leaflet-grab { cursor: -webkit-grab; cursor: -moz-grab; cursor: grab; }

.leaflet-crosshair, .leaflet-crosshair .leaflet-interactive { cursor: crosshair; }

.leaflet-popup-pane, .leaflet-control { cursor: auto; }

.leaflet-dragging .leaflet-grab, .leaflet-dragging .leaflet-grab .leaflet-interactive, .leaflet-dragging .leaflet-marker-draggable { cursor: move; cursor: -webkit-grabbing; cursor: -moz-grabbing; cursor: grabbing; }

/* marker & overlays interactivity */
.leaflet-marker-icon, .leaflet-marker-shadow, .leaflet-image-layer, .leaflet-pane > svg path, .leaflet-tile-container { pointer-events: none; }

.leaflet-marker-icon.leaflet-interactive, .leaflet-image-layer.leaflet-interactive, .leaflet-pane > svg path.leaflet-interactive, svg.leaflet-image-layer.leaflet-interactive path { pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ pointer-events: auto; }

/* visual tweaks */
.leaflet-container { background: #ddd; outline: 0; }

.leaflet-container a { color: #0078A8; }

.leaflet-container a.leaflet-active { outline: 2px solid orange; }

.leaflet-zoom-box { border: 2px dotted #38f; background: rgba(255, 255, 255, 0.5); }

/* general typography */
.leaflet-container { font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; }

/* general toolbar styles */
.leaflet-bar { -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65); box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65); border-radius: 4px; }

.leaflet-bar a, .leaflet-bar a:hover { background-color: #fff; border-bottom: 1px solid #ccc; width: 26px; height: 26px; line-height: 26px; display: block; text-align: center; text-decoration: none; color: black; }

.leaflet-bar a, .leaflet-control-layers-toggle { background-position: 50% 50%; background-repeat: no-repeat; display: block; }

.leaflet-bar a:hover { background-color: #f4f4f4; }

.leaflet-bar a:first-child { border-top-left-radius: 4px; border-top-right-radius: 4px; }

.leaflet-bar a:last-child { border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; border-bottom: none; }

.leaflet-bar a.leaflet-disabled { cursor: default; background-color: #f4f4f4; color: #bbb; }

.leaflet-touch .leaflet-bar a { width: 30px; height: 30px; line-height: 30px; }

.leaflet-touch .leaflet-bar a:first-child { border-top-left-radius: 2px; border-top-right-radius: 2px; }

.leaflet-touch .leaflet-bar a:last-child { border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; }

/* zoom control */
.leaflet-control-zoom-in, .leaflet-control-zoom-out { font: bold 18px 'Lucida Console', Monaco, monospace; text-indent: 1px; }

.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { font-size: 22px; }

/* layers control */
.leaflet-control-layers { -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4); box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4); background: #fff; border-radius: 5px; }

.leaflet-control-layers-toggle { background-image: url(../img/leaflet/layers.png); width: 36px; height: 36px; }

.leaflet-retina .leaflet-control-layers-toggle { background-image: url(../img/leaflet/layers-2x.png); background-size: 26px 26px; }

.leaflet-touch .leaflet-control-layers-toggle { width: 44px; height: 44px; }

.leaflet-control-layers .leaflet-control-layers-list, .leaflet-control-layers-expanded .leaflet-control-layers-toggle { display: none; }

.leaflet-control-layers-expanded .leaflet-control-layers-list { display: block; position: relative; }

.leaflet-control-layers-expanded { padding: 6px 10px 6px 6px; color: #333; background: #fff; }

.leaflet-control-layers-scrollbar { overflow-y: scroll; overflow-x: hidden; padding-right: 5px; }

.leaflet-control-layers-selector { margin-top: 2px; position: relative; top: 1px; }

.leaflet-control-layers label { display: block; }

.leaflet-control-layers-separator { height: 0; border-top: 1px solid #ddd; margin: 5px -10px 5px -6px; }

/* Default icon URLs */
.leaflet-default-icon-path { background-image: url(../img/leaflet/marker-icon.png); }

/* attribution and scale controls */
.leaflet-container .leaflet-control-attribution { background: #fff; background: rgba(255, 255, 255, 0.7); margin: 0; }

.leaflet-control-attribution, .leaflet-control-scale-line { padding: 0 5px; color: #333; }

.leaflet-control-attribution a { text-decoration: none; }

.leaflet-control-attribution a:hover { text-decoration: underline; }

.leaflet-container .leaflet-control-attribution, .leaflet-container .leaflet-control-scale { font-size: 11px; }

.leaflet-left .leaflet-control-scale { margin-left: 5px; }

.leaflet-bottom .leaflet-control-scale { margin-bottom: 5px; }

.leaflet-control-scale-line { border: 2px solid #777; border-top: none; line-height: 1.1; padding: 2px 5px 1px; font-size: 11px; white-space: nowrap; overflow: hidden; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; background: #fff; background: rgba(255, 255, 255, 0.5); }

.leaflet-control-scale-line:not(:first-child) { border-top: 2px solid #777; border-bottom: none; margin-top: -2px; }

.leaflet-control-scale-line:not(:first-child):not(:last-child) { border-bottom: 2px solid #777; }

.leaflet-touch .leaflet-control-attribution, .leaflet-touch .leaflet-control-layers, .leaflet-touch .leaflet-bar { -webkit-box-shadow: none; box-shadow: none; }

.leaflet-touch .leaflet-control-layers, .leaflet-touch .leaflet-bar { border: 2px solid rgba(0, 0, 0, 0.2); background-clip: padding-box; }

/* popup */
.leaflet-popup { position: absolute; text-align: center; margin-bottom: 20px; }

.leaflet-popup-content-wrapper { padding: 1px; text-align: left; border-radius: 12px; }

.leaflet-popup-content { margin: 13px 19px; line-height: 1.4; }

.leaflet-popup-content p { margin: 18px 0; }

.leaflet-popup-tip-container { width: 40px; height: 20px; position: absolute; left: 50%; margin-left: -20px; overflow: hidden; pointer-events: none; }

.leaflet-popup-tip { width: 17px; height: 17px; padding: 1px; margin: -10px auto 0; -webkit-transform: rotate(45deg); -moz-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); }

.leaflet-popup-content-wrapper, .leaflet-popup-tip { background: white; color: #333; -webkit-box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4); box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4); }

.leaflet-container a.leaflet-popup-close-button { position: absolute; top: 0; right: 0; padding: 4px 4px 0 0; border: none; text-align: center; width: 18px; height: 14px; font: 16px/14px Tahoma, Verdana, sans-serif; color: #c3c3c3; text-decoration: none; font-weight: bold; background: transparent; }

.leaflet-container a.leaflet-popup-close-button:hover { color: #999; }

.leaflet-popup-scrolled { overflow: auto; border-bottom: 1px solid #ddd; border-top: 1px solid #ddd; }

.leaflet-oldie .leaflet-popup-content-wrapper { -ms-zoom: 1; }

.leaflet-oldie .leaflet-popup-tip { width: 24px; margin: 0 auto; -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); }

.leaflet-oldie .leaflet-popup-tip-container { margin-top: -1px; }

.leaflet-oldie .leaflet-control-zoom, .leaflet-oldie .leaflet-control-layers, .leaflet-oldie .leaflet-popup-content-wrapper, .leaflet-oldie .leaflet-popup-tip { border: 1px solid #999; }

/* div icon */
.leaflet-div-icon { background: #fff; border: 1px solid #666; }

/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip { position: absolute; padding: 6px; background-color: #fff; border: 1px solid #fff; border-radius: 3px; color: #222; white-space: nowrap; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; pointer-events: none; -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); }

.leaflet-tooltip.leaflet-clickable { cursor: pointer; pointer-events: auto; }

.leaflet-tooltip-top:before, .leaflet-tooltip-bottom:before, .leaflet-tooltip-left:before, .leaflet-tooltip-right:before { position: absolute; pointer-events: none; border: 6px solid transparent; background: transparent; content: ""; }

/* Directions */
.leaflet-tooltip-bottom { margin-top: 6px; }

.leaflet-tooltip-top { margin-top: -6px; }

.leaflet-tooltip-bottom:before, .leaflet-tooltip-top:before { left: 50%; margin-left: -6px; }

.leaflet-tooltip-top:before { bottom: 0; margin-bottom: -12px; border-top-color: #fff; }

.leaflet-tooltip-bottom:before { top: 0; margin-top: -12px; margin-left: -6px; border-bottom-color: #fff; }

.leaflet-tooltip-left { margin-left: -6px; }

.leaflet-tooltip-right { margin-left: 6px; }

.leaflet-tooltip-left:before, .leaflet-tooltip-right:before { top: 50%; margin-top: -6px; }

.leaflet-tooltip-left:before { right: 0; margin-right: -12px; border-left-color: #fff; }

.leaflet-tooltip-right:before { left: 0; margin-left: -12px; border-right-color: #fff; }

/* -------------------------------- basics -------------------------------- */
/* ---- valiables ---- */
/* ---- media query ---- */
/* ---- basics ---- */
body { color: #24282c; background-color: #fff; }

a { text-decoration: none; color: #5eb7e8; }

a:link { color: #5eb7e8; }

a:visited { color: #5eb7e8; }

a:hover { text-decoration: underline; color: #5eb7e8; }

a:active { text-decoration: underline; color: #5eb7e8; }

strong, em, b { font-weight: bold; font-style: normal; }

@media screen and (min-width: 768px) { .pc-hidden { display: none; } }

@media screen and (max-width: 767px) { .sp-hidden { display: none; } }

.mt0.bp, .bp .mt0 { margin-top: 0px !important; }

.mt10.bp, .bp .mt10 { margin-top: 10px !important; }

.mt20.bp, .bp .mt20 { margin-top: 20px !important; }

.mt30.bp, .bp .mt30 { margin-top: 30px !important; }

.mt40.bp, .bp .mt40 { margin-top: 40px !important; }

.mt50.bp, .bp .mt50 { margin-top: 50px !important; }

.mt60.bp, .bp .mt60 { margin-top: 60px !important; }

.mt70.bp, .bp .mt70 { margin-top: 70px !important; }

.mt80.bp, .bp .mt80 { margin-top: 80px !important; }

.mt90.bp, .bp .mt90 { margin-top: 90px !important; }

.mt100.bp, .bp .mt100 { margin-top: 100px !important; }

.mt110.bp, .bp .mt110 { margin-top: 110px !important; }

.mt120.bp, .bp .mt120 { margin-top: 120px !important; }

.mt130.bp, .bp .mt130 { margin-top: 130px !important; }

.mt140.bp, .bp .mt140 { margin-top: 140px !important; }

.mt150.bp, .bp .mt150 { margin-top: 150px !important; }

@media screen and (max-width: 767px) { .mt0.bp, .bp .mt0 { margin-top: 0vw !important; }
  .mt10.bp, .bp .mt10 { margin-top: 1.5vw !important; }
  .mt20.bp, .bp .mt20 { margin-top: 3vw !important; }
  .mt30.bp, .bp .mt30 { margin-top: 4.5vw !important; }
  .mt40.bp, .bp .mt40 { margin-top: 6vw !important; }
  .mt50.bp, .bp .mt50 { margin-top: 7.5vw !important; }
  .mt60.bp, .bp .mt60 { margin-top: 9vw !important; }
  .mt70.bp, .bp .mt70 { margin-top: 10.5vw !important; }
  .mt80.bp, .bp .mt80 { margin-top: 12vw !important; }
  .mt90.bp, .bp .mt90 { margin-top: 13.5vw !important; }
  .mt100.bp, .bp .mt100 { margin-top: 15vw !important; }
  .mt110.bp, .bp .mt110 { margin-top: 16.5vw !important; }
  .mt120.bp, .bp .mt120 { margin-top: 18vw !important; }
  .mt130.bp, .bp .mt130 { margin-top: 19.5vw !important; }
  .mt140.bp, .bp .mt140 { margin-top: 21vw !important; }
  .mt150.bp, .bp .mt150 { margin-top: 22.5vw !important; }
  .sp-mt1vw.bp, .bp .sp-mt1vw { margin-top: 1vw !important; }
  .sp-mt2vw.bp, .bp .sp-mt2vw { margin-top: 2vw !important; }
  .sp-mt3vw.bp, .bp .sp-mt3vw { margin-top: 3vw !important; }
  .sp-mt4vw.bp, .bp .sp-mt4vw { margin-top: 4vw !important; }
  .sp-mt5vw.bp, .bp .sp-mt5vw { margin-top: 5vw !important; }
  .sp-mt6vw.bp, .bp .sp-mt6vw { margin-top: 6vw !important; }
  .sp-mt7vw.bp, .bp .sp-mt7vw { margin-top: 7vw !important; }
  .sp-mt8vw.bp, .bp .sp-mt8vw { margin-top: 8vw !important; }
  .sp-mt9vw.bp, .bp .sp-mt9vw { margin-top: 9vw !important; }
  .sp-mt10vw.bp, .bp .sp-mt10vw { margin-top: 10vw !important; }
  .sp-mt11vw.bp, .bp .sp-mt11vw { margin-top: 11vw !important; }
  .sp-mt12vw.bp, .bp .sp-mt12vw { margin-top: 12vw !important; }
  .sp-mt13vw.bp, .bp .sp-mt13vw { margin-top: 13vw !important; }
  .sp-mt14vw.bp, .bp .sp-mt14vw { margin-top: 14vw !important; }
  .sp-mt15vw.bp, .bp .sp-mt15vw { margin-top: 15vw !important; }
  .sp-mt16vw.bp, .bp .sp-mt16vw { margin-top: 16vw !important; }
  .sp-mt17vw.bp, .bp .sp-mt17vw { margin-top: 17vw !important; }
  .sp-mt18vw.bp, .bp .sp-mt18vw { margin-top: 18vw !important; }
  .sp-mt19vw.bp, .bp .sp-mt19vw { margin-top: 19vw !important; }
  .sp-mt20vw.bp, .bp .sp-mt20vw { margin-top: 20vw !important; } }

/* -------------------------------- frame -------------------------------- */
/* ---- container ---- */
body { min-width: 1080px; overflow-y: scroll; }

.global_container { padding-top: 80px; width: 100%; overflow: hidden; }

.body_container { width: 960px; margin: 0 auto; padding: 80px 0; }

@media screen and (max-width: 767px) { body { min-width: auto; }
  .global_container { padding-top: 48px; }
  .body_container { width: auto; margin: 0 5vw; padding: 12vw 0 15vw; } }

/* ---- header ---- */
/* container */
header.header { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; position: fixed; left: 0; top: 0; z-index: 1002; width: 100%; min-width: 1080px; height: 80px; background-color: #5eb7e8; -webkit-box-shadow: 0 0 30px rgba(0, 0, 0, 0.1); box-shadow: 0 0 30px rgba(0, 0, 0, 0.1); }

header.header .site_id { position: relative; width: 240px; height: 100%; background-color: #fff; }

header.header .site_id::before { content: ""; display: block; position: absolute; left: 5px; top: 5px; width: 0; height: 0; border-style: solid; border-width: 30px 30px 0 0; border-color: #5eb7e8 transparent transparent transparent; }

header.header .site_id a { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; height: 100%; opacity: 1; -webkit-transition: opacity .2s; transition: opacity .2s; }

header.header .site_id a:hover, header.header .site_id a:active { opacity: .6; }

header.header .site_id img { display: block; width: 180px; }

@media screen and (max-width: 767px) { header.header { min-width: auto; height: 48px; }
  header.header .site_id { width: 180px; }
  header.header .site_id::before { left: 5px; top: 5px; border-width: 18px 18px 0 0; }
  header.header .site_id a { -webkit-transition: none; transition: none; }
  header.header .site_id a:hover, header.header .site_id a:active { opacity: 1; }
  header.header .site_id img { width: auto; height: 40px; } }

/* navigation */
header.header nav { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; padding-right: 30px; }

header.header nav .global { display: -webkit-box; display: -ms-flexbox; display: flex; padding-right: 15px; border-right: 1px solid #98ceec; }

header.header nav .global li { margin-right: 4px; }

header.header nav .global li:last-child { margin-right: 0; }

header.header nav .global a { display: inline-block; position: relative; min-width: 9vw; padding: 7px 1em; background-color: #fff; color: #5eb7e8; font-size: 1.5rem; font-weight: bold; text-align: center; }

header.header nav .global a::before { content: ""; display: block; position: absolute; left: 3px; top: 3px; width: 0; height: 0; border-style: solid; border-width: 10px 10px 0 0; border-color: #5eb7e8 transparent transparent transparent; }

header.header nav .global a:hover, header.header nav .global a:active { color: #5eb7e8; text-decoration: none; }

header.header nav .global a:hover::before, header.header nav .global a:active::before { border-color: #fabe00 transparent transparent transparent; }

header.header nav .global a.current { background-color: #fabe00; color: #fff; pointer-events: none; }

header.header nav .global a.current::before { border-color: #fff transparent transparent transparent; }

header.header nav .lang { display: -webkit-box; display: -ms-flexbox; display: flex; padding-left: 15px; }

header.header nav .lang li { margin-right: 4px; }

header.header nav .lang li:last-child { margin-right: 0; }

header.header nav .lang a { display: inline-block; position: relative; padding: 7px 1.5em; background-color: #fff; color: #b4b4b5; font-size: 1.5rem; font-weight: bold; text-align: center; }

header.header nav .lang a::before { content: ""; display: block; position: absolute; left: 3px; top: 3px; width: 0; height: 0; border-style: solid; border-width: 10px 10px 0 0; border-color: #b4b4b5 transparent transparent transparent; }

header.header nav .lang a:hover, header.header nav .lang a:active { color: #b4b4b5; text-decoration: none; }

header.header nav .lang a:hover::before, header.header nav .lang a:active::before { border-color: #e74291 transparent transparent transparent; }

header.header nav .lang a.current { background-color: #e74291; color: #fff; pointer-events: none; }

header.header nav .lang a.current::before { border-color: #fff transparent transparent transparent; }

@media screen and (max-width: 767px) { header.header nav { display: none; } }

/* hamburger button */
#hamburger_button { display: none; }

@media screen and (max-width: 767px) { #hamburger_button { display: block; position: relative; width: 48px; height: 48px; }
  #hamburger_button span { display: block; position: absolute; left: 14px; top: calc(50% - 1px); width: 20px; height: 2px; background-color: #fff; opacity: 1; -webkit-transition: opacity .15s, -webkit-transform .2s; transition: opacity .15s, -webkit-transform .2s; transition: opacity .15s, transform .2s; transition: opacity .15s, transform .2s, -webkit-transform .2s; }
  #hamburger_button span:nth-child(1) { -webkit-transform: translate3d(0, -7px, 0); transform: translate3d(0, -7px, 0); }
  #hamburger_button span:nth-child(3) { -webkit-transform: translate3d(0, 7px, 0); transform: translate3d(0, 7px, 0); }
  #hamburger_button.open span:nth-child(1) { -webkit-transform: translate3d(0, 0, 0) rotate(135deg); transform: translate3d(0, 0, 0) rotate(135deg); }
  #hamburger_button.open span:nth-child(2) { opacity: 0; }
  #hamburger_button.open span:nth-child(3) { -webkit-transform: translate3d(0, 0, 0) rotate(45deg); transform: translate3d(0, 0, 0) rotate(45deg); }
  #hamburger_button.disabled { pointer-events: none; } }

/* ---- hamburger menu ---- */
/* cover */
#hamburger_cover { display: none; }

@media screen and (max-width: 767px) { #hamburger_cover { display: block; position: fixed; left: 0; top: 0; z-index: 1000; width: 100%; height: 100vh; background-color: #5eb7e8; opacity: 0; -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: scale(1, 0); transform: scale(1, 0); -webkit-transition: opacity .2s .1s ease-out, -webkit-transform .2s .1s ease-out; transition: opacity .2s .1s ease-out, -webkit-transform .2s .1s ease-out; transition: opacity .2s .1s ease-out, transform .2s .1s ease-out; transition: opacity .2s .1s ease-out, transform .2s .1s ease-out, -webkit-transform .2s .1s ease-out; }
  #hamburger_cover.open { opacity: .95; -webkit-transform: scale(1, 1); transform: scale(1, 1); -webkit-transition: opacity .2s 0s ease-out, -webkit-transform .2s 0s ease-out; transition: opacity .2s 0s ease-out, -webkit-transform .2s 0s ease-out; transition: opacity .2s 0s ease-out, transform .2s 0s ease-out; transition: opacity .2s 0s ease-out, transform .2s 0s ease-out, -webkit-transform .2s 0s ease-out; } }

/* body */
#hamburger { display: none; }

@media screen and (max-width: 767px) { #hamburger { display: block; position: fixed; left: 0; top: 0; z-index: 1001; width: 100%; height: 100vh; opacity: 0; -webkit-transform-origin: 0 0; transform-origin: 0 0; -webkit-transform: translateY(-20vw); transform: translateY(-20vw); -webkit-transition: opacity .15s 0s ease-out, -webkit-transform .15s 0s ease-out; transition: opacity .15s 0s ease-out, -webkit-transform .15s 0s ease-out; transition: opacity .15s 0s ease-out, transform .15s 0s ease-out; transition: opacity .15s 0s ease-out, transform .15s 0s ease-out, -webkit-transform .15s 0s ease-out; pointer-events: none; }
  #hamburger.open { opacity: 1; -webkit-transform: translateY(0); transform: translateY(0); -webkit-transition: opacity .2s .1s ease-out, -webkit-transform .2s .1s ease-out; transition: opacity .2s .1s ease-out, -webkit-transform .2s .1s ease-out; transition: opacity .2s .1s ease-out, transform .2s .1s ease-out; transition: opacity .2s .1s ease-out, transform .2s .1s ease-out, -webkit-transform .2s .1s ease-out; pointer-events: auto; }
  #hamburger .global { margin: 30vw 15vw 10vw; padding-bottom: 10vw; border-bottom: 1px solid #98ceec; }
  #hamburger .global li { margin-bottom: 2vw; }
  #hamburger .global li:last-child { margin-bottom: 0; }
  #hamburger .global a { display: block; position: relative; padding: 3vw 0; background-color: #fff; color: #5eb7e8; font-size: 1.5rem; font-weight: bold; text-align: center; }
  #hamburger .global a::before { content: ""; display: block; position: absolute; left: 3px; top: 3px; width: 0; height: 0; border-style: solid; border-width: 10px 10px 0 0; border-color: #5eb7e8 transparent transparent transparent; }
  #hamburger .global a:hover, #hamburger .global a:active { color: #5eb7e8; text-decoration: none; }
  #hamburger .global a.current { background-color: #fabe00; color: #fff; pointer-events: none; }
  #hamburger .global a.current::before { border-color: #fff transparent transparent transparent; }
  #hamburger .lang { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; margin: 0 15vw 30vw; }
  #hamburger .lang li { width: calc(50% - 1vw); }
  #hamburger .lang a { display: block; position: relative; padding: 3vw 0; background-color: #fff; color: #b4b4b5; font-size: 1.5rem; font-weight: bold; text-align: center; }
  #hamburger .lang a::before { content: ""; display: block; position: absolute; left: 3px; top: 3px; width: 0; height: 0; border-style: solid; border-width: 10px 10px 0 0; border-color: #b4b4b5 transparent transparent transparent; }
  #hamburger .lang a:hover, #hamburger .lang a:active { color: #b4b4b5; text-decoration: none; }
  #hamburger .lang a.current { background-color: #e74291; color: #fff; pointer-events: none; }
  #hamburger .lang a.current::before { border-color: #fff transparent transparent transparent; } }

/* ---- footer ---- */
footer.footer { padding: 50px 4%; border-top: 25px solid #5eb7e8; }

footer.footer .row { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; }

footer.footer .left_col h2 { margin-bottom: 15px; font-size: 1.9rem; font-weight: bold; line-height: 1.6; letter-spacing: .05em; }

footer.footer .left_col p { font-size: 1.4rem; line-height: 1.6; letter-spacing: .05em; }

footer.footer .left_col p:last-child { margin-top: 30px; color: #bbb; font-size: 1.3rem; }

footer.footer .left_col a { color: #24282c; pointer-events: none; }

footer.footer .left_col a:hover, footer.footer .left_col a:active { color: #24282c; text-decoration: none; }

footer.footer .right_col { width: 200px; padding-bottom: 30px; }

footer.footer .right_col img { width: 100%; }

@media screen and (max-width: 767px) { footer.footer { padding: 4vw 5vw 18vw; border-top: 5vw solid #5eb7e8; }
  footer.footer .row { display: block; }
  footer.footer .left_col h2 { margin-bottom: 2vw; font-size: 1.5rem; text-align: center; }
  footer.footer .left_col p { font-size: 1.2rem; text-align: center; }
  footer.footer .left_col p:last-child { margin-top: 4vw; font-size: 1.1rem; }
  footer.footer .left_col a { pointer-events: auto; }
  footer.footer .right_col { width: auto; padding: 0 5vw 5vw 0; text-align: center; }
  footer.footer .right_col img { width: 60%; } }

/* -------------------------------- parts -------------------------------- */
/* ---- page title ---- */
.body_container h1 { display: block; position: relative; padding: 15px 25px; background-color: #5eb7e8; color: #fff; font-size: 2.4rem; font-weight: bold; letter-spacing: .05em; }

.body_container h1::before { content: ""; display: block; position: absolute; left: 5px; top: 5px; width: 0; height: 0; border-style: solid; border-width: 20px 20px 0 0; border-color: #fff transparent transparent transparent; }

.body_container h1::after { content: ""; display: block; position: absolute; left: 100%; top: 0; width: 50vw; height: 100%; background-color: #5eb7e8; }

@media screen and (max-width: 767px) { .body_container h1 { padding: 2.4vw 4vw; font-size: 5vw; }
  .body_container h1::before { left: 4px; top: 4px; border-width: 3vw 3vw 0 0; } }

/* ---- change <img> to background-image ---- */
img.bg { display: none; }

/* ---- text link with arrow ---- */
a.arrow { display: inline-block; position: relative; padding-right: 1.5em; color: #5eb7e8; }

a.arrow::after { content: ""; display: block; position: absolute; right: .5em; top: 50%; width: .6em; height: .6em; margin-top: -.3em; border-top: 1px solid #5eb7e8; border-right: 1px solid #5eb7e8; -webkit-transform: translateX(0) rotate(45deg); transform: translateX(0) rotate(45deg); -webkit-transition: -webkit-transform .2s ease-out; transition: -webkit-transform .2s ease-out; transition: transform .2s ease-out; transition: transform .2s ease-out, -webkit-transform .2s ease-out; }

a.arrow:hover, a.arrow:active { color: #5eb7e8; text-decoration: none; }

a.arrow:hover::after, a.arrow:active::after { -webkit-transform: translateX(0.4em) rotate(45deg); transform: translateX(0.4em) rotate(45deg); }

@media screen and (max-width: 767px) { a.arrow { -webkit-transition: none; transition: none; }
  a.arrow:hover, a.arrow:active { -webkit-transform: translateX(0) rotate(45deg); transform: translateX(0) rotate(45deg); } }

/* ---- text link button ---- */
a.next { display: inline-block; position: relative; padding: .6em 2em .6em 1.2em; border: 3px solid #5eb7e8; border-radius: 100px; background-color: #fff; color: #5eb7e8; font-weight: bold; line-height: 1; -webkit-transition: background-color .2s, color .2s; transition: background-color .2s, color .2s; }

a.next::after { content: ""; display: block; position: absolute; right: 1em; top: 50%; width: .6em; height: .6em; margin-top: -.3em; border-top: 3px solid #5eb7e8; border-right: 3px solid #5eb7e8; -webkit-transform: rotate(45deg); transform: rotate(45deg); -webkit-transition: border-color .2s ease-out; transition: border-color .2s ease-out; }

a.next:hover, a.next:active { background-color: #5eb7e8; color: #fff; text-decoration: none; }

a.next:hover::after, a.next:active::after { border-color: #fff; }

a.back { display: inline-block; position: relative; padding: .6em 1.2em .6em 2em; border: 3px solid #5eb7e8; border-radius: 100px; background-color: #fff; color: #5eb7e8; font-weight: bold; line-height: 1; -webkit-transition: background-color .2s, color .2s; transition: background-color .2s, color .2s; }

a.back::before { content: ""; display: block; position: absolute; left: 1em; top: 50%; width: .6em; height: .6em; margin-top: -.3em; border-top: 3px solid #5eb7e8; border-left: 3px solid #5eb7e8; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); -webkit-transition: border-color .2s ease-out; transition: border-color .2s ease-out; }

a.back:hover, a.back:active { background-color: #5eb7e8; color: #fff; text-decoration: none; }

a.back:hover::before, a.back:active::before { border-color: #fff; }

@media screen and (max-width: 767px) { a.next { padding: .8em 2em .8em 1.2em; }
  a.back { padding: .8em 1.2em .8em 2em; } }

/* ---- modal ---- */
#modal_cover { position: fixed; top: 0; left: 0; z-index: 2000; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.9); opacity: 0; -webkit-transform: scale(0.85); transform: scale(0.85); -webkit-transition: opacity .3s ease-out, -webkit-transform .3s ease-out; transition: opacity .3s ease-out, -webkit-transform .3s ease-out; transition: opacity .3s ease-out, transform .3s ease-out; transition: opacity .3s ease-out, transform .3s ease-out, -webkit-transform .3s ease-out; pointer-events: none; }

#modal_cover.show { opacity: 1; -webkit-transform: scale(1); transform: scale(1); -webkit-transition: opacity .3s ease-out, -webkit-transform .3s ease-out; transition: opacity .3s ease-out, -webkit-transform .3s ease-out; transition: opacity .3s ease-out, transform .3s ease-out; transition: opacity .3s ease-out, transform .3s ease-out, -webkit-transform .3s ease-out; pointer-events: auto; }

#map { position: fixed; left: 0; top: 0; z-index: 2001; width: 100%; height: 100%; opacity: 0; -webkit-transition: opacity .2s 0s ease-out; transition: opacity .2s 0s ease-out; pointer-events: none; }

#map.show { opacity: 1; -webkit-transition: opacity .3s .2s ease-out; transition: opacity .3s .2s ease-out; pointer-events: auto; }

#map button { display: block; position: absolute; right: 2vw; top: 2vw; z-index: 401; width: 4vw; height: 4vw; border-radius: 5px; background-color: #5eb7e8; opacity: 0; -webkit-transition: opacity .2s ease-out; transition: opacity .2s ease-out; }

#map.show button { opacity: 1; }

#map button::before { content: ""; display: block; position: absolute; left: .5vw; top: calc(2vw - 1px); width: 3vw; height: 3px; background-color: #fff; -webkit-transform: rotate(45deg); transform: rotate(45deg); }

#map button::after { content: ""; display: block; position: absolute; left: .5vw; top: calc(2vw - 1px); width: 3vw; height: 3px; background-color: #fff; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); }

#map.show button:hover, #map.show button:active { opacity: .7; }

@media screen and (max-width: 767px) { #map button { width: 48px; height: 48px; right: 3vw; top: 3vw; }
  #map button::before { left: 9px; top: 23px; width: 30px; }
  #map button::after { left: 9px; top: 23px; width: 30px; }
  #map.show button:hover, #map.show button:active { opacity: 1; } }

/* ---- pager ---- */
.pager { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; margin-top: 50px; }

.pager a:not(.prev):not(.next) { display: block; position: relative; width: 50px; margin: 0 5px; padding: 16px 0 18px; color: #fff; font-size: 1.6rem; text-indent: .1em; text-align: center; }

.pager a:not(.prev):not(.next):hover, .pager a:not(.prev):not(.next):active { color: #fff; text-decoration: none; }

.pager a:not(.prev):not(.next)::after { content: ""; display: block; position: absolute; left: 0; top: 0; z-index: -1; width: 100%; height: 100%; border-radius: 50%; background-color: #5eb7e8; opacity: 0; -webkit-transform-origin: 50% 50%; transform-origin: 50% 50%; -webkit-transform: scale(0.7); transform: scale(0.7); -webkit-transition: opacity .2s ease-out, -webkit-transform .2s ease-out; transition: opacity .2s ease-out, -webkit-transform .2s ease-out; transition: opacity .2s ease-out, transform .2s ease-out; transition: opacity .2s ease-out, transform .2s ease-out, -webkit-transform .2s ease-out; }

.pager a:not(.prev):not(.next):hover::after, .pager a:not(.prev):not(.next):active::after { opacity: 1; -webkit-transform: scale(1); transform: scale(1); }

.pager a:not(.prev):not(.next).current { pointer-events: none; }

.pager a:not(.prev):not(.next).current::after { opacity: 1; -webkit-transform: scale(1); transform: scale(1); }

.pager a.prev { display: block; position: relative; width: 50px; height: 50px; margin: 0 15px 0 5px; overflow: hidden; text-indent: -400px; }

.pager a.prev::before { content: ""; display: block; position: absolute; left: 40%; top: 37.5%; z-index: 2; width: 25%; height: 25%; border-top: 3px solid #ac755e; border-left: 3px solid #ac755e; -webkit-transform: rotate(-45deg); transform: rotate(-45deg); }

.pager a.prev::after { content: ""; display: block; position: absolute; left: 0; top: 0; z-index: 1; width: 100%; height: 100%; border-radius: 50%; background-color: #ede0d5; opacity: 0; -webkit-transition: opacity .2s; transition: opacity .2s; }

.pager a.prev:hover::after, .pager a.prev:active::after { opacity: 1; }

.pager a.next { display: block; position: relative; width: 50px; height: 50px; margin: 0 5px 0 15px; overflow: hidden; text-indent: -400px; }

.pager a.next::before { content: ""; display: block; position: absolute; right: 42%; top: 37.5%; z-index: 2; width: 25%; height: 25%; border-top: 3px solid #ac755e; border-right: 3px solid #ac755e; -webkit-transform: rotate(45deg); transform: rotate(45deg); }

.pager a.next::after { content: ""; display: block; position: absolute; left: 0; top: 0; z-index: 1; width: 100%; height: 100%; border-radius: 50%; background-color: #ede0d5; opacity: 0; -webkit-transition: opacity .2s; transition: opacity .2s; }

.pager a.next:hover::after, .pager a.next:active::after { opacity: 1; }

@media screen and (max-width: 767px) { .pager { margin-top: 8vw; }
  .pager a:not(.prev):not(.next) { width: 40px; margin: 0; padding: 12px 0 14px; }
  .pager a:not(.prev):not(.next)::after { -webkit-transform: scale(1); transform: scale(1); -webkit-transition: none; transition: none; }
  .pager a:not(.prev):not(.next):hover::after, .pager a:not(.prev):not(.next):active::after { opacity: 0; }
  .pager a.prev { width: 40px; height: 40px; margin: 0 5px 0 0; }
  .pager a.prev::after { content: none; }
  .pager a.next { width: 40px; height: 40px; margin: 0 0 0 5px; }
  .pager a.next::after { content: none; } }

/*
-------------------------------------------------------------------------------- Page specific styles
*/
/* -------------------------------- top page -------------------------------- */
#toppage { /* ---- hero images ---- */ /* ---- covers ---- */ /* ---- loading ---- */ /* ---- news ---- */ /* ---- latest issues ---- */ /* header */ /* tabs */ /* maps */ }

#toppage .hero { position: relative; padding-bottom: 40px; background-color: #5eb7e8; }

#toppage .hero p { position: absolute; left: 6%; top: 18%; z-index: 2; color: #fff; font-size: 3.5vw; font-weight: bold; letter-spacing: .04em; line-height: 1.3; text-shadow: 0 0 30px #1e4673; opacity: 0; -webkit-transform: translateX(-40%); transform: translateX(-40%); -webkit-transition: opacity 2s 1s cubic-bezier(0, 0.8, 0.56, 1), -webkit-transform 1.5s 1s cubic-bezier(0, 0.8, 0.56, 1); transition: opacity 2s 1s cubic-bezier(0, 0.8, 0.56, 1), -webkit-transform 1.5s 1s cubic-bezier(0, 0.8, 0.56, 1); transition: opacity 2s 1s cubic-bezier(0, 0.8, 0.56, 1), transform 1.5s 1s cubic-bezier(0, 0.8, 0.56, 1); transition: opacity 2s 1s cubic-bezier(0, 0.8, 0.56, 1), transform 1.5s 1s cubic-bezier(0, 0.8, 0.56, 1), -webkit-transform 1.5s 1s cubic-bezier(0, 0.8, 0.56, 1); }

#toppage .hero p.show { opacity: 1; -webkit-transform: translateX(0); transform: translateX(0); }

#toppage .hero .landscape { position: relative; z-index: 1; height: 0; padding-bottom: 30%; overflow: hidden; }

#toppage .hero .landscape li { position: absolute; left: 0; top: 0; z-index: 0; width: 100%; height: 0; padding-bottom: 56.25%; background-size: cover; opacity: 0; -webkit-transform: translateY(-46.66%); transform: translateY(-46.66%); }

#toppage .hero .landscape li.show { -webkit-animation: hero_tilt 10s linear both; animation: hero_tilt 10s linear both; }

#toppage .hero .landscape span { display: none; }

@-webkit-keyframes hero_tilt { 0% { opacity: 0;
    -webkit-transform: translateY(-46.66%);
    transform: translateY(-46.66%); }
  20% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 0;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

@keyframes hero_tilt { 0% { opacity: 0;
    -webkit-transform: translateY(-46.66%);
    transform: translateY(-46.66%); }
  20% { opacity: 1; }
  80% { opacity: 1; }
  100% { opacity: 0;
    -webkit-transform: translateY(0);
    transform: translateY(0); } }

@media screen and (max-width: 767px) { #toppage .hero { padding-bottom: 10vw; }
  #toppage .hero p { left: 5%; top: 13%; font-size: 7vw; line-height: 1.5; }
  #toppage .hero .landscape { padding-bottom: 93.75%; }
  #toppage .hero .landscape li { width: 166.67%; padding-bottom: 93.75%; -webkit-transform: translateX(-40%); transform: translateX(-40%); }
  #toppage .hero .landscape li.show { -webkit-animation: hero_pan 10s linear both; animation: hero_pan 10s linear both; } }

@-webkit-keyframes hero_pan { 0% { opacity: 0;
    -webkit-transform: translateX(-40%);
    transform: translateX(-40%); }
  15% { opacity: 1; }
  85% { opacity: 1; }
  100% { opacity: 0;
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

@keyframes hero_pan { 0% { opacity: 0;
    -webkit-transform: translateX(-40%);
    transform: translateX(-40%); }
  15% { opacity: 1; }
  85% { opacity: 1; }
  100% { opacity: 0;
    -webkit-transform: translateX(0);
    transform: translateX(0); } }

#toppage .hero .cover { position: absolute; right: 0; bottom: 20px; z-index: 3; width: 24%; height: 0; padding-bottom: 24%; overflow: hidden; }

#toppage .hero .cover li { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; position: absolute; right: 0; bottom: 0; width: 100%; height: 100%; -webkit-transform: translateX(100%); transform: translateX(100%); }

#toppage .hero .cover li.show { -webkit-animation: cover_slide 8s ease-in-out both; animation: cover_slide 8s ease-in-out both; }

#toppage .hero .cover li img { display: block; width: 40%; margin-right: 10%; }

@media screen and (max-width: 767px) { #toppage .hero .cover { bottom: 5vw; width: 60%; padding-bottom: 60%; }
  #toppage .hero .cover li img { width: 45%; margin-right: 5%; } }

@-webkit-keyframes cover_slide { 0% { -webkit-transform: translateX(100%); transform: translateX(100%); }
  15% { -webkit-transform: translateX(100%); transform: translateX(100%); }
  25% { -webkit-transform: translateX(0); transform: translateX(0); }
  92% { -webkit-transform: translateX(0); transform: translateX(0); }
  100% { -webkit-transform: translateX(100%); transform: translateX(100%); } }

@keyframes cover_slide { 0% { -webkit-transform: translateX(100%); transform: translateX(100%); }
  15% { -webkit-transform: translateX(100%); transform: translateX(100%); }
  25% { -webkit-transform: translateX(0); transform: translateX(0); }
  92% { -webkit-transform: translateX(0); transform: translateX(0); }
  100% { -webkit-transform: translateX(100%); transform: translateX(100%); } }

#toppage .loading { display: none; position: absolute; left: 50%; top: 50%; margin: -3.75em 0 0 -1.25em; color: #fff; opacity: .3; font-size: 7px; text-indent: -9999em; -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-animation-delay: -0.16s; animation-delay: -0.16s; }

#toppage .loading, #toppage .loading::before, #toppage .loading::after { width: 2.5em; height: 2.5em; border-radius: 50%; -webkit-animation-fill-mode: both; animation-fill-mode: both; -webkit-animation: loading-anim 1.8s infinite ease-in-out; animation: loading-anim 1.8s infinite ease-in-out; }

#toppage .loading::before, #toppage .loading::after { content: ""; position: absolute; top: 0; }

#toppage .loading::before { left: -3.5em; -webkit-animation-delay: -0.32s; animation-delay: -0.32s; }

#toppage .loading::after { left: 3.5em; }

@-webkit-keyframes loading-anim { 0%, 80%, 100% { -webkit-box-shadow: 0 2.5em 0 -1.3em; box-shadow: 0 2.5em 0 -1.3em; }
  40% { -webkit-box-shadow: 0 2.5em 0 0; box-shadow: 0 2.5em 0 0; } }

@keyframes loading-anim { 0%, 80%, 100% { -webkit-box-shadow: 0 2.5em 0 -1.3em; box-shadow: 0 2.5em 0 -1.3em; }
  40% { -webkit-box-shadow: 0 2.5em 0 0; box-shadow: 0 2.5em 0 0; } }

#toppage .news header { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; }

#toppage .news header h2 { color: #e74291; font-size: 2.4em; font-weight: bold; letter-spacing: .05em; }

#toppage .news header a { font-size: 1.6rem; }

#toppage .news ul li { margin-top: 20px; }

#toppage .news ul a { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; color: #24282c; text-decoration: none; }

#toppage .news ul a:hover, #toppage .news ul a:active { color: #24282c; text-decoration: none; }

#toppage .news ul a:hover .title, #toppage .news ul a:active .title { text-decoration: underline; }

#toppage .news ul .category { padding: 3px 20px 0 0; }

#toppage .news ul .category span { display: block; width: 6em; padding: 3px 0; border-radius: 3px; color: #fff; font-size: 1.4rem; letter-spacing: .07em; text-align: center; white-space: nowrap; }

#toppage .news ul .category span.media { background-color: #e74291; }

#toppage .news ul .category span.topic { background-color: #fabe00; }

#toppage .news ul .category span.others { background-color: #5eb7e8; }

#toppage .news ul .date { padding-right: 20px; font-size: 1.6rem; line-height: 1.6; white-space: nowrap; }

#toppage .news ul .title { font-size: 1.6rem; line-height: 1.6; }

@media screen and (max-width: 767px) { #toppage .news header h2 { font-size: 2.8rem; }
  #toppage .news header a { font-size: 1.5rem; }
  #toppage .news ul li { margin-top: 5vw; }
  #toppage .news ul a { -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-align: center; -ms-flex-align: center; align-items: center; }
  #toppage .news ul a:hover .title, #toppage .news ul a:active .title { text-decoration: none; }
  #toppage .news ul .category { padding: 0 3vw 0 0; }
  #toppage .news ul .category span { font-size: 1.4rem; }
  #toppage .news ul .date { padding-right: 0; font-size: 1.6rem; }
  #toppage .news ul .title { width: 100%; padding-top: 2vw; font-size: 1.4rem; } }

#toppage .latest { margin-top: 80px; }

#toppage .latest footer { margin-top: 20px; text-align: right; }

#toppage .latest footer a { font-size: 1.6rem; }

@media screen and (max-width: 767px) { #toppage .latest { margin-top: 10vw; }
  #toppage .latest footer { margin-top: 5vw; }
  #toppage .latest footer a { font-size: 1.5rem; } }

#toppage .latest .tabs { display: -webkit-box; display: -ms-flexbox; display: flex; margin-top: 30px; }

#toppage .latest .tabs li { margin-right: 1px; }

#toppage .latest .tabs button { display: block; position: relative; width: 120px; height: 70px; background-color: #e5eaed; -webkit-transition: background-color .2s; transition: background-color .2s; }

#toppage .latest .tabs button::before { content: ""; display: block; position: absolute; left: 5px; top: 5px; width: 0; height: 0; border-style: solid; border-width: 16px 16px 0 0; border-color: #fff transparent transparent transparent; -webkit-transition: border-color .2s; transition: border-color .2s; }

#toppage .latest .tabs button img { display: block; width: 50px; margin: 0 auto; opacity: .2; -webkit-filter: grayscale(100%); filter: grayscale(100%); -webkit-transition: opacity .2s, -webkit-filter .2s; transition: opacity .2s, -webkit-filter .2s; transition: opacity .2s, filter .2s; transition: opacity .2s, filter .2s, -webkit-filter .2s; }

#toppage .latest .tabs button:hover, #toppage .latest .tabs button:active, #toppage .latest .tabs button.current { background-color: #cae3f6; }

#toppage .latest .tabs button:hover::before, #toppage .latest .tabs button:active::before, #toppage .latest .tabs button.current::before { border-color: #5eb7e8 transparent transparent transparent; }

#toppage .latest .tabs button:hover img, #toppage .latest .tabs button:active img, #toppage .latest .tabs button.current img { opacity: 1; -webkit-filter: grayscale(0%); filter: grayscale(0%); }

#toppage .latest .tabs button.current { pointer-events: none; }

@media screen and (max-width: 767px) { #toppage .latest .tabs { -ms-flex-wrap: wrap; flex-wrap: wrap; margin-top: 5vw; }
  #toppage .latest .tabs li { width: calc(33.33% - 1px); margin-top: 1px; }
  #toppage .latest .tabs li:nth-child(3n) { width: 33.33%; margin-right: 0; }
  #toppage .latest .tabs button { width: 100%; height: 18vw; }
  #toppage .latest .tabs button::before { border-width: 14px 14px 0 0; }
  #toppage .latest .tabs button img { width: 50%; } }

#toppage .latest .maps { position: relative; border: 10px solid #cae3f6; }

#toppage .latest .maps li { display: -webkit-box; display: -ms-flexbox; display: flex; position: absolute; left: 0; top: 0; opacity: 0; pointer-events: none; -webkit-transition: opacity .3s ease-out; transition: opacity .3s ease-out; }

#toppage .latest .maps li:first-child { position: static; }

#toppage .latest .maps li div { position: relative; width: 50%; }

#toppage .latest .maps li div:first-child { border-right: 5px solid #cae3f6; }

#toppage .latest .maps li div:last-child { border-left: 5px solid #cae3f6; }

#toppage .latest .maps li div span { display: block; position: absolute; left: 10px; top: 10px; z-index: 2; width: 5em; padding: 3px 0; border-radius: 3px; background-color: #e74291; color: #fff; font-size: 1.5rem; font-weight: bold; letter-spacing: .6em; text-indent: .6em; text-align: center; }

#toppage .latest .maps li div a { display: block; position: relative; z-index: 1; }

#toppage .latest .maps li div a::after { content: ""; display: block; position: absolute; left: calc(50% - 20px); top: calc(50% - 20px); width: 40px; height: 40px; border-radius: 8px; background-color: rgba(255, 255, 255, 0.8); background-image: url(../img/icon_zoom.svg); background-repeat: no-repeat; background-size: 32px; background-position: 50% 50%; -webkit-transition: background-color .2s; transition: background-color .2s; }

#toppage .latest .maps li div a:hover::after, #toppage .latest .maps li div a:active::after { background-color: white; }

#toppage .latest .maps li div img { width: 100%; }

#toppage .latest .maps li.current { opacity: 1; pointer-events: auto; }

@media screen and (max-width: 767px) { #toppage .latest .maps { border: 8px solid #cae3f6; }
  #toppage .latest .maps li { display: block; }
  #toppage .latest .maps li div { width: auto; }
  #toppage .latest .maps li div:first-child { border-bottom: 8px solid #cae3f6; border-right-style: none; }
  #toppage .latest .maps li div:last-child { border-left-style: none; }
  #toppage .latest .maps li div span { font-size: 1.4rem; }
  #toppage .latest .maps li div a::after { -webkit-transition: none; transition: none; }
  #toppage .latest .maps li div a:hover::after, #toppage .latest .maps li div a:active::after { background-color: rgba(255, 255, 255, 0.8); } }

/* #toppage */
/* -------------------------------- about -------------------------------- */
#about { /* ---- body ---- */ }

#about .body_container > .row { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; }

#about .body_container > .row .col { width: 48%; }

#about .body_container > .row .col:first-child { padding-top: 15px; }

#about .body_container > .row .col:first-child a { margin-top: 30px; }

#about .body_container > .row .col:last-child a { display: none; }

#about .body_container > .row p { margin-top: 40px; line-height: 2; }

@media screen and (max-width: 767px) { #about .body_container > .row { display: block; }
  #about .body_container > .row .col { width: auto; }
  #about .body_container > .row .col:first-child { padding-top: 0; }
  #about .body_container > .row .col:first-child a { display: none; }
  #about .body_container > .row .col:last-child { padding-top: 8vw; text-align: center; }
  #about .body_container > .row .col:last-child img { width: 80%; }
  #about .body_container > .row .col:last-child a { display: inline-block; margin-top: 8vw; }
  #about .body_container > .row p { margin-top: 8vw; line-height: 1.8; } }

/* #about */
/* -------------------------------- location -------------------------------- */
#location { /* ---- tabs ---- */ /* ---- heading ---- */ /* ---- list ---- */ }

#location .tabs { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; margin-top: 60px; }

#location .tabs li { width: 30%; }

#location .tabs li:nth-child(1) a { border-color: #00a73c; color: #00a73c; }

#location .tabs li:nth-child(1) a::before { border-color: #00a73c transparent transparent transparent; }

#location .tabs li:nth-child(1) a:hover, #location .tabs li:nth-child(1) a:active { background-color: #00a73c; }

#location .tabs li:nth-child(2) a { border-color: #fabe00; color: #fabe00; }

#location .tabs li:nth-child(2) a::before { border-color: #fabe00 transparent transparent transparent; }

#location .tabs li:nth-child(2) a:hover, #location .tabs li:nth-child(2) a:active { background-color: #fabe00; }

#location .tabs li:nth-child(3) a { border-color: #e74291; color: #e74291; }

#location .tabs li:nth-child(3) a::before { border-color: #e74291 transparent transparent transparent; }

#location .tabs li:nth-child(3) a:hover, #location .tabs li:nth-child(3) a:active { background-color: #e74291; }

#location .tabs a { display: block; padding: 12px 0; position: relative; border-width: 3px; border-style: solid; background-color: #fff; font-size: 1.8rem; font-weight: bold; line-height: 1.3; text-align: center; -webkit-transition: background-color .2s, color .2s; transition: background-color .2s, color .2s; }

#location .tabs a::before { content: ""; display: block; position: absolute; left: 5px; top: 5px; width: 0; height: 0; border-style: solid; border-width: 16px 16px 0 0; -webkit-transition: border-color .2s; transition: border-color .2s; }

#location .tabs a:hover, #location .tabs a:active { color: #fff !important; text-decoration: none; }

#location .tabs a:hover::before, #location .tabs a:active::before { border-color: #fff transparent transparent transparent !important; }

@media screen and (max-width: 767px) { #location .tabs { margin-top: 15vw; }
  #location .tabs li { width: 32%; }
  #location .tabs li:nth-child(1) a:hover, #location .tabs li:nth-child(1) a:active { background-color: #fff; color: #00a73c !important; }
  #location .tabs li:nth-child(1) a:hover::before, #location .tabs li:nth-child(1) a:active::before { border-color: #00a73c transparent transparent transparent !important; }
  #location .tabs li:nth-child(2) a:hover, #location .tabs li:nth-child(2) a:active { background-color: #fff; color: #fabe00 !important; }
  #location .tabs li:nth-child(2) a:hover::before, #location .tabs li:nth-child(2) a:active::before { border-color: #fabe00 transparent transparent transparent !important; }
  #location .tabs li:nth-child(3) a:hover, #location .tabs li:nth-child(3) a:active { background-color: #fff; color: #e74291 !important; }
  #location .tabs li:nth-child(3) a:hover::before, #location .tabs li:nth-child(3) a:active::before { border-color: #e74291 transparent transparent transparent !important; }
  #location .tabs a { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; height: 100%; padding: 3vw 0; border-width: 2px; font-size: 1.6rem; -webkit-transition: none; transition: none; }
  #location .tabs a::before { left: 3px; top: 3px; border-width: 12px 12px 0 0; -webkit-transition: none; transition: none; } }

#location .body_container h2 { margin-top: 80px; font-size: 3rem; font-weight: bold; }

#location .body_container h2#hotels { color: #00a73c; }

#location .body_container h2#shops { color: #fabe00; }

#location .body_container h2#others { color: #e74291; }

#location .body_container h3 { margin-top: 40px; font-size: 1.8rem; font-weight: bold; }

#location .body_container h2#hotels ~ h3 { color: #89d2a3; }

#location .body_container h2#shops ~ h3 { color: #fbd548; }

#location .body_container h2#others ~ h3 { color: #ffa9bd; }

@media screen and (max-width: 767px) { #location .body_container h2 { margin-top: 15vw; font-size: 6vw; }
  #location .body_container h3 { margin-top: 8vw; font-size: 1.6rem; } }

#location .body_container h3 + ul { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; margin-top: 15px; }

#location .body_container h3 + ul li { width: 33.3333%; padding-right: 30px; font-size: 1.5rem; line-height: 1.7; }

@media screen and (max-width: 767px) { #location .body_container h3 + ul { display: block; margin-top: 3vw; }
  #location .body_container h3 + ul li { width: auto; padding-right: 0; font-size: 1.4rem; line-height: 1.6; } }

/* #location */
/* -------------------------------- news/index -------------------------------- */
#news_index { /* ---- container ---- */ /* ---- categories ---- */ /* ---- articles ---- */ /* ---- pagenation ---- */ }

#news_index .body_container > .row { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; margin-top: 60px; }

#news_index .body_container > .row .categories { width: 200px; }

#news_index .body_container > .row .articles { width: 700px; }

@media screen and (max-width: 767px) { #news_index .body_container > .row { display: block; margin-top: 8vw; }
  #news_index .body_container > .row .categories { width: auto; }
  #news_index .body_container > .row .articles { width: auto; } }

#news_index .categories li { margin-top: 7px; }

#news_index .categories li:first-child { margin-top: 0; }

#news_index .categories a { display: block; padding: 10px 0; position: relative; border: 3px solid #00a73c; background-color: #fff; color: #00a73c; font-size: 1.6rem; font-weight: bold; text-align: center; -webkit-transition: background-color .2s, color .2s; transition: background-color .2s, color .2s; }

#news_index .categories a::before { content: ""; display: block; position: absolute; left: 4px; top: 4px; width: 0; height: 0; border-style: solid; border-width: 12px 12px 0 0; border-color: #00a73c transparent transparent transparent; -webkit-transition: border-color .2s; transition: border-color .2s; }

#news_index .categories a:hover, #news_index .categories a:active, #news_index .categories a.current { background-color: #00a73c; color: #fff; text-decoration: none; }

#news_index .categories a:hover::before, #news_index .categories a:active::before, #news_index .categories a.current::before { border-color: #fff transparent transparent transparent; }

@media screen and (max-width: 767px) { #news_index .categories ul { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; }
  #news_index .categories li { width: 32%; margin: 2% 2% 0 0; }
  #news_index .categories li:first-child { margin-top: 2%; }
  #news_index .categories li:nth-child(3n) { margin-right: 0; }
  #news_index .categories a { padding: 3vw 0; border: 2px solid #00a73c; font-size: 1.6rem; -webkit-transition: none; transition: none; }
  #news_index .categories a::before { left: 3px; top: 3px; border-width: 10px 10px 0 0; -webkit-transition: none; transition: none; }
  #news_index .categories a:hover, #news_index .categories a:active { background-color: #fff; color: #00a73c; }
  #news_index .categories a:hover::before, #news_index .categories a:active::before { border-color: #00a73c transparent transparent transparent; } }

#news_index .articles li { margin-top: 40px; }

#news_index .articles li:first-child { margin-top: 0; }

#news_index .articles .article_head { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; }

#news_index .articles .article_head .date { position: relative; padding: 4px 0 4px 25px; letter-spacing: .07em; }

#news_index .articles .article_head .date::before { content: ""; display: block; position: absolute; left: 0; top: 1px; width: calc(1em + 4px); height: calc(1em + 4px); background-image: url(../img/icon_calendar.svg); background-size: contain; background-repeat: no-repeat; }

#news_index .articles .article_head .category { padding-right: 20px; }

#news_index .articles .article_head .category span { display: inline-block; width: 6em; margin: 0 6px 6px 0; padding: 4px 0; border-radius: 3px; color: #fff; font-size: 1.4rem; letter-spacing: .07em; text-align: center; white-space: nowrap; }

#news_index .articles .article_head .category span.media { background-color: #e74291; }

#news_index .articles .article_head .category span.topic { background-color: #fabe00; }

#news_index .articles .article_head .category span.others { background-color: #5eb7e8; }

#news_index .articles .article_head .category a { display: inline-block; margin: 0 6px 6px 0; padding: 4px 15px; border-radius: 3px; background-color: #00a73c; color: #fff; font-size: 1.4rem; letter-spacing: .07em; opacity: 1; -webkit-transition: opacity .2s; transition: opacity .2s; }

#news_index .articles .article_head .category a:hover, #news_index .articles .article_head .category a:active { opacity: .6; text-decoration: none; }

#news_index .articles h2 { margin-top: 10px; font-size: 2.4rem; font-weight: bold; line-height: 1.5; }

#news_index .articles h2 a { color: #24282c; }

#news_index .articles h2 a:hover, #news_index .articles h2 a:active { color: #24282c; }

#news_index .articles .article_body { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; margin-top: 20px; }

#news_index .articles .article_body .thumbnail { width: 180px; }

#news_index .articles .article_body .thumbnail a { display: block; height: 0; padding-bottom: 100%; background-size: cover; background-position: 50% 50%; opacity: 1; -webkit-transition: opacity .2s; transition: opacity .2s; }

#news_index .articles .article_body .thumbnail a:hover, #news_index .articles .article_body .thumbnail a:active { opacity: .8; }

#news_index .articles .article_body p { width: 490px; line-height: 2; }

@media screen and (max-width: 767px) { #news_index .articles li { margin-top: 8vw; }
  #news_index .articles li:first-child { margin-top: 8vw; }
  #news_index .articles .article_head { display: block; }
  #news_index .articles .article_head .category { padding: 3vw 0 0 0; }
  #news_index .articles .article_head .category a { -webkit-transition: none; transition: none; }
  #news_index .articles .article_head .category a:hover, #news_index .articles .article_head .category a:active { opacity: 1; }
  #news_index .articles h2 { margin-top: 2vw; font-size: 5.6vw; line-height: 1.3; }
  #news_index .articles .article_body { margin-top: 3vw; }
  #news_index .articles .article_body .thumbnail { width: 25%; }
  #news_index .articles .article_body .thumbnail a { -webkit-transition: none; transition: none; }
  #news_index .articles .article_body .thumbnail a:hover, #news_index .articles .article_body .thumbnail a:active { opacity: 1; }
  #news_index .articles .article_body p { width: 70%; line-height: 1.6; } }

#news_index .pagenation { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; width: 100%; margin-top: 40px; }

#news_index .pagenation > * { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; width: 40px; height: 40px; margin: 10px 5px 0; border: 3px solid #5eb7e8; border-radius: 20px; font-size: 1.8rem; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }

#news_index .pagenation a { background-color: #fff; color: #5eb7e8; -webkit-transition: background-color .2s; transition: background-color .2s; }

#news_index .pagenation a:hover, #news_index .pagenation a:active { background-color: #5eb7e8; color: #fff; text-decoration: none; }

#news_index .pagenation span { background-color: #5eb7e8; color: #fff; }

@media screen and (max-width: 767px) { #news_index .pagenation { margin-top: 8vw; }
  #news_index .pagenation > * { width: 40px; height: 40px; margin: 10px 5px 0; border: 2px solid #5eb7e8; border-radius: 20px; font-size: 1.7rem; }
  #news_index .pagenation a { -webkit-transition: none; transition: none; }
  #news_index .pagenation a:hover, #news_index .pagenation a:active { background-color: #fff; color: #5eb7e8; } }

/* #news_index */
/* -------------------------------- news/article -------------------------------- */
#news_article { /* ---- head ---- */ /* ---- body ---- */ }

#news_article .article_head { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; margin-top: 60px; }

#news_article .article_head .date { position: relative; padding: 8px 0 8px 30px; letter-spacing: .07em; }

#news_article .article_head .date::before { content: ""; display: block; position: absolute; left: 0; top: 3px; width: calc(1em + 8px); height: calc(1em + 8px); background-image: url(../img/icon_calendar.svg); background-size: contain; background-repeat: no-repeat; }

#news_article .article_head .category { padding-right: 20px; }

#news_article .article_head .category span { display: inline-block; width: 6em; margin: 0 10px 10px 0; padding: 6px 0; border-radius: 4px; color: #fff; font-size: 1.5rem; letter-spacing: .07em; text-align: center; white-space: nowrap; }

#news_article .article_head .category span.media { background-color: #e74291; }

#news_article .article_head .category span.topic { background-color: #fabe00; }

#news_article .article_head .category span.others { background-color: #5eb7e8; }

#news_article .article_head .category a { display: inline-block; margin: 0 10px 10px 0; padding: 6px 15px; border-radius: 4px; background-color: #00a73c; color: #fff; font-size: 1.5rem; letter-spacing: .07em; opacity: 1; -webkit-transition: opacity .2s; transition: opacity .2s; }

#news_article .article_head .category a:hover, #news_article .article_head .category a:active { opacity: .6; text-decoration: none; }

#news_article .article_head + h2 { margin-top: 15px; font-size: 3.5rem; font-weight: bold; line-height: 1.5; }

@media screen and (max-width: 767px) { #news_article .article_head { display: block; margin-top: 8vw; }
  #news_article .article_head .date { font-size: 1.6rem; }
  #news_article .article_head .category { padding: 1vw 0 0 0; }
  #news_article .article_head .category span { margin: 0 6px 6px 0; padding: 5px 0; }
  #news_article .article_head .category a { margin: 0 6px 6px 0; padding: 5px 10px; -webkit-transition: none; transition: none; }
  #news_article .article_head .category a:hover, #news_article .article_head .category a:active { opacity: 1; }
  #news_article .article_head + h2 { margin-top: 3vw; font-size: 7vw; line-height: 1.3; } }

#news_article .article_body { margin-top: 45px; }

#news_article .article_body p { margin-top: 30px; line-height: 2; }

#news_article .back_link { margin-top: 45px; text-align: center; }

@media screen and (max-width: 767px) { #news_article .article_body { margin-top: 8vw; }
  #news_article .article_body p { margin-top: 5vw; line-height: 1.7; }
  #news_article .back_link { margin-top: 8vw; } }

/* #news_article */
/* -------------------------------- backnumber -------------------------------- */
#backnumber { /* ---- selector ---- */ /* container */ /* tabs */ /* years */ /* ---- issues ---- */ }

#backnumber .selector { margin-top: 60px; }

@media screen and (max-width: 767px) { #backnumber .selector { margin-top: 8vw; } }

#backnumber .selector .tabs { display: -webkit-box; display: -ms-flexbox; display: flex; margin-top: 30px; }

#backnumber .selector .tabs li { margin-right: 1px; }

#backnumber .selector .tabs button { display: block; position: relative; width: 120px; height: 70px; background-color: #e5eaed; -webkit-transition: background-color .2s; transition: background-color .2s; }

#backnumber .selector .tabs button::before { content: ""; display: block; position: absolute; left: 5px; top: 5px; width: 0; height: 0; border-style: solid; border-width: 16px 16px 0 0; border-color: #fff transparent transparent transparent; -webkit-transition: border-color .2s; transition: border-color .2s; }

#backnumber .selector .tabs button img { display: block; width: 50px; margin: 0 auto; opacity: .2; -webkit-filter: grayscale(100%); filter: grayscale(100%); -webkit-transition: opacity .2s, -webkit-filter .2s; transition: opacity .2s, -webkit-filter .2s; transition: opacity .2s, filter .2s; transition: opacity .2s, filter .2s, -webkit-filter .2s; }

#backnumber .selector .tabs button:hover, #backnumber .selector .tabs button:active, #backnumber .selector .tabs button.current { background-color: #cae3f6; }

#backnumber .selector .tabs button:hover::before, #backnumber .selector .tabs button:active::before, #backnumber .selector .tabs button.current::before { border-color: #5eb7e8 transparent transparent transparent; }

#backnumber .selector .tabs button:hover img, #backnumber .selector .tabs button:active img, #backnumber .selector .tabs button.current img { opacity: 1; -webkit-filter: grayscale(0%); filter: grayscale(0%); }

#backnumber .selector .tabs button.current { pointer-events: none; }

@media screen and (max-width: 767px) { #backnumber .selector .tabs { -ms-flex-wrap: wrap; flex-wrap: wrap; margin-top: 5vw; }
  #backnumber .selector .tabs li { width: calc(33.33% - 1px); margin-top: 1px; }
  #backnumber .selector .tabs li:nth-child(3n) { width: 33.33%; margin-right: 0; }
  #backnumber .selector .tabs button { width: 100%; height: 18vw; }
  #backnumber .selector .tabs button::before { border-width: 14px 14px 0 0; }
  #backnumber .selector .tabs button img { width: 50%; } }

#backnumber .selector .years { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; padding: 15px; background-color: #cae3f6; }

#backnumber .selector .years li { width: 10%; padding: 3px; }

#backnumber .selector .years button { display: block; position: relative; width: 100%; padding: .5em 0; border: 3px solid #5eb7e8; background-color: #fff; color: #5eb7e8; font-size: 1.6rem; font-weight: bold; letter-spacing: .05em; text-align: center; -webkit-transition: background-color .2s, color .2s; transition: background-color .2s, color .2s; }

#backnumber .selector .years button::before { content: ""; display: block; position: absolute; left: 3px; top: 3px; width: 0; height: 0; border-style: solid; border-width: 12px 12px 0 0; border-color: #5eb7e8 transparent transparent transparent; -webkit-transition: border-color .2s; transition: border-color .2s; }

#backnumber .selector .years button:hover, #backnumber .selector .years button:active, #backnumber .selector .years button.current { background-color: #5eb7e8; color: #fff; }

#backnumber .selector .years button:hover::before, #backnumber .selector .years button:active::before, #backnumber .selector .years button.current::before { border-color: #fff transparent transparent transparent; }

#backnumber .selector .years .no_items { width: 100%; padding: 1.5em; opacity: .4; text-align: center; }

@media screen and (max-width: 767px) { #backnumber .selector .years { padding: 3vw; }
  #backnumber .selector .years li { width: 25%; padding: 3px; }
  #backnumber .selector .years button { padding: .7em 0; border: 2px solid #5eb7e8; font-size: 1.6rem; }
  #backnumber .selector .years button::before { left: 2px; top: 2px; }
  #backnumber .selector .years button:hover, #backnumber .selector .years button:active { background-color: #fff; color: #5eb7e8; }
  #backnumber .selector .years button:hover::before, #backnumber .selector .years button:active::before { border-color: #5eb7e8 transparent transparent transparent; }
  #backnumber .selector .years button.current { background-color: #5eb7e8; color: #fff; }
  #backnumber .selector .years button.current::before { border-color: #fff transparent transparent transparent; } }

#backnumber #issues { opacity: 0; -webkit-transition: opacity .15s ease-out; transition: opacity .15s ease-out; }

#backnumber #issues.show { opacity: 1; }

#backnumber .issue { margin-top: 40px; }

#backnumber .issue h2 { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-align: center; -ms-flex-align: center; align-items: center; color: #5eb7e8; font-size: 2.4rem; font-weight: bold; letter-spacing: .03em; }

#backnumber .issue h2 span { display: inline-block; margin-right: 15px; padding: .3em .8em; border-radius: 3px; background-color: #e74291; color: #fff; font-size: 1.6rem; }

#backnumber .issue .maps { display: -webkit-box; display: -ms-flexbox; display: flex; margin-top: 15px; border: 10px solid #cae3f6; }

#backnumber .issue .maps div { position: relative; width: 50%; }

#backnumber .issue .maps div:first-child { border-right: 5px solid #cae3f6; }

#backnumber .issue .maps div:last-child { border-left: 5px solid #cae3f6; }

#backnumber .issue .maps div span { display: block; position: absolute; left: 10px; top: 10px; z-index: 2; width: 5em; padding: 3px 0; border-radius: 3px; background-color: #e74291; color: #fff; font-size: 1.5rem; font-weight: bold; letter-spacing: .6em; text-indent: .6em; text-align: center; }

#backnumber .issue .maps div a { display: block; position: relative; z-index: 1; }

#backnumber .issue .maps div a::after { content: ""; display: block; position: absolute; left: calc(50% - 20px); top: calc(50% - 20px); width: 40px; height: 40px; border-radius: 8px; background-color: rgba(255, 255, 255, 0.8); background-image: url(../img/icon_zoom.svg); background-repeat: no-repeat; background-size: 32px; background-position: 50% 50%; -webkit-transition: background-color .2s; transition: background-color .2s; }

#backnumber .issue .maps div a:hover::after, #backnumber .issue .maps div a:active::after { background-color: white; }

#backnumber .issue .maps div img { width: 100%; }

@media screen and (max-width: 767px) { #backnumber .issue { margin-top: 8vw; }
  #backnumber .issue h2 { display: block; font-size: 6vw; line-height: 1.3; }
  #backnumber .issue h2 span { margin: 0 0 2vw 0; font-size: 1.5rem; }
  #backnumber .issue .maps { display: block; margin-top: 2vw; border: 8px solid #cae3f6; }
  #backnumber .issue .maps div { width: auto; }
  #backnumber .issue .maps div:first-child { border-bottom: 8px solid #cae3f6; border-right-style: none; }
  #backnumber .issue .maps div:last-child { border-left-style: none; }
  #backnumber .issue .maps div span { font-size: 1.4rem; }
  #backnumber .issue .maps div a::after { -webkit-transition: none; transition: none; }
  #backnumber .issue .maps div a:hover::after, #backnumber .issue .maps div a:active::after { background-color: rgba(255, 255, 255, 0.8); } }

/* #backnumber */
/* -------------------------------- present/index -------------------------------- */
#present_index { /* ---- body ---- */ }

#present_index .body_container > ul { display: -webkit-box; display: -ms-flexbox; display: flex; -ms-flex-wrap: wrap; flex-wrap: wrap; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; margin-top: 60px; }

#present_index .body_container > ul li { width: 48%; }

#present_index .body_container > ul li:nth-child(n+3) { margin-top: 4%; }

#present_index .body_container > ul li:nth-child(1) h2 { background-color: #5eb7e8; }

#present_index .body_container > ul li:nth-child(2) h2 { background-color: #fabe00; }

#present_index .body_container > ul li:nth-child(3) h2 { background-color: #00a73c; }

#present_index .body_container > ul li:nth-child(4) h2 { background-color: #e74291; }

#present_index .body_container > ul h2 { position: relative; padding: 12px 20px; color: #fff; font-size: 2rem; font-weight: bold; letter-spacing: .05em; }

#present_index .body_container > ul h2::before { content: ""; display: block; position: absolute; left: 5px; top: 5px; width: 0; height: 0; border-style: solid; border-width: 12px 12px 0 0; border-color: #fff transparent transparent transparent; }

#present_index .body_container > ul h2 span { font-size: 1.4rem; font-weight: normal; }

#present_index .body_container > ul .row { display: -webkit-box; display: -ms-flexbox; display: flex; margin-top: 15px; }

#present_index .body_container > ul .row .img { width: 50%; }

#present_index .body_container > ul .row .txt { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; width: 50%; padding-left: 15px; }

#present_index .body_container > ul .row .txt p { line-height: 1.8; }

#present_index .body_container > ul .row .txt .button { padding-top: 20px; }

@media screen and (max-width: 767px) { #present_index .body_container > ul { display: block; margin-top: 0; }
  #present_index .body_container > ul li { width: auto; margin-top: 8vw; }
  #present_index .body_container > ul li:nth-child(n+3) { margin-top: 8vw; }
  #present_index .body_container > ul h2 { padding: 2.4vw 4vw; font-size: 4vw; }
  #present_index .body_container > ul h2::before { left: 4px; top: 4px; border-width: 3vw 3vw 0 0; }
  #present_index .body_container > ul h2 span { font-size: 1.3rem; }
  #present_index .body_container > ul .row { margin-top: 5vw; }
  #present_index .body_container > ul .row .img { width: 30%; }
  #present_index .body_container > ul .row .txt { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; width: 70%; padding-left: 5vw; }
  #present_index .body_container > ul .row .txt p { line-height: 1.6; }
  #present_index .body_container > ul .row .txt .button { padding-top: 3vw; } }

/* #present_index */
/* -------------------------------- present/article -------------------------------- */
#present_article { /* ---- body ---- */ }

#present_article .body_container h2 { position: relative; padding: 12px 20px; color: #fff; font-size: 2rem; font-weight: bold; letter-spacing: .05em; }

#present_article .body_container h2::before { content: ""; display: block; position: absolute; left: 5px; top: 5px; width: 0; height: 0; border-style: solid; border-width: 12px 12px 0 0; border-color: #fff transparent transparent transparent; }

#present_article .body_container h2.tokyo { background-color: #5eb7e8; }

#present_article .body_container h2.kansai { background-color: #fabe00; }

#present_article .body_container h2.hokkaido { background-color: #00a73c; }

#present_article .body_container h2.kyushu { background-color: #e74291; }

#present_article .body_container h2 span { font-size: 1.4rem; font-weight: normal; }

#present_article .body_container > .row { display: -webkit-box; display: -ms-flexbox; display: flex; margin-top: 60px; }

#present_article .body_container > .row .img { width: 50%; }

#present_article .body_container > .row .txt { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; width: 50%; padding-left: 40px; }

#present_article .body_container > .row .txt p { margin-top: 40px; line-height: 1.8; }

#present_article .body_container > .row .txt .button { padding-top: 40px; text-align: right; }

#present_article .body_container > .row .txt .button a { padding: 1em 5em; text-align: center; }

#present_article .body_container .note { margin-top: 40px; padding: 20px; background-color: #f0f0f0; font-size: 1.4rem; line-height: 1.6; }

#present_article .body_container .back_link { margin-top: 40px; text-align: center; }

@media screen and (max-width: 767px) { #present_article .body_container h2 { padding: 2.4vw 4vw; font-size: 4vw; }
  #present_article .body_container h2::before { left: 4px; top: 4px; border-width: 3vw 3vw 0 0; }
  #present_article .body_container h2 span { font-size: 1.3rem; }
  #present_article .body_container > .row { display: block; margin-top: 8vw; }
  #present_article .body_container > .row .img { width: auto; }
  #present_article .body_container > .row .txt { display: block; width: auto; margin-top: 8vw; padding-left: 0; }
  #present_article .body_container > .row .txt p { margin-top: 5vw; line-height: 1.7; }
  #present_article .body_container > .row .txt .button { padding-top: 8vw; text-align: center; }
  #present_article .body_container > .row .txt .button a { width: 100%; padding: 1em 0; font-size: 1.8rem; text-align: center; }
  #present_article .body_container .note { margin-top: 8vw; padding: 5vw; font-size: 1.3rem; line-height: 1.5; }
  #present_article .body_container .back_link { margin-top: 8vw; } }

/* #present_article */
