@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Outfit:wght@100..900&display=swap");
@layer foundation, vendor, layout, component, project, page, utilities;
:root {
  --sans-serif: "Noto Sans JP", "ヒラギノ角ゴシック", "Hiragino Sans", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", sans-serif;
  --serif: "Noto Serif JP", serif;
  --en-sans: "Outfit", sans-serif;
  --mix-sans: "Outfit", "Noto Sans JP", sans-serif;
  --base: #fff;
  --sub: #F0F4F7;
  --main: #050C1F;
  --accent: #004ECC;
  --accent2: #0280FF;
  --sp-base-fs: calc(16/370*100vw);
  --sp-pad: calc(20/370*100vw);
}

@layer foundation {
  body,
  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  p,
  dl,
  dt,
  dd,
  ol,
  ul,
  figure {
    all: unset;
    display: revert;
  }
  body {
    line-height: 1;
  }
  ol,
  ul {
    list-style: none;
  }
  table {
    border-collapse: collapse;
    border-spacing: 0;
  }
  img {
    vertical-align: middle;
  }
}
@layer foundation {
  html {
    height: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: 9.375rem;
  }
  @media screen and (max-width: 1390px) and (min-width: 767px) {
    html {
      font-size: 1.1428571429vw;
    }
  }
  @media screen and (max-width: 767px) {
    html {
      font-size: var(--sp-base-fs);
      scroll-padding-top: 25.641025641vw;
    }
  }
  body {
    text-size-adjust: 100%;
    font-family: var(--sans-serif);
    line-height: 1.8;
    min-width: 320px;
    color: var(--main);
    background: var(--base);
  }
  body [lang=en] {
    letter-spacing: normal;
  }
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
  :focus-visible {
    outline: 2px solid var(--accent);
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    line-height: 1.5;
  }
  img,
  svg,
  iframe,
  video,
  picture {
    max-width: 100%;
  }
  img {
    letter-spacing: 0;
    font-size: 12px;
    height: auto;
  }
  a {
    text-decoration: none;
    word-break: break-all;
    color: currentColor;
  }
  @media screen and (min-width: 768px) {
    a[href^="tel:"] {
      display: inline-block;
      pointer-events: none;
    }
  }
  small {
    font-size: 80%;
  }
  button,
  input[type=button],
  input[type=submit] {
    cursor: pointer;
    font: inherit;
  }
  button,
  input,
  select,
  textarea {
    font: inherit;
    color: inherit;
  }
  label {
    cursor: pointer;
    display: inline-block;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    line-height: 1.5;
  }
  summary::-webkit-details-marker {
    display: none;
  }
  summary {
    list-style: none;
    display: block;
    cursor: pointer;
    user-select: none;
  }
  b, strong {
    font-weight: 600;
  }
}
@layer layout {}
@layer layout {
  .l-footer {
    background: #050C1F;
    color: #fff;
    padding-top: 7.5rem;
    padding-bottom: 6.25rem;
  }
  @media screen and (max-width: 767px) {
    .l-footer {
      padding-top: 20.5128205128vw;
      padding-bottom: 15.3846153846vw;
    }
  }
  @media screen and (min-width: 768px) {
    .l-footer__row {
      padding-bottom: 6.875rem;
      display: grid;
      grid-template-columns: 13.75rem 1fr;
      gap: 3.75rem;
    }
  }
  @media screen and (max-width: 767px) {
    .l-footer__box-a {
      width: 66.6666666667vw;
      margin: 0 auto;
    }
  }
  @media screen and (max-width: 767px) {
    .l-footer__box-b {
      padding-top: 15.3846153846vw;
    }
  }
  @media screen and (max-width: 767px) {
    .l-footer__box-c {
      display: contents;
    }
  }
  @media screen and (min-width: 768px) {
    .l-footer__logo {
      width: 7.5rem;
    }
  }
  .l-footer__logo img {
    width: 100%;
  }
  .l-footer__btn-wrap {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    margin-top: 2.5rem;
  }
  .l-footer__btn-wrap a {
    width: 100%;
    text-align: center;
  }
  .l-footer__link-items {
    display: grid;
  }
  @media screen and (min-width: 768px) {
    .l-footer__link-items {
      grid-template-columns: 1fr 1fr 25rem 1fr;
      gap: 1.625rem;
    }
  }
  @media screen and (max-width: 767px) {
    .l-footer__link-items {
      grid-template-columns: repeat(2, 1fr);
      gap: 14.8717948718vw 7.6923076923vw;
    }
  }
  @media screen and (max-width: 767px) {
    .l-footer__link-items .is-ir {
      grid-column: 1/3;
    }
  }
  .l-footer__link-items dd.is-col {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.875rem;
  }
  @media screen and (max-width: 767px) {
    .l-footer__link-items dd.is-col {
      gap: 2.5641025641vw;
    }
  }
  .l-footer__icon {
    aspect-ratio: 15/10;
    width: 0.9375rem;
    fill: #fff;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translate(var(--arrow-x), -50%);
    transition: 0.25s transform;
  }
  .l-footer__link-ttl, .l-footer__link-ttl-a {
    --arrow-x: 0;
    position: relative;
    font-size: 1.125rem;
    line-height: 1.5;
    border-bottom: 1px solid rgba(255, 255, 255, 0.4);
    padding-bottom: 0.625rem;
  }
  .l-footer__link-ttl a, .l-footer__link-ttl-a a {
    display: block;
  }
  @media (hover: hover) {
    .l-footer__link-ttl a:hover, .l-footer__link-ttl-a a:hover {
      --arrow-x: 4px;
    }
  }
  .l-footer__link-ttl-a {
    font-size: 0.875rem;
  }
  .l-footer__link-en {
    display: block;
    font-size: 0.8125rem;
    font-family: var(--en-sans);
    margin-bottom: 0.0625rem;
  }
  .l-footer__link-list {
    margin-top: 1rem;
    font-size: 0.875rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    line-height: 1.6;
  }
  .l-footer__link-list li {
    position: relative;
    padding-left: 1.25rem;
  }
  .l-footer__link-list li + li {
    margin-top: 0.4em;
  }
  .l-footer__link-list li::before {
    content: "";
    display: block;
    width: 0.5rem;
    height: 1px;
    background: rgba(255, 255, 255, 0.4);
    position: absolute;
    left: 0;
    top: 0.8125rem;
  }
  .l-footer__link-list li ul {
    display: flex;
    flex-direction: column;
    gap: 0.4375rem;
    font-size: 0.75rem;
    margin: 0.625rem 0;
  }
  .l-footer__link-list li ul > li {
    padding-left: 0.625rem;
  }
  .l-footer__link-list li ul > li::before {
    width: 1px;
    height: 1px;
    background: #fff;
    top: 0.625rem;
  }
  @media (hover: hover) {
    .l-footer__link-list a:hover {
      text-decoration: underline;
    }
  }
  @media screen and (min-width: 768px) {
    .l-footer__link-list-a {
      display: flex;
      flex-direction: column;
      gap: 2.25rem;
    }
  }
  @media screen and (max-width: 767px) {
    .l-footer__link-list-a {
      display: contents;
    }
  }
  @media screen and (min-width: 768px) {
    .l-footer__row-a {
      display: flex;
      justify-content: space-between;
    }
  }
  @media screen and (min-width: 768px) {
    .l-footer__link-list-b {
      display: flex;
      gap: 2.25rem;
      font-size: 0.75rem;
    }
  }
  @media screen and (max-width: 767px) {
    .l-footer__link-list-b {
      margin-top: 15.3846153846vw;
      font-size: 3.0769230769vw;
      text-align: center;
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      justify-content: center;
      gap: 4.1025641026vw 7.6923076923vw;
    }
  }
  @media (hover: hover) {
    .l-footer__link-list-b a:hover {
      text-decoration: underline;
    }
  }
  .l-footer__copyright {
    font-size: 0.625rem;
    font-family: var(--en-sans);
  }
  @media screen and (max-width: 767px) {
    .l-footer__copyright {
      display: block;
      text-align: center;
      font-size: 2.5641025641vw;
      margin-top: 10.2564102564vw;
    }
  }
}
@layer layout {
  @media screen and (max-width: 767px) {
    .is-main-nav-expanded .l-header::before {
      height: 100vh;
      opacity: 1;
    }
  }
  .l-header {
    position: fixed;
    width: 100%;
    z-index: 111;
  }
  @media screen and (max-width: 767px) {
    .l-header::before {
      transition: opacity 0.3s;
      transition-delay: 0.08s;
      content: "";
      display: block;
      width: 100%;
      height: 0;
      opacity: 0;
      position: absolute;
      left: 0;
      top: 0;
      background-color: rgba(5, 12, 31, 0.8);
    }
  }
  .l-header::after {
    pointer-events: none;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: #DFE5EA;
    content: "";
  }
  .l-header__inner {
    background: #fff;
    display: grid;
    align-items: center;
    justify-content: space-between;
  }
  @media screen and (min-width: 768px) {
    .l-header__inner {
      grid-template-columns: 17.5rem 1fr;
      padding-right: 1.875rem;
    }
  }
  @media screen and (max-width: 767px) {
    .l-header__inner {
      position: relative;
      grid-template-columns: 56.4102564103vw 1fr;
    }
  }
  .l-header__logo {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: 7.5rem 1fr;
    gap: 1.25rem;
    align-items: center;
  }
  @media screen and (max-width: 767px) {
    .l-header__logo {
      gap: 3.8461538462vw;
      grid-template-columns: 23.0769230769vw 1fr;
    }
  }
  .l-header__logo-square {
    width: 100%;
  }
}
@layer layout {}
@layer layout {
  @media screen and (max-width: 767px) {
    .l-nav.is-expanded .l-nav__body {
      visibility: visible;
      opacity: 1;
      pointer-events: fill;
    }
  }
  .l-nav__btn {
    position: relative;
    z-index: 100;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    background: transparent;
    border: 0;
    padding: 3.0769230769vw;
  }
  @media screen and (min-width: 768px) {
    .l-nav__btn {
      display: none;
    }
  }
  @media screen and (max-width: 767px) {
    .l-nav__btn {
      position: absolute;
      right: 0;
      top: 0;
    }
  }
  .l-nav__btn[aria-expanded=true] .l-nav__line.is-1 {
    opacity: 0;
  }
  .l-nav__btn[aria-expanded=true] .l-nav__line.is-2 {
    rotate: 45deg;
  }
  .l-nav__btn[aria-expanded=true] .l-nav__line.is-3 {
    opacity: 0;
  }
  .l-nav__btn[aria-expanded=true] .l-nav__line.is-4 {
    rotate: -45deg;
  }
  .l-nav__btn svg {
    width: 8.9743589744vw;
    height: 8.9743589744vw;
  }
  .l-nav__line {
    transform-origin: center center;
    transition-property: opacity, rotate;
    transition-duration: 0.25s;
    stroke: var(--accent);
    stroke-width: 2px;
  }
  @media screen and (max-width: 767px) {
    .l-nav__body {
      background: #fff;
      width: calc(100% - 5.1282051282vw);
      height: calc(100dvh - 20.5128205128vw);
      display: block;
      padding: 10.2564102564vw 7.6923076923vw 10.2564102564vw 7.6923076923vw;
      visibility: hidden;
      pointer-events: none;
      opacity: 0;
      position: fixed;
      top: 17.9487179487vw;
      left: 2.5641025641vw;
      overflow: auto;
      overscroll-behavior-y: contain;
      transition: 0.3s;
      z-index: 200;
    }
  }
  .l-nav__en {
    display: block;
    font-size: 0.8125rem;
    font-family: var(--en-sans);
    color: var(--accent);
    line-height: 1.2;
  }
  @media screen and (min-width: 768px) {
    .l-nav__en {
      display: none;
    }
  }
  @media screen and (min-width: 768px) {
    .l-nav__main {
      display: flex;
      flex-direction: row;
      flex-wrap: wrap;
      justify-content: flex-end;
      align-items: center;
      gap: 1.5rem;
    }
  }
  .l-nav__list {
    display: flex;
  }
  @media screen and (min-width: 768px) {
    .l-nav__list {
      flex-direction: row;
      flex-wrap: wrap;
      align-items: center;
      gap: 2.5rem;
    }
  }
  @media screen and (max-width: 767px) {
    .l-nav__list {
      flex-direction: column;
      gap: 10.2564102564vw;
    }
  }
  .l-nav__lang {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    font-size: 3.0769230769vw;
  }
  @media screen and (min-width: 768px) {
    .l-nav__lang {
      font-size: 0.75rem;
    }
  }
  @media screen and (max-width: 767px) {
    .l-nav__lang {
      margin-top: 10.2564102564vw;
      justify-content: center;
    }
  }
  .l-nav__lang-item {
    line-height: 1.1;
  }
  .l-nav__lang-item:not(:first-child) {
    margin-left: 1rem;
    padding-left: 1rem;
    border-left: 1px solid #CECECE;
  }
  .l-nav__lang-item a[data-stt-active] {
    border-bottom: 1px solid #004ECC;
    padding-bottom: 0.2em;
    pointer-events: none;
  }
  @media (hover: hover) {
    .l-nav__lang-item a:hover {
      border-bottom: 1px solid #004ECC;
    }
  }
  .l-nav__lang-item[lang=en] {
    font-family: var(--en-sans);
  }
  .l-nav__item {
    position: relative;
  }
  .l-nav__link {
    transition: 0.25s color;
    padding: 0;
    border: 0;
    background: none;
  }
  @media screen and (max-width: 767px) {
    .l-nav__link {
      position: relative;
      display: block;
      border-bottom: 1px solid #DFE5EA;
      padding-bottom: 2.5641025641vw;
      font-size: 4.6153846154vw;
      width: 100%;
      text-align: left;
    }
  }
  @media (hover: hover) {
    .l-nav__link:not(button):hover {
      color: var(--accent);
    }
  }
  .l-nav__arrow-icon, .l-nav__toggle-icon {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-10%);
  }
  .l-nav__arrow-icon {
    transform: translateY(-20%);
  }
  .l-nav__link-btn {
    border-radius: 100rem;
    background: linear-gradient(to right, #0280ff 0%, #004ecb 100%);
    color: #fff;
    padding: 1em 1.6em;
    transition: 0.25s filter;
  }
  @media screen and (max-width: 767px) {
    .l-nav__link-btn {
      padding: 1.4em;
      width: 100%;
      text-align: center;
    }
  }
  @media (hover: hover) {
    .l-nav__link-btn:hover {
      filter: brightness(120%);
    }
  }
  @media screen and (min-width: 768px) {
    .l-nav__mega {
      position: absolute;
      left: -1.875rem;
      top: 1.875rem;
      width: fit-content;
      padding-top: 2.125rem;
      opacity: 0;
      transition: 0.25s opacity;
      pointer-events: none;
      width: 14.375rem;
    }
    .l-nav__mega.is-business {
      width: 10.625rem;
    }
    .l-nav__mega.is-ir {
      width: 28.125rem;
    }
  }
  @media screen and (max-width: 767px) {
    .l-nav__mega {
      display: none;
    }
  }
  .l-nav__mega.is-visible {
    pointer-events: fill;
    opacity: 1;
  }
  @media screen and (min-width: 768px) {
    .l-nav__children {
      width: 100%;
      font-size: 0.875rem;
      background: #fff;
      padding: 1.75rem 1.875rem;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
    }
  }
  @media screen and (max-width: 767px) {
    .l-nav__children {
      font-size: 3.5897435897vw;
      padding-top: 4.1025641026vw;
    }
  }
  .l-nav__children.is-ir {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5625rem;
  }
  .l-nav__children.is-ir .is-1col {
    grid-column: 1/3;
    margin-bottom: -1.25rem;
  }
  .l-nav__children li {
    position: relative;
    padding-left: 1.125rem;
  }
  .l-nav__children li + li {
    margin-top: 0.3em;
  }
  .l-nav__children li::before {
    content: "";
    display: block;
    width: 0.5rem;
    height: 1px;
    background: var(--accent);
    position: absolute;
    left: 0;
    top: 0.8125rem;
  }
  @media (hover: hover) {
    .l-nav__children li a:hover {
      text-decoration: underline;
    }
  }
  @media screen and (max-width: 767px) {
    .l-nav__children li ul {
      font-size: 3.0769230769vw;
    }
  }
  .l-nav__children li ul li {
    padding-left: 0.625rem;
  }
  .l-nav__children li ul li::before {
    width: 2px;
    height: 2px;
    background: var(--accent);
    top: 0.6875rem;
  }
}
@layer layout {}
@layer component {
  .c-btn {
    cursor: pointer;
    position: relative;
    display: inline-block;
    line-height: 1.1;
    text-decoration: none;
    user-select: none;
  }
  .c-btn:hover {
    text-decoration: none;
  }
}
@layer component {
  .c-container {
    width: 80rem;
    max-width: 100%;
    margin-right: auto;
    margin-left: auto;
  }
  .c-container-s {
    width: 70rem;
    max-width: 100%;
    margin-right: auto;
    margin-left: auto;
  }
  .c-container-l {
    width: 82.5rem;
    max-width: 100%;
    margin-right: auto;
    margin-left: auto;
  }
}
@layer component {
  .c-icon {
    position: relative;
    display: inline-block;
    background: 50% 50% no-repeat;
    background-size: contain;
    vertical-align: top;
    line-height: 1;
    font-style: normal;
  }
}
@layer project {
  .p-btn-a {
    --my-bg: transparent;
    --my-fill: var(--accent);
    --my-icon-size: 1rem;
    --my-border-color: var(--accent);
    --my-over-color: linear-gradient(to right, #0280ff 0%, #004ecb 100%);
    --my-color: var(--main);
    overflow: hidden;
    border: 1px solid var(--my-border-color);
    border-radius: 100rem;
    padding: 1.5rem 3.125rem;
    transition: 0.25s color;
    background: var(--my-bg);
    color: var(--my-color);
    font-weight: 500;
  }
  @media screen and (max-width: 767px) {
    .p-btn-a {
      padding: 5.1282051282vw 10.2564102564vw;
    }
  }
  .p-btn-a.is-blue {
    --my-bg: transparent;
    --my-over-color: #004ECC;
    --my-border-color: #004ECC;
  }
  .p-btn-a.is-blue .p-icon-pdf {
    --my-color: var(--accent);
  }
  .p-btn-a.is-fill {
    --my-bg: linear-gradient(to right, #0280ff 0%, #004ecb 100%);
    --my-color: #fff;
    --my-over-color: #004ECC;
    --my-border-color: #004ECC;
  }
  .p-btn-a:has(.p-icon-toggle) {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
  }
  .p-btn-a::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    background: var(--my-over-color);
    opacity: 0;
    transition: 0.25s opacity;
  }
  .p-btn-a .p-icon-toggle {
    margin-left: -1rem;
  }
  @media screen and (max-width: 767px) {
    .p-btn-a .p-icon-toggle {
      margin-left: -4.1025641026vw;
    }
  }
  @media (hover: hover) {
    .p-btn-a:hover {
      color: #fff;
    }
    .p-btn-a:hover::before {
      opacity: 1;
    }
    .p-btn-a:hover.is-blue .p-icon-pdf {
      --my-color: #fff;
    }
    .p-btn-a:hover.is-blue .p-icon-blank {
      fill: #fff;
    }
    .p-btn-a:hover .p-icon-toggle {
      --my-color: #fff;
    }
  }
  .p-btn-a__label {
    position: relative;
    z-index: 2;
  }
  .p-btn-a__icon {
    position: absolute;
    z-index: 2;
    right: 1.25rem;
    top: 50%;
    transform: translateY(-50%);
  }
  .p-btn-a__icon-blank {
    position: absolute;
    z-index: 2;
    right: 1.25rem;
    top: 50%;
    transform: translateY(-50%);
    width: 0.875rem;
    height: 0.875rem;
  }
  .p-btn-b {
    --my-bg: #fff;
    --my-border-color: #fff;
    --my-color: var(--main);
    --my-fill: var(--accent);
    --my-over-color: #050C1F;
    overflow: hidden;
    border-radius: 100rem;
    padding: 1rem 2.5rem;
    transition: 0.25s color;
    font-size: 0.875rem;
    background: var(--my-bg);
    color: var(--my-color);
    border: 1px solid var(--my-border-color);
    font-weight: 500;
  }
  .p-btn-b.is-blue {
    --my-bg: transparent;
    --my-over-color: #004ECC;
    --my-border-color: #004ECC;
  }
  .p-btn-b.is-fill {
    --my-bg: linear-gradient(to right, #0280ff 0%, #004ecb 100%);
    --my-color: #fff;
    --my-over-color: #004ECC;
    --my-border-color: #004ECC;
  }
  @media screen and (min-width: 768px) {
    .p-btn-b.is-PC-rows {
      padding-top: 0.5rem;
      padding-bottom: 0.5rem;
    }
  }
  .p-btn-b::before {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    background: var(--my-over-color);
    opacity: 0;
    transition: 0.25s opacity;
  }
  @media (hover: hover) {
    .p-btn-b:hover {
      color: #fff;
    }
    .p-btn-b:hover::before {
      opacity: 1;
    }
    .p-btn-b:hover .p-btn-b__icon-blank,
    .p-btn-b:hover .p-btn-b__icon-download-a {
      fill: #fff;
    }
  }
  .p-btn-b__label {
    position: relative;
    z-index: 2;
  }
  .p-btn-b__icon, .p-btn-b__icon-blank, .p-btn-b__icon-download-a {
    position: absolute;
    z-index: 2;
    right: 1.5rem;
    top: 50%;
    transform: translateY(-50%);
  }
  @media screen and (max-width: 767px) {
    .p-btn-b__icon-download-a {
      right: 3.5897435897vw;
    }
  }
  .p-btn-b__icon-download-a {
    width: 1.125rem;
    height: 1.125rem;
    fill: var(--accent);
  }
  @media screen and (max-width: 767px) {
    .p-btn-b__icon-download-a {
      width: 4.1025641026vw;
      height: 4.1025641026vw;
    }
  }
  .p-btn-download,
  .p-btn-support {
    color: #fff;
    display: grid;
    align-items: center;
    grid-template-columns: 2.625rem 1fr;
    gap: 0.75rem;
    background: linear-gradient(to right, #0280ff 0%, #004ecb 100%);
    padding: 1.25rem 1.5rem 1.25rem 1.875rem;
    transition: 0.25s filter;
    font-size: 0.875rem;
  }
  @media screen and (max-width: 767px) {
    .p-btn-download,
    .p-btn-support {
      grid-template-columns: 10.2564102564vw 1fr;
      font-size: 3.3333333333vw;
      padding: 2.5641025641vw 5.1282051282vw 2.5641025641vw 6.4102564103vw;
    }
  }
  @media (hover: hover) {
    .p-btn-download:hover,
    .p-btn-support:hover {
      filter: brightness(110%);
    }
  }
  .p-btn-download svg,
  .p-btn-support svg {
    fill: #fff;
    aspect-ratio: 35/38;
  }
  .p-btn-download {
    background: #004ECC;
    grid-template-columns: 2.125rem 1fr;
  }
  @media screen and (max-width: 767px) {
    .p-btn-download {
      grid-template-columns: 8.7179487179vw 1fr;
    }
  }
  .p-btn-close {
    cursor: pointer;
    background: #000;
    position: fixed;
    right: 0;
    top: 0;
    border: 0;
    width: 3.125rem;
    height: 3.125rem;
    padding: 0;
    transform: translate(50%, -50%);
  }
  .p-btn-close::before, .p-btn-close::after {
    content: "";
    display: block;
    width: 70%;
    height: 2px;
    background: #fff;
    position: absolute;
    left: 15%;
  }
  .p-btn-close::before {
    transform: rotate(-45deg);
  }
  .p-btn-close::after {
    transform: rotate(45deg);
  }
}
@layer project {
  .p-icon-arrow {
    --my-icon-size: 0.9375rem;
    aspect-ratio: 15/10;
    display: block;
    width: var(--my-icon-size);
    background: url("../img/icon/arrow.svg") 0 0/auto 100% repeat-x;
    transition: 0.3s translate;
  }
  @media screen and (max-width: 767px) {
    .p-icon-arrow {
      --my-icon-size: 4.1025641026vw;
    }
  }
  .p-icon-arrow.is-white {
    background-image: url("../img/icon/arrow_white.svg");
  }
  .p-icon-pdf {
    --my-icon-size: 0.875rem;
    aspect-ratio: 14/17;
    display: block;
    width: var(--my-icon-size);
    fill: var(--my-color);
    transition: 0.25s fill;
  }
  @media (hover: hover) {
    button:hover .p-icon-arrow,
    a:hover .p-icon-arrow {
      background-image: url("../img/icon/arrow_white.svg");
    }
    button:hover .p-icon-arrow.is-blue,
    a:hover .p-icon-arrow.is-blue {
      background-image: url("../img/icon/arrow.svg");
    }
    button:hover .p-icon-arrow:not(.is-rotate),
    a:hover .p-icon-arrow:not(.is-rotate) {
      translate: 3px 0;
    }
  }
  .p-icon-carrow {
    --my-size: 3.75rem;
    width: var(--my-size);
    height: var(--my-size);
    background: linear-gradient(to right, #0280ff 0%, #004ecb 100%);
    border-radius: 100rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.25s filter;
  }
  @media screen and (max-width: 767px) {
    .p-icon-carrow {
      --my-size: 10.2564102564vw;
    }
  }
  .p-icon-carrow.is-small {
    --my-size: 2.5rem;
  }
  @media screen and (max-width: 767px) {
    .p-icon-carrow.is-small {
      --my-size: 6.1538461538vw;
    }
  }
  .p-icon-carrow.is-white {
    background: #fff;
  }
  .p-icon-close {
    position: relative;
    width: 3.0769230769vw;
    height: 3.0769230769vw;
  }
  @media screen and (min-width: 768px) {
    .p-icon-close {
      width: 0.875rem;
      height: 0.875rem;
    }
  }
  .p-icon-close::before, .p-icon-close::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 1px;
    background: var(--accent);
    transform: translateY(50%);
    border-radius: 10px;
  }
  .p-icon-close::before {
    transform: rotate(45deg);
  }
  .p-icon-close::after {
    transform: rotate(-45deg);
  }
  .p-icon-blank {
    width: 0.75rem;
    height: 0.75rem;
    fill: var(--accent);
    transition: 0.25s fill;
  }
  .p-icon-toggle {
    display: inline-block;
    position: relative;
    width: 4.1025641026vw;
    height: 4.1025641026vw;
    --my-color: var(--accent);
  }
  @media screen and (min-width: 768px) {
    .p-icon-toggle {
      width: 1rem;
      height: 1rem;
    }
  }
  .p-icon-toggle::before, .p-icon-toggle::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    height: 1px;
    background: var(--my-color);
    transform: translateY(50%);
    border-radius: 10px;
  }
  .p-icon-toggle::before {
    transition: 0.25s transform;
    transform: rotate(90deg);
  }
  .p-icon-toggle::after {
    transform: rotate(0);
  }
  .p-icon-toggle.is-open::before,
  details[open] .p-icon-toggle::before {
    transform: rotate(0);
  }
}
@layer project {
  .u-bg-blue .p-breadcrumb__list > li:not(:last-child)::after {
    background: #fff;
  }
  .u-bg-blue .p-breadcrumb__list a[aria-current=page] {
    opacity: 1;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page-a .p-breadcrumb {
      margin-right: calc(var(--sp-pad) * -1);
    }
  }
  .p-breadcrumb {
    font-size: 1rem;
  }
  @media screen and (max-width: 767px) {
    .p-breadcrumb {
      overflow: auto;
      font-size: 3.0769230769vw;
    }
  }
  .p-breadcrumb.is-hdr-b {
    padding-top: 2.5rem;
    padding-left: 5rem;
  }
  @media screen and (max-width: 767px) {
    .p-breadcrumb.is-hdr-b {
      padding-top: 4.1025641026vw;
      padding-left: var(--sp-pad);
      padding-right: var(--sp-pad);
    }
  }
  .p-breadcrumb.is-gph {
    padding-top: 2.5rem;
    padding-left: 5rem;
  }
  @media screen and (max-width: 767px) {
    .p-breadcrumb.is-gph {
      padding-top: 16.9230769231vw;
      padding-left: var(--sp-pad);
      padding-right: var(--sp-pad);
    }
  }
  .p-breadcrumb.is-gph-in {
    padding-top: 3.75rem;
    padding-bottom: 6.25rem;
    padding-left: 4.6875rem;
  }
  @media screen and (max-width: 767px) {
    .p-breadcrumb.is-gph-in {
      padding-top: 20.5128205128vw;
      padding-bottom: 12.8205128205vw;
      padding-left: var(--sp-pad);
      padding-right: var(--sp-pad);
    }
  }
  .p-breadcrumb.is-sms {
    padding-top: 3.75rem;
    padding-bottom: 6.25rem;
    padding-left: 4.6875rem;
  }
  @media screen and (max-width: 767px) {
    .p-breadcrumb.is-sms {
      padding-top: 7.6923076923vw;
      padding-bottom: 10.2564102564vw;
      padding-left: var(--sp-pad);
      padding-right: var(--sp-pad);
    }
  }
  .p-breadcrumb__list {
    display: flex;
    flex-direction: row;
    line-height: 1.2;
  }
  @media screen and (max-width: 767px) {
    .p-breadcrumb__list li {
      white-space: nowrap;
    }
  }
  .p-breadcrumb__list > li:not(:last-child)::after {
    display: inline-block;
    margin: 0 1.5em;
    content: "";
    width: 0.5rem;
    height: 1px;
    background: var(--main);
    opacity: 0.5;
    font-size: 50%;
    vertical-align: top;
    position: relative;
    top: 0.625rem;
  }
  @media screen and (max-width: 767px) {
    .p-breadcrumb__list > li:not(:last-child)::after {
      top: 2.0512820513vw;
    }
  }
  .p-breadcrumb__list a[aria-current=page] {
    pointer-events: none;
    opacity: 0.5;
  }
  .p-breadcrumb__list a {
    display: inline-block;
    position: relative;
  }
  @media (hover: hover) {
    .p-breadcrumb__list a:hover::before {
      width: 100%;
    }
  }
  .p-breadcrumb__list a::before {
    content: "";
    display: block;
    width: 0%;
    height: 1px;
    background: currentColor;
    position: absolute;
    left: 0;
    bottom: -1px;
    transition: 0.3s width;
  }
}
@layer project {
  .p-post__hdr {
    margin-bottom: 5rem;
  }
  @media screen and (max-width: 767px) {
    .p-post__hdr {
      margin-bottom: 10.2564102564vw;
    }
  }
  .p-post__meta {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 1.125rem;
    margin-bottom: 1rem;
  }
  .p-post__tax-list {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.625rem;
  }
  .p-post__tax {
    background: var(--sub);
    font-size: 0.875rem;
    line-height: 1.1;
    padding: 0.5em 1em;
    color: var(--accent);
  }
  @media screen and (max-width: 767px) {
    .p-post__tax {
      font-size: 3.0769230769vw;
    }
  }
  .p-post__date {
    font-family: var(--en-sans);
  }
  @media screen and (max-width: 767px) {
    .p-post__date {
      font-size: 4.1025641026vw;
    }
  }
  .p-post__ttl {
    font-size: 2rem;
    font-weight: 600;
    color: #3F342D;
  }
  @media screen and (max-width: 767px) {
    .p-post__ttl {
      font-size: 6.1538461538vw;
    }
  }
  .p-post__body {
    line-height: 2;
  }
  .p-post__body > *:first-child {
    margin-top: 0;
  }
  .p-post__body h2 {
    position: relative;
    font-size: 1.75rem;
    font-weight: 600;
    margin-top: 5rem;
    margin-bottom: 2.5rem;
  }
  @media screen and (max-width: 767px) {
    .p-post__body h2 {
      margin-top: 15.3846153846vw;
      margin-bottom: 5.1282051282vw;
      font-size: 5.641025641vw;
    }
  }
  .p-post__body h3 {
    position: relative;
    font-size: 1.5rem;
    font-weight: 600;
    margin-top: 3.75rem;
    margin-bottom: 1.875rem;
  }
  @media screen and (max-width: 767px) {
    .p-post__body h3 {
      margin-top: 10.2564102564vw;
      margin-bottom: 5.1282051282vw;
      font-size: 5.1282051282vw;
    }
  }
  .p-post__body h4 {
    position: relative;
    font-size: 1.25rem;
    font-weight: 600;
    margin-top: 3.75rem;
    margin-bottom: 1.875rem;
  }
  @media screen and (max-width: 767px) {
    .p-post__body h4 {
      margin-top: 10.2564102564vw;
      margin-bottom: 5.1282051282vw;
      font-size: 5.1282051282vw;
    }
  }
  .p-post__body h5 {
    margin-top: 2.5rem;
    margin-bottom: 1.25rem;
    font-size: 1.125rem;
    font-weight: 600;
  }
  @media screen and (max-width: 767px) {
    .p-post__body h5 {
      margin-top: 7.6923076923vw;
      margin-bottom: 2.5641025641vw;
      font-size: 4.6153846154vw;
    }
  }
  .p-post__body :where(*:not(.wp-block-heading) + *:not(.wp-block-heading)) {
    margin-top: 1em;
  }
  .p-post__body strong {
    font-weight: 600;
  }
  .p-post__body a {
    position: relative;
    color: var(--accent);
    text-decoration: underline;
  }
  @media (hover: hover) {
    .p-post__body a:hover {
      text-decoration: none;
    }
  }
  .p-post__body ol li + li, .p-post__body ul li + li {
    margin-top: 0.2em;
  }
  .p-post__body ol {
    list-style: decimal;
    margin-left: 20px;
  }
  .p-post__body ul {
    list-style: disc;
    margin-left: 16px;
  }
  .p-post__body p + p {
    margin-top: 2em;
  }
  .p-post__img {
    text-align: center;
  }
  .p-post__img img {
    width: 56.25rem;
  }
  .p-post__main {
    margin-top: 5rem;
  }
  @media screen and (max-width: 767px) {
    .p-post__main {
      margin-top: 10.2564102564vw;
    }
  }
}
@layer project {
  .p-posts__icon-pdf {
    width: 1rem;
    margin: 0 0.6em;
    vertical-align: top;
    top: 0.2em;
  }
  .p-posts__row {
    --my-color: var(--main);
    display: grid;
    align-items: center;
    padding: 1.5rem 0.625rem;
    border-bottom: 1px solid #DFE5E9;
    transition: 0.25s background;
  }
  @media screen and (min-width: 768px) {
    .p-posts__row {
      gap: 1.5rem;
      grid-template-columns: 7.5rem 8.125rem 1fr;
    }
  }
  @media screen and (max-width: 767px) {
    .p-posts__row {
      grid-template-columns: 23.0769230769vw 1fr;
      padding: 6.4102564103vw 0;
      grid-template-areas: "date tax" "ttl ttl";
    }
  }
  @media (hover: hover) {
    .p-posts__row:hover {
      background: #fff;
      --my-color: var(--accent);
    }
  }
  .p-posts__date {
    font-family: var(--mix-sans);
  }
  @media screen and (max-width: 767px) {
    .p-posts__date {
      grid-area: date;
      font-size: 3.5897435897vw;
    }
  }
  @media screen and (min-width: 768px) {
    .p-posts__tax {
      font-size: 0.875rem;
    }
  }
  @media screen and (max-width: 767px) {
    .p-posts__tax {
      grid-area: tax;
      font-size: 3.0769230769vw;
    }
  }
  .p-posts__tax span {
    display: inline-block;
    background: #fff;
    color: var(--accent);
    text-align: center;
  }
  @media screen and (min-width: 768px) {
    .p-posts__tax span {
      display: block;
      padding: 0.2em 0;
    }
  }
  @media screen and (max-width: 767px) {
    .p-posts__tax span {
      padding: 0.2em;
      min-width: 30.7692307692vw;
    }
  }
  .p-posts__ttl {
    transition: 0.25s color;
    color: var(--my-color);
    line-height: 1.5;
  }
  @media screen and (max-width: 767px) {
    .p-posts__ttl {
      grid-area: ttl;
      margin-top: 3.5897435897vw;
    }
  }
  .p-posts .is-pdf {
    width: 1rem;
    margin: 0 0.25rem;
  }
  .p-posts-a.is-top-border {
    border-top: 1px solid #DFE5E9;
  }
  .p-posts-a__row {
    --my-color: var(--main);
    padding: 1.5rem 0.625rem;
    border-bottom: 1px solid #DFE5E9;
    transition: 0.25s background;
  }
  @media screen and (min-width: 768px) {
    .p-posts-a__row {
      gap: 1.5rem;
      display: grid;
      align-items: center;
      grid-template-columns: 6.25rem 1fr;
    }
  }
  @media screen and (max-width: 767px) {
    .p-posts-a__row {
      display: flex;
      flex-direction: column;
      padding-left: 0;
      padding-right: 0;
    }
  }
  @media (hover: hover) {
    .p-posts-a__row:hover {
      background: #fff;
      --my-color: var(--accent);
    }
  }
  .p-posts-a__row-a {
    --my-color: var(--main);
    padding: 1.5rem 0.625rem;
    border-bottom: 1px solid #DFE5E9;
    transition: 0.25s background;
  }
  @media screen and (min-width: 768px) {
    .p-posts-a__row-a {
      gap: 1.5rem;
      display: grid;
      align-items: center;
      grid-template-columns: 10rem 1fr;
    }
  }
  @media screen and (max-width: 767px) {
    .p-posts-a__row-a {
      display: flex;
      flex-direction: column;
      padding-left: 0;
      padding-right: 0;
    }
  }
  .p-posts-a__date {
    font-family: var(--mix-sans);
  }
  @media screen and (max-width: 767px) {
    .p-posts-a__date {
      font-size: 3.5897435897vw;
    }
  }
  .p-posts-a__ttl {
    transition: 0.25s color;
    color: var(--my-color);
    line-height: 1.5;
  }
  @media screen and (max-width: 767px) {
    .p-posts-a__ttl {
      grid-area: ttl;
      margin-top: 1.0256410256vw;
    }
  }
  .p-posts-a .is-pdf {
    width: 1rem;
    margin: 0 0.25rem;
    margin-left: 0.4375rem;
  }
  @media screen and (max-width: 767px) {
    .p-posts-a .is-pdf {
      position: relative;
      top: -0.5128205128vw;
    }
  }
}
@layer project {
  .p-hdr-page {
    position: relative;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page {
      margin-left: var(--sp-pad);
    }
  }
  .p-hdr-page__img-wrap {
    width: 100%;
    clip-path: polygon(0 0, 100% 0, 100% 30%, 100% 100%, 89.7435897436vw 100%, 89.7435897436vw calc(100% - 41.0256410256vw), 0 calc(100% - 41.0256410256vw), 0% 30%);
  }
  @media screen and (min-width: 768px) {
    .p-hdr-page__img-wrap {
      height: 33.75rem;
      clip-path: polygon(0 0, 100% 0, 100% 30%, 100% 100%, 43.75rem 100%, 43.75rem calc(100% - 15rem), 0 calc(100% - 15rem), 0% 30%);
    }
  }
  .p-hdr-page__img-wrap.is-dds {
    clip-path: polygon(0 0, 100% 0, 100% 30%, 100% 100%, 89.7435897436vw 100%, 89.7435897436vw calc(100% - 46.1538461538vw), 0 calc(100% - 46.1538461538vw), 0% 30%);
  }
  @media screen and (min-width: 768px) {
    .p-hdr-page__img-wrap.is-dds {
      height: 33.75rem;
      clip-path: polygon(0 0, 100% 0, 100% 30%, 100% 100%, 43.75rem 100%, 43.75rem calc(100% - 16.25rem), 0 calc(100% - 16.25rem), 0% 30%);
    }
  }
  .p-hdr-page__img-wrap.is-construction {
    clip-path: polygon(0 0, 100% 0, 100% 30%, 100% 100%, 89.7435897436vw 100%, 89.7435897436vw calc(100% - 46.1538461538vw), 0 calc(100% - 46.1538461538vw), 0% 30%);
  }
  @media screen and (min-width: 768px) {
    .p-hdr-page__img-wrap.is-construction {
      clip-path: polygon(0 0, 100% 0, 100% 30%, 100% 100%, 48.75rem 100%, 48.75rem calc(100% - 22.5rem), 0 calc(100% - 22.5rem), 0% 30%);
    }
  }
  .p-hdr-page__img-wrap.is-in-government {
    clip-path: polygon(0 0, 100% 0, 100% 30%, 100% 100%, 89.7435897436vw 100%, 89.7435897436vw calc(100% - 43.5897435897vw), 0 calc(100% - 43.5897435897vw), 0% 30%);
  }
  @media screen and (min-width: 768px) {
    .p-hdr-page__img-wrap.is-in-government {
      clip-path: polygon(0 0, 100% 0, 100% 30%, 100% 100%, 40.625rem 100%, 40.625rem calc(100% - 22.5rem), 0 calc(100% - 22.5rem), 0% 30%);
    }
  }
  @media screen and (min-width: 768px) {
    .p-hdr-page__img-wrap img {
      object-fit: cover;
      width: 100%;
      height: 100%;
    }
  }
  .p-hdr-page__text-wrap {
    position: absolute;
    bottom: 0;
    left: 0;
    color: #fff;
    display: flex;
    align-items: flex-end;
    width: 89.7435897436vw;
    height: 38.4615384615vw;
    padding: 7.6923076923vw 2.5641025641vw 0 0;
    font-feature-settings: "palt";
    letter-spacing: 0.2em;
  }
  @media screen and (min-width: 768px) {
    .p-hdr-page__text-wrap {
      padding: 0 2.5rem 0 5rem;
      width: 42.5rem;
      height: 15rem;
    }
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page__text-wrap {
      bottom: -5.8974358974vw;
    }
  }
  @media screen and (min-width: 768px) {
    .p-hdr-page__text-wrap.is-construction {
      width: 48.75rem;
    }
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page__text-wrap.is-construction {
      bottom: -10.2564102564vw;
    }
  }
  @media screen and (min-width: 768px) {
    .p-hdr-page__text-wrap.is-in-government {
      width: 53.125rem;
    }
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page__text-wrap.is-in-government {
      bottom: -10.2564102564vw;
    }
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page__text-wrap.is-in-sms {
      padding-top: 0;
      bottom: 0;
    }
  }
  .p-hdr-page__text {
    font-size: 1.25rem;
    margin-bottom: 0.1em;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page__text {
      font-size: 3.5897435897vw;
    }
  }
  .p-hdr-page__text-a {
    font-size: 1.25rem;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page__text-a {
      font-size: 3.3333333333vw;
      letter-spacing: 0.12em;
    }
  }
  .p-hdr-page__ttl {
    font-size: 4rem;
    font-family: var(--mix-sans);
    font-weight: 600;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page__ttl {
      line-height: 1.4;
      font-size: 12.3076923077vw;
    }
  }
  .p-hdr-page__ttl-a {
    display: inline-flex;
    align-items: center;
    background: #004ECC;
    line-height: 1.1;
  }
  .p-hdr-page__ttl-a img {
    width: 5rem;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page__ttl-a img {
      width: 14.358974359vw;
    }
  }
  .p-hdr-page__ttl-a span {
    font-size: 2rem;
    padding: 1.125rem 1.75rem 1.125rem 1.625rem;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page__ttl-a span {
      padding: 2.5641025641vw 4.1025641026vw;
      font-size: 5.1282051282vw;
    }
  }
  .p-hdr-page__text-a + .p-hdr-page__ttl-b {
    margin-top: 0.625rem;
  }
  .p-hdr-page__ttl-b {
    font-weight: 500;
    font-size: 3.375rem;
    line-height: 1.4;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page__ttl-b {
      font-size: 8.2051282051vw;
      letter-spacing: normal;
    }
  }
  .p-hdr-page__ttl-b span {
    display: block;
    font-size: 2.375rem;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page__ttl-b span {
      font-size: 5.1282051282vw;
    }
  }
  .p-hdr-page__lead {
    font-size: 3rem;
    font-family: var(--mix-sans);
    font-weight: 600;
    margin: 1rem 0;
    line-height: 1.5;
    letter-spacing: normal;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page__lead {
      margin: 2.5641025641vw 0 2.0512820513vw 0;
      font-size: 6.6666666667vw;
    }
  }
  .p-hdr-page__lead-a {
    font-size: 3rem;
    font-family: var(--mix-sans);
    font-weight: 600;
    margin: 1rem 0;
    line-height: 1.5;
    letter-spacing: normal;
  }
  @media screen and (min-width: 768px) {
    .p-hdr-page__lead-a {
      letter-spacing: 0.1em;
    }
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page__lead-a {
      margin: 1.5384615385vw 0 2.5641025641vw 0;
      font-size: 6.6666666667vw;
      letter-spacing: 0.06em;
    }
  }
  .p-hdr-page__en {
    font-size: 1.125rem;
    font-family: var(--en-sans);
    line-height: 1;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page__en {
      font-size: 3.5897435897vw;
    }
  }
  .p-hdr-page-a {
    position: relative;
    border-bottom: 1px solid var(--accent);
  }
  @media screen and (min-width: 768px) {
    .p-hdr-page-a {
      margin-left: 5rem;
      margin-right: 5em;
      padding-top: 11.25rem;
      padding-bottom: 2.8125rem;
    }
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page-a {
      padding-top: 6.875rem;
      padding-bottom: 6.1538461538vw;
      margin-left: var(--sp-pad);
      margin-right: var(--sp-pad);
    }
  }
  .p-hdr-page-a.is-nbd {
    border-bottom: 0;
  }
  .p-hdr-page-a:has(.p-hdr-page-a__link) {
    padding-bottom: 0;
  }
  .p-hdr-page-a__en {
    font-family: var(--en-sans);
    color: var(--accent);
    font-size: 1.5rem;
    line-height: 1;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page-a__en {
      font-size: 3.5897435897vw;
    }
  }
  .p-hdr-page-a__ttl {
    font-size: 3rem;
    font-weight: 500;
    line-height: 1.5;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page-a__ttl {
      margin-top: 0.5128205128vw;
      font-size: 7.9487179487vw;
    }
  }
  .p-hdr-page-a__breadcrumb {
    margin-top: 3.125rem;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page-a__breadcrumb {
      margin-top: 12.8205128205vw;
    }
  }
  .p-hdr-page-b {
    position: relative;
  }
  .p-hdr-page-b__img-wrap {
    width: 100%;
  }
  @media screen and (min-width: 768px) {
    .p-hdr-page-b__img-wrap {
      height: 20rem;
    }
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page-b__img-wrap {
      height: 61.5384615385vw;
    }
  }
  @media screen and (min-width: 768px) {
    .p-hdr-page-b__img-wrap img {
      object-fit: cover;
      width: 100%;
      height: 100%;
    }
  }
  .p-hdr-page-b__text-wrap {
    position: absolute;
    bottom: 0;
    left: 0;
    background: #fff;
    font-feature-settings: "palt";
  }
  @media screen and (min-width: 768px) {
    .p-hdr-page-b__text-wrap {
      width: 30.5rem;
      padding: 2.5rem 5rem 0 5rem;
    }
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page-b__text-wrap {
      padding: 5.1282051282vw 5.1282051282vw 2.5641025641vw var(--sp-pad);
    }
  }
  .p-hdr-page-b__ttl {
    font-size: 3rem;
    font-family: var(--mix-sans);
    font-weight: 600;
    letter-spacing: 0.01em;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page-b__ttl {
      line-height: 1.4;
      font-size: 8.2051282051vw;
    }
  }
  .p-hdr-page-b__en {
    font-size: 1.5rem;
    font-family: var(--en-sans);
    color: var(--accent);
    line-height: 1.2;
  }
  @media screen and (max-width: 767px) {
    .p-hdr-page-b__en {
      font-size: 3.5897435897vw;
    }
  }
}
@layer project {
  .p-contact {
    position: relative;
    z-index: 110;
    background: url("../img/content/contact_bg.jpg") 100% 0/cover no-repeat;
    padding: 7.8125rem 0 6.25rem 0;
    color: #fff;
  }
  @media screen and (max-width: 767px) {
    .p-contact {
      padding-top: 20.5128205128vw;
      padding-bottom: 94.8717948718vw;
      background: #004ECB url("../img/content/contact_bg_sp.jpg") 100% 0/cover no-repeat;
    }
  }
  .p-contact::before, .p-contact::after {
    content: "";
    display: block;
    position: absolute;
    background: url("../img/content/contact_1.webp") 100% 0/cover no-repeat;
    aspect-ratio: 320/600;
    width: 20rem;
  }
  @media screen and (max-width: 767px) {
    .p-contact::before, .p-contact::after {
      background-image: url("../img/content/contact_1_sp.webp");
      aspect-ratio: 170/240;
      width: 43.0769230769vw;
    }
  }
  @media screen and (min-width: 768px) {
    .p-contact::before {
      left: 5rem;
      top: -1.5rem;
    }
  }
  @media screen and (max-width: 767px) {
    .p-contact::before {
      left: var(--sp-pad);
      bottom: 25.641025641vw;
    }
  }
  .p-contact::after {
    background-image: url("../img/content/contact_2.webp");
  }
  @media screen and (min-width: 768px) {
    .p-contact::after {
      right: 5rem;
      bottom: -1.5rem;
    }
  }
  @media screen and (max-width: 767px) {
    .p-contact::after {
      background-image: url("../img/content/contact_2_sp.webp");
      right: var(--sp-pad);
      bottom: 15.3846153846vw;
    }
  }
  .p-contact__row {
    margin: 0 auto;
    border-top: 1px solid #fff;
    padding-top: 2.5rem;
    text-align: center;
  }
  @media screen and (min-width: 768px) {
    .p-contact__row {
      width: 30rem;
    }
  }
  @media screen and (max-width: 767px) {
    .p-contact__ttl {
      font-size: 3.5897435897vw;
    }
  }
  .p-contact__en {
    font-family: var(--en-sans);
    font-size: 5rem;
    line-height: 1.1;
  }
  @media screen and (max-width: 767px) {
    .p-contact__en {
      font-size: 12.3076923077vw;
    }
  }
  .p-contact__text {
    margin-top: 2.1875rem;
  }
  @media screen and (max-width: 767px) {
    .p-contact__text {
      margin-top: 6.4102564103vw;
      text-align: left;
      font-size: 4.1025641026vw;
    }
  }
  .p-contact__btn-wrap {
    margin-top: 2.5rem;
  }
  @media screen and (max-width: 767px) {
    .p-contact__btn-wrap {
      margin-top: 6.4102564103vw;
    }
  }
  .p-contact__btn-wrap .p-btn-a {
    --my-color: #fff;
    --my-border-color: #fff;
    --my-over-color: var(--accent);
  }
  @media screen and (min-width: 768px) {
    .p-contact__btn-wrap .p-btn-a {
      width: 25rem;
    }
  }
  @media screen and (max-width: 767px) {
    .p-contact__btn-wrap .p-btn-a {
      padding: 5.1282051282vw 8.2051282051vw 5.1282051282vw 5.1282051282vw;
      width: 82.0512820513vw;
      font-size: 4.1025641026vw;
    }
  }
}
@layer project {
  body.is-show-modal {
    overflow: hidden;
  }
  .p-modal {
    overflow: auto;
    display: none;
    opacity: 0;
    position: fixed;
    z-index: 1000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 78, 204, 0.8);
    transition-property: opacity;
    transition-duration: 0.4s;
  }
  .p-modal.is-show {
    opacity: 1;
  }
  .p-modal.is-show .p-modal__content {
    margin-top: 0;
  }
  .p-modal__wrap {
    position: relative;
    top: 5rem;
    left: 50%;
    transform: translate(-50%, 0);
    max-width: 70rem;
    transition-property: margin;
    transition-duration: 0.4s;
    padding-bottom: 7.5rem;
  }
  @media screen and (max-width: 767px) {
    .p-modal__wrap {
      top: 20.5128205128vw;
      padding-bottom: 15.3846153846vw;
      max-width: 89.7435897436vw;
    }
  }
  .p-modal__content {
    overflow: auto;
    position: relative;
    background: #fff;
    width: 100%;
    box-sizing: border-box;
  }
  .p-modal__close-btn {
    background: transparent;
    cursor: pointer;
    position: fixed;
    right: 1.25rem;
    top: 1.25rem;
    border: 0;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
  }
  @media screen and (max-width: 767px) {
    .p-modal__close-btn {
      right: 5.1282051282vw;
      top: 5.1282051282vw;
      width: 8.7179487179vw;
      height: 8.7179487179vw;
    }
  }
  .p-modal__close-btn::before, .p-modal__close-btn::after {
    content: "";
    display: block;
    width: 100%;
    height: 2px;
    background: #fff;
    position: absolute;
    left: 0%;
  }
  .p-modal__close-btn::before {
    transform: rotate(-45deg);
  }
  .p-modal__close-btn::after {
    transform: rotate(45deg);
  }
  .p-modal__close-btn-a {
    position: relative;
    background: transparent;
    padding: 0;
    border: 0;
    border-bottom: 1px solid var(--accent);
    margin-top: 3.125rem;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: 0.25s color;
  }
  @media (hover: hover) {
    .p-modal__close-btn-a:hover {
      color: var(--accent);
    }
  }
  .p-modal__foot {
    text-align: center;
  }
}
@layer project {
  .p-pagination {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    margin-top: 5rem;
    font-family: var(--en-sans);
    font-size: 1.125rem;
    gap: 2.25rem;
  }
  @media screen and (max-width: 767px) {
    .p-pagination {
      margin-top: 8.9743589744vw;
      font-size: 4.6153846154vw;
      gap: 3.0769230769vw;
    }
  }
  .p-pagination > * {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: currentColor;
    border-bottom: 1px solid transparent;
    transition: 0.25s border;
    min-width: 1rem;
  }
  .p-pagination > *.current {
    border-color: var(--accent);
  }
  .p-pagination a {
    transition-property: background, color;
    transition-duration: 0.25s;
    color: var(--text-sub);
  }
  @media (hover: hover) {
    .p-pagination a:hover {
      border-color: var(--accent);
    }
  }
  .p-pagination .prev, .p-pagination .next {
    --my-icon-size: 0.9375rem;
    --my-size: 3.75rem;
    position: relative;
    overflow: hidden;
    text-indent: -9999px;
    width: var(--my-size);
    height: var(--my-size);
    background: linear-gradient(to bottom, #0280ff 0%, #004ecb 100%);
    border-radius: 100rem;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: 0.25s filter;
  }
  @media screen and (max-width: 767px) {
    .p-pagination .prev, .p-pagination .next {
      --my-icon-size: 4.1025641026vw;
      --my-size: 10.2564102564vw;
    }
  }
  .p-pagination .prev::after, .p-pagination .next::after {
    content: "";
    display: block;
    aspect-ratio: 15/10;
    width: var(--my-icon-size);
    background: url("../img/icon/arrow_white.svg") 0 0/auto 100% repeat-x;
    transition: 0.25s translate;
  }
  @media (hover: hover) {
    .p-pagination .prev:hover::after, .p-pagination .next:hover::after {
      translate: 3px 0;
    }
  }
  .p-pagination .next {
    transform: translateX(20%);
  }
  @media screen and (min-width: 768px) {
    .p-pagination .next {
      transform: translateX(-5%);
    }
  }
  .p-pagination .prev {
    transform: translateX(-20%);
  }
  @media screen and (min-width: 768px) {
    .p-pagination .prev {
      transform: translateX(5%);
    }
  }
  .p-pagination .prev::after {
    scale: -1 1;
  }
  @media (hover: hover) {
    .p-pagination .prev:hover::after {
      translate: -3px 0;
    }
  }
  .p-pagination .dots {
    width: auto;
    transform: translateY(-10%);
  }
}
@layer project {
  .p-form fieldset,
  .p-form legend {
    display: contents;
    border: 0;
    padding: 0;
  }
  .p-form textarea:disabled + label,
  .p-form input[type=checkbox]:disabled + label,
  .p-form input[type=radio]:disabled + label {
    cursor: not-allowed;
    color: #ccc;
  }
  .p-form ::placeholder {
    color: #C9CACE;
  }
  .p-form textarea,
  .p-form input[type=text],
  .p-form input[type=email] {
    border: 1px solid #C9CACE;
    width: 100%;
    height: 4rem;
    padding: 0 1.25rem;
  }
  @media screen and (max-width: 767px) {
    .p-form textarea,
    .p-form input[type=text],
    .p-form input[type=email] {
      height: 12.3076923077vw;
      padding: 0vw 5.1282051282vw;
    }
  }
  .p-form textarea.is-error,
  .p-form input[type=text].is-error,
  .p-form input[type=email].is-error {
    border-width: 2px;
    border-color: #c00;
  }
  .p-form textarea {
    height: 10rem;
    padding: 1rem 1.25rem;
  }
  .p-form textarea.is-error {
    border-width: 2px;
    border-color: #c00;
  }
  .p-form input[type=checkbox] {
    position: relative;
    appearance: none;
    border: 1px solid #C9CACE;
    width: 1.625rem;
    height: 1.625rem;
    background: #fff;
  }
  @media screen and (max-width: 767px) {
    .p-form input[type=checkbox] {
      width: 6.6666666667vw;
      height: 6.6666666667vw;
    }
  }
  .p-form input[type=checkbox]:checked::before {
    content: "";
    display: block;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 0.875rem;
    height: 0.875rem;
    background: url("../img/icon/check.svg") 100% 0/cover no-repeat;
  }
  .p-form input[type=radio] {
    position: relative;
    appearance: none;
    border: 1px solid #C9CACE;
    width: 1.625rem;
    height: 1.625rem;
    background: #fff;
    border-radius: 100rem;
  }
  @media screen and (max-width: 767px) {
    .p-form input[type=radio] {
      width: 6.6666666667vw;
      height: 6.6666666667vw;
    }
  }
  .p-form input[type=radio]:checked::before {
    content: "";
    display: block;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 0.875rem;
    height: 0.875rem;
    background: var(--accent);
    border-radius: 100rem;
  }
  @media screen and (max-width: 767px) {
    .p-form input[type=radio]:checked::before {
      width: 3.4615384615vw;
      height: 3.4615384615vw;
    }
  }
  .p-form__main {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
  }
  @media screen and (max-width: 767px) {
    .p-form__main {
      gap: 7.6923076923vw;
    }
  }
  .p-form__error-text {
    color: #c00;
    margin-top: 0.4em;
    font-size: 90%;
  }
  .p-form__items {
    background: rgba(223, 229, 234, 0.5);
    padding: 2.5rem;
  }
  @media screen and (max-width: 767px) {
    .p-form__items {
      padding: 7.6923076923vw;
    }
    .p-form__items .p-form____label-text {
      font-size: 4.1025641026vw;
    }
  }
  .p-form__items.is-error {
    border: 2px solid #c00;
  }
  .p-form__item + .p-form__item {
    margin-top: 1.4375rem;
    padding-top: 1.4375rem;
    border-top: 1px solid rgba(201, 202, 206, 0.8);
  }
  .p-form__label {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.625rem;
    font-size: 1.25rem;
    font-weight: 500;
    letter-spacing: 0.01em;
    margin-bottom: 0.625rem;
  }
  @media screen and (max-width: 767px) {
    .p-form__label {
      font-size: 4.6153846154vw;
    }
  }
  .p-form__label-radio {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.375rem;
  }
  @media screen and (max-width: 767px) {
    .p-form__label-radio {
      align-items: flex-start;
    }
  }
  .p-form__required, .p-form__any {
    font-size: 0.75rem;
    background: var(--accent);
    color: #fff;
    padding: 0.6em 0.8em;
    line-height: 1.1;
  }
  @media screen and (max-width: 767px) {
    .p-form__required, .p-form__any {
      font-size: 3.0769230769vw;
    }
  }
  .p-form__any {
    background: #ACB0B9;
  }
  .p-form__sub {
    font-size: 0.875rem;
    color: #81858E;
    font-weight: normal;
  }
  @media screen and (max-width: 767px) {
    .p-form__sub {
      font-size: 3.5897435897vw;
    }
  }
  .p-form__sub-label-text {
    display: block;
    font-size: 1.125rem;
    margin-bottom: 0.625rem;
    font-weight: 500;
  }
  @media screen and (max-width: 767px) {
    .p-form__sub-label-text {
      margin-bottom: 3.0769230769vw;
      font-size: 4.6153846154vw;
    }
  }
  .p-form__q {
    margin-bottom: 0.75rem;
  }
  @media screen and (max-width: 767px) {
    .p-form__q {
      font-size: 3.5897435897vw;
      margin-bottom: 3.5897435897vw;
      line-height: 1.5714285714;
    }
  }
  .p-form__input-wrap:has(input[type=radio]) {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 1.25rem 2.5rem;
  }
  @media screen and (max-width: 767px) {
    .p-form__input-wrap:has(input[type=radio]) {
      flex-direction: column;
      gap: 2.0512820513vw;
    }
  }
  .p-form__tel, .p-form__zip {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 0.625rem;
    align-items: center;
  }
  .p-form__tel input[type=text], .p-form__zip input[type=text] {
    width: 7.5rem;
  }
  @media screen and (max-width: 767px) {
    .p-form__tel input[type=text], .p-form__zip input[type=text] {
      width: 20.5128205128vw;
    }
  }
  .p-form__wbtn {
    text-align: center;
  }
  .p-form__confirm-text {
    font-size: 1.25rem;
    font-weight: 500;
  }
  @media screen and (max-width: 767px) {
    .p-form__confirm-text {
      font-size: 4.6153846154vw;
    }
  }
  .p-form__confirm-items div {
    margin-top: 0.625rem;
  }
  .p-form__confirm-items dt {
    font-size: 0.875rem;
    font-weight: normal;
  }
  .p-form.is-confirm .p-form__main {
    gap: 0;
  }
  @media screen and (min-width: 768px) {
    .p-form.is-confirm .p-form__unit {
      padding-top: 2rem;
    }
  }
  .p-form.is-confirm .p-form__unit + .p-form__unit {
    margin-top: 2rem;
    border-top: 1px solid #C9CACE;
  }
  @media screen and (max-width: 767px) {
    .p-form.is-confirm .p-form__unit + .p-form__unit {
      margin-top: 2.1875rem;
      padding-top: 2.1875rem;
    }
  }
  .p-form.is-confirm .p-form__label {
    font-size: 1rem;
    font-weight: normal;
  }
  @media screen and (max-width: 767px) {
    .p-form.is-confirm .p-form__label {
      font-size: 4.1025641026vw;
    }
  }
}
@layer project {
  @media screen and (min-width: 768px) {
    .p-pdf-bnr {
      margin-top: 5.625rem;
      font-size: 0.875rem;
      display: grid;
      grid-template-columns: 10.5rem 1fr;
      gap: 1.25rem;
      align-items: center;
    }
  }
  @media screen and (max-width: 767px) {
    .p-pdf-bnr {
      display: flex;
      flex-direction: column;
      margin-top: 10.2564102564vw;
      font-size: 3.5897435897vw;
    }
  }
  @media screen and (max-width: 767px) {
    .p-pdf-bnr__img {
      width: 40.5128205128vw;
      margin-bottom: 2.5641025641vw;
    }
  }
}
@layer utilities {
  .u-bg-blue {
    background: linear-gradient(to right, #0280ff 0%, #004ecb 100%);
    color: #fff;
  }
}
@layer utilities {
  .u-color-accent {
    color: var(--accent);
  }
  .u-color-link {
    color: var(--accent);
  }
}
@layer utilities {
  @media screen and (max-width: 767px) {
    .u-hidden-ltSP {
      display: none;
    }
  }
  @media screen and (max-width: 991px) {
    .u-hidden-ltTAB {
      display: none;
    }
  }
  @media screen and (min-width: 768px) {
    .u-hidden-gtTAB {
      display: none;
    }
  }
  @media screen and (min-width: 992px) {
    .u-hidden-gtPC {
      display: none;
    }
  }
}
@layer utilities {
  .u-hide {
    display: none;
  }
}
@layer utilities {
  .u-hover-text {
    display: inline-block;
    overflow: hidden;
    color: transparent;
    vertical-align: top;
    text-shadow: 0 1.5em 0 var(--main), 0 0 0 var(--main);
    transition: text-shadow 0.2s;
  }
  @media (hover: hover) {
    .u-hover-text:hover {
      text-shadow: 0 0 0 var(--accent), 0 -1.5em 0 var(--accent);
    }
  }
}
@layer utilities {
  @media screen and (max-width: 1390px) and (min-width: 767px) {
    .u-PC-pad {
      padding-right: 4%;
      padding-left: 4%;
    }
  }
  @media screen and (max-width: 767px) {
    .u-SP-pad {
      padding-right: var(--sp-pad);
      padding-left: var(--sp-pad);
    }
  }
}
@layer utilities {
  .screen-reader-text,
  .u-screen-reader {
    clip: rect(1px, 1px, 1px, 1px);
    height: 1px;
    overflow: hidden;
    position: absolute;
    width: 1px;
    word-wrap: normal;
  }
}
@layer utilities {
  .u-ta-left {
    text-align: left;
  }
  .u-ta-center {
    text-align: center;
  }
  .u-ta-right {
    text-align: right;
  }
  @media screen and (max-width: 767px) {
    .u-SP-ta-left {
      text-align: left;
    }
    .u-SP-ta-center {
      text-align: center;
    }
    .u-SP-ta-right {
      text-align: right;
    }
  }
}