@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+Antique:wght@400;500;700&family=Zen+Old+Mincho:wght@500;600;700&family=Libre+Baskerville&family=Jost:wght@500&display=swap');

/*------------------------------------------------------

	リセット

------------------------------------------------------*/

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, small, strong, 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;
	font-size: 100%;
	font-style: normal;
  font-weight: 400;
	vertical-align: baseline;
	background: transparent;
}
body { line-height: 1;}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block;}
ul { list-style: none;}
blockquote, q { quotes: none;}
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none;}
a {
	margin: 0;
	padding: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
}
table { border-collapse: collapse; border-spacing: 0;}
hr {
	display: block;
	height: 1px;
	border: 0;
	border-bottom: 1px dotted #464646;
	margin: 0;
	padding: 0;
}
input, select { vertical-align: middle;}
img {
	max-width: 100%;
	height: auto;
	border: none;
	vertical-align: top;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	image-rendering: auto;
}
*, *:before, *:after { box-sizing: border-box;}


/*------------------------------------------------------

	グローバル

------------------------------------------------------*/

body {
	font-family: "Zen Kaku Gothic Antique", sans-serif;
	color: #14171A;
	font-size: 1em;
	line-height: 1.75;
	position: relative;
}

.fo_mincho { font-family: "Zen Old Mincho", serif;}
.fo_libre { font-family: "Libre Baskerville", serif;}
.fo_jost { font-family: "Jost", sans-serif;}

.medium { font-weight: 500;}
.semi { font-weight: 600;}
.bold { font-weight: 700;}

p { margin-bottom: 30px;}
p:last-child { margin-bottom: 0px;}

a { color: #14171A; text-decoration: none;}
a:hover { color: #153888;}

/* 文字装飾 */
.fo06 { font-size: 0.6em !important;}
.fo07 { font-size: 0.7em !important;}
.fo075 { font-size: 0.75em !important;}
.fo08 { font-size: 0.8em !important;}
.fo085 { font-size: 0.85em !important;}
.fo09 { font-size: 0.9em !important;}
.fo095 { font-size: 0.95em !important;}
.fo105 { font-size: 1.05em !important;}
.fo11 { font-size: 1.1em !important;}
.fo115 { font-size: 1.15em !important;}
.fo12 { font-size: 1.2em !important;}
.fo125 { font-size: 1.25em !important;}
.fo13 { font-size: 1.3em !important;}
.fo14 { font-size: 1.4em !important;}
.fo15 { font-size: 1.5em !important;}
.fo16 { font-size: 1.6em !important;}
.fo17 { font-size: 1.7em !important;}
.fo18 { font-size: 1.8em !important;}
.fo19 { font-size: 1.9em !important;}
.fo20 { font-size: 2em !important;}

.lh12 { line-height: 1.2 !important;}
.lh14 { line-height: 1.4 !important;}
.lh16 { line-height: 1.6 !important;}
.lh18 { line-height: 1.8 !important;}
.lh20 { line-height: 2 !important;}
.lh23 { line-height: 2.3 !important;}

.fo_white { color: #FFFFFF !important;}
.fo_blue { color: #153888 !important;}
.fo_gray { color: #B8B8B8 !important;}

.ls005 { letter-spacing: 0.05em;}
.ls01 { letter-spacing: 0.1em;}
.ls02 { letter-spacing: 0.2em;}

/* ボックス */
.cont900 { max-width: 930px; padding: 0px 15px; margin: 0px auto;}
.cont1000 { max-width: 1030px; padding: 0px 15px; margin: 0px auto;}
.cont1100 { max-width: 1130px; padding: 0px 15px; margin: 0px auto;}
.cont1200 { max-width: 1230px; padding: 0px 15px; margin: 0px auto;}

@media only screen and (max-width: 1133px) and (min-width: 744px) {
  .cont1000.blog_content, .his_bnr.cont1000, .flow_sec02 .cont900, .con_sec03.cont1000 { padding: 0 25px;}
  .his_bg .cont1000, .flow_sec01.cont1200 { padding: 0 20px;}
  
  .flow_sec02 br.hidden_s { display: none !important;}
  
  .blog_bg { padding: 100px 10px 1px !important;}
}

.left { float: left;}
.right { float: right;}

.pos_rel { position: relative;}
.pos_ab { position: absolute;}

.z50 { z-index: 50;}
.z-1 { z-index: -1;}

.img_middle { vertical-align: middle;}

.ta_center { text-align: center;}
.ta_right { text-align: right;}
.ta_left { text-align: left;}
.ta_right-s_center { text-align: right;}
.ta_left-s_center { text-align: left;}
.ta_center-s_left { text-align: center;}

.back_white { background-color: #fff !important;}

@media print,  (min-width: 769px) {
	.hidden_l { display: none !important;}
}

/* リスト */
ol { padding-left: 2em;}
ol li { list-style: outside decimal;}

.list_disc { padding-left: 1em;}
.list_disc li { list-style: outside disc;}

.list_indent { padding-left: 1em;}
.list_indent li { text-indent: -1em;}

/* margin */
.mb00 { margin-bottom: 0px !important;}
.mb05 { margin-bottom: 5px !important;}
.mb10 { margin-bottom: 10px !important;}
.mb15 { margin-bottom: 15px !important;}
.mb20 { margin-bottom: 20px !important;}
.mb25 { margin-bottom: 25px !important;}
.mb30 { margin-bottom: 30px !important;}
.mb40 { margin-bottom: 40px !important;}
.mb50 { margin-bottom: 50px !important;}
.mb60 { margin-bottom: 60px !important;}
.mb80 { margin-bottom: 80px !important;}
.mb100 { margin-bottom: 100px !important;}

.mb40-20 { margin-bottom: 40px !important;}
.mb50-30 { margin-bottom: 50px !important;}
.mb60-30 { margin-bottom: 60px !important;}
.mb80-40 { margin-bottom: 80px !important;}
.mb100-60 { margin-bottom: 100px !important;}
.mb120-60 { margin-bottom: 120px !important;}
.mb120-80 { margin-bottom: 120px !important;}
.mb160-80 { margin-bottom: 160px !important;}

.mt10 { margin-top: 10px !important;}
.mt20 { margin-top: 20px !important;}
.mt30 { margin-top: 30px !important;}
.mt40 { margin-top: 40px !important;}
.mt50 { margin-top: 50px !important;}
.mt60 { margin-top: 60px !important;}
.mt70 { margin-top: 70px !important;}
.mt80 { margin-top: 80px !important;}

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

/* clearFix */
.clearFix { zoom: 100%;}
.clearFix:after {
	content: "";
	clear: both;
	height: 0;
	display: block;
	visibility: hidden;
}


/* ------------------------
	ヘッダー
------------------------ */

.header { position: absolute; width: 100%; left: 0; top: 0; z-index: 999; display: flex; justify-content: space-between; align-items: center; padding: 0.5em 1em;}
.header .lang { display: flex; justify-content: flex-end; align-items: center; gap: 0.8em; letter-spacing: 0.05em;}
a[data-gt-lang="zh-CN"] { font-size: 0;}
a[data-gt-lang="zh-CN"]::after { content: "中文"; font-size: 0.9rem;}
.header h1 { width: 20%;}
.header .box01 { display: flex; align-items: center; gap: 2em;}

.header.under { background-image: url("../images/common/gn_bg.png"); background-image: image-set(url("../images/common/gn_bg.webp") 1x, url("../images/common/gn_bg@2x.webp") 2x); background-position: center bottom; background-size: cover; position: static;}

.header_btn { display: flex; border: solid 1px #fff;}
.header_btn li:first-child { border-right: solid 1px #fff;}
.header_btn a { display: block; font-weight: 500; width: 9em; text-align: center; background: rgba(21,56,136,0.3); padding: 0.3em 0.2em; transition: 0.3s;}
.header_btn a:before { content: ""; display: inline-block; vertical-align: middle; background: url("../images/common/ico_mail.svg") no-repeat center center; background-size: 100% auto; width: 1em; height: 1em; margin: -0.2em 0.4em 0 0;}
.header_btn li:last-child a:before { background-image: url("../images/common/rec_btn_icon.svg");}

.gn { display: flex; gap: 1.7em;}
.gn a { display: block; position: relative; opacity: 1 !important; font-weight: 500; cursor: pointer;}
.gn > li > a:after { content: ""; position: absolute; width: 100%; height: 1px; left: 0; bottom: -0.3em; background: linear-gradient(90deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.6) 80%, rgba(255,255,255,0) 100%); transform: scaleX(0); transform-origin: left center; transition: 0.2s;}
.gn > li > a:hover:after { transform: scaleX(1);}
.gn > li.dd > a:after { display: none;}

/* ドロップダウンメニュー */
.gn .dd > a { position: relative;}
.gn .dd > a:before { content: ""; position: absolute; width: 0.5em; height: 0.7em; background: #fff; left: 50%; transform: translateX(-50%); clip-path: polygon(0 100%, 50% 0, 100% 100%); bottom: -22px; display: none;}
.gn .dd:hover > a:before { display: block;}
.gn .dd .dd_wrap {
	position: absolute;
  z-index: 99999;
	display: none;
	width: 100%;
  left: 0;
  top: 65px;
  padding-top: 30px;
}
.gn .dd .box01 { border-top: solid 1px #fff; background-image: url("../images/common/pagettl_bg.jpg"); background-image: image-set(url("../images/common/pagettl_bg.webp") 1x, url("../images/common/pagettl_bg@2x.webp") 2x); background-position: center center; background-size: cover; padding: 50px 0;}
.gn .dd .box01 .cont1000 { width: 100%;}
.gn .dd .box01 ul { display: flex; justify-content: space-between; gap:4%;}
.gn .dd .box01 figure { box-shadow: 0 0 10px rgba(21,30,77,0.5);}
.gn .dd .box01 .heading_star { font-size: 2em; padding-left: 1.2em;}
.gn .dd .box01 .heading_star:before { width: 0.8em;}
.gn .dd .box01 .text01 { position: relative; display: table;}
.gn .dd .box01 .text01:before { content: ""; position: absolute; width: 1em; height: 1em; background: url("../images/common/ico_circle_arrow_white.svg") no-repeat center center; background-size: 100% auto; right: -1.5em; top: 50%; transform: translateY(-50%);}
.gn .dd .box01 .text01:after { content: ""; position: absolute; width: 100%; height: 1px; left: 0; bottom: -0.3em; background: linear-gradient(90deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.6) 80%, rgba(255,255,255,0) 100%); transform: scaleX(0); transform-origin: left center; transition: 0.2s;}
.gn .dd .box01 a:hover .text01:after { transform: scaleX(1);}

.clone-nav {
	position: fixed !important;
	top: 0;
	left: 0;
	z-index: 9999;
	width: 100%;
	transition: .3s;
	transform: translateY(-100%);
  background-image: url("../images/common/gn_bg.png");
  background-image: image-set(url("../images/common/gn_bg.webp") 1x, url("../images/common/gn_bg@2x.webp") 2x);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
.is-show { transform: translateY(0);}
.clone-nav .lang { display: none;}

.clone-nav .gn .dd .dd_wrap { top: 33px;}
.clone-nav .gn .dd > a:before { bottom: -13px;}

@media only screen and (max-width: 1150px) {
  .header.under { background-size: 100% 100%;}
  .header .hidden_s, .fixed_btn { display: none !important;}
  .sp-navi.hidden_l { display: block !important;}
  .header .lang { padding-right: 60px;}
  .header h1 { flex: 1; line-height: 50px; }
  .header h1 img { width: auto; max-width: 189px; max-height: 40px; vertical-align: middle;}
  
  .clone-nav { padding: 5px 1em;}
  
  /* ハンバーガーメニュー */
  .humberger {
    background: rgba(21,56,136,0.8);
    border: solid 1px #fff;
    cursor: pointer;
    display: block;
    position: fixed;
    top: 5px;
    right: 5px;
    width: 50px;
    height: 50px;
    z-index: 10001;
  }
  .humberger span {
    background: #fff;
    position: absolute;
    left: 9px;
    width: 30px;
    height: 2px;
    transition: 0.4s;
  }
  .humberger span:nth-of-type(1) { top: 9px;}
  .humberger span:nth-of-type(2) { top: 17px;}
  .humberger span:nth-of-type(3) { top: 25px;}
  .humberger:after {
    color: #fff;
    content: 'MENU';
    display: block;
    font-size: 10px;
    text-decoration: none;
    text-align: center;
    transition: 0.4s;
    position: absolute;
    left: 0;
    bottom: 1px;
    width: 100%;
  }
  .is-open .humberger:after { content: 'CLOSE';}
  .is-open .humberger span:nth-of-type(1) {transform: translateY(6px) rotate(-45deg);}
  .is-open .humberger span:nth-of-type(2) { opacity: 0;}
  .is-open .humberger span:nth-of-type(3) { transform: translateY(-10px) rotate(45deg);}
  
  /* ナビ本体 */
  .sp-navi { -webkit-text-size-adjust: 100%;}
  .sp-navi.is-open .sp-navi-inner { opacity: 1; visibility: visible; z-index: 10000;}
  .sp-navi .sp-navi-inner {
    background-image: url("../images/common/sp_nav_bg.jpg");
    background-image: image-set(url("../images/common/sp_nav_bg.webp") 1x, url("../images/common/sp_nav_bg@2x.webp") 2x);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    overflow-y: auto;
    opacity: 0;
    visibility: hidden;
    position: fixed;
    top: 0;
    left: 0px;
    height: 100%;
    width: 100%;
    transition: .5s;
    padding-bottom: 40px;
    font-size: 1.1em;
  }
  
  .sp-navi .logo { line-height: 50px; padding-left: 10px;}
  .sp-navi .logo img { width: auto; height: 40px; vertical-align: middle;}
  
  .sp-navi .list01 { padding: 0 20px;}
  .sp-navi .list01 > li { position: relative; border-bottom: solid 1px rgba(255,255,255,0.3);}
  .sp-navi .list01 > li > a { display: block; text-decoration: none; padding: 0.8em 60px 0.8em 1.7em; position: relative; font-weight: 500;}
  .sp-navi .list01 > li > a:not(:last-child) { padding-bottom: 0.3em;}
  .sp-navi .list01 > li > a:before { content: ""; position: absolute; background: url("../images/common/star_white.svg") no-repeat center center; background-size: 100% auto; width: 1em; height: 1em; left: 0; top: 1.2em;}
  .sp-navi .list01 > li ul { padding-left: 1.7em; padding-bottom: 0.6em;}
  .sp-navi .list01 > li ul a { display: block; font-size: 0.9em; padding: 0.1em 0 0.5em;}

  .sp-navi .open_btn { position: absolute; top: 0px; right: 0px; height: 2.6em; background-color: #9a3956; width: 2.6em; line-height: 2.4; font-size: 1.2em; text-align: center; cursor: pointer; color: #fff;}
  .sp-navi .open_btn:after { content: "+";}
  .sp-navi .open_btn.open:after { content: "-";}
  
  .sp-navi .btn_area { display: table; margin: auto;}
}

/* ------------------------
	フッター
------------------------ */

.footer .cta_box { background-image: url("../images/common/cta_bg.jpg"); background-image: image-set(url("../images/common/cta_bg.webp") 1x, url("../images/common/cta_bg@2x.webp") 2x); background-repeat: no-repeat; background-position: center center; background-size: cover; padding: 50px 20px; display: flex; justify-content: center;}
.footer .cta_box .box01 { background: rgba(255,255,255,0.8); padding: 0.6em; width: 100%; max-width: 900px;}
.footer .cta_box .box_inner { border: solid 1px #153888; width: 100%; padding: 30px 20px 60px;}
.footer .cta_box .btn_area a { display: inline-block; background: url("../images/common/star_white.svg") no-repeat calc(100% - 1em) center #153888; background-size: 1.1em auto; border-radius: 4em; width: 100%; max-width: 600px; color: #fff; font-size: 1.5em; line-height: 1.2; font-weight: 500; letter-spacing: 0.05em; padding: 1.8em 1em; transition: 0.3s;}
.footer .cta_box .btn_area a:before { content: ""; display: inline-block; vertical-align: middle; background: url("../images/common/ico_mail.svg") no-repeat center center; background-size: 100% auto; width: 1.2em; height: 1em; margin-right: 0.4em;}
.footer .cta_box .btn_area a:hover { background-color: #71c1ff;}

.footer .rec_box { background: url("../images/common/rec_bnr_bg.svg") no-repeat calc(50% + 50px) 20%, linear-gradient(to bottom, #eaf6fd 0%, #fff 100%); background-size: 1610px auto; padding: 180px 0 240px;}
.footer .rec_box h2 { font-size: min(6.5vw,2.8em);}

.footer hr { border: none; height: 1px; background: linear-gradient(to right, #244a9d 0%, #2651a0 30%, #4ac0ce 75%, #4bc3cf 85%);}

.footer .main { display: flex; justify-content: space-between; font-size: min(1.3vw,1em); gap: 3%;}
.footer .main .logo_box { width: 31%; align-self: flex-end;}
.footer .footer_nav { display: flex; gap: 4em;}
.footer_nav > ul { display: flex; flex-flow: column; gap: 1.5em;}
.footer_nav > ul > li > a { font-weight: 500;}
.footer_nav > ul > li { position: relative; padding-left: 1.4em;}
.footer_nav > ul > li:before { content: ""; position: absolute; background: url("../images/common/footer_icon.svg") no-repeat center center; background-size: 100% auto; width: 1.2em; height: 1.2em; left: 0; top: 0.25em;}
.footer_nav > ul > li li { margin-top: 0.3em;}

.footer_nav a { position: relative; display: inline-block;}
.footer_nav a:after { content: ""; position: absolute; width: 100%; height: 1px; left: 0; bottom: -0.1em; background: linear-gradient(90deg, rgba(21, 56, 136,0.6) 0%, rgba(21, 56, 136,0.6) 80%, rgba(21, 56, 136,0) 100%); transform: scaleX(0); transform-origin: left center; transition: 0.2s;}
.footer_nav a:hover:after { transform: scaleX(1);}

.footer .main .btn_area { display: flex; flex-flow: column; gap: 30px;}
.footer .main .btn_area li:nth-child(1) a { display: block; color: #153888; font-weight: 500; font-size: 0.95em; background: #fff; padding: 1.9em; border-radius: 80px; box-shadow: 0 0 1.6em 0.5em #71c1ff;}
.footer .main .btn_area li:nth-child(1) a:before { content: ""; display: inline-block; vertical-align: middle; background: url("../images/common/ico_mail_blue.svg") no-repeat center center; background-size: 100% auto; width: 1.2em; height: 1em; margin-right: 0.4em;}
.footer .main .btn_area li:nth-child(2) a { display: flex; justify-content: center; align-items: center; width: 13.75em; height: 6.25em; font-weight: 500; background-image: url("../images/common/footer_bnr01.png"); background-image: image-set(url("../images/common/footer_bnr01.webp") 1x, url("../images/common/footer_bnr01@2x.webp") 2x); background-repeat: no-repeat; background-position: center center; background-size: 100% 100%; color: #fff; line-height: 1.5; letter-spacing: 0.05em;}

.footer .list01 { display: flex; justify-content: center; gap: 5%;}
.footer .list01 a { display: block; position: relative; padding-right: 1em; color: #153888; font-weight: 500;}
.footer .list01 a:after {
	content: "";
	right: 0px;
  top: 0.55em;
	position: absolute;
  width: 0.65em;
  height: 0.65em;
  border-top: 1px solid #153888;
  border-right: 1px solid #153888;
  transform: rotate(45deg);
}
.footer .list01 a:hover { text-decoration: underline;}

.footer .copy { background-image: url("../images/common/copy_bg.png"); background-image: image-set(url("../images/common/copy_bg.webp") 1x, url("../images/common/copy_bg@2x.webp") 2x); background-repeat: no-repeat; background-position: center center; background-size: cover; padding: 1em;}

.pagetop { position: fixed; right: 30px; bottom: 0px; padding-bottom: 60px; z-index: 9999; transform: translateY(120%); opacity: 0; transition: transform 200ms ease, opacity 200ms ease;}
.pagetop.is-show { transform: translateY(0); opacity: 1;}

@media only screen and (max-width: 1100px) {
  .footer .main { flex-wrap: wrap; font-size: min(1.9vw,1em); padding: 0 4%;}
  .footer .main .logo_box { width: 100%; display: flex; flex-wrap: wrap; justify-content: center; gap: 20px 5%;}
  .footer .main .logo.mb20 { margin-bottom: 0px !important;}
}


/*------------------------------------------------------

	トップページ

------------------------------------------------------*/

.loading { position: fixed; inset: 0; z-index: 999999; display: flex; justify-content: center; align-items: center; background-image: url("../images/common/loading_bg.jpg"); background-image: image-set(url("../images/common/loading_bg.webp") 1x, url("../images/common/loading_bg@2x.webp") 2x); background-repeat: no-repeat; background-position: center center; background-size: cover; opacity: 1; visibility: visible; transition: opacity 1.5s ease, visibility 0s linear 1.5s;}
.loading.is-hide { opacity: 0; visibility: hidden; pointer-events: none;}
.loading .fo_white { font-size: min(2.4vw,1.5em);}
.loading.is-glow .fo_white { animation: glowText 1.5s ease-out forwards;}
@keyframes glowText {
  0% { text-shadow: 0 0 0px rgba(113,193,255,0);}
  100% { text-shadow: 0 0 0.5em #71c1ff, 0 0 0.5em #71c1ff, 0 0 0.5em #71c1ff, 0 0 0.5em #71c1ff, 0 0 0.5em #71c1ff, 0 0 0.5em #71c1ff;}
}
.loading .text01 { font-size: 2.5em; line-height: 1.4; margin-right: -0.5em;}

.mainimage { height: 100vh;}
.mainimage:after { content: ""; position: absolute; background-image: image-set(url("../images/top/movie_bg.webp") 1x, url("../images/top/movie_bg@2x.webp") 2x); background-repeat: no-repeat; background-position: center center; background-size: 100% 100%; inset: 0;}
.mainimage .movie { width: 100%; height: 100%;}
.mainimage .movie img, .mainimage .movie video { width: 100%; height: 100%; object-fit: cover;}
.mainimage .scroll { right: 5%; bottom: -30px;}
.mainimage .text01 { font-size: 1.85em; width: 100%; left: 0; bottom: 10%; text-shadow: 0 0 0.3em #fff, 0 0 0.3em #fff, 0 0 0.3em #fff, 0 0 0.3em #fff, 0 0 0.3em #fff, 0 0 0.3em #fff, 0 0 0.3em #fff, 0 0 0.3em #fff, 0 0 0.3em #fff, 0 0 0.3em #fff, 0 0 0.3em #fff, 0 0 0.3em #fff;}

.heading_star { font-size: 2.9em; letter-spacing: 0.05em;}
.heading_star:before { content: ""; position: absolute; background: url("../images/common/star_white.svg") no-repeat center center; background-size: 100% auto; width: 0.55em; height: 0.8em;}
.heading_star.fo_blue:before { background-image: url("../images/common/star_blue.svg");}
.heading_star.vertical { padding-top: 0.8em;}
.heading_star.vertical:before { top: 0; left: 50%; transform: translateX(-50%);}
.heading_star.horizon { padding-left: 0.8em;}
.heading_star.horizon:before { top: 50%; left: 0; transform: translateY(-45%);}

.hr_star { border: none !important; max-width: 900px; margin: auto; height: 1px; background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.6) 20%, rgba(255,255,255,0.6) 80%, rgba(255,255,255,0) 100%); position: relative;}
.hr_star:before, .hr_star:after { content: ""; position: absolute; display: block; background: url("../images/common/line_star.webp") no-repeat center center; background-size: 100% auto; width: 2em; height: 2.5em; top: 50%; transform: translateY(-50%); z-index: 100;}
.hr_star:before { left: -1.5em;}
.hr_star:after { right: -1.5em;}

.top_sec01 { background-image: url("../images/top/top_sec01_bg.jpg"); background-image: image-set(url("../images/top/top_sec01_bg.webp") 1x, url("../images/top/top_sec01_bg@2x.webp") 2x); background-repeat: no-repeat; background-position: center center; background-size: 100% calc(100% + 5px); padding: 170px 0;}
.top_sec01 .box01 { display: flex; justify-content: space-between; align-items: center;}
.top_sec01 .box01 .box_inner { width: 48%;}
.top_sec01 .box01 > figure { width: 52%; margin-right: -5%;}
.top_sec01 h2 { margin-left: -0.8em;}
.top_sec01 .text01 { right: -30px; top: -80px;}
.top_sec01 .text_box02 dl { display: table; width: 100%; font-size: min(5.5vw,1.9em); line-height: 1; position: relative;}
.top_sec01 .text_box02 dl > * { display: table-cell; vertical-align: middle;}
.top_sec01 .text_box02 dt { width: 1.8em;}
.top_sec01 .text_box02 dd { padding-left: 0.5em; border-left: solid 1px #fff;}
.top_sec01 .text_box02 dl:nth-of-type(2) { padding: 0.8em 0; margin: 0.8em 0;}
.top_sec01 .text_box02 dl:nth-of-type(2):before, .top_sec01 .text_box02 dl:nth-of-type(2):after { content: ""; position: absolute; width: 100%; height: 1px; background: linear-gradient(90deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.6) 80%, rgba(255,255,255,0) 100%); left: 0;}
.top_sec01 .text_box02 dl:nth-of-type(2):before { top: 0;}
.top_sec01 .text_box02 dl:nth-of-type(2):after { bottom: 0;}

@media only screen and (max-width: 1150px) {
  .top_sec01 { background-size: auto calc(100% + 5px); padding: 60px 0 80px;}
  .top_sec01 .box01 { flex-flow: column;}
  .top_sec01 .box01 .box_inner { width: auto;}
  .top_sec01 .box01 > figure { width: auto; margin: 30px 0 0;}
  .top_sec01 .text_box01 { display: table;}
  .top_sec01 .hidden_s { display: none !important;}
  .top_sec01 .hidden_l { display: block !important;}

  .mb160-80 { margin-bottom: 80px !important;}
}

@media only screen and (max-width: 950px) {
  .hr_star { margin: 0 2em;}
}

.top_sec02 { background-image: url("../images/top/top_sec02_bg.jpg"); background-image: image-set(url("../images/top/top_sec02_bg.webp") 1x, url("../images/top/top_sec02_bg@2x.webp") 2x); background-repeat: no-repeat; background-position: center center; background-size: 100% 100%; padding: 0 0 170px;}

.top_slider01 { display:flex; gap: 30px; transform: translateX(0); transition: transform .5s ease; will-change: transform;}
.top_slider01 > li { flex: 0 0 auto;}
.top_slider01 a { display:block; transition: 0.3s;}
.top_slider01 a:hover { opacity: 0.7;}
.car-prev, .car-next { position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border: none; border-radius: 100%; background: url("../images/top/ico_prev.svg") no-repeat center center; background-size: 100% auto; cursor:pointer; z-index:5;}
.car-prev { left: 4%}
.car-next { right: 4%; transform: translateY(-50%) scale(-1,1);}

.top_slider01 .grad_box { background: linear-gradient(to right, #244a9d 0%, #2651a0 30%, #4ac0ce 75%, #4bc3cf 85%); clip-path: polygon(0 0, 100% 0, calc(100% - 1.5em) 100%, 0 100%); padding: 1em; line-height: 1.6; font-size: min(3vw,0.85em);}
.top_slider01 figure img { width: 100%;}
.top_slider01 figcaption { font-size: 1.3em; line-height: 1.4; left: -0.4em; top: 0.8em; max-width: calc(100% - 0.5em); z-index: 50; background: linear-gradient(to right, #244a9d 0%, #2651a0 30%, #4ac0ce 75%, #4bc3cf 85%); padding: 2px; word-break: keep-all; overflow-wrap: break-word;}
.top_slider01 figcaption div { padding: 0.3em 0.5em;}

.top_sec02 .list01 { display: flex; justify-content: center; flex-wrap: wrap; gap: 20px 5%;}

@media only screen and (max-width: 1250px) {
  .top_sec02 { padding: 0 0 60px;}
  .top_slider01 figcaption { font-size: min(1.6vw,1.15em);}
}

@media only screen and (max-width: 950px) {
  .top_slider01 figcaption { font-size: min(3.5vw,1.15em); top: 1.2em;}
}

.top_sec03 { background-image: url("../images/top/top_sec03_bg.jpg"); background-image: image-set(url("../images/top/top_sec03_bg.webp") 1x, url("../images/top/top_sec03_bg@2x.webp") 2x); background-repeat: no-repeat; background-position: center center; background-size: 100% calc(100% + 5px); padding: 0 0 170px;}
.top_sec03 .box01 { display: flex; flex-flow: row-reverse; justify-content: space-between; align-items: flex-start; gap: 5%;}
.top_sec03 .box_inner { width: 43%;}
.top_sec03 .box01 > figure { width: 75%; margin-left: -25%; box-shadow: 0 0 1em 0.3em rgba(21,30,77,0.3);}
.top_sec03 .box01 > figure img { width: 100%;}
.top_sec03 .list01 { display: flex; flex-flow: column; gap: 2em;}
.top_sec03 .list01 a { display: block; background: url("../images/common/ico_circle_arrow.svg") no-repeat calc(100% - 0.8em) center #fff; background-size: 1.1em auto; font-size: 1.2em; font-weight: 500; letter-spacing: 0.05em; color: #153888; border-radius: 60px; position: relative; padding: 0.8em 1em 0.8em 2.8em; transition: 0.3s;}
.top_sec03 .list01 a:hover { margin: 0 -0.3em 0 0.3em;}
.top_sec03 .list01 a:before { content: ""; position: absolute; z-index: -1; background: linear-gradient(to right, #244a9d 0%, #2651a0 30%, #4ac0ce 75%, #4bc3cf 85%); top: -2px; right: -2px; bottom: -2px; left: -2px; border-radius: 60px; filter: blur(5px);}
.top_sec03 .list01 a:after { content: ""; position: absolute; background: url("../images/top/top_sec03_icon01.svg") no-repeat center center; background-size: 100% auto; width: 1.2em; height: 1.2em; left: 1em; top: 50%; transform: translateY(-50%);}
.top_sec03 .list01 li:nth-child(2) a:after { background-image: url("../images/top/top_sec03_icon02.svg");}
.top_sec03 .list01 li:nth-child(3) a:after { background-image: url("../images/top/top_sec03_icon03.svg");}
.top_sec03 .list01 li:nth-child(4) a:after { background-image: url("../images/top/top_sec03_icon04.svg");}

@media only screen and (max-width: 1150px) {
  .top_sec03 { padding-bottom: 80px;}
  .top_sec03 .box01 { align-items: center;}
  .top_sec03 .box_inner { width: 33%;}
  .top_sec03 .box01 > figure { width: calc(62% + 15px); margin-left: -15px;}
  .top_sec03 .list01 { gap: 1.4em; font-size: min(2vw,1.2em);}
  .top_sec03 .show_sp { display: block;}
  .top_sec03 .hide_sp { display: none;}
}

.top_sec04 { background-image: url("../images/top/top_sec04_bg.jpg"); background-image: image-set(url("../images/top/top_sec04_bg.webp") 1x, url("../images/top/top_sec04_bg@2x.webp") 2x); background-repeat: no-repeat; background-position: center center; background-size: 100% 100%; padding: 0 0 150px;}
.top_sec04 .box01 { display: flex; justify-content: space-between; gap: 5%;}
.top_sec04 .ttl_box { width: 250px;}
.top_sec04 .box_inner { flex: 1;}
.top_sec04 .btn_area a { display: inline-block; color: #fff; font-weight: 500; border-bottom: solid 1px #fff; padding: 0 0.7em 0.3em 0.5em; position: relative; transition: 0.3s;}
.top_sec04 .btn_area a:after { content: ""; position: absolute; width: 0.5em; height: 1px; background: #fff; right: 0; bottom: 1px; transform: rotate(25deg);}
.top_sec04 .btn_area a:hover { transform: translateX(0.3em);}
.top_sec04 .archive_list p { display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; text-overflow: ellipsis; -webkit-line-clamp: 3;}
.top_sec04 .archive_list > li:nth-child(4) { display: none;}

.archive_list { display: flex; flex-wrap: wrap; gap: 40px 2.5em;}
.archive_list > li { width: calc((100% - 5em) / 3);}
.archive_list figure .pos_ab { left: 0; top: 0; transform: translate(-50%,-50%); z-index: 50;}
.cat_wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5em 1em;}
.cat_wrap ul { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5em 1em;}
.cat_wrap a { display: block; font-size: 0.85em; line-height: 1.4; color: #fff; font-weight: 500; background: #153888; padding: 0.1em 0.5em;}
.a_white .cat_wrap a { color: #153888; background: #fff; border: solid 1px #00549e;}

@media only screen and (max-width: 1030px) {
  section:not(.top_sec01) .heading_star.horizon { padding: 0.8em 0 0;}
  section:not(.top_sec01) .heading_star.horizon:before { top: 0; left: 50%; transform: translateX(-50%);}

  .top_sec04 { padding-bottom: 80px;}
  .top_sec04 .box01 { flex-flow: column; gap: 40px;}
  .top_sec04 .ttl_box { width: auto; display: table; margin: auto;}

  .archive_list figure .pos_ab { left: -5px; transform: translateY(-50%);}
}



/*------------------------------------------------------

	下層ページ

------------------------------------------------------*/

.show_sp { display: none;}
.over_hidden { overflow: clip;}
.break_keep { word-break: keep-all; overflow-wrap: break-word;}

.img_hover { overflow: hidden;}
.img_hover a img, a .img_hover img { transition: 0.3s;}
.img_hover a:hover img, a:hover .img_hover img { transform: scale(1.05);}

.more_btn a { display: inline-block; color: #153888; font-weight: 500; text-align: left; background: url("../images/common/more_btn.svg") no-repeat calc(100% - 1.3em) center #fff; background-size: 1.5em auto; padding: 0.8em 1.5em; border-radius: 80px; box-shadow: 0 0 1.6em 0.5em #71c1ff; min-width: 250px; transition: 0.3s;}
.more_btn a:hover { transform: scale(1.03);}

.link_pad { margin-top: -60px; padding-top: 60px;}

.a_white a { color: #fff;}
.a_white a:hover { opacity: 0.7;}

@media only screen and (max-width: 1260px) {
  .link_pad { margin-top: -20px; padding-top: 20px;}
}

/* ----------------------------
	固定ページテンプレート
---------------------------- */

.pagettl { background-image: url("../images/common/pagettl_bg.jpg"); background-image: image-set(url("../images/common/pagettl_bg.webp") 1x, url("../images/common/pagettl_bg@2x.webp") 2x); background-position: center bottom; background-size: 100% 100%; font-size: 3.2em; padding: 2.5em 0;}
.pagettl h1 { background: url("../images/common/star_white.svg") no-repeat center top; background-size: 0.6em auto; padding-top: 0.8em;}

.breadcrumb { background: url("../images/common/star_blue.svg") no-repeat 15px 0.45em; background-size: 0.8em auto; padding-left: calc(15px + 1.3em);}


@media only screen and (max-width: 1150px) {
  .pagettl { font-size: 2.5em; background-size: 100% 100%; padding: 1.5em 0;}
}


/* ----------------------------
	contact
---------------------------- */

.con_nav { display: flex; gap: 2em; align-items: center;}
.con_nav a { background: url("../images/contact/ico_arrow.svg") no-repeat left 0.4em; padding-left: 1em;}

.con_header { padding-top: 150px;}
.con_header h1 img { margin-left: -2em;}

.con_head_nav { width: 100%; left: 0; top: 0; display: flex; justify-content: space-between; align-items: center; padding: 30px 20px;}
.lang.contact { display: flex; justify-content: flex-end; align-items: center; gap: 0.8em; letter-spacing: 0.05em; top: 1em; right: 1em;}

.con_sec01 { display: flex; justify-content: space-between; align-items: flex-end; gap: 5%;}

.con_sec02 { background: url("../images/contact/con_bg.jpg") no-repeat center center; background-size: cover; padding: 100px 0;}
.con_sec02 .bg01 { background: rgba(255,255,255,0.9); border: solid 2px #153888; border-radius: 3em; padding: 9% 7%;}
.con_sec02 .ico_link { background: url("../images/contact/ico_link.svg") no-repeat right center; background-size: 0.8em auto; padding-right: 1.2em; text-decoration: underline;}

.con_sec03.cont1000 { max-width: 1031px;}
.con_sec03 hr { border: none; border-bottom: solid 1px #153888;}
.con_sec03 .box01 { max-width: 840px; margin: auto;}
.con_sec03 .list01 { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 0.5em 1.5em; font-size: min(5.6vw,3em); line-height: 1; letter-spacing: 0.03em;}
.con_sec03 .list01 a { color: #153888; text-decoration: none; padding-left: 0.9em; background: url("../images/contact/ico_tel.svg") no-repeat left center; background-size: auto 0.75em;}
.con_sec03 .list01 li:nth-child(2) a { background-image: url("../images/contact/ico_fax.svg");}

.con_sec03 .list02 { display: flex; justify-content: center; gap: 5%;}

.contact_box .hissu { display: inline-block; vertical-align: middle; background-color: #153888; font-size: 0.7rem; color: #fff; padding: 0.1em 0.6em; line-height: 1.4; margin-left: 1rem;}

.contact_box input[type="text"], .contact_box input[type="email"], .contact_box input[type="tel"], .contact_box textarea, .contact_box select { width: 100%; border: solid 1px #B8B8B8; border-radius: 0.4em; padding: 0.7em 1em; font-family: "Zen Kaku Gothic Antique", sans-serif; font-size: 16px;}
.contact_box .width_auto input[type="text"], .contact_box .width_auto input[type="tel"], .contact_box .width_auto select { width: auto;}
.contact_box textarea { width: 100% !important;}
.contact_box label { display: inline-block; margin: 0px 1em 0.3em 0px;}

.contact_box .btn_area input {
	display: inline-block;
	width: calc(100% - 2em);
	max-width: 320px;
	font-family: "Zen Kaku Gothic Antique", sans-serif;
  font-weight: 500;
	font-size: 1em;
  letter-spacing: 0.05em;
	color: #fff;
	text-decoration: none;
	background: #153888;
	padding: 1.2em 1em;
  margin: 0px 1em 1em;
	border-radius: 60px;
	border: solid 1px #013895;
	outline: none;
	cursor: pointer;
	-webkit-appearance: none;
  transition: 0.3s;
}
.contact_box .btn_area input:hover, .contact_box .btn_area input:focus { opacity: 0.7;}

::placeholder { color: #B8B8B8; font-weight: 700; letter-spacing: 0.05em;}

.wpcf7-form-control.wpcf7-radio { display: flex; flex-wrap: wrap; gap: 0.5em 2em;}
input[type="radio"] { vertical-align: initial}
.wpcf7-spinner { display: block; margin: 20px auto;}
.wpcf7-list-item { margin: 0;}
.wpcf7-not-valid-tip { display: inline-block;}
.label_block .wpcf7-list-item { display: block; margin-left: 0px;}

@media only screen and (max-width: 1024px) {
  .con_header { padding: 100px 4% 0;}
  .con_sec01 { align-items: center; padding: 0 25px;}
  .con_sec03 .list01 { justify-content: space-between; gap: 0.5em 1em;}
}


/* ------------------------
	投稿
------------------------ */

.blog_bg { background: url("../images/blog/archive_bg.jpg") no-repeat center top; background-size: 100% 100%; padding: 100px 0 1px;}

/* アーカイブ */
.archive_cat { padding: 1em 2.5em 2.5em;}
.archive_cat h2 { background: linear-gradient(to right,#244A9D 24%, #4AC0CE 80%); display: table; margin-left: -2.8em; padding: 0.2em 1em;}
.archive_cat ul { display: flex; flex-wrap: wrap; gap: 0.6rem;}
.archive_cat .child_cat { margin-top: 20px;}
.archive_cat a { display: block; border: solid 1px #153888; color: #153888; font-weight: 500; line-height: 1.6; padding: 0.1em 0.7em; transition: 0.2s;}
.archive_cat a:hover, .archive_cat .active a { background: #153888; color: #fff;}

.blog_bg .archive_list { gap: 80px 2.5em;}
.blog_bg .archive_list figure a { display: block; opacity: 1;}
.blog_bg .archive_list figure a:before { content: ""; position: absolute; inset: 0; background: rgba(21,56,136,0.7); opacity: 0; transition: 0.3s; z-index: 10;}
.blog_bg .archive_list figure a:after { content: "Read more"; position: absolute; top: 0.4em; right: 0.4em; bottom: 0.4em; left: 0.4em; border: solid 1px #fff; color: #fff; font-size: 1.5em; text-align: center; display: flex; justify-content: center; align-items: center; font-family: "Libre Baskerville", serif; letter-spacing: 0.1em; opacity: 0; transition: 0.3s; z-index: 50;}
.blog_bg .archive_list figure a:hover:before, .blog_bg .archive_list figure a:hover:after { opacity: 1;}

/* シングル */
.top_sec04.single { padding: 80px 0;}

.blog_header { background: url("../images/blog/single_bg.png") no-repeat center top; background-size: 100% 100%; margin-top: -5px; padding: 100px 0 120px;}
.blog_header .cont1000 { display: flex; flex-flow: row-reverse; justify-content: space-between;}
.blog_header .box_inner { width: 60%;}
.blog_header .cont1000 > figure { width: 55%; margin-left: -22%; aspect-ratio: 5 / 3;}
.blog_header .cont1000 > figure img { width: 100%; height: 100%; object-fit: cover;}
.blog_header .list01 { display: flex; flex-wrap: wrap; gap: 0.5em 1em;}
.blog_header .list01 a { text-decoration: underline;}
.blog_header .list01 a:hover { text-decoration: none;}
.blog_header h1 { font-size: 2.55em; padding-bottom: 0.8em;}
.blog_header h1:before { content: ""; position: absolute; background: url("../images/common/star_white.svg") no-repeat center center; background-size: 100% auto; width: 0.45em; height: 0.5em; left: -0.65em; bottom: 0; transform: translateY(50%);}
.blog_header h1:after { content: ""; position: absolute; width: 100%; left: 0; bottom: 0; height: 1px; background: linear-gradient(to right, rgba(255,255,255,1) 50%, rgba(255,255,255,0) 100%);}

@media only screen and (max-width: 1100px) {
  .blog_header .box_inner { width: 50%;}
  .blog_header .cont1000 > figure { width: 50%; margin-left: -7%;}
  .blog_header h1 { font-size: 2.1em;}
}


/* 本文 */
.blog_content * { letter-spacing: 0.05em;}
.blog_content p, .blog_content p:last-child { margin-bottom: 30px;}
.blog_content h1 { font-family: "Zen Old Mincho", serif; font-size: 2.2em; font-weight: 600; line-height: 1.6; clear: both; position: relative; padding-bottom: 0.3em; margin-bottom: 1em;}
.blog_content h1:after { content: ""; position: absolute; width: 100%; height: 3px; left: 0; bottom: 0; background: linear-gradient(90deg, rgba(21,56,136,1) 0%, rgba(21,56,136,1) 70%, rgba(255,255,255,0) 100%);}
.blog_content h2 { font-weight: 700; font-size: 2em; color: #153888; line-height: 1.6; clear: both; margin-bottom: 30px;}

.blog_content h2.icon { font-family: "Zen Old Mincho", serif; text-align: center;}
.blog_content h2.icon:before { content: ""; display: inline-block; vertical-align: -0.2em; margin-right: 0.4em; background: url("../images/common/star_blue.svg") no-repeat center center; background-size: 100% auto; width: 0.9em; height: 1.2em;}
.blog_content h2.icon.search:before { background-image: url("../images/blog/ico_search.svg"); width: 0.9em; height: 1.2em;}

.blog_content h3 { font-weight: 500; font-size: 1.8em; line-height: 1.5; color: #fff; background: linear-gradient(to right, #244A9D 24%, #4AC0CE 80%); padding: 0.3em 1em; clear: both; margin-bottom: 30px;}
.blog_content h4 { font-weight: 700; font-size: 1.5em; line-height: 1.6; padding-left: 0.7em; border-left: solid 0.4em #153888; clear: both; margin-bottom: 30px;}
.blog_content h5 { font-weight: 700; font-size: 1.4em; line-height: 1.6; color: #153888; padding-left: 1.4em; position: relative; clear: both; margin-bottom: 30px;}
.blog_content h5:before { content: ""; position: absolute; background: url("../images/common/star_blue.svg") no-repeat center center; background-size: 100% auto; width: 1em; height: 1.2em; left: 0; top: 0.2em;}
.blog_content h6 { font-weight: 500; font-size: 1.25em; line-height: 1.6; border: solid 1px #153888; padding: 0.3em 0.8em; clear: both; margin-bottom: 30px;}

/* 引用 */
.blog_content blockquote {
  color: #153888;
  font-family: "Zen Old Mincho", serif;
	position: relative;
	padding: 4em;
	background-color: #F9F6F6;
  border-radius: 1em;
	clear: both;
  margin-bottom: 60px;
}
.blog_content blockquote:before, .blog_content blockquote:after { content: ""; position: absolute; background: url("../images/blog/ico_blq.svg") no-repeat center center; background-size: 100% auto; width: 1.4em; height: 1.2em; top: 2em;}
.blog_content blockquote:before { left: 2em;}
.blog_content blockquote:after { right: 2em; transform: scale(-1,-1);}
.blog_content blockquote cite { display: block; font-family: "Zen Kaku Gothic Antique", sans-serif; font-size: 0.9em; font-weight: 500; text-align: right; margin-bottom: -1.5em;}
.blog_content blockquote cite a[target="_blank"] { background: none; padding: 0;}

/* リスト */
.blog_content ul { margin-bottom: 30px; clear: both;}
.blog_content ul li { position: relative; padding-left: 1.4em; margin-bottom: 0.5em;}
.blog_content ul li:before { content: ""; position: absolute; background: url("../images/common/footer_icon.svg") no-repeat center center; background-size: 100% auto; width: 0.9em; height: 0.9em; left: 0; top: 0.4em;}
.blog_content ul ul { margin-bottom: 0; margin-top: 0.5em;}
.blog_content ul li li { padding-left: 1.1em;}
.blog_content ul li li:before { background: #153888; left: 0px; top: 0.9em; width: 0.6em; height: 1px; transform: none;}

.blog_content .list_check li { padding-left: 1.6em; position: relative;}
.blog_content .list_check li:before { content: ""; position: absolute; background-repeat: no-repeat; background-position: center center; background-size: 100% auto; background-color: transparent; width: 1.2em; height: 1em; left: 0px; top: 0.4em; transform: none;}
.blog_content .list_check li:before { background-image: url("../images/blog/ico_check.svg");}

.blog_content ol { margin-bottom: 30px; padding: 0px; counter-reset:num;}
.blog_content ol li { position: relative; padding-left: 1.7em; list-style: none; margin-bottom: 0.3em;}
.blog_content ol li:before { content: counter(num); counter-increment: num; position: absolute; background: #153888; font-size: 0.9em; width: 1.2em; height: 1.2em; line-height: 1.1; left: 0px; top: 0.4em; color: #fff; text-align: center;}

/* テーブル */
.blog_content table {
	clear: both;
	border: solid 1px #B8B8B8;
	background: #fff;
  line-height: 1.6;
	margin-bottom: 60px;
	width: 100%;
}
.blog_content th, .blog_content td { padding: 1em; border: solid 1px #B8B8B8; vertical-align: middle; border-bottom: dotted 1px #FF8F3D; text-align: left;}
.blog_content th { font-weight: 500; color: #fff; background: #153888;}

.blog_content .table_wrap { margin-bottom: 60px;}
.blog_content .table_wrap table { margin-bottom: 0px;}

.blog_content iframe { max-width: 100%;}

.blog_content strong, .blog_content em { font-weight: bold;}
.blog_content em { color: #ED6400;}

.blog_content a { color: #153888;}
.blog_content a:hover { color: #4AC0CE; text-decoration: underline;}

.blog_content a[target="_blank"] { background: url("../images/blog/ico_link.svg") no-repeat left center; background-size: 0.95em auto; padding-left: 1.4em; text-decoration: underline;}

.wp-block-button__link { display: inline-block; color: #153888 !important; font-weight: 500; text-decoration: none !important; text-align: left; background: url("../images/common/more_btn.svg") no-repeat calc(100% - 1.3em) center #fff; background-size: 1.5em auto; padding: 0.8em 3em 0.8em 1.5em; border-radius: 80px; box-shadow: 0 0 1.1em 0.2em #A2E2F4; min-width: 250px; transition: 0.3s;}
.wp-block-button__link:hover { transform: scale(1.03);}

.wp-block-button.is-style-outline .wp-block-button__link { display: inline-block; width: 100%; max-width: 430px; background: url("../images/common/ico_circle_arrow.svg") no-repeat calc(100% - 0.8em) center #fff; background-size: 1.1em auto; font-size: 1.2em; font-weight: 500; letter-spacing: 0.05em; color: #153888; border-radius: 60px; position: relative; padding: 0.8em 3em 0.8em 2.8em; box-shadow: none; border: none; transition: 0.3s;}
.wp-block-button.is-style-outline .wp-block-button__link:hover { margin: 0 -0.3em 0 0.3em; transform: none;}
.wp-block-button.is-style-outline .wp-block-button__link:before { content: ""; position: absolute; z-index: -1; background: linear-gradient(to right, #244a9d 0%, #2651a0 30%, #4ac0ce 75%, #4bc3cf 85%); top: -2px; right: -2px; bottom: -2px; left: -2px; border-radius: 60px; filter: blur(5px);}
.wp-block-button.is-style-outline .wp-block-button__link:after { content: ""; position: absolute; background: url("../images/common/star_blue.svg") no-repeat center center; background-size: 100% auto; width: 1.2em; height: 1.2em; left: 1em; top: 50%; transform: translateY(-50%);}

.blog_content .btn03 a { display: inline-block; color: #153888; font-weight: 500; text-decoration: none !important; border-bottom: solid 1px #153888; padding: 0 0.3em 0.3em 0; position: relative; transition: 0.3s;}
.blog_content .btn03 a:after { content: ""; position: absolute; width: 0.5em; height: 1px; background: #153888; right: 0; bottom: 1px; transform: rotate(25deg);}
.blog_content .btn03 a:hover { transform: translateX(0.3em);}

/* ページ内リンク */
.page_nav { margin-bottom: 30px;}
.page_nav .is-layout-flex, .wp-block-buttons>.wp-block-button { display: block;}
.page_nav .wp-block-buttons>.wp-block-button{width: 100%;}
.page_nav .wp-block-button__link { display: flex; align-items: center; justify-content: center; max-width: 350px; margin: auto; color: #505050 !important; text-decoration: none; font-weight: bold; line-height: 1.5; text-align: center; background: none; border-radius: 0; font-size: inherit; border: solid 1px #9a3956; padding: 0.4em 4.8em 0.4em 1em; min-height: 3.8em; position: relative; cursor: pointer; box-shadow: none;}
.page_nav .wp-block-button__link:after { content: ""; position: absolute; width: 3.8em; right: 0px; top: 0px; height: 100%; background: url("../images/blog/ico_arrow_wt_dw.svg") no-repeat center center #9a3956; background-size: 1em auto;}
.page_nav .wp-block-button__link:hover { transform: translateY(0.4em);}

.blog_content figcaption { font-size: 0.85em; line-height: 1.6; margin-top: 1em;}

/* ページャー(アーカイブ) */
.pagination { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 0.5em;}
.pagination span.current, .pagination a {
	display: block;
  text-align: center;
	text-decoration: none;
	min-width: 2em;
	padding: 0.3em;
	color: #fff;
  font-size: 1.2em;
  font-weight: 500;
  position: relative;
}
.pagination span.current, .pagination a:hover { color: #153888;}
.pagination span.current:before, .pagination a:before { content: ""; position: absolute; z-index: -1; width: 1.5em; height: 1.7em; background: url("../images/blog/pagenation.svg") no-repeat center center; background-size: auto 100%; left: 50%; top: 50%; transform: translate(-50%,-50%); opacity: 0; transition: 0.1s; margin: 0.05em -0.1em 0 0;}
.pagination span.current:before { opacity: 1;}
.pagination a:hover:before { opacity: 1;}

/* ページャー(シングル) */
.pager ul { display: flex; align-items: center; line-height: 1.6; gap: 1em; font-size: min(3vw,1em);}
.pager li { width: 33.3333%;}
.pager a { text-decoration: none; color: #9a3956; display: block; position: relative; padding: 0.5em;}
.pager a:hover { opacity: 0.7;}
.pager li:not(.return) a { background: url("../images/blog/bg_prev.svg") no-repeat center center; background-size: 100% 100%;}
.pager li.previous a { padding-left: 1.5em;}
.pager li.next a { background-image: url("../images/blog/bg_next.svg"); padding-right: 1.5em;}
.pager .return a { background: #9a3956; color: #fff;}



/* ブロックエディタ用 */
.wp-block-columns.access_box01 { gap: 5%;}
.wp-block-columns.access_box01 .wp-block-column { border-radius: 1.2em; padding: 4%; background: linear-gradient(#fff, #fff) padding-box, linear-gradient(to right, #244A9D 24%, #4AC0CE 80%) border-box; border: solid 2px transparent; margin-bottom: 80px;}
.wp-block-columns.access_box01 .border { border-bottom: solid 1px #153888; padding-bottom: 0.5em;}
.wp-block-columns.access_box01 p:last-child { margin-bottom: 0px;}

.num_text { position: relative; padding-left: 2.2em; max-width: 490px; margin: auto;}
.num_text span { display: block; position: absolute; background: #153888; color: #fff; text-align: center; width: 1.5em; height: 1.5em; line-height: 1.5; font-weight: 500; left: 0; top: 0.1em;}

.map iframe { width: 100%; height: 550px;}

@media only screen and (max-width: 1133px) {
  .wp-block-columns.access_box01 .wp-block-column { margin-bottom: 40px;}
}


/* 既存：通常列用の調整（そのままでOK） */
@media (min-width: 768px) and (max-width: 781px) {
  .wp-block-columns:not(.is-not-stacked-on-mobile) {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
  }
  .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex-basis: 0 !important;
    flex-grow: 1 !important;
    margin-left: 0 !important;
  }
}
@media (max-width: 767px) {
  .wp-block-columns:not(.is-not-stacked-on-mobile) {
    flex-direction: column !important;
  }
  .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex-basis: 100% !important;
    margin-left: 0 !important;
  }
  .wp-block-columns.no_gap:not(.is-not-stacked-on-mobile) { gap: 0 !important; }
}

/* ───── feature_box01：860px以下は常に2カラム（スマホも2列） ───── */
@media (max-width: 860px) {
  .wp-block-columns.feature_box02:not(.is-not-stacked-on-mobile) {
    display: flex;
    flex-direction: row !important;
    flex-wrap: wrap !important;         /* 2列×n行にする */
  }
  .wp-block-columns.feature_box02:not(.is-not-stacked-on-mobile) > .wp-block-column {
    flex: 0 0 50% !important;           /* 各列 50% 固定 */
    max-width: 50% !important;
    margin-left: 0 !important;
    min-width: 0;
  }
  .wp-block-columns.feature_box02.no_gap:not(.is-not-stacked-on-mobile) { gap: 0 !important; }
}

/* ───── feature_box01：861px以上は“元の挙動”に戻す（3カラム想定） ───── */
@media (min-width: 861px) {
  .wp-block-columns.feature_box02 {
    display: flex;                       /* 念のため明示 */
    flex-direction: row !important;
    flex-wrap: nowrap !important;        /* Gutenberg標準に合わせる */
  }
  .wp-block-columns.feature_box02 > .wp-block-column {
    /* コア標準に復元：各カラムが均等に伸びる（3カラム等に戻る） */
    flex-basis: 0 !important;
    flex-grow: 1 !important;
    max-width: none !important;
    margin-left: 0 !important;
  }
}



/* 追加パーツ */
.feature_box01 { display: flex; flex-flow: column;}
.feature_box01 section { width: 600px; display: flex; gap: 2.5em;}
.feature_box01 section:nth-of-type(2) { align-self: center;}
.feature_box01 section:nth-of-type(3) { align-self: flex-end;}
.feature_box01 .num { font-size: 3.3em; line-height: 1; width: 1em; margin-top: 0.5em;}
.feature_box01 dl { flex: 1;}
.feature_box01 dt { position: relative; font-size: 1.9em; padding-bottom: 0.5em;}
.feature_box01 dt:before { content: ""; position: absolute; width: 0.55em; height: 1em; background: url("../images/common/star_blue.svg") no-repeat center center; background-size: 100% auto; left: -0.8em; bottom: -0.5em;}
.feature_box01 dt:after { content: ""; position: absolute; width: 100%; height: 1px; left: 0; bottom: 0; background: linear-gradient(90deg, rgba(21,56,136,1) 0%, rgba(21,56,136,1) 70%, rgba(255,255,255,0) 100%);}

.table_mb00 table { margin-bottom: 0px !important;}


/* product */
:root { --anchor-offset: 54px; } /* 初期値。JSで実測に上書き */

.pro_wrap img { pointer-events: none;}

.pro_wrap { display:flex; gap: 5%;}
.pro_wrap nav {
  width: 17em;
  font-size: 0.95em;
  padding-left: 1.5em;
  position: sticky;
  top: 85px;
  padding-bottom: 100px;
  align-self: start;
  max-block-size: calc(100dvh - 16px);
  overflow: auto;              /* ナビが画面より長い場合の内側スクロール */
}
.pro_wrap .main { flex: 1;}
.pro_wrap .main:before { content: ""; position: absolute; width: 1px; background: linear-gradient(to bottom,#244A9D 95%, #4AC0CE 100%); top: 0; bottom: 0; }

.pro_wrap nav ul { display: flex; flex-wrap: wrap; gap: 3em 2em; line-height: 1.6;}
.pro_wrap nav li { width: calc((100% - 2em) / 2);}
.pro_wrap nav figure { border: solid 1px #153888; display: table; margin: 0 auto 0.5em;}
.pro_wrap nav a { display: block; color: #153888;}
.pro_wrap nav a.is-active, .pro_wrap nav a:hover { color: #ED6400;}
.pro_wrap nav a.is-active figure, .pro_wrap nav a:hover figure { border-color: #ED6400;}
.pro_wrap nav .text:before { content: ""; display: inline-block; background: url("../images/product/ico_star.svg") no-repeat center center; background-size: 100% auto; width: 0.8em; height: 0.8em; margin: 0 0.4em 0 -1em; visibility: hidden;}
.pro_wrap nav a.is-active .text:before, .pro_wrap nav a:hover .text:before { visibility: visible;}

.pro_wrap .main section { scroll-margin-top: var(--anchor-offset);}

.pro_wrap h2 { color: #fff; font-weight: 500; font-size: min(2vw,1.6em); letter-spacing: 0.05em; line-height: 1.5; padding: 0.35em 1em;}
.pro_wrap h2:before { content: ""; position: absolute; z-index: -1; background: linear-gradient(to right,#244A9D 24%, #4AC0CE 80%); top: 0; bottom: 0; left: 0; width: calc(((100vw - 1200px) / 2) + (1200px - 16rem));}
.pro_wrap h2 span { font-weight: 500;}
.pro_wrap h2 span:first-child { font-size: 0.75em;}
.pro_wrap h2 span.bold { font-weight: 500 !important; font-size: 1em !important;}
.pro_wrap .box_inner { padding: 40px 0 120px 9%;}
.pro_wrap .img01 { border: solid 1px #153888; padding: 3em 1em;}
.pro_wrap .img01 figcaption, .pro_wrap .img02 figcaption { border: solid 1px #153888; top: -1px; padding: 0.3em 1em; left: -0.7em;}

.pro_wrap .movie { aspect-ratio: 16 / 9;}
.pro_wrap video { width: 100%; height: 100%; object-fit: cover;}
.iframe_wrap { position: relative; width: 100%; padding-top: 56.25%;/* 高さ÷幅 */}
.iframe_wrap iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100% !important;
	height: 100% !important;
}
.pro_wrap .blog_content.youtube a[target="_blank"] { background-image: url("../images/blog/ico_link_blue.svg"); color: #2C7FC8;}
.pro_wrap .blog_content.youtube a[target="_blank"]:hover { text-decoration: none;}

.pro_wrap .voice_box h3 { background: url("../images/common/star_blue.svg") no-repeat left 0.3em; background-size: 0.8em auto; padding-left: 1.2em; font-size: 1.8em;}
.pro_wrap .faq_dl dt, .pro_wrap .faq_dl dd { padding-left: 3.3rem; position: relative;}
.pro_wrap .faq_dl dt:before, .pro_wrap .faq_dl dd:before { content: ""; position: absolute; background: url("../images/blog/ico_q.svg") no-repeat center center; background-size: 100% auto; width: 2.4rem; height: 2.4rem; left: 0; top: -0.1rem;}
.pro_wrap .faq_dl dd:before { background-image: url("../images/blog/ico_a.svg");}
.pro_wrap .faq_dl:not(:last-child) { border-bottom: solid 1px #C8C8C8; padding-bottom: 2em; margin-bottom: 2em;}

@media only screen and (max-width: 1024px) {
  .pro_wrap { flex-flow: column; gap: 80px;}
  .pro_wrap .main:before { display: none;}
  .pro_wrap nav {
    width: 100%;
    max-width: 600px;
    font-size: min(2.7vw,1em);
    margin: auto;
    padding: 0;
    position: static;
    padding-bottom: 0;
    max-block-size: initial;
    overflow: visible;
  }
  .pro_wrap nav ul { justify-content: center; gap: 2em; line-height: 1.6;}
  .pro_wrap nav li { width: calc((100% - 6em) / 4);}

  .pro_wrap h2 { font-size: min(6vw,1.65em);}
  .pro_wrap h2:before { width: calc(100% + 15px);}
  .pro_wrap .box_inner { padding: 40px 5% 80px;}
  .pro_wrap .img01 { padding: 4em 1em 2em;}
}


/* history */
.his_bg { background: url("../images/history/his_bg01.jpg") repeat-y center top; background-size: 100% auto;}
.his_bg_img img { width: 100%;}
.his_bg .his_bg_img { margin-top: -1px;}

.his_sec01 { padding: 6% 0 5%;}
.his_sec01 h2 { font-size: 2.2em;}
.his_sec01 .bg01 { top: 3%; left: -5%;}
.his_sec01 .bg02 { bottom: -50px; right: -6%;}

@media only screen and (max-width: 1100px) {
  .his_sec01 .bg01 { width: 25%; left: 1%;}
  .his_sec01 .bg02 { width: 13%; bottom: -50px; right: 1%; text-align: right;}
}

.his_bg .hr_star { background: linear-gradient(90deg, rgba(60,60,60,0) 0%, rgba(60,60,60,0.6) 20%, rgba(60,60,60,0.6) 80%, rgba(60,60,60,0) 100%);}
.his_bg .hr_star:before, .his_bg .hr_star:after { background-image: url("../images/common/star_black.svg"); width: 1.1em; height: 1.3em;}

.his_sec02 h2:before { content: ""; display: inline-block; vertical-align: middle; background: url("../images/common/star_blue.svg") no-repeat center center; background-size: 100% auto; width: 0.8em; height: 1.2em; margin: 0 0.3em 0.2em 0;}
.his_sec02 .box01 { display: flex; flex-flow: column; align-items: center; justify-content: center; gap: 4em;}
.his_sec02 section { display: flex; align-items: center; gap: 1em;}
.his_sec02 .num_right { flex-flow: row-reverse;}
.his_sec02 section .box_inner { flex: 1; position: relative;}
.his_sec02 div.num { display: flex; flex-flow: column; justify-content: center; align-items: center; width: 7.5em; height: 7.5em; border-radius: 50%; background: #fff; padding: 5px;}
.his_sec02 div.num.large { font-size: 1.2em; width: 7.8em; height: 7.8em;}
.his_sec02 div.num > span { display: flex; flex-flow: column; justify-content: center; align-items: center; border: solid 1px #153888; border-radius: 50%; width: 100%; height: 100%; font-size: 1.3em; line-height: 1.4}
.his_sec02 div.num .num { font-size: 1.6em; line-height: 1;}
.his_sec02 div.num.large .num { font-size: 2em;}

.his_sec02 .img_box img { border: solid 5px #fff; box-sizing: content-box; box-shadow: -4px 4px 4px rgba(0,0,0,0.25);}
.his_sec02 .img_box.shadow_right img { box-shadow: 4px 4px 4px rgba(0,0,0,0.25);}
.his_sec02 .pos_ab img { max-width: initial;}

.his_sec02 .sec01 { width: 35em; margin-left: 16em;}
.his_sec02 .sec01.after_right:after { left: 8.5em;}
.his_sec02 .sec02 { margin-right: 10em;}
.his_sec02 .sec02:not(.after_right):after { height: 4.1em;}
.his_sec02 .sec02 .bg01 { top: -2em;}
.his_sec02 .sec02 .img_box { right: calc(100% + 1em); top: 0;}
.his_sec02 .sec03 { margin-left: 14em;}
.his_sec02 .sec03 .bg01 { transform: translateX(-100%); top: calc(100% + 1em);}
.his_sec02 .sec04 { align-self: flex-end; margin: 0 3em -1em 0;}
.his_sec02 .sec04:not(.after_right):after { right: auto; left: -0.5em; height: 3.7em; top: calc(100% - 1.3em); transform: rotate(50deg);}
.his_sec02 .sec04 .img_box { margin-top: 1em;}
.his_sec02 .sec05 { margin: -1em 26em 0 0;}
.his_sec02 .sec05.after_right:after { height: 4.2em;}
.his_sec02 .sec05 .img_box { right: 0; margin-top: 1em;}
.his_sec02 .sec06 { align-self: flex-end; margin: 0 11em -0.5em 0;}
.his_sec02 .sec06:not(.after_right):after { right: auto; left: 0; height: 4.8em; top: calc(100% - 0.7em); transform: rotate(40deg);}
.his_sec02 .sec07 { margin-left: 10em;}
.his_sec02 .sec07.after_right:after { left: 9em; transform: rotate(-43deg)}
.his_sec02 .sec07 .bg01 { right: calc(100% + 1.5em); top: 4.5em;}
.his_sec02 .sec07 .img_box { left: 10em; margin-top: 1em;}
.his_sec02 .sec08 { margin-right: 13em;}
.his_sec02 .sec08 .bg01 { top: calc(100% + 1em); right: -1em;}
.his_sec02 .sec09 { margin-right: 27em;}
.his_sec02 .sec09.after_right:after { left: 9em; height: 3.2em; transform: rotate(-40deg)}
.his_sec02 .sec09 .img_box { right: 0; margin-top: 1em;}
.his_sec02 .sec10 { margin: -1em 0 -2em 20em;}
.his_sec02 .sec10:not(.after_right):after { right: auto; left: 0.3em; height: 3.2em; top: calc(100% - 0.8em); transform: rotate(43deg);}
.his_sec02 .sec10 .pos_ab { margin-top: -0.5em; left: 10em;}
.his_sec02 .sec11 { margin-right: 24em;}
.his_sec02 .sec12 { margin-right: 8em;}
.his_sec02 .sec12 .bg01 { left: calc(100% + 3em); bottom: -2em;}
.his_sec02 .sec12 .img_box { right: calc(100% + 1em); top: 0;}
.his_sec02 .sec13 { margin-left: 8em;}
.his_sec02 .sec13.after_right:after { left: 8.5em; height: 4.8em;}
.his_sec02 .sec13 .bg01 { right: calc(100% + 2em); bottom: 1em;}
.his_sec02 .sec13 .img_box { left: 10em; margin-top: 1em;}
.his_sec02 .sec14 { margin: 0 12em -1em 0;}
.his_sec02 .sec14:not(.after_right):after { right: 9em; height: 5em; top: calc(100% - 0.8em); transform: rotate(48deg);}
.his_sec02 .sec15 { align-self: flex-start;}
.his_sec02 .sec15.after_right.num_right:after { background: none; border-right: dashed 1px #153888; right: 1em; height: 5em;}
.his_sec02 .sec15 .img_box { right: 0; margin-top: 1em;}
.his_sec02 .sec16 { align-self: flex-end;}
.his_sec02 .sec16 div.num { font-size: 1.8em; width: 7em; height: 7em;}
.his_sec02 .sec16 .bg01 { top: -4.5em; left: 14em;}
.his_sec02 .sec16 .bg02 { bottom: -5em; right: 3em;}
.his_sec02 .sec16 .bg03 { top: 100%; left: 10.5em;}

.his_sec02 section:not(:last-of-type):after { content: ""; position: absolute; width: 1px; height: 4.5em; background: #153888; top: calc(100% - 0.2em);}
.his_sec02 .after_right:after { transform: rotate(-35deg); left: 7em;}
.his_sec02 .after_right.num_right:after { right: 0; left: auto;}
.his_sec02 section:not(.after_right):after { transform: rotate(35deg); right: 7em;}

/* en */
.translated-ltr .his_sec02 section .box_inner { max-width: 22em;}
.translated-ltr .his_sec02 .sec06 { margin-right: 5em;}
.translated-ltr .his_sec02 .sec10 .pos_ab { margin-top: 0.5em;}

@media only screen and (min-width: 1200px) {
  .his_bg_img.back_white img { height: 450px; width: 100%;}
}

.his_bnr .list01 { display: flex; gap: 7%;}
.his_bnr .list01 li { width: 46.5%;}
.his_bnr .list01 a { display: inline-block; width: 100%; background: url("../images/common/ico_circle_arrow.svg") no-repeat calc(100% - 1.5em) center #fff; background-size: 0.9em auto; font-size: 1.55em; font-weight: 500; letter-spacing: 0.05em; color: #153888; border-radius: 60px; position: relative; padding: 1.3em 3em 1.3em 3em; box-shadow: none; border: none; transition: 0.3s;}
.his_bnr .list01 a:hover { margin: 0 -0.3em 0 0.3em; transform: none;}
.his_bnr .list01 a:before { content: ""; position: absolute; z-index: -1; background: linear-gradient(to right, #244a9d 0%, #2651a0 30%, #4ac0ce 75%, #4bc3cf 85%); top: -4px; right: -4px; bottom: -4px; left: -4px; border-radius: 60px; filter: blur(5px);}
.his_bnr .list01 a:after { content: ""; position: absolute; background: url("../images/top/top_sec03_icon02.svg") no-repeat center center; background-size: 100% auto; width: 0.9em; height: 0.95em; left: 1.5em; top: 50%; transform: translateY(-50%);}
.his_bnr .list01 li:nth-child(2) a:after { background-image: url("../images/top/top_sec03_icon04.svg");}

@media only screen and (max-width: 1024px) {
  .his_sec02 .box01 { font-size: min(1.7vw,1em);}
  
  .his_sec02 .sec01.after_right:after { transform: rotate(-50deg); left: 10em; height: 7em; top: calc(100% - 1em);}
  .his_sec02 .sec02 { margin-right: 1em;}
  .his_sec02 .sec02:not(.after_right):after { height: 6em; transform: rotate(45deg); top: calc(100% - 0.5em); right: 8em;}
  .his_sec02 .sec03.after_right:after { height: 4em; left: 6em;}
  .his_sec02 .sec04:not(.after_right):after { height: 3em; transform: rotate(40deg); left: 0.5em; top: calc(100% - 1em);}
  .his_sec02 .sec05.after_right:after { right: 1em; height: 3.5em; transform: rotate(-30deg) translate(-0.6em,0.2em);}
  .his_sec02 .sec06:not(.after_right):after { height: 4.2em;}
  .his_sec02 .sec07 .img_box { left: 8em;}
  .his_sec02 .sec04 .img_box img, .his_sec02 .sec07 .img_box img, .his_sec02 .sec15 .img_box img { max-width: 20em;}
  .his_sec02 .sec10 .pos_ab { left: 8.5em}
  .his_sec02 .sec12 .bg01 { bottom: -3.5em;}
  .his_sec02 .sec12 .img_box img { max-width: 12em;}
  .his_sec02 .sec13 .img_box img { max-width: 16em;}
  .his_sec02 .sec14:not(.after_right):after { height: 3.8em; right: 8.5em; top: calc(100% - 0.4em);}
  .his_sec02 .sec15.after_right.num_right:after { height: 4em}
}

@media only screen and (max-width: 980px) {
  .his_sec02 .sec15.after_right.num_right:after { height: 3.5em; right: 3em; top: calc(100% + 0.5em); transform: rotate(-25deg);}
}


/* message */
.mes_sec01 h2 { font-size: 2.2em; padding-bottom: 0.5em; display: table;}
.mes_sec01 h2:after { content: ""; position: absolute; width: 2000px; height: 1px; background: linear-gradient(to right, #153888 calc(100% - 200px), #fff 100%); bottom: 0; right: -1em;}
.mes_sec01 .box01 { display: flex; justify-content: space-between;}
.mes_sec01 .box01 .box_inner { width: 50%;}
.mes_sec01 .img01 { bottom: 0; right: 58%;}
.mes_sec01 .img01 img { max-width: initial;}
.mes_sec01 .bg01 { top: 28%; left: -200px;}
.mes_text01 { display: table; margin: auto; background: linear-gradient(to right, #244A9D 24%, #4AC0CE 80%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-size: min(2.6vw,2.5em); letter-spacing: 0.03em;}
.mes_sec01 .fo_libre { opacity: 0.8;}

@media only screen and (max-width: 1100px) {
  .mes_sec01 { padding-left: 5%;}
  .mes_sec01 .box01 .box_inner { margin-top: -40px;}
}

@media only screen and (max-width: 1000px) {
  .mes_sec01 { padding: 0 10%;}
  .mes_sec01 h2 { font-size: min(6.7vw,2em);}
  .mes_sec01 .box01 { flex-flow: column; gap: 40px;}
  .mes_sec01 .box01 .box_inner { width: auto; margin-top: 0;}
  .mes_sec01 .img01 { position: static;}
  .mes_sec01 .img01 img { max-width: 100%;}
  .mes_text01 { font-size: min(5vw,2.5em);}
  .mes_text01 .show_sp { display: inline;}
  .mes_sec01 .bg01 { top: auto; bottom: 2%; left: -20%;}
}


/* flow */
.flow_sec01 .main { max-width: 966px; margin: auto; font-size: min(1.55vw,1em);}
.flow_sec01 .main .img_text01, .flow_sec01 .main .img_text02 { font-size: 1.6em; width: 11em; height: 11em; display: flex; justify-content: center; align-items: center;}
.flow_sec01 .main .img_text01 { color: #558946; top: 0.7em; left: 0.3em;}
.flow_sec01 .main .img_text02 { color: #153888; top: 0.6em; right: 0.3em;}
.flow_sec01 .main .img_text03, .flow_sec01 .main .img_text04 { font-size: 0.9em; width: 10em; bottom: 0.15em;}
.flow_sec01 .main .img_text03 { left: calc(50% - 11.5em);}
.flow_sec01 .main .img_text04 { right: calc(50% - 11.7em);}

.flow_sec01 .mb160-80 { margin-bottom: 160px !important;}
.flow_sec01 .box01 { background: url("../images/flow/flow_sec01_bg.png") no-repeat center center; background-size: 100% 100%; max-width: 1118px; margin: auto; padding: 0 7em 6em; font-size: min(1.4vw,1em);}
.flow_sec01 .box01 h2 { background: #153888; font-size: 2.2em; display: table; padding: 0.2em 1.3em; border-radius: 1em; margin: auto; transform: translateY(-50%);}
.flow_sec01 .box02 { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 2em 3em; font-size: 1.4em;}
.flow_sec01 .underline { background: linear-gradient(transparent 70%, #ffe100 0%);}
.flow_sec01 .large { font-size: 1.2em;}
.flow_sec01 .small { font-size: 0.8em;}

.flow_sec01 .sec02 { margin-right: 5em; margin-top: -0.5em; align-self: flex-start;}
.flow_sec01 .sec03 { margin-left: 2em;}
.flow_sec01 .sec05 { margin: -0.5em 2em 0 0; align-self: flex-start;}
.flow_sec01 .sec07 { align-self: flex-start;}
.flow_sec01 .sec08 { margin: 0 0 -0.5em 4em;}
.flow_sec01 .sec09 { align-self: flex-start; margin-top: -1em;}

.flow_sec01 .sec02 .pos_ab { top: -2em; left: 2.5em; width: 11.5%;}
.flow_sec01 .sec03 .pos_ab { top: -0.5em; right: 2em; width: 11.5%;}
.flow_sec01 .sec04 .pos_ab { left: -1em; width: 8%;}
.flow_sec01 .sec05 .pos_ab { right: -0.5em; margin-top: 1em; width: 11.8%;}
.flow_sec01 .sec08 .pos_ab { left: 0; width: 12.9%;}
.flow_sec01 .sec09 .pos_ab { right: 0; bottom: -1.2em; width: 12.6%;}

.flow_sec01 .arrow { margin-top: -2em;}
.flow_sec01 .text02 span { display: inline-block; font-size: min(6.5vw,2.2em);}
.flow_sec01 .text02 span:before, .flow_sec01 .text02 span:after { content: ""; position: absolute; width: 1px; height: 0.8em; background: #153888; bottom: 0;}
.flow_sec01 .text02 span:before { transform: rotate(-40deg); left: -0.5em;}
.flow_sec01 .text02 span:after { transform: rotate(40deg); right: -0.5em;}


.flow_sec02 { background: url("../images/flow/flow_sec02_bg.jpg") no-repeat center top; background-size: cover; padding: 130px 0;}
.flow_sec02 .cont900 { display: flex; flex-flow: column; gap: 150px;}

.flow_sec02 section { border-radius: 1.2em; display: flex; gap: 6%; align-items: center; justify-content: space-between;padding: 25px 5%; min-height: 16em;}
.flow_sec02 section:nth-of-type(odd) { margin-left: 5%;}
.flow_sec02 section:nth-of-type(even) { margin-right: 5%; flex-flow: row-reverse;}
.flow_sec02 section:before { content: ""; position: absolute; z-index: -1; background: linear-gradient(to right, #244a9d 0%, #2651a0 30%, #4ac0ce 75%, #4bc3cf 85%); top: -2px; right: -2px; bottom: -2px; left: -2px; border-radius: 1.2em; filter: blur(5px);}
.flow_sec02 section:not(:last-of-type):after { content: ""; position: absolute; background: url("../images/flow/flow_sec02_bg02.svg") no-repeat center center; background-size: auto 100%; width: 103px; height: 115px; left: 45%; transform: translateX(-50%); bottom: -130px;}
.flow_sec02 section:nth-of-type(even):after { transform: translateX(-50%) scale(-1,1); left: 50%;}
.flow_sec02 h2 { background: linear-gradient(to right, #244a9d 30%, #61cbe4 75%); border: solid 1px #fff; border-right: none; font-size: 1.55em; left: -2em; top: 0; transform: translateY(-50%); padding: 0.3em 0.5em; width: 16em;}
.flow_sec02 h2:after { content: ""; position: absolute; width: 25px; height: calc(100% + 2px); background: url("../images/flow/flow_sec02_bg03.png") no-repeat center center; background-size: 100% 100%; top: -1px; right: -25px;}
.flow_sec02 section:nth-of-type(even) h2 { left: auto; right: -0.5em;}
.flow_sec02 .sec04 .img01 { padding-top: 1em;}



