@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap");
/* =====================
	コンティエ
 ======================= */
:root {
  --font_os: "Oswald", sans-serif; }

main {
  color: #464646; }

.mv {
  position: relative; }
  .mv-bg img {
    width: 100%; }
  .mv-container {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 24.4791666667%; }
  .mv-lead {
    text-align: center; }
    .mv-lead-frame {
      width: 100%;
      padding-top: 21.2765957447%;
      position: relative; }
      .mv-lead-frame:before, .mv-lead-frame:after {
        content: "";
        width: 50%;
        height: 3px;
        background: #464646;
        position: absolute;
        top: 0; }
      .mv-lead-frame:before {
        left: 0;
        -webkit-transform: rotate(-20deg);
                transform: rotate(-20deg);
        -webkit-transform-origin: right top;
                transform-origin: right top; }
      .mv-lead-frame:after {
        right: 0;
        -webkit-transform: rotate(20deg);
                transform: rotate(20deg);
        -webkit-transform-origin: left top;
                transform-origin: left top; }
    .mv-lead-txt {
      font-size: clamp(12px, 1.1vw, 20px);
      font-weight: 700;
      line-height: 1.35;
      margin-bottom: 7.2340425532%; }
  .mv-ttl {
    width: 91.0638297872%;
    margin: 0 auto; }

.recommend {
  padding: 100px 0; }
  .recommend-ttl {
    text-align: center;
    font-size: 36px;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1.3;
    padding: 10px 0 54px;
    margin-bottom: 76px;
    background: url(../img/contie/accent01.png) no-repeat center bottom/contain; }
  .recommend-list {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-column-gap: 17.8%;
       -moz-column-gap: 17.8%;
            column-gap: 17.8%; }
    .recommend-list > li {
      text-align: center;
      font-size: 26px;
      line-height: 1.5384615385; }
      .recommend-list > li .pic {
        max-width: 120px;
        margin: 0 auto 24px; }

.plan {
  background: #FFFCD3;
  padding: 130px 0 100px; }
  .plan-container {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    row-gap: 80px; }
  .plan-detail {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 384px;
            flex: 0 1 384px;
    background: var(--c_wht);
    border-radius: 10px;
    -webkit-box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16);
            box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.16);
    position: relative;
    padding: 5.8% 4% 4.25%; }
    .plan-detail-ttl {
      background: #464646;
      color: var(--c_wht);
      text-align: center;
      font-size: 20px;
      font-weight: 700;
      padding: 12px 24px;
      border-radius: 10px;
      position: absolute;
      top: 0;
      left: 50%;
      -webkit-transform: translate(-50%, -50%);
              transform: translate(-50%, -50%);
      width: -webkit-max-content;
      width: -moz-max-content;
      width: max-content; }
      .plan-detail-ttl:before {
        content: "";
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 6px 6px 0 6px;
        border-color: #464646 transparent transparent transparent;
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        margin: auto; }
    .plan-detail-list {
      font-size: 20px;
      font-weight: 500;
      line-height: 1.5; }
      .plan-detail-list > li {
        position: relative;
        padding-left: 54px;
        background: url(../img/contie/check.png) no-repeat left top/1.5em; }
        .plan-detail-list > li + li {
          margin-top: 40px; }
  .plan-price {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 690px;
            flex: 0 1 690px;
    position: relative; }
    .plan-price-ttl {
      font-size: 36px;
      letter-spacing: 0.1em;
      line-height: 1.2222222222; }
      .plan-price-ttl .label {
        font-size: 26px;
        display: inline-block;
        vertical-align: bottom;
        border: 1px solid currentColor;
        padding: 4px 30px;
        margin-right: 24px; }
    .plan-price-balloon {
      width: 150px;
      height: 150px;
      border-radius: 50%;
      background: #B40019;
      color: var(--c_wht);
      text-align: center;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      position: absolute;
      right: 0;
      top: -60px; }
      .plan-price-balloon:before {
        content: "";
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 12px 6px 0 6px;
        border-color: #B40019 transparent transparent transparent;
        position: absolute;
        left: 14px;
        bottom: 12px;
        -webkit-transform: rotate(45deg);
                transform: rotate(45deg); }
      .plan-price-balloon > * {
        font-size: 26px;
        font-weight: 700;
        line-height: 1.3461538462; }
      .plan-price-balloon .dot {
        background-image: radial-gradient(circle at center, currentColor 15%, transparent 15%);
        /* 点の色とサイズ調整 */
        background-position: top right;
        /* 点の位置 */
        background-repeat: repeat-x;
        /* 横方向に繰り返し */
        background-size: 1em 0.2em;
        /* 点の間隔とサイズ調整 */
        padding-top: .1em;
        /* 縦方向の位置調整 */ }
    .plan-price-num {
      color: #B40019;
      font-size: 176px;
      font-weight: 700;
      line-height: 1.1;
      position: relative; }
      .plan-price-num .comma {
        font-size: 106px; }
      .plan-price-num .unit {
        font-size: 76px; }
      .plan-price-num .tax {
        font-size: 36px;
        position: absolute;
        top: 55px;
        left: 440px; }
    .plan-price-monthly {
      font-size: 26px;
      font-weight: 700;
      color: #B40019;
      padding-left: 450px; }
      .plan-price-monthly sup {
        font-size: 16px;
        vertical-align: text-top; }
    .plan-price-notice {
      line-height: 1.625;
      margin-top: 20px; }

.performance {
  margin-top: 220px;
  padding: 124px 0 100px;
  position: relative;
  background: #EBFAF0; }
  .performance-ttl {
    width: 384px;
    height: 384px;
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding-top: 50px;
    position: absolute;
    top: -150px;
    left: 0;
    right: 0;
    margin: auto; }
    .performance-ttl:before {
      content: "";
      width: 100%;
      height: 100%;
      background: #EBFAF0;
      border-radius: 50%;
      position: absolute;
      top: 0;
      left: 0;
      z-index: -1; }
    .performance-ttl-main {
      font-size: 56px;
      font-weight: 700;
      letter-spacing: 0.1em; }
      .performance-ttl-main:before {
        content: "";
        width: 130px;
        height: 50px;
        background: url(../img/contie/accent02.png) no-repeat center/contain;
        display: block;
        margin: 0 auto 10px; }
    .performance-ttl-sub {
      margin-top: 10px; }
  .performance-list {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1fr 1px 1fr 1px 1fr 1px 1fr 1px 1fr;
    grid-template-columns: repeat(5, 1fr);
    gap: 1px;
    background: var(--c_wht);
    margin-bottom: 56px;
    overflow: hidden; }
    .performance-list > li {
      text-align: center;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      font-size: 20px;
      line-height: 1.5;
      padding: 1em 0;
      min-height: 100px;
      position: relative; }
      .performance-list > li:before {
        content: "";
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 15px 15px 0 0;
        border-color: #D0EFDB transparent transparent transparent;
        position: absolute;
        top: 0;
        left: 0; }
      .performance-list > li:after {
        content: "";
        width: calc(100% + 2px);
        height: calc(100% + 2px);
        border: 1px solid #A6D1B5;
        position: absolute;
        top: -1px;
        left: -1px; }
  .performance-btn {
    display: block;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto;
    background: #464646;
    color: var(--c_wht);
    font-size: 26px;
    font-weight: 700;
    padding: 22px 101px;
    border: 2px solid #464646;
    border-radius: 100px; }
    .performance-btn:hover {
      background: var(--c_wht);
      color: #464646;
      opacity: 1.0; }

.facility {
  margin-top: 220px;
  padding: 124px 0 100px;
  position: relative;
  background: #FEF5E6; }
  .facility-ttl {
    width: 384px;
    height: 384px;
    text-align: center;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    padding-top: 50px;
    position: absolute;
    top: -150px;
    left: 0;
    right: 0;
    margin: auto; }
    .facility-ttl:before {
      content: "";
      width: 100%;
      height: 100%;
      background: #FEF5E6;
      border-radius: 50%;
      position: absolute;
      top: 0;
      left: 0;
      z-index: -1; }
    .facility-ttl-main {
      font-size: 56px;
      font-weight: 700;
      letter-spacing: 0.1em; }
      .facility-ttl-main:before {
        content: "";
        width: 130px;
        height: 50px;
        background: url(../img/contie/accent02.png) no-repeat center/contain;
        display: block;
        margin: 0 auto 10px; }
    .facility-ttl-sub {
      margin-top: 10px; }
  .facility-logo {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    margin-bottom: 50px;
    -webkit-column-gap: 5%;
       -moz-column-gap: 5%;
            column-gap: 5%; }
  .facility-list {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns: 1fr 1px 1fr 1px 1fr 1px 1fr 1px 1fr;
    grid-template-columns: repeat(5, 1fr);
    gap: 1px;
    background: var(--c_wht);
    margin-bottom: 56px;
    overflow: hidden; }
    .facility-list > li {
      text-align: center;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      font-size: 20px;
      line-height: 1.5;
      padding: 1em 0;
      min-height: 100px;
      position: relative; }
      .facility-list > li:before {
        content: "";
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 15px 15px 0 0;
        border-color: #FFE9C6 transparent transparent transparent;
        position: absolute;
        top: 0;
        left: 0; }
      .facility-list > li:after {
        content: "";
        width: calc(100% + 2px);
        height: calc(100% + 2px);
        border: 1px solid #FFE3B9;
        position: absolute;
        top: -1px;
        left: -1px; }
  .facility-btn {
    display: block;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    margin: 0 auto;
    background: #464646;
    color: var(--c_wht);
    font-size: 26px;
    font-weight: 700;
    padding: 22px 101px;
    border: 2px solid #464646;
    border-radius: 100px; }
    .facility-btn:hover {
      background: var(--c_wht);
      color: #464646;
      opacity: 1.0; }

.works {
  padding: 124px 0 100px;
  overflow: hidden; }
  .works-container {
    margin-bottom: 100px; }
    .works-container:nth-child(even) .works-header-imgbox {
      -webkit-box-ordinal-group: 3;
          -ms-flex-order: 2;
              order: 2; }
      .works-container:nth-child(even) .works-header-imgbox img {
        right: auto;
        left: 0; }
    .works-container:nth-child(even) .works-ttl {
      -webkit-box-orient: horizontal;
      -webkit-box-direction: reverse;
          -ms-flex-direction: row-reverse;
              flex-direction: row-reverse; }
    .works-container:last-child {
      margin-bottom: 0; }
  .works-header {
    margin-bottom: 60px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap; }
    .works-header-imgbox {
      -webkit-box-flex: 0;
          -ms-flex: 0 1 50%;
              flex: 0 1 50%;
      position: relative; }
      .works-header-imgbox img {
        width: 50vw;
        max-width: none;
        min-height: 44.1vw;
        -o-object-fit: cover;
           object-fit: cover;
        position: absolute;
        bottom: 0;
        right: 0;
        z-index: -1; }
    .works-header-txtbox {
      -webkit-box-flex: 0;
          -ms-flex: 0 1 40.5%;
              flex: 0 1 40.5%; }
    .works-header-txt {
      font-size: 20px;
      line-height: 2.0; }
      .works-header-txt p + p {
        margin-top: 2em; }
      .works-header-txt strong {
        color: #B40019; }
    .works-header-data {
      margin-top: 120px;
      border: 2px solid currentColor;
      border-radius: 10px;
      position: relative;
      padding: 36px 20px; }
      .works-header-data-ttl {
        font-family: var(--font_os);
        font-size: 46px;
        position: absolute;
        top: 0;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
                transform: translate(-50%, -50%);
        background: var(--c_wht);
        padding: 0 1em;
        width: -webkit-max-content;
        width: -moz-max-content;
        width: max-content; }
      .works-header-data p {
        width: -webkit-fit-content;
        width: -moz-fit-content;
        width: fit-content;
        margin: 0 auto;
        font-size: 20px;
        line-height: 2.5; }
  .works-ttl {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 100%;
            flex: 0 1 100%;
    margin-bottom: 100px;
    border-bottom: 3px solid currentColor;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: end;
        -ms-flex-align: end;
            align-items: flex-end;
    -webkit-column-gap: 5.5%;
       -moz-column-gap: 5.5%;
            column-gap: 5.5%; }
    .works-ttl-num {
      -ms-flex-negative: 0;
          flex-shrink: 0;
      text-align: center;
      font-size: 26px;
      font-weight: 700;
      letter-spacing: 0.15em;
      line-height: 1.0; }
      .works-ttl-num > span {
        font-family: var(--font_os);
        font-size: 156px;
        font-weight: 400;
        letter-spacing: -0.03em;
        line-height: 0.9;
        display: block; }
    .works-ttl-main {
      -webkit-box-flex: 1;
          -ms-flex-positive: 1;
              flex-grow: 1;
      font-size: 36px;
      font-weight: 700;
      padding-bottom: 10px; }
  .works-body-imgbox {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-column-gap: 2%;
       -moz-column-gap: 2%;
            column-gap: 2%; }
  .works-body-txtbox {
    margin-top: 40px; }
  .works-body-list > li {
    position: relative;
    padding-top: 2px;
    padding-left: 78px;
    line-height: 1.5;
    counter-increment: cnt; }
    .works-body-list > li + li {
      margin-top: 50px; }
    .works-body-list > li:before {
      content: counter(cnt);
      background: #464646;
      color: var(--c_wht);
      width: 50px;
      height: 50px;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      border-radius: 50%;
      font-family: var(--font_os);
      font-size: 28px;
      font-weight: 700;
      position: absolute;
      left: 0;
      top: 0; }
    .works-body-list > li h4 {
      font-weight: 700; }

/* タブレット
  ------------------------ */
@media (max-width: 1240px) {
  .recommend-list {
    -webkit-column-gap: 6%;
       -moz-column-gap: 6%;
            column-gap: 6%; }
  .plan-container {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center; }
  .performance-list {
    -ms-grid-columns: (1fr)[4];
    grid-template-columns: repeat(4, 1fr); }
  .facility-list {
    -ms-grid-columns: (1fr)[4];
    grid-template-columns: repeat(4, 1fr); }
  .works-container:nth-child(even) .works-header-imgbox {
    -webkit-box-ordinal-group: initial;
        -ms-flex-order: initial;
            order: initial; }
  .works-header-imgbox {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 100%;
            flex: 0 1 100%; }
    .works-header-imgbox img {
      position: relative;
      width: calc(100% + 40px);
      min-height: auto;
      margin: 0 -20px 30px; }
  .works-header-txtbox {
    -webkit-box-flex: 0;
        -ms-flex: 0 1 100%;
            flex: 0 1 100%; } }

/* スマホ
  ------------------------ */
@media (max-width: 699px) {
  .mv-container {
    width: 240px;
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    margin-bottom: -36px; }
  .mv-lead-frame:before, .mv-lead-frame:after {
    height: 2px; }
  .mv-lead-txt {
    font-size: 14px; }
  .recommend {
    padding: 50px 0; }
    .recommend-ttl {
      font-size: 20px;
      padding: 5px 0 25px;
      margin-bottom: 28px; }
    .recommend-list {
      display: block;
      width: -webkit-fit-content;
      width: -moz-fit-content;
      width: fit-content;
      margin: 0 auto; }
      .recommend-list > li {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
            -ms-flex-align: center;
                align-items: center;
        -webkit-column-gap: 20px;
           -moz-column-gap: 20px;
                column-gap: 20px;
        text-align: left;
        font-size: 16px; }
        .recommend-list > li .pic {
          width: 60px;
          margin: 0; }
        .recommend-list > li + li {
          margin-top: 20px; }
  .plan {
    padding: 70px 0 50px; }
    .plan-detail {
      border-radius: 6px;
      padding: 50px 30px 30px; }
      .plan-detail-ttl {
        font-size: 14px;
        border-radius: 6px; }
      .plan-detail-list {
        font-size: 16px; }
        .plan-detail-list > li {
          padding-left: 32px; }
          .plan-detail-list > li + li {
            margin-top: 20px; }
    .plan-price-ttl {
      font-size: 20px; }
      .plan-price-ttl .label {
        font-size: 12px;
        margin-right: 8px;
        padding: 4px 0.5em; }
    .plan-price-balloon {
      width: 80px;
      height: 80px;
      right: -10px;
      top: -36px; }
      .plan-price-balloon:before {
        left: 4px;
        bottom: 4px; }
      .plan-price-balloon > * {
        font-size: 14px; }
    .plan-price-num {
      font-size: 72px;
      width: -webkit-fit-content;
      width: -moz-fit-content;
      width: fit-content;
      margin: 0 auto; }
      .plan-price-num .comma {
        font-size: 48px; }
      .plan-price-num .unit {
        font-size: 32px; }
      .plan-price-num .tax {
        font-size: 16px;
        top: 20px;
        left: 180px; }
    .plan-price-monthly {
      font-size: 18px;
      padding-left: 185px; }
      .plan-price-monthly sup {
        font-size: 10px; }
    .plan-price-notice {
      margin-top: 12px;
      font-size: 12px; }
  .performance {
    margin-top: 150px;
    padding: 80px 0 50px; }
    .performance-ttl {
      width: 240px;
      height: 240px;
      padding-top: 30px;
      top: -100px; }
      .performance-ttl-main {
        font-size: 24px; }
        .performance-ttl-main:before {
          width: 65px;
          height: 14px;
          margin-bottom: 5px; }
    .performance-list {
      -ms-grid-columns: (1fr)[2];
      grid-template-columns: repeat(2, 1fr);
      margin-bottom: 32px; }
      .performance-list > li {
        font-size: 14px;
        min-height: 68px;
        padding: 12px 8px; }
    .performance-btn {
      font-size: 16px;
      padding: 12px 40px; }
  .facility {
    margin-top: 150px;
    padding: 80px 0 50px; }
    .facility-ttl {
      width: 240px;
      height: 240px;
      padding-top: 30px;
      top: -100px; }
      .facility-ttl-main {
        font-size: 24px; }
        .facility-ttl-main:before {
          width: 65px;
          height: 14px;
          margin-bottom: 5px; }
    .facility-list {
      -ms-grid-columns: (1fr)[2];
      grid-template-columns: repeat(2, 1fr);
      margin-bottom: 32px; }
      .facility-list > li {
        font-size: 14px;
        min-height: 68px;
        padding: 12px 8px; }
    .facility-btn {
      font-size: 16px;
      padding: 12px 40px; }
  .works {
    padding: 50px 0; }
    .works-container {
      margin-bottom: 50px; }
    .works-header {
      margin-bottom: 50px; }
      .works-header-imgbox img {
        width: 100vw;
        margin: 0 -6.4% 20px; }
      .works-header-txt {
        font-size: 14px;
        line-height: 1.75; }
      .works-header-data {
        margin-top: 40px;
        border-radius: 8px;
        padding: 28px 20px 20px;
        border-width: 1px; }
        .works-header-data-ttl {
          font-size: 24px; }
        .works-header-data p {
          font-size: 14px; }
    .works-ttl {
      margin-bottom: 20px;
      -webkit-column-gap: 20px;
         -moz-column-gap: 20px;
              column-gap: 20px;
      border-width: 2px; }
      .works-ttl-num {
        font-size: 12px; }
        .works-ttl-num > span {
          font-size: 72px; }
      .works-ttl-main {
        font-size: 18px; }
    .works-body-imgbox {
      -ms-flex-wrap: wrap;
          flex-wrap: wrap;
      row-gap: 16px;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; }
    .works-body-txtbox {
      margin-top: 30px; }
    .works-body-list > li {
      padding-top: 0;
      padding-left: 32px; }
      .works-body-list > li + li {
        margin-top: 24px; }
      .works-body-list > li:before {
        width: 24px;
        height: 24px;
        font-size: 16px; } }
