@charset "UTF-8";
/* http://meyerweb.com/eric/tools/css/reset/
   v2.0 | 20110126
   License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
strike, strong, sub, sup, tt, var,
b, u, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

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

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

div {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

/* iOSでのデフォルトスタイルをリセット */
input[type="submit"],
input[type="button"] {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  -moz-appearance: button;
  appearance: button;
  border: none;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  cursor: pointer; }

input[type="submit"]::-webkit-search-decoration,
input[type="button"]::-webkit-search-decoration {
  display: none; }

input[type="submit"]::focus,
input[type="button"]::focus {
  outline-offset: -2px; }

html {
  font-size: 62.5%; }

body {
  font-family: "Open Sans", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-variation-settings: "wdth" 100;
  font-size: 1.6rem;
  line-height: 2;
  color: #000;
  background-color: #fff; }
  @media (max-width: 768px) {
    body {
      font-size: 1.4rem; } }
  body.menu-open {
    overflow: hidden; }

a {
  color: #000;
  text-decoration: none;
  cursor: pointer;
  -webkit-transition: all .3s;
  transition: all .3s; }

img {
  max-width: 100%;
  vertical-align: bottom; }

.sp-view {
  display: none !important; }

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

.clearfix:after {
  content: ".";
  /* 新しい要素を作る */
  display: block;
  /* ブロックレベル要素に */
  clear: both;
  height: 0;
  font-size: 0;
  visibility: hidden; }

.clearfix {
  min-height: 1px; }

* html .clearfix {
  height: 1px;
  /*¥*/
  /*/
  height: auto;
  overflow: hidden;
  /**/ }

div#container {
  width: 100%;
  margin: 0 auto;
  padding: 0;
  margin: 0;
  position: relative;
  text-align: left;
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

.eng {
  font-family: "Aldrich", sans-serif;
  font-weight: 400;
  font-style: normal; }

.menu-inner {
  padding: 0 4rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  width: 100%; }
  @media (max-width: 768px) {
    .menu-inner {
      padding: 0 2rem;
      -webkit-column-gap: 3.4rem;
      -moz-column-gap: 3.4rem;
      column-gap: 3.4rem; } }
  .menu-inner .menu-wrapper {
    max-width: 300px;
    width: 100%; }
    @media (max-width: 768px) {
      .menu-inner .menu-wrapper {
        max-width: 100%;
        width: auto; } }
    .menu-inner .menu-wrapper h1 {
      width: 124px;
      margin: 0 auto 8.5rem; }
      @media (max-width: 1380px) {
        .menu-inner .menu-wrapper h1 {
          width: 90px;
          margin: 0 auto 7rem; } }
      @media (max-width: 768px) {
        .menu-inner .menu-wrapper h1 {
          width: 85px;
          margin: 0 auto 5.8rem 1rem; } }
    .menu-inner .menu-wrapper ul li:last-of-type a {
      margin-bottom: 0; }
    .menu-inner .menu-wrapper ul a {
      font-weight: 600;
      font-size: 1.5rem;
      text-transform: uppercase;
      line-height: 1;
      margin-bottom: 2rem;
      display: block;
      letter-spacing: 0.01em; }
      @media (max-width: 768px) {
        .menu-inner .menu-wrapper ul a {
          font-size: 1.2rem;
          margin-bottom: 1.6rem;
          letter-spacing: 0.14em; } }
      .menu-inner .menu-wrapper ul a:hover {
        color: #D7000F; }
        .menu-inner .menu-wrapper ul a:hover img {
          -webkit-filter: brightness(0) saturate(100%) invert(14%) sepia(86%) saturate(4106%) hue-rotate(347deg) brightness(91%) contrast(118%);
          filter: brightness(0) saturate(100%) invert(14%) sepia(86%) saturate(4106%) hue-rotate(347deg) brightness(91%) contrast(118%); }
      .menu-inner .menu-wrapper ul a img {
        width: 20px;
        -webkit-transition: all .3s;
        transition: all .3s; }
  .menu-inner.under {
    padding: 0 4rem; }
    @media (max-width: 768px) {
      .menu-inner.under {
        padding: 0 1.5rem;
        display: block; } }
    .menu-inner.under .menu-wrapper {
      max-width: 230px;
      width: 100%; }
      @media (max-width: 768px) {
        .menu-inner.under .menu-wrapper {
          display: none; } }
      .menu-inner.under .menu-wrapper h1 {
        max-width: 88px; }

.top-container {
  padding-top: 7rem; }
  @media (max-width: 1380px) {
    .top-container .menu-inner {
      -webkit-column-gap: 5rem;
      -moz-column-gap: 5rem;
      column-gap: 5rem;
      -webkit-box-pack: center;
      -ms-flex-pack: center;
      justify-content: center; } }
  .top-container .menu-inner .img-wrapper {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1; }
    @media (max-width: 1380px) {
      .top-container .menu-inner .img-wrapper {
        max-width: 800px; } }
    .top-container .menu-inner .img-wrapper .grid {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      grid-template-rows: auto auto auto;
      grid-column-gap: 0px;
      grid-row-gap: 0px;
      gap: 1rem; }
      @media (max-width: 768px) {
        .top-container .menu-inner .img-wrapper .grid {
          display: block; } }
    .top-container .menu-inner .img-wrapper .item {
      width: 100%;
      height: 100%;
      overflow: hidden;
      opacity: 0;
      visibility: hidden; }
      .top-container .menu-inner .img-wrapper .item:not(:last-of-type) {
        margin-bottom: 0.6rem; }
      .top-container .menu-inner .img-wrapper .item a:hover {
        opacity: 0.7; }
      .top-container .menu-inner .img-wrapper .item img {
        width: 100%;
        height: 100%;
        -o-object-fit: cover;
        object-fit: cover;
        display: block; }
    .top-container .menu-inner .img-wrapper .div1 {
      grid-area: 1 / 1 / 3 / 2; }
    .top-container .menu-inner .img-wrapper .div2 {
      grid-area: 1 / 2 / 2 / 3; }
    .top-container .menu-inner .img-wrapper .div3 {
      grid-area: 3 / 1 / 4 / 2; }
    .top-container .menu-inner .img-wrapper .div4 {
      grid-area: 2 / 2 / 4 / 3; }

.list-container {
  padding-top: 7rem; }
  @media (max-width: 768px) {
    .list-container {
      padding-top: 9rem; } }
  .list-container .menu-inner {
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start; }
    .list-container .menu-inner .menu-wrapper {
      position: sticky;
      top: 5rem; }
    .list-container .menu-inner .list-wrapper {
      -webkit-box-flex: 1;
      -ms-flex: 1;
      flex: 1; }
      .list-container .menu-inner .list-wrapper h2 {
        font-size: 4.8rem;
        letter-spacing: 0.016em;
        margin-bottom: 4rem;
        line-height: 1; }
        @media (max-width: 768px) {
          .list-container .menu-inner .list-wrapper h2 {
            font-size: 3.2rem;
            margin-bottom: 2rem; } }
      .list-container .menu-inner .list-wrapper .flex-block {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        margin: 0 -0.3rem;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
        .list-container .menu-inner .list-wrapper .flex-block .item {
          width: calc(100%/5);
          padding: 0 0.3rem;
          margin-bottom: 5.6rem; }
          @media (max-width: 768px) {
            .list-container .menu-inner .list-wrapper .flex-block .item {
              width: calc(100%/2);
              margin-bottom: 3rem; } }
          .list-container .menu-inner .list-wrapper .flex-block .item .trimming {
            overflow: hidden;
            position: relative;
            padding-top: 136.84%;
            margin-bottom: 1.6rem; }
            .list-container .menu-inner .list-wrapper .flex-block .item .trimming::before {
              content: "";
              display: block; }
            .list-container .menu-inner .list-wrapper .flex-block .item .trimming img {
              position: absolute;
              width: 100%;
              height: 100%;
              top: 0;
              right: 0;
              bottom: 0;
              left: 0;
              margin: auto;
              -o-object-fit: cover;
              object-fit: cover; }
          .list-container .menu-inner .list-wrapper .flex-block .item p.name {
            font-size: 1.5rem;
            letter-spacing: 0.08em;
            line-height: 1;
            -webkit-transition: all .3s;
            transition: all .3s; }
          .list-container .menu-inner .list-wrapper .flex-block .item a:hover p.name {
            color: #D7000F; }

.about-container {
  padding-top: 4rem; }
  .about-container .menu-inner {
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start;
    -webkit-column-gap: 19rem;
    -moz-column-gap: 19rem;
    column-gap: 19rem; }
  .about-container .about-wrapper {
    padding-top: 10rem;
    letter-spacing: 0.016em; }
    .about-container .about-wrapper h2 {
      font-size: 4.8rem;
      line-height: 1; }
      @media (max-width: 768px) {
        .about-container .about-wrapper h2 {
          font-size: 3.2rem;
          line-height: 1.25;
          margin-bottom: 4rem; } }
    .about-container .about-wrapper .address-block {
      margin-bottom: 8rem; }
      .about-container .about-wrapper .address-block p.company {
        font-size: 2rem;
        line-height: 1.25;
        margin-bottom: 4rem; }
      .about-container .about-wrapper .address-block p.address {
        font-size: 1.4rem;
        line-height: 1.78; }
    .about-container .about-wrapper .contact-block {
      font-size: 3.2rem;
      margin-bottom: 8rem; }
      .about-container .about-wrapper .contact-block a {
        text-decoration: underline; }
        .about-container .about-wrapper .contact-block a:hover {
          color: #D7000F; }
    @media (max-width: 768px) {
      .about-container .about-wrapper .link-block {
        margin-bottom: 25rem; } }
    .about-container .about-wrapper .link-block p.eng {
      font-size: 3.2rem;
      line-height: 1;
      margin-bottom: 3rem; }
    .about-container .about-wrapper .link-block a {
      font-size: 1.4rem;
      line-height: 1.78;
      text-decoration: underline; }

.profile-container {
  padding-top: 5.8rem; }
  @media (max-width: 768px) {
    .profile-container {
      padding-top: 9rem; } }
  .profile-container .menu-inner {
    -webkit-column-gap: 8.8rem;
    -moz-column-gap: 8.8rem;
    column-gap: 8.8rem;
    -webkit-box-pack: start;
    -ms-flex-pack: start;
    justify-content: flex-start; }
  @media (max-width: 768px) {
    .profile-container h3 {
      font-size: 3.2rem;
      letter-spacing: 0.016em;
      line-height: 1.25;
      margin-bottom: 2rem; } }
  .profile-container .det-wrapper .flex-wrap {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-column-gap: 8rem;
    -moz-column-gap: 8rem;
    column-gap: 8rem; }
    @media (max-width: 768px) {
      .profile-container .det-wrapper .flex-wrap {
        display: block; } }
  .profile-container .det-wrapper .slider-block {
    display: block;
    max-width: 600px;
    width: 100%; }
    .profile-container .det-wrapper .slider-block .slide {
      position: relative;
      margin: 0;
      padding: 0; }
      .profile-container .det-wrapper .slider-block .slide .item {
        position: relative;
        height: 100%;
        background-color: #F5F5F5;
        margin-bottom: 1rem; }
        @media (max-width: 768px) {
          .profile-container .det-wrapper .slider-block .slide .item {
            margin-bottom: 2.4rem; } }
        .profile-container .det-wrapper .slider-block .slide .item .trimming {
          overflow: hidden;
          position: relative;
          padding-top: 100%; }
          .profile-container .det-wrapper .slider-block .slide .item .trimming::before {
            content: "";
            display: block; }
          .profile-container .det-wrapper .slider-block .slide .item .trimming img {
            position: absolute;
            width: 100%;
            height: 100%;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            margin: auto;
            -o-object-fit: contain;
            object-fit: contain; }
    .profile-container .det-wrapper .slider-block .slide > .slick-list,
    .profile-container .det-wrapper .slider-block .slide > .slick-list > .slick-track,
    .profile-container .det-wrapper .slider-block .slide > .slick-list > .slick-track > .slick-slide > div {
      position: relative;
      height: 100%; }
    .profile-container .det-wrapper .slider-block .slide-arrow {
      bottom: 0;
      cursor: pointer;
      position: absolute;
      top: 35%;
      width: 20px;
      z-index: 10; }
      @media (max-width: 768px) {
        .profile-container .det-wrapper .slider-block .slide-arrow {
          width: 11px;
          top: 50%;
          -webkit-transform: translateY(-50%);
          /* Safari用 */
          transform: translateY(-50%); } }
    .profile-container .det-wrapper .slider-block .prev-arrow {
      left: 10px; }
    .profile-container .det-wrapper .slider-block .next-arrow {
      right: 10px; }
  .profile-container .det-wrapper .profile-block {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    max-width: 450px; }
    @media (max-width: 768px) {
      .profile-container .det-wrapper .profile-block {
        -webkit-box-flex: 1;
        -ms-flex: auto;
        flex: auto; } }
    .profile-container .det-wrapper .profile-block h3 {
      font-size: 4.8rem;
      letter-spacing: 0.016em;
      line-height: 1;
      margin-bottom: 5rem; }
    .profile-container .det-wrapper .profile-block .text-box {
      letter-spacing: 0.016em; }
      .profile-container .det-wrapper .profile-block .text-box:not(:last-of-type) {
        margin-bottom: 6rem; }
        @media (max-width: 768px) {
          .profile-container .det-wrapper .profile-block .text-box:not(:last-of-type) {
            margin-bottom: 3rem; } }
      .profile-container .det-wrapper .profile-block .text-box h4 {
        font-size: 3.2rem;
        text-transform: uppercase; }
        @media (max-width: 768px) {
          .profile-container .det-wrapper .profile-block .text-box h4 {
            font-size: 2.4rem;
            margin-bottom: 3rem;
            text-transform: uppercase;
            line-height: 1; } }
      .profile-container .det-wrapper .profile-block .text-box li {
        font-size: 1.4rem;
        line-height: 1.75; }
        .profile-container .det-wrapper .profile-block .text-box li:not(:last-of-type) {
          margin-bottom: 0.5rem; }
    .profile-container .det-wrapper .profile-block .scroll-wrap {
      max-height: 100vh;
      overflow-y: auto;
      margin-bottom: 6rem; }
      @media (max-width: 768px) {
        .profile-container .det-wrapper .profile-block .scroll-wrap {
          overflow-y: visible;
          max-height: 100%;
          margin-bottom: 2rem; } }
    @media (max-width: 768px) {
      .profile-container .det-wrapper .profile-block .accordion-box {
        margin-top: 3rem;
        background-color: #F5F5F5;
        margin-bottom: 2rem; } }
    @media (max-width: 768px) {
      .profile-container .det-wrapper .profile-block .accordion-content {
        display: none;
        padding: 3rem 1rem; } }
    @media (max-width: 768px) {
      .profile-container .det-wrapper .profile-block .accordion-content .text-box {
        font-size: 1.4rem;
        line-height: 1.78; } }
    @media (max-width: 768px) {
      .profile-container .det-wrapper .profile-block .accordion-content .text-box:not(:last-of-type) {
        margin-bottom: 3rem; } }
    @media (max-width: 768px) {
      .profile-container .det-wrapper .profile-block .accordion-header {
        background-color: #F5F5F5;
        padding: 24px 45px 24px 10px;
        margin: 10px 0 0;
        -webkit-transition: background .3s ease;
        transition: background .3s ease;
        cursor: pointer;
        position: relative; } }
    @media (max-width: 768px) {
      .profile-container .det-wrapper .profile-block .accordion-header::before, .profile-container .det-wrapper .profile-block .accordion-header::after {
        position: absolute;
        content: '';
        top: 1px;
        left: 10px;
        bottom: 0;
        width: 28px;
        height: 2px;
        margin: auto;
        background: #D7000F; } }
    @media (max-width: 768px) {
      .profile-container .det-wrapper .profile-block .accordion-header::after {
        -webkit-transform: rotate(-90deg);
        transform: rotate(-90deg);
        -webkit-transition: -webkit-transform 0.3s;
        transition: -webkit-transform 0.3s;
        transition: transform 0.3s;
        transition: transform 0.3s, -webkit-transform 0.3s; } }
    @media (max-width: 768px) {
      .profile-container .det-wrapper .profile-block .accordion-header.active::after {
        -webkit-transform: rotate(0deg);
        transform: rotate(0deg); } }
    .profile-container .det-wrapper .profile-block .accordion-header.active + .accordion-content {
      display: block; }
  .profile-container .det-wrapper .slide-navigation {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem; }
    @media (max-width: 768px) {
      .profile-container .det-wrapper .slide-navigation {
        gap: 0.5rem; } }
    .profile-container .det-wrapper .slide-navigation .item {
      cursor: pointer;
      -webkit-transition: opacity 0.3s ease;
      transition: opacity 0.3s ease;
      margin-bottom: 0 !important; }
      .profile-container .det-wrapper .slide-navigation .item.current {
        opacity: 1; }
      .profile-container .det-wrapper .slide-navigation .item .trimming {
        position: relative;
        padding-top: 100%;
        overflow: hidden; }
        .profile-container .det-wrapper .slide-navigation .item .trimming img {
          position: absolute;
          width: 100%;
          height: 100%;
          -o-object-fit: cover !important;
          object-fit: cover !important;
          top: 0;
          left: 0; }
  .profile-container p.link {
    font-weight: 600;
    font-size: 1.5rem;
    letter-spacing: 0.01em; }
    @media (max-width: 768px) {
      .profile-container p.link {
        margin-top: 4rem;
        margin-bottom: 4rem; } }
    .profile-container p.link a {
      text-decoration: underline; }
      .profile-container p.link a:hover {
        color: #D7000F; }

@media (max-width: 768px) {
  .header.under {
    height: 70px;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    background-color: #fff;
    z-index: 50;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center; }
    .header.under h1 {
      width: 186px;
      padding-left: 1.5rem; } }

.header nav {
  position: fixed;
  top: 24px;
  width: 100%;
  z-index: 10; }
  .header nav .menu-panel {
    position: fixed;
    top: 0;
    right: -100%;
    width: 100%;
    max-width: 500px;
    /* スマホ想定 */
    height: 100vh;
    background: #D9D9D9;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    list-style: none;
    padding: 10rem;
    -webkit-transition: right 0.7s ease;
    transition: right 0.7s ease;
    display: block;
    /* display: none → block にしておく */
    z-index: 100;
    list-style: none; }
    @media (max-width: 768px) {
      .header nav .menu-panel {
        padding: 13rem 4rem 10rem;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch; } }
    .header nav .menu-panel.open {
      right: 0; }
    .header nav .menu-panel li {
      margin-bottom: 5.6rem; }
      .header nav .menu-panel li a {
        text-transform: uppercase;
        font-size: 2rem;
        font-weight: 600;
        display: block;
        line-height: 1;
        letter-spacing: 0.14em; }
        @media (max-width: 768px) {
          .header nav .menu-panel li a {
            font-size: 1.6rem; } }
        .header nav .menu-panel li a.mail {
          font-size: 1.3rem; }
        .header nav .menu-panel li a:hover {
          color: #D7000F; }
          .header nav .menu-panel li a:hover img {
            -webkit-filter: brightness(0) saturate(100%) invert(14%) sepia(86%) saturate(4106%) hue-rotate(347deg) brightness(91%) contrast(118%);
            filter: brightness(0) saturate(100%) invert(14%) sepia(86%) saturate(4106%) hue-rotate(347deg) brightness(91%) contrast(118%); }
        .header nav .menu-panel li a img {
          width: 20px;
          -webkit-transition: all .3s;
          transition: all .3s;
          vertical-align: top; }
      .header nav .menu-panel li span {
        text-transform: none; }
    .header nav .menu-panel .logo {
      display: none; }
      @media (max-width: 768px) {
        .header nav .menu-panel .logo {
          display: block;
          position: absolute;
          top: 20px;
          left: 15px;
          width: 186px; } }

.header .hamburger {
  position: absolute;
  top: 32px;
  right: 32px;
  cursor: pointer;
  width: 28px;
  height: 18px;
  z-index: 10; }
  @media (max-width: 768px) {
    .header .hamburger {
      top: 20px;
      right: 15px; } }
  .header .hamburger.open span:nth-of-type(1) {
    top: 0;
    -webkit-transform: translateY(6px) rotate(-33deg);
    transform: translateY(6px) rotate(-33deg); }
  .header .hamburger.open span:nth-of-type(2) {
    opacity: 0; }
  .header .hamburger.open span:nth-of-type(3) {
    top: 12px;
    -webkit-transform: translateY(-6px) rotate(33deg);
    transform: translateY(-6px) rotate(33deg); }
  .header .hamburger span {
    -webkit-transition: all .3s;
    transition: all .3s;
    position: absolute;
    height: 2px;
    background-color: #333;
    width: 100%;
    z-index: 10; }
    .header .hamburger span:nth-of-type(1) {
      top: 0; }
    .header .hamburger span:nth-of-type(2) {
      top: 8px; }
    .header .hamburger span:nth-of-type(3) {
      bottom: 0; }

footer {
  margin-top: 6.5rem; }
  @media (max-width: 768px) {
    footer {
      margin-top: 1rem; } }
  footer p.copyright {
    font-size: 1.1rem;
    letter-spacing: 0.08em;
    padding-right: 4rem;
    text-align: right;
    margin-bottom: 3rem; }
    @media (max-width: 768px) {
      footer p.copyright {
        padding-right: 2rem; } }
