@charset "UTF-8";
/*************************************
MIXINS
*************************************/
/*************************************
MIXINS
*************************************/
.scpop {
  transform: scale3d(0, 0, 0);
  transform-origin: center center;
  will-change: animation;
}

.scpop.ac {
  animation: bounce 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
}

/*------------------------------------
animation
	*/
@keyframes hueRotate {
  0% {
    filter: hue-rotate(0deg);
  }
  100% {
    filter: hue-rotate(359deg);
  }
}
@keyframes photoCoverAnim {
  0% {
    filter: grayscale(95%);
  }
  100% {
    filter: grayscale(0%);
  }
}
@keyframes bounce {
  0% {
    transform: scale3d(0, 0, 0);
  }
  40% {
    transform: scale3d(1.2, 1.2, 1.2);
  }
  60% {
    transform: scale3d(0.9, 0.9, 0.9);
  }
  80% {
    transform: scale3d(1.05, 1.05, 1.05);
  }
  100% {
    transform: scale3d(1, 1, 1);
  }
}
/*------------------------
SIZE
-------------------------*/
/*------------------------
COLOR
-------------------------*/
a {
  color: #333;
  text-decoration: none;
}

/*------------------------
TEXT SET
-------------------------*/
html {
  font-size: 62.5%;
}

body {
  font-size: 1.4em;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  -ms-font-smoothing: antialiased;
  -moz-font-smoothing: antialiased;
  -o-font-smoothing: antialiased;
  font-smoothing: antialiased;
  box-sizing: border-box;
}
@media all and (-ms-high-contrast: none) {
  body {
    font-family: "Noto Sans JP", sans-serif;
  }
}
/*------------------------
BASIC LAYOUT / MODULE
-------------------------*/
img {
  image-rendering: -webkit-optimize-contrast;
}

.pcHide {
  display: none;
}
@media screen and ( max-width : 768px ) {
  .pcHide {
    display: block;
  }
}

.spHide {
  display: block;
}
@media screen and ( max-width : 768px ) {
  .spHide {
    display: none;
  }
}

.lbx {
  cursor: pointer;
}

.tac {
  text-align: center;
}

.flex {
  display: flex;
  flex-wrap: wrap;
}

.wrap {
  width: 100%;
  max-width: 1760px;
  margin: 0 auto;
  box-sizing: border-box;
}
.minWrap {
  width: 100%;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

figure {
  margin: 0;
}

/*------------------------
RESET
-------------------------*/
body {
  word-wrap: break-word;
}

th, td {
  text-align: left;
  vertical-align: top;
  border: none;
}

caption {
  text-align: left;
}

img {
  border: 0;
  vertical-align: bottom;
}

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, textarea, p, blockquote, th, td {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

fieldset, img {
  border: 0;
}

a {
  outline: none;
}

address, caption, cite, code, dfn, em, strong, th, var {
  font-style: normal;
  font-weight: normal;
}

ol, ul {
  list-style: none;
}

caption, th {
  text-align: left;
}

h1, h2, h3, h4, h5, h6 {
  font-size: 100%;
  font-weight: normal;
}

q:before, q:after {
  content: "";
}

abbr, acronym {
  border: 0;
}

/*
	clearfix
------------------------------------- */
.clearfix:after {
  content: ".";
  display: block;
  visibility: hidden;
  clear: both;
  height: 0.1px;
  font-size: 0.1em;
  line-height: 0;
}

* html .clearfix {
  display: inline-block;
}

.clearfix {
  height: 1%;
}

.clearfix {
  display: block;
}

/*html5の要素をblock*/
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary {
  display: block;
  box-sizing: border-box;
}

/*------------------------
FORM
-------------------------*/
input, textarea, select {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
}

/*------------------------
TABLE
-------------------------*/
table {
  border-collapse: collapse;
  border-spacing: 0;
  font-size: inherit;
  width: 100%;
}

/*==============================================
  Base Styles
==============================================*/
body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 600;
  color: #000;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
  letter-spacing: 0.05em;
  line-height: 1.5;
  background: #fff;
}

/* スプラッシュ画面 */
#splash {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #fff;
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 1;
  transition: opacity 0.8s ease;
}
#splash.is-hidden {
  opacity: 0;
  pointer-events: none;
}
#splash #splash-logo img {
  width: 200px;
  animation: splashFadeIn 1s ease forwards;
}

@keyframes splashFadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/* ページコンテンツフェイドイン */
body.is-loaded header,
body.is-loaded main,
body.is-loaded footer {
  animation: pageIn 1s ease forwards;
}

@keyframes pageIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/* 下層ページ：読み込み時フェイドイン */
body.underContent {
  animation: pageIn 1s ease forwards;
}

.en {
  line-height: 1.2;
  letter-spacing: 0.05em;
}

.pc {
  display: block !important;
}
@media screen and ( max-width : 768px ) {
  .pc {
    display: none !important;
  }
}

.sp {
  display: none !important;
}
@media screen and ( max-width : 768px ) {
  .sp {
    display: block !important;
  }
}

a {
  transition: opacity 0.3s;
}
a:hover {
  opacity: 0.7;
}

img {
  width: 100%;
}

.textSetting {
  display: block;
}

.bottom0 {
  margin-bottom: 0 !important;
}

.linkTemplate {
  width: 100%;
}
@media screen and ( max-width : 768px ) {
  .linkTemplate {
    justify-content: flex-start;
  }
}
.linkTemplate a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 55px;
  padding: 12px 44px;
  border: 1px solid #3b56b2;
  background: #fff url("../images/common/linkArBlue.svg") no-repeat right 10px center;
  background-size: 20px 20px;
  color: #3b56b2;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-decoration: none;
  text-align: center;
  transition: opacity 0.3s;
}
@media screen and ( max-width : 768px ) {
  .linkTemplate a {
    min-width: 0;
    width: 100%;
    max-width: 320px;
    padding: 12px 48px 12px 20px;
  }
}
.linkTemplate a:hover {
  opacity: 0.85;
}

/*==============================================
  Header（トップ/header完成イメージ.svg 準拠）
==============================================*/
header {
  position: relative;
  width: 100%;
}
header .headerWrap {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  background: #fff;
  padding: 0 40px;
}
@media screen and ( max-width : 768px ) {
  header .headerWrap {
    padding: 0 20px;
    position: static;
    margin-bottom: 20px;
  }
}
header .headerWrap.newsDetailHeader {
  background: #000;
}
header .headerWrap .headerBox {
  width: 100%;
}
header .headerWrap .headerBox .child .inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 40px 0 110px;
  gap: 24px;
}
@media screen and ( max-width : 768px ) {
  header .headerWrap .headerBox .child .inner {
    align-items: center;
    flex-wrap: wrap;
    padding: 25px 0;
  }
}
header .headerWrap .headerBox .child .inner .headerLogo {
  flex-shrink: 0;
  align-self: center;
}
header .headerWrap .headerBox .child .inner .headerLogo h1 {
  margin: 0;
  line-height: 1;
}
header .headerWrap .headerBox .child .inner .headerLogo h1 a {
  display: block;
  text-decoration: none;
}
header .headerWrap .headerBox .child .inner .headerLogo h1 a img {
  display: block;
  width: 264.62px;
  height: auto;
  object-fit: contain;
  max-width: 100%;
}
@media screen and ( max-width : 768px ) {
  header .headerWrap .headerBox .child .inner .headerLogo h1 a img {
    height: 28px;
  }
}
header .headerWrap .headerBox .child .inner .headerRight {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 16px;
  flex-shrink: 0;
}
@media screen and ( max-width : 768px ) {
  header .headerWrap .headerBox .child .inner .headerRight {
    display: none;
  }
}
header .headerWrap .headerBox .child .inner .headerBottomRow {
  display: flex;
  align-items: center;
  gap: 24px;
}
header .headerWrap .headerBox .child .inner .headerBottomRow .headerNav .headerNavList {
  display: flex;
  align-items: center;
  gap: 42px;
  list-style: none;
  margin: 0;
  padding: 0;
}
@media screen and ( max-width : 1024px ) {
  header .headerWrap .headerBox .child .inner .headerBottomRow .headerNav .headerNavList {
    gap: 16px;
  }
}
header .headerWrap .headerBox .child .inner .headerBottomRow .headerNav .headerNavList .headerNavItem {
  margin: 0;
  padding: 0;
}
header .headerWrap .headerBox .child .inner .headerBottomRow .headerNav .headerNavList .headerNavItem .headerNavLink {
  display: block;
  color: #1955A6;
  text-decoration: none;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1;
  white-space: nowrap;
}
header .headerWrap .headerBox .child .inner .headerBottomRow .headerNav .headerNavList .headerNavItem .headerNavLink.underLine {
  text-decoration: underline;
}
header .heroWrap {
  position: relative;
  width: 100%;
  padding: 0 40px;
  min-height: 888px;
  overflow: hidden;
}
@media screen and ( max-width : 768px ) {
  header .heroWrap {
    padding: 0;
    min-height: 720px;
  }
}
header .heroWrap .heroBox {
  position: relative;
  width: 100%;
  min-height: 888px;
}
@media screen and ( max-width : 768px ) {
  header .heroWrap .heroBox {
    min-height: 720px;
  }
}
header .heroWrap .heroBox .child {
  width: 100%;
}
header .heroWrap .heroBox .child.heroSlider.slick-initialized .slick-list {
  overflow: hidden;
}
header .heroWrap .heroBox .child.heroSlider.slick-initialized .slick-slide {
  height: 888px;
}
@media screen and ( max-width : 768px ) {
  header .heroWrap .heroBox .child.heroSlider.slick-initialized .slick-slide {
    height: auto;
  }
}
header .heroWrap .heroBox .child .heroInner {
  position: relative;
  width: 100%;
  height: 888px;
}
@media screen and ( max-width : 768px ) {
  header .heroWrap .heroBox .child .heroInner {
    height: auto;
    padding-bottom: 30px;
  }
}
header .heroWrap .heroBox .child .heroInner .heroImage {
  position: absolute;
  left: 0;
  top: 179px;
  width: 66%;
  height: 655px;
  overflow: hidden;
  margin: 0;
  padding: 0;
}
@media screen and ( max-width : 768px ) {
  header .heroWrap .heroBox .child .heroInner .heroImage {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    height: auto;
  }
}
header .heroWrap .heroBox .child .heroInner .heroImage img {
  position: absolute;
  left: -135px;
  top: -6px;
  width: 1000px;
  height: 667px;
  max-width: none;
  object-fit: cover;
}
@media screen and ( max-width : 768px ) {
  header .heroWrap .heroBox .child .heroInner .heroImage img {
    position: relative;
    left: auto;
    top: auto;
    width: 100%;
    height: auto;
  }
}
header .heroWrap .heroBox .child .heroInner .heroText {
  position: absolute;
  right: 40px;
  top: 402px;
  height: 140px;
  z-index: 10;
  color: #000;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media screen and ( max-width : 768px ) {
  header .heroWrap .heroBox .child .heroInner .heroText {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    width: 100%;
    height: auto;
    min-height: 270px;
    padding: 20px 20px 0;
    margin: 0 auto;
  }
}
header .heroWrap .heroBox .child .heroInner .heroText .topHeroCatchJa,
header .heroWrap .heroBox .child .heroInner .heroText .topHeroCatchEn,
header .heroWrap .heroBox .child .heroInner .heroText .topHeroLead {
  -webkit-text-stroke: 4px #fff;
  text-stroke: 4px #fff;
  paint-order: stroke;
}
header .heroWrap .heroBox .child .heroInner .heroText .topHeroCatchJa {
  margin: 0;
  font-size: 3.5139vw;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1.05;
  white-space: nowrap;
  margin-bottom: 25px;
}
@media screen and ( max-width : 768px ) {
  header .heroWrap .heroBox .child .heroInner .heroText .topHeroCatchJa {
    position: static;
    font-size: 34px;
    line-height: 1.4;
    white-space: normal;
  }
}
header .heroWrap .heroBox .child .heroInner .heroText .topHeroCatchEn {
  margin: 0;
  font-size: 24px;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1.2;
  margin-bottom: 60px;
}
@media screen and ( max-width : 768px ) {
  header .heroWrap .heroBox .child .heroInner .heroText .topHeroCatchEn {
    position: static;
    font-size: 18px;
    margin-top: 0;
    margin-bottom: 20px;
  }
}
header .heroWrap .heroBox .child .heroInner .heroText .topHeroLead {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.07em;
  line-height: 1.9;
  white-space: nowrap;
}
@media screen and ( max-width : 768px ) {
  header .heroWrap .heroBox .child .heroInner .heroText .topHeroLead {
    position: static;
    font-size: 14px;
    margin-top: 0;
    white-space: normal;
    line-height: 1.6;
  }
}
header .heroWrap .heroBox .child .heroInner .heroText .heroAboutLink {
  margin-top: 58px;
  align-self: flex-end;
  margin-left: 0;
  width: 186.174px;
  padding-bottom: 9px;
  border-bottom: 1px solid #000;
  display: inline-flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  color: #000;
  text-decoration: none;
  box-sizing: border-box;
}
@media screen and ( max-width : 768px ) {
  header .heroWrap .heroBox .child .heroInner .heroText .heroAboutLink {
    width: 186.174px;
    margin-top: auto;
    margin-left: 0;
    margin-right: 0;
  }
}
header .heroWrap .heroBox .child .heroInner .heroText .heroAboutLink .heroAboutText {
  font-size: 16px;
  letter-spacing: 0.1em;
  line-height: 1;
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
  font-weight: 800;
}
header .heroWrap .heroBox .child .heroInner .heroText .heroAboutLink .heroAboutIcon {
  display: block;
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  object-fit: contain;
}
header .heroWrap .heroBox .heroPager {
  position: absolute;
  left: 0;
  top: 849px;
  display: flex;
  align-items: center;
  gap: 25px;
  z-index: 20;
}
@media screen and ( max-width : 768px ) {
  header .heroWrap .heroBox .heroPager {
    position: relative;
    left: auto;
    top: auto;
    padding: 12px 0 0;
    gap: 14px;
    justify-content: center;
  }
}
header .heroWrap .heroBox .heroPager .heroPagerDot {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  border: 1px solid #707070;
  background: #1955a6;
  box-sizing: border-box;
  display: block;
  padding: 0;
  margin: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  flex-shrink: 0;
}
header .heroWrap .heroBox .heroPager .heroPagerDot:focus-visible {
  outline: 2px solid #1955a6;
  outline-offset: 3px;
}
header .heroWrap .heroBox .heroPager .heroPagerDot.is-active {
  box-shadow: 0 0 0 1px #fff, 0 0 0 3px #1955a6;
}
@media screen and ( max-width : 768px ) {
  header .heroWrap .heroBox .heroPager .heroPagerDot {
    width: 10px;
    height: 10px;
  }
}

.headerSpNav {
  display: none;
  margin-left: auto;
}
@media screen and ( max-width : 768px ) {
  .headerSpNav {
    display: block;
    position: fixed;
    top: max(12px, env(safe-area-inset-top));
    right: 20px;
    z-index: 2100;
  }
}
.headerSpNav .drawer .menu-icon {
  width: 56px;
  height: 56px;
  position: relative;
  cursor: pointer;
  border: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #1955A6;
  border-radius: 50%;
  transition: opacity 0.3s;
}
.headerSpNav .drawer .menu-icon:hover {
  opacity: 0.9;
}
.headerSpNav .drawer .menu-icon .line1,
.headerSpNav .drawer .menu-icon .line2 {
  width: 24px;
  height: 2px;
  background: #fff;
  flex-shrink: 0;
  transition: all 0.3s;
}
.headerSpNav .drawer .menu-icon .menu-label {
  font-size: 12px;
  color: #fff;
  letter-spacing: 0.02em;
  line-height: 1;
}
.headerSpNav .drawer .menu-icon.clicked .line1 {
  transform: translateY(4px) rotate(45deg);
}
.headerSpNav .drawer .menu-icon.clicked .line2 {
  transform: translateY(-4px) rotate(-45deg);
}
.headerSpNav .drawer .menu-icon.clicked .menu-label {
  opacity: 0;
}

.drawer-content-bg {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  z-index: 1201;
}
.drawer-content-bg.clicked {
  opacity: 1;
  visibility: visible;
}

.drawer-content {
  position: fixed;
  top: 0;
  right: 0;
  width: min(86vw, 360px);
  height: 100vh;
  background: #1955A6;
  transform: translateX(100%);
  transition: transform 0.35s ease;
  z-index: 1202;
  overflow-y: auto;
}
.drawer-content.clicked {
  transform: translateX(0);
}
.drawer-content .drawer-contentArea {
  min-height: 100%;
  padding-top: 20px;
}
.drawer-content .drawerContent {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 24px 20px 28px;
}
.drawer-content .drawerNav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.drawer-content .drawerNav .logo img {
  display: block;
  width: auto;
  height: 28px;
}
.drawer-content .drawerNav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.drawer-content .drawerNav .contact a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 170px;
  height: 36px;
  border-radius: 18px;
  border: 1px solid #fff;
  color: #fff;
  text-decoration: none;
  font-size: 13px;
}
.drawer-content .drawerNav .contact a a {
  width: 100%;
  display: block;
}
.drawer-content .link ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.drawer-content .link .list a {
  display: block;
  padding: 14px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  color: #fff;
  text-decoration: none;
  font-size: 16px;
  letter-spacing: 0.03em;
}
.drawer-content .link2 {
  margin-top: auto;
  display: grid;
  gap: 8px;
}
.drawer-content .link2 a {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  font-size: 12px;
}
.drawer-content .drawerClose {
  margin-top: 8px;
  border: 1px solid #fff;
  border-radius: 999px;
  height: 42px;
  background: transparent;
  color: #fff;
  font-size: 14px;
  cursor: pointer;
}

@media screen and (min-width: 769px) {
  .drawer-content,
.drawer-content-bg {
    display: none;
  }
}
@media screen and ( max-width : 768px ) {
  body.drawer-is-open {
    overflow: hidden;
  }
}
/* in-view.js：.js-inview がビューポートに入ると .is-in-view が付与される（common.js） */
main .js-inview {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.75s ease, transform 0.75s ease;
}
main .js-inview.is-in-view {
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  main .js-inview {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
.aboutWrap {
  background-color: #fff;
  background-image: url("../images/top/aboutBack.png");
  background-repeat: no-repeat;
  background-position: center 20px;
  background-size: 771px auto;
  position: relative;
  overflow: hidden;
  padding: 60px 40px 130px;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .aboutWrap {
    padding: 30px 30px 130px;
  }
}
@media screen and ( max-width : 768px ) {
  .aboutWrap {
    padding: 30px 20px 60px;
    background-size: 90% auto;
    background-position: center;
  }
}
.aboutWrap .detailBox {
  position: relative;
  z-index: 1;
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  justify-content: flex-start;
}
@media screen and ( max-width : 1024px ) {
  .aboutWrap .detailBox {
    flex-direction: column;
    align-items: stretch;
    gap: 40px;
  }
}
@media screen and ( max-width : 768px ) {
  .aboutWrap .detailBox {
    gap: 28px;
  }
}
.aboutWrap .detailBox .titleChild {
  flex: 0 0 253px;
  width: 253px;
  max-width: 100%;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .aboutWrap .detailBox .titleChild {
    flex: none;
    width: 100%;
    padding-top: 0;
  }
}
.aboutWrap .detailBox .titleChild h3 {
  margin: 0;
  color: #1955a6;
  font-size: 48px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1;
  text-transform: uppercase;
}
@media screen and ( max-width : 768px ) {
  .aboutWrap .detailBox .titleChild h3 {
    font-size: 36px;
  }
}
.aboutWrap .detailBox .detailChild {
  flex: 1;
  min-width: 0;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .aboutWrap .detailBox .detailChild {
    width: 100%;
  }
}
.aboutWrap .detailBox .detailChild .title h4 {
  margin: 0 0 63px;
  color: #1955a6;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.45;
}
@media screen and ( max-width : 768px ) {
  .aboutWrap .detailBox .detailChild .title h4 {
    margin-bottom: 36px;
    font-size: 20px;
  }
}
.aboutWrap .detailBox .detailChild .text {
  margin: 0 0 49px;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2.06;
}
@media screen and ( max-width : 768px ) {
  .aboutWrap .detailBox .detailChild .text {
    margin-bottom: 36px;
    font-size: 15px;
    line-height: 1.9;
  }
}
.aboutWrap .detailBox .linkTemplate {
  display: flex;
  justify-content: flex-end;
}
@media screen and ( max-width : 768px ) {
  .aboutWrap .detailBox .linkTemplate {
    justify-content: center;
  }
}

/*==============================================
  Service（serviceWrap完成イメージ.svg 準拠）
==============================================*/
.serviceWrap {
  padding: 60px 40px 120px;
  background: #fff;
}
@media screen and ( max-width : 1024px ) {
  .serviceWrap {
    padding: 40px 40px 90px;
  }
}
@media screen and ( max-width : 768px ) {
  .serviceWrap {
    padding: 30px 20px 60px;
  }
}
.serviceWrap .titleBox {
  margin-bottom: 65px;
}
@media screen and ( max-width : 768px ) {
  .serviceWrap .titleBox {
    margin-bottom: 36px;
  }
}
.serviceWrap .titleBox .titleChild {
  text-align: center;
}
.serviceWrap .titleBox .titleChild h3 {
  margin: 0 0 26px;
  color: #1955a6;
  font-size: 48px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1;
}
@media screen and ( max-width : 768px ) {
  .serviceWrap .titleBox .titleChild h3 {
    font-size: 36px;
    margin-bottom: 18px;
  }
}
.serviceWrap .titleBox .titleChild .text {
  margin: 0;
  color: #1955a6;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.6;
}
@media screen and ( max-width : 768px ) {
  .serviceWrap .titleBox .titleChild .text {
    font-size: 15px;
    line-height: 1.7;
  }
}
.serviceWrap .row3Box {
  margin-bottom: 70px;
  max-width: 1125px;
  margin-left: auto;
  margin-right: auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
}
@media screen and ( max-width : 768px ) {
  .serviceWrap .row3Box {
    margin-bottom: 42px;
    grid-template-columns: 1fr;
    gap: 20px;
  }
}
.serviceWrap .row3Box .child {
  position: relative;
  min-height: 375px;
  overflow: hidden;
}
@media screen and ( max-width : 768px ) {
  .serviceWrap .row3Box .child {
    min-height: 320px;
  }
}
.serviceWrap .row3Box .child .serviceImage {
  width: 100%;
  height: 100%;
  margin: 0;
}
.serviceWrap .row3Box .child .serviceImage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.serviceWrap .row3Box .child .serviceOverlay {
  position: absolute;
  inset: 0;
  color: #fff;
  box-sizing: border-box;
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.serviceWrap .row3Box .child .serviceOverlay .serviceEn {
  margin: 0 0 20px;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.3;
  text-align: center;
}
.serviceWrap .row3Box .child .serviceOverlay .serviceJa {
  margin: 0 0 40px;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-align: center;
}
.serviceWrap .row3Box .child .serviceOverlay .serviceJa.marginBottom0 {
  margin-bottom: 0;
}
.serviceWrap .row3Box .child .serviceOverlay .serviceLead {
  margin: 0 auto;
  display: table;
  text-align: left;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 2.1;
}
.serviceWrap .linkTemplate {
  display: flex;
  justify-content: center;
}

/*==============================================
  Works（worksWrap完成イメージ.svg 準拠・viewBox 1366×918）
  上部 #1955a6（高さ527相当）/ 白カード 1126×450 / 画像左・本文右 / 枠線 #707070
==============================================*/
.worksWrap {
  position: relative;
  background: #fff;
  padding: 0 0 120px;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .worksWrap {
    padding: 0 0 90px;
  }
}
@media screen and ( max-width : 768px ) {
  .worksWrap {
    padding: 0 0 60px;
  }
}
.worksWrap::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 527px;
  background: #1955a6;
  z-index: 0;
}
.worksWrap .titleBox {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 120px 40px 220px;
  text-align: center;
  box-sizing: border-box;
}
@media screen and ( max-width : 768px ) {
  .worksWrap .titleBox {
    padding: 60px 20px 0;
  }
}
.worksWrap .titleBox .titleChild h3 {
  margin: 0 0 60px;
  color: #fff;
  font-size: 48px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1;
}
@media screen and ( max-width : 768px ) {
  .worksWrap .titleBox .titleChild h3 {
    font-size: 36px;
    margin-bottom: 18px;
  }
}
.worksWrap .titleBox .titleChild .text {
  color: #fff;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.6;
  margin-bottom: 60px;
}
@media screen and ( max-width : 768px ) {
  .worksWrap .titleBox .titleChild .text {
    font-size: 15px;
    line-height: 1.7;
    margin-bottom: 30px;
  }
}
.worksWrap .detailBox {
  position: relative;
  z-index: 2;
  max-width: 1126px;
  width: calc(100% - 80px);
  margin: -216px auto 0;
  padding: 60px;
  box-sizing: border-box;
  background: #fff;
  display: flex;
  flex-wrap: nowrap;
  align-items: flex-start;
  gap: 60px;
}
@media screen and ( max-width : 1024px ) {
  .worksWrap .detailBox {
    gap: 40px;
    padding: 30px;
  }
}
@media screen and ( max-width : 768px ) {
  .worksWrap .detailBox {
    width: calc(100% - 40px);
    margin-top: 0;
    flex-direction: column;
    align-items: stretch;
    padding: 20px 20px 60px;
    gap: 20px;
  }
}
.worksWrap .detailBox .leftChild {
  flex: 0 0 472px;
}
@media screen and ( max-width : 768px ) {
  .worksWrap .detailBox .leftChild {
    flex: none;
    width: 100%;
  }
}
.worksWrap .detailBox .leftChild img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  box-sizing: border-box;
}
.worksWrap .detailBox .rightChild {
  flex: 1;
  min-width: 0;
}
.worksWrap .detailBox .rightChild p {
  margin: -0.5em 0;
  color: #1955a6;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2.06;
}
.worksWrap .linkTemplate {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
}

/*==============================================
  News（newsWrap完成イメージ.svg 準拠・viewBox 1366×1026）
  背景 #f4f3f3 / タイトル中央 / リスト幅 891 / 5件 / 下部リンク 207×55
==============================================*/
.newsWrap {
  background: #f4f3f3;
  padding: 122px 40px 200px;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .newsWrap {
    padding: 90px 30px 100px;
  }
}
@media screen and ( max-width : 768px ) {
  .newsWrap {
    padding: 60px 20px 60px;
  }
}
.newsWrap .titleBox {
  margin-bottom: 60px;
  text-align: center;
}
@media screen and ( max-width : 768px ) {
  .newsWrap .titleBox {
    margin-bottom: 40px;
  }
}
.newsWrap .titleBox .titleChild h3 {
  margin: 0;
  color: #1955a6;
  font-size: 48px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1;
}
@media screen and ( max-width : 768px ) {
  .newsWrap .titleBox .titleChild h3 {
    font-size: 36px;
  }
}
.newsWrap .detailBox {
  max-width: 851px;
  margin: 0 auto;
}
.newsWrap .detailBox .newsList {
  list-style: none;
  margin: 0;
  padding: 0;
}
.newsWrap .detailBox .newsList .newsItem {
  display: flex;
  align-items: center;
  padding: 35px 0;
  border-bottom: 1px solid #707070;
  gap: 30px;
}
@media screen and ( max-width : 768px ) {
  .newsWrap .detailBox .newsList .newsItem {
    padding: 20px 0;
    gap: 15px;
    flex-wrap: wrap;
  }
}
.newsWrap .detailBox .newsList .newsItem .newsDate {
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
}
.newsWrap .detailBox .newsList .newsItem .newsLabel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 76px;
  height: 24px;
  background: #1955a6;
  color: #fff;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
}
.newsWrap .detailBox .newsList .newsItem .newsTitle {
  display: block;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-decoration: none;
}
@media screen and ( max-width : 768px ) {
  .newsWrap .detailBox .newsList .newsItem .newsTitle {
    flex-basis: 100%;
  }
}
.newsWrap .detailBox .newsList .newsItem:first-child {
  border-top: 1px solid #707070;
}
.newsWrap .linkTemplate {
  display: flex;
  justify-content: center;
  margin-top: 65px;
}
@media screen and ( max-width : 768px ) {
  .newsWrap .linkTemplate {
    margin-top: 36px;
  }
}

.contactWrap {
  margin: 40px 0px 83px;
  padding: 0 40px;
}
@media screen and ( max-width : 1024px ) {
  .contactWrap {
    margin: 0 0px 70px;
  }
}
@media screen and ( max-width : 768px ) {
  .contactWrap {
    margin: 0 0px 60px;
    padding: 0 20px;
  }
}
.contactWrap .box {
  position: relative;
  min-height: 425px;
  margin: 0 auto;
  padding: 70px 0px 60px;
  box-sizing: border-box;
  background: url(../images/top/contactBg.jpg) no-repeat center center/cover;
  text-align: center;
  color: #fff;
  overflow: hidden;
}
@media screen and ( max-width : 768px ) {
  .contactWrap .box {
    padding: 64px 0px 40px;
    min-height: 360px;
  }
}
.contactWrap .box .titleChild {
  margin-bottom: 40px;
}
.contactWrap .box .titleChild h3 {
  margin: 0 0 40px;
  font-size: 48px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1;
}
@media screen and ( max-width : 768px ) {
  .contactWrap .box .titleChild h3 {
    font-size: 36px;
    margin-bottom: 20px;
  }
}
.contactWrap .box .titleChild .text {
  margin: 0;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2.1;
}
@media screen and ( max-width : 768px ) {
  .contactWrap .box .titleChild .text {
    line-height: 1.8;
  }
}
.contactWrap .box .tel {
  margin: 0 0 20px;
  font-size: 36px;
  font-weight: 300;
  letter-spacing: 0.05em;
  line-height: 1;
}
@media screen and ( max-width : 768px ) {
  .contactWrap .box .tel {
    font-size: 24px;
    margin-bottom: 32px;
  }
}
.contactWrap .box .child {
  display: flex;
  justify-content: center;
}

.contactformWrap {
  background: #fff;
  padding: 80px 40px 110px;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .contactformWrap {
    padding: 72px 30px 90px;
  }
}
@media screen and ( max-width : 768px ) {
  .contactformWrap {
    padding: 48px 20px 60px;
  }
}
.contactformWrap .contactformBox {
  max-width: 850px;
  margin: 0 auto;
}
.contactformWrap .contactformBox .wpcf7-response-output {
  display: none !important;
}
.contactformWrap .contactformBox .contactformHeader {
  margin: 0 0 48px;
  text-align: center;
}
@media screen and ( max-width : 768px ) {
  .contactformWrap .contactformBox .contactformHeader {
    margin: 0 0 36px;
  }
}
.contactformWrap .contactformBox .contactformTitleEn {
  margin: 0;
  color: #1a1c1d;
  font-size: 40px;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1;
}
@media screen and ( max-width : 768px ) {
  .contactformWrap .contactformBox .contactformTitleEn {
    font-size: 32px;
  }
}
.contactformWrap .contactformBox .contactformTitleJa {
  margin: 16px 0 0;
  color: #1a1c1d;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.4;
}
@media screen and ( max-width : 768px ) {
  .contactformWrap .contactformBox .contactformTitleJa {
    font-size: 18px;
  }
}
.contactformWrap .contactformBox .contactformLead {
  margin: 24px 0 0;
  color: #333;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.9;
}
@media screen and ( max-width : 768px ) {
  .contactformWrap .contactformBox .contactformLead {
    font-size: 14px;
    margin-top: 20px;
  }
}
.contactformWrap .contactformBox .contactform {
  margin: 0;
}
.contactformWrap .contactformBox .contactform .contactformRow {
  display: grid;
  grid-template-columns: 1fr;
  align-items: start;
  gap: 12px;
  padding: 24px 0;
  border-bottom: 1px solid #ccc;
}
.contactformWrap .contactformBox .contactform .contactformRow:first-of-type {
  border-top: 1px solid #ccc;
}
.contactformWrap .contactformBox .contactform .contactformRow--textarea {
  align-items: start;
}
.contactformWrap .contactformBox .contactform .contactformRow--textarea .contactformLabel {
  padding-top: 0;
}
@media screen and ( max-width : 768px ) {
  .contactformWrap .contactformBox .contactform .contactformRow {
    gap: 12px;
    padding: 20px 0;
  }
}
.contactformWrap .contactformBox .contactform .contactformLabel {
  color: #000;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
}
.contactformWrap .contactformBox .contactform .contactformLabel label {
  cursor: pointer;
}
.contactformWrap .contactformBox .contactform .contactformReq {
  display: inline-block;
  margin-left: 8px;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: 0.05em;
  vertical-align: middle;
}
.contactformWrap .contactformBox .contactform .contactformField {
  min-width: 0;
}
.contactformWrap .contactformBox .contactform .contactformField .wpcf7-form-control-wrap {
  display: block;
  width: 100%;
}
.contactformWrap .contactformBox .contactform .contactformInput,
.contactformWrap .contactformBox .contactform .contactformTextarea,
.contactformWrap .contactformBox .contactform .contactformSelect select {
  width: 100%;
  max-width: 100%;
  height: 46px;
  box-sizing: border-box;
  border: 1px solid #ccc;
  border-radius: 0;
  background: #fff;
  color: #333;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.1em;
  padding: 10px 14px;
  outline: none;
}
.contactformWrap .contactformBox .contactform .contactformTextarea {
  width: 100%;
  height: 245px;
  resize: vertical;
  padding: 14px;
}
.contactformWrap .contactformBox .contactform .contactformSelect {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
}
.contactformWrap .contactformBox .contactform .contactformSelect select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 44px;
}
.contactformWrap .contactformBox .contactform .contactformSelect::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 18px;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 10px solid #1d2086;
  pointer-events: none;
}
.contactformWrap .contactformBox .contactform .wpcf7-radio {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
}
.contactformWrap .contactformBox .contactform .wpcf7-list-item {
  margin: 0;
}
.contactformWrap .contactformBox .contactform .wpcf7-list-item label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-size: 14px;
  color: #333;
  letter-spacing: 0.05em;
  line-height: 1.5;
}
.contactformWrap .contactformBox .contactform .wpcf7-list-item input[type=radio] {
  width: 18px;
  height: 18px;
  accent-color: #3b56b2;
  margin: 0;
  flex: 0 0 auto;
}
.contactformWrap .contactformBox .contactform .contactformConsent {
  display: grid;
  grid-template-columns: 150px 1fr;
  column-gap: 24px;
  align-items: center;
  padding: 34px 0 0;
  max-width: 669px;
  margin: 0 auto;
}
@media screen and ( max-width : 768px ) {
  .contactformWrap .contactformBox .contactform .contactformConsent {
    grid-template-columns: 1fr;
    row-gap: 16px;
  }
}
.contactformWrap .contactformBox .contactform .contactformConsent .contactformConsentCheck {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  user-select: none;
  grid-column: 1;
  padding-top: 6px;
}
@media screen and ( max-width : 768px ) {
  .contactformWrap .contactformBox .contactform .contactformConsent .contactformConsentCheck {
    grid-column: auto;
    padding-top: 0;
    margin: 0 auto;
  }
}
.contactformWrap .contactformBox .contactform .contactformConsent .contactformConsentCheck input[type=checkbox] {
  width: 19px;
  height: 19px;
  margin: 0;
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid #707070;
  background: #fff;
  display: grid;
  place-items: center;
}
.contactformWrap .contactformBox .contactform .contactformConsent .contactformConsentCheck input[type=checkbox]:checked::after {
  content: "";
  width: 9px;
  height: 5px;
  border-left: 2px solid #3b56b2;
  border-bottom: 2px solid #3b56b2;
  transform: rotate(-45deg);
  margin-top: -1px;
}
.contactformWrap .contactformBox .contactform .contactformConsent .contactformConsentLabel {
  color: #333;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
}
.contactformWrap .contactformBox .contactform .contactformConsent .contactformConsentText {
  margin: 0;
  grid-column: 2;
  color: #333;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2.25;
}
.contactformWrap .contactformBox .contactform .contactformConsent .contactformConsentText a {
  color: #333;
  text-decoration: underline;
}
@media screen and ( max-width : 768px ) {
  .contactformWrap .contactformBox .contactform .contactformConsent .contactformConsentText {
    grid-column: auto;
    line-height: 2;
  }
}
.contactformWrap .contactformBox .contactform .contactformSubmitRow {
  display: flex;
  justify-content: center;
  padding-top: 40px;
  position: relative;
}
.contactformWrap .contactformBox .contactform .wpcf7-spinner {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  margin: 0;
  pointer-events: none;
}
.contactformWrap .contactformBox .contactform .contactformSubmit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  width: 100%;
  max-width: 100%;
  height: 55px;
  background: #fff;
  border: 1px solid #3b56b2;
  color: #3b56b2;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.1em;
  cursor: pointer;
}
.contactformWrap .contactformBox .contactform .contactformSubmitIcon {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #3b56b2;
  position: relative;
  flex: 0 0 auto;
}
.contactformWrap .contactformBox .contactform .contactformSubmitIcon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 6px;
  height: 6px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translate(-60%, -50%) rotate(45deg);
}

footer {
  position: relative;
  background: #fff;
  padding: 0px 40px 0;
}
@media screen and ( max-width : 1024px ) {
  footer {
    padding: 56px 30px 0;
  }
}
@media screen and ( max-width : 768px ) {
  footer {
    padding: 40px 20px 0;
  }
}
footer .footerTopLink {
  position: absolute;
  right: 40px;
  bottom: 135px;
  z-index: 100;
  display: block;
  width: 52px;
  height: 52px;
  text-decoration: none;
}
footer .footerTopLink:focus-visible {
  outline: 2px solid #1955a6;
  outline-offset: 3px;
  border-radius: 50%;
}
@media screen and ( max-width : 1024px ) {
  footer .footerTopLink {
    right: 30px;
    bottom: 40px;
    width: 44px;
    height: 44px;
  }
}
@media screen and ( max-width : 768px ) {
  footer .footerTopLink {
    right: 20px;
    bottom: 24px;
    width: 44px;
    height: 44px;
  }
}
footer .footerTopLink img {
  display: block;
  width: 100%;
  height: auto;
}
footer .menuBox {
  position: relative;
  z-index: 1;
  max-width: 1126px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr auto;
  column-gap: 40px;
  align-items: start;
  padding-bottom: 40px;
}
@media screen and ( max-width : 1024px ) {
  footer .menuBox {
    grid-template-columns: 1fr;
    row-gap: 28px;
    padding-bottom: 28px;
  }
}
@media screen and ( max-width : 768px ) {
  footer .menuBox {
    row-gap: 24px;
    padding-bottom: 24px;
  }
}
@media screen and ( max-width : 768px ) {
  footer .menuBox .logoChild {
    display: grid;
    row-gap: 16px;
  }
}
footer .menuBox .logoChild .logo a {
  display: inline-block;
  margin-bottom: 20px;
  text-decoration: none;
}
footer .menuBox .logoChild .logo img {
  display: block;
  width: 110px;
  height: auto;
}
@media screen and ( max-width : 768px ) {
  footer .menuBox .logoChild .logo img {
    width: 110px;
  }
}
footer .menuBox .logoChild .address {
  margin: -0.5em 0;
  color: #1a1c1d;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.95;
  padding-bottom: 20px;
}
footer .menuBox .logoChild .icon {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-bottom: 30px;
}
@media screen and ( max-width : 768px ) {
  footer .menuBox .logoChild .icon {
    margin-bottom: 0;
  }
}
footer .menuBox .logoChild .icon img {
  width: 41px;
  height: 41px;
  display: block;
}
footer .menuBox .logoChild .securityLogo a {
  margin: 0;
  display: inline-block;
  text-decoration: none;
}
footer .menuBox .logoChild .securityLogo img {
  display: block;
  width: 102px;
  height: 113px;
  object-fit: contain;
}
@media screen and ( max-width : 768px ) {
  footer .menuBox .logoChild .securityLogo img {
    width: 88px;
    height: auto;
  }
}
footer .menuBox .gnav {
  width: 100%;
}
footer .menuBox .gnav .top {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, max-content);
  grid-template-rows: auto auto auto auto auto auto auto;
  column-gap: 40px;
  row-gap: 0;
  align-items: start;
}
@media screen and ( max-width : 768px ) {
  footer .menuBox .gnav .top {
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 30px;
  }
}
footer .menuBox .gnav .top .list {
  margin: 0;
  align-self: start;
}
@media screen and ( max-width : 768px ) {
  footer .menuBox .gnav .top .list {
    width: 100%;
  }
}
footer .menuBox .gnav .top .list .topItemLink {
  display: block;
  text-decoration: none;
  white-space: nowrap;
  width: auto;
}
@media screen and ( max-width : 768px ) {
  footer .menuBox .gnav .top .list .topItemLink {
    width: 100%;
  }
}
footer .menuBox .gnav .top .list .topItemLink p {
  margin: 0;
  color: #1955a6;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.2;
  white-space: nowrap;
}
@media screen and ( max-width : 768px ) {
  footer .menuBox .gnav .top .list .topItemLink p {
    font-size: 14px;
  }
}
footer .menuBox .gnav .top .list .sub {
  list-style: none;
  margin: 20px 0 0;
  padding: 0;
  display: grid;
  row-gap: 20px;
}
footer .menuBox .gnav .top .list .sub li {
  margin: -0.5em 0;
}
footer .menuBox .gnav .top .list .sub li a {
  color: #000;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1;
  white-space: nowrap;
}
@media screen and ( max-width : 768px ) {
  footer .menuBox .gnav .top .list .sub li a {
    font-size: 11px;
  }
}
footer .menuBox .gnav .top .topItemTop {
  grid-column: 1;
  grid-row: 1;
}
footer .menuBox .gnav .top .topItemAbout {
  grid-column: 2;
  grid-row: 1/span 7;
}
footer .menuBox .gnav .top .topItemService {
  grid-column: 3;
  grid-row: 1/span 7;
}
footer .menuBox .gnav .top .topItemWorks {
  grid-column: 4;
  grid-row: 1;
}
footer .menuBox .gnav .top .topItemNews {
  grid-column: 4;
  grid-row: 2;
  margin-top: 20px;
}
footer .menuBox .gnav .top .topItemContact {
  grid-column: 4;
  grid-row: 3;
  margin-top: 20px;
}
@media screen and ( max-width : 768px ) {
  footer .menuBox .gnav .top .topItemTop,
footer .menuBox .gnav .top .topItemAbout,
footer .menuBox .gnav .top .topItemService,
footer .menuBox .gnav .top .topItemWorks,
footer .menuBox .gnav .top .topItemNews,
footer .menuBox .gnav .top .topItemContact {
    grid-column: auto;
    grid-row: auto;
    margin-top: 0;
  }
  footer .menuBox .gnav .top .list .sub {
    margin-top: 12px;
    row-gap: 10px;
  }
}
footer address {
  position: relative;
  z-index: 1;
  font-style: normal;
}
footer address .box {
  padding: 30px 0 110px;
  border-top: 1px solid #707070;
  max-width: 1126px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
@media screen and ( max-width : 768px ) {
  footer address .box {
    padding: 20px 0 40px;
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }
}
footer address .box .child {
  display: flex;
  align-items: center;
  gap: 34px;
  flex-wrap: wrap;
}
@media screen and ( max-width : 768px ) {
  footer address .box .child {
    gap: 12px 20px;
  }
}
footer address .box .child a {
  color: #1a1c1d;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.3;
  text-decoration: none;
  position: relative;
}
footer address .box .child a::after {
  content: "";
  position: absolute;
  right: -12px;
  top: 50%;
  width: 6px;
  height: 6px;
  border-top: 1px solid #1a1c1d;
  border-right: 1px solid #1a1c1d;
  transform: translateY(-50%) rotate(45deg);
}
footer address .box p {
  margin: 0;
  color: #1a1c1d;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 1.3;
  white-space: nowrap;
}

.underContent header .headerWrap {
  position: static;
  margin-bottom: 0;
}
.underContent header .headerWrap .headerBox .child .inner {
  padding: 40px 0;
}
@media screen and ( max-width : 768px ) {
  .underContent header .headerWrap .headerBox .child .inner {
    padding: 30px 0;
  }
}
.underContent header .underContentHeroWrap {
  width: 100%;
  box-sizing: border-box;
}
.underContent header .underContentHeroWrap .underContentHeroBox {
  position: relative;
  width: 100%;
  height: 287px;
  overflow: hidden;
}
@media screen and ( max-width : 768px ) {
  .underContent header .underContentHeroWrap .underContentHeroBox {
    height: 140px;
  }
}
.underContent header .underContentHeroWrap .underContentHeroBox .bgImage {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  z-index: 0;
}
.underContent header .underContentHeroWrap .underContentHeroBox .bgImage img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.underContent header .underContentHeroWrap .underContentHeroBox .title {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  box-sizing: border-box;
  padding: 0 20px;
}
@media screen and ( max-width : 768px ) {
  .underContent header .underContentHeroWrap .underContentHeroBox .title {
    padding: 0 16px;
  }
}
.underContent header .underContentHeroWrap .underContentHeroBox .title h1 {
  margin: 0;
  color: #fff;
  font-size: 48px;
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1;
  text-align: center;
}
@media screen and ( max-width : 768px ) {
  .underContent header .underContentHeroWrap .underContentHeroBox .title h1 {
    font-size: 28px;
  }
}
.underContent header .detailTitle {
  box-sizing: border-box;
  padding: 0 40px;
}
@media screen and ( max-width : 768px ) {
  .underContent header .detailTitle {
    padding: 0 20px;
  }
}
.underContent header .detailTitle .titleChild {
  max-width: 1126px;
  margin: 0 auto;
}
.underContent header .detailTitle .titleChild h1 {
  margin: 0;
  color: #1955a6;
  font-size: 48px;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.underContent .serviceTopWrap {
  padding: 80px 40px 100px;
  background: #fff;
  color: #1a1c1d;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .underContent .serviceTopWrap {
    padding: 64px 30px 80px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .serviceTopWrap {
    padding: 48px 20px 60px;
  }
}
.underContent .serviceTopWrap .box {
  max-width: 1115px;
  margin: 0 auto;
}
.underContent .serviceTopWrap .box .titleChild {
  margin: 0 0 40px;
  color: #1955a6;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
@media screen and ( max-width : 768px ) {
  .underContent .serviceTopWrap .box .titleChild {
    margin-bottom: 28px;
    font-size: 20px;
  }
}
.underContent .serviceTopWrap .box .leadChild {
  margin-bottom: 48px;
}
@media screen and ( max-width : 768px ) {
  .underContent .serviceTopWrap .box .leadChild {
    margin-bottom: 36px;
  }
}
.underContent .serviceTopWrap .box .leadChild p {
  margin: 0 0 60px;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.03em;
  line-height: 2;
}
@media screen and ( max-width : 768px ) {
  .underContent .serviceTopWrap .box .leadChild p {
    font-size: 15px;
    line-height: 1.95;
    margin: 0 0 40px;
  }
}
.underContent .serviceTopWrap .box .leadChild h2 {
  margin: 52px 0 18px;
  color: #1955a6;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.5;
  padding-bottom: 10px;
}
@media screen and ( max-width : 768px ) {
  .underContent .serviceTopWrap .box .leadChild h2 {
    margin: 40px 0 14px;
    font-size: 20px;
    padding-bottom: 8px;
  }
}
.underContent .serviceTopWrap .box .leadChild h3 {
  margin: 0 0 20px;
  color: #1a1c1d;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.06em;
  line-height: 1.5;
}
@media screen and ( max-width : 768px ) {
  .underContent .serviceTopWrap .box .leadChild h3 {
    margin: 0 0 12px;
    border-left-width: 3px;
    font-size: 17px;
  }
}
.underContent .serviceTopWrap .box .leadChild ul {
  margin: 10px 0 0;
  padding-left: 1.2em;
  list-style: disc;
}
.underContent .serviceTopWrap .box .leadChild ul li {
  list-style: inherit;
  margin: 0;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.03em;
  line-height: 2;
}
@media screen and ( max-width : 768px ) {
  .underContent .serviceTopWrap .box .leadChild ul li {
    font-size: 15px;
    line-height: 1.95;
  }
}
.underContent .serviceTopWrap .box .leadChild .blockquote {
  background: #f3f5f9;
  padding: 30px;
  margin: 20px 0;
}
.underContent .serviceTopWrap .box .leadChild .blockquote p {
  font-weight: bold;
  position: relative;
  margin: 0;
  padding-left: 22px;
}
.underContent .serviceTopWrap .box .leadChild .blockquote p::before, .underContent .serviceTopWrap .box .leadChild .blockquote p::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #abb8c3;
}
.underContent .serviceTopWrap .box .leadChild .blockquote p::before {
  left: 0;
}
.underContent .serviceTopWrap .box .leadChild .blockquote p::after {
  left: 6px;
}
.underContent .serviceTopWrap .box .detailChild {
  padding: 48px 40px 56px;
  background: #f3f5f9;
  border-radius: 20px;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .underContent .serviceTopWrap .box .detailChild {
    padding: 40px 28px 48px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .serviceTopWrap .box .detailChild {
    padding: 32px 20px 40px;
  }
}
.underContent .serviceTopWrap .box .detailChild .panelTitle {
  margin: 0 0 40px;
  color: #1955a6;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-align: center;
}
@media screen and ( max-width : 768px ) {
  .underContent .serviceTopWrap .box .detailChild .panelTitle {
    margin-bottom: 28px;
    font-size: 20px;
  }
}
.underContent .serviceTopWrap .box .detailChild .inner {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  align-items: stretch;
}
@media screen and ( max-width : 1024px ) {
  .underContent .serviceTopWrap .box .detailChild .inner {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .serviceTopWrap .box .detailChild .inner {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.underContent .serviceTopWrap .box .detailChild .inner .card {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 24px 16px 28px;
  background: #fff;
  border-radius: 20px;
  box-sizing: border-box;
  min-height: 321px;
}
@media screen and ( max-width : 768px ) {
  .underContent .serviceTopWrap .box .detailChild .inner .card {
    min-height: 0;
  }
}
.underContent .serviceTopWrap .box .detailChild .inner .card:nth-child(2) {
  border: 1px solid #f3f5f9;
}
.underContent .serviceTopWrap .box .detailChild .inner .card .cardEn {
  margin: 0 0 20px;
  color: #1955a6;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-align: center;
}
.underContent .serviceTopWrap .box .detailChild .inner .card .cardIcon {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin-bottom: 20px;
}
.underContent .serviceTopWrap .box .detailChild .inner .card .cardIcon img {
  display: block;
  width: 104px;
  max-width: 100%;
  height: auto;
}
.underContent .serviceTopWrap .box .detailChild .inner .card .cardJa {
  margin: 0;
  color: #1955a6;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
  text-align: center;
}
.underContent .strategyDirectionWrap {
  padding: 100px 40px 90px;
  background: #f7f7f7;
  color: #1a1c1d;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .underContent .strategyDirectionWrap {
    padding: 90px 30px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap {
    padding: 60px 20px;
  }
}
.underContent .strategyDirectionWrap .box {
  max-width: 1115px;
  margin: 0 auto;
}
.underContent .strategyDirectionWrap .box .directionListChild .inner {
  padding: 0 0 93px;
  margin: 0 0 93px;
  border-bottom: 1px solid #ccc;
}
@media screen and ( max-width : 1024px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .inner {
    padding-bottom: 72px;
    margin-bottom: 72px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .inner {
    padding-bottom: 56px;
    margin-bottom: 56px;
  }
}
.underContent .strategyDirectionWrap .box .directionListChild .inner:last-child {
  margin-bottom: 0;
}
.underContent .strategyDirectionWrap .box .directionListChild .inner .content {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 72px;
}
@media screen and ( max-width : 1024px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .inner .content {
    gap: 40px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .inner .content {
    flex-direction: column-reverse;
    gap: 24px;
  }
}
.underContent .strategyDirectionWrap .box .directionListChild .inner .content .directionContent {
  flex: 1;
  min-width: 0;
  max-width: 656px;
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .inner .content .directionContent {
    max-width: none;
  }
}
.underContent .strategyDirectionWrap .box .directionListChild .inner .content .directionContent .serviceNo {
  margin: 0 0 10px;
  color: #1955a6;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1;
}
.underContent .strategyDirectionWrap .box .directionListChild .inner .content .directionContent .directionEn {
  margin: 0 0 24px;
  color: #1955a6;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1;
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .inner .content .directionContent .directionEn {
    font-size: 20px;
  }
}
.underContent .strategyDirectionWrap .box .directionListChild .inner .content .directionContent .directionJa {
  margin: 0 0 60px;
  color: #1955a6;
  font-size: 48px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.3;
}
@media screen and ( max-width : 1024px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .inner .content .directionContent .directionJa {
    font-size: 40px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .inner .content .directionContent .directionJa {
    margin-bottom: 24px;
    font-size: 32px;
  }
}
.underContent .strategyDirectionWrap .box .directionListChild .inner .content .directionContent .directionText {
  margin: -0.5em 0;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2.68;
  margin-bottom: 30px;
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .inner .content .directionContent .directionText {
    font-size: 15px;
    margin-bottom: 20px;
  }
}
.underContent .strategyDirectionWrap .box .directionListChild .inner .content .directionContent .directionTags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0;
  list-style: none;
}
.underContent .strategyDirectionWrap .box .directionListChild .inner .content .directionContent .directionTags li {
  min-width: 112px;
  height: 35px;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border-radius: 17.5px;
  color: #1955a6;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1;
  box-sizing: border-box;
}
.underContent .strategyDirectionWrap .box .directionListChild .inner .content .image {
  width: 387px;
  flex: none;
}
@media screen and ( max-width : 1024px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .inner .content .image {
    width: 340px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .inner .content .image {
    width: 100%;
  }
}
.underContent .strategyDirectionWrap .box .directionListChild .inner .content .image img {
  display: block;
  width: 100%;
  height: 387px;
  object-fit: cover;
}
@media screen and ( max-width : 1024px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .inner .content .image img {
    height: 340px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .inner .content .image img {
    height: auto;
    aspect-ratio: 1/1;
  }
}
.underContent .strategyDirectionWrap .box .directionListChild .safePriceChild {
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 0 41px;
  height: 127px;
  margin: 90px 0 0;
  background: #fff;
  border-radius: 20px;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .safePriceChild {
    gap: 20px;
    padding: 0 28px;
    margin: 60px 0 0;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .safePriceChild {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 10px;
    height: auto;
    padding: 24px 20px;
    margin: 30px 0 0;
  }
}
.underContent .strategyDirectionWrap .box .directionListChild .safePriceChild .feeLabel {
  margin: 0;
  color: #1955a6;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.4;
}
.underContent .strategyDirectionWrap .box .directionListChild .safePriceChild .feeLeader {
  flex: 1;
  min-width: 40px;
  height: 1px;
  margin-top: 8px;
  background-image: linear-gradient(to right, #1955a6 20%, rgba(0, 0, 0, 0) 0%);
  background-position: left center;
  background-size: 6px 1px;
  background-repeat: repeat-x;
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .safePriceChild .feeLeader {
    display: none;
  }
}
.underContent .strategyDirectionWrap .box .directionListChild .safePriceChild .feePrice {
  margin: 0;
  color: #1955a6;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-align: left;
  white-space: nowrap;
}
.underContent .strategyDirectionWrap .box .directionListChild .safePriceChild .feePrice .amount {
  display: block;
}
.underContent .strategyDirectionWrap .box .directionListChild .safePriceChild .feePrice .note {
  display: block;
  margin-top: 8px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap .box .directionListChild .safePriceChild .feePrice {
    white-space: normal;
  }
}
.underContent .strategyDirectionWrap .box .feePolicyBlockChild {
  margin-top: 90px;
  min-height: 189px;
  padding: 40px 41px;
  background: #fff;
  border-radius: 20px;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 321px minmax(0, 1fr);
  align-items: center;
}
@media screen and ( max-width : 1024px ) {
  .underContent .strategyDirectionWrap .box .feePolicyBlockChild {
    margin-top: 90px;
    padding: 32px 28px;
    grid-template-columns: 280px minmax(0, 1fr);
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap .box .feePolicyBlockChild {
    margin-top: 60px;
    padding: 28px 20px;
    grid-template-columns: 1fr;
    min-height: 0;
  }
}
.underContent .strategyDirectionWrap .box .feePolicyBlockChild .feePolicyHeadInner {
  margin-bottom: 0;
}
.underContent .strategyDirectionWrap .box .feePolicyBlockChild .feePolicyHeadInner .feePolicyEn {
  margin: 0 0 10px;
  color: #1955a6;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.2;
}
.underContent .strategyDirectionWrap .box .feePolicyBlockChild .feePolicyHeadInner .feePolicyJa {
  margin: 0;
  color: #1955a6;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.075em;
  line-height: 1.4;
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap .box .feePolicyBlockChild .feePolicyHeadInner .feePolicyJa {
    font-size: 20px;
  }
}
.underContent .strategyDirectionWrap .box .feePolicyBlockChild .feePolicyBodyInner {
  margin-top: 0;
}
.underContent .strategyDirectionWrap .box .feePolicyBlockChild .feePolicyBodyInner .feeText {
  margin: 0;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2.7;
}
@media screen and ( max-width : 768px ) {
  .underContent .strategyDirectionWrap .box .feePolicyBlockChild .feePolicyBodyInner .feeText {
    line-height: 2;
  }
}
.underContent .whoItsForWrap {
  padding: 120px 40px 160px;
  background: #fff;
  color: #1a1c1d;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .underContent .whoItsForWrap {
    padding: 90px 30px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .whoItsForWrap {
    padding: 60px 20px;
  }
}
.underContent .whoItsForWrap .box {
  max-width: 1123px;
  margin: 0 auto;
}
.underContent .whoItsForWrap .box .underTitle {
  margin-bottom: 0;
}
.underContent .whoItsForWrap .box .cardListChild {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  column-gap: 21px;
  row-gap: 20px;
  align-items: stretch;
}
@media screen and ( max-width : 1024px ) {
  .underContent .whoItsForWrap .box .cardListChild {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .whoItsForWrap .box .cardListChild {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}
.underContent .whoItsForWrap .box .cardListChild .card {
  grid-column: span 2;
  min-height: 330px;
  background: #f3f5f9;
  border-radius: 20px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
@media screen and ( max-width : 768px ) {
  .underContent .whoItsForWrap .box .cardListChild .card {
    grid-column: span 1;
    min-height: 0;
    padding: 30px 0;
  }
}
.underContent .whoItsForWrap .box .cardListChild .card.card--4 {
  grid-column: 2/span 2;
}
@media screen and ( max-width : 1024px ) {
  .underContent .whoItsForWrap .box .cardListChild .card.card--4 {
    grid-column: span 1;
  }
}
.underContent .whoItsForWrap .box .cardListChild .card.card--5 {
  grid-column: 4/span 2;
}
@media screen and ( max-width : 1024px ) {
  .underContent .whoItsForWrap .box .cardListChild .card.card--5 {
    grid-column: span 1;
  }
}
.underContent .whoItsForWrap .box .cardListChild .card .icon {
  width: 111px;
  height: 111px;
  margin: 0 0 50px;
  display: flex;
  align-items: center;
  justify-content: center;
}
@media screen and ( max-width : 768px ) {
  .underContent .whoItsForWrap .box .cardListChild .card .icon {
    margin: 0 0 20px;
  }
}
.underContent .whoItsForWrap .box .cardListChild .card .icon img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}
.underContent .whoItsForWrap .box .cardListChild .card .text {
  margin: 0;
  color: #1955a6;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2.1;
  margin: -0.5em 0;
}
.underContent .aboutTopWrap {
  padding: 120px 40px 80px;
  background: #fff;
  color: #1a1c1d;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .underContent .aboutTopWrap {
    padding: 100px 30px 72px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .aboutTopWrap {
    padding: 72px 20px 56px;
  }
}
.underContent .aboutTopWrap .aboutTopBox {
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.underContent .aboutTopWrap .aboutTopLead {
  margin: 0;
  color: #1a1c1d;
  font-size: 24px;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 2.2;
}
@media screen and ( max-width : 768px ) {
  .underContent .aboutTopWrap .aboutTopLead {
    font-size: 20px;
  }
}
.underContent .aboutTopWrap .aboutTopDivider {
  width: 1px;
  height: 30px;
  background: #00398d;
  margin: 0 0 60px;
}
@media screen and ( max-width : 768px ) {
  .underContent .aboutTopWrap .aboutTopDivider {
    margin-bottom: 30px;
  }
}
.underContent .aboutTopWrap .aboutTopMark {
  margin: 0 0 60px;
  width: 436px;
  max-width: 100%;
}
@media screen and ( max-width : 768px ) {
  .underContent .aboutTopWrap .aboutTopMark {
    margin: 0 0 20px;
    width: 180px;
  }
}
.underContent .aboutTopWrap .aboutTopMark img,
.underContent .aboutTopWrap .aboutTopMark svg {
  display: block;
  width: 100%;
  height: auto;
}
.underContent .aboutTopWrap .aboutTopText p {
  margin: 0;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2;
}
@media screen and ( max-width : 768px ) {
  .underContent .aboutTopWrap .aboutTopText p {
    font-size: 15px;
  }
}
.underContent .imageWrap {
  padding: 0;
  background: #f7f7f7;
  color: #1a1c1d;
  box-sizing: border-box;
}
.underContent .imageWrap .imageBox {
  padding: 0;
}
.underContent .imageWrap .imageBox .child {
  margin: 0;
  padding: 80px calc((100vw - 1042px) / 2);
  display: flex;
  justify-content: space-between;
  gap: 60px;
  box-sizing: border-box;
  margin: 0 auto;
}
@media screen and (max-width: 1122px) {
  .underContent .imageWrap .imageBox .child {
    padding: 80px 40px;
  }
}
@media screen and ( max-width : 1024px ) {
  .underContent .imageWrap .imageBox .child {
    padding: 72px 40px;
    gap: 48px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .imageWrap .imageBox .child {
    align-items: stretch;
    padding: 48px 20px;
    gap: 32px;
  }
}
.underContent .imageWrap .imageBox .child.child--layout-mediaLeft {
  flex-direction: row;
}
@media screen and ( max-width : 768px ) {
  .underContent .imageWrap .imageBox .child.child--layout-mediaLeft {
    flex-direction: column;
  }
}
.underContent .imageWrap .imageBox .child.child--layout-mediaRight {
  flex-direction: row-reverse;
  background: #fff;
}
@media screen and ( max-width : 768px ) {
  .underContent .imageWrap .imageBox .child.child--layout-mediaRight {
    flex-direction: column;
  }
}
.underContent .imageWrap .imageBox .child .image {
  max-width: 500px;
  width: 100%;
}
@media screen and ( max-width : 768px ) {
  .underContent .imageWrap .imageBox .child .image {
    flex: none;
    max-width: none;
  }
}
.underContent .imageWrap .imageBox .child .image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.underContent .imageWrap .imageBox .child .about {
  flex: 1;
  min-width: 0;
  width: auto;
  position: relative;
}
@media screen and ( max-width : 768px ) {
  .underContent .imageWrap .imageBox .child .about {
    width: 100%;
  }
}
.underContent .imageWrap .imageBox .child .about .detail {
  display: block;
  position: static;
  transform: none;
  width: 100%;
}
.underContent .imageWrap .imageBox .child .about .detail .label {
  margin: 0 0 16px;
  color: #00398d;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.2;
}
.underContent .imageWrap .imageBox .child .about .detail h4 {
  margin: 0 0 24px;
  color: #1a1c1d;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
.underContent .imageWrap .imageBox .child .about .detail .text {
  margin: 0 0 1em;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  line-height: 2;
  letter-spacing: 0.1em;
}
.underContent .imageWrap .imageBox .child .about .detail .text:last-child {
  margin-bottom: 0;
}
.underContent .profileWrap {
  padding: 100px 40px 156px;
  background: #fff;
  color: #1a1c1d;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .underContent .profileWrap {
    padding: 80px 30px 90px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .profileWrap {
    padding: 64px 20px 60px;
  }
}
.underContent .profileWrap .underTitle {
  max-width: 1126px;
  margin: 0 auto 60px;
}
.underContent .profileWrap .underTitle .child {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.underContent .profileWrap .underTitle .subTitle {
  margin: 0 0 28px;
  color: #00398d;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.2;
}
.underContent .profileWrap .underTitle .title {
  margin: 0 0 44px;
  color: #1a1c1d;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.3;
}
.underContent .profileWrap .underTitle .text {
  display: block;
  margin: 0;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2;
}
.underContent .profileWrap .profileBox {
  max-width: 868px;
  margin: 0 auto;
}
.underContent .profileWrap .profileTable {
  width: 100%;
  border-top: 1px solid #ccc;
}
.underContent .profileWrap .profileRow {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid #ccc;
  box-sizing: border-box;
}
.underContent .profileWrap .profileRow:nth-child(1), .underContent .profileWrap .profileRow:nth-child(3), .underContent .profileWrap .profileRow:nth-child(5) {
  background: #f7f7f7;
}
@media screen and ( max-width : 768px ) {
  .underContent .profileWrap .profileRow {
    flex-direction: column;
  }
}
.underContent .profileWrap .profileRow .profileHead {
  width: 193px;
  padding: 16px 10px 16px 58px;
  box-sizing: border-box;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
@media screen and ( max-width : 768px ) {
  .underContent .profileWrap .profileRow .profileHead {
    width: 100%;
    flex: none;
    padding: 12px 16px 6px;
    font-weight: 600;
  }
}
.underContent .profileWrap .profileRow .profileBody {
  flex: 1;
  padding: 16px 24px 16px 58px;
  box-sizing: border-box;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2;
}
@media screen and ( max-width : 768px ) {
  .underContent .profileWrap .profileRow .profileBody {
    padding: 0 16px 14px;
  }
}
.underContent .newsListWrap {
  background: #fff;
  padding: 80px 40px 140px;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .underContent .newsListWrap {
    padding: 72px 30px 90px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap {
    padding: 48px 20px 60px;
  }
}
.underContent .newsListWrap .detailBox {
  max-width: 1126px;
  margin: 0 auto;
  display: flex;
  align-items: flex-start;
  gap: 60px;
  width: 100%;
}
@media screen and ( max-width : 1024px ) {
  .underContent .newsListWrap .detailBox {
    gap: 40px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox {
    flex-direction: column;
    gap: 24px;
  }
}
.underContent .newsListWrap .detailBox .categoryChild {
  flex: 0 0 272px;
  width: 272px;
  position: relative;
  padding-top: 3px;
  border-top: 1px solid #ccc;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .categoryChild {
    flex: none;
    width: 100%;
  }
}
.underContent .newsListWrap .detailBox .categoryChild .category {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 272px;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .categoryChild .category {
    width: 100%;
  }
}
.underContent .newsListWrap .detailBox .categoryChild .categoryItem {
  margin: 0 0 2px;
  padding: 0;
  min-height: 75px;
  background: #F8F8F8;
  box-sizing: border-box;
}
.underContent .newsListWrap .detailBox .categoryChild .categoryItem:last-child {
  margin-bottom: 0;
}
.underContent .newsListWrap .detailBox .categoryChild .categoryItem.is-active {
  background: #f3f5f9;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .categoryChild .categoryItem {
    min-height: 56px;
  }
}
.underContent .newsListWrap .detailBox .categoryChild .categoryLink {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 75px;
  box-sizing: border-box;
  padding: 0 20px;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1;
  text-decoration: none;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .categoryChild .categoryLink {
    min-height: 56px;
  }
}
.underContent .newsListWrap .detailBox .categoryChild .categoryLink .newsArrow {
  flex-shrink: 0;
  display: block;
  width: 8px;
  height: auto;
  object-fit: contain;
}
.underContent .newsListWrap .detailBox .newsListChild {
  flex: 1;
  min-width: 0;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .newsListChild {
    width: 100%;
  }
}
.underContent .newsListWrap .detailBox .newsListChild .newsList {
  list-style: none;
  margin: 0;
  padding: 0;
}
.underContent .newsListWrap .detailBox .newsListChild .newsList .newsItem {
  display: flex;
  align-items: center;
  padding: 35px 0;
  border-bottom: 1px solid #ccc;
  gap: 30px;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .newsListChild .newsList .newsItem {
    padding: 20px 0;
    gap: 15px;
    flex-wrap: wrap;
  }
}
.underContent .newsListWrap .detailBox .newsListChild .newsList .newsItem .newsDate {
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
}
.underContent .newsListWrap .detailBox .newsListChild .newsList .newsItem .newsLabel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 76px;
  height: 24px;
  background: #1955a6;
  color: #fff;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
}
.underContent .newsListWrap .detailBox .newsListChild .newsList .newsItem .newsTitle {
  display: block;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-decoration: none;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .newsListChild .newsList .newsItem .newsTitle {
    flex-basis: 100%;
  }
}
.underContent .newsListWrap .detailBox .newsListChild .newsList .newsItem:first-child {
  border-top: 1px solid #ccc;
}
.underContent .newsListWrap .detailBox .newsDetailChild {
  width: 100%;
  background: #fff;
  box-sizing: border-box;
  border-top: 1px solid #ccc;
  padding-top: 40px;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .newsDetailChild {
    padding-top: 40px;
  }
}
.underContent .newsListWrap .detailBox .newsDetailChild .ndTop {
  padding-top: 0;
}
.underContent .newsListWrap .detailBox .newsDetailChild .ndTop .ndTime {
  display: block;
  margin: 0 0 20px;
  color: #666;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .newsDetailChild .ndTop .ndTime {
    margin: 0 0 16px;
    font-size: 13px;
  }
}
.underContent .newsListWrap .detailBox .newsDetailChild .ndTop .ndTitle {
  margin: 0 0 53px;
  color: #211814;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .newsDetailChild .ndTop .ndTitle {
    font-size: 20px;
    margin: 0 0 20px;
    line-height: 1.45;
  }
}
.underContent .newsListWrap .detailBox .newsDetailChild .ndCopy {
  padding: 0 0 60px;
  color: #211814;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.9375;
  margin: -0.5em 0;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .newsDetailChild .ndCopy {
    font-size: 15px;
    padding: 0 0 40px;
    line-height: 1.85;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .newsDetailChild .ndCopy p br {
    display: none;
  }
}
.underContent .newsListWrap .detailBox .newsDetailChild .ndNav {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  margin-top: 0;
  padding: 30px 0;
  box-sizing: border-box;
  border-bottom: 1px solid #ccc;
  border-top: 1px solid #ccc;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .newsDetailChild .ndNav {
    flex-direction: column;
    gap: 0;
    min-height: 0;
    padding: 0;
  }
}
.underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndNext,
.underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndPrev {
  display: inline-flex;
  position: relative;
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  color: #333;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1;
  text-decoration: none;
  line-height: 72px;
}
.underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndNext span,
.underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndPrev span {
  display: inline-block;
}
.underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndNext:focus-visible,
.underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndPrev:focus-visible {
  outline: 2px solid #1955a6;
  outline-offset: 3px;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndNext,
.underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndPrev {
    width: 100%;
    min-height: 52px;
    padding: 30px 0;
    line-height: 1;
  }
  .underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndNext span,
.underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndPrev span {
    width: 100%;
    text-align: center;
  }
}
.underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndNext {
  flex: 1;
  justify-content: center;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndNext {
    padding-right: 0;
    border-bottom: 1px solid #ccc;
  }
}
.underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndNext .ndArr {
  flex-shrink: 0;
  display: block;
  width: 8px;
  height: auto;
  object-fit: contain;
  transform: scaleX(-1);
  position: absolute;
  left: 24px;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndNext .ndArr {
    left: 12px;
  }
}
.underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndPrev {
  flex: 1;
  justify-content: center;
  border-left: 1px solid #ccc;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndPrev {
    justify-content: center;
    padding-left: 0;
    border-left: none;
  }
}
.underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndPrev .ndArr {
  flex-shrink: 0;
  display: block;
  width: 8px;
  height: auto;
  object-fit: contain;
  position: absolute;
  right: 24px;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsListWrap .detailBox .newsDetailChild .ndNav .ndPrev .ndArr {
    right: 12px;
  }
}
.underContent .worksListWrap {
  background: #fff;
  padding: 80px 40px 120px;
  box-sizing: border-box;
}
@media screen and ( max-width : 1024px ) {
  .underContent .worksListWrap {
    padding: 72px 30px 90px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap {
    padding: 48px 20px 60px;
  }
}
.underContent .worksListWrap .detailBox {
  max-width: 1126px;
  margin: 0 auto;
  display: flex;
  align-items: flex-start;
  gap: 60px;
  width: 100%;
}
@media screen and ( max-width : 1024px ) {
  .underContent .worksListWrap .detailBox {
    gap: 40px;
  }
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox {
    flex-direction: column;
    gap: 24px;
  }
}
.underContent .worksListWrap .detailBox .categoryChild {
  flex: 0 0 272px;
  width: 272px;
  position: relative;
  padding-top: 3px;
  border-top: 1px solid #ccc;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .categoryChild {
    flex: none;
    width: 100%;
  }
}
.underContent .worksListWrap .detailBox .categoryChild .category {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 272px;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .categoryChild .category {
    width: 100%;
  }
}
.underContent .worksListWrap .detailBox .categoryChild .categoryItem {
  margin: 0 0 2px;
  padding: 0;
  background: #f3f5f9;
  box-sizing: border-box;
}
.underContent .worksListWrap .detailBox .categoryChild .categoryItem:last-child {
  margin-bottom: 0;
  min-height: 100px;
}
.underContent .worksListWrap .detailBox .categoryChild .categoryItem.is-active {
  background: #f3f5f9;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .categoryChild .categoryItem {
    min-height: 56px;
  }
  .underContent .worksListWrap .detailBox .categoryChild .categoryItem:last-child {
    min-height: 76px;
  }
}
.underContent .worksListWrap .detailBox .categoryChild .categoryLink {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  box-sizing: border-box;
  padding: 27px 20px;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1;
  text-decoration: none;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .categoryChild .categoryLink {
    padding-top: 20px;
  }
}
.underContent .worksListWrap .detailBox .categoryChild .categoryLink .categoryTextWrap {
  display: flex;
  align-items: flex-start;
  gap: 0;
  min-width: 0;
}
.underContent .worksListWrap .detailBox .categoryChild .categoryLink .categoryNo {
  flex: 0 0 auto;
  width: 37px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.625;
}
.underContent .worksListWrap .detailBox .categoryChild .categoryLink .categoryTitle {
  min-width: 0;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.625;
}
.underContent .worksListWrap .detailBox .categoryChild .categoryLink .newsArrow {
  flex-shrink: 0;
  display: block;
  width: 8px;
  height: auto;
  object-fit: contain;
  margin-top: 2px;
  align-self: center;
}
.underContent .worksListWrap .detailBox .worksListChild {
  flex: 1;
  min-width: 0;
  padding-top: 20px;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .worksListChild {
    width: 100%;
  }
}
.underContent .worksListWrap .detailBox .worksListChild .worksCardList {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 28px;
  row-gap: 40px;
  list-style: none;
  margin: 0;
  padding: 0;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .worksListChild .worksCardList {
    grid-template-columns: 1fr;
    row-gap: 32px;
  }
}
.underContent .worksListWrap .detailBox .worksListChild .worksCard {
  margin: 0;
  padding: 0;
}
.underContent .worksListWrap .detailBox .worksListChild .worksCardLink {
  display: block;
  color: inherit;
  text-decoration: none;
}
.underContent .worksListWrap .detailBox .worksListChild .worksCardFigure {
  margin: 0;
  overflow: hidden;
  aspect-ratio: 379/244;
  background: #f3f5f9;
}
.underContent .worksListWrap .detailBox .worksListChild .worksCardFigure img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.underContent .worksListWrap .detailBox .worksListChild .worksCardBody {
  padding-top: 12px;
}
.underContent .worksListWrap .detailBox .worksListChild .worksCardDate {
  display: block;
  margin: 0 0 10px;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
}
.underContent .worksListWrap .detailBox .worksListChild .worksCardTitle {
  margin: 0 0 14px;
  color: #1955a6;
  font-size: 21px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.4;
}
.underContent .worksListWrap .detailBox .worksListChild .worksCardTags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.underContent .worksListWrap .detailBox .worksListChild .worksCardTag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 31px;
  padding: 0 12px;
  border: 1px solid #1a1c1d;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1;
  white-space: nowrap;
}
.underContent .worksListWrap .detailBox .worksListChild .worksCardTag--dx {
  min-width: 174px;
}
.underContent .worksListWrap .detailBox .worksListChild .worksCardTag--wide {
  min-width: 199px;
}
.underContent .worksListWrap .detailBox .worksListChild .worksPagination {
  margin-top: 48px;
  display: flex;
  justify-content: center;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .worksListChild .worksPagination {
    margin-top: 32px;
  }
}
.underContent .worksListWrap .detailBox .worksListChild .worksPaginationList {
  display: flex;
  align-items: center;
  gap: 19px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.underContent .worksListWrap .detailBox .worksListChild .worksPaginationList li {
  margin: 0;
  padding: 0;
}
.underContent .worksListWrap .detailBox .worksListChild .worksPage {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  box-sizing: border-box;
  border-radius: 10px;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1;
  text-decoration: none;
  color: #fff;
  background: #1955a6;
  border: 2px solid transparent;
}
.underContent .worksListWrap .detailBox .worksListChild .worksPage.is-current {
  color: #1955a6;
  background: transparent;
  border-color: transparent;
}
.underContent .worksListWrap .detailBox .detailChild {
  width: 100%;
  background: #fff;
  box-sizing: border-box;
  border-top: 1px solid #ccc;
  padding-top: 40px;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .detailChild {
    padding-top: 40px;
  }
}
.underContent .worksListWrap .detailBox .detailChild .ndLeadTags {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin: 0 0 18px;
}
.underContent .worksListWrap .detailBox .detailChild .ndLeadTag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 31px;
  padding: 0 12px;
  border: 1px solid #1a1c1d;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1;
  white-space: nowrap;
}
.underContent .worksListWrap .detailBox .detailChild .ndLeadTagEn {
  font-weight: 700;
}
.underContent .worksListWrap .detailBox .detailChild .ndTop {
  padding-top: 0;
}
.underContent .worksListWrap .detailBox .detailChild .ndTop .ndTime {
  display: block;
  margin: 0 0 20px;
  color: #666;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .detailChild .ndTop .ndTime {
    margin: 0 0 16px;
    font-size: 13px;
  }
}
.underContent .worksListWrap .detailBox .detailChild .ndTop .ndTitle {
  margin: 0 0 40px;
  color: #1955a6;
  font-size: 32px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .detailChild .ndTop .ndTitle {
    font-size: 24px;
    margin: 0 0 28px;
    line-height: 1.45;
  }
}
.underContent .worksListWrap .detailBox .detailChild .ndCopy {
  padding-bottom: 60px;
  margin-bottom: 60px;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.9375;
  border-bottom: 1px solid #ccc;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .detailChild .ndCopy {
    font-size: 15px;
    padding-bottom: 40px;
    margin-bottom: 40px;
    line-height: 1.85;
  }
}
.underContent .worksListWrap .detailBox .detailChild .ndCopy:last-of-type {
  border-bottom: none;
  margin-bottom: 0;
}
.underContent .worksListWrap .detailBox .detailChild .ndCopy p {
  margin: -0.5em 0;
}
.underContent .worksListWrap .detailBox .detailChild .ndCopy .ndHeroFigure {
  margin: 36px 0 28px;
  padding: 0;
}
.underContent .worksListWrap .detailBox .detailChild .ndCopy .ndHeroFigure img {
  display: block;
  width: 100%;
  height: auto;
}
.underContent .worksListWrap .detailBox .detailChild .ndCopy .ndHerodiv {
  padding-top: 60px;
  margin-bottom: 30px;
}
.underContent .worksListWrap .detailBox .detailChild .ndCopy .ndDetailGallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .detailChild .ndCopy .ndDetailGallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
}
.underContent .worksListWrap .detailBox .detailChild .ndCopy .ndDetailThumb {
  margin: 0;
  padding: 0;
}
.underContent .worksListWrap .detailBox .detailChild .ndCopy .ndDetailThumb img {
  display: block;
  width: 100%;
  height: auto;
}
.underContent .worksListWrap .detailBox .detailChild .ndCopy .ndSubTitle {
  margin: 48px 0 16px;
  color: #1955a6;
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 1.5;
}
.underContent .worksListWrap .detailBox .detailChild .ndCopy .ndSubTitle:first-of-type {
  margin-top: 0;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .detailChild .ndCopy .ndSubTitle {
    font-size: 18px;
    margin-top: 40px;
  }
  .underContent .worksListWrap .detailBox .detailChild .ndCopy .ndSubTitle:first-of-type {
    margin-top: 0;
  }
}
.underContent .worksListWrap .detailBox .detailChild .ndNav {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  margin-top: 0;
  padding: 30px 0;
  box-sizing: border-box;
  border-bottom: 1px solid #ccc;
  border-top: 1px solid #ccc;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .detailChild .ndNav {
    flex-direction: column;
    gap: 0;
    min-height: 0;
    padding: 0;
  }
}
.underContent .worksListWrap .detailBox .detailChild .ndNav .ndNext,
.underContent .worksListWrap .detailBox .detailChild .ndNav .ndPrev {
  display: inline-flex;
  position: relative;
  align-items: center;
  gap: 10px;
  box-sizing: border-box;
  color: #333;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1;
  text-decoration: none;
  line-height: 72px;
}
.underContent .worksListWrap .detailBox .detailChild .ndNav .ndNext span,
.underContent .worksListWrap .detailBox .detailChild .ndNav .ndPrev span {
  display: inline-block;
}
.underContent .worksListWrap .detailBox .detailChild .ndNav .ndNext:focus-visible,
.underContent .worksListWrap .detailBox .detailChild .ndNav .ndPrev:focus-visible {
  outline: 2px solid #1955a6;
  outline-offset: 3px;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .detailChild .ndNav .ndNext,
.underContent .worksListWrap .detailBox .detailChild .ndNav .ndPrev {
    width: 100%;
    min-height: 52px;
    padding: 30px 0;
    line-height: 1;
  }
  .underContent .worksListWrap .detailBox .detailChild .ndNav .ndNext span,
.underContent .worksListWrap .detailBox .detailChild .ndNav .ndPrev span {
    width: 100%;
    text-align: center;
  }
}
.underContent .worksListWrap .detailBox .detailChild .ndNav .ndNext {
  flex: 1;
  justify-content: center;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .detailChild .ndNav .ndNext {
    padding-right: 0;
    border-bottom: 1px solid #ccc;
  }
}
.underContent .worksListWrap .detailBox .detailChild .ndNav .ndNext .ndArr {
  flex-shrink: 0;
  display: block;
  width: 8px;
  height: auto;
  object-fit: contain;
  transform: scaleX(-1);
  position: absolute;
  left: 24px;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .detailChild .ndNav .ndNext .ndArr {
    left: 12px;
  }
}
.underContent .worksListWrap .detailBox .detailChild .ndNav .ndPrev {
  flex: 1;
  justify-content: center;
  border-left: 1px solid #ccc;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .detailChild .ndNav .ndPrev {
    justify-content: center;
    padding-left: 0;
    border-left: none;
  }
}
.underContent .worksListWrap .detailBox .detailChild .ndNav .ndPrev .ndArr {
  flex-shrink: 0;
  display: block;
  width: 8px;
  height: auto;
  object-fit: contain;
  position: absolute;
  right: 24px;
}
@media screen and ( max-width : 768px ) {
  .underContent .worksListWrap .detailBox .detailChild .ndNav .ndPrev .ndArr {
    right: 12px;
  }
}
.underContent .newsPagination {
  margin-top: 48px;
  display: flex;
  justify-content: center;
}
@media screen and ( max-width : 768px ) {
  .underContent .newsPagination {
    margin-top: 32px;
    justify-content: center;
  }
}
.underContent .newsPagination .newsPaginationList {
  display: flex;
  align-items: center;
  gap: 19px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.underContent .newsPagination .newsPaginationList li {
  margin: 0;
  padding: 0;
}
.underContent .newsPagination .newsPaginationList .newsPage {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  box-sizing: border-box;
  border-radius: 10px;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1;
  text-decoration: none;
  color: #fff;
  background: #1955a6;
}
.underContent .newsPagination .newsPaginationList .newsPage.is-current {
  color: #1955a6;
  background: transparent;
  border: 2px solid #1955a6;
}
.underContent .breadcrumbWrap {
  width: 100%;
  padding: 0 40px;
  box-sizing: border-box;
}
@media screen and ( max-width : 768px ) {
  .underContent .breadcrumbWrap {
    padding: 0 20px 20px;
  }
}
.underContent .breadcrumbWrap .breadcrumbList {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  min-height: 21px;
  font-size: 14px;
  font-weight: 300;
  letter-spacing: 0.05em;
  line-height: 21px;
  color: #999;
  max-width: 1126px;
  margin: 0 auto;
}
.underContent .breadcrumbWrap .breadcrumbList .breadcrumbItem {
  margin: 0;
  padding: 0;
  display: inline-flex;
  align-items: baseline;
}
.underContent .breadcrumbWrap .breadcrumbList .breadcrumbItem:not(:last-child)::after {
  content: " > ";
  white-space: pre;
  font-size: 14px;
  font-weight: 300;
  letter-spacing: 0.05em;
  line-height: 21px;
  color: #999;
}
.underContent .breadcrumbWrap .breadcrumbList .breadcrumbItem .breadcrumbLink {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
  text-decoration: none;
}
.underContent .breadcrumbWrap .breadcrumbList .breadcrumbItem .breadcrumbLink:focus-visible {
  outline: 2px solid #1955a6;
  outline-offset: 2px;
}
.underContent .breadcrumbWrap .breadcrumbList .breadcrumbItem .breadcrumbCurrent {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}
.underContent .breadcrumbWrap.contactBorder {
  margin: 0 auto 60px;
  padding: 0 30px;
}
@media screen and ( max-width : 1024px ) {
  .underContent .breadcrumbWrap.contactBorder {
    margin: 0 auto;
    padding: 0 20px;
  }
}
.underContent .breadcrumbWrap.contactBorder .breadcrumbList {
  border-bottom: 1px solid #ccc;
  padding-bottom: 30px;
}
@media screen and ( max-width : 1024px ) {
  .underContent .breadcrumbWrap.contactBorder .breadcrumbList {
    padding-bottom: 20px;
  }
}
.underContent .grayBg {
  background: #f7f7f7;
}
.underContent .underTitle {
  margin: 0 auto 50px;
}
@media screen and ( max-width : 768px ) {
  .underContent .underTitle {
    margin-bottom: 30px;
  }
}
.underContent .underTitle .child {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.underContent .underTitle .child .subTitle {
  margin: 0 0 10px;
  color: #00398d;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 2.1;
}
.underContent .underTitle .child .title {
  margin: 0 0 60px;
  color: #1a1c1d;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1;
}
@media screen and ( max-width : 768px ) {
  .underContent .underTitle .child .title {
    margin-bottom: 30px;
  }
}
.underContent .underTitle .child .text {
  display: block;
  margin: 0;
  color: #1a1c1d;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 2;
}