@charset "UTF-8";

*, *::before, *::after {
  box-sizing: border-box;
}

article,
section {
  display: block;
}

body,
h1,
h2,
h3,
ul,
p {
  margin: 0;
}

body {
  width: 100%;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  color: #000;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

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

.inner {
  margin-inline: auto;
  padding-inline: calc(16vw / 3) !important;
}

.sec-mv,
.sec-lead,
.sec-concept,
.sec-double-engine,
.sec-showcase {
  color: #fff;
  background-color: #000;
}

.sec-showcase {
  background-image: -moz-linear-gradient(90deg, rgb(73, 72, 69) 0%, rgb(47, 44, 42) 25%, rgb(47, 44, 42) 75%, rgb(73, 72, 69) 100%);
  background-image: -webkit-linear-gradient(90deg, rgb(73, 72, 69) 0%, rgb(47, 44, 42) 25%, rgb(47, 44, 42) 75%, rgb(73, 72, 69) 100%);
  background-image: -ms-linear-gradient(90deg, rgb(73, 72, 69) 0%, rgb(47, 44, 42) 25%, rgb(47, 44, 42) 75%, rgb(73, 72, 69) 100%);
}

@media screen and (min-width: 960px) {
  .sp-only {
    display: none !important;
  }

  .inner {
    max-width: 800px;
    padding-inline: 0 !important;
  }

  .sec-mv {
    line-height: 0;
  }

  .sec-mv h1 {
    margin: 0;
  }

  .sec-mv img,
  .sec-lead > picture > img,
  .sec-double-engine > picture > img {
    display: block;
    width: 100%;
    max-width: none;
  }

  .sec-lead,
  .sec-double-engine {
    position: relative;
    overflow: hidden;
  }

  .sec-lead__content,
  .sec-double-engine__content {
    position: absolute;
  }

  .sec-lead__content {
    top: 90px;
    left: 35%;
  }

  .sec-lead__content h2 {
    font-family: serif;
    font-size: 40px;
    font-weight: 400;
    line-height: 1.45;
    letter-spacing: .13em;
    margin: 0 0 40px;
  }

  .sec-lead__content h2 small {
    display: block;
    font-size: 20px;
    margin-top: 4px;
  }

  .sec-lead__content p {
    padding-left: 90px;
    font-family: 'Noto Serif JP', serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: .14em;
    margin-top: 24px;
  }

  .sec-concept {
    min-height: 300px;
    padding-top: 70px;
    text-align: center;
  }

  .sec-concept h2,
  .sec-feature > .inner > h2 {
    font-family: serif;
    font-size: 38px;
    font-weight: 400;
    letter-spacing: .12em;
    line-height: 1.5;
    margin: 0;
  }

  .sec-concept p {
    font-family: serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 2;
    letter-spacing: .1em;
    margin-top: 38px;
  }

  .sec-double-engine__content {
    top: clamp(0rem, -5rem + 13.33vw, 5rem);
    left: 0;
    right: 0;
    text-align: center;
  }

  .sec-double-engine__content > img {
    width: 142px;
  }

  .sec-double-engine__content h2 {
    margin: 25px 0 36px;
  }

  .sec-double-engine__content h2 img {
    width: 382px;
  }

  .sec-double-engine__content p {
    font-family: 'Noto Serif JP', serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 2.2;
    letter-spacing: .09em;
    margin: 0;
  }

  .sec-feature {
    padding: 98px 0;
  }

  .sec-feature > .inner > h2 {
    text-align: center;
    margin-bottom: 54px;
  }

  .sec-feature__list {
    display: grid;
    gap: 30px;
    max-width: 720px;
    margin-inline: auto;
  }

  .sec-feature__list article {
    display: grid;
    grid-template-columns: 120px 1fr 248px;
    grid-template-rows: 60px 130px;
    min-height: 172px;
    overflow: hidden;
    background: rgba(111, 105, 104, .7);
    border-radius: 18px;
  }

  .sec-feature__list h3 {
    grid-column: 1 / -1;
    font-family: serif;
    font-size: 24px;
    font-weight: 400;
    letter-spacing: .12em;
    line-height: 42px;
    text-align: center;
    margin: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .15);
    background: #4f4c4b;
    padding: 10px;
  }

  .sec-feature__list .func-icon {
    grid-column: 1;
    grid-row: 2;
    align-self: center;
    justify-self: center;
    max-width: 60px;
    max-height: 70px;
  }

  .sec-feature__list article:first-child .func-icon {
    max-height: 90px;
  }

  .sec-feature__list article:nth-child(3) .func-icon {
    max-width: 53px;
  }

  .sec-feature__list article:nth-child(4) .func-icon,
  .sec-feature__list article:nth-child(5) .func-icon {
    max-width: 70px;
  }

  .sec-feature__list p {
    grid-column: 2;
    grid-row: 2;
    align-self: center;
    font-family: 'Noto Serif JP', serif;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.8;
    letter-spacing: .08em;
    margin: 0;
    padding: 10px 20px 10px 0;
  }

  .sec-feature__list .func-img {
    grid-column: 3;
    grid-row: 2;
    align-self: stretch;
    width: 248px;
    height: 130px;
    max-width: none;
    object-fit: cover;
  }

  .sec-feature__list article:nth-child(n + 5) {
    grid-template-columns: 120px 1fr;
  }

  .sec-course {
    max-width: 720px;
    margin: 78px auto 0;
    text-align: center;
  }

  .sec-course h3 {
    display: flex;
    align-items: center;
    gap: 24px;
    font-family: serif;
    font-size: 22px;
    font-weight: 400;
    letter-spacing: .15em;
    margin: 34px 0 20px;
  }

  .sec-course h3::before,
  .sec-course h3::after {
    content: '';
    flex: 1;
    height: 1px;
    background: rgba(255, 255, 255, .7);
  }

  .sec-course ul {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    padding: 0 10px;
    margin: 0;
    list-style: none;
  }

  .sec-course ul:last-child {
    grid-template-columns: repeat(2, 1fr);
    max-width: 500px;
    margin-inline: auto;
  }

  .sec-course li {
    background: #8a8381;
    border-radius: 7px;
    font-family: serif;
    font-size: 17px;
    letter-spacing: .1em;
    padding: 17px 8px;
  }

  .sec-color {
    display: flex;
    justify-content: center;
    gap: 25px;
    max-width: 800px;
    padding: 20px 0 72px !important;
  }

  .sec-color > img {
    width: 220px;
  }

  .sec-size {
    position: relative;
    max-width: 800px;
    padding: 22px 0 78px !important;
    text-align: center;
  }

  .sec-size > img:first-child {
    width: 460px;
  }

  .sec-size > img:nth-child(2) {
    position: absolute;
    top: 12px;
    right: 52px;
    width: 155px;
  }

  .sec-spec {
    background: #ededed;
    padding: 90px 0 100px;
    text-align: center;
  }

  .sec-spec > img {
    width: 560px;
  }

  .sec-precautions {
    color: #111;
    background: #ededed;
    padding: 0 0 85px !important;
    margin: 0 auto;
  }

  .sec-precautions .cts-frame {
    max-width: 760px;
  }

  .sec-precautions h2 {
    display: flex;
    align-items: center;
    gap: 13px;
    font-size: 22px;
    border-block: 1px solid #333;
    padding: 10px 14px;
    margin: 0;
  }

  .sec-precautions h2 img {
    width: 26px;
  }

  .sec-precautions p {
    font-size: 14px;
    line-height: 1.75;
    margin: 18px 0 0;
  }
}

@media screen and (max-width: 959px) {
  .pc-only {
    display: none !important;
  }

  .inner {
    max-width: none;
    padding-inline: 0 !important;
  }

  .sec-mv,
  .sec-mv h1 {
    margin: 0;
    line-height: 0;
  }

  .sec-mv img,
  .sec-lead > picture > img,
  .sec-double-engine > picture > img {
    display: block;
    width: 100%;
    max-width: none;
  }

  .sec-lead,
  .sec-double-engine {
    position: relative;
    overflow: hidden;
  }

  .sec-lead__content,
  .sec-double-engine__content {
    position: absolute;
    left: 0;
    width: 100%;
  }

  .sec-lead__content {
    top: 8%;
    left: auto;
    right: 0;
    width: 70%;
  }

  .sec-lead__content h2 {
    font-family: serif;
    font-size: clamp(18px, 5.2vw, 39px);
    font-weight: 400;
    line-height: 1.45;
    letter-spacing: .1em;
    margin: 0 0 4.5vw;
  }

  .sec-lead__content h2 small {
    display: block;
    font-size: .48em;
    margin-top: .3em;
  }

  .sec-lead__content p {
    padding-left: 40px;
    font-family: 'Noto Serif JP', serif;
    font-size: clamp(0.5rem, -0.375rem + 3.73vw, 1.375rem);
    font-weight: 400;
    line-height: 1.85;
    letter-spacing: .08em;
    margin-top: 2.4vw;
  }

  .sec-concept {
    min-height: 40vw;
    padding: 8vw 4vw;
    text-align: center;
  }

  .sec-concept h2,
  .sec-feature > .inner > h2 {
    font-family: serif;
    font-size: clamp(19px, 5vw, 38px);
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: .08em;
    margin: 0;
  }

  .sec-concept p {
    padding-inline: 5.3333vw;
    font-family: serif;
    font-size: clamp(0.5rem, -0.375rem + 3.73vw, 1.375rem);
    font-weight: 400;
    line-height: 2;
    letter-spacing: .04em;
    margin-top: 4vw;
  }

  .sec-double-engine__content {
    top: 8vw;
    text-align: center;
  }

  .sec-double-engine__content > img {
    width: 18.9vw;
  }

  .sec-double-engine__content h2 {
    margin: 2.7vw 0 4.4vw;
  }

  .sec-double-engine__content h2 img {
    width: 51vw;
  }

  .sec-double-engine__content p {
    padding-inline: 5.3333vw;
    font-family: 'Noto Serif JP', serif;
    font-size: clamp(0.5rem, -0.375rem + 3.73vw, 1.375rem);
    font-weight: 400;
    line-height: 2;
    letter-spacing: .02em;
    margin: 0;
    text-align: left;
  }

  .sec-feature {
    padding: 8vw 0 12vw;
  }

  .sec-feature > .inner > h2 {
    text-align: center;
    margin-bottom: 6vw;
  }

  .sec-feature__list {
    display: grid;
    gap: 3.2vw;
    width: calc(100% - 10.7vw);
    max-width: 720px;
    margin-inline: auto;
  }

  .sec-feature__list article {
    display: grid;
    grid-template-columns: 14.6vw 1fr 31.1vw;
    grid-template-rows: 9vw 23.5vw;
    min-height: 22.9vw;
    overflow: hidden;
    background: rgba(111, 105, 104, .7);
    border-radius: 1.5vw;
  }

  .sec-feature__list h3 {
    grid-column: 1 / -1;
    font-family: serif;
    font-size: clamp(0.938rem, 4vw, 1.875rem);
    font-weight: 400;
    letter-spacing: .08em;
    line-height: 5.6vw;
    text-align: center;
    margin: 0;
    border-bottom: 1px solid rgba(255, 255, 255, .15);
    background: #4f4c4b;
    padding: 1vw;
  }

  .sec-feature__list .func-icon {
    grid-column: 1;
    grid-row: 2;
    align-self: center;
    justify-self: center;
    max-width: 7vw;
    max-height: 12vw;
  }

  .sec-feature__list p {
    grid-column: 2;
    grid-row: 2;
    align-self: center;
    font-family: 'Noto Serif JP', serif;
    font-size: clamp(0.688rem, 2.93vw, 1.375rem);
    font-weight: 400;
    line-height: 1.65;
    letter-spacing: 0;
    margin: 0;
    padding: 1vw 1.5vw 1vw 0;
  }

  .sec-feature__list .func-img {
    grid-column: 3;
    grid-row: 2;
    align-self: center;
    width: 100%;
    height: auto;
    max-width: none;
    object-fit: cover;
    background: #fff;
    aspect-ratio: 124 / 65;
    position: relative;
    z-index: 1;
  }

  .sec-feature__list article:nth-child(-n + 4)::after {
    content: '';
    grid-column: 3;
    grid-row: 2;
    background: #fff;
  }

  .sec-feature__list article:nth-child(n + 5) {
    grid-template-columns: 14.6vw 1fr;
  }

  .sec-feature__list article:nth-child(n + 5) p {
    padding-right: 2vw;
  }

  .sec-course {
    width: calc(100% - 10.7vw);
    max-width: 720px;
    margin: 10vw auto 0;
    text-align: center;
  }

  .sec-course h3 {
    display: flex;
    align-items: center;
    gap: 3vw;
    font-family: serif;
    font-size: clamp(0.938rem, 4vw, 1.875rem);
    font-weight: 400;
    letter-spacing: .1em;
    margin: 5vw 0 3vw;
  }

  .sec-course h3::before,
  .sec-course h3::after {
    content: '';
    flex: 1;
    height: 1px;
    background: currentColor;
  }

  .sec-course ul {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.8vw;
    padding: 0;
    margin: 0;
    list-style: none;
  }

  .sec-course ul:last-child {
    grid-template-columns: repeat(2, 1fr);
    max-width: 58.94vw;
    margin-inline: auto;
  }

  .sec-course li {
    background: #8a8381;
    border-radius: clamp(0.313rem, 1.33vw, 0.625rem);
    font-family: serif;
    font-size: clamp(0.688rem, 2.93vw, 1.375rem);
    letter-spacing: .03em;
    padding: 2vw .4vw;
  }

  .sec-color {
    display: flex;
    justify-content: center;
    gap: 10px;
    padding: 0 0 8vw !important;
    margin: 0;
  }

  .sec-color > img {
    width: 30vw;
  }

  .sec-size {
    position: relative;
    padding: 1vw 0 11vw !important;
    margin: 0;
    text-align: center;
  }

  .sec-size > img:first-child {
    width: 57vw;
  }

  .sec-size > img:nth-child(2) {
    position: absolute;
    top: 0;
    right: 7vw;
    width: 21vw;
  }

  .sec-spec {
    background: #ededed;
    padding: 13.333vw 0;
    text-align: center;
  }

  .sec-spec > img {
    width: 100%;
    padding-inline: 5.3333vw;
  }

  .sec-precautions {
    color: #111;
    background: #ededed;
    padding: 0 5.3333vw 10vw !important;
    margin: 0;
  }

  .sec-precautions .cts-frame {
    max-width: none;
  }

  .sec-precautions h2 {
    display: flex;
    align-items: center;
    gap: 2vw;
    font-size: clamp(12px, 3vw, 22px);
    border-block: 1px solid #333;
    padding: 1.4vw 1.6vw;
    margin: 0;
  }

  .sec-precautions h2 img {
    width: 4.6vw;
  }

  .sec-precautions p {
    font-size: clamp(0.625rem, 2.67vw, 1.25rem);
    line-height: 1.7;
    margin: 3vw 0 0;
  }
}



@media screen and (max-width: 550px) {
  .sec-double-engine__content{
    top: 10px;
  }
  .sec-lead__content{
    top: 20px;
  }
  .sec-lead__content h2{
    margin-bottom:10px;
  }
  .sec-lead__content p,
  .sec-double-engine__content p{
    font-size: 9px;
    padding-left: 30px;
  }
  .sec-feature__list article:nth-child(-n + 4) {
        grid-template-rows: 9vw 30.5vw;
  }
  .sec-feature__list p{
    padding-right:10px;
  }
}