@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; }

._pc {
  display: none; }

._sp {
  display: none; }

@media screen and (min-width: 1024px) {
  ._pc {
    display: initial; } }
@media screen and (max-width: 1023px) {
  ._sp {
    display: initial; } }
._nowrap {
  display: inline-block; }

:root {
  --base-size: 1440 / 1920;
  --scroll-offset: -100;
  --font-family-en: "Montserrat", "Noto Sans JP", sans-serif; }
  @media screen and (min-width: 1024px) {
    :root {
      --scroll-offset: -90; } }

body {
  font-family: "Noto Sans JP", sans-serif; }
  .menu-active body {
    overflow: hidden; }
  body > svg {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%); }

#header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10000;
  background-color: #fff;
  height: 90px;
  transition: all ease-out .3s; }
  @media screen and (min-width: 1024px) {
    #header {
      display: flex;
      justify-content: space-between;
      height: auto; } }
  html:not(.is-scrolled) body.home #header {
    background-color: transparent;
    border-bottom-color: transparent; }
  #header .logo {
    position: absolute;
    top: 22px;
    left: 18px;
    width: 257px;
    z-index: 10; }
    @media screen and (min-width: 1024px) {
      #header .logo {
        position: static;
        margin-top: calc(var(--base-size) * 41px);
        margin-left: calc(var(--base-size) * 38px);
        flex: 0 0 calc(var(--base-size) * 328px);
        width: auto;
        flex: 0 0 237px;
        margin-right: calc(var(--base-size) * 66px); } }
    #header .logo a {
      display: block;
      position: relative; }
      #header .logo a:before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        display: block;
        background-image: url("../images/common/header_logo_bk.png");
        background-size: cover;
        opacity: 1;
        transition: all ease-out .3s; }
        html:not(.is-scrolled) body.home #header .logo a:before {
          opacity: 0; }
          @media screen and (min-width: 1024px) {
            html:not(.is-scrolled) body.home #header .logo a:before {
              opacity: 0 !important; } }
        .menu-active #header .logo a:before {
          opacity: 1 !important; }
      #header .logo a img {
        width: 100%;
        opacity: 0;
        transition: all ease-out .3s; }
        html:not(.is-scrolled) body.home #header .logo a img {
          opacity: 1; }
          @media screen and (min-width: 1024px) {
            html:not(.is-scrolled) body.home #header .logo a img {
              opacity: 1 !important; } }
        .menu-active #header .logo a img {
          opacity: 0 !important; }
  #header nav.menu {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding-top: 100px;
    padding-bottom: 40px;
    overflow: auto;
    background-color: #fff;
    opacity: 0;
    pointer-events: none;
    display: flex;
    justify-content: center;
    align-items: center; }
    .menu-active #header nav.menu {
      opacity: 1;
      pointer-events: auto; }
    @media screen and (min-width: 1024px) {
      #header nav.menu {
        position: static;
        display: block;
        padding: 0;
        background-color: transparent;
        opacity: 1;
        pointer-events: auto; } }
    #header nav.menu .inner {
      width: calc(265 / 375 * 100%); }
      @media screen and (min-width: 1024px) {
        #header nav.menu .inner {
          display: flex;
          width: auto; } }
      @media screen and (min-width: 1024px) {
        #header nav.menu .inner ul {
          display: flex;
          padding: 0;
          justify-content: space-around;
          width: calc(var(--base-size) * 816px); } }
      #header nav.menu .inner ul li {
        margin-bottom: 12px; }
        @media screen and (min-width: 1024px) {
          #header nav.menu .inner ul li {
            margin-bottom: 0; } }
        #header nav.menu .inner ul li a {
          position: relative;
          display: block;
          font-weight: 700;
          font-size: 20px;
          color: #181818;
          line-height: 60px;
          transition: all ease .2s; }
          @media screen and (min-width: 1024px) {
            #header nav.menu .inner ul li a {
              color: #333 !important;
              display: flex;
              justify-content: center;
              align-items: center;
              font-size: calc(var(--base-size) * 24px);
              line-height: 1.5;
              font-weight: 500;
              height: calc(var(--base-size) * 132px);
              transition: all ease-out .3s; } }
          @media screen and (min-width: 1024px) {
            html:not(.is-scrolled) body.home #header nav.menu .inner ul li a {
              color: #fff !important; } }
          .menu-active #header nav.menu .inner ul li a {
            color: #333 !important; }
          #header nav.menu .inner ul li a:first-child {
            font-family: var(--font-family-en);
            font-weight: 700;
            font-size: 20px;
            text-transform: uppercase; }
            @media screen and (min-width: 1024px) {
              #header nav.menu .inner ul li a:first-child {
                font-size: calc(var(--base-size) * 24px);
                font-weight: 700; } }
          #header nav.menu .inner ul li a:after {
            content: "";
            background-image: url("../images/common/menu_arrow.svg");
            display: block;
            width: 24px;
            height: 12px;
            position: absolute;
            top: 50%;
            right: 0;
            transform: translateY(-50%); }
            @media screen and (min-width: 1024px) {
              #header nav.menu .inner ul li a:after {
                display: none; } }
          @media screen and (min-width: 1024px) {
            #header nav.menu .inner ul li a:hover {
              color: #4169E1 !important; }
              html:not(.is-scrolled) body.home #header nav.menu .inner ul li a:hover {
                color: #4169E1 !important; } }
      #header nav.menu .inner p.contact {
        padding: 0 10px;
        margin-top: 34px; }
        @media screen and (min-width: 1024px) {
          #header nav.menu .inner p.contact {
            padding: 0;
            margin-top: 0;
            margin-left: calc(var(--base-size) * 66px); } }
        #header nav.menu .inner p.contact a {
          position: relative;
          display: block;
          width: 100%;
          height: 54px;
          font-weight: 600;
          font-size: 15px;
          line-height: 54px;
          text-align: center;
          text-transform: uppercase;
          color: #FFFFFF;
          background-color: #4169E1;
          transition: all ease .2s; }
          @media screen and (min-width: 1024px) {
            #header nav.menu .inner p.contact a {
              width: calc(var(--base-size) * 285px);
              height: calc(var(--base-size) * 132px);
              font-weight: 700;
              font-size: calc(var(--base-size) * 24px);
              line-height: calc(var(--base-size) * 132px);
              text-transform: uppercase; } }
          #header nav.menu .inner p.contact a:before {
            content: "";
            transition: all ease .2s;
            display: block;
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 0;
            background-color: #000;
            background-color: #F8F9FC;
            background-color: #edf0fb; }
          #header nav.menu .inner p.contact a span {
            position: relative; }
          @media screen and (min-width: 1024px) {
            #header nav.menu .inner p.contact a:hover {
              color: #4169E1; }
              #header nav.menu .inner p.contact a:hover:before {
                height: 100%; } }
      #header nav.menu .inner .tel {
        margin-top: 48px; }
        @media screen and (min-width: 1024px) {
          #header nav.menu .inner .tel {
            display: none; } }
        #header nav.menu .inner .tel p:nth-child(1) {
          font-weight: 700;
          font-size: 20px;
          line-height: 100%;
          color: #181818;
          text-align: center;
          margin-bottom: 8px; }
        #header nav.menu .inner .tel p:nth-child(2) {
          font-family: var(--font-family-en);
          font-style: normal;
          font-weight: 800;
          font-size: 36px;
          line-height: 42px;
          color: #181818;
          text-align: center; }
          #header nav.menu .inner .tel p:nth-child(2) a {
            position: relative;
            display: inline-block;
            padding-left: 35px; }
            #header nav.menu .inner .tel p:nth-child(2) a:before {
              content: "";
              background-image: url("../images/common/menu_icon_tel.svg");
              width: 30px;
              height: 29px;
              display: block;
              position: absolute;
              top: 50%;
              left: 0;
              transform: translateY(-50%); }
  #header p.menu {
    position: absolute;
    z-index: 10;
    right: 0;
    top: 0; }
    @media screen and (min-width: 1024px) {
      #header p.menu {
        display: none; } }
    #header p.menu button {
      position: relative;
      width: 90px;
      height: 90px; }
      #header p.menu button:before, #header p.menu button:after, #header p.menu button span {
        content: "";
        display: block;
        position: absolute;
        top: calc(50% - 1px);
        left: calc(50% - 11px);
        width: 22px;
        height: 2px;
        border-radius: 9999px;
        background-color: #181818;
        text-indent: -9999px;
        overflow: hidden; }
        html:not(.is-scrolled) body.home #header p.menu button:before, html:not(.is-scrolled) body.home #header p.menu button:after, html:not(.is-scrolled) body.home
        #header p.menu button span {
          background-color: #fff; }
        .menu-active #header p.menu button:before, .menu-active #header p.menu button:after,
        .menu-active #header p.menu button span {
          background-color: #181818 !important; }
      .menu-active #header p.menu button span {
        opacity: 0; }
      #header p.menu button:before {
        margin-top: -8px; }
        .menu-active #header p.menu button:before {
          margin-top: 0;
          transform: rotate(45deg); }
      #header p.menu button:after {
        margin-top: 8px; }
        .menu-active #header p.menu button:after {
          margin-top: 0;
          transform: rotate(-45deg); }

#footer .container {
  margin: 0 auto;
  width: 84vw; }
  @media screen and (min-width: 1024px) {
    #footer .container {
      width: 1000px; } }
@media screen and (min-width: 1024px) {
  #footer .primary {
    border-top: 1px solid #E4E4E4; } }
#footer .primary .container {
  padding: 120px 0 55px; }
  @media screen and (min-width: 1024px) {
    #footer .primary .container {
      padding: calc(var(--base-size) * 60px) 0;
      display: flex;
      justify-content: space-between;
      align-items: center; } }
  #footer .primary .container .information .logo {
    margin-bottom: 6px;
    text-align: center; }
    @media screen and (min-width: 1024px) {
      #footer .primary .container .information .logo {
        margin-bottom: calc(var(--base-size) * 20px);
        text-align: left; } }
    #footer .primary .container .information .logo img {
      width: 100%;
      max-width: 318px; }
      @media screen and (min-width: 1024px) {
        #footer .primary .container .information .logo img {
          width: calc(var(--base-size) * 328px);
          max-width: none; } }
  #footer .primary .container .information .address {
    font-size: 16px;
    line-height: 30px;
    color: #0C1228;
    text-align: center; }
    @media screen and (min-width: 1024px) {
      #footer .primary .container .information .address {
        text-align: left;
        font-size: calc(var(--base-size) * 24px);
        line-height: calc(30 / 24); } }
  #footer .primary .container nav {
    margin-top: 45px; }
    @media screen and (min-width: 1024px) {
      #footer .primary .container nav {
        margin-top: 0; } }
    @media screen and (min-width: 1024px) {
      #footer .primary .container nav ul {
        display: flex; } }
    #footer .primary .container nav ul:before {
      content: "MENU";
      display: block;
      font-weight: 700;
      font-size: 16px;
      line-height: 32px;
      text-align: center;
      letter-spacing: 1px;
      text-transform: uppercase;
      color: #333333;
      margin-bottom: 16px; }
      @media screen and (min-width: 1024px) {
        #footer .primary .container nav ul:before {
          display: none; } }
    #footer .primary .container nav ul li {
      font-weight: 400;
      font-size: 16px;
      line-height: 32px;
      text-align: center;
      color: #333333; }
      @media screen and (min-width: 1024px) {
        #footer .primary .container nav ul li {
          margin-left: calc(var(--base-size) * 104px);
          font-weight: 500;
          font-size: calc(var(--base-size) * 24px);
          line-height: calc(28 / 24);
          color: #000000; } }
      #footer .primary .container nav ul li a {
        transition: all ease .2s; }
        @media screen and (min-width: 1024px) {
          #footer .primary .container nav ul li a:hover {
            color: #4169E1; } }
@media screen and (min-width: 1024px) {
  #footer .secondary {
    border-top: 1px solid #E4E4E4; } }
#footer .secondary .container {
  border-top: 1px solid #1F1F1F; }
  @media screen and (min-width: 1024px) {
    #footer .secondary .container {
      border: none; } }
  #footer .secondary .container .copyright {
    padding: 50px 0;
    font-size: 16px;
    line-height: 32px;
    text-align: center;
    color: #333333; }
    @media screen and (min-width: 1024px) {
      #footer .secondary .container .copyright {
        font-size: calc(var(--base-size) * 20px);
        line-height: calc(22 / 20);
        color: #646570;
        padding: calc(var(--base-size) * 14px) 0;
        text-align: left; } }

main.home .container {
  width: 84vw;
  margin: 0 auto; }
  @media screen and (min-width: 1024px) {
    main.home .container {
      width: calc(var(--base-size) * 1320px); } }
main.home header.visual {
  position: relative;
  background-image: url("../images/home/visual.jpg");
  background-size: cover;
  background-position: 50% 50%;
  display: flex;
  align-items: center;
  height: 100vh;
  height: 100svh; }
  main.home header.visual .bg {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0; }
    main.home header.visual .bg video {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: 50% 50%; }
  main.home header.visual p {
    position: relative;
    font-family: var(--font-family-en);
    font-style: normal;
    font-weight: 800;
    font-size: calc(40 / 375 * 100vw);
    line-height: calc(39 / 40);
    letter-spacing: -0.07em;
    text-transform: uppercase;
    opacity: 0.5;
    margin-left: calc(14 / 375 * 100vw);
    filter: url(#dilate);
    color: #fff; }
    @media screen and (min-width: 1024px) {
      main.home header.visual p {
        margin-left: calc(113 / 1920 * 100vw);
        font-family: var(--font-family-en);
        font-style: normal;
        font-weight: 800;
        font-size: calc(128 / 1920 * 100vw);
        line-height: calc(109 / 128);
        letter-spacing: 0.005em;
        text-transform: uppercase;
        opacity: 0.5; } }
  main.home header.visual:after {
    content: "";
    background-image: url("../images/home/visual_scroll.svg");
    background-size: 100% 100%;
    display: block;
    height: 80px;
    width: calc(87px * 80 / 153);
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    bottom: 31px; }
    @media screen and (min-width: 1024px) {
      main.home header.visual:after {
        width: calc(var(--base-size) * 87px);
        height: calc(var(--base-size) * 153px);
        bottom: calc(var(--base-size) * 58px); } }
main.home section.strengths {
  padding-bottom: 134px;
  overflow: hidden; }
  @media screen and (min-width: 1024px) {
    main.home section.strengths {
      padding-bottom: calc(var(--base-size) * 160px); } }
  main.home section.strengths > .container > hgroup {
    position: relative;
    padding-top: 173px;
    margin-bottom: 44px; }
    @media screen and (min-width: 1024px) {
      main.home section.strengths > .container > hgroup {
        padding-top: calc(var(--base-size) * 137px);
        margin-bottom: calc(var(--base-size) * 37px); } }
    main.home section.strengths > .container > hgroup p {
      position: absolute;
      font-family: var(--font-family-en);
      font-style: normal;
      font-weight: 800;
      font-size: 64px;
      line-height: 58px;
      text-align: center;
      letter-spacing: -2px;
      text-transform: uppercase;
      opacity: 0.2;
      color: transparent;
      filter: url(#dilate);
      color: #181818;
      top: 78px;
      left: 50%;
      transform: translateX(-50%); }
      @media screen and (min-width: 1024px) {
        main.home section.strengths > .container > hgroup p {
          font-family: var(--font-family-en);
          font-style: normal;
          font-weight: 800;
          font-size: calc(var(--base-size) * 250px);
          line-height: calc(175 / 250);
          letter-spacing: calc(var(--base-size) * (-3px));
          text-transform: uppercase;
          opacity: 0.05;
          opacity: .2; } }
      @media screen and (min-width: 1024px) {
        main.home section.strengths > .container > hgroup p {
          top: calc(var(--base-size) * 89px); } }
    main.home section.strengths > .container > hgroup h2 {
      position: relative;
      font-weight: 500;
      font-size: 16px;
      line-height: 32px;
      text-align: center;
      letter-spacing: 9px;
      color: #4169E1; }
      @media screen and (min-width: 1024px) {
        main.home section.strengths > .container > hgroup h2 {
          position: relative;
          font-size: calc(var(--base-size) * 24px);
          line-height: calc(32 / 24);
          letter-spacing: calc(var(--base-size) * 9px); } }
  main.home section.strengths > .container .copy {
    position: relative;
    font-weight: 700;
    font-size: 36px;
    line-height: 50px;
    text-align: center;
    letter-spacing: -1px;
    color: #181818;
    margin-bottom: 44px; }
    @media screen and (min-width: 1024px) {
      main.home section.strengths > .container .copy {
        font-size: calc(var(--base-size) * 64px);
        line-height: calc(76 / 64);
        letter-spacing: calc(var(--base-size) * 1.5px); } }
    @media screen and (min-width: 1024px) {
      main.home section.strengths > .container .copy {
        margin-bottom: calc(var(--base-size) * 162px); } }
  @media screen and (min-width: 1024px) {
    main.home section.strengths > .container ul {
      display: flex;
      gap: 0 calc(var(--base-size) * 30px);
      margin-top: 0; } }
  main.home section.strengths > .container ul li {
    margin-top: 44px; }
    @media screen and (min-width: 1024px) {
      main.home section.strengths > .container ul li {
        margin: 0;
        flex: 0 0 calc((100% - (var(--base-size) * 60px)) / 3); } }
    main.home section.strengths > .container ul li section header {
      display: flex;
      align-items: center;
      margin-bottom: 8px; }
      @media screen and (min-width: 1024px) {
        main.home section.strengths > .container ul li section header {
          margin-bottom: calc(var(--base-size) * 20px); } }
      main.home section.strengths > .container ul li section header .marker {
        font-family: var(--font-family-en);
        font-weight: 900;
        font-size: 81.6783px;
        line-height: 1;
        color: #4169E1;
        opacity: 0.1;
        margin-right: 2px; }
        @media screen and (min-width: 1024px) {
          main.home section.strengths > .container ul li section header .marker {
            font-weight: 900;
            font-size: calc(var(--base-size) * 128px);
            color: #4169E1;
            margin-right: calc(var(--base-size) * 8px); } }
      main.home section.strengths > .container ul li section header hgroup p {
        font-family: var(--font-family-en);
        font-weight: 700;
        font-size: 20.4196px;
        line-height: 100%;
        text-transform: uppercase;
        color: #4169E1;
        margin-bottom: 3px; }
        @media screen and (min-width: 1024px) {
          main.home section.strengths > .container ul li section header hgroup p {
            font-size: calc(var(--base-size) * 32px);
            margin-bottom: calc(var(--base-size) * 6px); } }
      main.home section.strengths > .container ul li section header hgroup h3 {
        font-weight: 700;
        font-size: 40.8392px;
        line-height: 100%;
        color: #181818; }
        @media screen and (min-width: 1024px) {
          main.home section.strengths > .container ul li section header hgroup h3 {
            font-size: calc(var(--base-size) * 64px); } }
    main.home section.strengths > .container ul li section figure {
      margin-bottom: 14px; }
      @media screen and (min-width: 1024px) {
        main.home section.strengths > .container ul li section figure {
          margin-bottom: calc(var(--base-size) * 24px); } }
      main.home section.strengths > .container ul li section figure img {
        width: 100%; }
    main.home section.strengths > .container ul li section > p {
      font-weight: 600;
      font-size: 15.3147px;
      line-height: 17px;
      text-align: center;
      letter-spacing: 0.159528px;
      color: #595959; }
      @media screen and (min-width: 1024px) {
        main.home section.strengths > .container ul li section > p {
          font-size: calc(var(--base-size) * 24px);
          line-height: calc(33 / 24);
          letter-spacing: calc(var(--base-size) * 0.25px); } }
  main.home section.strengths > .container p.action {
    text-align: center;
    margin-top: 60px; }
    @media screen and (min-width: 1024px) {
      main.home section.strengths > .container p.action {
        margin-top: calc(var(--base-size) * 102px); } }
    main.home section.strengths > .container p.action a {
      position: relative;
      display: inline-flex;
      justify-content: center;
      align-items: center;
      font-family: var(--font-family-en);
      font-style: normal;
      font-weight: 600;
      font-size: 15.1045px;
      line-height: 18px;
      text-align: center;
      text-transform: uppercase;
      background-color: #4169E1;
      color: #FFFFFF;
      width: 253px;
      height: 66px;
      transition: all ease .2s; }
      @media screen and (min-width: 1024px) {
        main.home section.strengths > .container p.action a {
          font-size: calc(var(--base-size) * 24px);
          line-height: calc(29 / 24);
          width: calc(var(--base-size) * 402px);
          height: calc(var(--base-size) * 118px);
          background-color: transparent;
          border: 2px solid #4169E1;
          color: #4169E1; } }
      main.home section.strengths > .container p.action a:before {
        content: "";
        background-color: #4169E1;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 0;
        transition: all ease .2s; }
      main.home section.strengths > .container p.action a span {
        position: relative; }
      @media screen and (min-width: 1024px) {
        main.home section.strengths > .container p.action a:hover {
          color: #fff; }
          main.home section.strengths > .container p.action a:hover:before {
            height: 100%; } }
main.home section.technology {
  position: relative;
  background-color: #F8F9FC;
  padding-top: 94px;
  padding-bottom: 115px;
  overflow: hidden; }
  @media screen and (min-width: 1024px) {
    main.home section.technology {
      padding-top: calc(var(--base-size) * 250px);
      padding-bottom: calc(var(--base-size) * 199px); } }
  main.home section.technology .container .media {
    display: flex;
    flex-direction: column; }
    @media screen and (min-width: 1024px) {
      main.home section.technology .container .media {
        flex-direction: row; } }
    main.home section.technology .container .media .content {
      display: contents; }
      @media screen and (min-width: 1024px) {
        main.home section.technology .container .media .content {
          display: block;
          flex: 0 0 45%; } }
      main.home section.technology .container .media .content header hgroup p {
        position: absolute;
        font-family: var(--font-family-en);
        font-style: normal;
        font-weight: 800;
        font-size: 64px;
        line-height: 58px;
        text-align: center;
        letter-spacing: -2px;
        text-transform: uppercase;
        opacity: 0.2;
        color: transparent;
        filter: url(#dilate);
        color: #181818;
        top: 41px;
        left: 50%;
        transform: translateX(-50%);
        letter-spacing: -9px;
        /*
        position: absolute;
        top: calc(var(--base-size) * 89px);
        left: 50%;
        transform: translateX(-50%);
        font-family: var(--font-family-en);
        font-style: normal;
        font-weight: 800;
        font-size: calc(var(--base-size) * 250px);
        line-height: calc(175 / 250);
        text-align: center;
        letter-spacing:  calc(var(--base-size) * (-21px));
        text-transform: uppercase;
        opacity: 0.05;
        color: transparent;
        -webkit-text-stroke: 2px #181818;
        */ }
        @media screen and (min-width: 1024px) {
          main.home section.technology .container .media .content header hgroup p {
            font-family: var(--font-family-en);
            font-style: normal;
            font-weight: 800;
            font-size: calc(var(--base-size) * 250px);
            line-height: calc(175 / 250);
            letter-spacing: calc(var(--base-size) * (-3px));
            text-transform: uppercase;
            opacity: 0.05;
            opacity: .2; } }
        @media screen and (min-width: 1024px) {
          main.home section.technology .container .media .content header hgroup p {
            top: calc(var(--base-size) * 89px);
            left: 50%;
            letter-spacing: -21px; } }
      main.home section.technology .container .media .content header hgroup h2 {
        position: relative;
        font-weight: 500;
        font-size: 16px;
        line-height: 32px;
        text-align: center;
        letter-spacing: 9px;
        color: #4169E1;
        margin-bottom: 15px; }
        @media screen and (min-width: 1024px) {
          main.home section.technology .container .media .content header hgroup h2 {
            position: relative;
            font-size: calc(var(--base-size) * 24px);
            line-height: calc(32 / 24);
            letter-spacing: calc(var(--base-size) * 9px); } }
        @media screen and (min-width: 1024px) {
          main.home section.technology .container .media .content header hgroup h2 {
            text-align: left;
            margin-bottom: calc(var(--base-size) * 30px); } }
      main.home section.technology .container .media .content header .copy {
        position: relative;
        font-weight: 700;
        font-size: 36px;
        line-height: 50px;
        text-align: center;
        letter-spacing: -1px;
        color: #181818;
        margin-bottom: 40px; }
        @media screen and (min-width: 1024px) {
          main.home section.technology .container .media .content header .copy {
            font-size: calc(var(--base-size) * 64px);
            line-height: calc(76 / 64);
            letter-spacing: calc(var(--base-size) * 1.5px); } }
        @media screen and (min-width: 1024px) {
          main.home section.technology .container .media .content header .copy {
            text-align: left;
            margin-bottom: calc(var(--base-size) * 50px); } }
      main.home section.technology .container .media .content .body {
        order: 2; }
        @media screen and (min-width: 1024px) {
          main.home section.technology .container .media .content .body {
            order: 1; } }
        main.home section.technology .container .media .content .body ul {
          width: fit-content;
          margin: 0 auto; }
          @media screen and (min-width: 1024px) {
            main.home section.technology .container .media .content .body ul {
              margin: 0; } }
          main.home section.technology .container .media .content .body ul li {
            position: relative;
            font-weight: 600;
            font-size: 15.3924px;
            line-height: 15px;
            color: #777C90;
            margin-bottom: 16px;
            padding-left: 22px; }
            @media screen and (min-width: 1024px) {
              main.home section.technology .container .media .content .body ul li {
                font-size: calc(var(--base-size) * 32px);
                line-height: 1;
                margin-bottom: calc(var(--base-size) * 32px);
                padding-left: calc(var(--base-size) * 46px); } }
            main.home section.technology .container .media .content .body ul li:before {
              content: "";
              background-image: url("../images/home/technology_icon_check.svg");
              background-size: 100% 100%;
              width: 15px;
              height: 15px;
              position: absolute;
              top: 50%;
              left: 0;
              transform: translateY(-50%); }
              @media screen and (min-width: 1024px) {
                main.home section.technology .container .media .content .body ul li:before {
                  width: calc(var(--base-size) * 31px);
                  height: calc(var(--base-size) * 31px); } }
        main.home section.technology .container .media .content .body .action {
          margin-top: 46px;
          text-align: center; }
          @media screen and (min-width: 1024px) {
            main.home section.technology .container .media .content .body .action {
              text-align: left;
              margin-top: calc(var(--base-size) * 65px); } }
          main.home section.technology .container .media .content .body .action a {
            position: relative;
            display: inline-flex;
            justify-content: center;
            align-items: center;
            font-family: var(--font-family-en);
            font-style: normal;
            font-weight: 600;
            font-size: 15.1045px;
            line-height: 18px;
            text-align: center;
            text-transform: uppercase;
            background-color: #4169E1;
            color: #FFFFFF;
            width: 253px;
            height: 66px;
            transition: all ease .2s; }
            @media screen and (min-width: 1024px) {
              main.home section.technology .container .media .content .body .action a {
                font-size: calc(var(--base-size) * 24px);
                line-height: calc(29 / 24);
                width: calc(var(--base-size) * 402px);
                height: calc(var(--base-size) * 118px);
                background-color: transparent;
                border: 2px solid #4169E1;
                color: #4169E1; } }
            main.home section.technology .container .media .content .body .action a:before {
              content: "";
              background-color: #4169E1;
              position: absolute;
              top: 0;
              left: 0;
              right: 0;
              height: 0;
              transition: all ease .2s; }
            main.home section.technology .container .media .content .body .action a span {
              position: relative; }
            @media screen and (min-width: 1024px) {
              main.home section.technology .container .media .content .body .action a:hover {
                color: #fff; }
                main.home section.technology .container .media .content .body .action a:hover:before {
                  height: 100%; } }
    main.home section.technology .container .media figure {
      position: relative;
      order: 1;
      width: calc(323 / 375 * 100vw);
      height: calc(339 / 375 * 100vw);
      margin: 0 auto;
      margin-bottom: 70px; }
      @media screen and (min-width: 1024px) {
        main.home section.technology .container .media figure {
          width: auto;
          height: auto;
          order: 2;
          flex: 0 0 55%;
          margin: 0; } }
      main.home section.technology .container .media figure:before {
        content: "";
        display: block;
        width: calc(214 / 375 * 100vw);
        height: calc(242 / 375 * 100vw);
        top: calc(54 / 375 * 100vw);
        left: calc(60 / 375 * 100vw);
        background-color: #4169E1;
        position: relative; }
        @media screen and (min-width: 1024px) {
          main.home section.technology .container .media figure:before {
            width: calc(var(--base-size) * 231px);
            height: calc(var(--base-size) * 275px);
            top: calc(var(--base-size) * 425px);
            left: calc(var(--base-size) * 58px);
            z-index: 1; } }
      main.home section.technology .container .media figure picture:nth-child(1) {
        width: calc(202 / 375 * 100vw);
        display: block;
        position: absolute;
        top: 0;
        left: 0; }
        @media screen and (min-width: 1024px) {
          main.home section.technology .container .media figure picture:nth-child(1) {
            top: calc(var(--base-size) * 24px);
            left: calc(var(--base-size) * 116px);
            width: calc(var(--base-size) * 838px); } }
        main.home section.technology .container .media figure picture:nth-child(1) img {
          width: 100%; }
      main.home section.technology .container .media figure picture:nth-child(2) {
        display: block;
        position: absolute;
        width: calc(97 / 375 * 100vw);
        right: 0;
        bottom: 0; }
        @media screen and (min-width: 1024px) {
          main.home section.technology .container .media figure picture:nth-child(2) {
            top: calc(var(--base-size) * 450px);
            right: auto;
            bottom: auto;
            left: 0;
            width: calc(var(--base-size) * 242px);
            z-index: 2; } }
        main.home section.technology .container .media figure picture:nth-child(2) img {
          width: 100%; }
main.home section.product {
  position: relative;
  overflow: hidden;
  padding-top: 115px;
  padding-bottom: 118px; }
  @media screen and (min-width: 1024px) {
    main.home section.product {
      padding-top: calc(var(--base-size) * 198px);
      padding-bottom: calc(var(--base-size) * 319px); } }
  @media screen and (min-width: 1024px) {
    main.home section.product .container hgroup {
      margin-bottom: calc(var(--base-size) * 31px); } }
  main.home section.product .container hgroup p {
    position: absolute;
    font-family: var(--font-family-en);
    font-style: normal;
    font-weight: 800;
    font-size: 64px;
    line-height: 58px;
    text-align: center;
    letter-spacing: -2px;
    text-transform: uppercase;
    opacity: 0.2;
    color: transparent;
    filter: url(#dilate);
    color: #181818;
    top: 60px;
    left: 50%;
    transform: translate(-50%); }
    @media screen and (min-width: 1024px) {
      main.home section.product .container hgroup p {
        font-family: var(--font-family-en);
        font-style: normal;
        font-weight: 800;
        font-size: calc(var(--base-size) * 250px);
        line-height: calc(175 / 250);
        letter-spacing: calc(var(--base-size) * (-3px));
        text-transform: uppercase;
        opacity: 0.05;
        opacity: .2; } }
    @media screen and (min-width: 1024px) {
      main.home section.product .container hgroup p {
        top: calc(var(--base-size) * 126px);
        left: calc(var(--base-size) * 26px);
        transform: none; } }
  main.home section.product .container hgroup h2 {
    position: relative;
    font-weight: 500;
    font-size: 16px;
    line-height: 32px;
    text-align: center;
    letter-spacing: 9px;
    color: #4169E1;
    margin-bottom: 20px; }
    @media screen and (min-width: 1024px) {
      main.home section.product .container hgroup h2 {
        position: relative;
        font-size: calc(var(--base-size) * 24px);
        line-height: calc(32 / 24);
        letter-spacing: calc(var(--base-size) * 9px); } }
    @media screen and (min-width: 1024px) {
      main.home section.product .container hgroup h2 {
        margin-bottom: calc(var(--base-size) * 30px); } }
  main.home section.product .container .copy {
    position: relative;
    font-weight: 700;
    font-size: 36px;
    line-height: 50px;
    text-align: center;
    letter-spacing: -1px;
    color: #181818;
    margin-bottom: 50px; }
    @media screen and (min-width: 1024px) {
      main.home section.product .container .copy {
        font-size: calc(var(--base-size) * 64px);
        line-height: calc(76 / 64);
        letter-spacing: calc(var(--base-size) * 1.5px); } }
    @media screen and (min-width: 1024px) {
      main.home section.product .container .copy {
        margin-bottom: calc(var(--base-size) * 87px); } }
  main.home section.product .container .slider {
    margin: 0 -8vw; }
    @media screen and (min-width: 1024px) {
      main.home section.product .container .slider {
        margin: 0; } }
    main.home section.product .container .slider .swiper-slide {
      box-sizing: border-box;
      padding: 0 4px; }
      @media screen and (min-width: 1024px) {
        main.home section.product .container .slider .swiper-slide {
          padding: 0 calc(var(--base-size) * 30px); } }
      main.home section.product .container .slider .swiper-slide figure {
        margin-bottom: 5px; }
        @media screen and (min-width: 1024px) {
          main.home section.product .container .slider .swiper-slide figure {
            margin-bottom: calc(var(--base-size) * (-22px)); } }
      main.home section.product .container .slider .swiper-slide .content {
        padding-left: calc(50 / 375 * 100vw); }
        @media screen and (min-width: 1024px) {
          main.home section.product .container .slider .swiper-slide .content {
            padding-left: 0; } }
        main.home section.product .container .slider .swiper-slide .content p:nth-child(1) {
          font-weight: 700;
          font-size: 16px;
          line-height: 19px;
          letter-spacing: 0.594138px;
          text-transform: uppercase;
          color: #4169E1;
          margin-bottom: 17px; }
          @media screen and (min-width: 1024px) {
            main.home section.product .container .slider .swiper-slide .content p:nth-child(1) {
              font-size: calc(var(--base-size) * 24px);
              line-height: calc(46 / 24);
              letter-spacing: calc(var(--base-size) * 1.5px);
              text-transform: uppercase;
              margin-bottom: calc(var(--base-size) * 15px); } }
        main.home section.product .container .slider .swiper-slide .content p:nth-child(2) {
          font-weight: 900;
          font-size: 24px;
          line-height: 100%;
          letter-spacing: -0.594138px;
          color: #333333; }
          @media screen and (min-width: 1024px) {
            main.home section.product .container .slider .swiper-slide .content p:nth-child(2) {
              font-size: calc(var(--base-size) * 32px);
              line-height: calc(46 / 32);
              letter-spacing: calc(var(--base-size) * (-1.5px)); } }
    main.home section.product .container .slider .pager {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 0 20px;
      margin-top: 80px; }
      @media screen and (min-width: 1024px) {
        main.home section.product .container .slider .pager {
          gap: 0 calc(var(--base-size) * 50px);
          margin-top: calc(var(--base-size) * 100px); } }
      main.home section.product .container .slider .pager .prev,
      main.home section.product .container .slider .pager .next {
        cursor: pointer;
        width: 50px;
        height: 50px;
        border: 2px solid #4169E1;
        display: flex;
        justify-content: center;
        align-items: center;
        transition: all ease .2s; }
        @media screen and (min-width: 1024px) {
          main.home section.product .container .slider .pager .prev,
          main.home section.product .container .slider .pager .next {
            width: calc(var(--base-size) * 90px);
            height: calc(var(--base-size) * 90px); } }
        main.home section.product .container .slider .pager .prev:before,
        main.home section.product .container .slider .pager .next:before {
          content: "";
          display: block;
          width: 9px;
          height: 16.4117647059px;
          -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
          background-color: #4169E1;
          transition: all ease .2s; }
          @media screen and (min-width: 1024px) {
            main.home section.product .container .slider .pager .prev:before,
            main.home section.product .container .slider .pager .next:before {
              width: calc(var(--base-size) * 17px);
              height: calc(var(--base-size) * 31px); } }
        @media screen and (min-width: 1024px) {
          main.home section.product .container .slider .pager .prev:hover,
          main.home section.product .container .slider .pager .next:hover {
            background-color: #4169E1; }
            main.home section.product .container .slider .pager .prev:hover:before,
            main.home section.product .container .slider .pager .next:hover:before {
              background-color: #fff; } }
      main.home section.product .container .slider .pager .prev:before {
        -webkit-mask-image: url("../images/home/product_pager_prev.svg");
        mask-image: url("../images/home/product_pager_prev.svg"); }
      main.home section.product .container .slider .pager .next:before {
        -webkit-mask-image: url("../images/home/product_pager_next.svg");
        mask-image: url("../images/home/product_pager_next.svg"); }
      main.home section.product .container .slider .pager .counter {
        font-weight: 400;
        font-size: 16px;
        line-height: 32px;
        text-align: center;
        color: #333333; }
        @media screen and (min-width: 1024px) {
          main.home section.product .container .slider .pager .counter {
            display: none; } }
  main.home section.product .container .action {
    text-align: right;
    margin-top: 40px; }
    @media screen and (min-width: 1024px) {
      main.home section.product .container .action {
        margin-top: calc(var(--base-size) * (-24px)); } }
    main.home section.product .container .action a {
      position: relative;
      display: inline-block;
      font-family: var(--font-family-en);
      font-style: normal;
      font-weight: 700;
      line-height: 1.1;
      color: #4169E1;
      font-size: 12px;
      padding-right: 36px;
      letter-spacing: 1.5px;
      transition: all ease .2s; }
      @media screen and (min-width: 1024px) {
        main.home section.product .container .action a {
          font-size: calc(var(--base-size) * 20px);
          letter-spacing: calc(var(--base-size) * 3px);
          padding-right: calc(var(--base-size) * 60px); } }
      main.home section.product .container .action a:after {
        content: "";
        background-image: url("../images/home/icon_link_arrow.svg");
        background-size: 100% 100%;
        display: block;
        width: 13px;
        height: 13px;
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        transition: all ease .2s; }
        @media screen and (min-width: 1024px) {
          main.home section.product .container .action a:after {
            width: calc(var(--base-size) * 22px);
            height: calc(var(--base-size) * 22px); } }
      @media screen and (min-width: 1024px) {
        main.home section.product .container .action a:hover {
          opacity: .7; }
          main.home section.product .container .action a:hover:after {
            right: -8px; } }
main.home section.company {
  overflow: hidden;
  padding-bottom: 78px; }
  @media screen and (min-width: 1024px) {
    main.home section.company {
      padding-bottom: calc(var(--base-size) * 316px); } }
  main.home section.company .hero {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 372px;
    background-image: url("../images/home/company_hero.jpg");
    background-size: cover;
    background-position: 50% 50%;
    margin-bottom: 68px; }
    @media screen and (min-width: 1024px) {
      main.home section.company .hero {
        height: calc(var(--base-size) * 728px);
        margin-bottom: calc(var(--base-size) * 114px); } }
    main.home section.company .hero p {
      position: absolute;
      font-family: var(--font-family-en);
      font-style: normal;
      font-weight: 800;
      font-size: 64px;
      line-height: 58px;
      text-align: center;
      letter-spacing: -2px;
      text-transform: uppercase;
      opacity: 0.2;
      color: transparent;
      filter: url(#dilate);
      color: #181818;
      filter: url(#dilate);
      color: #FFFFFF;
      opacity: 1 !important; }
      @media screen and (min-width: 1024px) {
        main.home section.company .hero p {
          font-family: var(--font-family-en);
          font-style: normal;
          font-weight: 800;
          font-size: calc(var(--base-size) * 250px);
          line-height: calc(175 / 250);
          letter-spacing: calc(var(--base-size) * (-3px));
          text-transform: uppercase;
          opacity: 0.05;
          opacity: .2; } }
  main.home section.company .container .media {
    display: flex;
    flex-direction: column; }
    @media screen and (min-width: 1024px) {
      main.home section.company .container .media {
        flex-direction: row;
        justify-content: space-between; } }
    main.home section.company .container .media .content {
      order: 2; }
      @media screen and (min-width: 1024px) {
        main.home section.company .container .media .content {
          flex: 0 0 32%;
          padding-top: calc(var(--base-size) * 60px);
          order: 1; } }
      main.home section.company .container .media .content h2 {
        position: relative;
        font-weight: 500;
        font-size: 16px;
        line-height: 32px;
        text-align: center;
        letter-spacing: 9px;
        color: #4169E1;
        margin-bottom: 16px; }
        @media screen and (min-width: 1024px) {
          main.home section.company .container .media .content h2 {
            position: relative;
            font-size: calc(var(--base-size) * 24px);
            line-height: calc(32 / 24);
            letter-spacing: calc(var(--base-size) * 9px); } }
        @media screen and (min-width: 1024px) {
          main.home section.company .container .media .content h2 {
            text-align: left;
            margin-bottom: calc(var(--base-size) * 43px); } }
      main.home section.company .container .media .content .copy {
        position: relative;
        font-weight: 700;
        font-size: 36px;
        line-height: 50px;
        text-align: center;
        letter-spacing: -1px;
        color: #181818; }
        @media screen and (min-width: 1024px) {
          main.home section.company .container .media .content .copy {
            font-size: calc(var(--base-size) * 64px);
            line-height: calc(76 / 64);
            letter-spacing: calc(var(--base-size) * 1.5px); } }
        @media screen and (min-width: 1024px) {
          main.home section.company .container .media .content .copy {
            text-align: left; } }
      main.home section.company .container .media .content p.action {
        margin-top: calc(var(--base-size) * 67px);
        text-align: right; }
        main.home section.company .container .media .content p.action a {
          position: relative;
          display: inline-block;
          font-family: var(--font-family-en);
          font-style: normal;
          font-weight: 700;
          line-height: 1.1;
          color: #4169E1;
          font-size: 12px;
          padding-right: 36px;
          letter-spacing: 1.5px;
          transition: all ease .2s; }
          @media screen and (min-width: 1024px) {
            main.home section.company .container .media .content p.action a {
              font-size: calc(var(--base-size) * 20px);
              letter-spacing: calc(var(--base-size) * 3px);
              padding-right: calc(var(--base-size) * 60px); } }
          main.home section.company .container .media .content p.action a:after {
            content: "";
            background-image: url("../images/home/icon_link_arrow.svg");
            background-size: 100% 100%;
            display: block;
            width: 13px;
            height: 13px;
            position: absolute;
            right: 0;
            top: 50%;
            transform: translateY(-50%);
            transition: all ease .2s; }
            @media screen and (min-width: 1024px) {
              main.home section.company .container .media .content p.action a:after {
                width: calc(var(--base-size) * 22px);
                height: calc(var(--base-size) * 22px); } }
          @media screen and (min-width: 1024px) {
            main.home section.company .container .media .content p.action a:hover {
              opacity: .7; }
              main.home section.company .container .media .content p.action a:hover:after {
                right: -8px; } }
    main.home section.company .container .media figure {
      position: relative;
      order: 1;
      width: calc(294 / 375 * 100vw);
      height: calc(258 / 375 * 100vw);
      margin: 0 auto;
      margin-bottom: 53px; }
      @media screen and (min-width: 1024px) {
        main.home section.company .container .media figure {
          order: 2;
          flex: 0 0 54%;
          width: auto;
          height: auto;
          margin: 0; } }
      main.home section.company .container .media figure picture:nth-child(1) {
        display: block;
        position: absolute;
        width: calc(125 / 375 * 100vw);
        top: 0;
        left: calc(32 / 375 * 100vw); }
        @media screen and (min-width: 1024px) {
          main.home section.company .container .media figure picture:nth-child(1) {
            top: 0;
            left: auto;
            right: calc(var(--base-size) * 336px);
            width: calc(var(--base-size) * 311px); } }
      main.home section.company .container .media figure picture:nth-child(2) {
        display: block;
        width: calc(125 / 375 * 100vw);
        position: absolute;
        top: calc(51 / 375 * 100vw);
        right: 0; }
        @media screen and (min-width: 1024px) {
          main.home section.company .container .media figure picture:nth-child(2) {
            width: calc(var(--base-size) * 311px);
            top: calc(var(--base-size) * 90px);
            right: 0; } }
        main.home section.company .container .media figure picture:nth-child(2) img {
          width: 100%; }
      main.home section.company .container .media figure picture:nth-child(3) {
        display: block;
        width: calc(134 / 375 * 100vw);
        top: calc(132 / 375 * 100vw);
        left: 0;
        position: absolute; }
        @media screen and (min-width: 1024px) {
          main.home section.company .container .media figure picture:nth-child(3) {
            width: calc(var(--base-size) * 291px);
            top: calc(var(--base-size) * 289px);
            left: auto;
            right: calc(var(--base-size) * 403px); } }
        main.home section.company .container .media figure picture:nth-child(3) img {
          width: 100%; }
main.home section.access {
  position: relative;
  overflow: hidden;
  padding-bottom: 50px; }
  @media screen and (min-width: 1024px) {
    main.home section.access {
      padding-top: calc(var(--base-size) * 115px);
      padding-bottom: calc(var(--base-size) * 142px); } }
  main.home section.access .container hgroup {
    position: relative;
    padding-top: 120px; }
    @media screen and (min-width: 1024px) {
      main.home section.access .container hgroup {
        padding-top: 0;
        position: static;
        margin-bottom: calc(var(--base-size) * 27px); } }
    main.home section.access .container hgroup p {
      position: absolute;
      font-family: var(--font-family-en);
      font-style: normal;
      font-weight: 800;
      font-size: 64px;
      line-height: 58px;
      text-align: center;
      letter-spacing: -2px;
      text-transform: uppercase;
      opacity: 0.2;
      color: transparent;
      filter: url(#dilate);
      color: #181818;
      text-align: left;
      position: absolute;
      top: 73px;
      left: 0; }
      @media screen and (min-width: 1024px) {
        main.home section.access .container hgroup p {
          font-family: var(--font-family-en);
          font-style: normal;
          font-weight: 800;
          font-size: calc(var(--base-size) * 250px);
          line-height: calc(175 / 250);
          letter-spacing: calc(var(--base-size) * (-3px));
          text-transform: uppercase;
          opacity: 0.05;
          opacity: .2; } }
      @media screen and (min-width: 1024px) {
        main.home section.access .container hgroup p {
          top: 2px;
          right: calc(var(--base-size) * (-28px)); } }
    main.home section.access .container hgroup h2 {
      position: relative;
      font-weight: 500;
      font-size: 16px;
      line-height: 32px;
      text-align: center;
      letter-spacing: 9px;
      color: #4169E1;
      text-align: left;
      margin-bottom: 12px; }
      @media screen and (min-width: 1024px) {
        main.home section.access .container hgroup h2 {
          position: relative;
          font-size: calc(var(--base-size) * 24px);
          line-height: calc(32 / 24);
          letter-spacing: calc(var(--base-size) * 9px); } }
      @media screen and (min-width: 1024px) {
        main.home section.access .container hgroup h2 {
          margin-bottom: calc(var(--base-size) * 30px); } }
  main.home section.access .container .map {
    position: relative;
    height: 800px;
    margin: 0 -8vw; }
    @media screen and (min-width: 1024px) {
      main.home section.access .container .map {
        margin: 0;
        height: calc(var(--base-size) * 350px); } }
    main.home section.access .container .map iframe {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%; }
main.home section.recruit {
  position: relative;
  padding-top: 191px;
  padding-bottom: 79px;
  background-color: #F8F9FC;
  overflow: hidden; }
  @media screen and (min-width: 1024px) {
    main.home section.recruit {
      padding-top: calc(var(--base-size) * 300px);
      padding-bottom: calc(var(--base-size) * 369px); } }
  main.home section.recruit .container .media {
    display: flex;
    flex-direction: column; }
    @media screen and (min-width: 1024px) {
      main.home section.recruit .container .media {
        flex-direction: row; } }
    main.home section.recruit .container .media .content {
      display: contents; }
      @media screen and (min-width: 1024px) {
        main.home section.recruit .container .media .content {
          display: block;
          flex: 0 0 62%; } }
      @media screen and (min-width: 1024px) {
        main.home section.recruit .container .media .content hgroup {
          padding-top: calc(var(--base-size) * 69px); } }
      main.home section.recruit .container .media .content hgroup p {
        position: absolute;
        font-family: var(--font-family-en);
        font-style: normal;
        font-weight: 800;
        font-size: 64px;
        line-height: 58px;
        text-align: center;
        letter-spacing: -2px;
        text-transform: uppercase;
        opacity: 0.2;
        color: transparent;
        filter: url(#dilate);
        color: #181818;
        top: 47px;
        left: 50%;
        transform: translateX(-50%); }
        @media screen and (min-width: 1024px) {
          main.home section.recruit .container .media .content hgroup p {
            font-family: var(--font-family-en);
            font-style: normal;
            font-weight: 800;
            font-size: calc(var(--base-size) * 250px);
            line-height: calc(175 / 250);
            letter-spacing: calc(var(--base-size) * (-3px));
            text-transform: uppercase;
            opacity: 0.05;
            opacity: .2; } }
        @media screen and (min-width: 1024px) {
          main.home section.recruit .container .media .content hgroup p {
            top: calc(var(--base-size) * 102px); } }
      main.home section.recruit .container .media .content hgroup h2 {
        position: relative;
        font-weight: 700;
        font-size: 36px;
        line-height: 50px;
        text-align: center;
        letter-spacing: -1px;
        color: #181818;
        margin-bottom: 43px; }
        @media screen and (min-width: 1024px) {
          main.home section.recruit .container .media .content hgroup h2 {
            font-size: calc(var(--base-size) * 64px);
            line-height: calc(76 / 64);
            letter-spacing: calc(var(--base-size) * 1.5px); } }
        @media screen and (min-width: 1024px) {
          main.home section.recruit .container .media .content hgroup h2 {
            text-align: left;
            margin-bottom: calc(var(--base-size) * 52px); } }
      main.home section.recruit .container .media .content .body {
        order: 2; }
        main.home section.recruit .container .media .content .body p {
          font-weight: 500;
          font-size: 15.39px;
          line-height: 27px;
          text-align: center;
          color: #595959; }
          @media screen and (min-width: 1024px) {
            main.home section.recruit .container .media .content .body p {
              font-size: calc(var(--base-size) * 24px);
              line-height: calc(33 / 24);
              text-align: left; } }
        main.home section.recruit .container .media .content .body .action {
          margin-top: 57px; }
          @media screen and (min-width: 1024px) {
            main.home section.recruit .container .media .content .body .action {
              margin-top: calc(var(--base-size) * 78px); } }
          main.home section.recruit .container .media .content .body .action a {
            position: relative;
            display: inline-flex;
            justify-content: center;
            align-items: center;
            font-family: var(--font-family-en);
            font-style: normal;
            font-weight: 600;
            font-size: 15.1045px;
            line-height: 18px;
            text-align: center;
            text-transform: uppercase;
            background-color: #4169E1;
            color: #FFFFFF;
            width: 253px;
            height: 66px;
            transition: all ease .2s; }
            @media screen and (min-width: 1024px) {
              main.home section.recruit .container .media .content .body .action a {
                font-size: calc(var(--base-size) * 24px);
                line-height: calc(29 / 24);
                width: calc(var(--base-size) * 402px);
                height: calc(var(--base-size) * 118px);
                background-color: transparent;
                border: 2px solid #4169E1;
                color: #4169E1; } }
            main.home section.recruit .container .media .content .body .action a:before {
              content: "";
              background-color: #4169E1;
              position: absolute;
              top: 0;
              left: 0;
              right: 0;
              height: 0;
              transition: all ease .2s; }
            main.home section.recruit .container .media .content .body .action a span {
              position: relative; }
            @media screen and (min-width: 1024px) {
              main.home section.recruit .container .media .content .body .action a:hover {
                color: #fff; }
                main.home section.recruit .container .media .content .body .action a:hover:before {
                  height: 100%; } }
    main.home section.recruit .container .media figure {
      position: relative;
      order: 1;
      width: calc(323 / 375 * 100vw);
      height: calc(329 / 375 * 100vw);
      margin: 0 auto;
      margin-bottom: 26px; }
      @media screen and (min-width: 1024px) {
        main.home section.recruit .container .media figure {
          flex: 0 0 38%;
          width: auto;
          height: auto;
          margin: 0; } }
      main.home section.recruit .container .media figure:before {
        content: "";
        display: block;
        width: calc(214 / 375 * 100vw);
        height: calc(242 / 375 * 100vw);
        position: absolute;
        background-color: #4169E1;
        top: calc(54 / 375 * 100vw);
        left: calc(60 / 375 * 100vw); }
        @media screen and (min-width: 1024px) {
          main.home section.recruit .container .media figure:before {
            z-index: 1;
            width: calc(var(--base-size) * 387px);
            height: calc(var(--base-size) * 254px);
            top: calc(var(--base-size) * (434px));
            left: calc(var(--base-size) * (-142px)); } }
      main.home section.recruit .container .media figure picture:nth-child(1) {
        display: block;
        position: absolute;
        top: 0;
        left: 0;
        width: calc(202 / 375 * 100vw); }
        @media screen and (min-width: 1024px) {
          main.home section.recruit .container .media figure picture:nth-child(1) {
            width: calc(var(--base-size) * 711px); } }
        main.home section.recruit .container .media figure picture:nth-child(1) img {
          width: 100%; }
      main.home section.recruit .container .media figure picture:nth-child(2) {
        width: calc(97 / 375 * 100vw);
        display: block;
        position: absolute;
        z-index: 2;
        bottom: 0;
        right: 0; }
        @media screen and (min-width: 1024px) {
          main.home section.recruit .container .media figure picture:nth-child(2) {
            width: calc(var(--base-size) * 388px);
            top: calc(var(--base-size) * (460px));
            left: calc(var(--base-size) * (-172px)); } }
        main.home section.recruit .container .media figure picture:nth-child(2) img {
          width: 100%; }
main.home nav.contact {
  overflow: hidden;
  position: relative;
  background-color: #4169E1;
  color: #fff;
  padding-top: 120px;
  padding-bottom: 96px; }
  @media screen and (min-width: 1024px) {
    main.home nav.contact {
      padding-top: calc(var(--base-size) * 189px);
      padding-bottom: calc(var(--base-size) * 95px); } }
  main.home nav.contact .container {
    margin: 0 auto;
    width: calc(84vw); }
    @media screen and (min-width: 1024px) {
      main.home nav.contact .container {
        width: calc(var(--base-size) * 1320px); } }
    main.home nav.contact .container hgroup p {
      position: absolute;
      top: 61px;
      left: 50%;
      transform: translateX(-50%);
      font-family: var(--font-family-en);
      font-style: normal;
      font-weight: 800;
      font-size: 64px;
      line-height: 90%;
      text-align: center;
      letter-spacing: 1.01846px;
      text-transform: uppercase;
      opacity: 0.5;
      filter: url(#dilate);
      color: #D8D8D8; }
      @media screen and (min-width: 1024px) {
        main.home nav.contact .container hgroup p {
          top: calc(var(--base-size) * 90px);
          font-size: calc(var(--base-size) * 250px);
          line-height: calc(175 / 250);
          letter-spacing: calc(var(--base-size) * (-3px)); } }
    main.home nav.contact .container hgroup h2 {
      position: relative;
      font-weight: 500;
      font-size: 16px;
      line-height: 100%;
      letter-spacing: 1.9096px;
      text-transform: uppercase;
      text-align: center;
      margin-bottom: 62px; }
      @media screen and (min-width: 1024px) {
        main.home nav.contact .container hgroup h2 {
          font-size: calc(var(--base-size) * 24px);
          line-height: calc(32 / 24);
          letter-spacing: calc(var(--base-size) * 9px);
          margin-bottom: calc(var(--base-size) * 120px); } }
    main.home nav.contact .container dl dt {
      font-weight: 700;
      font-size: 20px;
      line-height: 100%;
      text-align: center;
      letter-spacing: 0.05em; }
      @media screen and (min-width: 1024px) {
        main.home nav.contact .container dl dt {
          font-size: calc(var(--base-size) * 32px);
          line-height: 100%;
          text-align: center;
          letter-spacing: 0.05em; } }
    main.home nav.contact .container dl dd p.tel {
      text-align: center;
      margin-top: 9px; }
      @media screen and (min-width: 1024px) {
        main.home nav.contact .container dl dd p.tel {
          margin-top: calc(var(--base-size) * 46px); } }
      main.home nav.contact .container dl dd p.tel a {
        position: relative;
        display: inline-block;
        font-family: var(--font-family-en);
        font-weight: 700;
        font-size: 40px;
        line-height: 1;
        text-align: center;
        padding-left: 40px; }
        @media screen and (min-width: 1024px) {
          main.home nav.contact .container dl dd p.tel a {
            font-size: calc(var(--base-size) * 96px);
            letter-spacing: 0.583333px;
            padding-left: calc(var(--base-size) * 93px);
            pointer-events: none; } }
        main.home nav.contact .container dl dd p.tel a:before {
          content: "";
          position: absolute;
          left: 0;
          top: 50%;
          transform: translateY(-50%);
          background-image: url("../images/common/contact_icon_tel.svg");
          background-size: 100% 100%;
          display: block;
          width: 34px;
          height: 31px; }
          @media screen and (min-width: 1024px) {
            main.home nav.contact .container dl dd p.tel a:before {
              width: calc(var(--base-size) * 73px);
              height: calc(var(--base-size) * 67px); } }
    main.home nav.contact .container dl dd p.mail {
      margin-top: 24px;
      text-align: center; }
      @media screen and (min-width: 1024px) {
        main.home nav.contact .container dl dd p.mail {
          margin-top: calc(var(--base-size) * 39px); } }
      main.home nav.contact .container dl dd p.mail a {
        position: relative;
        display: inline-flex;
        justify-content: center;
        align-items: center;
        font-weight: 900;
        font-size: 16px;
        line-height: 20px;
        text-align: center;
        border: 2px solid #FFFFFF;
        width: 310px;
        height: 65px; }
        @media screen and (min-width: 1024px) {
          main.home nav.contact .container dl dd p.mail a {
            font-style: normal;
            font-weight: 900;
            font-size: 24px;
            line-height: 30px;
            width: 739px;
            height: 121px; } }
        main.home nav.contact .container dl dd p.mail a:before {
          content: "";
          background-color: #fff;
          position: absolute;
          top: 0;
          left: 0;
          right: 0;
          height: 0;
          transition: all ease .2s; }
        main.home nav.contact .container dl dd p.mail a span {
          position: relative;
          display: inline-block;
          padding-left: 40px;
          transition: all ease .2s; }
          @media screen and (min-width: 1024px) {
            main.home nav.contact .container dl dd p.mail a span {
              padding-left: 0;
              padding-left: calc(var(--base-size) * 83px); } }
          main.home nav.contact .container dl dd p.mail a span:before {
            content: "";
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            display: block;
            -webkit-mask-image: url("../images/common/contact_icon_mail.svg");
            mask-image: url("../images/common/contact_icon_mail.svg");
            -webkit-mask-size: 100% 100%;
            mask-size: 100% 100%;
            width: 33px;
            height: 33px;
            left: 0;
            background-color: #fff;
            transition: all ease .2s; }
            @media screen and (min-width: 1024px) {
              main.home nav.contact .container dl dd p.mail a span:before {
                width: calc(var(--base-size) * 65px);
                height: calc(var(--base-size) * 65px); } }
        @media screen and (min-width: 1024px) {
          main.home nav.contact .container dl dd p.mail a:hover:before {
            height: 100%; }
          main.home nav.contact .container dl dd p.mail a:hover span {
            color: #4169E1; }
            main.home nav.contact .container dl dd p.mail a:hover span:before {
              background-color: #4169E1; } }
    main.home nav.contact .container dl dd + dt {
      margin-top: 76px; }
      @media screen and (min-width: 1024px) {
        main.home nav.contact .container dl dd + dt {
          margin-top: calc(var(--base-size) * 83px); } }

main.strengths {
  padding-top: 90px; }
  @media screen and (min-width: 1024px) {
    main.strengths {
      padding-top: calc(var(--base-size) * 132px); } }
  main.strengths .container {
    margin: 0 auto;
    width: calc(84vw); }
    @media screen and (min-width: 1024px) {
      main.strengths .container {
        width: calc(var(--base-size) * 1320px); } }
  @media screen and (min-width: 1024px) {
    main.strengths {
      padding-bottom: calc(var(--base-size) * 200px); } }
  main.strengths > header {
    padding-top: 30px; }
    @media screen and (min-width: 1024px) {
      main.strengths > header {
        padding-top: calc(var(--base-size) * 190px); } }
    main.strengths > header h1 {
      font-weight: 500;
      font-size: 16px;
      line-height: 32px;
      text-align: center;
      letter-spacing: 9px;
      color: #4169E1;
      margin-bottom: 18px; }
      @media screen and (min-width: 1024px) {
        main.strengths > header h1 {
          font-size: calc(var(--base-size) * 24px);
          line-height: calc(32 / 24);
          text-align: left;
          letter-spacing: calc(var(--base-size) * 9px);
          margin-bottom: calc(var(--base-size) * 60px); } }
    main.strengths > header .copy {
      font-weight: 700;
      font-size: 36px;
      line-height: 45px;
      text-align: center;
      letter-spacing: 1.5px;
      color: #181818;
      margin-bottom: 68px; }
      @media screen and (min-width: 1024px) {
        main.strengths > header .copy {
          font-size: calc(var(--base-size) * 96px);
          line-height: calc(113 / 96);
          letter-spacing: calc(var(--base-size) * 1.5px);
          margin-bottom: calc(var(--base-size) * 213px);
          text-align: left; } }
    main.strengths > header div.visual {
      overflow: hidden;
      height: 406px;
      display: flex;
      justify-content: center;
      align-items: center;
      background-size: cover;
      background-position: 50% 50%;
      background-image: url("../images/strengths/visual.jpg"); }
      @media screen and (min-width: 1024px) {
        main.strengths > header div.visual {
          height: calc(var(--base-size) * 899px); } }
      main.strengths > header div.visual p {
        font-family: var(--font-family-en);
        font-weight: 800;
        font-size: 64px;
        line-height: 78px;
        letter-spacing: -4px;
        text-transform: uppercase;
        filter: url(#dilate);
        color: #fff; }
        @media screen and (min-width: 1024px) {
          main.strengths > header div.visual p {
            font-size: calc(var(--base-size) * 250px);
            line-height: calc(305 / 250);
            letter-spacing: calc(var(--base-size) * (-21px)); } }
  main.strengths > .content ul.strengths {
    margin-top: 120px; }
    @media screen and (min-width: 1024px) {
      main.strengths > .content ul.strengths {
        margin-top: calc(var(--base-size) * 190px); } }
    main.strengths > .content ul.strengths > li {
      margin-top: 105px; }
      @media screen and (min-width: 1024px) {
        main.strengths > .content ul.strengths > li {
          margin-top: calc(var(--base-size) * 160px); } }
      @media screen and (min-width: 1024px) {
        main.strengths > .content ul.strengths > li > section .container .media {
          display: flex;
          justify-content: space-between; } }
      @media screen and (min-width: 1024px) {
        main.strengths > .content ul.strengths > li > section .container .media .content {
          flex: 0 0 45%;
          padding-left: 8%; } }
      main.strengths > .content ul.strengths > li > section .container .media .content header {
        display: flex;
        align-items: center;
        margin-bottom: calc(var(--base-size) * 28px); }
        @media screen and (min-width: 1024px) {
          main.strengths > .content ul.strengths > li > section .container .media .content header {
            display: block; } }
        main.strengths > .content ul.strengths > li > section .container .media .content header .marker {
          font-family: var(--font-family-en);
          font-weight: 900;
          font-size: 81.6783px;
          line-height: 57px;
          color: #4169E1;
          opacity: 0.1;
          margin-right: 8px;
          padding-top: 4px; }
          @media screen and (min-width: 1024px) {
            main.strengths > .content ul.strengths > li > section .container .media .content header .marker {
              font-size: calc(var(--base-size) * 128px);
              line-height: calc(var(--base-size) * 90px);
              padding-top: 0;
              margin-right: 0;
              margin-bottom: calc(var(--base-size) * 30px); } }
        main.strengths > .content ul.strengths > li > section .container .media .content header hgroup p {
          font-family: var(--font-family-en);
          font-weight: 700;
          font-size: 20.4196px;
          line-height: 1;
          text-transform: uppercase;
          color: #4169E1;
          margin-bottom: 3px; }
          @media screen and (min-width: 1024px) {
            main.strengths > .content ul.strengths > li > section .container .media .content header hgroup p {
              font-size: calc(var(--base-size) * 32px);
              margin-bottom: calc(var(--base-size) * 20px); } }
        main.strengths > .content ul.strengths > li > section .container .media .content header hgroup h2 {
          font-weight: 700;
          font-size: 40.8392px;
          line-height: 1; }
          @media screen and (min-width: 1024px) {
            main.strengths > .content ul.strengths > li > section .container .media .content header hgroup h2 {
              font-size: calc(var(--base-size) * 96px);
              color: #181818; } }
      main.strengths > .content ul.strengths > li > section .container .media .content > p {
        font-size: 16px;
        line-height: 20px;
        text-align: justify;
        letter-spacing: 0.159528px;
        color: #595959; }
        @media screen and (min-width: 1024px) {
          main.strengths > .content ul.strengths > li > section .container .media .content > p {
            font-size: calc(var(--base-size) * 24px);
            line-height: calc(38 / 24);
            color: #171B24;
            opacity: 0.8; } }
      main.strengths > .content ul.strengths > li > section .container .media figure {
        margin: 43px -8vw 0; }
        @media screen and (min-width: 1024px) {
          main.strengths > .content ul.strengths > li > section .container .media figure {
            position: relative;
            flex: 0 0 48%;
            margin: 0; } }
      main.strengths > .content ul.strengths > li > section .container > section {
        margin-top: 26px; }
        @media screen and (min-width: 1024px) {
          main.strengths > .content ul.strengths > li > section .container > section {
            margin-top: calc(var(--base-size) * 100px);
            padding: 0 8%; } }
        main.strengths > .content ul.strengths > li > section .container > section figure {
          margin: 43px -8vw 65px; }
          @media screen and (min-width: 1024px) {
            main.strengths > .content ul.strengths > li > section .container > section figure {
              margin: 0;
              margin-bottom: calc(var(--base-size) * 47px); } }
          main.strengths > .content ul.strengths > li > section .container > section figure .slider {
            position: relative; }
            main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager {
              position: relative;
              display: flex;
              justify-content: center;
              align-items: center;
              margin-top: 38px;
              gap: 0 20px; }
              @media screen and (min-width: 1024px) {
                main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager {
                  position: static;
                  margin-top: 0; } }
              main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .prev,
              main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .next {
                display: flex;
                justify-content: center;
                align-items: center;
                width: calc(var(--base-size) * 62px);
                height: calc(var(--base-size) * 62px);
                border: 1px solid #4169E1;
                cursor: pointer;
                transition: all ease .2s; }
                @media screen and (min-width: 1024px) {
                  main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .prev,
                  main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .next {
                    position: absolute;
                    top: 50%;
                    transform: translateY(-50%); } }
                main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .prev:before,
                main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .next:before {
                  content: "";
                  display: inline-block;
                  width: calc(var(--base-size) * 13px);
                  height: calc(var(--base-size) * 21px);
                  -webkit-mask-size: 100% 100%;
                  mask-size: 100% 100%;
                  background-color: #4169E1;
                  transition: all ease .2s; }
                @media screen and (min-width: 1024px) {
                  main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .prev:hover,
                  main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .next:hover {
                    background-color: #4169E1; }
                    main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .prev:hover:before,
                    main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .next:hover:before {
                      background-color: #fff; } }
              @media screen and (min-width: 1024px) {
                main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .prev {
                  left: calc(var(--base-size) * (-80px)); } }
              main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .prev:before {
                -webkit-mask-image: url("../images/strengths/pager_prev.svg");
                mask-image: url("../images/strengths/pager_prev.svg"); }
              @media screen and (min-width: 1024px) {
                main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .next {
                  right: calc(var(--base-size) * (-80px)); } }
              main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .next:before {
                -webkit-mask-image: url("../images/strengths/pager_next.svg");
                mask-image: url("../images/strengths/pager_next.svg"); }
              main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .counter {
                font-weight: 400;
                font-size: 16px;
                line-height: 32px;
                text-align: center;
                color: #333333; }
                @media screen and (min-width: 1024px) {
                  main.strengths > .content ul.strengths > li > section .container > section figure .slider .pager .counter {
                    display: none; } }
        main.strengths > .content ul.strengths > li > section .container > section h3 {
          font-weight: 700;
          font-size: 20px;
          line-height: 24px;
          text-align: center;
          color: #4169E1;
          margin-bottom: 26px; }
          @media screen and (min-width: 1024px) {
            main.strengths > .content ul.strengths > li > section .container > section h3 {
              font-weight: 700;
              font-size: calc(var(--base-size) * 40px);
              line-height: 1;
              text-align: left;
              margin-bottom: calc(var(--base-size) * 47px); } }
        main.strengths > .content ul.strengths > li > section .container > section p {
          font-size: 16px;
          line-height: 20px;
          text-align: justify;
          letter-spacing: 0.159528px;
          color: #595959; }
          @media screen and (min-width: 1024px) {
            main.strengths > .content ul.strengths > li > section .container > section p {
              font-size: calc(var(--base-size) * 24px);
              line-height: calc(38 / 24);
              color: #171B24;
              opacity: 0.8; } }
      main.strengths > .content ul.strengths > li:nth-child(1) > section .container .media figure {
        display: none; }
        @media screen and (min-width: 1024px) {
          main.strengths > .content ul.strengths > li:nth-child(1) > section .container .media figure {
            display: block;
            height: calc(var(--base-size) * 535px); }
            main.strengths > .content ul.strengths > li:nth-child(1) > section .container .media figure:before {
              content: "";
              width: calc(var(--base-size) * 423px);
              height: calc(var(--base-size) * 477px);
              background-color: #4169E1;
              position: absolute;
              top: calc(var(--base-size) * (-279px));
              right: 0; }
            main.strengths > .content ul.strengths > li:nth-child(1) > section .container .media figure picture:nth-child(1) {
              position: absolute;
              display: block;
              width: calc(var(--base-size) * 311px);
              right: calc(var(--base-size) * 284px);
              top: 0; }
            main.strengths > .content ul.strengths > li:nth-child(1) > section .container .media figure picture:nth-child(2) {
              position: absolute;
              display: block;
              top: calc(var(--base-size) * 247px);
              right: calc(var(--base-size) * 37px);
              width: calc(var(--base-size) * 212px); } }
      main.strengths > .content ul.strengths > li:nth-child(3) > section .container .media .content {
        order: 2; }
        @media screen and (min-width: 1024px) {
          main.strengths > .content ul.strengths > li:nth-child(3) > section .container .media .content {
            padding-right: 4%;
            padding-left: 4%; } }

main.technology {
  padding-top: 90px; }
  @media screen and (min-width: 1024px) {
    main.technology {
      padding-top: calc(var(--base-size) * 132px); } }
  main.technology .container {
    margin: 0 auto;
    width: calc(84vw); }
    @media screen and (min-width: 1024px) {
      main.technology .container {
        width: calc(var(--base-size) * 1320px); } }
  main.technology > header.visual {
    overflow: hidden;
    height: 406px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-size: cover;
    background-position: 50% 50%; }
    @media screen and (min-width: 1024px) {
      main.technology > header.visual {
        height: calc(var(--base-size) * 899px); } }
    main.technology > header.visual p {
      font-family: var(--font-family-en);
      font-weight: 800;
      font-size: 64px;
      line-height: 78px;
      letter-spacing: -4px;
      text-transform: uppercase;
      filter: url(#dilate);
      color: #fff; }
      @media screen and (min-width: 1024px) {
        main.technology > header.visual p {
          font-size: calc(var(--base-size) * 250px);
          line-height: calc(305 / 250);
          letter-spacing: calc(var(--base-size) * (-21px)); } }
  @media screen and (min-width: 1024px) {
    main.technology .content {
      display: flex; } }
  main.technology .content .sidebar {
    width: calc(253 / 375 * 100vw);
    margin: 0 auto; }
    @media screen and (min-width: 1024px) {
      main.technology .content .sidebar {
        background-color: #F8F9FC;
        padding-left: calc(var(--base-size) * 90px);
        width: calc((100vw - var(--base-size) * 1300px) / 2 * 1.25);
        min-width: calc(var(--base-size) * 412px);
        margin: 0; } }
    main.technology .content .sidebar .inner {
      padding-top: 42px; }
      @media screen and (min-width: 1024px) {
        main.technology .content .sidebar .inner {
          position: sticky;
          top: calc(var(--base-size) * 132px);
          padding-top: calc(var(--base-size) * 105px);
          padding-bottom: calc(var(--base-size) * 105px); } }
      main.technology .content .sidebar .inner h1 {
        font-weight: 700;
        font-size: 16px;
        line-height: 32px;
        text-align: center;
        letter-spacing: 9px;
        color: #4169E1;
        margin-bottom: 32px; }
        @media screen and (min-width: 1024px) {
          main.technology .content .sidebar .inner h1 {
            font-size: calc(var(--base-size) * 22px);
            letter-spacing: 0;
            line-height: calc(36 / 22);
            margin-bottom: calc(var(--base-size) * 38px);
            text-align: left; } }
      main.technology .content .sidebar .inner nav > ul {
        border-top: 1px solid #CCCCCC; }
        @media screen and (min-width: 1024px) {
          main.technology .content .sidebar .inner nav > ul {
            margin-left: calc(var(--base-size) * (-90px));
            border: none; } }
        main.technology .content .sidebar .inner nav > ul > li {
          border-bottom: 1px solid #CCCCCC; }
          @media screen and (min-width: 1024px) {
            main.technology .content .sidebar .inner nav > ul > li {
              border: none; } }
          main.technology .content .sidebar .inner nav > ul > li > a {
            color: #181818;
            font-weight: 700;
            font-size: 15px;
            line-height: calc(18 / 15);
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            height: 66px; }
            @media screen and (min-width: 1024px) {
              main.technology .content .sidebar .inner nav > ul > li > a {
                justify-content: flex-start;
                padding-left: calc(var(--base-size) * 120px);
                font-weight: 700;
                font-size: calc(var(--base-size) * 24px);
                height: calc(var(--base-size) * 64px);
                line-height: 1.5;
                text-align: left; } }
            main.technology .content .sidebar .inner nav > ul > li > a .small {
              font-size: 12px;
              margin-top: 4px; }
              @media screen and (min-width: 1024px) {
                main.technology .content .sidebar .inner nav > ul > li > a .small {
                  margin-top: 0;
                  font-size: calc(var(--base-size) * 12px); } }
          @media screen and (min-width: 1024px) {
            main.technology .content .sidebar .inner nav > ul > li:hover > a {
              background-color: #4169E1;
              color: #fff; }
            main.technology .content .sidebar .inner nav > ul > li.active > a {
              background-color: #4169E1;
              color: #fff; } }
          main.technology .content .sidebar .inner nav > ul > li > ul {
            display: none;
            margin-bottom: calc(var(--base-size) * 15px); }
            @media screen and (min-width: 1024px) {
              main.technology .content .sidebar .inner nav > ul > li > ul {
                display: block; } }
            main.technology .content .sidebar .inner nav > ul > li > ul li {
              margin-top: calc(var(--base-size) * 10px); }
              main.technology .content .sidebar .inner nav > ul > li > ul li a {
                padding-left: calc(var(--base-size) * 120px);
                display: inline-block;
                font-weight: 700;
                font-size: calc(var(--base-size) * 18px);
                line-height: calc(30 / 18);
                color: #181818; }
                main.technology .content .sidebar .inner nav > ul > li > ul li a:before {
                  content: "・"; }
                main.technology .content .sidebar .inner nav > ul > li > ul li a:hover {
                  color: #4169E1; }
      main.technology .content .sidebar .inner nav p.facility {
        border-bottom: 1px solid #CCCCCC; }
        @media screen and (min-width: 1024px) {
          main.technology .content .sidebar .inner nav p.facility {
            padding-left: calc(var(--base-size) * 30px);
            margin-top: calc(var(--base-size) * 38px);
            border-bottom: none; } }
        main.technology .content .sidebar .inner nav p.facility a {
          color: #181818;
          font-weight: 700;
          font-size: 15px;
          line-height: calc(18 / 15);
          display: flex;
          align-items: center;
          justify-content: center;
          text-align: center;
          height: 66px; }
          @media screen and (min-width: 1024px) {
            main.technology .content .sidebar .inner nav p.facility a {
              position: relative;
              width: calc(var(--base-size) * 204px);
              height: calc(var(--base-size) * 49px);
              border: 2px solid #4169E1;
              padding-left: calc(var(--base-size) * 28px);
              font-weight: 600;
              font-size: calc(var(--base-size) * 24px);
              color: #4169E1;
              display: flex;
              justify-content: flex-start;
              align-items: center;
              text-align: left; } }
          main.technology .content .sidebar .inner nav p.facility a span {
            position: relative;
            display: inline-block; }
            @media screen and (min-width: 1024px) {
              main.technology .content .sidebar .inner nav p.facility a span {
                position: static; } }
            main.technology .content .sidebar .inner nav p.facility a span:after {
              content: "";
              display: block;
              position: absolute;
              top: 50%;
              right: -33px;
              transform: translateY(-50%);
              background-image: url("../images/technology/icon_pdf.png");
              background-size: 100% 100%;
              width: 23.33px;
              height: 28px; }
              @media screen and (min-width: 1024px) {
                main.technology .content .sidebar .inner nav p.facility a span:after {
                  right: calc(var(--base-size) * 20px);
                  width: calc(var(--base-size) * 23.33px);
                  height: calc(var(--base-size) * 28px); } }
  main.technology .content .body {
    width: calc(84vw);
    margin: 0 auto;
    margin-top: 130px; }
    @media screen and (min-width: 1024px) {
      main.technology .content .body {
        width: auto;
        padding: calc(var(--base-size) * 123px) calc(var(--base-size) * 90px) calc(var(--base-size) * 142px);
        flex: 0 0 calc(var(--base-size) * 1300px);
        margin: 0; } }
    main.technology .content .body section.intro h2 {
      font-weight: 700;
      font-size: 24px;
      line-height: 32px;
      display: flex;
      align-items: center;
      letter-spacing: -1px;
      color: #181818;
      margin-bottom: 22px; }
      @media screen and (min-width: 1024px) {
        main.technology .content .body section.intro h2 {
          font-size: calc(var(--base-size) * 48px);
          line-height: calc(58 / 48);
          letter-spacing: calc(var(--base-size) * (-1px));
          margin-bottom: calc(var(--base-size) * 40px); } }
    main.technology .content .body section.intro p {
      font-size: 15px;
      line-height: 22px;
      color: #171B24; }
      @media screen and (min-width: 1024px) {
        main.technology .content .body section.intro p {
          font-size: calc(var(--base-size) * 24px);
          line-height: calc(var(--base-size) * 34px);
          color: #171B24; } }
    main.technology .content .body section:not(.intro) {
      margin-top: 40px;
      padding-top: 36px; }
      @media screen and (min-width: 1024px) {
        main.technology .content .body section:not(.intro) {
          margin-top: calc(var(--base-size) * 100px);
          padding-top: calc(var(--base-size) * 60px); } }
      main.technology .content .body section:not(.intro) h2 {
        position: relative;
        padding-left: 23px;
        font-weight: 700;
        font-size: 20px;
        line-height: 24px;
        color: #181818;
        margin-bottom: 36px; }
        @media screen and (min-width: 1024px) {
          main.technology .content .body section:not(.intro) h2 {
            padding-left: calc(var(--base-size) * 34px);
            font-weight: 700;
            font-size: calc(var(--base-size) * 40px);
            line-height: calc(var(--base-size) * 34px);
            margin-bottom: calc(var(--base-size) * 51px); } }
        main.technology .content .body section:not(.intro) h2:before {
          content: "";
          display: block;
          width: 9px;
          position: absolute;
          left: 0;
          top: 4px;
          bottom: 4px;
          background-color: #4169E1; }
          @media screen and (min-width: 1024px) {
            main.technology .content .body section:not(.intro) h2:before {
              width: calc(var(--base-size) * 16px);
              top: 0;
              bottom: 0; } }
      main.technology .content .body section:not(.intro) figure {
        margin-bottom: 12px; }
        @media screen and (min-width: 1024px) {
          main.technology .content .body section:not(.intro) figure {
            margin-bottom: calc(var(--base-size) * 22px); } }
      main.technology .content .body section:not(.intro) p {
        font-size: 14px;
        line-height: 24px;
        letter-spacing: -0.36px;
        color: #737373; }
        @media screen and (min-width: 1024px) {
          main.technology .content .body section:not(.intro) p {
            font-size: calc(var(--base-size) * 20px);
            line-height: calc(33 / 20);
            letter-spacing: calc(var(--base-size) * (-0.36px)); } }
      main.technology .content .body section:not(.intro) section {
        margin-top: 52px;
        padding-top: 0; }
        @media screen and (min-width: 1024px) {
          main.technology .content .body section:not(.intro) section {
            margin-top: calc(var(--base-size) * 80px);
            padding-top: calc(var(--base-size) * 40px); } }
        main.technology .content .body section:not(.intro) section h3 {
          font-weight: 700;
          font-size: 16px;
          line-height: 1.5;
          color: #181818;
          margin-bottom: 4px; }
          @media screen and (min-width: 1024px) {
            main.technology .content .body section:not(.intro) section h3 {
              font-size: calc(var(--base-size) * 32px);
              line-height: 1;
              color: #181818;
              margin-bottom: calc(var(--base-size) * 40px); } }
      main.technology .content .body section:not(.intro) h2 + section {
        margin-top: 0; }
  main.technology > header.visual {
    background-image: url("../images/technology/visual.jpg"); }
    main.technology > header.visual p {
      letter-spacing: -9px; }
      @media screen and (min-width: 1024px) {
        main.technology > header.visual p {
          letter-spacing: -21px; } }
  main.technology .body p.action {
    margin-top: calc(var(--base-size) * 137px);
    text-align: center; }
    main.technology .body p.action a {
      position: relative;
      display: inline-flex;
      justify-content: center;
      align-items: center;
      font-family: var(--font-family-en);
      font-style: normal;
      font-weight: 600;
      font-size: 15.1045px;
      line-height: 18px;
      text-align: center;
      text-transform: uppercase;
      background-color: #4169E1;
      color: #FFFFFF;
      width: 253px;
      height: 66px;
      transition: all ease .2s; }
      @media screen and (min-width: 1024px) {
        main.technology .body p.action a {
          font-size: calc(var(--base-size) * 24px);
          line-height: calc(29 / 24);
          width: calc(var(--base-size) * 402px);
          height: calc(var(--base-size) * 118px);
          background-color: transparent;
          border: 2px solid #4169E1;
          color: #4169E1; } }
      main.technology .body p.action a:before {
        content: "";
        background-color: #4169E1;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        height: 0;
        transition: all ease .2s; }
      main.technology .body p.action a span {
        position: relative; }
      @media screen and (min-width: 1024px) {
        main.technology .body p.action a:hover {
          color: #fff; }
          main.technology .body p.action a:hover:before {
            height: 100%; } }
      @media screen and (min-width: 1024px) {
        main.technology .body p.action a {
          width: calc(var(--base-size) * 791px); } }

main.product {
  padding-top: 90px; }
  @media screen and (min-width: 1024px) {
    main.product {
      padding-top: calc(var(--base-size) * 132px); } }
  main.product .container {
    margin: 0 auto;
    width: calc(84vw); }
    @media screen and (min-width: 1024px) {
      main.product .container {
        width: calc(var(--base-size) * 1320px); } }
  main.product > header.visual {
    overflow: hidden;
    height: 406px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-size: cover;
    background-position: 50% 50%; }
    @media screen and (min-width: 1024px) {
      main.product > header.visual {
        height: calc(var(--base-size) * 899px); } }
    main.product > header.visual p {
      font-family: var(--font-family-en);
      font-weight: 800;
      font-size: 64px;
      line-height: 78px;
      letter-spacing: -4px;
      text-transform: uppercase;
      filter: url(#dilate);
      color: #fff; }
      @media screen and (min-width: 1024px) {
        main.product > header.visual p {
          font-size: calc(var(--base-size) * 250px);
          line-height: calc(305 / 250);
          letter-spacing: calc(var(--base-size) * (-21px)); } }
  @media screen and (min-width: 1024px) {
    main.product .content {
      display: flex; } }
  main.product .content .sidebar {
    width: calc(253 / 375 * 100vw);
    margin: 0 auto; }
    @media screen and (min-width: 1024px) {
      main.product .content .sidebar {
        background-color: #F8F9FC;
        padding-left: calc(var(--base-size) * 90px);
        width: calc((100vw - var(--base-size) * 1300px) / 2 * 1.25);
        min-width: calc(var(--base-size) * 412px);
        margin: 0; } }
    main.product .content .sidebar .inner {
      padding-top: 42px; }
      @media screen and (min-width: 1024px) {
        main.product .content .sidebar .inner {
          position: sticky;
          top: calc(var(--base-size) * 132px);
          padding-top: calc(var(--base-size) * 105px);
          padding-bottom: calc(var(--base-size) * 105px); } }
      main.product .content .sidebar .inner h1 {
        font-weight: 700;
        font-size: 16px;
        line-height: 32px;
        text-align: center;
        letter-spacing: 9px;
        color: #4169E1;
        margin-bottom: 32px; }
        @media screen and (min-width: 1024px) {
          main.product .content .sidebar .inner h1 {
            font-size: calc(var(--base-size) * 22px);
            letter-spacing: 0;
            line-height: calc(36 / 22);
            margin-bottom: calc(var(--base-size) * 38px);
            text-align: left; } }
      main.product .content .sidebar .inner nav > ul {
        border-top: 1px solid #CCCCCC; }
        @media screen and (min-width: 1024px) {
          main.product .content .sidebar .inner nav > ul {
            margin-left: calc(var(--base-size) * (-90px));
            border: none; } }
        main.product .content .sidebar .inner nav > ul > li {
          border-bottom: 1px solid #CCCCCC; }
          @media screen and (min-width: 1024px) {
            main.product .content .sidebar .inner nav > ul > li {
              border: none; } }
          main.product .content .sidebar .inner nav > ul > li > a {
            color: #181818;
            font-weight: 700;
            font-size: 15px;
            line-height: calc(18 / 15);
            display: flex;
            align-items: center;
            justify-content: center;
            text-align: center;
            height: 66px; }
            @media screen and (min-width: 1024px) {
              main.product .content .sidebar .inner nav > ul > li > a {
                justify-content: flex-start;
                padding-left: calc(var(--base-size) * 120px);
                font-weight: 700;
                font-size: calc(var(--base-size) * 24px);
                height: calc(var(--base-size) * 64px);
                line-height: 1.5;
                text-align: left; } }
            main.product .content .sidebar .inner nav > ul > li > a .small {
              font-size: 12px;
              margin-top: 4px; }
              @media screen and (min-width: 1024px) {
                main.product .content .sidebar .inner nav > ul > li > a .small {
                  margin-top: 0;
                  font-size: calc(var(--base-size) * 12px); } }
          @media screen and (min-width: 1024px) {
            main.product .content .sidebar .inner nav > ul > li:hover > a {
              background-color: #4169E1;
              color: #fff; }
            main.product .content .sidebar .inner nav > ul > li.active > a {
              background-color: #4169E1;
              color: #fff; } }
          main.product .content .sidebar .inner nav > ul > li > ul {
            display: none;
            margin-bottom: calc(var(--base-size) * 15px); }
            @media screen and (min-width: 1024px) {
              main.product .content .sidebar .inner nav > ul > li > ul {
                display: block; } }
            main.product .content .sidebar .inner nav > ul > li > ul li {
              margin-top: calc(var(--base-size) * 10px); }
              main.product .content .sidebar .inner nav > ul > li > ul li a {
                padding-left: calc(var(--base-size) * 120px);
                display: inline-block;
                font-weight: 700;
                font-size: calc(var(--base-size) * 18px);
                line-height: calc(30 / 18);
                color: #181818; }
                main.product .content .sidebar .inner nav > ul > li > ul li a:before {
                  content: "・"; }
                main.product .content .sidebar .inner nav > ul > li > ul li a:hover {
                  color: #4169E1; }
      main.product .content .sidebar .inner nav p.facility {
        border-bottom: 1px solid #CCCCCC; }
        @media screen and (min-width: 1024px) {
          main.product .content .sidebar .inner nav p.facility {
            padding-left: calc(var(--base-size) * 30px);
            margin-top: calc(var(--base-size) * 38px);
            border-bottom: none; } }
        main.product .content .sidebar .inner nav p.facility a {
          color: #181818;
          font-weight: 700;
          font-size: 15px;
          line-height: calc(18 / 15);
          display: flex;
          align-items: center;
          justify-content: center;
          text-align: center;
          height: 66px; }
          @media screen and (min-width: 1024px) {
            main.product .content .sidebar .inner nav p.facility a {
              position: relative;
              width: calc(var(--base-size) * 204px);
              height: calc(var(--base-size) * 49px);
              border: 2px solid #4169E1;
              padding-left: calc(var(--base-size) * 28px);
              font-weight: 600;
              font-size: calc(var(--base-size) * 24px);
              color: #4169E1;
              display: flex;
              justify-content: flex-start;
              align-items: center;
              text-align: left; } }
          main.product .content .sidebar .inner nav p.facility a span {
            position: relative;
            display: inline-block; }
            @media screen and (min-width: 1024px) {
              main.product .content .sidebar .inner nav p.facility a span {
                position: static; } }
            main.product .content .sidebar .inner nav p.facility a span:after {
              content: "";
              display: block;
              position: absolute;
              top: 50%;
              right: -33px;
              transform: translateY(-50%);
              background-image: url("../images/technology/icon_pdf.png");
              background-size: 100% 100%;
              width: 23.33px;
              height: 28px; }
              @media screen and (min-width: 1024px) {
                main.product .content .sidebar .inner nav p.facility a span:after {
                  right: calc(var(--base-size) * 20px);
                  width: calc(var(--base-size) * 23.33px);
                  height: calc(var(--base-size) * 28px); } }
  main.product .content .body {
    width: calc(84vw);
    margin: 0 auto;
    margin-top: 130px; }
    @media screen and (min-width: 1024px) {
      main.product .content .body {
        width: auto;
        padding: calc(var(--base-size) * 123px) calc(var(--base-size) * 90px) calc(var(--base-size) * 142px);
        flex: 0 0 calc(var(--base-size) * 1300px);
        margin: 0; } }
    main.product .content .body section.intro h2 {
      font-weight: 700;
      font-size: 24px;
      line-height: 32px;
      display: flex;
      align-items: center;
      letter-spacing: -1px;
      color: #181818;
      margin-bottom: 22px; }
      @media screen and (min-width: 1024px) {
        main.product .content .body section.intro h2 {
          font-size: calc(var(--base-size) * 48px);
          line-height: calc(58 / 48);
          letter-spacing: calc(var(--base-size) * (-1px));
          margin-bottom: calc(var(--base-size) * 40px); } }
    main.product .content .body section.intro p {
      font-size: 15px;
      line-height: 22px;
      color: #171B24; }
      @media screen and (min-width: 1024px) {
        main.product .content .body section.intro p {
          font-size: calc(var(--base-size) * 24px);
          line-height: calc(var(--base-size) * 34px);
          color: #171B24; } }
    main.product .content .body section:not(.intro) {
      margin-top: 40px;
      padding-top: 36px; }
      @media screen and (min-width: 1024px) {
        main.product .content .body section:not(.intro) {
          margin-top: calc(var(--base-size) * 100px);
          padding-top: calc(var(--base-size) * 60px); } }
      main.product .content .body section:not(.intro) h2 {
        position: relative;
        padding-left: 23px;
        font-weight: 700;
        font-size: 20px;
        line-height: 24px;
        color: #181818;
        margin-bottom: 36px; }
        @media screen and (min-width: 1024px) {
          main.product .content .body section:not(.intro) h2 {
            padding-left: calc(var(--base-size) * 34px);
            font-weight: 700;
            font-size: calc(var(--base-size) * 40px);
            line-height: calc(var(--base-size) * 34px);
            margin-bottom: calc(var(--base-size) * 51px); } }
        main.product .content .body section:not(.intro) h2:before {
          content: "";
          display: block;
          width: 9px;
          position: absolute;
          left: 0;
          top: 4px;
          bottom: 4px;
          background-color: #4169E1; }
          @media screen and (min-width: 1024px) {
            main.product .content .body section:not(.intro) h2:before {
              width: calc(var(--base-size) * 16px);
              top: 0;
              bottom: 0; } }
      main.product .content .body section:not(.intro) figure {
        margin-bottom: 12px; }
        @media screen and (min-width: 1024px) {
          main.product .content .body section:not(.intro) figure {
            margin-bottom: calc(var(--base-size) * 22px); } }
      main.product .content .body section:not(.intro) p {
        font-size: 14px;
        line-height: 24px;
        letter-spacing: -0.36px;
        color: #737373; }
        @media screen and (min-width: 1024px) {
          main.product .content .body section:not(.intro) p {
            font-size: calc(var(--base-size) * 20px);
            line-height: calc(33 / 20);
            letter-spacing: calc(var(--base-size) * (-0.36px)); } }
      main.product .content .body section:not(.intro) section {
        margin-top: 52px;
        padding-top: 0; }
        @media screen and (min-width: 1024px) {
          main.product .content .body section:not(.intro) section {
            margin-top: calc(var(--base-size) * 80px);
            padding-top: calc(var(--base-size) * 40px); } }
        main.product .content .body section:not(.intro) section h3 {
          font-weight: 700;
          font-size: 16px;
          line-height: 1.5;
          color: #181818;
          margin-bottom: 4px; }
          @media screen and (min-width: 1024px) {
            main.product .content .body section:not(.intro) section h3 {
              font-size: calc(var(--base-size) * 32px);
              line-height: 1;
              color: #181818;
              margin-bottom: calc(var(--base-size) * 40px); } }
      main.product .content .body section:not(.intro) h2 + section {
        margin-top: 0; }
  main.product .visual {
    background-image: url("../images/product/visual.jpg"); }

main.company {
  padding-top: 90px; }
  @media screen and (min-width: 1024px) {
    main.company {
      padding-top: calc(var(--base-size) * 132px); } }
  main.company .container {
    margin: 0 auto;
    width: calc(84vw); }
    @media screen and (min-width: 1024px) {
      main.company .container {
        width: calc(var(--base-size) * 1320px); } }
  main.company > header.visual {
    overflow: hidden;
    height: 406px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-size: cover;
    background-position: 50% 50%; }
    @media screen and (min-width: 1024px) {
      main.company > header.visual {
        height: calc(var(--base-size) * 899px); } }
    main.company > header.visual p {
      font-family: var(--font-family-en);
      font-weight: 800;
      font-size: 64px;
      line-height: 78px;
      letter-spacing: -4px;
      text-transform: uppercase;
      filter: url(#dilate);
      color: #fff; }
      @media screen and (min-width: 1024px) {
        main.company > header.visual p {
          font-size: calc(var(--base-size) * 250px);
          line-height: calc(305 / 250);
          letter-spacing: calc(var(--base-size) * (-21px)); } }
  main.company > header {
    background-image: url("../images/company/visual.jpg"); }
  main.company > .content {
    padding-top: 50px; }
    @media screen and (min-width: 1024px) {
      main.company > .content {
        padding-top: calc(var(--base-size) * 175px); } }
    main.company > .content h1 {
      font-weight: 500;
      font-size: 16px;
      line-height: 32px;
      letter-spacing: 9px;
      text-align: center;
      color: #4169E1;
      margin-bottom: 28px; }
      @media screen and (min-width: 1024px) {
        main.company > .content h1 {
          font-weight: 500;
          font-size: calc(var(--base-size) * 24px);
          line-height: calc(32 / 24);
          letter-spacing: calc(var(--base-size) * 9px);
          margin-bottom: calc(var(--base-size) * 50px);
          text-align: left; } }
    main.company > .content section {
      padding: 50px 0 80px; }
      @media screen and (min-width: 1024px) {
        main.company > .content section {
          padding: calc(var(--base-size) * 130px) 0 calc(var(--base-size) * 160px); } }
      main.company > .content section h2 {
        font-weight: 700;
        font-size: 24px;
        line-height: 34px;
        letter-spacing: -1px;
        color: #181818;
        text-align: center; }
        @media screen and (min-width: 1024px) {
          main.company > .content section h2 {
            font-size: calc(var(--base-size) * 48px);
            line-height: calc(58 / 48);
            letter-spacing: calc(var(--base-size) * (-1px));
            margin-bottom: calc(var(--base-size) * 67px); } }
      main.company > .content section hgroup {
        margin-bottom: 39px; }
        @media screen and (min-width: 1024px) {
          main.company > .content section hgroup {
            display: flex;
            align-items: center;
            margin-bottom: calc(var(--base-size) * 67px); } }
        main.company > .content section hgroup h2 {
          margin-bottom: 0; }
        main.company > .content section hgroup p {
          font-family: var(--font-family-en);
          font-weight: 800;
          font-size: 24px;
          line-height: 100%;
          text-align: center;
          text-transform: uppercase;
          filter: url(#dilate);
          color: #CCCCCC; }
          @media screen and (min-width: 1024px) {
            main.company > .content section hgroup p {
              font-size: calc(var(--base-size) * 64px);
              line-height: calc(78 / 64);
              text-align: center;
              letter-spacing: calc(var(--base-size) * (-4px));
              margin-left: calc(var(--base-size) * 14px); } }
    main.company > .content section.policy {
      padding-top: 0; }
      main.company > .content section.policy h2 {
        margin-bottom: 35px; }
        @media screen and (min-width: 1024px) {
          main.company > .content section.policy h2 {
            text-align: left;
            margin-bottom: calc(var(--base-size) * 38px); } }
      main.company > .content section.policy .copy {
        font-weight: 700;
        font-size: 32px;
        line-height: 48px;
        text-align: center;
        letter-spacing: -1px;
        color: #181818;
        margin-bottom: 51px; }
        @media screen and (min-width: 1024px) {
          main.company > .content section.policy .copy {
            font-size: calc(var(--base-size) * 64px);
            line-height: calc(80 / 64);
            letter-spacing: 0;
            text-align: left;
            color: #171B24;
            opacity: 0.8;
            margin-bottom: calc(var(--base-size) * 42px); } }
      main.company > .content section.policy ol {
        font-weight: 400;
        font-size: 16px;
        line-height: 22px;
        color: #171B24;
        counter-reset: listnum; }
        @media screen and (min-width: 1024px) {
          main.company > .content section.policy ol {
            font-weight: 500;
            font-size: calc(var(--base-size) * 32px);
            line-height: calc(68 / 32);
            opacity: 0.8; } }
        main.company > .content section.policy ol li {
          position: relative;
          padding-left: 1.5em; }
          main.company > .content section.policy ol li:before {
            position: absolute;
            top: 0;
            left: 0;
            counter-increment: listnum;
            content: counter(listnum) "."; }
    main.company > .content section.message .container .media {
      display: flex;
      flex-direction: column; }
      @media screen and (min-width: 1024px) {
        main.company > .content section.message .container .media {
          flex-direction: row;
          justify-content: space-between; } }
      main.company > .content section.message .container .media .content {
        display: contents; }
        @media screen and (min-width: 1024px) {
          main.company > .content section.message .container .media .content {
            display: block;
            flex: 0 0 54%; } }
        main.company > .content section.message .container .media .content .body {
          order: 2;
          font-size: 15px;
          line-height: 22px;
          color: #171B24; }
          @media screen and (min-width: 1024px) {
            main.company > .content section.message .container .media .content .body {
              font-size: calc(var(--base-size) * 24px);
              line-height: calc(33 / 24);
              opacity: 0.8; } }
          main.company > .content section.message .container .media .content .body .signature {
            margin-top: 22px;
            font-weight: 500;
            font-size: 16px;
            line-height: 23px;
            text-align: center;
            color: #000000; }
            @media screen and (min-width: 1024px) {
              main.company > .content section.message .container .media .content .body .signature {
                margin-top: calc(var(--base-size) * 82px);
                font-weight: 500;
                font-size: calc(var(--base-size) * 32px);
                line-height: calc(42 / 32);
                color: #171B24;
                opacity: 0.8;
                text-align: left; } }
      main.company > .content section.message .container .media figure {
        position: relative;
        order: 1;
        width: calc(257 / 375 * 100vw);
        height: calc(316 / 375 * 100vw);
        margin: 0 auto;
        margin-bottom: 38px; }
        @media screen and (min-width: 1024px) {
          main.company > .content section.message .container .media figure {
            width: auto;
            height: calc(var(--base-size) * 658px);
            flex: 0 0 40%;
            margin: 0; } }
        main.company > .content section.message .container .media figure:before {
          content: "";
          display: block;
          width: calc(232 / 375 * 100vw);
          height: calc(293 / 375 * 100vw);
          background-color: #4169E1;
          position: absolute;
          top: calc(23 / 375 * 100vw);
          right: 0; }
          @media screen and (min-width: 1024px) {
            main.company > .content section.message .container .media figure:before {
              width: calc(var(--base-size) * 483px);
              height: calc(var(--base-size) * 610px);
              top: calc(var(--base-size) * 48px);
              right: 0; } }
        main.company > .content section.message .container .media figure img {
          position: relative;
          width: calc(232 / 375 * 100vw); }
          @media screen and (min-width: 1024px) {
            main.company > .content section.message .container .media figure img {
              position: absolute;
              top: 0;
              right: calc(var(--base-size) * 51px);
              width: calc(var(--base-size) * 483px); } }
    main.company > .content section.outline {
      background-color: #F8F9FC; }
      main.company > .content section.outline dl {
        display: flex;
        flex-wrap: wrap; }
        main.company > .content section.outline dl dt {
          flex: 0 0 100px;
          font-weight: 600;
          font-size: 14px;
          line-height: 16px;
          color: #000000;
          padding: 25px 0; }
          @media screen and (min-width: 1024px) {
            main.company > .content section.outline dl dt {
              flex: 0 0 260px;
              padding: calc(var(--base-size) * 32px) 0;
              border-bottom: 1px solid #CCCCCC;
              font-weight: 600;
              font-size: calc(var(--base-size) * 24px);
              line-height: 1.5; } }
        main.company > .content section.outline dl dd {
          flex: 0 0 calc(100% - 100px);
          font-size: 14px;
          line-height: 16px;
          color: #000000;
          padding: 25px 0; }
          @media screen and (min-width: 1024px) {
            main.company > .content section.outline dl dd {
              flex: 0 0 calc(100% - 260px);
              padding: calc(var(--base-size) * 32px) 0;
              border-bottom: 1px solid #CCCCCC;
              font-size: calc(var(--base-size) * 24px);
              line-height: 1.5; } }
    main.company > .content section.history {
      background-color: #181818; }
      main.company > .content section.history hgroup {
        justify-content: center; }
        main.company > .content section.history hgroup h2 {
          color: #fff; }
      main.company > .content section.history figure {
        max-width: 311px;
        margin: 0 auto;
        margin-top: 47px; }
        @media screen and (min-width: 1024px) {
          main.company > .content section.history figure {
            max-width: none;
            margin: 0;
            margin-top: calc(var(--base-size) * 120px); } }
    main.company > .content section.access .media {
      margin-bottom: 56px; }
      @media screen and (min-width: 1024px) {
        main.company > .content section.access .media {
          display: flex;
          margin-bottom: calc(var(--base-size) * 90px); } }
      main.company > .content section.access .media figure {
        margin-bottom: 21px; }
        @media screen and (min-width: 1024px) {
          main.company > .content section.access .media figure {
            margin-bottom: 0;
            flex: 0 0 calc(636 / 1320 * 100%); } }
      main.company > .content section.access .media .content {
        flex: 0 0 calc(684 / 1320 * 100%);
        display: flex;
        justify-content: center;
        align-items: center; }
        main.company > .content section.access .media .content .name {
          font-weight: 700;
          font-size: 35px;
          line-height: 59px;
          color: #181818;
          margin-bottom: 0;
          text-align: center; }
          @media screen and (min-width: 1024px) {
            main.company > .content section.access .media .content .name {
              text-align: left;
              font-size: calc(var(--base-size) * 48px);
              line-height: 100%;
              margin-bottom: calc(var(--base-size) * 18px); } }
        main.company > .content section.access .media .content .address {
          font-size: 16px;
          line-height: 22px;
          color: #171B24;
          opacity: 0.8;
          margin-bottom: 43px;
          text-align: center; }
          @media screen and (min-width: 1024px) {
            main.company > .content section.access .media .content .address {
              margin-bottom: 77px;
              font-size: calc(var(--base-size) * 24px);
              line-height: calc(38 / 24);
              color: #171B24;
              opacity: 0.8;
              text-align: left; } }
        main.company > .content section.access .media .content ul.contact li {
          position: relative;
          margin-top: 27px;
          padding-left: 46px; }
          @media screen and (min-width: 1024px) {
            main.company > .content section.access .media .content ul.contact li {
              padding-left: calc(var(--base-size) * 62px);
              margin-top: calc(var(--base-size) * 35px); } }
          main.company > .content section.access .media .content ul.contact li span:nth-child(1) {
            display: block;
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            left: 0;
            text-indent: -9999px;
            width: 37px;
            height: 40px;
            background-repeat: no-repeat;
            background-position: 50% 50%; }
            @media screen and (min-width: 1024px) {
              main.company > .content section.access .media .content ul.contact li span:nth-child(1) {
                width: calc(var(--base-size) * 53px);
                height: calc(var(--base-size) * 53px); } }
          main.company > .content section.access .media .content ul.contact li span:nth-child(2) {
            font-family: var(--font-family-en);
            font-weight: 700;
            font-size: 37.1038px;
            line-height: 1;
            color: #181818; }
            @media screen and (min-width: 1024px) {
              main.company > .content section.access .media .content ul.contact li span:nth-child(2) {
                font-size: calc(var(--base-size) * 48px); } }
          main.company > .content section.access .media .content ul.contact li:nth-child(1) span:nth-child(1) {
            background-image: url("../images/company/access_icon_tel.svg");
            background-size: 35px 35px; }
            @media screen and (min-width: 1024px) {
              main.company > .content section.access .media .content ul.contact li:nth-child(1) span:nth-child(1) {
                background-size: calc(var(--base-size) * 50px) calc(var(--base-size) * 46px); } }
          main.company > .content section.access .media .content ul.contact li:nth-child(2) span:nth-child(1) {
            background-image: url("../images/company/access_icon_fax.svg");
            background-size: 37px 40px; }
            @media screen and (min-width: 1024px) {
              main.company > .content section.access .media .content ul.contact li:nth-child(2) span:nth-child(1) {
                background-size: calc(var(--base-size) * 53px) calc(var(--base-size) * 53px); } }
    main.company > .content section.access .map {
      position: relative;
      height: 900px;
      margin: 0 -8vw; }
      @media screen and (min-width: 1024px) {
        main.company > .content section.access .map {
          height: calc(var(--base-size) * 680px);
          margin: 0; } }
      main.company > .content section.access .map iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%; }
    main.company > .content section.access .action {
      text-align: right;
      margin-top: calc(var(--base-size) * 23px); }
      main.company > .content section.access .action a {
        display: inline-block;
        position: relative;
        font-weight: 700;
        font-size: 16px;
        line-height: 9px;
        letter-spacing: 1.25322px;
        color: #4169E1;
        padding-right: 20px;
        transition: all ease .2s; }
        @media screen and (min-width: 1024px) {
          main.company > .content section.access .action a {
            font-size: calc(var(--base-size) * 20px);
            line-height: calc(22 / 20);
            letter-spacing: calc(var(--base-size) * 2px);
            padding-right: calc(var(--base-size) * 40px); } }
        main.company > .content section.access .action a:after {
          width: 13px;
          height: 13px;
          content: "";
          display: block;
          background-image: url("../images/company/access_icon_arrow.svg");
          background-size: 100% 100%;
          position: absolute;
          right: 0;
          top: 50%;
          transform: translateY(-50%);
          transition: all ease .2s; }
          @media screen and (min-width: 1024px) {
            main.company > .content section.access .action a:after {
              width: calc(var(--base-size) * 22px);
              height: calc(var(--base-size) * 22px); } }
        @media screen and (min-width: 1024px) {
          main.company > .content section.access .action a:hover {
            opacity: .7; }
            main.company > .content section.access .action a:hover:after {
              right: -8px; } }
  main.company nav.contact {
    overflow: hidden;
    position: relative;
    background-color: #4169E1;
    color: #fff;
    padding-top: 120px;
    padding-bottom: 96px; }
    @media screen and (min-width: 1024px) {
      main.company nav.contact {
        padding-top: calc(var(--base-size) * 189px);
        padding-bottom: calc(var(--base-size) * 95px); } }
    main.company nav.contact .container {
      margin: 0 auto;
      width: calc(84vw); }
      @media screen and (min-width: 1024px) {
        main.company nav.contact .container {
          width: calc(var(--base-size) * 1320px); } }
      main.company nav.contact .container hgroup p {
        position: absolute;
        top: 61px;
        left: 50%;
        transform: translateX(-50%);
        font-family: var(--font-family-en);
        font-style: normal;
        font-weight: 800;
        font-size: 64px;
        line-height: 90%;
        text-align: center;
        letter-spacing: 1.01846px;
        text-transform: uppercase;
        opacity: 0.5;
        filter: url(#dilate);
        color: #D8D8D8; }
        @media screen and (min-width: 1024px) {
          main.company nav.contact .container hgroup p {
            top: calc(var(--base-size) * 90px);
            font-size: calc(var(--base-size) * 250px);
            line-height: calc(175 / 250);
            letter-spacing: calc(var(--base-size) * (-3px)); } }
      main.company nav.contact .container hgroup h2 {
        position: relative;
        font-weight: 500;
        font-size: 16px;
        line-height: 100%;
        letter-spacing: 1.9096px;
        text-transform: uppercase;
        text-align: center;
        margin-bottom: 62px; }
        @media screen and (min-width: 1024px) {
          main.company nav.contact .container hgroup h2 {
            font-size: calc(var(--base-size) * 24px);
            line-height: calc(32 / 24);
            letter-spacing: calc(var(--base-size) * 9px);
            margin-bottom: calc(var(--base-size) * 120px); } }
      main.company nav.contact .container dl dt {
        font-weight: 700;
        font-size: 20px;
        line-height: 100%;
        text-align: center;
        letter-spacing: 0.05em; }
        @media screen and (min-width: 1024px) {
          main.company nav.contact .container dl dt {
            font-size: calc(var(--base-size) * 32px);
            line-height: 100%;
            text-align: center;
            letter-spacing: 0.05em; } }
      main.company nav.contact .container dl dd p.tel {
        text-align: center;
        margin-top: 9px; }
        @media screen and (min-width: 1024px) {
          main.company nav.contact .container dl dd p.tel {
            margin-top: calc(var(--base-size) * 46px); } }
        main.company nav.contact .container dl dd p.tel a {
          position: relative;
          display: inline-block;
          font-family: var(--font-family-en);
          font-weight: 700;
          font-size: 40px;
          line-height: 1;
          text-align: center;
          padding-left: 40px; }
          @media screen and (min-width: 1024px) {
            main.company nav.contact .container dl dd p.tel a {
              font-size: calc(var(--base-size) * 96px);
              letter-spacing: 0.583333px;
              padding-left: calc(var(--base-size) * 93px);
              pointer-events: none; } }
          main.company nav.contact .container dl dd p.tel a:before {
            content: "";
            position: absolute;
            left: 0;
            top: 50%;
            transform: translateY(-50%);
            background-image: url("../images/common/contact_icon_tel.svg");
            background-size: 100% 100%;
            display: block;
            width: 34px;
            height: 31px; }
            @media screen and (min-width: 1024px) {
              main.company nav.contact .container dl dd p.tel a:before {
                width: calc(var(--base-size) * 73px);
                height: calc(var(--base-size) * 67px); } }
      main.company nav.contact .container dl dd p.mail {
        margin-top: 24px;
        text-align: center; }
        @media screen and (min-width: 1024px) {
          main.company nav.contact .container dl dd p.mail {
            margin-top: calc(var(--base-size) * 39px); } }
        main.company nav.contact .container dl dd p.mail a {
          position: relative;
          display: inline-flex;
          justify-content: center;
          align-items: center;
          font-weight: 900;
          font-size: 16px;
          line-height: 20px;
          text-align: center;
          border: 2px solid #FFFFFF;
          width: 310px;
          height: 65px; }
          @media screen and (min-width: 1024px) {
            main.company nav.contact .container dl dd p.mail a {
              font-style: normal;
              font-weight: 900;
              font-size: 24px;
              line-height: 30px;
              width: 739px;
              height: 121px; } }
          main.company nav.contact .container dl dd p.mail a:before {
            content: "";
            background-color: #fff;
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 0;
            transition: all ease .2s; }
          main.company nav.contact .container dl dd p.mail a span {
            position: relative;
            display: inline-block;
            padding-left: 40px;
            transition: all ease .2s; }
            @media screen and (min-width: 1024px) {
              main.company nav.contact .container dl dd p.mail a span {
                padding-left: 0;
                padding-left: calc(var(--base-size) * 83px); } }
            main.company nav.contact .container dl dd p.mail a span:before {
              content: "";
              position: absolute;
              top: 50%;
              transform: translateY(-50%);
              display: block;
              -webkit-mask-image: url("../images/common/contact_icon_mail.svg");
              mask-image: url("../images/common/contact_icon_mail.svg");
              -webkit-mask-size: 100% 100%;
              mask-size: 100% 100%;
              width: 33px;
              height: 33px;
              left: 0;
              background-color: #fff;
              transition: all ease .2s; }
              @media screen and (min-width: 1024px) {
                main.company nav.contact .container dl dd p.mail a span:before {
                  width: calc(var(--base-size) * 65px);
                  height: calc(var(--base-size) * 65px); } }
          @media screen and (min-width: 1024px) {
            main.company nav.contact .container dl dd p.mail a:hover:before {
              height: 100%; }
            main.company nav.contact .container dl dd p.mail a:hover span {
              color: #4169E1; }
              main.company nav.contact .container dl dd p.mail a:hover span:before {
                background-color: #4169E1; } }
      main.company nav.contact .container dl dd + dt {
        margin-top: 76px; }
        @media screen and (min-width: 1024px) {
          main.company nav.contact .container dl dd + dt {
            margin-top: calc(var(--base-size) * 83px); } }

main.contact {
  padding-top: 90px; }
  @media screen and (min-width: 1024px) {
    main.contact {
      padding-top: calc(var(--base-size) * 132px); } }
  main.contact .container {
    margin: 0 auto;
    width: calc(84vw); }
    @media screen and (min-width: 1024px) {
      main.contact .container {
        width: calc(var(--base-size) * 1320px); } }
  main.contact > header.visual {
    overflow: hidden;
    height: 406px;
    display: flex;
    justify-content: center;
    align-items: center;
    background-size: cover;
    background-position: 50% 50%; }
    @media screen and (min-width: 1024px) {
      main.contact > header.visual {
        height: calc(var(--base-size) * 899px); } }
    main.contact > header.visual p {
      font-family: var(--font-family-en);
      font-weight: 800;
      font-size: 64px;
      line-height: 78px;
      letter-spacing: -4px;
      text-transform: uppercase;
      filter: url(#dilate);
      color: #fff; }
      @media screen and (min-width: 1024px) {
        main.contact > header.visual p {
          font-size: calc(var(--base-size) * 250px);
          line-height: calc(305 / 250);
          letter-spacing: calc(var(--base-size) * (-21px)); } }
  main.contact > header {
    background-image: url("../images/contact/visual.jpg"); }
  main.contact .content {
    padding-top: 50px; }
    @media screen and (min-width: 1024px) {
      main.contact .content {
        padding-top: calc(var(--base-size) * 111px);
        padding-bottom: calc(var(--base-size) * 133px); } }
    main.contact .content .container h1 {
      font-weight: 500;
      font-size: 16px;
      line-height: 32px;
      letter-spacing: 9px;
      text-transform: uppercase;
      color: #4169E1;
      margin-bottom: 39px;
      text-align: center; }
      @media screen and (min-width: 1024px) {
        main.contact .content .container h1 {
          display: none; } }
    main.contact .content .container .lead {
      font-weight: 400;
      font-size: 20px;
      line-height: 28px;
      letter-spacing: -1px;
      color: #181818; }
      @media screen and (min-width: 1024px) {
        main.contact .content .container .lead {
          font-size: calc(var(--base-size) * 32px);
          line-height: calc(49 / 32);
          text-align: center;
          letter-spacing: calc(var(--base-size) * (-1px)); } }
    main.contact .content .container dl {
      margin-top: 70px; }
      @media screen and (min-width: 1024px) {
        main.contact .content .container dl {
          margin-top: calc(var(--base-size) * 112px); } }
      main.contact .content .container dl dt {
        font-size: 19.2658px;
        line-height: 28px;
        color: #181818;
        margin-bottom: 18px; }
        @media screen and (min-width: 1024px) {
          main.contact .content .container dl dt {
            font-size: calc(var(--base-size) * 24px);
            line-height: calc(var(--base-size) * 35px);
            color: #181818;
            margin-bottom: calc(var(--base-size) * 22px); } }
        main.contact .content .container dl dt .required {
          margin-left: 1em;
          font-weight: 700;
          color: #4169E1; }
          @media screen and (min-width: 1024px) {
            main.contact .content .container dl dt .required {
              margin-left: calc(var(--base-size) * 24px); } }
      main.contact .content .container dl dd {
        position: relative;
        margin-bottom: 50px; }
        @media screen and (min-width: 1024px) {
          main.contact .content .container dl dd {
            margin-bottom: calc(var(--base-size) * 60px); } }
        main.contact .content .container dl dd .note {
          font-weight: 600;
          font-size: 16px;
          line-height: 23px;
          letter-spacing: -1px;
          color: #181818;
          margin-bottom: 48px; }
          @media screen and (min-width: 1024px) {
            main.contact .content .container dl dd .note {
              position: absolute;
              font-weight: 700;
              font-size: calc(var(--base-size) * 24px);
              line-height: calc(49 / 24);
              letter-spacing: -1px;
              color: #181818;
              left: calc(var(--base-size) * 394px);
              top: calc(var(--base-size) * (-88px));
              margin-bottom: 0; } }
        main.contact .content .container dl dd input[type="text"],
        main.contact .content .container dl dd input[type="email"],
        main.contact .content .container dl dd input[type="tel"],
        main.contact .content .container dl dd textarea {
          font-weight: 700;
          font-size: 25.6877px;
          line-height: 36px;
          border: 1px solid rgba(24, 24, 24, 0.15);
          width: 100%; }
          @media screen and (min-width: 1024px) {
            main.contact .content .container dl dd input[type="text"],
            main.contact .content .container dl dd input[type="email"],
            main.contact .content .container dl dd input[type="tel"],
            main.contact .content .container dl dd textarea {
              font-size: calc(var(--base-size) * 32px);
              line-height: calc(46 / 32); } }
          main.contact .content .container dl dd input[type="text"]::placeholder,
          main.contact .content .container dl dd input[type="email"]::placeholder,
          main.contact .content .container dl dd input[type="tel"]::placeholder,
          main.contact .content .container dl dd textarea::placeholder {
            color: #D8D8D8; }
        main.contact .content .container dl dd input[type="text"],
        main.contact .content .container dl dd input[type="email"],
        main.contact .content .container dl dd input[type="tel"] {
          height: 74px;
          padding: 0 24px; }
          @media screen and (min-width: 1024px) {
            main.contact .content .container dl dd input[type="text"],
            main.contact .content .container dl dd input[type="email"],
            main.contact .content .container dl dd input[type="tel"] {
              height: calc(var(--base-size) * 92px);
              padding: 0 calc(var(--base-size) * 30px); } }
        main.contact .content .container dl dd textarea {
          padding: 24px;
          height: 248px; }
          @media screen and (min-width: 1024px) {
            main.contact .content .container dl dd textarea {
              height: calc(var(--base-size) * 308px);
              padding: calc(var(--base-size) * 30px); } }
        main.contact .content .container dl dd .wpcf7-radio {
          display: block;
          margin-top: 43px; }
          @media screen and (min-width: 1024px) {
            main.contact .content .container dl dd .wpcf7-radio {
              margin-top: calc(var(--base-size) * 48px); } }
          main.contact .content .container dl dd .wpcf7-radio .wpcf7-list-item {
            display: block; }
            main.contact .content .container dl dd .wpcf7-radio .wpcf7-list-item + .wpcf7-list-item {
              margin-top: 26px; }
              @media screen and (min-width: 1024px) {
                main.contact .content .container dl dd .wpcf7-radio .wpcf7-list-item + .wpcf7-list-item {
                  margin-top: calc(var(--base-size) * 34px); } }
            main.contact .content .container dl dd .wpcf7-radio .wpcf7-list-item label input {
              display: none; }
            main.contact .content .container dl dd .wpcf7-radio .wpcf7-list-item label span {
              position: relative;
              display: inline-block;
              font-size: 24.6743px;
              line-height: 26px;
              color: #333333;
              padding-left: 36px; }
              @media screen and (min-width: 1024px) {
                main.contact .content .container dl dd .wpcf7-radio .wpcf7-list-item label span {
                  font-size: calc(var(--base-size) * 32px);
                  line-height: calc(var(--base-size) * 33px);
                  padding-left: calc(var(--base-size) * 47px); } }
              main.contact .content .container dl dd .wpcf7-radio .wpcf7-list-item label span:before {
                content: "";
                width: 26px;
                height: 26px;
                display: block;
                position: absolute;
                top: 0;
                left: 0;
                border-radius: 50%;
                border: 1px solid #CCCCCC; }
                @media screen and (min-width: 1024px) {
                  main.contact .content .container dl dd .wpcf7-radio .wpcf7-list-item label span:before {
                    width: calc(var(--base-size) * 33px);
                    height: calc(var(--base-size) * 33px); } }
            main.contact .content .container dl dd .wpcf7-radio .wpcf7-list-item label input:checked + span:before {
              background-color: #4169E1;
              border-color: #4169E1; }
    main.contact .content .container .action {
      text-align: center;
      margin-top: 64px; }
      @media screen and (min-width: 1024px) {
        main.contact .content .container .action {
          margin-top: calc(var(--base-size) * 111px); } }
      main.contact .content .container .action button {
        position: relative;
        display: inline-flex;
        justify-content: center;
        align-items: center;
        font-family: var(--font-family-en);
        font-style: normal;
        font-weight: 600;
        font-size: 15.1045px;
        line-height: 18px;
        text-align: center;
        text-transform: uppercase;
        background-color: #4169E1;
        color: #FFFFFF;
        width: 253px;
        height: 66px;
        transition: all ease .2s;
        /*
        display: inline-flex;
        justify-content: center;
        align-items: center;
        background: #4169E1;
        font-weight: 600;
        text-align: center;
        text-transform: uppercase;
        color: #FFFFFF;
        */
        width: 253px;
        height: 72px;
        font-size: 15.1045px;
        line-height: 1.5; }
        @media screen and (min-width: 1024px) {
          main.contact .content .container .action button {
            font-size: calc(var(--base-size) * 24px);
            line-height: calc(29 / 24);
            width: calc(var(--base-size) * 402px);
            height: calc(var(--base-size) * 118px);
            background-color: transparent;
            border: 2px solid #4169E1;
            color: #4169E1; } }
        main.contact .content .container .action button:before {
          content: "";
          background-color: #4169E1;
          position: absolute;
          top: 0;
          left: 0;
          right: 0;
          height: 0;
          transition: all ease .2s; }
        main.contact .content .container .action button span {
          position: relative; }
        @media screen and (min-width: 1024px) {
          main.contact .content .container .action button:hover {
            color: #fff; }
            main.contact .content .container .action button:hover:before {
              height: 100%; } }
        @media screen and (min-width: 1024px) {
          main.contact .content .container .action button {
            font-size: calc(var(--base-size) * 24px);
            width: calc(var(--base-size) * 402px);
            height: calc(var(--base-size) * 122px); } }
  main.contact .wpcf7-not-valid-tip {
    margin-top: 8px;
    font-size: 16px;
    line-height: 1.5; }
  main.contact .wpcf7 form .wpcf7-response-output {
    font-size: 16px;
    line-height: 1.5;
    border: none !important;
    margin: 0;
    margin-top: 8px;
    padding: 0; }
    @media screen and (min-width: 1024px) {
      main.contact .wpcf7 form .wpcf7-response-output {
        text-align: center; } }
  main.contact .wpcf7 form.invalid .wpcf7-response-output, main.contact .wpcf7 form.unaccepted .wpcf7-response-output, main.contact .wpcf7 form.payment-required .wpcf7-response-output {
    color: #E34F00; }
  main.contact .wpcf7 form.sent .wpcf7-response-output {
    color: #E34F00; }
