/* -----------------------------------------------
= reset
----------------------------------------------- */
html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
}
body, h1, h2, h3, h4, h5, h6, p,
dl, dt, dd, ol, ul, li,
figure, figcaption {
	margin: 0;
	padding: 0;
	font-size: 1em;
	font-weight: 500;
}
ol, ul {
	list-style-type: "";
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
th, td {
	text-align: left;
	vertical-align: middle;
}
a {
	color: inherit;
	text-decoration: none;
}
a img {
	border: none;
}
img {
	width: 100%;
	height: auto;
	vertical-align: bottom;
}
button,
textarea {
	margin: 0;
	padding: 0;
	color: inherit;
	border: none;
	border-radius: 0;
	background: transparent;
	-webkit-appearance: none;
	appearance: none;
	font: inherit;
}
button {
	text-align: left;
	cursor: pointer;
	letter-spacing: .02em;
}
input {
	border: none;
	border-radius: 0;
	font: inherit;
}
select {
	appearance: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	color: inherit;
	cursor: pointer;
	font: inherit;
}
iframe {
	border: none;
}
/* -----------------------------------------------
= variable
----------------------------------------------- */
:root {
	--black: #1E1E1E;
	--dark-blue: #35247D;
	--yellow: #FFED61;
	--jp: "Noto Sans JP", sans-serif;
	--en: "Outfit", sans-serif;
}
/* -----------------------------------------------
= base
----------------------------------------------- */
body {
	color: var(--black);
	font-family: var(--jp);
	font-weight: 400;
	line-height: 1.5;
}
.is-pc {
	display: none;
}
@media (min-width: 768px) {/* PC */
.is-pc {
	display: block;
}
.is-sp {
	display: none;
}
}/* @media */
/* -----------------------------------------------
= header
----------------------------------------------- */
.header {
	display: flex;
	align-items: center;
	gap: 0 10px;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 10;
	width: 100%;
	min-height: 59px;
	background: #fff;
	border-bottom: 1px solid #D3DFF2;
}
.header .site-name {
	flex: 1;
	margin: 3px 0 0 20px;
}
.header .site-name .logo {
	display: inline-flex;
	align-items: center;
	gap: 0 15px;
}
.header .site-name a:first-child span {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	width: fit-content;
}
.header .site-name a:first-child span img {
	display: block;
	margin-inline: auto;
	text-align: center;
}
.header .site-name a:first-child span img:first-child {
	width: 104px;
	margin-bottom: 3.65px;
}
.header .site-name a:first-child span img:last-child {
	width: 69px;
}
.header .site-name a:last-child {
	color: var(--dark-blue);
	font-family: var(--en);
	font-size: calc(1rem / 1.6);
	font-weight: 600;
	letter-spacing: .03em;
}
.header-entry {
	display: inline-block;
	padding: 5px 19px;
	color: #fff;
	background: var(--dark-blue);
	border-radius: 4px;
	border: 1px solid transparent;
	font-weight: 500;
	line-height: 1.2;
	text-align: center;
	letter-spacing: .05em;
}
.header-entry span {
	display: block;
}
.header-entry span:first-child {
	font-family: var(--en);
	font-size: calc(1.3rem / 1.6);
}
.header-entry span:last-child {
	font-size: calc(.7rem / 1.6);
}
@media (min-width: 1024px) {/* narrowPC */
.header {
	gap: 0 10px;
	min-height: 79px;
}
.header .site-name {
	margin: 0 0 0 calc(40 / 1440 * 100vw);
}
.header .site-name a {
	gap: 0 calc(30 / 1440 * 100vw);
}
.header .site-name a:first-child span img {
	display: inline-block;
	vertical-align: middle;
}
.header .site-name a:first-child span img:first-child {
	width: 124px;
	margin: 0 0 4px;
}
.header .site-name a:first-child span img:last-child {
	width: 90px;
}
.header .site-name a:last-child {
	font-size: calc(1.4rem / 1.6);
}
.header-entry {
	display: none;
}
}/* @media */
@media (min-width: 1280px) {/* widePC */
.header .site-name a:first-child span {
	flex-direction: row;
	gap: 0 6px;
}
.header .site-name a:first-child span img:last-child {
	width: 127px;
	margin: 0;
}
}/* @media */
@media (hover: hover) {
.header-entry {
	transition: .3s;
}
.header-entry:hover {
	color: var(--dark-blue);
	background: #fff;
	border-color: var(--dark-blue);
}
.header .site-name a:last-child {
	transition: .3s;
}
.header .site-name a:last-child:hover {
	opacity: .8;
}
}/* @media */
/* -----------------------------------------------
= nav
----------------------------------------------- */
.btn-nav {
	position: relative;
	z-index: 20;
	width: 46px;
	height: 36px;
	margin-right: 10px;
	background: #fff;
	border: 1px solid #EAF0F9;
	border-radius: 4px;
}
.btn-nav span {
	display: block;
	position: absolute;
	top: 11px;
	left: 13px;
	width: 18px;
	height: 12px;
	background: url(../img/nav-btn.svg) no-repeat 50% / cover;
}
.btn-nav[aria-expanded="true"] span {
	top: 12px;
	left: 14px;
	width: 16px;
	height: 10px;
	background: url(../img/nav-btn-close.svg) no-repeat 50% / cover;
}
.nav-overlay {
	position: fixed;
	inset: 0;
	background: rgba(53,36,125,.9);
	z-index: 10;
	opacity: 0;
	pointer-events: none;
	transition: opacity .4s;
}
.nav-overlay[aria-hidden="false"] {
	opacity: 1;
	pointer-events: auto;
}
.nav {
	position: fixed;
	top: 12px;
	right: 10px;
	z-index: 15;
	width: 200px;
	background: #EAF0F9;
	opacity: 0;
	pointer-events: none;
	transition: opacity .4s;
}
.nav[aria-hidden="false"] {
	opacity: 1;
	pointer-events: auto;
}
.nav-inner {
	padding: 48px 30px 30px;
	max-height: calc(100svh - 90px);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.nav li {
	margin-bottom: 30px;
}
.nav li a {
	display: inline-block;
	position: relative;
}
.nav li a::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 1px;
	background: var(--dark-blue);
	opacity: 0;
}
.nav .num {
	display: block;
	color: var(--dark-blue);
	font-family: var(--en);
	font-size: calc(.8rem / 1.6);
	font-weight: 700;
	letter-spacing: .02em;
}
.nav .text {
	display: block;
	font-size: calc(1.2rem / 1.6);
	font-weight: 600;
	letter-spacing: .05em;
}
.nav-entry {
	display: block;
	padding: 5px 19px;
	color: #fff;
	background: var(--dark-blue);
	border: 1px solid transparent;
	border-radius: 4px;
	font-weight: 500;
	text-align: center;
	line-height: 1.231;
	letter-spacing: .05em;
}
.nav-entry span {
	display: block;
}
.nav-entry span:first-child {
	font-size: calc(1.3rem / 1.6);
}
.nav-entry span:last-child {
	font-size: calc(.7rem / 1.6);
}
@media (min-width: 1024px) {/* narrowPC */
.btn-nav {
	display: none;
}
.nav {
	position: static;
	width: auto;
	background: transparent;
	opacity: 1;
	pointer-events: auto;
}
.nav-inner {
	display: flex;
	align-items: center;
	gap: 0 calc(40 / 1440 * 100vw);
	max-height: none;
	padding: 0;
	overflow-y: visible;
}
.nav ul {
	display: flex;
	align-items: center;
	gap: 0 calc(30 / 1440 * 100vw);
}
.nav li {
	margin-bottom: 0;
	text-align: center;
}
.nav li a {
	display: block;
	padding-block: 14px;
	position: relative;
}
.nav li a::before {
	bottom: 14px;
}
.nav li a::after {
	content: "";
	position: absolute;
	left: calc(50% - 6px);
	bottom: 0;
	width: 12px;
	height: 10px;
	background: var(--dark-blue);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.nav .num {
	font-size: calc(1rem / 1.6);
}
.nav .text {
	font-size: calc(14 / 1280 * 100vw);
}
.nav-entry {
	margin: 0 calc(40 / 1440 * 100vw) 0 0;
	padding: 6px calc(53 / 1440 * 100vw);
	border-radius: 5px;
	line-height: 1.2;
	text-align: center;
}
.nav-entry span:first-child {
	font-size: calc(16 / 1280 * 100vw);
}
.nav-entry span:last-child {
	font-size: calc(10 / 1280 * 100vw);
}
}/* @media */
@media (min-width: 1280px) {/* widePC */
.nav .text {
	font-size: calc(1.4rem / 1.6);
}
.nav-entry span:first-child {
	font-size: calc(1.6rem / 1.6);
}
.nav-entry span:last-child {
	font-size: calc(1rem / 1.6);
}
}/* @media */
@media (hover: hover) {
.btn-nav {
	transition: opacity .3s;
}
.btn-nav:hover {
	opacity: .6;
}
.nav li a::before {
	transition: opacity .3s;
}
.nav li a:hover::before {
	opacity: 1;
}
.nav-entry {
	transition: .3s;
}
.nav-entry:hover {
	color: var(--dark-blue);
	background: #fff;
	border-color: var(--dark-blue);
}
.nav li a::after {
	transition: opacity .3s;
}
.nav li a:hover::after {
	opacity: 0;
}
}/* @media */
/* -----------------------------------------------
= main
----------------------------------------------- */
.main {
	margin-top: 60px;
	scroll-margin-top: 60px;
	padding-bottom: 1px;
	background: url(../img/bg-main.png) repeat 0 0 / 720px 584px;
}
@media (min-width: 768px) {/* PC */
.main {
	margin-top: 80px;
	scroll-margin-top: 80px;
	padding-bottom: 80px;
}
}/* @media */
/* -----------------------------------------------
= page-title
----------------------------------------------- */
.page-title {
	padding: 150px 20px 200px;
	text-align: center;
}
.page-title img {
	max-width: 350px;
}
@media (min-width: 768px) {/* PC */
.page-title {
	display: grid;
	place-content: center;
	position: relative;
	height: calc(100vh - 80px);
	min-height: 528px;
	padding: 0;
}
.page-title img {
	max-width: 703px;
	margin-bottom: 150px;
}
.page-title .scroll {
	position: absolute;
	bottom: 94px;
	width: 100%;
	padding-bottom: 40px;
	color: var(--dark-blue);
	font-family: var(--en);
	font-size: calc(1.8rem / 1.6);
}
.page-title .scroll::before,
.page-title .scroll::after {
	content: "";
	position: absolute;
}
.page-title .scroll::before {
	left: 50%;
	bottom: 16px;
	width: 1px;
	height: 16px;
	background: var(--dark-blue);
}
.page-title .scroll::after {
	left: calc(50% - 6px);
	bottom: 0;
	width: 14px;
	height: 12px;
	background: var(--dark-blue);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
}
}/* @media */
/* -----------------------------------------------
= theme
----------------------------------------------- */
.theme {
	scroll-margin-top: 60px;
	padding: 0 20px 80px;
}
.theme-num {
	max-width: 110px;
	margin: 0 auto 15px;
	padding-block: 4px;
	color: #fff;
	background: var(--dark-blue);
	font-family: var(--en);
	font-size: calc(1.4rem / 1.6);
	font-weight: 500;
	text-align: center;
	letter-spacing: .05em;
}
.theme h2 {
	margin-bottom: 20px;
	color: var(--dark-blue);
	font-size: calc(3.6rem / 1.6);
	font-weight: 700;
	line-height: calc(48 / 36);
	text-align: center;
	letter-spacing: .05em;
}
.theme .more li + li {
	margin-top: 20px;
}
.theme .more a {
	display: block;
	position: relative;
	max-width: 246px;
	margin-inline: auto;
	padding: 17px;
	color: var(--dark-blue);
	background: #fff;
	border: 1px solid var(--dark-blue);
	box-shadow: 4px 4px 0 var(--dark-blue);
	font-size: calc(1.6rem / 1.6);
	font-weight: 700;
	text-align: center;
	letter-spacing: .05em;
}
.theme .more a::after {
	content: "";
	position: absolute;
	top: calc(50% - 7px);
	right: 23px;
	width: 12px;
	height: 14px;
	background: var(--dark-blue);
	clip-path: polygon(0 0, 100% 50%, 0 100%);
}
@media (min-width: 768px) {/* PC */
.theme {
	scroll-margin-top: 80px;
	padding-bottom: 120px;
}
.theme-num {
	max-width: 140px;
	margin-bottom: 10px;
	font-size: calc(1.8rem / 1.6);
}
.theme h2 {
	margin-bottom: 40px;
	font-size: calc(6rem / 1.6);
	line-height: calc(100 / 60);
}
.theme .more {
	display: flex;
	justify-content: center;
	gap: 0 40px;
}
.theme .more li {
	width: 320px;
}
.theme .more li + li {
	margin-top: 0;
}
.theme .more a {
	max-width: none;
	min-width: 264px;
	padding: 27px;
}
}/* @media */
@media (hover: hover) {
.theme .more a,
.theme .more a::after {
	transition: .3s;
}
.theme .more a:hover {
	color: #fff;
	background: var(--dark-blue);
}
.theme .more a:hover::after {
	background: #fff;
}
}/* @media */
/* -----------------------------------------------
= theme01
----------------------------------------------- */
.theme01 li {
	position: relative;
	padding: 20px 30px 30px;
	background: #fff;
	border: 1px solid var(--dark-blue);
	box-shadow: -4px 4px 0 var(--dark-blue);
}
.theme01 li + li {
	margin-top: 20px;
}
.theme01 li .icon {
	position: absolute;
	top: 20px;
	left: 30px;
	width: 26px;
}
.theme01 li .num {
	margin-bottom: 16px;
	text-align: right;
}
.theme01 li .num img {
	width: 128px;
}
.theme01 li h3 {
	display: inline;
	color: var(--dark-blue);
	background: linear-gradient(transparent 75%, var(--yellow) 75%);
	font-size: calc(2.6rem / 1.6);
	font-weight: 800;
	line-height: calc(42 / 26);
	letter-spacing: .05em;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}
.theme01 li .text {
	margin-top: 20px;
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
	letter-spacing: .03em;
}
.theme01 li .note {
	margin-top: 10px;
	font-size: calc(1.2rem / 1.6);
	line-height: calc(18 / 12);
	letter-spacing: .02em;
}
@media (min-width: 768px) {/* PC */
.theme01 ol {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(278px, 1fr));
	gap: 16px;
	max-width: 1160px;
	margin-inline: auto;
}
.theme01 li {
	padding: 20px 26px 25px;
}
.theme01 li + li {
	margin-top: 0;
}
.theme01 li .icon {
	top: 15px;
	left: 28px;
}
.theme01 li .num img {
	width: 137px;
}
.theme01 li h3 {
	letter-spacing: 0;
}
.theme01 li .text {
	letter-spacing: 0;
}
.theme01 li .note {
	letter-spacing: 0;
}
}/* @media */
/* -----------------------------------------------
= theme02
----------------------------------------------- */
.theme02 .list {
	max-width: 310px;
	margin: 0 auto 20px;
}
.theme02 .list .item {
	position: relative;
	padding: 25px 20px 20px;
	background: rgba(255,255,255,.5);
	border: 1px solid var(--black);
}
.theme02 .list .item + .item {
	margin-top: 15px;
}
.theme02 .list .item img {
	position: absolute;
	top: 20px;
	right: 20px;
	width: 72px;
}
.theme02 .list .item h3 {
	color: var(--dark-blue);
	font-size: calc(1.8rem / 1.6);
	font-weight: 700;
	letter-spacing: .01em;
}
.theme02 .list .item .num {
	margin-bottom: 5px;
	font-size: calc(1.6rem / 1.6);
	font-weight: 600;
	letter-spacing: .01em;
}
.theme02 .list .item .num span {
	margin-right: 5px;
	font-family: var(--en);
	font-size: calc(6rem / 1.6);
	letter-spacing: .05em;
}
.theme02 .list .item .text {
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
	letter-spacing: .05em;
}
@media (min-width: 768px) {/* PC */
.theme02 .list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(310px, 1fr));
	gap: 15px;
	max-width: 960px;
	margin-bottom: 40px;
}
.theme02 .list .item {
	padding: 20px;
}
.theme02 .list .item + .item {
	margin-top: 0;
}
}/* @media */
/* -----------------------------------------------
= theme03
----------------------------------------------- */
.theme03 .intro {
	margin-bottom: 20px;
}
.theme03 .intro img {
	display: block;
	max-width: 300px;
	margin: 0 auto 20px;
}
.theme03 .intro p {
	margin-inline: 20px;
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
	letter-spacing: .03em;
}
.theme03 .check {
	margin-bottom: 20px;
	padding: 20px;
	background: #EAF0F9;
	text-align: center;
}
.theme03 .check .en img {
	width: 110px;
}
.theme03 .check h3 {
	margin-bottom: 20px;
	color: var(--dark-blue);
	font-size: calc(2.6rem / 1.6);
	font-weight: 800;
	line-height: calc(42 / 26);
	letter-spacing: .04em;
}
.theme03 .check .item + .item {
	margin-top: 20px;
	padding-top: 20px;
	border-top: 1px solid #fff;
}
.theme03 .check .item img {
	margin-bottom: 20px;
	width: 80px;
}
.theme03 .check .item h4 {
	margin-bottom: 10px;
	font-size: calc(1.8rem / 1.6);
	font-weight: 700;
	line-height: calc(30 / 18);
	letter-spacing: .05em;
}
.theme03 .check .item p {
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
	text-align: left;
	letter-spacing: .05em;
}
@media (min-width: 768px) {/* PC */
.theme03 .intro {
	display: flex;
	align-items: center;
	gap: 0 60px;
	max-width: 760px;
	margin: 0 auto 40px;
}
.theme03 .intro img {
	order: 2;
	margin: 0;
}
.theme03 .intro p {
	order: 1;
	max-width: 400px;
	margin-inline: auto;
	font-size: calc(1.6rem / 1.6);
	line-height: calc(30 / 16);
	letter-spacing: .05em;
}
.theme03 .check {
	max-width: 880px;
	margin: 0 auto 40px;
	padding: 30px 40px 40px;
}
.theme03 .check h3 {
	margin-bottom: 30px;
	letter-spacing: .05em;
}
.theme03 .check .item {
	display: flex;
	align-items: center;
	gap: 0 40px;
}
.theme03 .check .item img {
	margin-bottom: 0;
}
.theme03 .check .item h4 {
	width: 180px;
	margin-bottom: 0;
	text-align: left;
}
.theme03 .check .item p {
	flex: 1;
}
}/* @media */
/* -----------------------------------------------
= theme04
----------------------------------------------- */
.theme04 h2 {
	margin-bottom: 30px;
}
.theme04 h2 span {
	display: block;
}
.theme04 h2 .en {
	font-size: calc(4rem / 1.6);
	line-height: calc(56 / 40);
}
.theme04 h2 .jp {
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
}
.theme04 .item {
	display: flex;
	gap: 0 10px;
}
.theme04 .item + .item {
	margin-top: 15px;
}
.theme04 .item .thm {
	width: 80px;
}
.theme04 .item .thm .name {
	margin-bottom: 5px;
	font-size: calc(1rem / 1.6);
	font-weight: 600;
	line-height: calc(24 / 10);
	letter-spacing: .05em;
}
.theme04 .item .thm .name span {
	font-size: calc(1.6rem / 1.6);
	line-height: calc(24 / 16);
}
.theme04 .item .thm .division {
	font-size: calc(1rem / 1.6);
	line-height: calc(16 / 10);
}
.theme04 .item .text {
	flex: 1;
	position: relative;
	padding: 20px;
	background: #D3DFF2;
	font-size: calc(1.3rem / 1.6);
	line-height: calc(22 / 13);
}
.theme04 .item .text::before {
	content: "";
	position: absolute;
	top: 50px;
	width: 10px;
	height: 8px;
	background: #D3DFF2;
}
.theme04 .item.type01 .text::before {
	left: -10px;
	clip-path: polygon(0 50%, 100% 0, 100% 100%);
}
.theme04 .item.type02 .thm {
	order: 2;
	text-align: right;
}
.theme04 .item.type02 .text {
	order: 1;
}
.theme04 .item.type02 .text::before {
	right: -10px;
	clip-path: polygon(0 0, 100% 50%, 0 100%);
}
.theme04 .more {
	margin-top: 20px;
}
@media (min-width: 768px) {/* PC */
.theme04 h2 {
	margin-bottom: 40px;
}
.theme04 h2 .en {
	font-size: calc(6rem / 1.6);
	line-height: calc(100 / 60);
}
.theme04 h2 .jp {
	font-size: calc(1.8rem / 1.6);
	line-height: calc(30 / 18);
}
.theme04 .item {
	display: flex;
	gap: 0 30px;
	max-width: 1038px;
	margin-inline: auto;
}
.theme04 .item + .item {
	margin-top: 40px;
}
.theme04 .item .thm {
	display: flex;
	align-items: center;
	gap: 0 10px;
	width: 260px;
}
.theme04 .item .thm img {
	width: 120px;
}
.theme04 .item .thm .set {
	flex: 1;
}
.theme04 .item .thm .name {
	font-size: calc(1.2rem / 1.6);
	line-height: calc(30 / 12);
}
.theme04 .item .thm .name span {
	font-size: calc(1.8rem / 1.6);
	line-height: calc(30 / 16);
}
.theme04 .item .thm .division {
	font-size: calc(1.2rem / 1.6);
	line-height: calc(20 / 12);
}
.theme04 .item .text {
	padding-inline: 25px;
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
}
.theme04 .item .text::before {
	top: calc(50% - 6px);
	width: 18px;
	height: 12px;
}
.theme04 .item.type01 .thm .set {
	order: 1;
	text-align: right;
}
.theme04 .item.type01 .thm img {
	order: 2;
}
.theme04 .item.type01 .text {
	margin-right: 130px;
}
.theme04 .item.type01 .text::before {
	left: -18px;
}
.theme04 .item.type02 .thm {
	order: 2;
}
.theme04 .item.type02 .thm img {
	order: 1;
}
.theme04 .item.type02 .thm .set {
	order: 2;
	text-align: left;
}
.theme04 .item.type02 .text {
	margin-left: 130px;
}
.theme04 .item.type02 .text::before {
	right: -18px;
}
.theme04 .more {
	margin-top: 40px;
}
}/* @media */
/* -----------------------------------------------
= company
----------------------------------------------- */
.company {
	margin-bottom: 80px;
}
.company h3 {
	text-align: center;
}
.company h3 span {
	display: inline-block;
	padding: 4px 25px;
	color: #fff;
	background: var(--dark-blue);
	font-size: calc(1.4rem / 1.6);
	letter-spacing: .05em;
}
.company .outline,
.company .office {
	padding: 30px 20px;
	background: #fff;
}
.company .outline table {
	width: 100%;
}
.company .outline th,
.company .outline td {
	padding-block: 10px;
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
	letter-spacing: .05em;
	vertical-align: top;
}
.company .outline th {
	color: var(--dark-blue);
	width: 6.5em;
	font-weight: 600;
}
.company .outline h4 {
	color: var(--dark-blue);
	font-weight: 500;
}
.company .outline ul {
	margin: 5px 0 0 1.8em;
	list-style-type: disc;
	font-size: calc(1.2rem / 1.6);
	line-height: calc(20 / 12);
}
.company .outline ul + h4 {
	margin-top: 15px;
}
.company .office .item-wrap {
	margin-bottom: 15px;
}
.company .office .item + .item,
.company .office .item + h4 {
	margin-top: 20px;
}
.company .office h4 {
	margin-bottom: 15px;
	padding: 5px;
	background: #D3DFF2;
	font-size: calc(1.4rem / 1.6);
	font-weight: 500;
	line-height: calc(24 / 14);
	text-align: center;
	letter-spacing: .05em;
}
.company .office .address {
	margin: 0 20px 10px;
	font-size: calc(1.2rem / 1.6);
	line-height: calc(20 / 12);
}
.company .office img {
	display: block;
	max-width: 160px;
	margin-inline: auto;
}
.company .office h5 {
	margin: 0 20px 5px;
	font-size: calc(1.4rem / 1.6);
	line-height: calc(28 / 14);
}
.company .office ul {
	margin: 5px 0 0 40px;
	list-style-type: disc;
	font-size: calc(1.2rem / 1.6);
	line-height: calc(20 / 12);
	letter-spacing: .05em;
}
@media (min-width: 768px) {/* PC */
.company {
	max-width: 960px;
	margin: 0 auto 40px;
}
.company h3 span {
	font-size: calc(1.8rem / 1.6);
}
.company .outline,
.company .office {
	padding: 40px 20px;
}
.company .outline table {
	max-width: 760px;
	margin-inline: auto;
}
.company .outline th,
.company .outline td {
	padding-block: 15px;
	font-size: calc(1.6rem / 1.6);
	line-height: calc(30 / 16);
}
.company .outline th {
	width: 27.6%;
}
.company .outline h4 {
	max-width: 760px;
	margin-inline: auto;
}
.company .outline ul {
	margin: 5px 0 0 1.8em;
	font-size: calc(1.4rem / 1.6);
	line-height: calc(26 / 14);
}
.company .outline ul + h4 {
	margin-top: 0;
}
.company .office .item-wrap {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px 40px;
	max-width: 760px;
	margin: 0 auto 40px;
}
.company .office .item + .item,
.company .office .item + h4 {
	margin-top: 0;
}
.company .office h4 {
	max-width: 760px;
	margin: 0 auto 20px;
	padding: 5px;
	font-size: calc(1.6rem / 1.6);
	line-height: calc(30 / 16);
}
.company .office .address {
	margin: 0 0 10px;
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
}
.company .office h5 {
	margin: 0 0 5px;
	font-size: calc(1.6rem / 1.6);
	line-height: calc(30 / 16);
}
.company .office ul {
	margin: 5px 0 0 20px;
	font-size: calc(1.4rem / 1.6);
	line-height: calc(24 / 14);
}
}/* @media */
@media (hover: hover) {
.company a:hover {
	text-decoration: underline;
}
}/* @media */
/* -----------------------------------------------
= footer
----------------------------------------------- */
.footer .menu {
	padding: 30px 28px 70px;
}
.footer .menu > ul {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 20px;
}
.footer .menu p {
	margin-bottom: 10px;
	font-size: calc(1.5rem / 1.6);
	font-weight: 700;
}
.footer .menu ul li ul li {
	font-size: calc(1.35rem / 1.6);
	line-height: calc(24 / 13.5);
	font-weight: 400;
}
.footer .inner {
	padding: 13px;
	background: #f5f5f5;
	font-size: calc(1.2rem / 1.6);
	line-height: calc(22 / 12);
	text-align: center;
}
.footer .inner ul {
	margin-bottom: 15px;
	letter-spacing: .05em;
}
.footer .inner .copyright {
	letter-spacing: .02em;
}
.footer .page-top a {
	position: fixed;
	right: 10px;
	bottom: 10px;
	z-index: 5;
	width: 50px;
	height: 50px;
	background: #333;
	border-radius: 50%;
	opacity: .8;
}
.footer .page-top a::before {
	content: "";
	position: absolute;
	top: calc(50% - 1px);
	left: calc(50% - 8px);
	width: 16px;
	height: 16px;
	border-top: 1px solid #fff;
	border-right: 1px solid #fff;
	transform: rotate(-45deg);
}
@media (min-width: 768px) {/* PC */
.footer .menu {
	padding: 70px 20px 125px;
}
.footer .menu > ul {
	max-width: 1100px;
	margin-inline: auto;
}
.footer .menu p {
	margin-bottom: 13px;
	font-size: calc(1.8rem / 1.6);
}
.footer .menu ul li ul li {
	font-size: calc(1.62rem / 1.6);
}
.footer .inner {
	padding: 20px;
	font-size: calc(1.62rem / 1.6);
}
.footer .inner ul {
	display: flex;
	justify-content: center;
	gap: 30px;
}
.footer .inner .copyright {
	font-size: calc(1.44rem / 1.6);
}
.footer .page-top a {
	right: 25px;
	bottom: 45px;
	width: 80px;
	height: 80px;
}
.footer .page-top a::before {
	top: calc(50% - 8px);
	left: calc(50% - 15px);
	width: 30px;
	height: 30px;
}
}/* @media */
@media (hover: hover) {
.footer .menu a {
	transition: color .3s;
}
.footer .menu a:hover {
	color: var(--dark-blue);
}
.footer .inner li a {
	transition: color .3s;
}
.footer .inner li a:hover {
	color: #727a85;
	opacity: .8;
}
.footer .page-top a {
	transition: opacity .3s;
}
.footer .page-top a:hover {
	opacity: 1;
}
}/* @media */
