﻿@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&family=Roboto:ital,wght@0,100..900;1,100..900&display=swap');



/*----------------------------------------------
	reset
------------------------------------------------ */
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, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, 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%;
  background: transparent;
}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, small {
  display: block;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}
img {
  max-width: 100% !important;
  height: auto;
  border: 0;
  vertical-align: bottom;
}
*, *:before, *:after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
ol, ul {
  list-style: none;
}
input, select {
  vertical-align: middle;
}


/*----------------------------------------------
	common
------------------------------------------------ */
:root {
      --cl-main: #455DAC;
      --cl-main-rgb: 44 59 108;
      --cl-white: #fff;
      --cl-white_rgb: 255 255 255;
      --cl-black: #333333;
      --cl-sub:#E9F5FB;
--cl-gray:#F7F7F7;
      --font-normal: 400;
      --font-bold:700;
      --font-pagectg: "Montserrat", sans-serif;
      --ts-12:1.2rem;
      --ts-14:1.4rem;
      --ts-16:1.6rem;
      --ts-18:1.8rem;	
	      --ts-20:clamp(1.8rem, 1.667rem + 0.44vw, 2rem);
	      --ts-24:clamp(2rem, 1.733rem + 0.89vw, 2.4rem);
	      --ts-30:clamp(2.2rem, 1.667rem + 1.78vw, 3rem);
      --ts-80:8rem;
      --line-gray: #dddddd;
	
	
	/*
  --color-gray_1: #707070;
  --color-gray_2: #bbbbbb;

  --color-red_2: #FEF1F1;
  --color-red_rgb: 235 75 75;
  --color-red_rgb_2: 254 241 241;
  --color-brown_1: #F8F6F2;
  --color-blue_1: #1774d1;
  --color-yellow: #F0F044;

  --color-btn_1: #5C5C5C;
  --color-formline: #cdd7e5;

  --border-radius_s: 0.8rem;
  --border-radius_mx: 2rem;
  --border-radius: 50px;
  --font-normal: "MFW-UDShinGoNTPr6-Regular", sans-serif;
  --font-bold: "MFW-UDShinGoNTPr6-DeBold", sans-serif;*/

}



html {
  font-size: 62.5%;
  height: 100%;
  scroll-behavior: smooth;
}
body {
position: relative;
display: flex;
flex-direction: column;
min-height: 100vh;
width: 100%;
height: auto;
font-family: "Roboto","Noto Sans JP", sans-serif;
font-style: normal;
font-weight: 400;
color: var(--cl-black);
font-size: 1.6rem;
line-height: 1.6;
font-optical-sizing: auto;
  letter-spacing: .04em;
 /* font-feature-settings: "palt";*/
  -webkit-text-size-adjust: 100%;
}

h1, h2, h3, h4, h5, h6, .page-category, strong {
  font-weight: var(--font-bold);
}
a img {
  border: none;
}
a {
  color: var(--cl-black);
  text-decoration: none;
  outline: none;
}
a:visited {
  color: var(--cl-black);
  text-decoration: none;
}
@media (hover: hover) and (pointer:fine) {
  a:hover, a:hover img {
    opacity: 0.7;
    transition: opacity .20s ease-in-out;
  }
}


body :focus:not(:fous-visible) {
  outline: none
}
body :focus-visible {
  outline: 2px solid #4d65cb;
}





/*----------------------------------------------
	header
------------------------------------------------ */
#header {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  background: rgba(255, 255, 255, 0.01) !important; 
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px); 
}
.header_inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
	padding:0 3rem;
}

#gnav, 
#gnav > li {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.header_logo {
  max-width: 320px;
  margin: 5px 20px;
}
.header_logo p{
	font-size:var(--ts-12);
	 letter-spacing:0;
}

.header_links {
  width: calc(100% - 360px);
}
.header_links_inner {
  width: 100%;
  display: flex;
justify-content: flex-end;

}


#gnav {
  width: 100%;
  align-items: stretch;
		gap:2rem;
}
#gnav li {
  position: relative;
  width: 100%;
  line-height: 1.3;
font-weight: var(--font-bold);
}
#gnav > li + li {
 
}
#gnav li a {
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  width: 100%;
  padding: 18px 0;
	font-size:var(--ts-20);
  color: var(--cl-black);
  text-align: center;
}
#gnav .gnav_sub {
  position: absolute;
  width: 100%;
  margin: 60px 0 0;
  top: 0;
  left: 0px;
  visibility: hidden;
  opacity: 0;
  transition: .2s ease-in-out;
  z-index: 999;
}
#gnav .gnav_sub li {
  background: linear-gradient(to right, #FA606E, #F35E3D 80%, #F9AB1C);
}
#gnav .gnav_sub li + li {
  border-top: 1px solid rgb(var(--cl-white_rgb) /.6);
}
#gnav .gnav_sub a {
  padding: 15px 20px;
  font-size: 1.4rem;
  color: var(--cl-white);
}
#gnav li:hover > ul {
  visibility: visible;
  opacity: 1;
}
#spbtnbox {
  display: none;
}
@media screen and (min-width: 1201px) {
  .header_links {
    display: block !important;
  }
}

@media screen and (max-width: 1200px) {
  .header_logo {
width: min(50%, 290px);
      min-width:190px;
    margin: 5px 15px 0 0;
  }
  #spbtnbox {
    display: flex;
    align-items: center;

	  color:var(--cl-white);
	  background:var(--cl-main);
	  border-radius: 1rem;
	  	  z-index: 9999;
  }
  .spbtntxt {
    font-size: 1.2rem;
    letter-spacing: .06em;
  }
  #spbtn {
    display: block;
    position: relative;
    width: 42px;
    height: 42px;
    margin: 10px;
    z-index: 10;
    border: none;
    background: none;
  }
  #spbtn span {
    position: absolute;
    display: block;
    background: var(--cl-white);
    width: 30px;
    height: 2px;
    left: 6px;
    transition: all 0.4s;
    -webkit-transition: all 0.4s;
  }
  #spbtn span:first-child {
    top: 12px;
  }
  #spbtn span:nth-child(2) {
    margin-top: -1px;
    top: 50%;
  }
  #spbtn span:last-child {
    bottom: 12px;
  }
  #spbtn.gnavon span:first-child {
    -webkit-transform: translateY(8px) rotate(45deg);
    transform: translateY(8px) rotate(45deg);
  }
  #spbtn.gnavon span:nth-child(2) {
    opacity: 0;
  }
  #spbtn.gnavon span:last-child {
    -webkit-transform: translateY(-8px) rotate(-45deg);
    transform: translateY(-8px) rotate(-45deg);
  }
	

	
	
  .header_links {
    display: none;
    position: absolute;
    width: 50%;
    max-height: calc(100vh - 65px);
    top: 0;
   right: 0;
    margin: 0;

    z-index: 9990;
    overflow: auto;
  }
  .header_links_inner {
    flex-direction: column;
  }
  .header_navi {
    padding: 4rem;
  background: var(--cl-main);
	  
}

  #gnav {
	  padding-top:80px;
    flex-wrap: wrap;
    gap: 2vw 2%;
  }
  #gnav > li {
    width: 100%;
    display: block;
    padding: 1.5vw 2.5vw 1vw;
    border-radius: 1rem;
    background: var(--cl-white);
  }
  #gnav li + li {
    border-left: none;
  }
  #gnav li a {
    justify-content: flex-start;
    padding: 10px 0;
    color: var(--cl-black);
    line-height: 1.4;
    text-align: left;
  }
  #gnav > li > a {
    font-weight: var(--font-bold);
    justify-content: flex-start;
    align-items: flex-start;
  }
  #gnav > li > a::before {
    content: "";
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin-right: 10px;
    background: url("../images/arrow_r01.png") no-repeat left top;
  }
  #gnav .gnav_sub {
    position: relative;
    width: 100%;
    left: 0;
    visibility: visible;
    opacity: 1;
    margin: 0 0 10px;
  }
  #gnav .gnav_sub li {
    padding: 0;
    margin-top: 0;
    font-family: var(--font-normal);
    font-size: 1.4rem;
    border-top: none;
    background: none;
  }
  #gnav .gnav_sub li a {
    width:auto;
    margin-left:30px;
    padding: 5px 20px 5px 0;
    align-items: flex-start;
    color: var(--cl-black);
  }
  #gnav .gnav_sub li a::before {
    content: "";
    flex-shrink: 0;
    width: 13px;
    height: 15px;
    margin-right: 5px;
    background: url("../images/arrow_r02.png") no-repeat left 3px;
  }
  .header_subnavi {
    padding: 2vw 3vw 10.4vw;
    background: #FFEEE2;
      flex-wrap: wrap;
  }
  .header_subnavi ul {
    gap: 20px;
    justify-content: flex-start;
  }
  .header_subnavi li a, 
    .header_subnavi li.hs_language a {
    padding: 1vw 2vw;
    background: #fff;
    border-radius: 10px;
    border: none;
  }
  #gnav > li:last-child a br, 
    #gnav .gnav_sub li a br {
    display: none;
  }
    .header_subnavi li.hs_language {
    margin-right: 0;
}
.header_subnavi li.hs_company {
    margin-left: 0;
}

    
}
@media screen and (max-width: 768px) {
  #gnav > li {
    width: 100%;
  }
    
      .header_subnavi {
    padding-bottom: 16.67vw;
  }
        .header_subnavi ul {
        gap: 3vw;
    }
}
/*----------------------------------------------
	skip link
------------------------------------------------ */
.skip-link {
  position: absolute;
}
.skip-link:not(:focus) {
  width: 1px;
  height: 1px;
  overflow: hidden;
  margin: -1px;
  clip: rect(1px, 1px, 1px, 1px);
}
.skip-link:focus {
  display: block;
  top: 5px;
  left: 5px;
  margin: 0;
  padding: 15px 20px;
  background-color: #ffffff;
  z-index: 999;
}







/*------------------------------------------------
	footer
------------------------------------------------*/
#footer {
  margin-top: auto;
}

.footer_sec {

  padding: 30px 0;
  color: var(--cl-white);
  background: #2C3B6C;
}
.footer_sec a {
  color: var(--cl-white);
}
#footer .inner {
	display: flex;
  margin: 0 auto;
	justify-content: space-between;
	align-items: flex-end;
}

.footer_links .catch {
font-size:1.2rem;
}

.ftr-site-name{
	font-size:2rem;
		font-weight: var(--font-bold);
}

.copyright {
  font-size: 1.2rem;
}

@media screen and (max-width: 1200px) {
  #footer .inner {
    flex-wrap: wrap;
    padding: 0 4%;
  }
  .footer_links, .footer_btm {
    flex-direction: column;
    align-items: center;
  }
  .footer_links p + p:before {
    display: none;
  }
  .copyright {
    margin-top: 2rem;
    text-align: center;
  }
}
@media screen and (max-width: 768px) {
  .footer_subnavi {
    flex-direction: column;
    align-items: center;
  }
  .footer_subnavi li + li:before {
    content: none;
  }
}









/*----------------------------------------------
	contents
------------------------------------------------ */

html{
	scroll-padding-top: 100px !important;
}

@media (max-width: 1200px) {
	html {
    scroll-padding-top: 62px !important;
  }
}



main{
padding-top: 100px;
}

.wrapper{
	 width: 100%;
	padding-bottom:60px;
  background: url("../images/cmn_bg.webp")  center top / 100% auto repeat-y;
}





.csect {
padding:min(10.4vw, 70px) 0;
}
.home .csect {
padding:0;
margin-top: clamp(40px, 6.63vw + 15.14px, 100px);
}


.txt_b {
font-weight: var(--font-bold);
}
.txt_ar {
text-align: right;
}
.txt_ac {
text-align: center;
}






.main-contents{
	padding-bottom:6em;
}
.page-category {
  margin-bottom: 30px;
	font-weight: var(--font-bold);
}
.page-category span{
	display: inline-block;
	margin-right:2rem;
			font-size:var(--ts-80);
		  color: var(--cl-main);
	line-height: 1;

	font-family: var(--font-pagectg);
}

.main-contents .inner{
		border-radius: 2rem;
	background:#fff;	
}
.main-wrap {
	width:min(96%, 800px);
	margin:auto;
	padding:6rem 0;
}




.inner {
  width: min(1200px, 96%);
  margin: 0 auto;
}




@media screen and (max-width:980px) {

.br-pc{
	display: none;
}
}




@media screen and (max-width:980px) {
  .ctitle_section:before {
    right: 0;
  }
  .pagetitle_img + .ctitle_section {
    margin-top: -10px;
  }
}
@media screen and (max-width:768px) {
  .c_btn {
    text-align: center;
  }
  .chd_title {
    padding: 20px 0 0;
  }
.page_header {
  height: 150px;
}
    .page-category {
    margin-bottom: 1.5rem;
}
}






/*------------------------------------------------
	home
------------------------------------------------*/




.home .container {
	background:url("../images/top_bgt.png") no-repeat left top;
	background-size: 100% auto;
}
.home .container .inner{
	width:min(90%, 1360px);
}
.top-nav{
	padding-top:80px;
	display: flex;
	gap:3em;
}
.top-nav section{
	flex:1;
}




.top-nav-stitle{
margin:2rem 0 1rem;
font-size:var(--ts-20);
}
.top-nav-txt{
margin-left:80px;
}

.top-nav .c-img  {
overflow: hidden; 
}
.top-nav .c-img img {
display: block;
	  width: 100%;
 transition: opacity 0.2s ease-in-out, transform 0.4s ease-out;
}

 .top-nav section a:hover .c-txt {
    opacity: 0.7;
    transition: opacity 0.2s ease-in-out;
  }

.top-nav section a{
display: flex;
position: relative;
flex-direction: column;

}

@media (hover: hover) and (pointer: fine) {
  .top-nav section a:hover,
  .top-nav section a:hover img {
    opacity: 1 !important; 
  }

  .top-nav section a:hover .c-img img {
    transform: scale(1.08); 
  }
}
.top-nav-title{
position: absolute;
font-size:5rem;
letter-spacing: 0.1em;
color:var(--cl-main);
z-index: 2; 
	pointer-events: none;
}
.top-nav section.top-nav-story .top-nav-title{
left: 0; 
bottom: 0;
transform: rotate(-90deg) translateX(-50%);
transform-origin: left top; 
}
.top-nav section.top-nav-voice a{
	flex-direction: column-reverse;
}

.top-nav section.top-nav-voice .top-nav-title{
left: 0px; 
top: 0;
transform: rotate(-90deg) translateX(-100%);
transform-origin: left top; 
}

.top-nav section.top-nav-voice .c-img{
	margin-top:2rem;
}










.top-about{
		display: flex;
	align-items: stretch;
		gap:3em 5%;
	padding-top:8rem;
}


.top-about .c-txt{
	flex:1;
	font-size: var(--ts-20);
	padding-left:3%;

	border-left:1px solid #ddd;
}
.top-about .c-txt .c-stitle{
	margin-bottom:2rem;
	font-size: var(--ts-30);

	color:var(--cl-main);
}


.top-about .c-img{
	width:43%;
}





.top-comingsoon{
			text-align: center;
}
.top-comingsoon ul{
		display: flex;
	gap:1em 2%;
	flex-wrap: wrap;
	justify-content: center;
}
.top-comingsoon ul li{
flex:1;
	background: rgb(var(--cl-main-rgb) / .6);
}
.top-comingsoon ul li dl{
	padding:2em;

}
.top-comingsoon ul li dt{
	color:#00EBFF;
overflow-wrap: anywhere; 
		font-weight: var(--font-bold);
font-size:var(--ts-20);
}
.top-comingsoon ul li dd{
	color:#fff;
}
.top-cominsoon-title{
	font-family: var(--font-pagectg);
			font-weight: var(--font-bold);
	font-size: var(--ts-30);
	color:#00EBFF;
	margin-bottom:3rem;
}

@media screen and (max-width: 980px) {
	
	.top-comingsoon ul li{
		flex:auto;
	width:48%;
}
	
}


@media screen and (max-width: 768px) {
	.top-nav,
	.top-nav section.top-nav-voice a,
	.top-about{
		flex-direction: column;
	}
	
.top-nav section.top-nav-voice .top-nav-title{
left: 0; 
bottom: 0;
	top:auto;
transform: rotate(-90deg) translateX(-50%);
transform-origin: left top; 
	
}

.top-about .c-txt{
	padding-left:0;
	border-left:none;
}
	
	.top-comingsoon ul li{
		flex:auto;
	width:100%;
}
}


/*------------------------------------------------
	post
------------------------------------------------*/
.post  .inner {
  width: min(1000px, 96%);
  margin: 0 auto;
}




.post-head{
font-weight: var(--font-bold);
}

.post-title{
	 	font-size:var(--ts-30);
	color: var(--cl-main);
}
.post-hdname{
	margin:2rem 0 1rem;
	font-size:var(--ts-20);
}
.post-hditem{
	display: inline-block;
		padding:.5rem 1rem;
	background:var(--cl-sub);
	border-radius: .5rem;
}
.post-main-img{
	margin-top:6rem;
}
.post-lead{
	margin-top:3rem;
}



.post-profile{
	margin-top:2rem;
}
.profile-title{
	display: inline-block;
	padding:.5rem 1rem;
			color: var(--cl-white);
		background: var(--cl-main);
	font-weight: var(--font-bold);
		border-radius: .5rem;
}
.post-profile dl{
	display: flex;
	gap:1rem 2rem;
		margin-top:1rem;
	padding:.5rem 1rem;
	background:var(--cl-gray);
	border-radius: .8rem;
}
.post-profile dl dt{ 
font-weight: var(--font-bold);
}


.voice .profile-sect{
	display: flex;
		gap:1rem 2rem;
		padding:1rem 2rem;
	margin-top:1rem;
	background:var(--cl-gray);
		border-radius: .8rem;
}
 .post-profile .profile-sect dl{
	display: block;
	 background:none;
}
.post-profile .profile-sect dl dt{
	margin-bottom:1rem;
}


.toc-sect{
	margin-top:3rem;
	padding:2rem;
	background:var(--cl-sub);
	border-radius: 1rem;
}

.toc-list li{
	margin-top:1rem;
}
.toc-list li a{
	padding:.5rem 1rem;
}

.post-contents,
.post-movie{
	margin-top:6rem;
}

.post-movie {
  margin: 3rem auto;
  width: min(95%, 800px);
}

.post-movie iframe{
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
}


.post-mtitle{	
margin-bottom:3rem;
padding-bottom:1rem;
font-size:var(--ts-30);
font-weight: var(--font-bold);
border-bottom:1px solid var(--line-gray);
}
.voice .post-mtitle{
	display: flex;
}

.post-sectnum{	
	position: relative; 
	  padding-right: 0.8em; 
  margin-right: 0.8em;
			color: var(--cl-main);
}

.post-sectnum::after{		
  content: "";
  position: absolute;
  top: 50%;
  right: 0; 
  width: 1px; 
  height: 0.95em; 
  background-color: #aaa;
  transform: translateY(-50%) rotate(22deg);
  transform-origin: center; 
}
.post-lead{
		position: relative; 
	margin-bottom:3em;
}

.post-lead::before{
  content: "";
  display: inline-block;
  width: 1.5em; 
  height: 0.1em;
  background-color:  var(--cl-main);/*currentColor;*/ 
  vertical-align: 0.25em;
  margin-right: 0.5em; 

}

/*
.voice .post-mtitle{
color: var(--cl-main);
}*/

.post-stitle{	
margin-bottom:2rem;

font-size:var(--ts-24);
font-weight: var(--font-bold);
color: var(--cl-main);
}

.post-sect{
		margin-top:6em;
}
.post-contents section+section{
	margin-top:4em;
}

.post-img{
	display:flex;
	gap:2rem;
	align-items: center;
	justify-content: center;
	margin-top:3rem;
}
.post-img figure{
text-align: center;
}
.post-img figcaption{
	margin-top:2rem;
	text-align: left;
}
.post-txt p{
	margin-top:2rem;
}
.post-txt span{
	display: inline-block;
	margin-right:2rem;
	font-weight: var(--font-bold);
}


