@charset "UTF-8";
/* reset5 © 2011 opensource.736cs.com MIT */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, audio, canvas, details, figcaption, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, summary, time, video {
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  margin: 0;
  padding: 0; }

body {
  line-height: 1; }

article, aside, dialog, figure, footer, header, hgroup, nav, section, blockquote {
  display: block; }

nav ul {
  list-style: none; }

ol {
  list-style: decimal; }

ul {
  list-style: disc; }

ul ul {
  list-style: circle; }

blockquote, q {
  quotes: none; }

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

ins {
  text-decoration: underline; }

del {
  text-decoration: line-through; }

mark {
  background: none; }

abbr[title], dfn[title] {
  border-bottom: 1px dotted #000;
  cursor: help; }

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

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0; }

input[type=submit], input[type=button], button {
  margin: 0 !important;
  padding: 0 !important; }

input, select, a img {
  vertical-align: middle; }

/* フォームのリセットここから */
input,
button,
select,
textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background: transparent;
  border: none;
  border-radius: 0;
  font: inherit;
  outline: none; }

textarea {
  resize: vertical; }

input[type='checkbox'],
input[type='radio'] {
  display: none; }

input[type='submit'],
input[type='button'],
label,
button,
select {
  cursor: pointer; }

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

/* フォームのリセットここまで */
html {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  font-size: 10px; }

*, *:before, *:after {
  -moz-box-sizing: inherit;
  -webkit-box-sizing: inherit;
  box-sizing: inherit; }

body {
  -webkit-text-size-adjust: 100%;
  	/*
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  	*/ }

main {
  display: block; }

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

ul, ol {
  list-style: none !important; }

a {
  color: inherit;
  text-decoration: none; }

button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
  color: inherit;
  font-size: inherit; }

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

mark {
  color: inherit; }

span.nowrap {
  display: inline-block; }

span.pc {
  display: inline; }
  @media screen and (max-width: 768px) {
    span.pc {
      display: none; } }

span.sp {
  display: none; }
  @media screen and (max-width: 768px) {
    span.sp {
      display: inline; } }

body {
  font-family: "Noto Sans JP", sans-serif; }
  @media screen and (max-width: 768px) {
    .menu-active body {
      overflow: hidden; } }

#pagetop {
  background-color: #1b4a7d; }

#header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 100px;
  z-index: 10000;
  background-color: #fff;
  display: flex;
  gap: 40px;
  padding: 0 32px 0 35px;
  justify-content: space-between;
  align-items: center; }
  @media screen and (max-width: 1023px) {
    #header {
      height: 65px;
      padding: 0 0 0 15px; } }
  #header .logo {
    width: 310px;
    flex-shrink: 0; }
    @media screen and (max-width: 1023px) {
      #header .logo {
        width: 220px; } }
    #header .logo a {
      display: block;
      transition: all ease .3s; }
      @media (hover: hover) and (pointer: fine) {
        #header .logo a:hover {
          opacity: .5; } }
  #header p.menu {
    display: none; }
    @media screen and (max-width: 1023px) {
      #header p.menu {
        display: block; } }
    #header p.menu button {
      position: relative;
      background-color: #b78f39;
      width: 100px;
      height: 100px;
      position: relative; }
      @media screen and (max-width: 1023px) {
        #header p.menu button {
          width: 65px;
          height: 65px; } }
      #header p.menu button .bar span, #header p.menu button .bar:before, #header p.menu button .bar:after {
        content: "";
        display: block;
        width: 27px;
        height: 2px;
        background-color: #fff;
        position: absolute;
        top: 25px;
        left: calc(50% - 13.5px); }
      .menu-active #header p.menu button .bar span {
        opacity: 0; }
      #header p.menu button .bar:before {
        margin-top: -5px; }
        .menu-active #header p.menu button .bar:before {
          margin-top: 0;
          transform: rotate(45deg); }
      #header p.menu button .bar:after {
        margin-top: 5px; }
        .menu-active #header p.menu button .bar:after {
          margin-top: 0;
          transform: rotate(-45deg); }
      #header p.menu button .text {
        font-family: "Outfit", "Noto Sans JP", sans-serif;
        position: absolute;
        font-size: 11px;
        color: #fff;
        top: 36px;
        left: 0;
        right: 0;
        text-align: center; }
  @media screen and (max-width: 1023px) {
    #header nav.global {
      display: block;
      position: fixed;
      top: 65px;
      left: 0;
      right: 0;
      bottom: 0;
      opacity: 0;
      pointer-events: none;
      background-color: #fff;
      transition: all ease .3s; }
      .menu-active #header nav.global {
        opacity: 1;
        pointer-events: auto; } }
  #header nav.global .inner {
    display: flex;
    gap: 40px; }
    @media screen and (max-width: 1279px) {
      #header nav.global .inner {
        gap: 20px; } }
    @media screen and (max-width: 1023px) {
      #header nav.global .inner {
        display: block;
        padding: 12px 0;
        width: calc(350 / 390 * 100vw);
        margin: 0 auto; } }
    #header nav.global .inner ul {
      display: flex;
      gap: 32px; }
      @media screen and (max-width: 1279px) {
        #header nav.global .inner ul {
          gap: 20px; } }
      @media screen and (max-width: 1023px) {
        #header nav.global .inner ul {
          display: block; } }
      @media screen and (max-width: 1023px) {
        #header nav.global .inner ul li {
          border-bottom: 1px solid #cfd4de; } }
      #header nav.global .inner ul li:first-child {
        display: none; }
        @media screen and (max-width: 1023px) {
          #header nav.global .inner ul li:first-child {
            display: block; } }
      #header nav.global .inner ul li a {
        position: relative;
        display: block;
        font-size: 16px;
        line-height: 44px;
        white-space: nowrap;
        font-weight: bold;
        letter-spacing: .04em;
        transition: all ease .3s; }
        @media screen and (max-width: 1279px) {
          #header nav.global .inner ul li a {
            font-size: 14px; } }
        @media screen and (max-width: 1023px) {
          #header nav.global .inner ul li a {
            font-size: 17px;
            line-height: 70px;
            letter-spacing: .05em;
            color: #000; }
            #header nav.global .inner ul li a:after {
              content: "";
              -webkit-mask-image: url("../images/common/icon_arrow.svg");
              mask-image: url("../images/common/icon_arrow.svg");
              -webkit-mask-size: 100% 100%;
              mask-size: 100% 100%;
              display: block;
              width: 16px;
              height: calc(15px * 16 / 19);
              background-color: #1b4a7d;
              position: absolute;
              right: 10px;
              top: 50%;
              transform: translateY(-50%); } }
        @media (hover: hover) and (pointer: fine) {
          #header nav.global .inner ul li a:hover {
            opacity: .5; } }
    @media screen and (max-width: 1023px) {
      #header nav.global .inner p {
        border-bottom: 1px solid #cfd4de; } }
    #header nav.global .inner p a {
      position: relative;
      display: block;
      font-size: 16px;
      line-height: 44px;
      width: 173px;
      border-radius: 9999px;
      font-weight: bold;
      letter-spacing: .04em;
      background-color: #b78f39;
      text-align: center;
      color: #fff;
      transition: all ease .3s; }
      @media screen and (max-width: 1279px) {
        #header nav.global .inner p a {
          font-size: 14px;
          width: 120px; } }
      @media screen and (max-width: 1023px) {
        #header nav.global .inner p a {
          font-size: 17px;
          line-height: 70px;
          letter-spacing: .05em;
          color: #000;
          background-color: transparent;
          text-align: left;
          width: auto;
          border-radius: 0; }
          #header nav.global .inner p a:after {
            content: "";
            -webkit-mask-image: url("../images/common/icon_arrow.svg");
            mask-image: url("../images/common/icon_arrow.svg");
            -webkit-mask-size: 100% 100%;
            mask-size: 100% 100%;
            display: block;
            width: 16px;
            height: calc(15px * 16 / 19);
            background-color: #1b4a7d;
            position: absolute;
            right: 10px;
            top: 50%;
            transform: translateY(-50%); } }
      @media (hover: hover) and (pointer: fine) {
        #header nav.global .inner p a:hover {
          background-color: #1b4a7d; } }
  @media screen and (hover: hover) and (pointer: fine) and (max-width: 1023px) {
    #header nav.global .inner p a:hover {
      background-color: transparent; } }

#footer {
  position: relative;
  z-index: 100;
  padding-top: 142px; }
  @media screen and (max-width: 1023px) {
    #footer {
      padding-top: 70px; } }
  #footer nav.link {
    margin-bottom: -167px; }
    @media screen and (max-width: 768px) {
      #footer nav.link {
        margin-bottom: 0; } }
    #footer nav.link .container {
      position: relative;
      width: calc(1500 / 1600 * 100vw);
      max-width: 1500px;
      margin: 0 auto; }
      @media screen and (max-width: 768px) {
        #footer nav.link .container {
          width: 100%; } }
      #footer nav.link .container ul {
        display: flex;
        border-radius: 20px;
        overflow: hidden; }
        @media screen and (max-width: 768px) {
          #footer nav.link .container ul {
            display: block;
            border-radius: 0 40px 0 0; } }
        #footer nav.link .container ul li {
          flex: 0 0 50%; }
          #footer nav.link .container ul li a {
            position: relative;
            display: block; }
            #footer nav.link .container ul li a figure {
              overflow: hidden; }
              #footer nav.link .container ul li a figure img {
                transition: all ease .3s;
                transform: scale(1.001);
                width: 100%;
                min-height: 334px;
                object-fit: cover; }
                @media screen and (max-width: 768px) {
                  #footer nav.link .container ul li a figure img {
                    width: 100%;
                    height: auto; } }
            #footer nav.link .container ul li a .content {
              position: absolute;
              top: 50%;
              left: 50%;
              widht: 100%;
              transform: translate(-50%, -50%);
              color: #fff; }
              #footer nav.link .container ul li a .content p:nth-child(1) {
                font-family: "Outfit", "Noto Sans JP", sans-serif;
                position: relative;
                font-size: 85px;
                line-height: 1;
                width: fit-content;
                margin: 0 auto;
                margin-bottom: 12px; }
                @media screen and (max-width: 1023px) {
                  #footer nav.link .container ul li a .content p:nth-child(1) {
                    font-size: 60px;
                    margin-bottom: 8px; } }
                #footer nav.link .container ul li a .content p:nth-child(1):before {
                  content: "";
                  display: block;
                  width: 43px;
                  height: 43px;
                  background-color: #b78f39;
                  border-radius: 9999px;
                  position: absolute;
                  z-index: -1;
                  left: -12px;
                  top: -5px; }
                  @media screen and (max-width: 1023px) {
                    #footer nav.link .container ul li a .content p:nth-child(1):before {
                      width: 35px;
                      height: 35px; } }
              #footer nav.link .container ul li a .content p:nth-child(2) {
                font-size: 17px;
                line-height: 1;
                letter-spacing: .1em;
                width: fit-content;
                margin: 0 auto; }
                @media screen and (max-width: 1023px) {
                  #footer nav.link .container ul li a .content p:nth-child(2) {
                    font-size: 14px; } }
              #footer nav.link .container ul li a .content .arrow {
                width: 100px;
                height: 40px;
                border: 1px solid #fff;
                display: flex;
                justify-content: center;
                align-items: center;
                border-radius: 9999px;
                margin: 0 auto;
                margin-top: 40px;
                transition: all ease .3s; }
                @media screen and (max-width: 1023px) {
                  #footer nav.link .container ul li a .content .arrow {
                    width: 90px;
                    height: 30px;
                    margin-top: 24px; } }
                #footer nav.link .container ul li a .content .arrow:before {
                  content: "";
                  display: block;
                  -webkit-mask-image: url("../images/common/icon_arrow.svg");
                  mask-image: url("../images/common/icon_arrow.svg");
                  -webkit-mask-size: 100% 100%;
                  mask-size: 100% 100%;
                  width: 19px;
                  height: 15px;
                  background-color: #fff;
                  transition: all ease .3s; }
                  @media screen and (max-width: 1023px) {
                    #footer nav.link .container ul li a .content .arrow:before {
                      width: 16px;
                      height: calc(15px * 16 / 19); } }
            @media (hover: hover) and (pointer: fine) {
              #footer nav.link .container ul li a:hover figure img {
                transform: scale(1.05); }
              #footer nav.link .container ul li a:hover .arrow {
                background-color: #fff; }
                #footer nav.link .container ul li a:hover .arrow:before {
                  background-color: #1b4a7d; } }
  #footer > .content {
    border-radius: 0 80px 0 0;
    background-color: #fff;
    padding: 267px 0 0; }
    @media screen and (max-width: 1023px) {
      #footer > .content {
        padding: 220px 0 0; } }
    @media screen and (max-width: 768px) {
      #footer > .content {
        border-radius: 0;
        padding: 45px 0 0; } }
    #footer > .content .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto; }
      @media screen and (max-width: 1023px) {
        #footer > .content .container {
          width: calc(350 / 390 * 100vw); } }
      #footer > .content .container .top {
        display: flex;
        justify-content: space-between;
        padding-bottom: 120px;
        gap: 60px; }
        @media screen and (max-width: 1023px) {
          #footer > .content .container .top {
            display: block;
            padding-bottom: 0; } }
        #footer > .content .container .top .information {
          padding-top: 12px; }
          @media screen and (max-width: 1023px) {
            #footer > .content .container .top .information {
              padding-top: 0; } }
          #footer > .content .container .top .information .logo {
            margin-bottom: 15px; }
            @media screen and (max-width: 768px) {
              #footer > .content .container .top .information .logo {
                width: 250px;
                margin-bottom: 8px; } }
          #footer > .content .container .top .information .address,
          #footer > .content .container .top .information .tel {
            font-size: 15px;
            line-height: 25px;
            font-weight: 500;
            color: #000;
            letter-spacing: .01em; }
            @media screen and (max-width: 768px) {
              #footer > .content .container .top .information .address,
              #footer > .content .container .top .information .tel {
                font-size: 12px;
                line-height: 21px; } }
        #footer > .content .container .top nav.sitemap {
          display: flex;
          justify-content: flex-end;
          flex: 1;
          min-width: 480px;
          gap: min(120px, 120 / 1600 * 100vw); }
          @media screen and (max-width: 1023px) {
            #footer > .content .container .top nav.sitemap {
              gap: 0;
              padding: 36px 0 42px; } }
          @media screen and (max-width: 768px) {
            #footer > .content .container .top nav.sitemap {
              display: block;
              min-width: 0;
              padding: 36px 0 42px; } }
          #footer > .content .container .top nav.sitemap .primary > ul > li,
          #footer > .content .container .top nav.sitemap .secondary > ul > li {
            margin-bottom: 4px; }
            #footer > .content .container .top nav.sitemap .primary > ul > li > a,
            #footer > .content .container .top nav.sitemap .secondary > ul > li > a {
              font-size: 15px;
              color: #000;
              font-weight: bold;
              line-height: 44px;
              letter-spacing: .03em;
              transition: all ease .3s; }
              @media screen and (max-width: 768px) {
                #footer > .content .container .top nav.sitemap .primary > ul > li > a,
                #footer > .content .container .top nav.sitemap .secondary > ul > li > a {
                  font-size: 13px;
                  line-height: 30px; } }
              @media (hover: hover) and (pointer: fine) {
                #footer > .content .container .top nav.sitemap .primary > ul > li > a:hover,
                #footer > .content .container .top nav.sitemap .secondary > ul > li > a:hover {
                  opacity: .5; } }
            #footer > .content .container .top nav.sitemap .primary > ul > li ul,
            #footer > .content .container .top nav.sitemap .secondary > ul > li ul {
              margin: 5px 0; }
              @media screen and (max-width: 768px) {
                #footer > .content .container .top nav.sitemap .primary > ul > li ul,
                #footer > .content .container .top nav.sitemap .secondary > ul > li ul {
                  margin: 3px 0; } }
              #footer > .content .container .top nav.sitemap .primary > ul > li ul li a,
              #footer > .content .container .top nav.sitemap .secondary > ul > li ul li a {
                position: relative;
                font-size: 13px;
                color: #a6a7ad;
                font-weight: bold;
                line-height: 28px;
                padding-left: 13px;
                letter-spacing: .03em;
                transition: all ease .3s; }
                @media screen and (max-width: 768px) {
                  #footer > .content .container .top nav.sitemap .primary > ul > li ul li a,
                  #footer > .content .container .top nav.sitemap .secondary > ul > li ul li a {
                    font-size: 12px; } }
                @media (hover: hover) and (pointer: fine) {
                  #footer > .content .container .top nav.sitemap .primary > ul > li ul li a:hover,
                  #footer > .content .container .top nav.sitemap .secondary > ul > li ul li a:hover {
                    opacity: .5; } }
                #footer > .content .container .top nav.sitemap .primary > ul > li ul li a:before,
                #footer > .content .container .top nav.sitemap .secondary > ul > li ul li a:before {
                  content: "";
                  display: block;
                  width: 5px;
                  height: 1px;
                  position: absolute;
                  top: 10px;
                  left: 0;
                  background-color: currentColor; }
          #footer > .content .container .top nav.sitemap .primary {
            gap: min(60px, 60 / 1600 * 100vw);
            display: flex; }
            @media screen and (max-width: 1023px) {
              #footer > .content .container .top nav.sitemap .primary {
                flex: 0 0 66%;
                gap: 0; }
                #footer > .content .container .top nav.sitemap .primary > ul {
                  flex: 0 0 50%; } }
            @media screen and (max-width: 768px) {
              #footer > .content .container .top nav.sitemap .primary {
                gap: 0; }
                #footer > .content .container .top nav.sitemap .primary > ul {
                  flex: 0 0 50%; } }
          @media screen and (max-width: 1023px) {
            #footer > .content .container .top nav.sitemap .secondary {
              flex: 0 0 33%; } }
          @media screen and (max-width: 768px) {
            #footer > .content .container .top nav.sitemap .secondary > ul {
              display: flex;
              flex-wrap: wrap; }
              #footer > .content .container .top nav.sitemap .secondary > ul > li {
                flex: 0 0 50%; } }
      #footer > .content .container .bottom {
        border-top: 1px solid #d3d4de;
        padding: 58px 0 64px; }
        @media screen and (max-width: 768px) {
          #footer > .content .container .bottom {
            padding: 30px 0 26px; } }
        #footer > .content .container .bottom .copyright {
          font-family: "Outfit", "Noto Sans JP", sans-serif;
          font-size: 13px;
          font-weight: 500;
          letter-spacing: .03em;
          color: #000;
          line-height: 1;
          text-align: center; }
          @media screen and (max-width: 768px) {
            #footer > .content .container .bottom .copyright {
              font-size: 11px;
              letter-spacing: -0.01em; } }

main.home {
  position: relative;
  z-index: 1;
  padding-top: 100px; }
  @media screen and (max-width: 1023px) {
    main.home {
      padding-top: 65px; } }
  main.home:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
    min-height: 1200px;
    display: block;
    background-image: url("../images/home/bg.jpg");
    background-size: cover;
    background-position: 50% 50%; }
    @media screen and (max-width: 1023px) {
      main.home:before {
        background-image: url("../images/home/bg_sp.jpg");
        background-position: 50% 50%;
        width: 100vw;
        height: calc(700 / 390 * 100vw);
        min-height: 0; } }
  main.home .container {
    width: calc(1280 / 1600 * 100vw);
    max-width: 1280px;
    margin: 0 auto; }
    @media screen and (max-width: 1023px) {
      main.home .container {
        width: calc(350 / 390 * 100vw); } }
  main.home header.visual {
    height: 760px;
    padding: 130px 0 0;
    overflow: hidden; }
    @media screen and (max-width: 1023px) {
      main.home header.visual {
        padding: calc(50 / 390 * 100vw) 0 calc(45 / 390 * 100vw);
        height: auto; } }
    main.home header.visual .container {
      position: relative;
      display: flex;
      justify-content: flex-end;
      padding-left: 200px; }
      @media screen and (max-width: 1023px) {
        main.home header.visual .container {
          display: block;
          padding: 0; } }
      main.home header.visual .container figure {
        position: relative;
        z-index: 0;
        width: 690px;
        height: 500px;
        max-width: 100%; }
        @media screen and (max-width: 1023px) {
          main.home header.visual .container figure {
            width: auto;
            height: auto;
            max-width: none;
            margin-right: calc(-20 / 390 * 100vw); } }
        main.home header.visual .container figure .slider .swiper {
          border-radius: 20px;
          overflow: hidden; }
          @media screen and (max-width: 1023px) {
            main.home header.visual .container figure .slider .swiper {
              border-radius: 20px 0 0 20px; } }
          main.home header.visual .container figure .slider .swiper .swiper-wrapper img {
            width: 100%;
            height: 500px;
            object-fit: cover; }
            @media screen and (max-width: 1023px) {
              main.home header.visual .container figure .slider .swiper .swiper-wrapper img {
                height: auto; } }
        main.home header.visual .container figure .slider .swiper-pagination {
          position: absolute;
          right: 0;
          left: auto;
          width: auto;
          bottom: -21px; }
          @media screen and (max-width: 1023px) {
            main.home header.visual .container figure .slider .swiper-pagination {
              top: 15px;
              right: 15px;
              bottom: auto; } }
          main.home header.visual .container figure .slider .swiper-pagination .swiper-pagination-bullet {
            width: 10px;
            height: 10px;
            background-color: #fff;
            opacity: 1;
            margin: 0 4px; }
          main.home header.visual .container figure .slider .swiper-pagination .swiper-pagination-bullet-active {
            width: 10px;
            height: 10px;
            background-color: #b78f39;
            opacity: 1; }
      main.home header.visual .container .content {
        position: absolute;
        z-index: 1;
        top: 50%;
        left: 0;
        transform: translateY(-50%); }
        @media screen and (max-width: 1023px) {
          main.home header.visual .container .content {
            position: relative;
            top: auto;
            left: auto;
            transform: none;
            margin-top: calc(-20 / 390 * 100vw); } }
        main.home header.visual .container .content p {
          font-family: "Outfit", "Noto Sans JP", sans-serif;
          white-space: nowrap;
          font-size: 67px;
          color: #fff;
          margin-bottom: 40px; }
          @media screen and (max-width: 1023px) {
            main.home header.visual .container .content p {
              font-size: min(67px, 42 / 390 * 100vw);
              margin-bottom: min(40px, 16 / 390 * 100vw); } }
          main.home header.visual .container .content p span {
            display: block; }
          main.home header.visual .container .content p span:nth-child(1) {
            font-weight: 400;
            font-style: italic; }
          main.home header.visual .container .content p span:nth-child(2) {
            font-weight: 800;
            font-style: italic; }
        main.home header.visual .container .content h1 {
          white-space: nowrap;
          color: #fff;
          font-size: 27px;
          font-weight: 500;
          line-height: 43px;
          letter-spacing: .08em; }
          @media screen and (max-width: 1023px) {
            main.home header.visual .container .content h1 {
              font-size: min(27px, 17 / 390 * 100vw);
              line-height: calc(28 / 17); } }
  main.home section.business {
    position: relative;
    padding-top: 110px;
    padding-bottom: 556px; }
    @media screen and (max-width: 1023px) {
      main.home section.business {
        padding: 45px 0 60px; } }
    main.home section.business:before {
      content: "";
      position: absolute;
      right: 0;
      top: 0;
      bottom: 0;
      width: calc(1540 / 1600 * 100vw);
      background-color: #fff;
      border-radius: 80px 0 80px 0; }
      @media screen and (max-width: 1023px) {
        main.home section.business:before {
          border-radius: 40px 0 0 0;
          width: 100%; } }
    main.home section.business .container {
      position: relative; }
      main.home section.business .container header {
        display: flex;
        align-items: flex-end;
        gap: 100px;
        margin-bottom: 112px; }
        @media screen and (max-width: 1279px) {
          main.home section.business .container header {
            display: block;
            margin-bottom: 60px; } }
        @media screen and (max-width: 1023px) {
          main.home section.business .container header {
            margin-bottom: 36px; } }
        main.home section.business .container header hgroup {
          display: flex;
          gap: 30px;
          align-items: center; }
          @media screen and (max-width: 1279px) {
            main.home section.business .container header hgroup {
              margin-bottom: 34px; } }
          @media screen and (max-width: 1023px) {
            main.home section.business .container header hgroup {
              display: block; } }
          main.home section.business .container header hgroup p {
            font-family: "Outfit", "Noto Sans JP", sans-serif;
            position: relative;
            z-index: 1;
            font-size: 93px;
            line-height: 1;
            font-weight: 500;
            color: #1b4a7d; }
            @media screen and (max-width: 1023px) {
              main.home section.business .container header hgroup p {
                font-size: 60px;
                width: fit-content;
                margin: 0 auto; } }
            main.home section.business .container header hgroup p:before {
              content: "";
              display: block;
              width: 43px;
              height: 43px;
              background-color: #b78f39;
              border-radius: 9999px;
              position: absolute;
              z-index: -1;
              left: -12px;
              top: -5px; }
              @media screen and (max-width: 1023px) {
                main.home section.business .container header hgroup p:before {
                  width: 35px;
                  height: 35px; } }
          main.home section.business .container header hgroup h2 {
            font-size: 17px;
            font-weight: bold;
            line-height: 1;
            letter-spacing: .1em;
            transform: translateY(60%); }
            @media screen and (max-width: 1023px) {
              main.home section.business .container header hgroup h2 {
                font-size: 14px;
                text-align: center;
                transform: none; } }
        main.home section.business .container header > p {
          font-size: 17px;
          line-height: 35px;
          letter-spacing: .05em;
          font-weight: 500; }
          @media screen and (max-width: 1023px) {
            main.home section.business .container header > p {
              font-size: 14px;
              line-height: 28px;
              text-align: center; } }
      main.home section.business .container > ul {
        display: flex;
        flex-wrap: wrap;
        gap: 76px 60px; }
        @media screen and (max-width: 768px) {
          main.home section.business .container > ul {
            gap: 35px; } }
        main.home section.business .container > ul li {
          flex: 0 0 calc((100% - 60px) / 2); }
          @media screen and (max-width: 1023px) {
            main.home section.business .container > ul li {
              flex: 0 0 100%; } }
          main.home section.business .container > ul li a {
            display: block; }
            main.home section.business .container > ul li a figure {
              margin-bottom: 27px;
              border-radius: 20px;
              overflow: hidden; }
              @media screen and (max-width: 1023px) {
                main.home section.business .container > ul li a figure {
                  border-radius: 10px;
                  margin-bottom: 18px; } }
              main.home section.business .container > ul li a figure img {
                transition: all ease .3s; }
            main.home section.business .container > ul li a .title {
              font-size: 28px;
              font-weight: bold;
              letter-spacing: .05em;
              margin-bottom: 28px; }
              @media screen and (max-width: 1023px) {
                main.home section.business .container > ul li a .title {
                  font-size: 20px;
                  margin-bottom: 20px; } }
            main.home section.business .container > ul li a ul.label {
              display: flex;
              gap: 10px; }
              main.home section.business .container > ul li a ul.label li {
                flex: 0 0 auto;
                font-size: 14px;
                line-height: 30px;
                font-weight: bold;
                letter-spacing: .05em;
                color: #fff;
                padding: 0 10px;
                min-width: 90px;
                background-color: #1b4a7d;
                border-radius: 9999px;
                text-align: center; }
                @media screen and (max-width: 1023px) {
                  main.home section.business .container > ul li a ul.label li {
                    font-size: 12px;
                    min-width: 80px;
                    line-height: 25px; } }
            @media (hover: hover) and (pointer: fine) {
              main.home section.business .container > ul li a:hover figure img {
                transform: scale(1.05); } }
      main.home section.business .container .action {
        margin-top: 113px; }
        @media screen and (max-width: 1023px) {
          main.home section.business .container .action {
            margin-top: 65px; } }
        main.home section.business .container .action p {
          display: flex;
          justify-content: center; }
          main.home section.business .container .action p a {
            position: relative;
            display: inline-flex;
            justify-content: center;
            align-items: center;
            width: 350px;
            height: 82px;
            font-size: 17px;
            color: #fff;
            font-weight: bold;
            line-height: 1.2;
            text-align: left;
            background-color: #b78f39;
            border-radius: 10px;
            transition: all ease .3s; }
            @media screen and (max-width: 1023px) {
              main.home section.business .container .action p a {
                width: 290px;
                height: 65px;
                font-size: 15px; } }
            main.home section.business .container .action p a:after {
              position: absolute;
              top: 50%;
              right: 25px;
              transform: translateY(-50%);
              content: "";
              display: block;
              -webkit-mask-image: url("../images/common/icon_arrow.svg");
              mask-image: url("../images/common/icon_arrow.svg");
              -webkit-mask-size: 100% 100%;
              mask-size: 100% 100%;
              width: 19px;
              height: 15px;
              background-color: #fff;
              transition: all ease .3s; }
              @media screen and (max-width: 1023px) {
                main.home section.business .container .action p a:after {
                  width: 16px;
                  height: calc(15px * 16 / 19);
                  right: 20px; } }
            @media (hover: hover) and (pointer: fine) {
              main.home section.business .container .action p a:hover {
                background-color: #1b4a7d; } }
  main.home section.company {
    position: relative;
    margin-top: -419px;
    height: 640px;
    padding-top: 110px;
    margin-bottom: 149px; }
    @media screen and (max-width: 1023px) {
      main.home section.company {
        margin-top: 0;
        height: auto;
        padding: 65px 0 70px;
        margin-bottom: 0; } }
@keyframes company-bg-loop {
  0% {
    transform: translateX(0); }
  100% {
    transform: translateX(-50%); } }
    main.home section.company .bg {
      content: "";
      display: block;
      position: absolute;
      top: 0;
      left: 0;
      bottom: 0;
      width: calc(1530 / 1600 * 100vw);
      border-radius: 0 80px 20px 0;
      overflow: hidden; }
      @media screen and (max-width: 1023px) {
        main.home section.company .bg {
          width: 100%;
          border-radius: 0; } }
      main.home section.company .bg:before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        display: block;
        background-image: url("../images/home/company_bg.jpg");
        background-repeat: repeat-x;
        background-size: auto 100%;
        aspect-ratio: 15358 / 1280;
        animation: company-bg-loop linear 37.9s infinite;
        will-change: transform; }
    main.home section.company .container {
      position: relative;
      color: #fff; }
      main.home section.company .container hgroup {
        margin-bottom: 50px; }
        @media screen and (max-width: 1023px) {
          main.home section.company .container hgroup {
            margin-bottom: 32px; } }
        main.home section.company .container hgroup p {
          font-family: "Outfit", "Noto Sans JP", sans-serif;
          position: relative;
          z-index: 1;
          font-size: 93px;
          font-weight: 500;
          color: #fff;
          text-align: center;
          width: fit-content;
          margin: 0 auto;
          margin-bottom: 40px; }
          @media screen and (max-width: 1023px) {
            main.home section.company .container hgroup p {
              font-size: 60px;
              margin-bottom: 16px; } }
          main.home section.company .container hgroup p:before {
            content: "";
            display: block;
            width: 43px;
            height: 43px;
            background-color: #b78f39;
            border-radius: 9999px;
            position: absolute;
            z-index: -1;
            left: -12px;
            top: -5px; }
            @media screen and (max-width: 1023px) {
              main.home section.company .container hgroup p:before {
                width: 35px;
                height: 35px; } }
        main.home section.company .container hgroup h2 {
          font-size: 17px;
          font-weight: bold;
          color: #fff;
          text-align: center;
          letter-spacing: .1em; }
          @media screen and (max-width: 1023px) {
            main.home section.company .container hgroup h2 {
              font-size: 14px; } }
      main.home section.company .container > p {
        font-size: 17px;
        font-weight: 500;
        color: #fff;
        line-height: 35px;
        text-align: center;
        letter-spacing: .05em; }
        @media screen and (max-width: 1023px) {
          main.home section.company .container > p {
            font-size: 14px;
            line-height: 2; } }
      main.home section.company .container .action {
        margin-top: 64px; }
        @media screen and (max-width: 1023px) {
          main.home section.company .container .action {
            margin-top: 43px; } }
        main.home section.company .container .action p {
          display: flex;
          justify-content: center; }
          main.home section.company .container .action p a {
            position: relative;
            display: inline-flex;
            justify-content: center;
            align-items: center;
            width: 350px;
            height: 82px;
            font-size: 17px;
            color: #fff;
            font-weight: bold;
            line-height: 1.2;
            text-align: left;
            background-color: #b78f39;
            border-radius: 10px;
            transition: all ease .3s;
            color: #1b4a7d;
            background-color: #fff; }
            @media screen and (max-width: 1023px) {
              main.home section.company .container .action p a {
                width: 290px;
                height: 65px;
                font-size: 15px; } }
            main.home section.company .container .action p a:after {
              position: absolute;
              top: 50%;
              right: 25px;
              transform: translateY(-50%);
              content: "";
              display: block;
              -webkit-mask-image: url("../images/common/icon_arrow.svg");
              mask-image: url("../images/common/icon_arrow.svg");
              -webkit-mask-size: 100% 100%;
              mask-size: 100% 100%;
              width: 19px;
              height: 15px;
              background-color: #fff;
              transition: all ease .3s; }
              @media screen and (max-width: 1023px) {
                main.home section.company .container .action p a:after {
                  width: 16px;
                  height: calc(15px * 16 / 19);
                  right: 20px; } }
            @media (hover: hover) and (pointer: fine) {
              main.home section.company .container .action p a:hover {
                background-color: #1b4a7d; } }
            main.home section.company .container .action p a:after {
              color: #fff;
              background-color: #1b4a7d; }
            @media (hover: hover) and (pointer: fine) {
              main.home section.company .container .action p a:hover {
                background-color: #b78f39;
                color: #fff; }
                main.home section.company .container .action p a:hover:after {
                  background-color: #fff; } }
  main.home section.project {
    background-color: #fff;
    border-radius: 80px 0 0 80px;
    padding: 130px 0 455px;
    overflow: hidden; }
    @media screen and (max-width: 1023px) {
      main.home section.project {
        padding: 65px 0 510px;
        border-radius: 0; } }
    main.home section.project .container header {
      display: flex;
      align-self: flex-end;
      gap: 100px;
      margin-bottom: 112px; }
      @media screen and (max-width: 1279px) {
        main.home section.project .container header {
          display: block;
          margin-bottom: 60px; } }
      @media screen and (max-width: 1023px) {
        main.home section.project .container header {
          margin-bottom: 40px; } }
      main.home section.project .container header hgroup {
        display: flex;
        align-items: center;
        gap: 30px; }
        @media screen and (max-width: 1279px) {
          main.home section.project .container header hgroup {
            margin-bottom: 30px; } }
        @media screen and (max-width: 1023px) {
          main.home section.project .container header hgroup {
            display: block; } }
        main.home section.project .container header hgroup p {
          font-family: "Outfit", "Noto Sans JP", sans-serif;
          position: relative;
          z-index: 1;
          font-size: 93px;
          line-height: 1;
          font-weight: 500;
          color: #1b4a7d; }
          @media screen and (max-width: 1023px) {
            main.home section.project .container header hgroup p {
              font-size: 60px;
              width: fit-content;
              margin: 0 auto;
              margin-bottom: 16px; } }
          main.home section.project .container header hgroup p:before {
            content: "";
            display: block;
            width: 43px;
            height: 43px;
            background-color: #b78f39;
            border-radius: 9999px;
            position: absolute;
            z-index: -1;
            left: -12px;
            top: -5px; }
            @media screen and (max-width: 1023px) {
              main.home section.project .container header hgroup p:before {
                width: 35px;
                height: 35px; } }
        main.home section.project .container header hgroup h2 {
          font-size: 17px;
          font-weight: bold;
          line-height: 1;
          letter-spacing: .1em;
          transform: translateY(60%); }
          @media screen and (max-width: 1023px) {
            main.home section.project .container header hgroup h2 {
              font-size: 14px;
              text-align: center;
              transform: none; } }
      main.home section.project .container header p {
        font-size: 17px;
        line-height: 35px;
        letter-spacing: .05em;
        font-weight: 500; }
        @media screen and (max-width: 1023px) {
          main.home section.project .container header p {
            font-size: 14px;
            line-height: 2;
            text-align: center; } }
    main.home section.project .container .slider {
      margin-right: calc(-50vw + 50%); }
      @media screen and (max-width: 1023px) {
        main.home section.project .container .slider {
          margin-right: 0;
          width: calc(340 / 390 * 100vw);
          margin: 0 auto; } }
      main.home section.project .container .slider .swiper {
        overflow: visible; }
        main.home section.project .container .slider .swiper .swiper-wrapper {
          transition-timing-function: linear; }
        main.home section.project .container .slider .swiper .swiper-slide {
          width: 510px;
          padding-right: 15px;
          box-sizing: border-box; }
          @media screen and (max-width: 1023px) {
            main.home section.project .container .slider .swiper .swiper-slide {
              width: 100%;
              padding: 0 calc(10 / 390 * 100vw); } }
          main.home section.project .container .slider .swiper .swiper-slide figure {
            border-radius: 20px;
            overflow: hidden;
            margin-bottom: 29px; }
            @media screen and (max-width: 1023px) {
              main.home section.project .container .slider .swiper .swiper-slide figure {
                margin-bottom: 19px;
                border-radius: 15px; } }
          main.home section.project .container .slider .swiper .swiper-slide .title {
            font-size: 21px;
            line-height: 1;
            font-weight: bold;
            letter-spacing: .05em;
            margin-bottom: 19px; }
            @media screen and (max-width: 1023px) {
              main.home section.project .container .slider .swiper .swiper-slide .title {
                font-size: 17px;
                margin-bottom: 19px; } }
          main.home section.project .container .slider .swiper .swiper-slide .label {
            font-size: 14px;
            line-height: 30px;
            font-weight: bold;
            color: #fff;
            padding: 0 16px;
            border-radius: 9999px;
            background-color: #1b4a7d;
            width: fit-content;
            margin-bottom: 21px; }
            @media screen and (max-width: 1023px) {
              main.home section.project .container .slider .swiper .swiper-slide .label {
                font-size: 12px;
                padding: 0 15px;
                line-height: 25px;
                margin-bottom: 13px; } }
          main.home section.project .container .slider .swiper .swiper-slide .meta {
            font-size: 14px;
            line-height: 1;
            font-weight: bold;
            letter-spacing: .05em;
            color: #a6a7ad; }
            @media screen and (max-width: 1023px) {
              main.home section.project .container .slider .swiper .swiper-slide .meta {
                font-size: 12px; } }
    main.home section.project .container .action {
      margin-top: 76px; }
      @media screen and (max-width: 1023px) {
        main.home section.project .container .action {
          margin-top: 50px; } }
      main.home section.project .container .action p {
        display: flex;
        justify-content: center; }
        main.home section.project .container .action p a {
          position: relative;
          display: inline-flex;
          justify-content: center;
          align-items: center;
          width: 350px;
          height: 82px;
          font-size: 17px;
          color: #fff;
          font-weight: bold;
          line-height: 1.2;
          text-align: left;
          background-color: #b78f39;
          border-radius: 10px;
          transition: all ease .3s; }
          @media screen and (max-width: 1023px) {
            main.home section.project .container .action p a {
              width: 290px;
              height: 65px;
              font-size: 15px; } }
          main.home section.project .container .action p a:after {
            position: absolute;
            top: 50%;
            right: 25px;
            transform: translateY(-50%);
            content: "";
            display: block;
            -webkit-mask-image: url("../images/common/icon_arrow.svg");
            mask-image: url("../images/common/icon_arrow.svg");
            -webkit-mask-size: 100% 100%;
            mask-size: 100% 100%;
            width: 19px;
            height: 15px;
            background-color: #fff;
            transition: all ease .3s; }
            @media screen and (max-width: 1023px) {
              main.home section.project .container .action p a:after {
                width: 16px;
                height: calc(15px * 16 / 19);
                right: 20px; } }
          @media (hover: hover) and (pointer: fine) {
            main.home section.project .container .action p a:hover {
              background-color: #1b4a7d; } }
  main.home section.news {
    margin-top: -314px; }
    @media screen and (max-width: 1023px) {
      main.home section.news {
        margin-top: -440px; } }
    main.home section.news .container .wrapper {
      background-color: #eef3f8;
      padding: 76px calc(62 / 1600 * 100vw) 88px calc(73 / 1600 * 100vw);
      border-radius: 20px; }
      @media screen and (max-width: 1023px) {
        main.home section.news .container .wrapper {
          padding: 65px 20px 72px; } }
      main.home section.news .container .wrapper hgroup {
        display: flex;
        gap: 26px;
        align-items: center;
        margin-bottom: 44px; }
        @media screen and (max-width: 1023px) {
          main.home section.news .container .wrapper hgroup {
            display: block;
            margin-bottom: 40px; } }
        main.home section.news .container .wrapper hgroup p {
          font-family: "Outfit", "Noto Sans JP", sans-serif;
          position: relative;
          z-index: 1;
          font-size: 66px;
          line-height: 1;
          font-weight: 500;
          color: #1b4a7d; }
          @media screen and (max-width: 1023px) {
            main.home section.news .container .wrapper hgroup p {
              font-size: 48px;
              width: fit-content;
              margin: 0 auto;
              margin-bottom: 10px; } }
          main.home section.news .container .wrapper hgroup p:before {
            content: "";
            display: block;
            width: 43px;
            height: 43px;
            background-color: #b78f39;
            border-radius: 9999px;
            position: absolute;
            z-index: -1;
            left: -12px;
            top: -5px; }
            @media screen and (max-width: 1023px) {
              main.home section.news .container .wrapper hgroup p:before {
                width: 35px;
                height: 35px; } }
        main.home section.news .container .wrapper hgroup h2 {
          font-size: 17px;
          font-weight: bold;
          line-height: 1;
          letter-spacing: .1em;
          transform: translateY(60%); }
          @media screen and (max-width: 1023px) {
            main.home section.news .container .wrapper hgroup h2 {
              font-size: 14px;
              text-align: center;
              transform: none; } }
      main.home section.news .container .wrapper ul {
        border-top: 1px solid #cfd4de; }
        main.home section.news .container .wrapper ul li {
          border-bottom: 1px solid #cfd4de; }
          main.home section.news .container .wrapper ul li a {
            display: block;
            display: flex;
            padding: 25px 24px;
            gap: 30px;
            transition: all ease .3s; }
            @media screen and (max-width: 1023px) {
              main.home section.news .container .wrapper ul li a {
                flex-wrap: wrap;
                gap: 12px;
                padding: 15px 0 12px; } }
            main.home section.news .container .wrapper ul li a .date {
              font-family: "Outfit", "Noto Sans JP", sans-serif;
              font-size: 17px;
              line-height: 31px;
              font-weight: 500;
              flex: 0 0 80px; }
              @media screen and (max-width: 1023px) {
                main.home section.news .container .wrapper ul li a .date {
                  font-size: 13px;
                  line-height: 25px;
                  flex: 0 0 62px; } }
            main.home section.news .container .wrapper ul li a .category {
              font-size: 13px;
              font-weight: bold;
              flex: 0 0 107px;
              line-height: 31px;
              background-color: #1b4a7d;
              color: #fff;
              border-radius: 9999px;
              text-align: center;
              height: 100%; }
              @media screen and (max-width: 1023px) {
                main.home section.news .container .wrapper ul li a .category {
                  font-size: 11px;
                  flex: 0 0 90px;
                  line-height: 25px; } }
            main.home section.news .container .wrapper ul li a .title {
              font-size: 16px;
              line-height: 31px;
              font-weight: 500; }
              @media screen and (max-width: 1023px) {
                main.home section.news .container .wrapper ul li a .title {
                  flex: 0 0 100%;
                  font-size: 14px;
                  line-height: 21px; } }
          main.home section.news .container .wrapper ul li a:hover {
            background-color: #fff; }
      main.home section.news .container .wrapper .action {
        margin-top: 68px; }
        @media screen and (max-width: 1023px) {
          main.home section.news .container .wrapper .action {
            margin-top: 40px; } }
        main.home section.news .container .wrapper .action p {
          display: flex;
          justify-content: center; }
          main.home section.news .container .wrapper .action p a {
            position: relative;
            display: inline-flex;
            justify-content: center;
            align-items: center;
            width: 350px;
            height: 82px;
            font-size: 17px;
            color: #fff;
            font-weight: bold;
            line-height: 1.2;
            text-align: left;
            background-color: #b78f39;
            border-radius: 10px;
            transition: all ease .3s; }
            @media screen and (max-width: 1023px) {
              main.home section.news .container .wrapper .action p a {
                width: 290px;
                height: 65px;
                font-size: 15px; } }
            main.home section.news .container .wrapper .action p a:after {
              position: absolute;
              top: 50%;
              right: 25px;
              transform: translateY(-50%);
              content: "";
              display: block;
              -webkit-mask-image: url("../images/common/icon_arrow.svg");
              mask-image: url("../images/common/icon_arrow.svg");
              -webkit-mask-size: 100% 100%;
              mask-size: 100% 100%;
              width: 19px;
              height: 15px;
              background-color: #fff;
              transition: all ease .3s; }
              @media screen and (max-width: 1023px) {
                main.home section.news .container .wrapper .action p a:after {
                  width: 16px;
                  height: calc(15px * 16 / 19);
                  right: 20px; } }
            @media (hover: hover) and (pointer: fine) {
              main.home section.news .container .wrapper .action p a:hover {
                background-color: #1b4a7d; } }

/* CSS Document */
.sdgs-lead {
  display: flex;
  font-size: 16px;
  line-height: 35px;
  align-items: center;
  margin-bottom: 60px; }

.sdgs-lead .txt {
  flex: 1;
  margin-left: 50px; }

.sdgs-lead .txt dl {
  display: block !important;
  border: none !important; }

.sdgs-lead .txt dt {
  border: none !important;
  padding: 0 !important;
  font-weight: normal !important; }

.sdgs-lead .txt dd {
  border: none !important;
  padding: 0 !important;
  font-weight: bold !important;
  margin-bottom: 20px; }

.sdgs-lead h2 {
  font-size: 35px;
  font-weight: bold;
  margin-bottom: 20px; }

.sdgs-blk {
  background-color: #eff3f8;
  border-radius: 20px;
  padding: 40px;
  font-size: 16px;
  line-height: 35px; }

.sdgs-blk:not(:last-child) {
  margin-bottom: 40px; }

.sdgs-blk table {
  width: 100%; }

.sdgs-blk th {
  text-align: left;
  width: 250px;
  border-bottom: 1px solid #d3d4de;
  padding-top: 20px;
  padding-bottom: 20px; }

.sdgs-blk td {
  border-bottom: 1px solid #d3d4de;
  padding-top: 20px;
  padding-bottom: 20px; }

.sdgs-blk td .img {
  display: flex;
  gap: 15px; }

.sdgs-blk td .img li {
  width: 140px; }

.sdgs-blk td p {
  font-weight: bold;
  margin-bottom: 5px; }

.sdgs-blk tr:last-child th {
  border-bottom: none; }

.sdgs-blk tr:last-child td {
  border-bottom: none; }

.sdgs-txt {
  font-size: 16px;
  line-height: 35px; }

@media screen and (max-width: 1023px) {
  .sdgs-blk {
    padding: 20px;
    font-size: 14px;
    line-height: 28px; }

  .sdgs-blk th {
    display: block;
    width: auto;
    border-bottom: none;
    padding-bottom: 0;
    padding-top: 15px; }

  .sdgs-blk td {
    display: block;
    width: auto;
    padding-top: 10px;
    padding-bottom: 15px; }

  .sdgs-lead {
    display: block;
    font-size: 14px;
    line-height: 28px;
    margin-bottom: 35px; }

  .sdgs-lead .img {
    text-align: center;
    margin-bottom: 20px; }

  .sdgs-lead img {
    width: 140px; }

  .sdgs-lead h2 {
    font-size: 25px;
    margin-bottom: 15px;
    text-align: center; }

  .sdgs-lead .txt {
    margin-left: 0; }

  .sdgs-lead .txt dl {
    text-align: center; }

  .sdgs-blk td .img {
    gap: 10px; }

  .sdgs-blk td .img li {
    width: calc((100% - 40px) / 4); }

  .sdgs-blk:not(:last-child) {
    margin-bottom: 20px; }

  .sdgs-txt {
    font-size: 14px;
    line-height: 28px; }

  main.company-outline > header .container hgroup > .size {
    font-size: 47px !important; } }
main.company-outline {
  position: relative;
  z-index: 1;
  padding-top: 100px; }
  @media screen and (max-width: 1023px) {
    main.company-outline {
      padding-top: 65px; } }
  main.company-outline:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
    min-height: 1200px;
    display: block;
    background-image: url("../images/common/bg.jpg");
    background-size: cover;
    background-position: 50% 50%; }
  main.company-outline > header {
    height: 390px; }
    @media screen and (max-width: 1023px) {
      main.company-outline > header {
        height: 205px; } }
    main.company-outline > header .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto;
      position: relative;
      padding-top: 136px; }
      @media screen and (max-width: 1023px) {
        main.company-outline > header .container {
          width: calc(350 / 390 * 100vw); } }
      @media screen and (max-width: 1023px) {
        main.company-outline > header .container {
          padding-top: 71px; } }
      main.company-outline > header .container hgroup > *:nth-child(1) {
        font-family: "Outfit", "Noto Sans JP", sans-serif;
        position: relative;
        z-index: 1;
        font-size: 90px;
        font-weight: 600;
        color: #fff;
        margin-bottom: 16px; }
        @media screen and (max-width: 1023px) {
          main.company-outline > header .container hgroup > *:nth-child(1) {
            font-size: 60px;
            margin-bottom: 4px; } }
        main.company-outline > header .container hgroup > *:nth-child(1):before {
          content: "";
          display: block;
          width: 43px;
          height: 43px;
          background-color: #b78f39;
          border-radius: 9999px;
          position: absolute;
          z-index: -1;
          left: -12px;
          top: -5px; }
          @media screen and (max-width: 1023px) {
            main.company-outline > header .container hgroup > *:nth-child(1):before {
              width: 35px;
              height: 35px; } }
      main.company-outline > header .container hgroup > *:nth-child(2) {
        font-size: 20px;
        font-weight: bold;
        letter-spacing: .1em;
        color: #fff; }
        @media screen and (max-width: 1023px) {
          main.company-outline > header .container hgroup > *:nth-child(2) {
            font-size: 15px; } }
      main.company-outline > header .container nav.breadcrumb {
        position: absolute;
        top: 24px;
        left: 0;
        right: 0; }
        @media screen and (max-width: 1023px) {
          main.company-outline > header .container nav.breadcrumb {
            top: 12px; } }
        main.company-outline > header .container nav.breadcrumb ol li {
          display: inline;
          font-size: 13px;
          font-weight: 500;
          color: #fff; }
          @media screen and (max-width: 1023px) {
            main.company-outline > header .container nav.breadcrumb ol li {
              font-size: 11px; } }
          main.company-outline > header .container nav.breadcrumb ol li:after {
            content: "\00a0／\00a0"; }
          main.company-outline > header .container nav.breadcrumb ol li:last-child:after {
            display: none; }
          main.company-outline > header .container nav.breadcrumb ol li a {
            transition: all ease .3s; }
            @media (hover: hover) and (pointer: fine) {
              main.company-outline > header .container nav.breadcrumb ol li a:hover {
                opacity: .5; } }
  main.company-outline section.outline {
    background-color: #fff;
    border-radius: 80px 80px 0 0;
    padding: 132px 0 185px; }
    @media screen and (max-width: 1023px) {
      main.company-outline section.outline {
        border-radius: 30px 30px 0 0;
        padding: calc(132px * 0.5) 0 calc(185px * 0.5); } }
    main.company-outline section.outline .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto; }
      @media screen and (max-width: 1023px) {
        main.company-outline section.outline .container {
          width: calc(350 / 390 * 100vw); } }
      main.company-outline section.outline .container dl {
        border-top: 1px solid #d3d4de;
        display: flex;
        flex-wrap: wrap; }
        @media screen and (max-width: 1023px) {
          main.company-outline section.outline .container dl {
            display: block; } }
        main.company-outline section.outline .container dl dt {
          flex: 0 0 320px;
          border-bottom: 1px solid #d3d4de;
          font-size: 17px;
          font-weight: bold;
          line-height: 30px;
          padding: 40px 25px; }
          @media screen and (max-width: 1023px) {
            main.company-outline section.outline .container dl dt {
              padding: 20px 0 0;
              font-size: 14px;
              line-height: 26px;
              border: none; } }
        main.company-outline section.outline .container dl dd {
          flex: 0 0 calc(100% - 320px);
          border-bottom: 1px solid #d3d4de;
          font-size: 17px;
          font-weight: 500;
          line-height: 30px;
          padding: 40px 0; }
          @media screen and (max-width: 1023px) {
            main.company-outline section.outline .container dl dd {
              padding: 0px 0 20px;
              font-size: 14px;
              line-height: 26px; } }
  main.company-outline nav.local {
    background-color: #fff;
    border-radius: 0 0 80px 80px;
    border-top: 1px solid #d3d4de;
    padding: 98px 0 140px; }
    @media screen and (max-width: 768px) {
      main.company-outline nav.local {
        border-radius: 0 0 30px 30px;
        padding: 50px 0 70px; } }
    main.company-outline nav.local .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto;
      display: flex;
      gap: 60px;
      justify-content: space-between; }
      @media screen and (max-width: 1023px) {
        main.company-outline nav.local .container {
          width: calc(350 / 390 * 100vw); } }
      @media screen and (max-width: 1023px) {
        main.company-outline nav.local .container {
          display: block; } }
      main.company-outline nav.local .container header hgroup p {
        font-size: 59px;
        font-weight: 500;
        letter-spacing: .02em;
        color: #1f4c8e;
        margin-bottom: 20px; }
        @media screen and (max-width: 1023px) {
          main.company-outline nav.local .container header hgroup p {
            font-size: 48px;
            margin-bottom: 10px; } }
      main.company-outline nav.local .container header hgroup h2 {
        font-size: 17px;
        font-weight: bold;
        letter-spacing: .1em; }
        @media screen and (max-width: 1023px) {
          main.company-outline nav.local .container header hgroup h2 {
            font-size: 14px; } }
      main.company-outline nav.local .container header .action {
        margin-top: 52px; }
        @media screen and (max-width: 1023px) {
          main.company-outline nav.local .container header .action {
            margin-top: 20px;
            margin-bottom: 25px; } }
        main.company-outline nav.local .container header .action p a {
          position: relative;
          display: inline-flex;
          justify-content: center;
          align-items: center;
          width: 258px;
          height: 69px;
          border-radius: 10px;
          background-color: #1f4c8e;
          font-size: 18px;
          font-weight: bold;
          letter-spacing: .1em;
          color: #fff;
          transition: all ease .3s; }
          @media screen and (max-width: 1023px) {
            main.company-outline nav.local .container header .action p a {
              width: 100%;
              height: calc(69px * 0.8);
              border-radius: calc(10px * 0.8);
              font-size: calc(18px * 0.8); } }
          main.company-outline nav.local .container header .action p a:after {
            position: absolute;
            top: 50%;
            right: 24px;
            transform: translateY(-50%);
            content: "";
            display: block;
            -webkit-mask-image: url("../images/common/icon_arrow.svg");
            mask-image: url("../images/common/icon_arrow.svg");
            -webkit-mask-size: 100% 100%;
            mask-size: 100% 100%;
            width: 19px;
            height: 15px;
            background-color: #fff;
            transition: all ease .3s; }
            @media screen and (max-width: 1023px) {
              main.company-outline nav.local .container header .action p a:after {
                width: 16px;
                height: calc(15px * 16 / 19);
                right: 20px; } }
          @media (hover: hover) and (pointer: fine) {
            main.company-outline nav.local .container header .action p a:hover {
              background-color: #b78f39; } }
      main.company-outline nav.local .container .body {
        flex: 0 0 max(724px, calc(724 / 1280 * 100%)); }
        main.company-outline nav.local .container .body ul {
          display: flex;
          flex-wrap: wrap;
          gap: 45px; }
          @media screen and (max-width: 1023px) {
            main.company-outline nav.local .container .body ul {
              gap: 0 20px; } }
          main.company-outline nav.local .container .body ul li {
            flex: 0 0 calc((100% - 45px) / 2);
            border-bottom: 1px solid #d3d4de; }
            @media screen and (max-width: 1023px) {
              main.company-outline nav.local .container .body ul li {
                flex: 0 0 calc((100% - 20px) / 2); } }
            main.company-outline nav.local .container .body ul li a {
              position: relative;
              display: block;
              padding: 10px 0 30px; }
              @media screen and (max-width: 1023px) {
                main.company-outline nav.local .container .body ul li a {
                  padding: 20px 0 20px; } }
              main.company-outline nav.local .container .body ul li a p:nth-child(1) {
                font-family: "Outfit", "Noto Sans JP", sans-serif;
                font-size: 13px;
                font-weight: 500;
                letter-spacing: .02em;
                color: #b2b2b8;
                margin-bottom: 8px;
                transition: all ease .3s; }
                @media screen and (max-width: 1023px) {
                  main.company-outline nav.local .container .body ul li a p:nth-child(1) {
                    font-size: 10px;
                    margin-bottom: 4px; } }
              main.company-outline nav.local .container .body ul li a p:nth-child(2) {
                font-size: 20px;
                font-weight: bold;
                letter-spacing: .06em;
                transition: all ease .3s; }
                @media screen and (max-width: 1023px) {
                  main.company-outline nav.local .container .body ul li a p:nth-child(2) {
                    font-size: 16px; } }
              main.company-outline nav.local .container .body ul li a .arrow {
                position: absolute;
                top: 30px;
                right: 0;
                display: flex;
                justify-content: center;
                align-items: center;
                width: 55px;
                height: 20px;
                background-color: #1b4a7d;
                border-radius: 9999px;
                transition: all ease .3s; }
                @media screen and (max-width: 1023px) {
                  main.company-outline nav.local .container .body ul li a .arrow {
                    background-color: transparent;
                    width: 11px;
                    height: auto;
                    top: 39px; } }
                main.company-outline nav.local .container .body ul li a .arrow:before {
                  content: "";
                  display: block;
                  width: 11px;
                  height: calc(15px * 11 / 19);
                  -webkit-mask-image: url("../images/common/icon_arrow.svg");
                  mask-image: url("../images/common/icon_arrow.svg");
                  -webkit-mask-size: 100% 100%;
                  mask-size: 100% 100%;
                  background-color: #fff; }
                  @media screen and (max-width: 1023px) {
                    main.company-outline nav.local .container .body ul li a .arrow:before {
                      background-color: #1b4a7d; } }
              @media (hover: hover) and (pointer: fine) {
                main.company-outline nav.local .container .body ul li a:hover p {
                  opacity: .5; }
                main.company-outline nav.local .container .body ul li a:hover .arrow {
                  background-color: #b78f39; } }
  @media screen and (hover: hover) and (pointer: fine) and (max-width: 1023px) {
    main.company-outline nav.local .container .body ul li a:hover .arrow {
      background-color: transparent;
      opacity: .5; } }

main.business {
  position: relative;
  z-index: 1;
  padding-top: 100px; }
  @media screen and (max-width: 1023px) {
    main.business {
      padding-top: 65px; } }
  main.business:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
    min-height: 1200px;
    display: block;
    background-image: url("../images/common/bg.jpg");
    background-size: cover;
    background-position: 50% 50%; }
  main.business > header {
    height: 390px; }
    @media screen and (max-width: 1023px) {
      main.business > header {
        height: 205px; } }
    main.business > header .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto;
      position: relative;
      padding-top: 136px; }
      @media screen and (max-width: 1023px) {
        main.business > header .container {
          width: calc(350 / 390 * 100vw); } }
      @media screen and (max-width: 1023px) {
        main.business > header .container {
          padding-top: 71px; } }
      main.business > header .container hgroup > *:nth-child(1) {
        font-family: "Outfit", "Noto Sans JP", sans-serif;
        position: relative;
        z-index: 1;
        font-size: 90px;
        font-weight: 600;
        color: #fff;
        margin-bottom: 16px; }
        @media screen and (max-width: 1023px) {
          main.business > header .container hgroup > *:nth-child(1) {
            font-size: 60px;
            margin-bottom: 4px; } }
        main.business > header .container hgroup > *:nth-child(1):before {
          content: "";
          display: block;
          width: 43px;
          height: 43px;
          background-color: #b78f39;
          border-radius: 9999px;
          position: absolute;
          z-index: -1;
          left: -12px;
          top: -5px; }
          @media screen and (max-width: 1023px) {
            main.business > header .container hgroup > *:nth-child(1):before {
              width: 35px;
              height: 35px; } }
      main.business > header .container hgroup > *:nth-child(2) {
        font-size: 20px;
        font-weight: bold;
        letter-spacing: .1em;
        color: #fff; }
        @media screen and (max-width: 1023px) {
          main.business > header .container hgroup > *:nth-child(2) {
            font-size: 15px; } }
      main.business > header .container nav.breadcrumb {
        position: absolute;
        top: 24px;
        left: 0;
        right: 0; }
        @media screen and (max-width: 1023px) {
          main.business > header .container nav.breadcrumb {
            top: 12px; } }
        main.business > header .container nav.breadcrumb ol li {
          display: inline;
          font-size: 13px;
          font-weight: 500;
          color: #fff; }
          @media screen and (max-width: 1023px) {
            main.business > header .container nav.breadcrumb ol li {
              font-size: 11px; } }
          main.business > header .container nav.breadcrumb ol li:after {
            content: "\00a0／\00a0"; }
          main.business > header .container nav.breadcrumb ol li:last-child:after {
            display: none; }
          main.business > header .container nav.breadcrumb ol li a {
            transition: all ease .3s; }
            @media (hover: hover) and (pointer: fine) {
              main.business > header .container nav.breadcrumb ol li a:hover {
                opacity: .5; } }
  main.business section.business {
    background-color: #fff;
    border-radius: 80px;
    padding: 140px 0; }
    @media screen and (max-width: 1023px) {
      main.business section.business {
        padding: 40px 0 70px;
        border-radius: 30px; } }
    main.business section.business .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto; }
      @media screen and (max-width: 1023px) {
        main.business section.business .container {
          width: calc(350 / 390 * 100vw); } }
      main.business section.business .container nav.jump {
        margin-bottom: 100px; }
        @media screen and (max-width: 1023px) {
          main.business section.business .container nav.jump {
            margin-bottom: 55px; } }
        main.business section.business .container nav.jump ul {
          display: flex;
          flex-wrap: wrap;
          gap: 0 28px; }
          @media screen and (max-width: 1023px) {
            main.business section.business .container nav.jump ul {
              gap: 0 10px; } }
          main.business section.business .container nav.jump ul li {
            border-bottom: 1px solid #d3d4de;
            flex: 0 0 calc((100% - 28px * 3) / 4); }
            @media screen and (max-width: 1023px) {
              main.business section.business .container nav.jump ul li {
                flex: 0 0 calc((100% - 10px) / 2); } }
            main.business section.business .container nav.jump ul li a {
              position: relative;
              display: flex;
              align-items: center;
              height: 80px;
              font-size: 17px;
              line-height: 1.3;
              font-weight: bold;
              letter-spacing: .06em;
              padding-right: 60px;
              transition: all ease .3s; }
              @media screen and (max-width: 1023px) {
                main.business section.business .container nav.jump ul li a {
                  font-size: 12px;
                  height: 42px;
                  padding-right: 12px; } }
              main.business section.business .container nav.jump ul li a .arrow {
                display: flex;
                justify-content: center;
                align-items: center;
                position: absolute;
                top: 50%;
                right: 0;
                width: 55px;
                height: 20px;
                background-color: #1b4a7d;
                border-radius: 9999px;
                transform: translateY(-50%);
                transition: all ease .3s; }
                @media screen and (max-width: 1023px) {
                  main.business section.business .container nav.jump ul li a .arrow {
                    width: 8px;
                    height: auto;
                    background-color: transparent !important;
                    margin-top: 0; } }
                main.business section.business .container nav.jump ul li a .arrow:after {
                  content: "";
                  -webkit-mask-image: url("../images/common/icon_arrow_down.svg");
                  mask-image: url("../images/common/icon_arrow_down.svg");
                  -webkit-mask-size: 100% 100%;
                  mask-size: 100% 100%;
                  display: block;
                  width: 8px;
                  height: calc(19px * 8 / 15);
                  background-color: #fff; }
                  @media screen and (max-width: 1023px) {
                    main.business section.business .container nav.jump ul li a .arrow:after {
                      background-color: #1b4a7d; } }
              @media (hover: hover) and (pointer: fine) {
                main.business section.business .container nav.jump ul li a:hover {
                  color: rgba(0, 0, 0, 0.5); }
                  main.business section.business .container nav.jump ul li a:hover .arrow {
                    background-color: #b78f39; } }
      main.business section.business .container .gallery {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        width: 100%;
        margin: 0 auto 120px;
        border-radius: 20px;
        overflow: hidden; }
        @media screen and (max-width: 1023px) {
          main.business section.business .container .gallery {
            margin-bottom: 65px;
            border-radius: 15px; } }
        main.business section.business .container .gallery figure {
          aspect-ratio: 4 / 3;
          overflow: hidden; }
          main.business section.business .container .gallery figure img {
            display: block;
            width: 100%;
            height: 100%;
            object-fit: cover; }
      main.business section.business .container .business-list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 110px calc(80 / 1280 * 100%); }
        @media screen and (max-width: 1023px) {
          main.business section.business .container .business-list {
            grid-template-columns: minmax(0, 1fr);
            gap: 65px; } }
        main.business section.business .container .business-list > li {
          scroll-margin-top: 130px; }
          @media screen and (max-width: 1023px) {
            main.business section.business .container .business-list > li {
              scroll-margin-top: 85px; } }
          main.business section.business .container .business-list > li section.detail .content header {
            margin-bottom: 32px; }
            @media screen and (max-width: 1023px) {
              main.business section.business .container .business-list > li section.detail .content header {
                margin-bottom: 24px; } }
            main.business section.business .container .business-list > li section.detail .content header .marker {
              font-family: "Outfit", "Noto Sans JP", sans-serif;
              position: relative;
              font-size: 16px;
              font-weight: 600;
              margin-bottom: 20px;
              padding-left: 16px;
              color: #1b4a7d; }
              @media screen and (max-width: 1023px) {
                main.business section.business .container .business-list > li section.detail .content header .marker {
                  font-size: 14px;
                  line-height: 16px;
                  margin-bottom: 16px; } }
              main.business section.business .container .business-list > li section.detail .content header .marker:before {
                content: "";
                display: block;
                width: 10px;
                height: 2px;
                position: absolute;
                top: 7px;
                left: 0;
                background-color: #1b4a7d; }
            main.business section.business .container .business-list > li section.detail .content header h3 {
              font-size: 36px;
              font-weight: bold;
              letter-spacing: .07em;
              margin-bottom: 25px; }
              @media screen and (max-width: 1023px) {
                main.business section.business .container .business-list > li section.detail .content header h3 {
                  font-size: 24px;
                  margin-bottom: 20px; } }
            main.business section.business .container .business-list > li section.detail .content header ul.label {
              display: flex;
              gap: 10px; }
              main.business section.business .container .business-list > li section.detail .content header ul.label li {
                width: 90px;
                font-size: 14px;
                font-weight: bold;
                letter-spacing: .05em;
                line-height: 30px;
                border-radius: 9999px;
                background-color: #1b4a7d;
                text-align: center;
                color: #fff; }
                @media screen and (max-width: 1023px) {
                  main.business section.business .container .business-list > li section.detail .content header ul.label li {
                    font-size: 12px;
                    line-height: 25px;
                    width: 80px; } }
          main.business section.business .container .business-list > li section.detail .content .body .copy {
            color: #1b4a7d;
            font-size: 27px;
            line-height: 48px;
            letter-spacing: .05em;
            font-weight: bold;
            margin-bottom: 25px; }
            @media screen and (max-width: 1023px) {
              main.business section.business .container .business-list > li section.detail .content .body .copy {
                font-size: 20px;
                line-height: 35px;
                margin-bottom: 12px; } }
          main.business section.business .container .business-list > li section.detail .content .body .description {
            font-size: 16px;
            line-height: 35px;
            font-weight: 500;
            letter-spacing: .05em; }
            @media screen and (max-width: 1023px) {
              main.business section.business .container .business-list > li section.detail .content .body .description {
                font-size: 14px;
                line-height: 26px; } }

/* 協力会社の皆様へ */
main.partners {
  position: relative;
  z-index: 1;
  padding-top: 100px; }
  @media screen and (max-width: 1023px) {
    main.partners {
      padding-top: 65px; } }
  main.partners:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
    min-height: 1200px;
    display: block;
    background-image: url("../images/common/bg.jpg");
    background-size: cover;
    background-position: 50% 50%; }
  main.partners > header {
    height: 390px; }
    @media screen and (max-width: 1023px) {
      main.partners > header {
        height: 205px; } }
    main.partners > header .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto;
      position: relative;
      padding-top: 136px; }
      @media screen and (max-width: 1023px) {
        main.partners > header .container {
          width: calc(350 / 390 * 100vw); } }
      @media screen and (max-width: 1023px) {
        main.partners > header .container {
          padding-top: 71px; } }
      main.partners > header .container hgroup > *:nth-child(1) {
        font-family: "Outfit", "Noto Sans JP", sans-serif;
        position: relative;
        z-index: 1;
        font-size: 90px;
        font-weight: 600;
        color: #fff;
        margin-bottom: 16px; }
        @media screen and (max-width: 1023px) {
          main.partners > header .container hgroup > *:nth-child(1) {
            font-size: 60px;
            margin-bottom: 4px; } }
        main.partners > header .container hgroup > *:nth-child(1):before {
          content: "";
          display: block;
          width: 43px;
          height: 43px;
          background-color: #b78f39;
          border-radius: 9999px;
          position: absolute;
          z-index: -1;
          left: -12px;
          top: -5px; }
          @media screen and (max-width: 1023px) {
            main.partners > header .container hgroup > *:nth-child(1):before {
              width: 35px;
              height: 35px; } }
      main.partners > header .container hgroup > *:nth-child(2) {
        font-size: 20px;
        font-weight: bold;
        letter-spacing: .1em;
        color: #fff; }
        @media screen and (max-width: 1023px) {
          main.partners > header .container hgroup > *:nth-child(2) {
            font-size: 15px; } }
      main.partners > header .container nav.breadcrumb {
        position: absolute;
        top: 24px;
        left: 0;
        right: 0; }
        @media screen and (max-width: 1023px) {
          main.partners > header .container nav.breadcrumb {
            top: 12px; } }
        main.partners > header .container nav.breadcrumb ol li {
          display: inline;
          font-size: 13px;
          font-weight: 500;
          color: #fff; }
          @media screen and (max-width: 1023px) {
            main.partners > header .container nav.breadcrumb ol li {
              font-size: 11px; } }
          main.partners > header .container nav.breadcrumb ol li:after {
            content: "\00a0／\00a0"; }
          main.partners > header .container nav.breadcrumb ol li:last-child:after {
            display: none; }
          main.partners > header .container nav.breadcrumb ol li a {
            transition: all ease .3s; }
            @media (hover: hover) and (pointer: fine) {
              main.partners > header .container nav.breadcrumb ol li a:hover {
                opacity: .5; } }
  main.partners .partners-content {
    background-color: #fff;
    border-radius: 80px 80px 0 0;
    padding: 130px 0 150px; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-content {
        border-radius: 30px 30px 0 0;
        padding: 58px 0 75px; } }
  main.partners .container {
    width: calc(1280 / 1600 * 100vw);
    max-width: 1280px;
    margin: 0 auto; }
    @media screen and (max-width: 1023px) {
      main.partners .container {
        width: calc(350 / 390 * 100vw); } }
  main.partners .partners-introduction {
    text-align: center; }
    main.partners .partners-introduction .container {
      max-width: 970px; }
    main.partners .partners-introduction h2 {
      font-size: 38px;
      font-weight: bold;
      line-height: 1.65;
      letter-spacing: .07em;
      color: #1b4a7d;
      margin-bottom: 38px; }
      @media screen and (max-width: 1023px) {
        main.partners .partners-introduction h2 {
          font-size: 25px;
          line-height: 1.6;
          margin-bottom: 25px; } }
    main.partners .partners-introduction__text {
      text-align: left; }
      main.partners .partners-introduction__text p {
        font-size: 16px;
        font-weight: 500;
        line-height: 2.15;
        letter-spacing: .04em; }
        @media screen and (max-width: 1023px) {
          main.partners .partners-introduction__text p {
            font-size: 14px;
            line-height: 1.95; } }
      main.partners .partners-introduction__text p + p {
        margin-top: 8px; }
  main.partners .partners-section {
    margin-top: 130px; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-section {
        margin-top: 72px; } }
    main.partners .partners-section__header {
      margin-bottom: 48px; }
      @media screen and (max-width: 1023px) {
        main.partners .partners-section__header {
          margin-bottom: 30px; } }
      main.partners .partners-section__header > p {
        font-family: "Outfit", "Noto Sans JP", sans-serif;
        position: relative;
        font-size: 15px;
        font-weight: 600;
        line-height: 1;
        letter-spacing: .12em;
        text-transform: uppercase;
        color: #1b4a7d;
        margin-bottom: 14px;
        padding-left: 28px; }
        @media screen and (max-width: 1023px) {
          main.partners .partners-section__header > p {
            font-size: 13px;
            margin-bottom: 11px;
            padding-left: 23px; } }
        main.partners .partners-section__header > p:before {
          content: "";
          display: block;
          position: absolute;
          left: 0;
          top: 50%;
          width: 17px;
          height: 2px;
          background-color: #1b4a7d;
          transform: translateY(-50%); }
      main.partners .partners-section__header h2 {
        font-size: 34px;
        font-weight: bold;
        line-height: 1.5;
        letter-spacing: .06em;
        color: #1b4a7d; }
        @media screen and (max-width: 1023px) {
          main.partners .partners-section__header h2 {
            font-size: 24px; } }
  main.partners .partners-values__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-values__list {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px; } }
    main.partners .partners-values__list > li {
      position: relative;
      padding: 55px 42px 45px;
      border-radius: 18px;
      background-color: #eef3f8;
      overflow: hidden; }
      @media screen and (max-width: 1279px) {
        main.partners .partners-values__list > li {
          padding-right: 30px;
          padding-left: 30px; } }
      @media screen and (max-width: 1023px) {
        main.partners .partners-values__list > li {
          min-height: 0;
          padding: 35px 25px 30px;
          border-radius: 14px; } }
  main.partners .partners-values__number {
    font-family: "Outfit", "Noto Sans JP", sans-serif;
    position: absolute;
    top: 29px;
    right: 30px;
    font-size: 68px;
    font-weight: 600;
    line-height: 1;
    color: rgba(27, 74, 125, 0.08); }
    @media screen and (max-width: 1023px) {
      main.partners .partners-values__number {
        top: 23px;
        right: 20px;
        font-size: 54px; } }
  main.partners .partners-values__label {
    font-family: "Outfit", "Noto Sans JP", sans-serif;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #1b4a7d;
    margin-bottom: 25px; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-values__label {
        font-size: 13px;
        margin-bottom: 18px; } }
  main.partners .partners-values__list h3 {
    position: relative;
    font-size: 24px;
    font-weight: bold;
    line-height: 1.55;
    letter-spacing: .05em;
    color: #1b4a7d;
    margin-bottom: 22px; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-values__list h3 {
        font-size: 20px;
        margin-bottom: 14px; } }
  main.partners .partners-values__description {
    position: relative;
    font-size: 15px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: .04em; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-values__description {
        font-size: 14px;
        line-height: 1.9; } }
  main.partners .partners-work__lead {
    font-size: 16px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: .04em;
    margin-bottom: 42px; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-work__lead {
        font-size: 14px;
        line-height: 1.9;
        margin-bottom: 28px; } }
  main.partners .partners-work__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-top: 1px solid #d3d4de;
    border-left: 1px solid #d3d4de; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-work__list {
        grid-template-columns: repeat(2, minmax(0, 1fr)); } }
    @media screen and (max-width: 768px) {
      main.partners .partners-work__list {
        grid-template-columns: minmax(0, 1fr); } }
    main.partners .partners-work__list li {
      position: relative;
      display: flex;
      align-items: center;
      min-height: 78px;
      font-size: 16px;
      font-weight: bold;
      line-height: 1.5;
      letter-spacing: .04em;
      padding: 17px 24px 17px 52px;
      border-right: 1px solid #d3d4de;
      border-bottom: 1px solid #d3d4de; }
      @media screen and (max-width: 1023px) {
        main.partners .partners-work__list li {
          min-height: 64px;
          font-size: 14px;
          padding: 14px 15px 14px 42px; } }
      main.partners .partners-work__list li:before {
        content: "";
        display: block;
        position: absolute;
        left: 25px;
        top: 50%;
        width: 9px;
        height: 9px;
        border-radius: 50%;
        background-color: #1b4a7d;
        transform: translateY(-50%); }
        @media screen and (max-width: 1023px) {
          main.partners .partners-work__list li:before {
            left: 18px;
            width: 8px;
            height: 8px; } }
  main.partners .partners-work__note {
    margin-top: 36px;
    padding: 28px 35px;
    border-left: 4px solid #1b4a7d;
    background-color: #f7f9fb; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-work__note {
        margin-top: 25px;
        padding: 22px 20px; } }
    main.partners .partners-work__note p {
      font-size: 15px;
      font-weight: 500;
      line-height: 1.9;
      letter-spacing: .04em; }
      @media screen and (max-width: 1023px) {
        main.partners .partners-work__note p {
          font-size: 14px; } }
    main.partners .partners-work__note p:first-child {
      font-size: 17px;
      font-weight: bold;
      color: #1b4a7d; }
      @media screen and (max-width: 1023px) {
        main.partners .partners-work__note p:first-child {
          font-size: 15px; } }
  main.partners .partners-contact__introduction {
    font-size: 16px;
    font-weight: 500;
    line-height: 2;
    letter-spacing: .04em;
    margin-bottom: 45px; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-contact__introduction {
        font-size: 14px;
        line-height: 1.9;
        margin-bottom: 30px; } }
  main.partners .partners-contact__lead {
    font-size: 21px;
    font-weight: bold;
    color: #1b4a7d;
    margin-bottom: 10px; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-contact__lead {
        font-size: 18px; } }
  main.partners .partners-contact__box {
    max-width: 900px;
    margin: 0 auto;
    padding: 55px 40px 60px;
    border: 1px solid #cfd4de;
    text-align: center; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-contact__box {
        padding: 35px 15px 40px; } }
    main.partners .partners-contact__box h3 {
      font-size: 23px;
      font-weight: bold;
      letter-spacing: .06em;
      color: #1b4a7d;
      margin-bottom: 30px; }
      @media screen and (max-width: 1023px) {
        main.partners .partners-contact__box h3 {
          font-size: 19px;
          margin-bottom: 22px; } }
  main.partners .partners-contact__address {
    font-size: 16px;
    line-height: 28px;
    letter-spacing: .03em;
    margin-bottom: 15px; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-contact__address {
        font-size: 13px;
        line-height: 24px; } }
  main.partners .partners-contact__company {
    font-size: 17px;
    font-weight: bold;
    line-height: 28px;
    letter-spacing: .04em;
    margin-bottom: 18px; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-contact__company {
        font-size: 14px;
        line-height: 24px; } }
  main.partners .partners-contact__tel-number {
    font-family: "Outfit", "Noto Sans JP", sans-serif;
    font-size: 48px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .01em;
    color: #1b4a7d;
    margin-bottom: 15px; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-contact__tel-number {
        font-size: 29px; } }
  main.partners .partners-contact__hours {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.5;
    letter-spacing: .03em; }
    @media screen and (max-width: 1023px) {
      main.partners .partners-contact__hours {
        font-size: 12px; } }

/* 個人情報保護方針 */
main.privacy {
  position: relative;
  z-index: 1;
  padding-top: 100px; }
  @media screen and (max-width: 1023px) {
    main.privacy {
      padding-top: 65px; } }
  main.privacy:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
    min-height: 1200px;
    display: block;
    background-image: url("../images/common/bg.jpg");
    background-size: cover;
    background-position: 50% 50%; }
  main.privacy > header {
    height: 390px; }
    @media screen and (max-width: 1023px) {
      main.privacy > header {
        height: 205px; } }
    main.privacy > header .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto;
      position: relative;
      padding-top: 136px; }
      @media screen and (max-width: 1023px) {
        main.privacy > header .container {
          width: calc(350 / 390 * 100vw); } }
      @media screen and (max-width: 1023px) {
        main.privacy > header .container {
          padding-top: 71px; } }
      main.privacy > header .container hgroup > *:nth-child(1) {
        font-family: "Outfit", "Noto Sans JP", sans-serif;
        position: relative;
        z-index: 1;
        font-size: 90px;
        font-weight: 600;
        color: #fff;
        margin-bottom: 16px; }
        @media screen and (max-width: 1023px) {
          main.privacy > header .container hgroup > *:nth-child(1) {
            font-size: 60px;
            margin-bottom: 4px; } }
        main.privacy > header .container hgroup > *:nth-child(1):before {
          content: "";
          display: block;
          width: 43px;
          height: 43px;
          background-color: #b78f39;
          border-radius: 9999px;
          position: absolute;
          z-index: -1;
          left: -12px;
          top: -5px; }
          @media screen and (max-width: 1023px) {
            main.privacy > header .container hgroup > *:nth-child(1):before {
              width: 35px;
              height: 35px; } }
      main.privacy > header .container hgroup > *:nth-child(2) {
        font-size: 20px;
        font-weight: bold;
        letter-spacing: .1em;
        color: #fff; }
        @media screen and (max-width: 1023px) {
          main.privacy > header .container hgroup > *:nth-child(2) {
            font-size: 15px; } }
      main.privacy > header .container nav.breadcrumb {
        position: absolute;
        top: 24px;
        left: 0;
        right: 0; }
        @media screen and (max-width: 1023px) {
          main.privacy > header .container nav.breadcrumb {
            top: 12px; } }
        main.privacy > header .container nav.breadcrumb ol li {
          display: inline;
          font-size: 13px;
          font-weight: 500;
          color: #fff; }
          @media screen and (max-width: 1023px) {
            main.privacy > header .container nav.breadcrumb ol li {
              font-size: 11px; } }
          main.privacy > header .container nav.breadcrumb ol li:after {
            content: "\00a0／\00a0"; }
          main.privacy > header .container nav.breadcrumb ol li:last-child:after {
            display: none; }
          main.privacy > header .container nav.breadcrumb ol li a {
            transition: all ease .3s; }
            @media (hover: hover) and (pointer: fine) {
              main.privacy > header .container nav.breadcrumb ol li a:hover {
                opacity: .5; } }
    main.privacy > header .container hgroup > p.privacy-title-en {
      font-size: 80px;
      white-space: nowrap; }
      @media screen and (max-width: 1023px) {
        main.privacy > header .container hgroup > p.privacy-title-en {
          font-size: clamp(45px, 7.7vw, 60px); } }
  main.privacy section.privacy-policy {
    background-color: #fff;
    border-radius: 80px 80px 0 0;
    padding: 130px 0 150px; }
    @media screen and (max-width: 1023px) {
      main.privacy section.privacy-policy {
        border-radius: 30px 30px 0 0;
        padding: 60px 0 75px; } }
    main.privacy section.privacy-policy > .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto;
      max-width: 1040px; }
      @media screen and (max-width: 1023px) {
        main.privacy section.privacy-policy > .container {
          width: calc(350 / 390 * 100vw); } }
  main.privacy .privacy-policy__introduction {
    font-size: 16px;
    font-weight: 500;
    line-height: 2.1;
    letter-spacing: .04em;
    margin-bottom: 75px; }
    @media screen and (max-width: 1023px) {
      main.privacy .privacy-policy__introduction {
        font-size: 14px;
        line-height: 1.95;
        margin-bottom: 45px; } }
  main.privacy .privacy-policy__list > li {
    padding: 0 0 50px;
    margin-bottom: 50px;
    border-bottom: 1px solid #d3d4de; }
    @media screen and (max-width: 1023px) {
      main.privacy .privacy-policy__list > li {
        padding-bottom: 32px;
        margin-bottom: 32px; } }
    main.privacy .privacy-policy__list > li:last-child {
      padding-bottom: 0;
      margin-bottom: 0;
      border-bottom: 0; }
    main.privacy .privacy-policy__list > li h2 {
      display: flex;
      align-items: baseline;
      gap: 12px;
      font-size: 23px;
      font-weight: bold;
      line-height: 1.55;
      letter-spacing: .05em;
      color: #1b4a7d;
      margin-bottom: 18px; }
      @media screen and (max-width: 1023px) {
        main.privacy .privacy-policy__list > li h2 {
          gap: 8px;
          font-size: 19px;
          line-height: 1.5;
          margin-bottom: 14px; } }
      main.privacy .privacy-policy__list > li h2 span {
        font-family: "Outfit", "Noto Sans JP", sans-serif;
        font-size: 18px;
        font-weight: 600;
        color: #1b4a7d;
        flex-shrink: 0; }
        @media screen and (max-width: 1023px) {
          main.privacy .privacy-policy__list > li h2 span {
            font-size: 16px; } }
    main.privacy .privacy-policy__list > li p {
      font-size: 15px;
      font-weight: 500;
      line-height: 2;
      letter-spacing: .04em; }
      @media screen and (max-width: 1023px) {
        main.privacy .privacy-policy__list > li p {
          font-size: 14px;
          line-height: 1.9; } }
  main.privacy .privacy-policy__purpose-list {
    margin-top: 18px;
    padding: 22px 28px;
    border-radius: 12px;
    background-color: #eef3f8; }
    @media screen and (max-width: 1023px) {
      main.privacy .privacy-policy__purpose-list {
        margin-top: 14px;
        padding: 18px 18px;
        border-radius: 10px; } }
    main.privacy .privacy-policy__purpose-list li {
      position: relative;
      font-size: 15px;
      font-weight: 500;
      line-height: 2;
      letter-spacing: .04em;
      padding-left: 20px; }
      @media screen and (max-width: 1023px) {
        main.privacy .privacy-policy__purpose-list li {
          font-size: 14px;
          line-height: 1.9;
          padding-left: 17px; } }
      main.privacy .privacy-policy__purpose-list li:before {
        content: "";
        display: block;
        position: absolute;
        left: 0;
        top: 12px;
        width: 7px;
        height: 7px;
        border-radius: 50%;
        background-color: #1b4a7d; }
        @media screen and (max-width: 1023px) {
          main.privacy .privacy-policy__purpose-list li:before {
            top: 10px;
            width: 6px;
            height: 6px; } }
  main.privacy .privacy-policy__contact {
    font-style: normal;
    margin-top: 25px;
    padding: 30px 35px;
    border-left: 4px solid #1b4a7d;
    background-color: #f7f9fb; }
    @media screen and (max-width: 1023px) {
      main.privacy .privacy-policy__contact {
        margin-top: 20px;
        padding: 22px 20px; } }
    main.privacy .privacy-policy__contact p + p {
      margin-top: 2px; }
  main.privacy .privacy-policy__company {
    font-size: 17px !important;
    font-weight: bold !important;
    color: #1b4a7d;
    margin-bottom: 6px; }
    @media screen and (max-width: 1023px) {
      main.privacy .privacy-policy__company {
        font-size: 15px !important; } }

main.project {
  position: relative;
  z-index: 1;
  padding-top: 100px; }
  @media screen and (max-width: 1023px) {
    main.project {
      padding-top: 65px; } }
  main.project:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
    min-height: 1200px;
    display: block;
    background-image: url("../images/common/bg.jpg");
    background-size: cover;
    background-position: 50% 50%; }
  main.project > header {
    height: 390px; }
    @media screen and (max-width: 1023px) {
      main.project > header {
        height: 205px; } }
    main.project > header .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto;
      position: relative;
      padding-top: 136px; }
      @media screen and (max-width: 1023px) {
        main.project > header .container {
          width: calc(350 / 390 * 100vw); } }
      @media screen and (max-width: 1023px) {
        main.project > header .container {
          padding-top: 71px; } }
      main.project > header .container hgroup > *:nth-child(1) {
        font-family: "Outfit", "Noto Sans JP", sans-serif;
        position: relative;
        z-index: 1;
        font-size: 90px;
        font-weight: 600;
        color: #fff;
        margin-bottom: 16px; }
        @media screen and (max-width: 1023px) {
          main.project > header .container hgroup > *:nth-child(1) {
            font-size: 60px;
            margin-bottom: 4px; } }
        main.project > header .container hgroup > *:nth-child(1):before {
          content: "";
          display: block;
          width: 43px;
          height: 43px;
          background-color: #b78f39;
          border-radius: 9999px;
          position: absolute;
          z-index: -1;
          left: -12px;
          top: -5px; }
          @media screen and (max-width: 1023px) {
            main.project > header .container hgroup > *:nth-child(1):before {
              width: 35px;
              height: 35px; } }
      main.project > header .container hgroup > *:nth-child(2) {
        font-size: 20px;
        font-weight: bold;
        letter-spacing: .1em;
        color: #fff; }
        @media screen and (max-width: 1023px) {
          main.project > header .container hgroup > *:nth-child(2) {
            font-size: 15px; } }
      main.project > header .container nav.breadcrumb {
        position: absolute;
        top: 24px;
        left: 0;
        right: 0; }
        @media screen and (max-width: 1023px) {
          main.project > header .container nav.breadcrumb {
            top: 12px; } }
        main.project > header .container nav.breadcrumb ol li {
          display: inline;
          font-size: 13px;
          font-weight: 500;
          color: #fff; }
          @media screen and (max-width: 1023px) {
            main.project > header .container nav.breadcrumb ol li {
              font-size: 11px; } }
          main.project > header .container nav.breadcrumb ol li:after {
            content: "\00a0／\00a0"; }
          main.project > header .container nav.breadcrumb ol li:last-child:after {
            display: none; }
          main.project > header .container nav.breadcrumb ol li a {
            transition: all ease .3s; }
            @media (hover: hover) and (pointer: fine) {
              main.project > header .container nav.breadcrumb ol li a:hover {
                opacity: .5; } }
  main.project section.archive {
    padding: 120px 0 140px;
    background-color: #fff;
    border-radius: 80px 80px 0 0; }
    @media screen and (max-width: 1023px) {
      main.project section.archive {
        padding: 60px 0 70px;
        border-radius: 30px 30px 0 0; } }
    main.project section.archive .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto; }
      @media screen and (max-width: 1023px) {
        main.project section.archive .container {
          width: calc(350 / 390 * 100vw); } }
    main.project section.archive .table-panel {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch; }
      main.project section.archive .table-panel table {
        width: 100%;
        min-width: 1000px;
        table-layout: fixed; }
        @media screen and (max-width: 1023px) {
          main.project section.archive .table-panel table {
            min-width: 900px; } }
        main.project section.archive .table-panel table col.date {
          width: 10%; }
        main.project section.archive .table-panel table col.name {
          width: 35%; }
        main.project section.archive .table-panel table col.type {
          width: 21%; }
        main.project section.archive .table-panel table col.client,
        main.project section.archive .table-panel table col.location {
          width: 18%; }
        main.project section.archive .table-panel table th,
        main.project section.archive .table-panel table td {
          padding: 20px 18px;
          border: 1px solid #cfd4de;
          font-size: 16px;
          line-height: 26px;
          font-weight: 500;
          letter-spacing: .03em;
          vertical-align: middle; }
          @media screen and (max-width: 1023px) {
            main.project section.archive .table-panel table th,
            main.project section.archive .table-panel table td {
              padding: 16px 14px;
              font-size: 14px;
              line-height: 22px; } }
        main.project section.archive .table-panel table th {
          background-color: #eef3f8;
          font-weight: bold;
          color: #1b4a7d;
          text-align: center; }
        main.project section.archive .table-panel table td {
          text-align: center; }
          main.project section.archive .table-panel table td:nth-child(1) {
            text-align: left; }
    main.project section.archive nav.pagination {
      margin-top: 90px; }
      main.project section.archive nav.pagination .nav-links {
        display: flex;
        justify-content: center;
        gap: 10px; }
        @media screen and (max-width: 768px) {
          main.project section.archive nav.pagination .nav-links {
            gap: 8px; } }
        main.project section.archive nav.pagination .nav-links .page-numbers {
          font-family: "Outfit", "Noto Sans JP", sans-serif;
          display: flex;
          justify-content: center;
          align-items: center;
          font-size: 25px;
          font-weight: 600;
          width: 60px;
          height: 60px;
          border-radius: 5px;
          border: 1px solid #1b4a7d;
          color: #1b4a7d;
          transition: all ease .3s; }
          @media screen and (max-width: 768px) {
            main.project section.archive nav.pagination .nav-links .page-numbers {
              width: 40px;
              height: 40px;
              border-radius: 4px;
              font-size: 16px; } }
          main.project section.archive nav.pagination .nav-links .page-numbers.current {
            background-color: #1b4a7d;
            color: #fff; }
          @media (hover: hover) and (pointer: fine) {
            main.project section.archive nav.pagination .nav-links .page-numbers:not(.dots):hover {
              background-color: #1b4a7d;
              color: #fff; } }
          main.project section.archive nav.pagination .nav-links .page-numbers.prev {
            display: none; }
          main.project section.archive nav.pagination .nav-links .page-numbers.next {
            display: none; }
          main.project section.archive nav.pagination .nav-links .page-numbers.dots {
            border: none;
            width: 30px; }
            @media screen and (max-width: 1023px) {
              main.project section.archive nav.pagination .nav-links .page-numbers.dots {
                width: 24px; } }
      @media screen and (max-width: 1023px) {
        main.project section.archive nav.pagination {
          margin-top: 50px; } }

main.project-record {
  position: relative;
  z-index: 1;
  padding-top: 100px; }
  @media screen and (max-width: 1023px) {
    main.project-record {
      padding-top: 65px; } }
  main.project-record:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
    min-height: 1200px;
    display: block;
    background-image: url("../images/common/bg.jpg");
    background-size: cover;
    background-position: 50% 50%; }
  main.project-record > header {
    height: 390px; }
    @media screen and (max-width: 1023px) {
      main.project-record > header {
        height: 205px; } }
    main.project-record > header .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto;
      position: relative;
      padding-top: 136px; }
      @media screen and (max-width: 1023px) {
        main.project-record > header .container {
          width: calc(350 / 390 * 100vw); } }
      @media screen and (max-width: 1023px) {
        main.project-record > header .container {
          padding-top: 71px; } }
      main.project-record > header .container hgroup > *:nth-child(1) {
        font-family: "Outfit", "Noto Sans JP", sans-serif;
        position: relative;
        z-index: 1;
        font-size: 90px;
        font-weight: 600;
        color: #fff;
        margin-bottom: 16px; }
        @media screen and (max-width: 1023px) {
          main.project-record > header .container hgroup > *:nth-child(1) {
            font-size: 60px;
            margin-bottom: 4px; } }
        main.project-record > header .container hgroup > *:nth-child(1):before {
          content: "";
          display: block;
          width: 43px;
          height: 43px;
          background-color: #b78f39;
          border-radius: 9999px;
          position: absolute;
          z-index: -1;
          left: -12px;
          top: -5px; }
          @media screen and (max-width: 1023px) {
            main.project-record > header .container hgroup > *:nth-child(1):before {
              width: 35px;
              height: 35px; } }
      main.project-record > header .container hgroup > *:nth-child(2) {
        font-size: 20px;
        font-weight: bold;
        letter-spacing: .1em;
        color: #fff; }
        @media screen and (max-width: 1023px) {
          main.project-record > header .container hgroup > *:nth-child(2) {
            font-size: 15px; } }
      main.project-record > header .container nav.breadcrumb {
        position: absolute;
        top: 24px;
        left: 0;
        right: 0; }
        @media screen and (max-width: 1023px) {
          main.project-record > header .container nav.breadcrumb {
            top: 12px; } }
        main.project-record > header .container nav.breadcrumb ol li {
          display: inline;
          font-size: 13px;
          font-weight: 500;
          color: #fff; }
          @media screen and (max-width: 1023px) {
            main.project-record > header .container nav.breadcrumb ol li {
              font-size: 11px; } }
          main.project-record > header .container nav.breadcrumb ol li:after {
            content: "\00a0／\00a0"; }
          main.project-record > header .container nav.breadcrumb ol li:last-child:after {
            display: none; }
          main.project-record > header .container nav.breadcrumb ol li a {
            transition: all ease .3s; }
            @media (hover: hover) and (pointer: fine) {
              main.project-record > header .container nav.breadcrumb ol li a:hover {
                opacity: .5; } }
  main.project-record section.record {
    padding: 130px 0 140px;
    background-color: #fff;
    border-radius: 80px; }
    @media screen and (max-width: 1023px) {
      main.project-record section.record {
        padding: 60px 0 70px;
        border-radius: 30px; } }
    main.project-record section.record .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto; }
      @media screen and (max-width: 1023px) {
        main.project-record section.record .container {
          width: calc(350 / 390 * 100vw); } }
      main.project-record section.record .container nav.category {
        padding: 40px;
        border-radius: 20px;
        background-color: #eef3f8;
        margin-bottom: 76px; }
        @media screen and (max-width: 1023px) {
          main.project-record section.record .container nav.category {
            padding: 20px;
            border-radius: 15px;
            margin-bottom: 40px; } }
        main.project-record section.record .container nav.category ul {
          display: flex;
          flex-wrap: wrap;
          gap: 16px; }
          main.project-record section.record .container nav.category ul li {
            flex: 0 0 calc((100% - 16px * 3) / 4); }
            @media screen and (max-width: 1023px) {
              main.project-record section.record .container nav.category ul li {
                flex: 0 0 calc((100% - 16px * 1) / 2); } }
            main.project-record section.record .container nav.category ul li a {
              display: flex;
              justify-content: center;
              align-items: center;
              font-size: 16px;
              height: 65px;
              font-weight: bold;
              letter-spacing: .06em;
              background-color: #fff;
              color: #1b4a7d;
              border-radius: 9999px;
              transition: all ease .3s; }
              @media screen and (max-width: 1023px) {
                main.project-record section.record .container nav.category ul li a {
                  height: 44px;
                  font-size: 14px; } }
              main.project-record section.record .container nav.category ul li a.active {
                background-color: #1b4a7d;
                color: #fff; }
              @media (hover: hover) and (pointer: fine) {
                main.project-record section.record .container nav.category ul li a:hover {
                  background-color: #1b4a7d;
                  color: #fff; } }
      main.project-record section.record .container > ul {
        display: flex;
        flex-wrap: wrap;
        gap: 60px 40px; }
        @media screen and (max-width: 1023px) {
          main.project-record section.record .container > ul {
            gap: 40px; } }
        main.project-record section.record .container > ul li {
          flex: 0 0 calc((100% - 40px * 2) / 3); }
          @media screen and (max-width: 1023px) {
            main.project-record section.record .container > ul li {
              flex: 0 0 100%; } }
          main.project-record section.record .container > ul li figure {
            border-radius: 20px;
            overflow: hidden;
            margin-bottom: 25px; }
            @media screen and (max-width: 1023px) {
              main.project-record section.record .container > ul li figure {
                border-radius: 15px;
                margin-bottom: 20px; } }
          main.project-record section.record .container > ul li .title {
            font-size: 18px;
            font-weight: bold;
            letter-spacing: .05em;
            margin-bottom: 25px; }
            @media screen and (max-width: 1023px) {
              main.project-record section.record .container > ul li .title {
                font-size: 17px;
                margin-bottom: 20px; } }
          main.project-record section.record .container > ul li .label {
            font-size: 14px;
            line-height: 30px;
            font-weight: bold;
            letter-spacing: .05em;
            color: #fff;
            background-color: #1b4a7d;
            width: fit-content;
            padding: 0 16px;
            border-radius: 9999px;
            margin-bottom: 15px; }
            @media screen and (max-width: 1023px) {
              main.project-record section.record .container > ul li .label {
                font-size: 12px;
                padding: 0 15px;
                line-height: 25px;
                margin-bottom: 13px; } }
          main.project-record section.record .container > ul li .meta {
            font-size: 14px;
            font-weight: bold;
            letter-spacing: .05em;
            color: #a6a7ad; }
            @media screen and (max-width: 1023px) {
              main.project-record section.record .container > ul li .meta {
                font-size: 12px; } }
        main.project-record section.record .container > ul figure {
          position: relative;
          background-color: #1b4a7d; }
          main.project-record section.record .container > ul figure img {
            transition: all ease .3s; }
          main.project-record section.record .container > ul figure:before {
            content: "";
            display: block;
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            -webkit-mask-image: url("../images/common/icon_zoom.svg");
            mask-image: url("../images/common/icon_zoom.svg");
            -webkit-mask-size: 100% 100%;
            mask-size: 100% 100%;
            width: 75px;
            height: 75px;
            background-color: #fff;
            opacity: 0;
            z-index: 1;
            transition: all ease .3s; }
          @media (hover: hover) and (pointer: fine) {
            main.project-record section.record .container > ul figure:hover img {
              opacity: .7; }
            main.project-record section.record .container > ul figure:hover:before {
              opacity: 1; } }
      main.project-record section.record .container nav.pagination {
        margin-top: 110px; }
        main.project-record section.record .container nav.pagination .nav-links {
          display: flex;
          justify-content: center;
          gap: 10px; }
          @media screen and (max-width: 768px) {
            main.project-record section.record .container nav.pagination .nav-links {
              gap: 8px; } }
          main.project-record section.record .container nav.pagination .nav-links .page-numbers {
            font-family: "Outfit", "Noto Sans JP", sans-serif;
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 25px;
            font-weight: 600;
            width: 60px;
            height: 60px;
            border-radius: 5px;
            border: 1px solid #1b4a7d;
            color: #1b4a7d;
            transition: all ease .3s; }
            @media screen and (max-width: 768px) {
              main.project-record section.record .container nav.pagination .nav-links .page-numbers {
                width: 40px;
                height: 40px;
                border-radius: 4px;
                font-size: 16px; } }
            main.project-record section.record .container nav.pagination .nav-links .page-numbers.current {
              background-color: #1b4a7d;
              color: #fff; }
            @media (hover: hover) and (pointer: fine) {
              main.project-record section.record .container nav.pagination .nav-links .page-numbers:not(.dots):hover {
                background-color: #1b4a7d;
                color: #fff; } }
            main.project-record section.record .container nav.pagination .nav-links .page-numbers.prev {
              display: none; }
            main.project-record section.record .container nav.pagination .nav-links .page-numbers.next {
              display: none; }
            main.project-record section.record .container nav.pagination .nav-links .page-numbers.dots {
              border: none;
              width: 30px; }
              @media screen and (max-width: 1023px) {
                main.project-record section.record .container nav.pagination .nav-links .page-numbers.dots {
                  width: 24px; } }
        @media screen and (max-width: 1023px) {
          main.project-record section.record .container nav.pagination {
            margin-top: 55px; } }

main.project-document {
  position: relative;
  z-index: 1;
  padding-top: 100px; }
  @media screen and (max-width: 1023px) {
    main.project-document {
      padding-top: 65px; } }
  main.project-document:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
    min-height: 1200px;
    display: block;
    background-image: url("../images/common/bg.jpg");
    background-size: cover;
    background-position: 50% 50%; }
  main.project-document > header {
    height: 390px; }
    @media screen and (max-width: 1023px) {
      main.project-document > header {
        height: 205px; } }
    main.project-document > header .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto;
      position: relative;
      padding-top: 136px; }
      @media screen and (max-width: 1023px) {
        main.project-document > header .container {
          width: calc(350 / 390 * 100vw); } }
      @media screen and (max-width: 1023px) {
        main.project-document > header .container {
          padding-top: 71px; } }
      main.project-document > header .container hgroup > *:nth-child(1) {
        font-family: "Outfit", "Noto Sans JP", sans-serif;
        position: relative;
        z-index: 1;
        font-size: 90px;
        font-weight: 600;
        color: #fff;
        margin-bottom: 16px; }
        @media screen and (max-width: 1023px) {
          main.project-document > header .container hgroup > *:nth-child(1) {
            font-size: 60px;
            margin-bottom: 4px; } }
        main.project-document > header .container hgroup > *:nth-child(1):before {
          content: "";
          display: block;
          width: 43px;
          height: 43px;
          background-color: #b78f39;
          border-radius: 9999px;
          position: absolute;
          z-index: -1;
          left: -12px;
          top: -5px; }
          @media screen and (max-width: 1023px) {
            main.project-document > header .container hgroup > *:nth-child(1):before {
              width: 35px;
              height: 35px; } }
      main.project-document > header .container hgroup > *:nth-child(2) {
        font-size: 20px;
        font-weight: bold;
        letter-spacing: .1em;
        color: #fff; }
        @media screen and (max-width: 1023px) {
          main.project-document > header .container hgroup > *:nth-child(2) {
            font-size: 15px; } }
      main.project-document > header .container nav.breadcrumb {
        position: absolute;
        top: 24px;
        left: 0;
        right: 0; }
        @media screen and (max-width: 1023px) {
          main.project-document > header .container nav.breadcrumb {
            top: 12px; } }
        main.project-document > header .container nav.breadcrumb ol li {
          display: inline;
          font-size: 13px;
          font-weight: 500;
          color: #fff; }
          @media screen and (max-width: 1023px) {
            main.project-document > header .container nav.breadcrumb ol li {
              font-size: 11px; } }
          main.project-document > header .container nav.breadcrumb ol li:after {
            content: "\00a0／\00a0"; }
          main.project-document > header .container nav.breadcrumb ol li:last-child:after {
            display: none; }
          main.project-document > header .container nav.breadcrumb ol li a {
            transition: all ease .3s; }
            @media (hover: hover) and (pointer: fine) {
              main.project-document > header .container nav.breadcrumb ol li a:hover {
                opacity: .5; } }
  main.project-document section.document {
    padding: 130px 0 140px;
    background-color: #fff;
    border-radius: 80px; }
    @media screen and (max-width: 1023px) {
      main.project-document section.document {
        border-radius: 30px;
        padding: 60px 0 70px; } }
    main.project-document section.document .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto; }
      @media screen and (max-width: 1023px) {
        main.project-document section.document .container {
          width: calc(350 / 390 * 100vw); } }
      main.project-document section.document .container .wrapper {
        padding: 0 80px; }
        @media screen and (max-width: 1023px) {
          main.project-document section.document .container .wrapper {
            padding: 0 20px; } }
        @media screen and (max-width: 1023px) {
          main.project-document section.document .container .wrapper .panel {
            overflow: auto; } }
        main.project-document section.document .container .wrapper .panel table {
          width: 100%; }
          @media screen and (max-width: 768px) {
            main.project-document section.document .container .wrapper .panel table {
              width: 648px; } }
          main.project-document section.document .container .wrapper .panel table thead tr th {
            font-size: 16px;
            line-height: 24px;
            font-weight: bold;
            color: #1b4a7d;
            text-align: center;
            padding: 20px 20px;
            background-color: #eef3f8;
            border: 1px solid #cfd4de; }
            @media screen and (max-width: 1023px) {
              main.project-document section.document .container .wrapper .panel table thead tr th {
                font-size: 14px;
                line-height: 20px;
                padding: 16px 10px; } }
            main.project-document section.document .container .wrapper .panel table thead tr th:nth-child(1) {
              width: cacl(46.6964285714%); }
          main.project-document section.document .container .wrapper .panel table tbody tr td {
            font-size: 16px;
            line-height: 24px;
            font-weight: 500;
            text-align: center;
            padding: 20px 20px;
            border: 1px solid #cfd4de; }
            @media screen and (max-width: 1023px) {
              main.project-document section.document .container .wrapper .panel table tbody tr td {
                font-size: 14px;
                line-height: 20px;
                padding: 16px 10px; } }
            main.project-document section.document .container .wrapper .panel table tbody tr td:nth-child(1) {
              text-align: left; }
        main.project-document section.document .container .wrapper nav.pagination {
          margin-top: 110px; }
          main.project-document section.document .container .wrapper nav.pagination .nav-links {
            display: flex;
            justify-content: center;
            gap: 10px; }
            @media screen and (max-width: 768px) {
              main.project-document section.document .container .wrapper nav.pagination .nav-links {
                gap: 8px; } }
            main.project-document section.document .container .wrapper nav.pagination .nav-links .page-numbers {
              font-family: "Outfit", "Noto Sans JP", sans-serif;
              display: flex;
              justify-content: center;
              align-items: center;
              font-size: 25px;
              font-weight: 600;
              width: 60px;
              height: 60px;
              border-radius: 5px;
              border: 1px solid #1b4a7d;
              color: #1b4a7d;
              transition: all ease .3s; }
              @media screen and (max-width: 768px) {
                main.project-document section.document .container .wrapper nav.pagination .nav-links .page-numbers {
                  width: 40px;
                  height: 40px;
                  border-radius: 4px;
                  font-size: 16px; } }
              main.project-document section.document .container .wrapper nav.pagination .nav-links .page-numbers.current {
                background-color: #1b4a7d;
                color: #fff; }
              @media (hover: hover) and (pointer: fine) {
                main.project-document section.document .container .wrapper nav.pagination .nav-links .page-numbers:not(.dots):hover {
                  background-color: #1b4a7d;
                  color: #fff; } }
              main.project-document section.document .container .wrapper nav.pagination .nav-links .page-numbers.prev {
                display: none; }
              main.project-document section.document .container .wrapper nav.pagination .nav-links .page-numbers.next {
                display: none; }
              main.project-document section.document .container .wrapper nav.pagination .nav-links .page-numbers.dots {
                border: none;
                width: 30px; }
                @media screen and (max-width: 1023px) {
                  main.project-document section.document .container .wrapper nav.pagination .nav-links .page-numbers.dots {
                    width: 24px; } }
          @media screen and (max-width: 1023px) {
            main.project-document section.document .container .wrapper nav.pagination {
              margin-top: 40px; } }

/* 安全への取り組み */
main.efforts {
  position: relative;
  z-index: 1;
  padding-top: 100px; }
  @media screen and (max-width: 1023px) {
    main.efforts {
      padding-top: 65px; } }
  main.efforts:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
    min-height: 1200px;
    display: block;
    background-image: url("../images/common/bg.jpg");
    background-size: cover;
    background-position: 50% 50%; }
  main.efforts > header {
    height: 390px; }
    @media screen and (max-width: 1023px) {
      main.efforts > header {
        height: 205px; } }
    main.efforts > header .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto;
      position: relative;
      padding-top: 136px; }
      @media screen and (max-width: 1023px) {
        main.efforts > header .container {
          width: calc(350 / 390 * 100vw); } }
      @media screen and (max-width: 1023px) {
        main.efforts > header .container {
          padding-top: 71px; } }
      main.efforts > header .container hgroup > *:nth-child(1) {
        font-family: "Outfit", "Noto Sans JP", sans-serif;
        position: relative;
        z-index: 1;
        font-size: 90px;
        font-weight: 600;
        color: #fff;
        margin-bottom: 16px; }
        @media screen and (max-width: 1023px) {
          main.efforts > header .container hgroup > *:nth-child(1) {
            font-size: 60px;
            margin-bottom: 4px; } }
        main.efforts > header .container hgroup > *:nth-child(1):before {
          content: "";
          display: block;
          width: 43px;
          height: 43px;
          background-color: #b78f39;
          border-radius: 9999px;
          position: absolute;
          z-index: -1;
          left: -12px;
          top: -5px; }
          @media screen and (max-width: 1023px) {
            main.efforts > header .container hgroup > *:nth-child(1):before {
              width: 35px;
              height: 35px; } }
      main.efforts > header .container hgroup > *:nth-child(2) {
        font-size: 20px;
        font-weight: bold;
        letter-spacing: .1em;
        color: #fff; }
        @media screen and (max-width: 1023px) {
          main.efforts > header .container hgroup > *:nth-child(2) {
            font-size: 15px; } }
      main.efforts > header .container nav.breadcrumb {
        position: absolute;
        top: 24px;
        left: 0;
        right: 0; }
        @media screen and (max-width: 1023px) {
          main.efforts > header .container nav.breadcrumb {
            top: 12px; } }
        main.efforts > header .container nav.breadcrumb ol li {
          display: inline;
          font-size: 13px;
          font-weight: 500;
          color: #fff; }
          @media screen and (max-width: 1023px) {
            main.efforts > header .container nav.breadcrumb ol li {
              font-size: 11px; } }
          main.efforts > header .container nav.breadcrumb ol li:after {
            content: "\00a0／\00a0"; }
          main.efforts > header .container nav.breadcrumb ol li:last-child:after {
            display: none; }
          main.efforts > header .container nav.breadcrumb ol li a {
            transition: all ease .3s; }
            @media (hover: hover) and (pointer: fine) {
              main.efforts > header .container nav.breadcrumb ol li a:hover {
                opacity: .5; } }
  main.efforts section.initiatives {
    padding: 120px 0 140px;
    border-radius: 80px 80px 0 0;
    background-color: #fff; }
    @media screen and (max-width: 1023px) {
      main.efforts section.initiatives {
        padding: 60px 0 75px;
        border-radius: 30px 30px 0 0; } }
    main.efforts section.initiatives .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto; }
      @media screen and (max-width: 1023px) {
        main.efforts section.initiatives .container {
          width: calc(350 / 390 * 100vw); } }
    main.efforts section.initiatives .introduction {
      max-width: 940px;
      margin: 0 auto 120px;
      text-align: center; }
      @media screen and (max-width: 1023px) {
        main.efforts section.initiatives .introduction {
          margin-bottom: 65px; } }
      main.efforts section.initiatives .introduction h2 {
        font-size: 38px;
        font-weight: bold;
        line-height: 1.55;
        letter-spacing: .07em;
        color: #1b4a7d;
        margin-bottom: 35px; }
        @media screen and (max-width: 1023px) {
          main.efforts section.initiatives .introduction h2 {
            font-size: 26px;
            line-height: 1.5;
            margin-bottom: 25px; } }
      @media screen and (max-width: 1023px) {
        main.efforts section.initiatives .introduction .text {
          text-align: left; } }
      main.efforts section.initiatives .introduction .text > p {
        font-size: 16px;
        line-height: 32px;
        font-weight: 500;
        letter-spacing: .04em; }
        @media screen and (max-width: 1023px) {
          main.efforts section.initiatives .introduction .text > p {
            font-size: 14px;
            line-height: 27px; } }
      main.efforts section.initiatives .introduction .text .conclusion {
        font-size: 27px;
        line-height: 1.8;
        font-weight: bold;
        color: #1b4a7d;
        margin-top: 25px; }
        @media screen and (max-width: 1023px) {
          main.efforts section.initiatives .introduction .text .conclusion {
            font-size: 20px;
            line-height: 1.7;
            margin-top: 20px; } }
    main.efforts section.initiatives .initiative-list {
      display: grid;
      gap: 110px; }
      @media screen and (max-width: 1023px) {
        main.efforts section.initiatives .initiative-list {
          gap: 65px; } }
      main.efforts section.initiatives .initiative-list > li {
        display: grid;
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
        gap: calc(70 / 1280 * 100%);
        align-items: center; }
        @media screen and (max-width: 1023px) {
          main.efforts section.initiatives .initiative-list > li {
            grid-template-columns: minmax(0, 1fr);
            gap: 25px; } }
        main.efforts section.initiatives .initiative-list > li:nth-child(even) {
          grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
          @media screen and (max-width: 1023px) {
            main.efforts section.initiatives .initiative-list > li:nth-child(even) {
              grid-template-columns: minmax(0, 1fr); } }
          main.efforts section.initiatives .initiative-list > li:nth-child(even) .image {
            order: 2; }
            @media screen and (max-width: 1023px) {
              main.efforts section.initiatives .initiative-list > li:nth-child(even) .image {
                order: 0; } }
      main.efforts section.initiatives .initiative-list .image {
        display: flex;
        justify-content: center;
        align-items: center;
        aspect-ratio: 10 / 7;
        border-radius: 20px;
        overflow: hidden;
        background-color: #eef3f8; }
        @media screen and (max-width: 1023px) {
          main.efforts section.initiatives .initiative-list .image {
            border-radius: 15px; } }
        main.efforts section.initiatives .initiative-list .image span {
          font-family: "Outfit", "Noto Sans JP", sans-serif;
          font-size: 17px;
          font-weight: 600;
          letter-spacing: .15em;
          color: #a6a7ad; }
          @media screen and (max-width: 1023px) {
            main.efforts section.initiatives .initiative-list .image span {
              font-size: 14px; } }
        main.efforts section.initiatives .initiative-list .image img {
          display: block;
          width: 100%;
          height: 100%;
          object-fit: cover; }
      main.efforts section.initiatives .initiative-list .content .number {
        font-family: "Outfit", "Noto Sans JP", sans-serif;
        font-size: 58px;
        font-weight: 600;
        line-height: 1;
        letter-spacing: .02em;
        color: #1b4a7d;
        margin-bottom: 22px; }
        @media screen and (max-width: 1023px) {
          main.efforts section.initiatives .initiative-list .content .number {
            font-size: 44px;
            margin-bottom: 15px; } }
      main.efforts section.initiatives .initiative-list .content h3 {
        font-size: 28px;
        font-weight: bold;
        line-height: 1.55;
        letter-spacing: .05em;
        color: #1b4a7d;
        margin-bottom: 20px; }
        @media screen and (max-width: 1023px) {
          main.efforts section.initiatives .initiative-list .content h3 {
            font-size: 21px;
            line-height: 1.5;
            margin-bottom: 14px; } }
      main.efforts section.initiatives .initiative-list .content > p:not(.number) {
        font-size: 16px;
        line-height: 32px;
        font-weight: 500;
        letter-spacing: .04em; }
        @media screen and (max-width: 1023px) {
          main.efforts section.initiatives .initiative-list .content > p:not(.number) {
            font-size: 14px;
            line-height: 27px; } }

/* CSS Document */
main.recruit-interview {
  position: relative;
  z-index: 1;
  padding-top: 100px; }
  @media screen and (max-width: 1023px) {
    main.recruit-interview {
      padding-top: 65px; } }
  main.recruit-interview:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
    min-height: 1200px;
    display: block;
    background-image: url("../images/common/bg.jpg");
    background-size: cover;
    background-position: 50% 50%; }
  main.recruit-interview > header {
    height: 390px; }
    @media screen and (max-width: 1023px) {
      main.recruit-interview > header {
        height: 205px; } }
    main.recruit-interview > header .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto;
      position: relative;
      padding-top: 136px; }
      @media screen and (max-width: 1023px) {
        main.recruit-interview > header .container {
          width: calc(350 / 390 * 100vw); } }
      @media screen and (max-width: 1023px) {
        main.recruit-interview > header .container {
          padding-top: 71px; } }
      main.recruit-interview > header .container hgroup > *:nth-child(1) {
        font-family: "Outfit", "Noto Sans JP", sans-serif;
        position: relative;
        z-index: 1;
        font-size: 90px;
        font-weight: 600;
        color: #fff;
        margin-bottom: 16px; }
        @media screen and (max-width: 1023px) {
          main.recruit-interview > header .container hgroup > *:nth-child(1) {
            font-size: 60px;
            margin-bottom: 4px; } }
        main.recruit-interview > header .container hgroup > *:nth-child(1):before {
          content: "";
          display: block;
          width: 43px;
          height: 43px;
          background-color: #b78f39;
          border-radius: 9999px;
          position: absolute;
          z-index: -1;
          left: -12px;
          top: -5px; }
          @media screen and (max-width: 1023px) {
            main.recruit-interview > header .container hgroup > *:nth-child(1):before {
              width: 35px;
              height: 35px; } }
      main.recruit-interview > header .container hgroup > *:nth-child(2) {
        font-size: 20px;
        font-weight: bold;
        letter-spacing: .1em;
        color: #fff; }
        @media screen and (max-width: 1023px) {
          main.recruit-interview > header .container hgroup > *:nth-child(2) {
            font-size: 15px; } }
      main.recruit-interview > header .container nav.breadcrumb {
        position: absolute;
        top: 24px;
        left: 0;
        right: 0; }
        @media screen and (max-width: 1023px) {
          main.recruit-interview > header .container nav.breadcrumb {
            top: 12px; } }
        main.recruit-interview > header .container nav.breadcrumb ol li {
          display: inline;
          font-size: 13px;
          font-weight: 500;
          color: #fff; }
          @media screen and (max-width: 1023px) {
            main.recruit-interview > header .container nav.breadcrumb ol li {
              font-size: 11px; } }
          main.recruit-interview > header .container nav.breadcrumb ol li:after {
            content: "\00a0／\00a0"; }
          main.recruit-interview > header .container nav.breadcrumb ol li:last-child:after {
            display: none; }
          main.recruit-interview > header .container nav.breadcrumb ol li a {
            transition: all ease .3s; }
            @media (hover: hover) and (pointer: fine) {
              main.recruit-interview > header .container nav.breadcrumb ol li a:hover {
                opacity: .5; } }
  main.recruit-interview section.interview {
    padding: 140px 0 135px;
    border-radius: 80px;
    background-color: #fff; }
    @media screen and (max-width: 1023px) {
      main.recruit-interview section.interview {
        padding: 70px 0;
        border-radius: 30px; } }
    main.recruit-interview section.interview .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto; }
      @media screen and (max-width: 1023px) {
        main.recruit-interview section.interview .container {
          width: calc(350 / 390 * 100vw); } }
      main.recruit-interview section.interview .container ul {
        display: flex;
        flex-wrap: wrap;
        gap: 97px 60px; }
        @media screen and (max-width: 1023px) {
          main.recruit-interview section.interview .container ul {
            gap: 50px 0; } }
        main.recruit-interview section.interview .container ul li {
          flex: 0 0 calc((100% - 60px) / 2); }
          @media screen and (max-width: 1023px) {
            main.recruit-interview section.interview .container ul li {
              flex: 0 0 100%; } }
          main.recruit-interview section.interview .container ul li a {
            display: block; }
            main.recruit-interview section.interview .container ul li a figure {
              border-radius: 20px;
              overflow: hidden;
              margin-bottom: 26px; }
              @media screen and (max-width: 1023px) {
                main.recruit-interview section.interview .container ul li a figure {
                  border-radius: 10px;
                  margin-bottom: 12px; } }
              main.recruit-interview section.interview .container ul li a figure img {
                transition: all ease .3s; }
            main.recruit-interview section.interview .container ul li a .title {
              font-size: 25px;
              line-height: 44px;
              font-weight: bold;
              letter-spacing: .07em;
              margin-bottom: 14px; }
              @media screen and (max-width: 1023px) {
                main.recruit-interview section.interview .container ul li a .title {
                  font-size: 20px;
                  line-height: 36px;
                  margin-bottom: 8px; } }
            main.recruit-interview section.interview .container ul li a .name {
              font-family: "Outfit", "Noto Sans JP", sans-serif;
              font-size: 40px;
              color: #1b4a7d;
              font-weight: 600;
              margin-bottom: 17px; }
              @media screen and (max-width: 1023px) {
                main.recruit-interview section.interview .container ul li a .name {
                  font-size: 32px;
                  margin-bottom: 8px; } }
            main.recruit-interview section.interview .container ul li a .meta {
              font-size: 14px;
              line-height: 24px;
              font-weight: bold;
              letter-spacing: .07em;
              color: #a6a7ad; }
              @media screen and (max-width: 1023px) {
                main.recruit-interview section.interview .container ul li a .meta {
                  font-size: 12px;
                  line-height: 20px; } }
            @media (hover: hover) and (pointer: fine) {
              main.recruit-interview section.interview .container ul li a:hover figure img {
                transform: scale(1.05); } }

/* 募集要項 */
main.recruit-requirements section.requirements {
  padding: 120px 0 140px;
  border-radius: 80px 80px 0 0;
  background-color: #fff; }
  @media screen and (max-width: 1023px) {
    main.recruit-requirements section.requirements {
      padding: 60px 0 75px;
      border-radius: 30px 30px 0 0; } }
  main.recruit-requirements section.requirements .container {
    width: calc(1280 / 1600 * 100vw);
    max-width: 1280px;
    margin: 0 auto; }
    @media screen and (max-width: 1023px) {
      main.recruit-requirements section.requirements .container {
        width: calc(350 / 390 * 100vw); } }
  main.recruit-requirements section.requirements .requirements-box {
    padding: 0; }
    @media screen and (max-width: 1023px) {
      main.recruit-requirements section.requirements .requirements-box {
        padding: 0; } }
  main.recruit-requirements section.requirements .type-tabs {
    padding: 0; }
    @media screen and (max-width: 1023px) {
      main.recruit-requirements section.requirements .type-tabs {
        padding: 0; } }
    main.recruit-requirements section.requirements .type-tabs ul {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 20px; }
      @media screen and (max-width: 1023px) {
        main.recruit-requirements section.requirements .type-tabs ul {
          gap: 8px; } }
      main.recruit-requirements section.requirements .type-tabs ul li a {
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
        height: 85px;
        border: 2px solid #1b4a7d;
        border-radius: 15px;
        background-color: #fff;
        font-size: 23px;
        font-weight: bold;
        letter-spacing: .06em;
        color: #1b4a7d;
        transition: all ease .3s; }
        @media screen and (max-width: 1023px) {
          main.recruit-requirements section.requirements .type-tabs ul li a {
            height: 60px;
            border-radius: 10px;
            font-size: 15px;
            letter-spacing: .03em; } }
        main.recruit-requirements section.requirements .type-tabs ul li a.active {
          z-index: 2;
          background-color: #1b4a7d;
          color: #fff; }
        main.recruit-requirements section.requirements .type-tabs ul li a:not(.active):after {
          content: "";
          position: absolute;
          right: 30px;
          top: 50%;
          width: 17px;
          height: calc(15px * 17 / 19);
          background-color: #1b4a7d;
          -webkit-mask-image: url("../images/common/icon_arrow.svg");
          mask-image: url("../images/common/icon_arrow.svg");
          -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
          transform: translateY(-50%); }
          @media screen and (max-width: 1023px) {
            main.recruit-requirements section.requirements .type-tabs ul li a:not(.active):after {
              right: 10px;
              width: 12px;
              height: calc(15px * 12 / 19); } }
        @media (hover: hover) and (pointer: fine) {
          main.recruit-requirements section.requirements .type-tabs ul li a:not(.active):hover {
            background-color: #1b4a7d;
            color: #fff; }
            main.recruit-requirements section.requirements .type-tabs ul li a:not(.active):hover:after {
              background-color: #fff; } }
  main.recruit-requirements section.requirements .requirement-content {
    position: relative;
    z-index: 1;
    margin-top: 60px;
    background-color: #fff; }
    @media screen and (max-width: 1023px) {
      main.recruit-requirements section.requirements .requirement-content {
        margin-top: 35px; } }
  main.recruit-requirements section.requirements .new-graduate .message {
    max-width: 950px;
    margin: 0 auto 65px; }
    @media screen and (max-width: 1023px) {
      main.recruit-requirements section.requirements .new-graduate .message {
        margin-bottom: 35px; } }
    main.recruit-requirements section.requirements .new-graduate .message p {
      font-size: 17px;
      line-height: 32px;
      font-weight: 500;
      letter-spacing: .04em; }
      @media screen and (max-width: 1023px) {
        main.recruit-requirements section.requirements .new-graduate .message p {
          font-size: 14px;
          line-height: 27px; } }
      main.recruit-requirements section.requirements .new-graduate .message p + p {
        margin-top: 8px; }
  main.recruit-requirements section.requirements .new-graduate .contact-box {
    max-width: 900px;
    margin: 0 auto;
    padding: 55px 40px 60px;
    border: 1px solid #cfd4de;
    text-align: center; }
    @media screen and (max-width: 1023px) {
      main.recruit-requirements section.requirements .new-graduate .contact-box {
        padding: 35px 15px 40px; } }
    main.recruit-requirements section.requirements .new-graduate .contact-box h2 {
      font-size: 23px;
      font-weight: bold;
      letter-spacing: .06em;
      color: #1b4a7d;
      margin-bottom: 30px; }
      @media screen and (max-width: 1023px) {
        main.recruit-requirements section.requirements .new-graduate .contact-box h2 {
          font-size: 19px;
          margin-bottom: 22px; } }
    main.recruit-requirements section.requirements .new-graduate .contact-box .address {
      font-size: 16px;
      line-height: 28px;
      letter-spacing: .03em;
      margin-bottom: 15px; }
      @media screen and (max-width: 1023px) {
        main.recruit-requirements section.requirements .new-graduate .contact-box .address {
          font-size: 13px;
          line-height: 24px; } }
    main.recruit-requirements section.requirements .new-graduate .contact-box .company {
      font-size: 17px;
      line-height: 28px;
      font-weight: bold;
      letter-spacing: .04em;
      margin-bottom: 18px; }
      @media screen and (max-width: 1023px) {
        main.recruit-requirements section.requirements .new-graduate .contact-box .company {
          font-size: 14px;
          line-height: 24px; } }
    main.recruit-requirements section.requirements .new-graduate .contact-box .tel {
      font-family: "Outfit", "Noto Sans JP", sans-serif;
      font-size: 48px;
      line-height: 1;
      font-weight: 600;
      letter-spacing: .01em;
      margin-bottom: 15px; }
      @media screen and (max-width: 1023px) {
        main.recruit-requirements section.requirements .new-graduate .contact-box .tel {
          font-size: 29px; } }
      main.recruit-requirements section.requirements .new-graduate .contact-box .tel a {
        color: #1b4a7d; }
    main.recruit-requirements section.requirements .new-graduate .contact-box .hours {
      font-size: 14px;
      line-height: 1.5;
      font-weight: 500;
      letter-spacing: .03em; }
      @media screen and (max-width: 1023px) {
        main.recruit-requirements section.requirements .new-graduate .contact-box .hours {
          font-size: 12px; } }
  main.recruit-requirements section.requirements .career dl {
    display: flex;
    flex-wrap: wrap;
    border-top: 1px solid #d3d4de; }
    @media screen and (max-width: 1023px) {
      main.recruit-requirements section.requirements .career dl {
        display: block; } }
    main.recruit-requirements section.requirements .career dl dt,
    main.recruit-requirements section.requirements .career dl dd {
      box-sizing: border-box;
      border-bottom: 1px solid #d3d4de;
      font-size: 16px;
      line-height: 30px;
      letter-spacing: .04em; }
    main.recruit-requirements section.requirements .career dl dt {
      flex: 0 0 270px;
      padding: 30px 25px;
      font-weight: bold; }
      @media screen and (max-width: 1023px) {
        main.recruit-requirements section.requirements .career dl dt {
          padding: 20px 0 5px;
          border-bottom: none;
          font-size: 14px;
          line-height: 26px; } }
    main.recruit-requirements section.requirements .career dl dd {
      flex: 0 0 calc(100% - 270px);
      padding: 30px 0;
      font-weight: 500; }
      @media screen and (max-width: 1023px) {
        main.recruit-requirements section.requirements .career dl dd {
          padding: 0 0 20px;
          font-size: 14px;
          line-height: 26px; } }

/* ぐんでんの魅力 */
main.recruit-appeal section.appeal {
  padding: 120px 0 130px;
  border-radius: 80px 80px 0 0;
  background-color: #fff; }
  @media screen and (max-width: 1023px) {
    main.recruit-appeal section.appeal {
      padding: 65px 0 80px;
      border-radius: 30px 30px 0 0; } }
  main.recruit-appeal section.appeal .container {
    width: calc(1280 / 1600 * 100vw);
    max-width: 1280px;
    margin: 0 auto; }
    @media screen and (max-width: 1023px) {
      main.recruit-appeal section.appeal .container {
        width: calc(350 / 390 * 100vw); } }
  main.recruit-appeal section.appeal .introduction {
    text-align: center;
    margin-bottom: 70px; }
    @media screen and (max-width: 1023px) {
      main.recruit-appeal section.appeal .introduction {
        margin-bottom: 45px; } }
    main.recruit-appeal section.appeal .introduction h2 {
      font-size: 38px;
      font-weight: bold;
      line-height: 1.55;
      letter-spacing: .07em;
      margin-bottom: 28px; }
      @media screen and (max-width: 1023px) {
        main.recruit-appeal section.appeal .introduction h2 {
          font-size: 26px;
          line-height: 1.5;
          margin-bottom: 20px; } }
      main.recruit-appeal section.appeal .introduction h2 .tablet {
        display: none; }
        @media screen and (max-width: 1023px) {
          main.recruit-appeal section.appeal .introduction h2 .tablet {
            display: inline; } }
    main.recruit-appeal section.appeal .introduction .lead {
      font-size: 27px;
      font-weight: bold;
      line-height: 1.7;
      letter-spacing: .08em;
      color: #1b4a7d; }
      @media screen and (max-width: 1023px) {
        main.recruit-appeal section.appeal .introduction .lead {
          font-size: 19px;
          line-height: 1.6; } }
  main.recruit-appeal section.appeal .appeal-list {
    max-width: 1120px;
    margin: 0 auto;
    display: grid;
    gap: 24px; }
    @media screen and (max-width: 1023px) {
      main.recruit-appeal section.appeal .appeal-list {
        gap: 18px; } }
    main.recruit-appeal section.appeal .appeal-list > li {
      display: grid;
      grid-template-columns: 160px minmax(0, 1fr);
      gap: 45px;
      align-items: start;
      padding: 52px 60px 55px;
      border-radius: 20px;
      background-color: #eef3f8; }
      @media screen and (max-width: 1023px) {
        main.recruit-appeal section.appeal .appeal-list > li {
          display: block;
          padding: 32px 25px 35px;
          border-radius: 15px; } }
    main.recruit-appeal section.appeal .appeal-list .appeal-visual {
      display: flex;
      flex-direction: column;
      align-items: flex-start; }
      @media screen and (max-width: 1023px) {
        main.recruit-appeal section.appeal .appeal-list .appeal-visual {
          flex-direction: row;
          justify-content: space-between;
          align-items: center;
          margin-bottom: 25px; } }
      main.recruit-appeal section.appeal .appeal-list .appeal-visual .image {
        position: relative;
        z-index: 1;
        width: 130px;
        height: 130px;
        margin: -35px 0 0 30px;
        border-radius: 50%;
        overflow: hidden;
        background-color: #fff; }
        @media screen and (max-width: 1023px) {
          main.recruit-appeal section.appeal .appeal-list .appeal-visual .image {
            width: 100px;
            height: 100px;
            margin: 0; } }
        main.recruit-appeal section.appeal .appeal-list .appeal-visual .image img {
          display: block;
          width: 100%;
          height: 100%;
          object-fit: cover; }
    main.recruit-appeal section.appeal .appeal-list .number {
      position: relative;
      z-index: 2;
      font-family: "Outfit", "Noto Sans JP", sans-serif;
      font-size: 68px;
      font-weight: 600;
      line-height: 1;
      letter-spacing: .02em;
      color: #1b4a7d; }
      @media screen and (max-width: 1023px) {
        main.recruit-appeal section.appeal .appeal-list .number {
          font-size: 48px; } }
      main.recruit-appeal section.appeal .appeal-list .number span {
        display: block;
        font-size: 13px;
        font-weight: 600;
        letter-spacing: .12em;
        color: #1b4a7d;
        margin-bottom: 10px; }
        @media screen and (max-width: 1023px) {
          main.recruit-appeal section.appeal .appeal-list .number span {
            font-size: 11px;
            margin-bottom: 7px; } }
    main.recruit-appeal section.appeal .appeal-list .content h3 {
      font-size: 27px;
      font-weight: bold;
      line-height: 1.65;
      letter-spacing: .05em;
      color: #1b4a7d;
      margin-bottom: 20px; }
      @media screen and (max-width: 1023px) {
        main.recruit-appeal section.appeal .appeal-list .content h3 {
          font-size: 20px;
          line-height: 1.55;
          margin-bottom: 14px; } }
      main.recruit-appeal section.appeal .appeal-list .content h3 span {
        display: block; }
    main.recruit-appeal section.appeal .appeal-list .content p {
      font-size: 16px;
      line-height: 32px;
      letter-spacing: .04em; }
      @media screen and (max-width: 1023px) {
        main.recruit-appeal section.appeal .appeal-list .content p {
          font-size: 14px;
          line-height: 27px; } }

/* 働く環境 */
@media screen and (max-width: 1023px) {
  main.recruit-environment > header .container hgroup > *:nth-child(1) {
    font-size: 53px; } }
main.recruit-environment section.environment {
  padding: 120px 0 130px;
  border-radius: 80px 80px 0 0;
  background-color: #fff; }
  @media screen and (max-width: 1023px) {
    main.recruit-environment section.environment {
      padding: 65px 0 80px;
      border-radius: 30px 30px 0 0; } }
  main.recruit-environment section.environment .container {
    width: calc(1280 / 1600 * 100vw);
    max-width: 1280px;
    margin: 0 auto; }
    @media screen and (max-width: 1023px) {
      main.recruit-environment section.environment .container {
        width: calc(350 / 390 * 100vw); } }
  main.recruit-environment section.environment .benefits {
    max-width: 1120px;
    margin: 0 auto; }
    main.recruit-environment section.environment .benefits h2 {
      font-size: 30px;
      font-weight: bold;
      letter-spacing: .08em;
      color: #1b4a7d;
      text-align: center;
      margin-bottom: 48px; }
      @media screen and (max-width: 1023px) {
        main.recruit-environment section.environment .benefits h2 {
          font-size: 26px;
          margin-bottom: 35px; } }
  main.recruit-environment section.environment .benefit-list {
    display: grid;
    justify-content: flex-start;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px; }
    @media screen and (max-width: 1023px) {
      main.recruit-environment section.environment .benefit-list {
        grid-template-columns: 1fr;
        gap: 20px; } }
    main.recruit-environment section.environment .benefit-list > li {
      display: flex;
      flex-direction: column;
      min-height: 365px;
      padding: 35px 28px 32px;
      border: 1px solid #d7e0e9;
      border-radius: 20px;
      background-color: #fff; }
      @media screen and (max-width: 1023px) {
        main.recruit-environment section.environment .benefit-list > li {
          min-height: 0;
          padding: 30px 24px 28px; } }
      main.recruit-environment section.environment .benefit-list > li figure {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 120px;
        height: 120px;
        margin: 0 auto 22px;
        border-radius: 50%;
        background-color: #eef3f8; }
        @media screen and (max-width: 1023px) {
          main.recruit-environment section.environment .benefit-list > li figure {
            width: 72px;
            height: 72px;
            margin-bottom: 18px; } }
        main.recruit-environment section.environment .benefit-list > li figure img {
          width: 80px;
          height: 80px; }
          @media screen and (max-width: 1023px) {
            main.recruit-environment section.environment .benefit-list > li figure img {
              width: 46px;
              height: 46px; } }
      main.recruit-environment section.environment .benefit-list > li h3 {
        font-size: 19px;
        font-weight: bold;
        line-height: 28px;
        letter-spacing: .05em;
        text-align: center;
        margin-bottom: 18px; }
        @media screen and (max-width: 1023px) {
          main.recruit-environment section.environment .benefit-list > li h3 {
            min-height: 0;
            font-size: 17px;
            line-height: 26px;
            margin-bottom: 14px; } }
      main.recruit-environment section.environment .benefit-list > li p {
        font-size: 16px;
        line-height: 27px;
        letter-spacing: .04em; }
        @media screen and (max-width: 1023px) {
          main.recruit-environment section.environment .benefit-list > li p {
            font-size: 14px;
            line-height: 26px; } }

main.recruit-interview-detail {
  position: relative;
  z-index: 1;
  padding-top: 100px; }
  @media screen and (max-width: 1023px) {
    main.recruit-interview-detail {
      padding-top: 65px; } }
  main.recruit-interview-detail:before {
    content: "";
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    right: 0;
    height: 100vh;
    min-height: 1200px;
    display: block;
    background-image: url("../images/common/bg.jpg");
    background-size: cover;
    background-position: 50% 50%; }
  main.recruit-interview-detail > header {
    height: 390px; }
    @media screen and (max-width: 1023px) {
      main.recruit-interview-detail > header {
        height: 205px; } }
    main.recruit-interview-detail > header .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto;
      position: relative;
      padding-top: 136px; }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail > header .container {
          width: calc(350 / 390 * 100vw); } }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail > header .container {
          padding-top: 71px; } }
      main.recruit-interview-detail > header .container hgroup > *:nth-child(1) {
        font-family: "Outfit", "Noto Sans JP", sans-serif;
        position: relative;
        z-index: 1;
        font-size: 90px;
        font-weight: 600;
        color: #fff;
        margin-bottom: 16px; }
        @media screen and (max-width: 1023px) {
          main.recruit-interview-detail > header .container hgroup > *:nth-child(1) {
            font-size: 60px;
            margin-bottom: 4px; } }
        main.recruit-interview-detail > header .container hgroup > *:nth-child(1):before {
          content: "";
          display: block;
          width: 43px;
          height: 43px;
          background-color: #b78f39;
          border-radius: 9999px;
          position: absolute;
          z-index: -1;
          left: -12px;
          top: -5px; }
          @media screen and (max-width: 1023px) {
            main.recruit-interview-detail > header .container hgroup > *:nth-child(1):before {
              width: 35px;
              height: 35px; } }
      main.recruit-interview-detail > header .container hgroup > *:nth-child(2) {
        font-size: 20px;
        font-weight: bold;
        letter-spacing: .1em;
        color: #fff; }
        @media screen and (max-width: 1023px) {
          main.recruit-interview-detail > header .container hgroup > *:nth-child(2) {
            font-size: 15px; } }
      main.recruit-interview-detail > header .container nav.breadcrumb {
        position: absolute;
        top: 24px;
        left: 0;
        right: 0; }
        @media screen and (max-width: 1023px) {
          main.recruit-interview-detail > header .container nav.breadcrumb {
            top: 12px; } }
        main.recruit-interview-detail > header .container nav.breadcrumb ol li {
          display: inline;
          font-size: 13px;
          font-weight: 500;
          color: #fff; }
          @media screen and (max-width: 1023px) {
            main.recruit-interview-detail > header .container nav.breadcrumb ol li {
              font-size: 11px; } }
          main.recruit-interview-detail > header .container nav.breadcrumb ol li:after {
            content: "\00a0／\00a0"; }
          main.recruit-interview-detail > header .container nav.breadcrumb ol li:last-child:after {
            display: none; }
          main.recruit-interview-detail > header .container nav.breadcrumb ol li a {
            transition: all ease .3s; }
            @media (hover: hover) and (pointer: fine) {
              main.recruit-interview-detail > header .container nav.breadcrumb ol li a:hover {
                opacity: .5; } }
  main.recruit-interview-detail .interview-article {
    background-color: #fff;
    border-radius: 80px 80px 0 0;
    padding: 130px 0 140px; }
    @media screen and (max-width: 1023px) {
      main.recruit-interview-detail .interview-article {
        border-radius: 30px 30px 0 0;
        padding: 60px 0 70px; } }
    main.recruit-interview-detail .interview-article > .container {
      width: calc(1280 / 1600 * 100vw);
      max-width: 1280px;
      margin: 0 auto; }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail .interview-article > .container {
          width: calc(350 / 390 * 100vw); } }
  main.recruit-interview-detail .interview-profile {
    display: grid;
    grid-template-columns: minmax(0, 540fr) minmax(0, 740fr);
    align-items: stretch; }
    @media screen and (max-width: 1023px) {
      main.recruit-interview-detail .interview-profile {
        grid-template-columns: 1fr; } }
    main.recruit-interview-detail .interview-profile .content {
      display: flex;
      flex-direction: column;
      justify-content: center;
      padding: 68px 58px;
      background-color: #eef3f8;
      border-radius: 24px 0 0 24px; }
      @media screen and (max-width: 1279px) {
        main.recruit-interview-detail .interview-profile .content {
          padding: 50px 40px; } }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail .interview-profile .content {
          order: 2;
          padding: 32px 24px 36px;
          border-radius: 0 0 15px 15px; } }
    main.recruit-interview-detail .interview-profile .number {
      font-family: "Outfit", "Noto Sans JP", sans-serif;
      color: #1b4a7d;
      font-size: 17px;
      font-weight: 600;
      letter-spacing: .12em;
      margin-bottom: 25px; }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail .interview-profile .number {
          font-size: 14px;
          margin-bottom: 14px; } }
    main.recruit-interview-detail .interview-profile h1 {
      font-size: 38px;
      font-weight: bold;
      line-height: 1.65;
      letter-spacing: .06em;
      margin-bottom: 45px; }
      @media screen and (max-width: 1279px) {
        main.recruit-interview-detail .interview-profile h1 {
          font-size: 32px; } }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail .interview-profile h1 {
          font-size: 24px;
          line-height: 1.6;
          margin-bottom: 26px; } }
    main.recruit-interview-detail .interview-profile .profile-meta {
      display: flex;
      align-items: center;
      gap: 28px; }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail .interview-profile .profile-meta {
          gap: 18px; } }
    main.recruit-interview-detail .interview-profile .name {
      font-family: "Outfit", "Noto Sans JP", sans-serif;
      color: #1b4a7d;
      font-size: 48px;
      font-weight: 600;
      line-height: 1; }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail .interview-profile .name {
          font-size: 34px; } }
    main.recruit-interview-detail .interview-profile .meta {
      border-left: 1px solid #c6d1dc;
      color: #737b84;
      font-size: 14px;
      font-weight: bold;
      line-height: 1.8;
      letter-spacing: .05em;
      padding-left: 28px; }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail .interview-profile .meta {
          font-size: 12px;
          padding-left: 18px; } }
    main.recruit-interview-detail .interview-profile > figure {
      min-height: 540px;
      overflow: hidden;
      border-radius: 0 24px 24px 0; }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail .interview-profile > figure {
          order: 1;
          min-height: 0;
          aspect-ratio: 53 / 36;
          border-radius: 15px 15px 0 0; } }
      main.recruit-interview-detail .interview-profile > figure img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover; }
  main.recruit-interview-detail .interview-lead {
    width: calc(940 / 1280 * 100%);
    margin: 90px auto 0;
    padding-left: 38px;
    border-left: 3px solid #1b4a7d; }
    @media screen and (max-width: 1023px) {
      main.recruit-interview-detail .interview-lead {
        width: 100%;
        margin-top: 48px;
        padding-left: 20px; } }
    main.recruit-interview-detail .interview-lead .text p {
      font-size: 17px;
      font-weight: 500;
      line-height: 2.1;
      letter-spacing: .05em; }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail .interview-lead .text p {
          font-size: 14px;
          line-height: 2; } }
  main.recruit-interview-detail .interview-questions {
    width: calc(1080 / 1280 * 100%);
    margin: 110px auto 0; }
    @media screen and (max-width: 1023px) {
      main.recruit-interview-detail .interview-questions {
        width: 100%;
        margin-top: 65px; } }
  main.recruit-interview-detail .interview-question {
    display: grid;
    grid-template-columns: 330px minmax(0, 1fr);
    gap: 70px;
    padding: 74px 0 78px;
    border-top: 1px solid #d9dfe5; }
    @media screen and (max-width: 1023px) {
      main.recruit-interview-detail .interview-question {
        display: block;
        padding: 42px 0 46px; } }
    main.recruit-interview-detail .interview-question > header {
      position: sticky;
      top: 120px;
      align-self: start; }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail .interview-question > header {
          position: static;
          margin-bottom: 24px; } }
    main.recruit-interview-detail .interview-question .marker {
      font-family: "Outfit", "Noto Sans JP", sans-serif;
      display: flex;
      align-items: center;
      gap: 18px;
      color: #1b4a7d;
      font-size: 52px;
      font-weight: 600;
      line-height: 1;
      margin-bottom: 24px; }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail .interview-question .marker {
          font-size: 34px;
          margin-bottom: 14px; } }
      main.recruit-interview-detail .interview-question .marker::after {
        content: "";
        display: block;
        width: 55px;
        height: 1px;
        background-color: currentColor; }
    main.recruit-interview-detail .interview-question h2 {
      color: #1b4a7d;
      font-size: 23px;
      font-weight: bold;
      line-height: 1.7;
      letter-spacing: .05em; }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail .interview-question h2 {
          font-size: 19px;
          line-height: 1.6; } }
    main.recruit-interview-detail .interview-question .answer p {
      font-size: 16px;
      font-weight: 500;
      line-height: 2.15;
      letter-spacing: .045em; }
      @media screen and (max-width: 1023px) {
        main.recruit-interview-detail .interview-question .answer p {
          font-size: 14px;
          line-height: 2; } }
      main.recruit-interview-detail .interview-question .answer p + p {
        margin-top: 20px; }
  main.recruit-interview-detail .interview-scene {
    margin: 32px 0 44px;
    overflow: hidden;
    border-radius: 24px; }
    @media screen and (max-width: 1023px) {
      main.recruit-interview-detail .interview-scene {
        margin: 12px 0 22px;
        aspect-ratio: 7 / 5;
        border-radius: 15px; } }
    main.recruit-interview-detail .interview-scene img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover; }
  main.recruit-interview-detail .back {
    margin-top: 90px; }
    @media screen and (max-width: 1023px) {
      main.recruit-interview-detail .back {
        margin-top: 50px; } }
    main.recruit-interview-detail .back p {
      display: flex;
      justify-content: center; }
      main.recruit-interview-detail .back p a {
        position: relative;
        display: inline-flex;
        justify-content: center;
        align-items: center;
        width: 350px;
        height: 82px;
        font-size: 17px;
        color: #fff;
        font-weight: bold;
        line-height: 1.2;
        text-align: left;
        background-color: #b78f39;
        border-radius: 10px;
        transition: all ease .3s; }
        @media screen and (max-width: 1023px) {
          main.recruit-interview-detail .back p a {
            width: 290px;
            height: 65px;
            font-size: 15px; } }
        main.recruit-interview-detail .back p a:after {
          position: absolute;
          top: 50%;
          right: 25px;
          transform: translateY(-50%);
          content: "";
          display: block;
          -webkit-mask-image: url("../images/common/icon_arrow.svg");
          mask-image: url("../images/common/icon_arrow.svg");
          -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
          width: 19px;
          height: 15px;
          background-color: #fff;
          transition: all ease .3s; }
          @media screen and (max-width: 1023px) {
            main.recruit-interview-detail .back p a:after {
              width: 16px;
              height: calc(15px * 16 / 19);
              right: 20px; } }
        @media (hover: hover) and (pointer: fine) {
          main.recruit-interview-detail .back p a:hover {
            background-color: #1b4a7d; } }
        main.recruit-interview-detail .back p a:after {
          left: 25px;
          right: auto;
          transform: scale(-1, 1) translateY(-50%); }

/* CSS Document */
.error-box {
  font-size: 16px;
  line-height: 30px;
  background-color: #FFE0E0;
  padding: 30px;
  border-radius: 15px; }

.top-btn {
  text-align: center; }

.top-btn a {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 350px;
  height: 82px;
  font-size: 17px;
  color: #fff;
  font-weight: bold;
  line-height: 1.2;
  text-align: left;
  background-color: #b78f39;
  border-radius: 10px;
  transition: all ease .3s;
  margin: auto; }

.top-btn a:hover {
  background-color: #1b4a7d; }

.top-btn a::after {
  position: absolute;
  top: 50%;
  right: 25px;
  transform: translateY(-50%);
  content: "";
  display: block;
  -webkit-mask-image: url("../images/common/icon_arrow.svg");
  mask-image: url("../images/common/icon_arrow.svg");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  width: 19px;
  height: 15px;
  background-color: #fff;
  transition: all ease .3s; }

@media screen and (max-width: 1023px) {
  .top-btn a {
    width: 290px;
    height: 65px;
    font-size: 15px; } }
/*----------------------上書き用-------------------------*/
.index-btn ul {
  display: flex;
  gap: 10px 50px;
  flex-wrap: wrap; }

.index-btn ul li {
  width: calc((100% - 50px) / 2);
  border-bottom: 1px solid #d3d4de; }

.index-btn ul li a {
  display: block;
  font-weight: 700;
  font-size: 25px;
  padding-bottom: 50px;
  padding-top: 50px;
  position: relative;
  transition: all ease .3s; }

.index-btn ul li a span.en {
  font-family: "Outfit", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: .02em;
  color: #b2b2b8;
  margin-bottom: 10px;
  display: block;
  transition: all ease .3s; }

.index-btn ul li a:hover span.en {
  opacity: .5; }

.index-btn ul li a span.arrow {
  position: absolute;
  top: 50%;
  right: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 55px;
  height: 20px;
  background-color: #1b4a7d;
  border-radius: 9999px;
  transition: all ease .3s;
  margin-top: -10px; }

.index-btn ul li a span.arrow:after {
  content: "";
  display: block;
  width: 11px;
  height: calc(15px * 11 / 19);
  -webkit-mask-image: url(../images/common/icon_arrow.svg);
  mask-image: url(../images/common/icon_arrow.svg);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  background-color: #fff; }

.index-btn ul li a:hover p {
  opacity: .5; }

.index-btn ul li a:hover .arrow {
  background-color: #b78f39; }

.index-btn ul li a p {
  transition: all ease .3s; }

.index-btn .container {
  width: calc(1280 / 1600 * 100vw);
  max-width: 1280px;
  margin: 0 auto; }

.index-btn {
  background-color: #fff;
  border-radius: 80px;
  padding: 132px 0 185px; }

@media screen and (max-width: 1023px) {
  .index-btn ul {
    display: block; }

  .index-btn ul li {
    width: auto;
    border-bottom: 1px solid #d3d4de; }

  .index-btn {
    border-radius: 30px;
    padding: 30px 0 calc(185px * 0.5); }

  .index-btn ul li a {
    font-size: 20px;
    padding-bottom: 30px;
    padding-top: 30px; }

  .index-btn .container {
    width: calc(350 / 390 * 100vw); } }
.requirements {
  background-color: #fff;
  border-radius: 80px 80px 0 0;
  padding: 132px 0 185px; }

.requirements .container {
  width: calc(1280 / 1600 * 100vw);
  max-width: 1280px;
  margin: 0 auto; }

.requirements .container dl {
  border-top: 1px solid #d3d4de;
  display: flex;
  flex-wrap: wrap; }

.requirements .container dl dt {
  flex: 0 0 320px;
  border-bottom: 1px solid #d3d4de;
  font-size: 17px;
  font-weight: bold;
  line-height: 30px;
  padding: 40px 25px; }

.requirements .container dl dd {
  flex: 0 0 calc(100% - 320px);
  border-bottom: 1px solid #d3d4de;
  font-size: 17px;
  font-weight: 500;
  line-height: 30px;
  padding: 40px 0; }

@media screen and (max-width: 1023px) {
  .requirements {
    border-radius: 30px 30px 0 0;
    padding: calc(132px * 0.5) 0 calc(185px * 0.5); }

  .requirements .container {
    width: calc(350 / 390 * 100vw); }

  .requirements .container dl {
    display: block; }

  .requirements .container dl dt {
    padding: 20px 0 0;
    font-size: 14px;
    line-height: 26px;
    border: none; }

  .requirements .container dl dd {
    padding: 0px 0 20px;
    font-size: 14px;
    line-height: 26px; } }
.history {
  background-color: #fff;
  border-radius: 80px 80px 0 0;
  padding: 132px 0 185px; }

.history .container {
  width: calc(1280 / 1600 * 100vw);
  max-width: 1280px;
  margin: 0 auto; }

.history-item {
  font-size: 17px; }

.history-item:not(:last-child) {
  margin-bottom: 90px; }

.history-item h2 {
  font-weight: 700;
  font-size: 35px;
  position: relative;
  padding-top: 40px;
  margin-bottom: 40px; }

.history-item h2:before {
  width: 20px;
  height: 2px;
  content: "";
  background-color: #1b4a7d;
  position: absolute;
  left: 0;
  z-index: 1;
  top: 0; }

.history-item h2:after {
  height: 2px;
  content: "";
  background-color: #d3d4de;
  position: absolute;
  left: 25px;
  z-index: 1;
  top: 0;
  right: 0; }

.history-item h2 span {
  font-size: 60%; }

.history-item table {
  width: 100%;
  line-height: 1.8; }

.history-item th {
  font-weight: 700;
  object-position: 16px;
  border-bottom: #d3d4de 1px solid;
  width: 200px;
  text-align: left;
  padding: 25px 0 25px 0; }

.history-item td {
  border-bottom: #d3d4de 1px solid;
  text-align: left;
  padding: 25px 0 25px 0; }

.history-item td ul {
  display: flex;
  gap: 30px;
  margin-top: 20px; }

.history-item td ul li img {
  border-radius: 10px; }

.history-item td ul li p {
  font-size: 15px;
  margin-top: 10px;
  line-height: 1.5; }

@media screen and (max-width: 1023px) {
  .history {
    border-radius: 30px 30px 0 0;
    padding: calc(132px * 0.5) 0 calc(185px * 0.5); }

  .history .container {
    width: calc(350 / 390 * 100vw); }

  .history-item {
    font-size: 14px; }

  .history-item:not(:last-child) {
    margin-bottom: 60px; }

  .history-item h2 {
    font-size: 22px;
    padding-top: 30px;
    margin-bottom: 10px; }

  .history-item table {
    line-height: 26px; }

  .history-item th {
    display: block;
    width: auto;
    border-bottom: none;
    padding-bottom: 0;
    padding-top: 20px; }

  .history-item td {
    display: block;
    width: auto;
    padding-top: 5px;
    padding-bottom: 20px; }

  .history-item td ul {
    display: block;
    margin-top: 20px; }

  .history-item td ul li:not(:last-child) {
    margin-bottom: 25px; }

  .history-item td ul li img {
    width: 100%; }

  .history-item td ul li p {
    font-size: 13px; } }
.greeting {
  background-color: #fff;
  border-radius: 80px 80px 0 0;
  padding: 132px 0 185px; }

.greeting .container {
  width: calc(1280 / 1600 * 100vw);
  max-width: 1280px;
  margin: 0 auto; }

.greeting-flex {
  display: flex;
  gap: 60px; }

.greeting-img {
  margin-bottom: 50px;
  flex-shrink: 0;
  width: 37%; }

.greeting-img img {
  border-radius: 20px; }

.greeting-txt {
  font-size: 16px;
  line-height: 35px; }

.greeting-txt h2 {
  font-size: 29px;
  line-height: 52px;
  font-weight: bold;
  letter-spacing: .07em;
  margin-bottom: 40px; }

.greeting-txt dl {
  margin-top: 40px;
  text-align: right; }

.greeting-txt dd {
  font-weight: 500;
  font-size: 25px; }

@media screen and (max-width: 1023px) {
  .greeting {
    border-radius: 30px 30px 0 0;
    padding: calc(132px * 0.5) 0 calc(185px * 0.5); }

  .greeting .container {
    width: calc(350 / 390 * 100vw); }

  .greeting-flex {
    display: block; }

  .greeting-img img {
    border-radius: 15px;
    object-fit: cover;
    width: 100%;
    height: 100%; }

  .greeting-img {
    margin-bottom: 25px;
    height: 100vw;
    width: 100%; }

  .greeting-txt h2 {
    font-size: 20px;
    line-height: 1.6;
    margin-bottom: 20px; }

  .greeting-txt {
    font-size: 14px;
    line-height: 28px; }

  .greeting-txt dl {
    margin-top: 30px;
    line-height: 1.9; }

  .greeting-txt dd {
    font-size: 20px; } }
.license-list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 60px; }

.license-list li {
  width: calc((100% - 60px) /2);
  display: flex;
  position: relative; }

.license-list li:before {
  content: "";
  flex: 1;
  border-bottom: 1px dashed #d3d4de;
  margin: 0 8px;
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  z-index: 1; }

.license-list li span {
  background-color: #fff;
  z-index: 2; }

.license-list li .name {
  padding-right: 10px; }

.license-list li .num {
  margin-left: auto;
  padding-left: 10px; }

.license-update {
  margin-top: 15px;
  text-align: right; }

@media screen and (max-width: 1023px) {
  .license-list {
    display: block;
    flex-wrap: wrap;
    gap: 5px 60px; }

  .license-list li {
    width: auto; } }
.news-wrap {
  background-color: #fff;
  border-radius: 80px;
  padding: 132px 0 185px; }

.news-wrap .container {
  width: calc(1280 / 1600 * 100vw);
  max-width: 1280px;
  margin: 0 auto; }

.news-list {
  border-top: 1px solid #cfd4de; }

.news-list li {
  border-bottom: 1px solid #cfd4de; }

.news-list li a {
  display: flex;
  padding: 25px 24px;
  gap: 30px;
  transition: all ease .3s; }

.news-list li a .date {
  font-family: "Outfit", "Noto Sans JP", sans-serif;
  font-size: 17px;
  line-height: 31px;
  font-weight: 500;
  flex: 0 0 80px; }

.news-list li a .category {
  font-size: 13px;
  font-weight: bold;
  flex: 0 0 107px;
  line-height: 31px;
  background-color: #1b4a7d;
  color: #fff;
  border-radius: 9999px;
  text-align: center;
  height: 100%; }

.news-list li a .title {
  font-size: 16px;
  line-height: 31px;
  font-weight: 500; }

.news-list li a:hover {
  background-color: #eef3f8; }

.news-wrap nav.pagination {
  margin-top: 110px; }

.news-wrap nav.pagination .nav-links {
  display: flex;
  justify-content: center;
  gap: 10px; }

.news-wrap nav.pagination .nav-links .page-numbers.prev {
  display: none; }

.news-wrap nav.pagination .nav-links .page-numbers {
  font-family: "Outfit", "Noto Sans JP", sans-serif;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 25px;
  font-weight: 600;
  width: 60px;
  height: 60px;
  border-radius: 5px;
  border: 1px solid #1b4a7d;
  color: #1b4a7d;
  transition: all ease .3s; }

.news-wrap nav.pagination .nav-links .page-numbers.current {
  background-color: #1b4a7d;
  color: #fff; }

.news-wrap nav.pagination .nav-links .page-numbers.dots {
  border: none;
  width: 30px; }

.news-wrap nav.pagination .nav-links .page-numbers.next {
  display: none; }

.news-wrap .news-dtl dl {
  display: flex;
  margin-bottom: 30px; }

.news-wrap .news-dtl dt {
  font-family: "Outfit", "Noto Sans JP", sans-serif;
  font-size: 17px;
  line-height: 31px;
  font-weight: 500;
  flex: 0 0 80px;
  margin-right: 20px; }

.news-wrap .news-dtl dd {
  font-size: 13px;
  font-weight: bold;
  flex: 0 0 107px;
  line-height: 31px;
  background-color: #1b4a7d;
  color: #fff;
  border-radius: 9999px;
  text-align: center;
  height: 100%; }

.news-wrap .news-dtl .ttl {
  font-weight: bold;
  font-size: 30px;
  border-bottom: #eef3f8 1px solid;
  padding-bottom: 30px;
  position: relative;
  line-height: 1.6;
  margin-bottom: 40px; }

.news-wrap .news-dtl .ttl::before {
  width: 20px;
  height: 2px;
  content: "";
  background-color: #1b4a7d;
  position: absolute;
  left: 0;
  z-index: 1;
  bottom: 0; }

.news-wrap .news-dtl .ttl::after {
  height: 2px;
  content: "";
  background-color: #d3d4de;
  position: absolute;
  left: 25px;
  z-index: 1;
  bottom: 0;
  right: 0; }

.news-wrap .news-dtl .txt-body {
  font-size: 17px;
  line-height: 30px; }

.news-wrap .news-dtl .btn {
  text-align: center;
  margin-top: 100px;
  display: flex;
  justify-content: center; }

.news-wrap .news-dtl .btn a {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 350px;
  height: 82px;
  font-size: 17px;
  color: #fff;
  font-weight: bold;
  line-height: 1.2;
  text-align: left;
  background-color: #b78f39;
  border-radius: 10px;
  transition: all ease .3s;
  margin-left: auto;
  margin-right: auto; }

.news-wrap .news-dtl .btn a:hover {
  background-color: #1b4a7d; }

.news-wrap .news-dtl .btn a::after {
  position: absolute;
  top: 50%;
  right: 25px;
  transform: translateY(-50%);
  content: "";
  display: block;
  -webkit-mask-image: url("../images/common/icon_arrow.svg");
  mask-image: url("../images/common/icon_arrow.svg");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  width: 19px;
  height: 15px;
  background-color: #fff;
  transition: all ease .3s; }

@media screen and (max-width: 1023px) {
  .news-wrap {
    border-radius: 30px;
    padding: 30px 0 calc(185px * 0.5); }

  .news-wrap .container {
    width: calc(350 / 390 * 100vw); }

  .news-wrap {
    padding: 60px 0 70px;
    border-radius: 30px; }

  .news-list li a {
    flex-wrap: wrap;
    gap: 12px;
    padding: 15px 0 12px; }

  .news-list li a .date {
    font-size: 13px;
    line-height: 25px;
    flex: 0 0 62px; }

  .news-list li a .category {
    font-size: 11px;
    flex: 0 0 90px;
    line-height: 25px; }

  .news-list li a .title {
    flex: 0 0 100%;
    font-size: 14px;
    line-height: 21px; }

  .news-wrap nav.pagination {
    margin-top: 55px; }

  .news-wrap nav.pagination .nav-links {
    gap: 8px; }

  .news-wrap nav.pagination .nav-links .page-numbers.dots {
    width: 24px; }

  .news-wrap .news-dtl dl {
    margin-bottom: 15px; }

  .news-wrap .news-dtl dt {
    font-size: 13px;
    line-height: 25px;
    flex: 0 0 62px;
    margin-right: 12px; }

  .news-wrap .news-dtl dd {
    font-size: 11px;
    flex: 0 0 90px;
    line-height: 25px; }

  .news-wrap .news-dtl .ttl {
    font-size: 16px;
    padding-bottom: 20px;
    margin-bottom: 20px; }

  .news-wrap .news-dtl .txt-body {
    font-size: 14px;
    line-height: 27px; }

  .news-wrap .news-dtl .btn a {
    width: 290px;
    height: 65px;
    font-size: 15px; }

  .news-wrap .news-dtl .btn a::after {
    width: 16px;
    height: calc(15px * 16 / 19);
    right: 20px; } }
@media screen and (max-width: 768px) {
  .news-wrap nav.pagination .nav-links .page-numbers {
    width: 40px;
    height: 40px;
    border-radius: 4px;
    font-size: 16px; }

  .news-wrap .news-dtl .btn {
    margin-top: 60px; } }
.local-common {
  background-color: #fff;
  border-radius: 0 0 80px 80px;
  border-top: 1px solid #d3d4de;
  padding: 98px 0 140px; }

.local-common .container {
  width: calc(1280 / 1600 * 100vw);
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  gap: 60px;
  justify-content: space-between; }

.local-common .container header hgroup p {
  font-size: 59px;
  font-weight: 500;
  letter-spacing: .02em;
  color: #1f4c8e;
  margin-bottom: 20px; }

.local-common .container header hgroup h2 {
  font-size: 17px;
  font-weight: bold;
  letter-spacing: .1em; }

.local-common .container header .action {
  margin-top: 52px; }

.local-common .container header .action p a {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 258px;
  height: 69px;
  border-radius: 10px;
  background-color: #1f4c8e;
  font-size: 18px;
  font-weight: bold;
  letter-spacing: .1em;
  color: #fff;
  transition: all ease .3s; }

.local-common .container header .action p a:hover {
  background-color: #b78f39; }

.local-common .container header .action p a::after {
  position: absolute;
  top: 50%;
  right: 24px;
  transform: translateY(-50%);
  content: "";
  display: block;
  -webkit-mask-image: url("../images/common/icon_arrow.svg");
  mask-image: url("../images/common/icon_arrow.svg");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  width: 19px;
  height: 15px;
  background-color: #fff;
  transition: all ease .3s; }

.local-common .container .body ul li a:hover p {
  opacity: .5; }

.local-common .container .body ul li a:hover .arrow {
  background-color: #b78f39; }

.local-common .container .body {
  flex: 0 0 max(724px, calc(724 / 1280 * 100%)); }

.local-common .container .body ul {
  display: flex;
  flex-wrap: wrap;
  gap: 45px; }

.local-common .container .body ul li {
  flex: 0 0 calc((100% - 45px) / 2);
  border-bottom: 1px solid #d3d4de; }

.local-common .container .body ul li a {
  position: relative;
  display: block;
  padding: 10px 0 30px; }

.local-common .container .body ul li a p:nth-child(1) {
  font-family: "Outfit", "Noto Sans JP", sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .02em;
  color: #b2b2b8;
  margin-bottom: 8px;
  transition: all ease .3s; }

.local-common .container .body ul li a p:nth-child(2) {
  font-size: 20px;
  font-weight: bold;
  letter-spacing: .06em;
  transition: all ease .3s; }

.local-common .container .body ul li a .arrow {
  position: absolute;
  top: 30px;
  right: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 55px;
  height: 20px;
  background-color: #1b4a7d;
  border-radius: 9999px;
  transition: all ease .3s; }

.local-common .container .body ul li a .arrow::before {
  content: "";
  display: block;
  width: 11px;
  height: calc(15px * 11 / 19);
  -webkit-mask-image: url("../images/common/icon_arrow.svg");
  mask-image: url("../images/common/icon_arrow.svg");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  background-color: #fff; }

main.recruit-interview section.interview {
  border-radius: 80px 80px 0 0; }

main.recruit-interview-detail article {
  border-radius: 80px 80px 0 0; }

@media screen and (max-width: 1023px) {
  main.recruit-interview-detail article {
    border-radius: 30px 30px 0 0; }

  main.recruit-interview-detail article {
    border-radius: 30px 30px 0 0; }

  .local-common {
    border-radius: 0 0 30px 30px; }

  .local-common .container {
    display: block;
    width: calc(350 / 390 * 100vw); }

  .local-common .container header .action {
    margin-top: 20px;
    margin-bottom: 25px; }

  .local-common .container header .action p a {
    width: 100%;
    height: calc(69px * 0.8);
    border-radius: calc(10px * 0.8);
    font-size: calc(18px * 0.8); }

  .local-common .container header .action p a::after {
    width: 16px;
    height: calc(15px * 16 / 19);
    right: 20px; }

  .local-common .container .body ul {
    gap: 0 20px; }

  .local-common .container .body ul li {
    flex: 0 0 calc((100% - 20px) / 2); }

  .local-common .container .body ul li a {
    padding: 20px 0 20px; }

  .local-common .container .body ul li a p:nth-child(1) {
    font-size: 10px;
    margin-bottom: 4px; }

  .local-common .container .body ul li a p:nth-child(2) {
    font-size: 16px; }

  .local-common .container .body ul li a .arrow {
    background-color: transparent;
    width: 11px;
    height: auto;
    top: 39px; }

  .local-common .container .body ul li a .arrow::before {
    background-color: #1b4a7d; }

  main.company-outline nav.local {
    border-radius: 0 0 30px 30px; }

  main.recruit-interview section.interview {
    border-radius: 30px 30px 0 0; }

  main.recruit-requirements > header .container hgroup > :nth-child(1) {
    font-size: 53px; } }
@media screen and (max-width: 768px) {
  .local-common {
    border-radius: 0 0 30px 30px;
    padding: 50px 0 70px; }

  .local-common .container {
    display: block; }

  .local-common .container header hgroup p {
    font-size: 48px;
    margin-bottom: 10px; }

  .local-common .container header hgroup h2 {
    font-size: 14px; } }
.contact {
  background-color: #fff;
  border-radius: 80px;
  padding: 132px 0 185px; }

.contact .container {
  width: calc(1280 / 1600 * 100vw);
  max-width: 1180px;
  margin: 0 auto; }

.contact-tbl {
  font-size: 17px;
  line-height: 30px;
  width: 100%;
  border-top: 1px solid #d3d4de; }

.contact-tbl th {
  border-bottom: 1px solid #d3d4de;
  width: 300px;
  text-align: left;
  padding: 30px 0;
  vertical-align: middle; }

.contact-tbl th.top-txt {
  padding-top: 50px;
  vertical-align: top; }

.contact-tbl th span {
  background-color: #1b4a7d;
  color: #fff;
  font-size: 80%;
  width: 70px;
  display: inline-block;
  border-radius: 40px;
  text-align: center;
  margin-right: 20px;
  line-height: 1.8; }

.contact-tbl th span.free {
  background-color: #A6A8AB; }

.contact-tbl td {
  border-bottom: 1px solid #d3d4de;
  padding: 30px 0; }

.contact__input {
  border-radius: 10px;
  width: 100%;
  height: 70px;
  padding: 15px;
  box-sizing: border-box;
  background-color: #eef3f8;
  box-sizing: border-box;
  border: #eef3f8 1px solid;
  transition: all ease .3s; }

.contact__input:focus {
  border: #1b4a7d 1px solid; }

.contact__selectbox {
  border-radius: 10px;
  height: 70px;
  padding: 15px;
  width: 60%;
  box-sizing: border-box;
  background-color: #eef3f8;
  transition: all ease .3s;
  border: #eef3f8 1px solid;
  position: relative;
  background-image: url("../images/common/select_arrow.svg");
  background-position: right 25px center;
  background-repeat: no-repeat;
  background-size: 15px; }

.contact__selectbox:focus {
  border: #1b4a7d 1px solid; }

.contact__textarea {
  border-radius: 10px;
  border: #eef3f8 1px solid;
  width: 100%;
  height: 350px;
  padding: 15px;
  box-sizing: border-box;
  background-color: #eef3f8;
  transition: all ease .3s; }

.contact__textarea:focus {
  border: #1b4a7d 1px solid; }

.contact-item h2 {
  font-size: 38px;
  font-weight: bold;
  letter-spacing: .05em;
  text-align: center;
  margin-bottom: 70px; }

.contact-item h2 span {
  font-family: "Outfit", "Noto Sans JP", sans-serif;
  font-size: 17px;
  font-weight: 600;
  color: #1b4a7d;
  text-align: center;
  display: block;
  margin-top: 20px; }

.contact-lead-txt {
  font-size: 16px;
  line-height: 30px;
  text-align: center;
  margin-bottom: 80px; }

.contact-item--tel {
  border-bottom: 1px solid #d3d4de;
  border-top: 1px solid #d3d4de;
  padding: 30px;
  display: flex;
  align-items: center;
  margin-bottom: 100px;
  justify-content: center;
  width: fit-content;
  margin-left: auto;
  margin-right: auto; }

.contact-item--tel h2 {
  font-size: 22px;
  margin-bottom: 0;
  text-align: left;
  border-right: 1px solid #d3d4de;
  display: flex;
  align-items: center;
  padding-right: 30px;
  margin-right: 30px; }

.contact-item--tel a {
  font-family: "Outfit", "Noto Sans JP", sans-serif;
  font-size: 43px;
  font-weight: 600;
  color: #1b4a7d; }

.contact-item--tel span {
  font-size: 15px;
  margin-top: 15px;
  display: block;
  font-weight: 500; }

.contact-item .btn-box {
  display: flex;
  gap: 20px;
  justify-content: center;
  margin-top: 50px; }

.contact-item .btn-box button {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 350px;
  height: 82px;
  font-size: 17px;
  color: #fff;
  font-weight: bold;
  line-height: 1.2;
  text-align: left;
  background-color: #b78f39;
  border-radius: 10px;
  transition: all ease .3s; }

.contact-item .btn-box button:after {
  position: absolute;
  top: 50%;
  right: 25px;
  transform: translateY(-50%);
  content: "";
  display: block;
  -webkit-mask-image: url("../images/common/icon_arrow.svg");
  mask-image: url("../images/common/icon_arrow.svg");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  width: 19px;
  height: 15px;
  background-color: #fff;
  transition: all ease .3s; }

.contact-item .btn-box button:hover {
  background-color: #1b4a7d; }

.contact-item .btn-box button.back-btn {
  background-color: #7d7d7d; }

.contact-item .btn-box button.back-btn:hover {
  background-color: #585858; }

.contact-item .privacy-txt {
  text-align: center;
  margin-top: 60px;
  margin-bottom: 20px; }

.contact-item .privacy-txt a {
  color: #1b4a7d;
  font-weight: 500;
  text-decoration: underline; }

.contact-item .privacy-txt a:hover {
  text-decoration: none; }

.contact-item input[type=radio] + label,
.contact-item input[type=checkbox] + label {
  position: relative;
  display: inline-block;
  margin-right: 12px;
  /* font-size: 14px; */
  line-height: 30px;
  cursor: pointer; }

.contact-item input[type="checkbox"]:checked + label::after {
  left: 3px;
  width: 19px;
  height: 10px;
  margin-top: -8px;
  border-left: 3px solid #b78f39;
  border-bottom: 3px solid #b78f39;
  -webkit-transform: rotate(-45deg);
  -ms-transform: rotate(-45deg);
  transform: rotate(-45deg); }

.contact-item input[type=radio],
.contact-item input[type=checkbox] {
  margin: 0;
  opacity: 0;
  filter: alpha(opacity=0);
  -moz-opacity: 0;
  -ms-filter: "alpha(opacity=0)";
  margin-left: -13px; }

.contact-item input[type=radio] + label,
.contact-item input[type=checkbox] + label {
  padding: 0 0 0 35px; }

.contact-item input[type="radio"] + label::before, input[type="checkbox"] + label::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  display: block;
  width: 24px;
  height: 24px;
  margin-top: -11px;
  background: #FFF; }

.contact-item input[type=radio] + label::before {
  border: 2px solid #ccc;
  border-radius: 30px; }

.contact-item input[type=checkbox] + label::before {
  border: 2px solid #ccc; }

.contact-item input[type=radio]:checked + label::after,
.contact-item input[type=checkbox]:checked + label::after {
  content: "";
  position: absolute;
  top: 50%;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  display: block; }

.contact-item input[type=radio]:checked + label::after {
  left: 5px;
  width: 8px;
  height: 8px;
  margin-top: -4px;
  background: var(--c-bsc);
  border-radius: 8px; }

.contact-item input[type="radio"]:checked + label::after {
  left: 7px;
  width: 10px;
  height: 10px;
  margin-top: -4px;
  background: var(--c-bsc);
  border-radius: 8px; }

input[type="checkbox"] {
  display: block !important; }

.privacy-box {
  text-align: center;
  line-height: 1.6;
  font-size: 17px; }

::placeholder {
  opacity: 0.5; }

.contact-error {
  color: #AB2214;
  margin-bottom: 10px;
  font-weight: bold;
  font-size: 16px; }

@media screen and (max-width: 1023px) {
  .contact {
    border-radius: 30px;
    padding: 30px 0 calc(185px * 0.5); }

  .contact .container {
    width: calc(350 / 390 * 100vw); }

  .contact-lead-txt {
    font-size: 14px;
    line-height: 27px;
    text-align: left;
    margin-bottom: 40px; }

  .contact-item--tel {
    padding: 20px;
    display: block;
    text-align: center;
    margin-bottom: 60px;
    width: 100%; }

  .contact-item--tel a {
    font-size: 30px;
    line-height: 1; }

  .contact-item--tel span {
    font-size: 13px;
    margin-top: 10px;
    font-weight: 500; }

  .contact-item h2 {
    font-size: 22px;
    margin-bottom: 40px; }

  .contact-item h2 span {
    font-size: 14px;
    margin-top: 15px; }

  .contact-item--tel h2 {
    font-size: 15px !important;
    text-align: center;
    border-right: none;
    display: block;
    padding-right: 0;
    margin-right: 0;
    margin-bottom: 10px; }

  .contact-tbl th {
    width: auto;
    display: block;
    border-bottom: none;
    padding-bottom: 5px;
    padding-top: 15px; }

  .contact-tbl td {
    width: auto;
    display: block;
    padding-top: 0;
    padding-bottom: 15px;
    font-size: 16px; }

  .contact-tbl {
    font-size: 15px; }

  .contact-tbl th span {
    width: 50px;
    margin-right: 10px; }

  .contact__selectbox {
    height: 55px;
    background-position: right 18px center;
    background-size: 13px;
    width: 100%; }

  .contact__input {
    height: 55px; }

  .contact__textarea {
    height: 250px; }

  .contact-error {
    margin-bottom: 5px;
    font-size: 14px; }

  .contact-tbl th.top-txt {
    padding-top: 15px; }

  .privacy-box {
    font-size: 14px; }

  .contact-item .privacy-txt {
    margin-top: 40px;
    margin-bottom: 10px; }

  .contact-item .btn-box {
    display: block;
    text-align: center; }

  .contact-item .btn-box li:not(:last-child) {
    margin-bottom: 15px; }

  .contact-item .btn-box li button {
    width: 290px;
    height: 65px;
    font-size: 15px;
    margin: auto; }

  .contact-item .btn-box li button:after {
    width: 16px;
    height: calc(15px * 16 / 19);
    right: 20px; } }
