@charset "UTF-8";
/*webフォント読み込み*/
@font-face { /*NotoSansJP-Regular*/
font-family: 'Noto Sans JP'; src: url("../fonts/NotoSansJP-Regular.otf"); src: url("../fonts/NotoSansJP-Regular.woff2") format("woff2"), url("../fonts/NotoSansJP-Regular.woff") format("woff"), url("../fonts/NotoSansJP-Regular.otf") format("truetype"); font-weight: 400; }
@font-face { /*NotoSansJP-Medium*/
font-family: 'Noto Sans JP'; src: url("../fonts/NotoSansJP-Medium.otf"); src: url("../fonts/NotoSansJP-Medium.woff2") format("woff2"), url("../fonts/NotoSansJP-Medium.woff") format("woff"), url("../fonts/NotoSansJP-Medium.otf") format("truetype"); font-weight: 500; }
@font-face { /*notosansボールド*/
font-family: 'Noto Sans JP'; src: url("../fonts/NotoSansJP-Bold.otf"); src: url("../fonts/NotoSansJP-Bold.woff2") format("woff2"), url("../fonts/NotoSansJP-Bold.woff") format("woff"), url("../fonts/NotoSansJP-Bold.otf") format("truetype"); font-weight: 700; }
@font-face { /*Roboto-Regular*/
font-family: 'robo'; src: url("../fonts/Roboto-Regular.ttf"); src: url("../fonts/Roboto-Regular.woff2") format("woff2"), url("../fonts/Roboto-Regular.woff") format("woff"), url("../fonts/Roboto-Regular.ttf") format("truetype"); font-weight: 400; }
@font-face { /*Roboto-Medium*/
font-family: 'robo'; src: url("../fonts/Roboto-Medium.ttf"); src: url("../fonts/Roboto-Medium.woff2") format("woff2"), url("../fonts/Roboto-Medium.woff") format("woff"), url("../fonts/Roboto-Medium.ttf") format("truetype"); font-weight: 500; }
@font-face { /*Roboto-Bold*/
font-family: 'robo'; src: url("../fonts/Roboto-Bold.ttf"); src: url("../fonts/Roboto-Bold.woff2") format("woff2"), url("../fonts/Roboto-Bold.woff") format("woff"), url("../fonts/Roboto-Bold.ttf") format("truetype"); font-weight: 700; }
/* Link
=========================================== */
a:link, a:visited { color: #1C1C1C; text-decoration: none; }

a:hover, a:active { color: #1C1C1C; text-decoration: underline; }

a { outline: none; transition: 0.3s; color: #1C1C1C; text-decoration: none; letter-spacing: 0; }

a img { transition: 0.3s; }

a:hover img { opacity: 0.7; }

:focus { outline: none; }

/* 共通設定
=========================================== */
html.loght { margin-top: 0 !important; }

html.showPage, html.showPage body { min-width: 1200px; }

html.showPage body { padding-top: max(60px, 4.166vw); }

body { background: #fff; color: #1C1C1C; font-size: 16px; line-height: 2; font-family: YakuHanJP,'Noto Sans JP',"メイリオ","Mayryo ","ヒラギノ角ゴ Pro W3","ＭＳ Ｐゴシック","MS PGothic",sans-serif; font-style: normal; font-weight: 500; overflow-wrap: anywhere; /* 収まらない場合に折り返す */ word-break: normal; /* 単語の分割はデフォルトに依存 */ line-break: strict; /* 禁則処理を厳格に適用 */ }

h1, h2, h3, h4, h5, h6 { line-height: 1.5; font-weight: 700; letter-spacing: 0; }

body#tinymce { min-width: inherit !important; }

input, select, textarea { font-family: YakuHanJP,'Noto Sans JP',"メイリオ","Mayryo ","ヒラギノ角ゴ Pro W3","ＭＳ Ｐゴシック","MS PGothic",sans-serif; font-weight: 500; color: #000000; letter-spacing: 0; }

.wrap { width: 1100px; margin: 0 auto; position: relative; }

table { width: 100%; }

img { max-width: 100%; height: auto; }

.no-pc { display: inline-block; pointer-events: none; text-decoration: none !important; }

div#f-trigger { opacity: 0; position: absolute; left: 0; top: 90px; z-index: -20; }

/*共通見出し設定*/
.titles01 { margin-bottom: 24px; }
.titles01 .jp { display: block; font-weight: 700; font-size: 18px; line-height: 1.6; }
.titles01 .jp > span { display: inline-block; padding-left: 18px; background: url("../img/common/tit-ico01.svg") no-repeat left top 4px; }
.titles01 .en { display: block; font-size: 80px; letter-spacing: 0.04em; font-weight: 400; font-family: "robo"; line-height: 1.3; color: #00428B; }

.titles02 { margin-bottom: 30px; }
.titles02 .jp { display: block; font-weight: 600; font-size: 16px; line-height: 1.6; }
.titles02 .en { display: block; font-size: 40px; letter-spacing: 0.04em; font-weight: 400; font-family: "robo"; line-height: 1.3; }

.titles03 { font-size: 38px; font-weight: 700; line-height: 1.5; margin-bottom: 35px; }

.titles04 { font-size: 28px; color: #00428B; font-weight: 700; padding-left: 32px; background: url("../img/common/tit-ico04.svg") no-repeat left top 15px; line-height: 1.5; margin-bottom: 20px; }

/*共通ボタン設定*/
.btn01 { width: 350px; transition: 0.3s; height: 77px; margin: 0 auto; display: table; }
.btn01 a { display: table-cell; text-align: center; vertical-align: middle; position: relative; text-decoration: none; color: #fff; font-size: 16px; line-height: 22px; text-align: center; border-radius: 40px; font-weight: 700; box-sizing: border-box; background: linear-gradient(125deg, #007492 0%, #004798 100%); box-shadow: 0 0 16px rgba(0, 0, 0, 0.08); }
.btn01 a span.text { position: relative; z-index: 2; color: #000000; }
.btn01 a span.arrow-h { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); z-index: 2; }
.btn01 a:before { content: ""; transition: 0.3s; position: absolute; left: -1px; top: -1px; z-index: 1; width: calc(100% + 2px); height: calc(100% + 2px); border-radius: 38px; background: #fff; }
.btn01 a:hover { box-shadow: 0 0 0 rgba(0, 0, 0, 0.08); }
.btn01 a:hover span.text { color: #fff; }
.btn01 a:hover:before { opacity: 0; }

span.arrow-h { width: 32px; height: 32px; display: flex; flex-wrap: wrap; border-radius: 100%; justify-content: center; align-items: center; position: relative; overflow: hidden; }
span.arrow-h img { display: block; position: relative; z-index: 2; transition: 0.3s; right: 0; }

span.arrow-h:before { content: ""; background: linear-gradient(180deg, #007492 0%, #004798 100%); transition: 0.3s; width: 100%; height: 100%; border-radius: 100%; position: absolute; left: 0; top: 0; }

a:hover span.arrow-h { background: #fff; }
a:hover span.arrow-h img { right: -30px; }
a:hover span.arrow-h:before { transform: scale(0.25); }

/*グラデーション*/
.gra-bg { display: inline-block; padding: 5px 12px; background: linear-gradient(120deg, #D80000 0%, #D80000 20%, #D85E00 100%); color: #fff; border-radius: 10px; }

.gra-text { background: linear-gradient(180deg, #D80000 0%, #D85E00 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; display: inline-block; }

/*スライダー　ふわっ*/
div#mv-slider, div.slider01, div.gallery-main, div.gallery-thumbs, div.belt-slider { opacity: 0; transition: opacity .3s linear; }

div#mv-slider.slick-initialized, div.slider01.slick-initialized, div.gallery-main.slick-initialized, div.gallery-thumbs.slick-initialized, div.belt-slider.slick-initialized { opacity: 1; }

/*font*/
.robo { font-family: 'robo'; }

.num { font-family: 'robo'; }

/* header */
/*-------------------------------------------*/
#header { width: 100%; z-index: 100; height: max(60px, 4.166vw); background: #fff; }

#header { position: fixed; transition: 0.3s; left: 0; top: 0; z-index: 100; align-items: center; }

div.head-inner.flex { box-sizing: border-box; position: relative; padding-right: 2.08vw; align-items: center; padding: 0 1.04vw; height: max(60px, 4.166vw); }
div.head-inner.flex > .logo { width: max(300px, 25.41vw); }
div.head-inner.flex > .logo a { display: block; text-decoration: none; }
div.head-inner.flex > .center { margin-left: auto; margin-right: 1.04vw; }

ul.sub-nav.flex { justify-content: flex-end; font-size: max(11px, 0.78vw); margin-bottom: max(7px, 0.41vw); }
ul.sub-nav.flex > li { margin-left: max(10px, 1.041vw); line-height: max(11px, 1.25vw); }
ul.sub-nav.flex > li a:hover { color: #00428B; text-decoration: none; }

.contact-btn { width: 12.5vw; }
.contact-btn a { position: relative; text-decoration: none; border-radius: 3.125vw; height: 3.125vw; display: block; border: solid 1px #004992; background: #fff; color: #fff; padding-top: 0.4vw; box-sizing: border-box; }
.contact-btn a .line01.flex { position: relative; z-index: 2; justify-content: center; font-size: 0.9375vw; font-weight: 700; align-items: center; line-height: 1.2; }
.contact-btn a .line01.flex span.ico { margin-right: 0.41vw; position: relative; top: 0.1vw; width: 1.041vw; }
.contact-btn a .line01.flex span.ico img { display: block; transition: 0.3s; opacity: 1; filter: brightness(0) saturate(100%) invert(100%) sepia(99%) saturate(0%) hue-rotate(96deg) brightness(110%) contrast(100%); }
.contact-btn a .line02 { position: relative; z-index: 2; text-align: center; flex-flow: 500; font-size: 0.67vw; }
.contact-btn a:before { content: ""; width: calc(100% + 2px); height: calc(100% + 2px); position: absolute; left: -1px; top: -1px; border-radius: 1.5vw; z-index: 1; background: linear-gradient(305deg, #007492 0%, #004798 100%); transition: 0.3s; }
.contact-btn a:hover:before { opacity: 0; }
.contact-btn a:hover { color: #00428B; }
.contact-btn a:hover .line01.flex span.ico img { filter: brightness(0) saturate(100%) invert(12%) sepia(97%) saturate(4029%) hue-rotate(199deg) brightness(84%) contrast(108%); }

div.gnav ul.flex > li.drop { cursor: pointer; }
div.gnav ul.flex > li { margin-left: 1.041vw; line-height: 1.25vw; position: relative; }
div.gnav ul.flex > li > a { text-decoration: none; display: block; font-size: max(12px, 0.83vw); position: relative; font-weight: 700; }
div.gnav ul.flex > li > a:hover { color: #00428B; }
div.gnav ul.flex > li > .dr-tit { transition: 0.3s; font-weight: 500; display: flex; flex-wrap: wrap; align-items: center; font-size: 0.78vw; }
div.gnav ul.flex > li > .dr-tit .arrow { margin-left: 0.26vw; transition: 0.3s; }
div.gnav ul.flex > li > .dr-tit .arrow img { display: block; width: 0.41vw; }
div.gnav ul.flex > li > .dr-tit span.lens { margin-left: 0.3125vw; display: flex; flex-wrap: wrap; justify-content: center; align-items: center; border-radius: 100%; width: 0.833vw; height: 0.833vw; background: #9C801A; }
div.gnav ul.flex > li > .dr-tit span.lens img { display: block; width: 0.41vw; }
div.gnav ul.flex > li:hover > .dr-tit { color: #9C801A; }
div.gnav ul.flex > li:hover > .dr-tit .arrow { transform: rotateZ(-180deg); }
div.gnav ul.flex > li:first-child { margin-left: 0; }

.drop-wrap { width: 13.64vw; background: #fff; position: absolute; top: calc(100% + 1.04vw); left: 50%; transform: translateX(-50%); z-index: 10; height: 0; overflow: hidden; transition: 0.3s; padding: 0 1.04vw; box-sizing: border-box; }

.drop-wrap:before { content: ""; width: 0; height: 0; border-bottom: solid 0.52vw #fff; border-left: solid 0.46vw transparent; border-right: solid 0.46vw transparent; position: absolute; left: 0; right: 0; bottom: 100%; margin: 0 auto; }

li.nav01 .drop-wrap { width: 24.06vw; padding: 0 2.08vw; }
li.nav01 .drop01-in.flex .titles01 { font-size: 0.83vw; margin-right: 1.82vw; }
li.nav01 .drop01-in.flex .titles01 > span { padding-right: 0.52vw; }
li.nav01 .drop01-in.flex .titles01 > span:before { width: min(0.052vw, 1px); height: 100%; top: 0; }
li.nav01 .drop01-in.flex ul.arrow-list { margin-right: 1.5625vw; }
li.nav01 .drop01-in.flex ul.arrow-list > li { line-height: 1.14vw; margin-bottom: 0.3125vw; font-size: 0.729vw; }
li.nav01 .drop01-in.flex ul.arrow-list > li a { display: inline-block; padding-left: 1.041vw; background: url("../img/common/ul-arrow.svg") no-repeat left top 0.26vw; background-size: 0.67vw; }
li.nav01 .drop01-in.flex ul.arrow-list > li:last-child { margin-bottom: 0; }
li.nav01 .drop01-in.flex ul.arrow-list:last-child { margin-right: 0; }

ul.arrow-list > li { line-height: 22px; margin-bottom: 6px; font-size: 14px; }
ul.arrow-list > li a { display: inline-block; padding-left: 20px; background: url("../img/common/ul-arrow.svg") no-repeat left top 5px; }
ul.arrow-list > li:last-child { margin-bottom: 0; }

/*スクロール追従*/
.fixed div#header { box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); }

/*パンくず*/
/*-------------------------------------------*/
div#bread { z-index: 2; position: relative; padding: 5px 0; }

#bread ul li { display: inline-block; font-size: 13px; font-weight: 500; color: #000000; }

ul.bread-list li a { font-size: 13px; color: #000000; }

ul.bread-list li:after { content: "＞"; margin-left: 10px; margin-right: 5px; display: inline-block; position: relative; }

ul.bread-list li:last-child:after { content: none; }

/* メインビジュアル */
/*-------------------------------------------*/
/*TOPページ*/
div#mv { position: relative; z-index: 3; letter-spacing: 0; }

/*下層ページ*/
/* contents */
/*-------------------------------------------*/
.bg-blue { background: #F5F9FF; }

/* footer */
/*-------------------------------------------*/
div#footer { background: #1E1E1E; padding: 140px 0 0; color: #fff; }

div#ftBox01 { position: relative; padding-bottom: 140px; }
div#ftBox01 .titles02 a { text-decoration: none; }
div#ftBox01 .titles02 a:hover { opacity: 0.7; }

div#fnav .titles02 { border-bottom: solid 1px #2B2B2B; padding-bottom: 30px; }
div#fnav > div { margin-left: 48px; }
div#fnav > div a { color: #fff; text-decoration: none; }
div#fnav > div a:hover { opacity: 0.7; }
div#fnav > div:first-child { margin-left: 0; }
div#fnav > div:last-child { margin-left: auto; }

ul.ft-sub { line-height: 1.6; font-weight: 500; }
ul.ft-sub > li { margin-bottom: 16px; }
ul.ft-sub > li:last-child { margin-bottom: 0; }

div.ft-bottom { background: #161616; padding: 30px 0; }
div.ft-bottom .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; }

ul.pp-list { display: flex; flex-wrap: wrap; align-items: center; }
ul.pp-list > li { font-size: 13px; font-weight: 500; margin-right: 40px; }
ul.pp-list > li a { color: #fff; text-decoration: none; }
ul.pp-list > li a:hover { opacity: 0.7; }
ul.pp-list > li:last-child { margin-right: 0; }

.copyright { font-size: 13px; }

/* TOPへ戻る */
/*-------------------------------------------*/
div#top-link { position: absolute; left: 0; top: 80px; opacity: 0; z-index: -20; }

div#page-top { width: 100%; max-width: 1100px; margin: 0 auto; position: relative; text-align: right; }
div#page-top a { display: inline-block; }
div#page-top a img { display: block; }
div#page-top a:hover { opacity: 0.7; }

div#page-top:before { content: ""; width: calc(100% - 96px); height: 1px; background: #A17474; position: absolute; left: 0; top: 50%; }

/* OTHER
=========================================== */
.tright { text-align: right; }

.tleft { text-align: left; }

.tcenter { text-align: center; }

.flL { float: left; }

.flR { float: right; }

.bold { font-weight: bold; }

.inb { display: inline-block; }

.block { display: block; }

.red { color: #E30606; }

.blue { color: #0075A4; }

.blue02 { color: #0093D6; }

.yellow { color: #FFD400; }

.orange { color: #EE5A35; }

.green { color: #087F82; }

.d-green { color: #005E4B; }

.green02 { color: #01A9AE; }

.navy { color: #374b8e; }

.pink { color: #ff7373; }

.gray { color: #818181; }

.sp { display: none !important; }
