@charset "UTF-8";
/* ------------------------------- font -------------------------------- */
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto:wght@500&display=swap");
.en, .telphone { font-family: 'Roboto', sans-serif; font-weight: 500; }

/* -------------------------------
	default
-------------------------------- */
html { font-size: 100%; /* 16px */ }
@media print, screen and (min-width: 992px) { html { font-size: 100%; /* 16px */ } }

body { letter-spacing: 0.05em; }

/* -------------------------------
	アンカーリンク
-------------------------------- */
.anchor { position: relative; z-index: -1; }
@media print, screen and (min-width: 768px) { .anchor { margin-top: -90px; padding-top: 90px; } }

/* -------------------------------
	header
-------------------------------- */
/* 基本サイズ */
#header { width: 100%; position: fixed; left: 0; top: 0; z-index: 1000; }
#header:before { content: ""; position: absolute; left: 0; top: -100%; z-index: -1; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.35); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); transition: all 0.3s ease; }
#header h1 { font-size: 1rem; line-height: normal; padding: 0; margin: 0; }
#header .row-head { display: flex; align-items: center; height: 50px; }
@media print, screen and (min-width: 992px) { #header .row-head { height: 100px; } }
#header .row-head .logo h1 img { height: 25px; }
@media print, screen and (min-width: 992px) { #header .row-head .logo { flex: 0 0 25%; }
  #header .row-head .logo h1 img { height: auto; } }
#header .row-head .head_contents { display: none; }
@media print, screen and (min-width: 992px) { #header .row-head .head_contents { display: flex; flex-wrap: wrap; flex: 0 0 75%; } }
@media print { #header { position: absolute; } }

.head_nav { width: 100%; }
.head_nav > ul { list-style: none; padding: 0; margin: 0; display: flex; justify-content: flex-end; }
.head_nav > ul > li { flex: 0 0 200px; }
.head_nav > ul > li + li { margin-left: 6px; }
.head_nav > ul > li > a { color: #fff; text-decoration: none; width: 100%; height: 50px; display: flex; align-items: center; justify-content: center; border-radius: 0 0 10px 10px; background-color: #014181; transition: background 0.3s ease; }
.head_nav > ul > li > a i { font-size: 1.25em; letter-spacing: normal; margin-right: 10px; }
.head_nav > ul > li > a:hover { background-color: #002142; }
.head_nav > ul > li:nth-child(2) > a { background-color: #00356a; }

@media screen { .fixed-nav #header:before, .side-open #header:before { transform: translateY(100%); } }
/* -------------------------------
	メインメニュー
-------------------------------- */
#gNavi { display: none; }
@media print, screen and (min-width: 992px) { #gNavi { display: block; width: 100%; } }

.list-gnav { list-style: none; padding: 10px 0 0; margin: 0 -1.5em; display: flex; justify-content: flex-end; }
.list-gnav ul { list-style: none; padding: 0; margin: 0; }
.list-gnav a { text-decoration: none; }
.list-gnav > li { padding: 0 1.5em; }
.list-gnav > li > a { color: #fff; line-height: 2; height: 40px; display: block; position: relative; }
.list-gnav > li > a:after { content: ''; position: absolute; bottom: .5em; left: 0; width: 100%; height: 2px; transform: scaleX(0); background-color: #fff; transition: transform .3s ease, visibility .3s ease; visibility: hidden; }
.list-gnav > li > a:hover:after, .list-gnav > li.active > a:after { transform: scaleX(1); visibility: visible; }

/* サブメニュー */
.list-gnav > li > ul, .list-gnav > li > div { display: none; }

.list-gnav > li.child { position: relative; }
.list-gnav > li.child > ul { font-size: 0.9375rem; letter-spacing: normal; position: absolute; left: 0; min-width: 100%; padding: 0; white-space: nowrap; }
.list-gnav > li.child > ul > li { padding-top: 1px; }
.list-gnav > li.child > ul > li > a { color: #fff; display: block; padding: 0.75em 1.5em; background-color: rgba(1, 65, 129, 0.55); transition: color 0.3s ease, background 0.3s ease; }
.list-gnav > li.child > ul > li > a:hover, .list-gnav > li.child > ul > li.active > a { color: #fff; background-color: #014181; }

/* -------------------------------
	サイドメニュー
-------------------------------- */
#sidebar { color: #fff; position: fixed; top: 0; bottom: 0; padding-top: 50px; left: -280px; width: 280px; text-align: left; background-color: #1c66b0; transition: transform 0.5s ease; overflow-y: auto; z-index: 800; }
.side-open #sidebar { transform: translate3d(100%, 0, 0); }
@media print, screen and (min-width: 992px) { #sidebar { display: none !important; } }
#sidebar ul { list-style: none; padding: 0; margin: 0; }
#sidebar a { text-decoration: none; }
#sidebar .list-sidenav { font-size: 14px; letter-spacing: normal; width: 100%; padding: 20px 10px; }
#sidebar .list-sidenav > li { text-align: left; }
#sidebar .list-sidenav > li > a { color: #fff; line-height: 1.5; display: block; padding: 1em 2em 1em 1em; border-radius: 5px; position: relative; }
#sidebar .list-sidenav > li > a:after { content: "\f105"; font-family: 'Font Awesome 6 Free'; font-weight: 900; line-height: 1; font-size: 12px; position: absolute; right: 1em; top: 50%; margin-top: -.5em; }
#sidebar .list-sidenav > li.active > a, #sidebar .list-sidenav > li > a:hover { color: #1c66b0; background-color: #fff; }

/*  下層メニュー */
#sidebar .list-sidenav li > ul { display: none; }

#sidebar .list-sidenav .child { position: relative; }
#sidebar .list-sidenav .child > a:after { display: none; }
#sidebar .list-sidenav .child > ul { background-color: #fff; }
#sidebar .list-sidenav .child > ul > li { position: relative; }
#sidebar .list-sidenav .child > ul > li > a { color: #333; font-size: 0.875em; padding: 0.65em 2em 0.65em 1.3em; display: block; background-color: #fff; position: relative; }
#sidebar .list-sidenav .child > ul > li > a:before { content: "\f0da"; font-family: 'Font Awesome 5 Free'; font-weight: 900; line-height: 1; position: absolute; right: 1rem; top: 50%; margin-top: -.5em; }
#sidebar .list-sidenav .child > ul > li.active > a, #sidebar .list-sidenav .child > ul > li > a:hover { background-color: #ddd; }

/* 下層メニュー用ボタン */
#sidebar .list-sidenav .child .mean-expand { position: absolute; right: 5px; top: 0.25em; width: 32px; height: 32px; background-color: #000; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
#sidebar .list-sidenav .child .mean-expand:before, #sidebar .list-sidenav .child .mean-expand:after { content: ""; display: block; position: absolute; top: 0; bottom: 0; left: 0; right: 0; width: 14px; height: 2px; margin: auto; background: #fff; transition: transform 0.3s ease; }
#sidebar .list-sidenav .child .mean-expand:after { transform: rotate(90deg); }
#sidebar .list-sidenav .child.open .mean-expand:before { transform: rotate(360deg); }
#sidebar .list-sidenav .child.open .mean-expand:after { transform: rotate(0deg); }

/* -------------------------------
	半透明
-------------------------------- */
.overlay { content: ''; visibility: hidden; position: fixed; top: 0; left: 0; display: block; width: 100%; height: 100%; background: transparent; -webkit-transition: all 0.5s ease; transition: all 0.5s ease; z-index: 3; }
.side-open .overlay { visibility: visible; cursor: pointer; background: rgba(0, 0, 0, 0.7); }
@media screen and (min-width: 992px) { .overlay { display: none; } }

/* -------------------------------
	三本線
-------------------------------- */
.menuWrapper { position: fixed; right: 0; top: 0; width: 50px; height: 50px; transform: translate3d(0, 0, 0); z-index: 9999; }
@media print, screen and (min-width: 992px) { .menuWrapper { display: none; } }

#menuButton { overflow: hidden; display: block; position: absolute; z-index: 0; width: 100%; height: 100%; cursor: pointer; }
#menuButton span, #menuButton:before, #menuButton:after { display: block; position: absolute; top: -10px; bottom: 0; left: 0; right: 0; width: 30px; height: 3px; margin: auto; background: #fff; }
#menuButton span { overflow: hidden; z-index: 1; color: #fff; }
#menuButton:before { z-index: 2; transform: translate(0, -9px); content: ""; }
#menuButton:after { z-index: 2; transform: translate(0, 9px); content: ""; }
#menuButton small { position: absolute; left: 0; bottom: 3px; width: 100%; color: #fff; font-size: 10px; line-height: 1.2; letter-spacing: normal; text-align: center; display: block; }

/* アニメーション */
#menuButton span { opacity: 1; transition: opacity 150ms 50ms; }
#menuButton::before, #menuButton::after { transition: transform 200ms; }
.side-open #menuButton span { opacity: 0; transition: opacity 150ms; }
.side-open #menuButton::before { transform: rotate(45deg); }
.side-open #menuButton::after { transform: rotate(-45deg); }

/* -------------------------------
	footer
-------------------------------- */
#footer { color: #fff; font-size: 0.9375rem; padding: 30px 0; padding: clamp(30px, 6.66667vw, 80px) 0; background: #000 url("../images/common/footer_bg.jpg") no-repeat center center/cover; page-break-inside: avoid; }
#footer .left_content { text-align: center; }
@media print, screen and (min-width: 992px) { #footer .left_content { text-align: left; } }
#footer .left_content h2 { font-size: 1rem; margin-bottom: 40px; padding: 0 15%; }
@media print, screen and (min-width: 992px) { #footer .left_content h2 { padding: 0; } }
#footer .left_content .ttl { color: #fff; font-weight: 700; font-size: 13px; line-height: 1.84616; margin: 0 0 .5em; }
#footer .left_content .ttl .in { text-align: center; width: 120px; border-radius: 10em; display: inline-block; background-color: #1c66b0; }
#footer .left_content .ttl + p { margin-top: 0; }
#footer .left_content p small { font-size: 0.86667em; }
#footer .left_content p a { color: #fff; text-decoration: none; transition: opacity 0.3s ease; }
#footer .left_content p a:hover { opacity: 0.65; }
#footer .right_content { height: 100%; display: flex; flex-direction: column; }
#footer .right_content .copyright { font-size: 13px; text-align: center; margin-top: auto; padding-top: 40px; }
@media print, screen and (min-width: 992px) { #footer .right_content .copyright { text-align: right; } }

.fnavi { display: none; }
@media print, screen and (min-width: 768px) { .fnavi { display: flex; justify-content: center; margin: 40px -20px 0; }
  .fnavi > .box { padding: 0 20px; }
  .fnavi > .box > ul { line-height: 2; list-style: none; padding: 0; margin: 0; }
  .fnavi > .box > ul > li + li { margin-top: 10px; }
  .fnavi > .box > ul > li > a { color: #fff; text-decoration: none; position: relative; }
  .fnavi > .box > ul > li > a:after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 1px; transform: scaleX(0); transform-origin: left bottom; background-color: #fff; transition: transform .3s ease, visibility .3s ease; visibility: hidden; }
  .fnavi > .box > ul > li > a:hover:after { transform: scaleX(1); visibility: visible; } }
@media print, screen and (min-width: 992px) { .fnavi { justify-content: flex-end; margin-top: 0; } }

/* -------------------------------
	main
-------------------------------- */
#wrapper { overflow: hidden; }

/* -------------------------------
	main title
-------------------------------- */
.main_ttl { height: calc(200px + 300 * (100vw - 320px) / 880); display: flex; align-items: flex-end; padding-top: 50px; position: relative; z-index: 0; }
.main_ttl .bg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; z-index: -1; }
.main_ttl .bg:before, .main_ttl .bg:after { content: ""; position: absolute; left: 0; top: 0; height: 100%; mix-blend-mode: multiply; }
.main_ttl .bg:before { width: 80%; background: linear-gradient(to top left, rgba(255, 255, 255, 0) 50%, #1b64ae 50.1%) no-repeat top left/100% 100%; opacity: 0.6; }
.main_ttl .bg:after { width: 100%; background: linear-gradient(to bottom left, rgba(255, 255, 255, 0) 50%, #1b64ae 50.1%) no-repeat top left/100% 100%; opacity: 0.8; }
.main_ttl .bg img { max-width: inherit; width: 100%; height: 100%; object-fit: cover; }
@media print, screen and (min-width: 992px) { .main_ttl { padding-top: 100px; } }
@media print, screen and (min-width: 1200px) { .main_ttl { height: 500px; } }
.main_ttl h2 { color: #fff; font-size: calc(35px + 35 * (100vw - 320px) / 880); line-height: 1.5; margin: 0 0 1em; }
.main_ttl h2 > .en { font-size: 1em; line-height: 1; letter-spacing: normal; text-transform: uppercase; display: block; }
.main_ttl h2 > .txt { font-size: calc(15px + 5 * (100vw - 320px) / 880); display: block; margin-top: .5em; }
@media print, screen and (min-width: 1200px) { .main_ttl h2 { font-size: 70px; }
  .main_ttl h2 > .txt { font-size: 20px; } }

/* -------------------------------
	pagetop
-------------------------------- */
#pagetop { position: fixed; right: 20px; bottom: 20px; opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s ease; z-index: 10; }
#pagetop.is-active { opacity: 1; visibility: visible; }
@media (max-width: 767px) { #pagetop { right: 0; bottom: 0; }
  #pagetop img { width: 40px; } }

/* -------------------------------
	電話番号
-------------------------------- */
.telphone { line-height: normal; letter-spacing: normal; }
.telphone small { font-size: 0.8333em; }
.telphone i { font-size: 0.8333em; }
.telphone a { text-decoration: underline; }
.telphone a:hover { text-decoration: none; }

a.tel_link { color: inherit; }

/* -------------------------------
	スクロールバー
-------------------------------- */
div { scrollbar-color: #949494 #eeeeee; scrollbar-width: thin; }

div::-webkit-scrollbar { width: 5px; height: 5px; }

div::-webkit-scrollbar-track { background: #eeeeee; }

div::-webkit-scrollbar-thumb { background: #949494; }

/* ---  --- */
@media screen { .amn-hh-1 .en { opacity: 0; }
  .amn-hh-1 .en > span { display: inline-block; opacity: 0; transform: translateY(0.5em); }
  .amn-hh-1.is-active .en { opacity: 1; }
  .amn-hh-1.is-active .en > span { animation: key-amn-hh-1 0.5s cubic-bezier(0.21, 0.84, 0.61, 1.38) alternate forwards; } }
@keyframes key-amn-hh-1 { from { opacity: 0; transform: translateY(0.5em); }
  100% { opacity: 1; transform: translateY(0); } }
/* ---  --- */
@media screen { .js-row-1 > div { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease, transform 0.8s ease; will-change: opacity, transform; }
  .js-row-1 > div.show { opacity: 1; transform: translateY(0); } }
/* -------------------------------
	シャッター　pattern02
-------------------------------- */
@media screen { .shutter2 { position: relative; z-index: 0; }
  .shutter2 .shutter__element { position: absolute; left: 0; top: 0; width: 100%; height: 100%; background-color: #1c66b0; z-index: 10; transform: scale(0, 1); }
  .shutter2 .shutter__contents { opacity: 0; height: 100%; }
  .shutter2.shutter_lr.is-active .shutter__element { animation: shutter2_lr_1 0.5s cubic-bezier(0.62, 0, 0.46, 1.01) 0s alternate forwards, shutter2_lr_2 0.5s cubic-bezier(0.62, 0, 0.46, 1.01) 0.7s alternate forwards; }
  .shutter2.shutter_lr.is-active .shutter__contents { animation: shutter2_contents 0s ease 0.6s alternate forwards; }
  .shutter2.shutter_rl.is-active .shutter__element { animation: shutter2_rl_1 0.5s cubic-bezier(0.62, 0, 0.46, 1.01) 0s alternate forwards, shutter2_rl_2 0.5s cubic-bezier(0.62, 0, 0.46, 1.01) 0.7s alternate forwards; }
  .shutter2.shutter_rl.is-active .shutter__contents { animation: shutter2_contents 0s ease .6s alternate forwards; } }
@keyframes shutter2_lr_1 { from { transform: scale(0, 1); transform-origin: left top; }
  100% { transform: scale(1, 1); transform-origin: left top; } }
@keyframes shutter2_lr_2 { from { transform: scale(1, 1); transform-origin: right top; }
  100% { transform: scale(0, 1); transform-origin: right top; } }
@keyframes shutter2_rl_1 { from { transform: scale(0, 1); transform-origin: right top; }
  100% { transform: scale(1, 1); transform-origin: right top; } }
@keyframes shutter2_rl_2 { from { transform: scale(1, 1); transform-origin: left top; }
  100% { transform: scale(0, 1); transform-origin: left top; } }
@keyframes shutter2_contents { from { opacity: 0; }
  100% { opacity: 1; } }
/* 印刷用 */
@page { margin: 10mm 4mm 10mm 4mm; }
@media print { body { min-width: 1500px !important; }
  .container { min-width: 1200px !important; }
  .row { overflow: visible !important; }
  [class^="col"], [class*=" col"], [class^="col-"], [class*=" col-"] { page-break-inside: avoid; }
  #pagetop { opacity: 0; visibility: hidden; }
  .page-break { page-break-inside: avoid; } }
/* firefox　ハック */
@-moz-document url-prefix() { @page { margin: auto; } }

/*# sourceMappingURL=screen.css.map */
