@charset "UTF-8";
@import url("global.css");
.sec_intro {
  margin-bottom: 100px;
  position: relative; }
  .sec_intro .wrapper {
    display: flex;
    justify-content: space-between;
    align-items: center; }
    .sec_intro .wrapper::before {
      content: "";
      height: 640px;
      display: block;
      width: 0; }
  .sec_intro .text_area {
    width: 50%;
    box-sizing: border-box;
    padding-left: min(45px,3.5vw); }
    .sec_intro .text_area .catch {
      margin-bottom: 50px;
      font-size: clamp(20px, 3.6vw, 40px);
      font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
      font-weight: 600; }
      .sec_intro .text_area .catch br {
        display: none; }
    .sec_intro .text_area .text p {
      margin-bottom: 1em; }
  .sec_intro .image {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 50%;
    box-sizing: border-box;
    padding-right: min(45px,3.5vw); }

.section .sec_title {
  text-align: center;
  margin-bottom: 50px;
  line-height: 1.5;
  color: #132240;
  font-size: clamp(22px, 3.8vw, 40px);
  font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  font-weight: 600; }
  .section .sec_title span {
    display: block;
    font-size: clamp(15px, 2.5vw, 24px);
    font-weight: 500; }

.sec_case {
  padding-block: 100px; }
  .sec_case .case_item {
    margin-inline: 20px;
    display: block;
    background-color: #F1F1F1;
    padding: 20px 20px 40px;
    position: relative; }
    .sec_case .case_item .num {
      width: fit-content;
      background: #132240;
      color: #fff;
      border-radius: 50px;
      line-height: 1.0;
      padding: 10px 20px;
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      top: -12px;
      font-size: clamp(18px, 2.8vw, 24px);
      font-family: "Roboto", "Noto Sans JP", sans-serif;
      font-weight: 500; }
    .sec_case .case_item figure {
      margin-bottom: 20px; }
    .sec_case .case_item .text_area h4 {
      text-align: center;
      margin-bottom: 10px;
      font-size: clamp(18px, 2.8vw, 24px);
      font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif; }
    .sec_case .case_item .text_area p {
      text-align: center;
      font-size: 90%; }
    .sec_case .case_item .more {
      text-align: right;
      margin-top: 10px;
      padding-right: 15px;
      position: relative;
      color: #132240;
      font-size: 90%;
      font-family: "Roboto", "Noto Sans JP", sans-serif;
      font-weight: 500; }
      .sec_case .case_item .more::after {
        content: "";
        width: 0;
        height: 0;
        border-left: 6px solid #132240;
        border-top: 3px solid transparent;
        border-bottom: 3px solid transparent;
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%); }
  .sec_case .linkbutton {
    max-width: 750px;
    margin: 50px auto 0; }
    .sec_case .linkbutton a {
      display: flex;
      border-radius: 6px;
      overflow: hidden;
      background-color: #132240;
      color: #fff;
      position: relative; }
      .sec_case .linkbutton a:hover::after {
        opacity: .5;
        filter: none;
        translate: 10px 0; }
      .sec_case .linkbutton a::after {
        content: "";
        position: absolute;
        right: 30px;
        top: 50%;
        margin-top: -10px;
        width: 20px;
        height: 20px;
        background-color: #fff;
        clip-path: polygon(0 0, 100% 50%, 0 100%, 10% 50%);
        transition: all 0.5s cubic-bezier(0.04, 0.435, 0.315, 0.9) 0s;
        backface-visibility: hidden;
        opacity: 0;
        filter: blur(10px); }
      .sec_case .linkbutton a .image {
        width: 50%; }
      .sec_case .linkbutton a .text {
        flex-grow: 1;
        align-content: center;
        padding-left: 60px;
        font-weight: 600;
        line-height: 1.5; }
        .sec_case .linkbutton a .text span {
          padding-left: 15px;
          display: block; }
        .sec_case .linkbutton a .text strong {
          display: block;
          font-size: min(26px,4vw); }

.slick-list {
  padding-top: 25px !important; }
  .slick-list .slick-track {
    display: flex; }
  .slick-list .slick-slide {
    height: auto; }

.slick-dots {
  justify-content: center; }

.sec_point {
  background-color: #F1F1F1;
  padding-block: 130px; }
  .sec_point ul.point {
    display: flex;
    flex-wrap: wrap;
    margin-top: 80px;
    margin-inline: -45px;
    counter-reset: number 0; }
    .sec_point ul.point li {
      counter-increment: number 1;
      width: 50%;
      box-sizing: border-box;
      padding-inline: 45px;
      margin-bottom: 10px; }
      .sec_point ul.point li:nth-of-type(even) {
        margin-top: 85px; }
      .sec_point ul.point li .title {
        display: flex;
        align-items: center;
        line-height: 1.4;
        gap: min(30px,2.5vw);
        margin-bottom: 10px;
        font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
        word-break: keep-all; }
        .sec_point ul.point li .title::before {
          content: "0" counter(number);
          font-size: min(70px,5.5vw);
          display: block; }
        .sec_point ul.point li .title strong {
          display: block;
          font-size: min(25px,2.3vw);
          font-weight: 500; }
      .sec_point ul.point li .photo {
        aspect-ratio: 5 / 3;
        margin-bottom: 20px; }
      .sec_point ul.point li .text {
        padding-inline: 5px; }

.sec_price {
  padding-block: 140px; }
  .sec_price .sec_title {
    margin-bottom: 35px; }
  .sec_price .text {
    text-align: center; }
  .sec_price .main {
    display: flex;
    align-items: center;
    margin-top: 80px; }
  .sec_price .image {
    flex-shrink: 0;
    flex-grow: 0;
    width: 450px;
    max-width: 43%;
    padding-left: min(40px,3vw); }
    .sec_price .image figure {
      aspect-ratio: 3 / 2;
      margin-bottom: 20px; }
    .sec_price .image dl {
      width: fit-content;
      margin-inline: auto;
      line-height: 1.5;
      text-align: left;
      font-size: 14px; }
      .sec_price .image dl dt {
        font-weight: 600;
        float: left;
        clear: left;
        margin-bottom: 5px; }
      .sec_price .image dl dd {
        margin-bottom: 5px;
        margin-left: 130px; }
        .sec_price .image dl dd::before {
          content: "：";
          display: inline-block;
          margin-right: 3px; }
  .sec_price .price {
    text-align: center;
    flex-grow: 1; }
    .sec_price .price ul.point {
      display: flex;
      justify-content: center;
      gap: 15px; }
      .sec_price .price ul.point li {
        border: #222 1px solid;
        width: 140px;
        font-size: 130%;
        font-weight: 500; }
    .sec_price .price p {
      margin-top: 40px;
      font-size: min(30px,2.6vw);
      font-weight: 500;
      line-height: 1; }
      .sec_price .price p strong {
        padding-inline: 10px 5px;
        font-size: 400%;
        font-weight: 600;
        vertical-align: -6%; }
  .sec_price .spec {
    border: #222 1px solid;
    padding: 1px 80px 60px;
    margin-block: 80px; }
    .sec_price .spec .spectitle {
      font-size: 24px;
      font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
      font-weight: 700;
      margin: -25px auto 50px;
      padding-inline: 40px;
      background-color: #fff;
      width: fit-content; }
  .sec_price .standard .inner {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 60px; }
  .sec_price .standard .item {
    flex-grow: 1; }
  .sec_price .standard .title {
    font-size: 22px;
    font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
    font-weight: 600;
    margin-bottom: 10px;
    text-align: center; }
  .sec_price .standard .flex {
    display: flex; }
  .sec_price .standard ul {
    flex-grow: 1;
    border-top: #222 1px solid;
    padding: 20px 5px 0; }
    .sec_price .standard ul li {
      line-height: 1.5;
      font-size: 90%;
      letter-spacing: 0;
      margin-top: 5px; }
      .sec_price .standard ul li dl {
        border: #222 1px solid;
        padding: 10px 20px 7px;
        margin-block: 5px 10px; }
        .sec_price .standard ul li dl dt {
          float: left;
          clear: left;
          margin-bottom: 3px; }
        .sec_price .standard ul li dl dd {
          margin-left: 40px;
          margin-bottom: 3px; }
          .sec_price .standard ul li dl dd::before {
            content: "：";
            margin-right: 3px;
            display: inline-block; }
  .sec_price .option ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 30px;
    font-size: 90%; }
    .sec_price .option ul li::before {
      content: "";
      width: 7px;
      height: 7px;
      background-color: #6B6B6B;
      border-radius: 50%;
      display: inline-block;
      margin-right: 8px;
      vertical-align: 2px; }

.sec_flow {
  padding-block: 120px 150px;
  background-color: #132240;
  color: #fff;
  position: relative; }
  .sec_flow .bg {
    position: absolute;
    z-index: 0;
    inset: 0;
    opacity: .2; }
  .sec_flow .wrapper {
    position: relative;
    z-index: 1; }
  .sec_flow .sec_title {
    color: #fff; }
  .sec_flow ul.flow {
    margin-top: 100px;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    column-gap: min(100px,8vw);
    counter-reset: flow 0; }
    .sec_flow ul.flow li {
      counter-increment: flow 1;
      display: grid;
      grid-template-rows: subgrid;
      grid-row: span 3;
      gap: 0;
      margin-bottom: 80px;
      position: relative;
      text-align: center; }
      .sec_flow ul.flow li::after {
        content: "";
        width: 20px;
        height: 60px;
        background: url("../img/design/arrow.png") no-repeat center center;
        background-size: 100% auto;
        position: absolute;
        top: 60px;
        right: -62px; }
      .sec_flow ul.flow li:nth-of-type(4n)::after, .sec_flow ul.flow li:last-of-type::after {
        display: none; }
      .sec_flow ul.flow li::before {
        content: counter(flow);
        width: 60px;
        height: 60px;
        border-radius: 50%;
        background-color: #B4975A;
        color: #fff;
        line-height: 60px;
        font-size: 30px;
        font-family: "Roboto", "Noto Sans JP", sans-serif;
        font-weight: 600;
        letter-spacing: 0;
        position: absolute;
        top: -30px;
        left: 50%;
        margin-left: -30px; }
      .sec_flow ul.flow li .image {
        aspect-ratio: 16 / 9;
        border-radius: 5px;
        overflow: hidden;
        margin-bottom: 10px; }
      .sec_flow ul.flow li .title {
        font-size: min(25px,2vw);
        font-family: "Noto Serif JP", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
        font-weight: 600;
        margin-bottom: 5px; }
      .sec_flow ul.flow li .text p:not([class]) {
        font-size: 15px;
        letter-spacing: 0;
        text-align: left; }
      .sec_flow ul.flow li .text .button {
        margin-top: 15px; }
        .sec_flow ul.flow li .text .button a {
          display: inline-block;
          background-color: #fff;
          font-size: 15px;
          color: #132240;
          border-radius: 100px;
          padding: 6px 20px;
          line-height: 1.4; }

.sec_qa {
  border: #dcdcdc 1px solid;
  background-color: #f9f9f9;
  margin-block: 120px;
  padding: 20px; }
  .sec_qa .title {
    background-color: #fff;
    padding: 15px 25px;
    font-size: clamp(16px, 2.5vw, 20px);
    font-weight: 700; }
  .sec_qa dl {
    border-bottom: #6B6B6B 1px dashed;
    padding: 25px 10px;
    margin-inline: 5px;
    line-height: 1.5; }
    .sec_qa dl:last-of-type {
      border: none; }
    .sec_qa dl dt {
      display: flex;
      font-size: 110%;
      font-weight: 700;
      margin-bottom: 6px; }
      .sec_qa dl dt::before {
        content: "Q.";
        flex-shrink: 0;
        width: 40px;
        display: inline-block;
        color: #6B6B6B; }
    .sec_qa dl dd {
      display: flex; }
      .sec_qa dl dd::before {
        content: "A.";
        flex-shrink: 0;
        font-weight: 700;
        font-size: 110%;
        width: 40px;
        display: inline-block;
        color: #6B6B6B; }

/* ------------------------------------------------------------------------------------------------------------------------

 Responsive-Breakpoint ( 1500px )
 
------------------------------------------------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------------------------------------------------

 Responsive-Breakpoint-1 ( 1300px )
 
------------------------------------------------------------------------------------------------------------------------ */
@media only screen and (max-width: 1300px) {
  .sec_point ul.point {
    margin-inline: -3.2w; }
    .sec_point ul.point li {
      padding-inline: 3.2vw; }

  .sec_price .image {
    padding-left: 0; }
  .sec_price .price ul.point {
    gap: 12px; }
    .sec_price .price ul.point li {
      width: 130px;
      font-size: 120%; }
  .sec_price .spec {
    padding: 1px 6vw 60px; }
  .sec_price .standard .inner {
    gap: 40px 50px; }

  .sec_flow ul.flow {
    column-gap: 56px; }
    .sec_flow ul.flow li::after {
      top: 3vw;
      right: -40px; }
    .sec_flow ul.flow li .text p:not([class]) {
      font-size: 14px; }
    .sec_flow ul.flow li .text .button {
      margin-top: 15px; } }
/* ------------------------------------------------------------------------------------------------------------------------

 Responsive-Breakpoint-2 ( 959px )
 
------------------------------------------------------------------------------------------------------------------------ */
@media only screen and (max-width: 959px) {
  .sec_intro {
    margin-bottom: 20px; }
    .sec_intro .text_area .catch {
      margin-bottom: 40px; }

  .sec_case .linkbutton a .text {
    padding-left: 6vw; }

  .sec_point {
    padding-block: 80px; }
    .sec_point ul.point {
      margin-top: 60px;
      margin-inline: -3vw; }
      .sec_point ul.point li {
        padding-inline: 3vw; }
        .sec_point ul.point li:nth-of-type(even) {
          margin-top: 70px; }
        .sec_point ul.point li .title strong {
          font-weight: 600; }

  .sec_price {
    padding-block: 100px; }
    .sec_price .text {
      text-align: left; }
      .sec_price .text br {
        display: none; }
    .sec_price .main {
      display: block;
      margin-top: 50px; }
    .sec_price .image {
      width: auto;
      max-width: 540px;
      padding-left: 0;
      margin: 0 auto 50px; }
    .sec_price .price ul.point li {
      width: 150px;
      font-size: 130%; }
    .sec_price .price p {
      margin-top: 20px;
      font-size: min(22px,4.8vw); }
    .sec_price .spec {
      padding: 1px 6vw 50px;
      margin-block: 70px; }
      .sec_price .spec .spectitle {
        font-size: min(22px,5vw);
        margin: -23px auto 40px;
        padding-inline: 4vw; }
    .sec_price .standard .inner {
      gap: 40px 5vw; }
    .sec_price .standard .title {
      font-size: min(20px,4.6vw); }
    .sec_price .standard ul {
      padding: 12px 5px 0; }
      .sec_price .standard ul li dl dd {
        margin-left: 30px; }
    .sec_price .option ul {
      gap: 5px 30px;
      justify-content: flex-start; }

  .sec_flow {
    padding-block: 90px 70px; }
    .sec_flow ul.flow {
      margin-top: 70px;
      grid-template-columns: repeat(3, 1fr);
      column-gap: 40px; }
      .sec_flow ul.flow li {
        margin-bottom: 50px; }
        .sec_flow ul.flow li::after {
          width: 16px;
          height: 50px;
          top: 3vw;
          right: -29px; }
        .sec_flow ul.flow li:nth-of-type(4n)::after {
          display: block; }
        .sec_flow ul.flow li:nth-of-type(3n)::after, .sec_flow ul.flow li:last-of-type::after {
          display: none; }
        .sec_flow ul.flow li .number {
          width: 46px;
          height: 46px;
          line-height: 46px;
          font-size: 26px;
          top: -23px;
          margin-left: -23px; }
        .sec_flow ul.flow li .title {
          font-size: 18px; }
        .sec_flow ul.flow li .text p:not([class]) {
          font-size: 13px;
          letter-spacing: 0; }
        .sec_flow ul.flow li .text .button a {
          font-size: 14px;
          letter-spacing: 0; }

  .sec_qa {
    margin-block: 80px; } }
/* ------------------------------------------------------------------------------------------------------------------------

 Responsive-Breakpoint-3 ( 644px )
 
------------------------------------------------------------------------------------------------------------------------ */
@media only screen and (max-width: 644px) {
  .sec_intro {
    margin-bottom: 0; }
    .sec_intro .wrapper {
      display: block; }
      .sec_intro .wrapper::before {
        display: none; }
    .sec_intro .text_area {
      margin-bottom: 35px;
      width: auto;
      padding-left: 0; }
      .sec_intro .text_area .catch {
        margin-bottom: 25px; }
        .sec_intro .text_area .catch br {
          display: block; }
    .sec_intro .image {
      width: 100%;
      position: static;
      padding-right: 0;
      aspect-ratio: 3 / 2; }

  .section .sec_title {
    margin-bottom: 30px; }

  .sec_case {
    padding-block: 70px; }
    .sec_case .sec_title {
      margin-bottom: 20px; }
    .sec_case .case_item {
      margin-inline: 10px;
      padding: 15px 15px 25px; }
      .sec_case .case_item figure {
        margin-bottom: 10px; }
      .sec_case .case_item .text_area p {
        text-align: justify; }
    .sec_case .linkbutton {
      margin: 30px auto 0; }
      .sec_case .linkbutton a {
        border-radius: 5px; }
        .sec_case .linkbutton a::after {
          display: none; }
        .sec_case .linkbutton a .text {
          padding: 20px 0 20px 5vw; }
          .sec_case .linkbutton a .text span {
            padding-left: 10px;
            font-size: 13px; }
          .sec_case .linkbutton a .text strong {
            font-size: min(20px,4.5vw); }

  .sec_point {
    padding-block: 50px 20px; }
    .sec_point ul.point {
      display: block;
      margin-top: 40px;
      margin-inline: 0; }
      .sec_point ul.point li {
        width: auto;
        padding-inline: 0;
        margin-bottom: 30px; }
        .sec_point ul.point li:nth-of-type(even) {
          margin-top: 0; }
        .sec_point ul.point li .title {
          gap: 20px;
          margin-bottom: 10px; }
          .sec_point ul.point li .title::before {
            font-size: min(50px,12vw); }
          .sec_point ul.point li .title strong {
            font-size: min(20px,4.5vw); }
        .sec_point ul.point li .photo {
          margin-bottom: 15px; }

  .sec_price {
    padding-block: 70px; }
    .sec_price .sec_title {
      margin-bottom: 25px; }
    .sec_price .main {
      margin-top: 30px; }
    .sec_price .image {
      margin: 0 auto 30px; }
      .sec_price .image dl {
        letter-spacing: 0; }
        .sec_price .image dl dd {
          margin-left: 120px; }
    .sec_price .price ul.point {
      gap: 10px; }
      .sec_price .price ul.point li {
        font-size: 120%; }
    .sec_price .price p {
      margin-top: 10px;
      font-size: min(22px,4.8vw); }
      .sec_price .price p strong {
        padding-inline: 5px 5px;
        font-size: 300%; }
    .sec_price .spec {
      padding: 1px 5vw 50px;
      margin-block: 50px; }
      .sec_price .spec .spectitle {
        margin: calc(-12px - 1.5vw) auto 20px; }
    .sec_price .standard .inner {
      gap: 30px 5vw; }
    .sec_price .standard .title {
      margin-bottom: 5px; }
    .sec_price .standard .flex {
      display: block; }
      .sec_price .standard .flex ul:last-of-type {
        border-top: none;
        padding-top: 0; }
      .sec_price .standard .flex ul li {
        word-break: keep-all; }
    .sec_price .standard ul {
      padding: 10px 0 0 5px; }
      .sec_price .standard ul li {
        line-height: 1.4; }
    .sec_price .option {
      padding: 1px 5vw 30px; }
      .sec_price .option ul {
        gap: 4px 25px; }
        .sec_price .option ul li::before {
          width: 6px;
          height: 6px;
          margin-right: 6px;
          vertical-align: 1px; }

  .sec_flow {
    padding-block: 50px 40px; }
    .sec_flow ul.flow {
      margin-top: 50px;
      grid-template-columns: repeat(2, 1fr);
      column-gap: 20px; }
      .sec_flow ul.flow li {
        margin-bottom: 35px; }
        .sec_flow ul.flow li::after {
          width: 12px;
          height: 40px;
          top: 5vw;
          right: -18px; }
        .sec_flow ul.flow li:nth-of-type(3n)::after {
          display: block; }
        .sec_flow ul.flow li:nth-of-type(even)::after {
          display: none; }
        .sec_flow ul.flow li::before {
          width: 40px;
          height: 40px;
          line-height: 40px;
          font-size: 24px;
          top: -20px;
          margin-left: -20px; }
        .sec_flow ul.flow li .title {
          font-size: 16px; }
        .sec_flow ul.flow li .text p:not([class]) {
          font-size: 12px;
          letter-spacing: 0; }
        .sec_flow ul.flow li .text .button {
          margin-top: 15px; }
          .sec_flow ul.flow li .text .button a {
            font-size: 13px;
            padding: 6px 15px; }

  .sec_qa {
    margin-block: 50px;
    padding: 4vw; }
    .sec_qa dl {
      padding: 20px 5px;
      margin-inline: 5px; }
      .sec_qa dl dt::before {
        width: 25px; }
      .sec_qa dl dd::before {
        width: 25px; } }
