@charset "UTF-8";

/* @import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&family=Share+Tech&family=Zen+Kaku+Gothic+New:wght@400;700&display=swap'); */
@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&family=Share+Tech&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,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  vertical-align: baseline;
  background: transparent;
}

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

ul {
  list-style: none;
}

ul li {
  list-style-type: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none;
}

a {
  margin: 0;
  padding: 0;
  vertical-align: baseline;
  background: transparent;
  text-decoration: none;
}

del {
  text-decoration: line-through;
}

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

input,
select {
  vertical-align: middle;
}

input,
button,
textarea,
select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-family: inherit;
  border-radius: 0;
  color: inherit;
  background: transparent;
  border: none;
  margin: 0;
  padding: 0;
}

label {
  cursor: pointer;
}

input[type='number']::-webkit-outer-spin-button,
input[type='number']::-webkit-inner-spin-button,
input[type='month']::-webkit-outer-spin-button,
input[type='month']::-webkit-inner-spin-button,
input[type='datetime-local']::-webkit-outer-spin-button,
input[type='datetime-local']::-webkit-inner-spin-button,
input[type='week']::-webkit-outer-spin-button,
input[type='week']::-webkit-inner-spin-button,
input[type='time']::-webkit-outer-spin-button,
input[type='time']::-webkit-inner-spin-button,
input[type='date']::-webkit-outer-spin-button,
input[type='date']::-webkit-inner-spin-button {
  display: none;
}

input[type='number'],
input[type='month'],
input[type='datetime-local'],
input[type='week'],
input[type='time'],
input[type='date'] {
  -moz-appearance: textfield;
}

input[type='date']::-webkit-clear-button,
input[type='month']::-webkit-clear-button,
input[type='datetime-local']::-webkit-clear-button,
input[type='time']::-webkit-clear-button,
input[type='week']::-webkit-clear-button {
  -webkit-appearance: none;
}

select::-ms-expand {
  display: none;
}

input::-ms-clear {
  visibility: hidden;
}

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

html {
	width: 100%;
	height: 100%;
	font-size: 0;
	line-height: 1.25;
	letter-spacing: 0;
	overflow: auto;
	overscroll-behavior: none;
	position: relative;
	/* font-family: "Noto Sans JP", sans-serif; */
	font-family: Arial, sans-serif;
	font-weight: 400;
	background: white;
}

.font-NotoSansJP {
  font-family: "Noto Sans JP", sans-serif;
}
.font-ZenKakuGothicNew {
  font-family: "Zen Kaku Gothic New", sans-serif;
}
.font-ShareTech {
  font-family: "Share Tech", sans-serif;
}

h2,
h3,
h4,
h5,
h6 {
  position: relative;
}

h2 > span,
h3 > span,
h4 > span,
h5 > span,
h6 > span {
  display: inline-block;
}

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

p {
  margin-bottom: 0;
}

iframe {
  width: 100%;
}

sup {
  font-size: 100%;
  top: -0.15em;
}

button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.pc_blk {
	display: block;
}
.pc_inblk {
	display: inline-block;
}
.sp_blk,
.sp_inblk {
	display: none;
}
@media print, screen and (max-width: 768px) {
.sp_blk {
	display: block;
}
.sp_inblk {
	display: inline-block;
}
.pc_blk,
.pc_inblk {
	display: none;
}
}

body {
	background: linear-gradient(165deg, #115fa7, #032b4f 70vh) no-repeat #032b4f;
	overflow: hidden;
}
body::before {
	content: '';
	position: fixed;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background-image: linear-gradient(to right, white 0 1px, transparent 1px 10px),  linear-gradient(to bottom, white 0 1px, transparent 1px 10px);
	background-size: 10px 10px, 10px 10px;
	opacity: 0.02;
}

main {
	position: relative;
	z-index: 2;
	padding-top: 90px;
}

header {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 8;
	width: 100%;
	height: 90px;
	background: white;
}
header .logo {
	position: absolute;
	top: 27px;
	left: 40px;
	width: 151px;
	aspect-ratio: 151 / 37;
	background: url(../images/common/logo.png) no-repeat center / contain;
}
header .menu {
	font-family: "Lato", sans-serif;
	font-weight: 700;
}
header .menu .insite {
	position: absolute;
	bottom: 18px;
	right: 6px;
	text-align: right;
}
header .menu .insite a {
	font-size: 16px;
	color: #34343A;
	display: inline-block;
	padding-left: 16px;
	margin-right: 34px;
	position: relative;
}
header .menu .insite a::before {
	content: '';
	background: #557EC0;
	position: absolute;
	top: 50%;
	left: 0;
	width: 6px;
	aspect-ratio: 1;
	border-radius: 50%;
	margin-top: -3px;
}
header .menu .other {
	position: absolute;
	top: 18px;
	right: 40px;
	text-align: right;
	opacity: 0.5;
}
header .menu .other a {
	font-size: 14px;
	color: #34343a;
	display: inline-block;
	margin-left: 38px;
	position: relative;
}
header .menu .other a::before {
	content: '';
	position: absolute;
	top: -1px;
	left: -20px;
	width: 1px;
	height: calc(100% + 2px);
	background: #34343a;
}
header .menu .other a:first-of-type::before {
	display: none;
}
header .menu .other a.out {
	padding-right: 14px;
	background: url(../images/common/arrow_diagonal.png) no-repeat right center / auto 10px;
}

/********/
/* header .menu .other a:first-of-type {
	display: none;
}
header .menu .other a::before {
	display: none;
} */
/********/

footer {
	margin: 166px 0 0;
}
footer .menu {
	text-align: center;
}
footer .menu a {
	display: inline-block;
	position: relative;
	color: white;
	font-family: "Lato", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 20px;
	letter-spacing: 1.28px;
	margin: 0 13px 0;
	padding-left: 14px;
}
footer .menu a::before {
	content: '';
	background: #557EC0;
	position: absolute;
	top: 50%;
	left: 0;
	width: 6px;
	aspect-ratio: 1;
	border-radius: 50%;
	margin-top: -3px;
}
footer .menu a.out {
	padding-right: 14px;
	background: url(../images/common/arrow_diagonal_white.png) no-repeat right center / auto 10px;
}
footer .copy {
	border-top: solid 1px #ffffff75;
	margin: 26px 0 0;
	color: white;
	text-align: center;
	font-family: "Lato", sans-serif;
	font-size: 12px;
	line-height: 20px;
	letter-spacing: 1.2px;
	padding: 20px 0 20px;
}


#modal {
	position: fixed;
	top: 90px;
	left: 0;
	z-index: 2;
	width: 100%;
	height: calc(100% - 90px);
	background: #032642bd;
	backdrop-filter: blur(7.5px);
	padding: 100px 0;
	color: white;
	overflow: auto;
	display: none;
}
#modal .wrap {position: relative;}
#modal h2 {
	font-family: "Share Tech";
	font-size: 60px;
	line-height: 0.8;
}
#modal h3 {
	font-size: 22px;
	font-weight: 400;
	line-height: 34px;
	letter-spacing: 2.2px;
	margin-top: 32px;
}
#modal .tag {
	margin-top: 26px;
}
#modal .tag span {
	display: inline-block;
	color: white;
	font-size: 15px;
	line-height: 30px;
	border: solid 1px white;
	padding: 4px 19px;
	border-radius: 20px;
	margin: 0 12px 12px 0;
}
#modal .tag span::before {
	content: '#';
}
#modal figure {
	margin-top: 20px;
}
#modal figure img {}
#modal figure figcaption {
	font-size: 14px;
	line-height: 1.6;
	text-align: center;
	margin: 12px 0 0;
}
#modal p {
	font-size: 17px;
	font-style: normal;
	font-weight: 400;
	line-height: 32px;
	letter-spacing: 1.7px;
	margin-top: 48px;
}
#modal button.back {
	display: block;
	font-family: "Lato", sans-serif;
	font-size: 17px;
	line-height: 20px;
	letter-spacing: 1.02px;
	color: white;
	width: fit-content;
	padding: 14px 0 15px 70px;
	margin-top: 40px;
	position: relative;
}
#modal button.back::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 0;
	width: 50px;
	aspect-ratio: 1;
	background: url(../images/common/arrow.png) no-repeat center / auto 20px white;
	transform: translate(0, -50%);
	border-radius: 50%;
	transition: 0.2s;
}
#modal button.mark {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 1;
	width: 40px;
	aspect-ratio: 1;
	background: url(../images/common/close.png) no-repeat center / contain;
	cursor: pointer;
}

html.modalShow {
	overflow: hidden;
}


@media print, screen and (max-width: 768px) {
main {
	padding-top: 16vw;
}
header {
	height: 16vw;
}
header .logo {
	top: 4vw;
	left: 5vw;
	width: 28vw;
}
header .menu {
	position: absolute;
	top: 16vw;
	left: 0;
	width: 100%;
	height: calc(100vh - 16vw);
	background: #022B50;
	clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
	transition: 0.5s;
}
header .menu::before,
header .menu::after {
	content: '';
}
header .menu::before {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	pointer-events: none;
	background-image: linear-gradient(to right, white 0 1px, transparent 1px 10px), linear-gradient(to bottom, white 0 1px, transparent 1px 10px);
	background-size: 10px 10px, 10px 10px;
	opacity: 0.02;
}
header .menu::after {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 0;
	height: 100%;
	aspect-ratio: 217 / 157;
	transform: translate(-50%, -50%);
	background: url(../images/common/highlight.png) no-repeat center / contain;
	background-color: #022B50;
	background-blend-mode: overlay;
	mix-blend-mode: lighten;
}
header .menu .insite {
	position: relative;
	bottom: auto;
	right: auto;
	z-index: 2;
	text-align: left;
	padding: 4vw 0 0;
}
header .menu .insite a {
	display: block;
	color: white;
	border-top: solid 1px #557EC0;
	margin: 0;
	padding: 6.7vw 0 6.7vw 9vw;
	font-size: 4vw;
	font-weight: 400;
	position: relative;
}
header .menu .insite a::before {
	background: white;
	opacity: 0.4;
	left: 4vw;
}
header .menu .insite a::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 4vw;
	width: 9vw;
	aspect-ratio: 1;
	background: url(../images/common/arrow.png) no-repeat center / auto 4.5vw white;
	transform: translate(0, -50%);
	border-radius: 50%;
	transition: 0.2s;
}
header .menu .insite a:last-of-type {
	border-bottom: solid 1px #557EC0;
}
header .menu .other {
	position: relative;
	top: auto;
	right: auto;
	z-index: 2;
	text-align: left;
	opacity: 1;
}
header .menu .other a {
	color: white;
	display: block;
	margin: 5.5vw 4vw;
	width: fit-content;
	font-size: 3.5vw;
	font-weight: 400;
}
header .menu .other a::before {}
header .menu .other a:first-of-type::before {}
header .menu .other a.out {
	padding-right: 6vw;
	background-image: url(../images/common/arrow_diagonal_white.png);
	background-size: auto 60%;
}
header .menu_btn {
	position: absolute;
	top: 50%;
	right: 5vw;
	width: 7vw;
	aspect-ratio: 1;
	transform: translate(0, -50%);
	cursor: pointer;
}
header .menu_btn::before,
header .menu_btn::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	height: 2px;
	background: #557EC0;
	transform: translate(-50%, -50%);
	transition: 0.2s;
}
header .menu_btn::before {
	margin-top: -1.5vw;
}
header .menu_btn::after {
	margin-top: 1.5vw;
}
header.show .menu {
	clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
}
header.show .menu_btn::before {
	transform: translate(-50%, -50%) rotate(45deg);
	margin-top: 0;
}
header.show .menu_btn::after {
	transform: translate(-50%, -50%) rotate(-45deg);
	margin-top: 0;
}
footer {
	margin: 0;
	border-top: solid 1px #ffffff75;
}
footer .menu {
	padding: 3vw 4vw 0;
	text-align: left;
	font-size: 0;
}
footer .menu a {
	width: 50%;
	margin: 1.4vw 0 1.4vw;
	font-size: 3.6vw;
	line-height: 1.8;
	padding-left: 4.3vw;
}
footer .menu a::before {
	width: 1.6vw;
	margin-top: -0.8vw;
}
footer .menu a.out {
	width: fit-content;
	padding-right: 3vw;
	background-size: auto 2.6vw;
}
footer .copy {
	margin: 3vw 0 0;
	font-size: 3vw;
	line-height: 1;
	padding: 6vw 0;
}
#modal {
	top: 16vw;
	height: calc(100% - 16vw);
	padding: 18vw 0;
}
#modal .wrap {}
#modal h2 {
	font-size: 11vw;
}
#modal h3 {
	font-size: 4.6vw;
	line-height: 1.5;
	margin-top: 5vw;
}
#modal .tag {
	margin-top: 4vw;
}
#modal .tag span {
	font-size: 3vw;
	line-height: 1.8;
	padding: 0.9vw 3.7vw;
	margin: 0 1.7vw 2.7vw 0;
}
#modal .tag span::before {}
#modal figure {
	margin-top: 6vw;
}
#modal figure img {}
#modal figure figcaption {
	font-size: 2.8vw;
	margin: 3vw 0 0;
}
#modal p {
	font-size: 3.3vw;
	line-height: 1.9;
	margin-top: 4vw;
}
#modal button.back {
	font-size: 3.4vw;
	line-height: 5vw;
	padding: 4vw 0 4vw 17.5vw;
	margin-top: 4vw;
}
#modal button.back::before {
	width: 12vw;
	background-size: auto 6vw;
}
#modal button.mark {
	right: 3vw;
	width: 8.2vw;
}
}