@charset "utf-8";

:root {
  --nw-color-navy: #082247;
  --nw-color-navy-deep: #06182f;
  --nw-color-gold: #b89a5e;
  --nw-color-gold-soft: #d8c49a;
  --nw-color-ivory: #f7f5ef;
  --nw-color-surface: #f4f7f9;
  --nw-color-ai-white: #edf4f5;
  --nw-color-text: #273240;
  --nw-color-muted: #647080;
  --nw-color-border: rgba(8, 34, 71, 0.14);
  --nw-shadow-soft: 0 14px 36px rgba(6, 24, 47, 0.1);
  --nw-shadow-subtle: 0 6px 20px rgba(6, 24, 47, 0.08);
  --nw-radius-small: 3px;
}

body {
  color: var(--nw-color-text);
  background: #fff;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

#container {
  overflow-x: hidden;
}

a {
  transition: color 0.25s ease, border-color 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}

a:focus-visible {
  outline: 2px solid var(--nw-color-gold);
  outline-offset: 4px;
}

#gHeader {
  background: rgba(255, 255, 255, 0.92);
  border-bottom: 1px solid var(--nw-color-border);
  box-shadow: var(--nw-shadow-subtle);
}

#gHeader .title,
#gHeader h1 {
  color: var(--nw-color-navy);
}

#gHeader .title a,
#gHeader h1 a {
  color: inherit;
}

#gNavi li a {
  color: var(--nw-color-navy);
}

#gNavi li a::before {
  background-color: var(--nw-color-border);
}

#gNavi li a::after {
  background-color: var(--nw-color-gold);
}

#gNavi li a:hover {
  color: var(--nw-color-navy-deep);
}

#gNavi .en {
  letter-spacing: 0;
}

.language a {
  color: var(--nw-color-navy);
  border-color: var(--nw-color-border);
}

.language a:hover {
  color: var(--nw-color-gold);
}

.gnavi-splang {
  border-top: 1px solid rgba(255, 255, 255, 0.25);
}

.nav-lang a {
  border-color: rgba(255, 255, 255, 0.34);
}

.headLine01,
.headLine02 {
  color: var(--nw-color-navy);
  letter-spacing: 0;
}

.headLine03 {
  color: var(--nw-color-navy);
}

.headLine03::after {
  background-color: var(--nw-color-gold);
}

.comttl {
  color: var(--nw-color-gold);
}

.comTextBox::after,
.top #main .imgBox .textBox::after {
  background: var(--nw-color-gold);
}

.comBgBlue {
  background-color: var(--nw-color-navy);
}

.comBgBox {
  box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.35);
}

.content01 {
  color: var(--nw-color-text);
}

.top #main h2 {
  text-shadow: 0 4px 18px rgba(6, 24, 47, 0.42);
}

.top #main h3 {
  color: var(--nw-color-navy-deep);
  max-width: 780px;
}

.top #main .imgBox .textBox p,
.about .imgBox .textBox p,
.our_key_value .imgBox .textBox p,
.service .imgBox .textBox p,
.our_vision .imgBox .textBox p,
.service .visionBox p,
.our_vision .visionBox p,
.contact .txtBox,
.comContact .ttl + p {
  color: var(--nw-color-text);
  line-height: 2.55;
}

.about #main .imgBox + .imgBox01 .textBox.comTextBox {
  background: var(--nw-color-ai-white);
  border-radius: 10px;
  box-shadow: 0 18px 36px rgba(6, 24, 47, 0.08);
}

.about #main .imgBox + .imgBox01 .textBox.comTextBox .comttl {
  color: var(--nw-color-gold);
  font-weight: 700;
  letter-spacing: 0.16em;
}

.about #main .imgBox + .imgBox01 .textBox.comTextBox .headLine01 {
  color: var(--nw-color-navy);
  font-size: clamp(2.4rem, 2.1vw, 3.6rem);
  letter-spacing: 0.08em;
  text-shadow: 0 8px 18px rgba(255, 255, 255, 0.72);
}

.about #main .imgBox + .imgBox01 .textBox.comTextBox .text01 {
  color: var(--nw-color-navy-deep);
}

.about #main .imgBox01 + .imgBox01 + .imgBox01 .comttl {
  display: none;
}

.about #main .imgBox01 + .imgBox01 .textBox.comTextBox {
  padding-top: 5.6vw;
}

.about #main .imgBox01 + .imgBox01 .headLine01 {
  margin-top: 0;
}

.about #main .imgBox01 + .imgBox01 .photoBox {
  margin-top: 2vw;
}

.top #main .imgBox .photoBox > div > img.pc,
.top #main .imgBox .photoBox > div > img.sp {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
}

.top #main .imgBox .photoBox img,
.about .imgBox .photoBox img,
.our_key_value .imgBox .photoBox img,
.service .imgBox .photoBox img,
.our_vision .imgBox .photoBox img {
  box-shadow: var(--nw-shadow-soft);
}

.about .standardBox .whiteBox,
.our_key_value .standardBox .whiteBox,
.our_vision .comOurBox .whiteBox,
.our_vision .visionBox .whiteBox,
.service .comOurBox .whiteBox {
  background: var(--nw-color-ai-white);
  border-radius: 10px;
}

.our_vision .comOurBox .headLine03,
.our_vision .visionBox .headLine03,
.service .comOurBox .headLine03,
.service .visionBox .headLine03 {
  color: var(--nw-color-gold);
  font-weight: 700;
  letter-spacing: 0.12em;
}

.about .standardBox .whiteBox .headLine02,
.our_key_value .standardBox .whiteBox .headLine02,
.our_vision .comOurBox .whiteBox .headLine02,
.service .comOurBox .whiteBox .headLine02,
.our_vision .visionBox h3,
.service .visionBox h3 {
  color: var(--nw-color-navy);
}

.our_key_value .standardBox .whiteBox {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: clamp(366px, 31vw, 610px);
  max-width: calc(100% - 6vw);
  margin-left: clamp(-6vw, -4.2vw, -2.4vw);
  box-sizing: border-box;
  padding-top: clamp(48px, 5vw, 88px);
  padding-bottom: clamp(48px, 5vw, 88px);
  padding-right: 7.5%;
}

.our_key_value .standardBox .whiteBox .headLine02 {
  margin-top: 0;
  margin-bottom: clamp(28px, 2.5vw, 48px);
  text-align: center;
}

.our_key_value .standardBox .whiteBox p {
  width: min(100%, 29ch);
  margin-top: 0;
  margin-bottom: 0;
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

.service .comOurBox .whiteBox .headLine03 {
  font-size: clamp(1.75rem, 1.7vw, 1.95rem) !important;
}

.top #main .geryBox {
  background: rgba(6, 24, 47, 0.9);
  box-shadow: var(--nw-shadow-soft);
}

.top #main .geryBox h4 {
  color: var(--nw-color-gold-soft);
}

.top #main .geryBox .btn a,
.top #main .ourBox .btn a,
.comContact .btn a {
  color: var(--nw-color-navy);
}

.top #main .geryBox .btn a {
  color: #fff;
}

.top #main .geryBox .btn a::before,
.top #main .geryBox .btn a::after {
  background-color: var(--nw-color-gold-soft);
}

.top #main .geryBox .btn a:hover,
.comContact .btn a:hover,
.top #main .ourBox .btn a:hover {
  transform: translateY(-2px);
}

.comBtn a {
  background-color: var(--nw-color-navy);
  border-color: var(--nw-color-navy);
  box-shadow: var(--nw-shadow-subtle);
}

.comBtn a:hover {
  color: var(--nw-color-navy);
  border-color: var(--nw-color-gold);
  background-color: #fff;
}

.comOurBox .whiteBox,
.standardBox .whiteBox,
.visionBox .whiteBox,
.comContact .whiteBox {
  border: 1px solid var(--nw-color-border);
  box-shadow: var(--nw-shadow-soft);
}

.table01 th,
.table01 td {
  border-color: var(--nw-color-border);
}

.customers {
  background: var(--nw-color-surface);
}

.customers .textBox,
.textList > li,
.linkList li {
  border-color: var(--nw-color-border);
}

.textList .ttl,
.linkList a {
  color: var(--nw-color-navy);
}

.linkList a:hover {
  color: var(--nw-color-gold);
}

.movieBox {
  border-bottom: 1px solid var(--nw-color-border);
}

.movieBox .textBox h2 {
  color: var(--nw-color-navy);
}

.movieBox .textBox .text,
.movieBox .photoBox .txtBox {
  color: var(--nw-color-text);
}

.wp-pagenavi a,
.wp-pagenavi span {
  border-color: var(--nw-color-border);
}

.wp-pagenavi a:hover,
.wp-pagenavi span.current {
  color: #fff;
  background: var(--nw-color-navy);
  border-color: var(--nw-color-navy);
}

.comContact .whiteBox {
  background: rgba(255, 255, 255, 0.96);
}

.comContact .ttl {
  color: var(--nw-color-navy);
}

.comContact .btn a::before,
.comContact .btn a::after,
.top #main .ourBox .btn a::before,
.top #main .ourBox .btn a::after {
  background-color: var(--nw-color-gold);
}

#gFooter {
  color: rgba(255, 255, 255, 0.72);
  background: linear-gradient(180deg, var(--nw-color-navy) 0%, var(--nw-color-navy-deep) 100%);
}

#gFooter .copyright,
#gFooter .fNavi a,
#gFooter .fNavi span,
#gFooter .fUl li a {
  color: inherit;
}

#gFooter .fNavi a::after {
  background-color: rgba(255, 255, 255, 0.18);
}

#gFooter .fNavi a:hover,
#gFooter .fUl li a:hover {
  color: #fff;
  opacity: 1;
}

@media all and (max-width: 1199px) {
  #gHeader {
    min-height: 62px;
  }

  #gNavi {
    background-color: var(--nw-color-navy-deep);
  }

  #gNavi li a {
    color: #fff;
    overflow-wrap: anywhere;
  }

  #gNavi li a::after {
    background-color: rgba(255, 255, 255, 0.24);
  }

  .language a {
    color: var(--nw-color-navy);
  }

  .top #main h2 {
    text-shadow: 0 3px 14px rgba(6, 24, 47, 0.45);
  }

  .top #main h3,
  .headLine01,
  .headLine02,
  .headLine03,
  .comttl,
  .content01,
  .comContact .ttl + p {
    overflow-wrap: anywhere;
  }

  .content01 {
    padding-right: 8.2vw;
  }

  .about #main .imgBox + .imgBox01 .textBox.comTextBox {
    border-radius: 8px;
    box-shadow: 0 12px 26px rgba(6, 24, 47, 0.08);
  }

  .about #main .imgBox + .imgBox01 .textBox.comTextBox .comttl {
    letter-spacing: 0.12em;
  }

  .about #main .imgBox + .imgBox01 .textBox.comTextBox .headLine01 {
    font-size: clamp(2rem, 6.5vw, 2.8rem);
    line-height: 1.45;
  }

  .about #main .imgBox01 + .imgBox01 .textBox.comTextBox {
    padding-top: 132px;
  }

  .about #main .imgBox01 + .imgBox01 .photoBox {
    margin-top: 0;
  }

  .about .standardBox .whiteBox,
  .our_key_value .standardBox .whiteBox,
  .our_vision .comOurBox .whiteBox,
  .our_vision .visionBox .whiteBox,
  .service .comOurBox .whiteBox {
    border-radius: 8px;
  }

  .our_vision .comOurBox .headLine03,
  .our_vision .visionBox .headLine03,
  .service .comOurBox .headLine03,
  .service .visionBox .headLine03 {
    letter-spacing: 0.1em;
  }

  .our_key_value .standardBox .whiteBox {
    display: block;
    width: 90%;
    max-width: none;
    margin-left: 0;
    padding-top: 48px;
    padding-bottom: 48px;
    padding-right: 7%;
  }

  .our_key_value .standardBox .whiteBox .headLine02 {
    margin-top: 0;
    margin-bottom: 32px;
    text-align: center;
  }

  .our_key_value .standardBox .whiteBox p {
    width: 100%;
    margin-top: 0;
    margin-bottom: 0;
    margin-left: 0;
    margin-right: 0;
    text-align: left;
  }

  .service .comOurBox .whiteBox .headLine03 {
    font-size: clamp(1.5rem, 4.5vw, 1.7rem) !important;
  }

  .comOurBox .whiteBox,
  .standardBox .whiteBox,
  .visionBox .whiteBox,
  .comContact .whiteBox {
    box-shadow: 0 10px 28px rgba(6, 24, 47, 0.08);
  }

  #gFooter {
    padding-left: 24px;
    padding-right: 24px;
  }
}

@media all and (max-width: 390px) {
  #gHeader .title,
  #gHeader h1 {
    max-width: 124px;
    line-height: 1.35;
  }

  .language a {
    padding-right: 7px;
    margin-right: 7px;
  }
}
