@charset "utf-8";

:root {
  --section-padding: 5rem 0;
}
@media (max-width: 960px) {
  :root {
    --section-padding: 3rem 0;
  }
}

.page-mv {
  position: relative;
  background: linear-gradient(180deg, #fff 70%, #ebf3d5 70%);
  padding-top: 3rem;
  .img-wrapper {
    width: 95%;
    margin-inline: auto;
    .mv-img {
      width: 100%;
      min-height: 200px;
      object-fit: cover;
    }
  }
  .page-title {
    max-width: 450px;
    position: absolute;
    top: 58%;
    left: 50%;
    translate: -50% -50%;
    text-align: center;
    @media (max-width: 960px) {
      top: 63%;
      .title {
        margin-inline: auto;
        max-width: 280px;
        max-height: 60px;
      }
    }
  }
}

.page-main h2.section-title {
  font-family: 'Zen Maru Gothic', serif;
  font-weight: 500;
  background-color: #fff;
  border-radius: 30px 30px 0 0;
  position: relative;
  padding: 0.5rem 1rem 1.5rem;
  margin-bottom: 3rem;
  font-size: 2.5rem;
  text-align: center;
  text-wrap: balance;
  letter-spacing: 0.2em;
  @media (max-width: 960px) {
    font-size: 1.75rem;
    margin-bottom: 2rem;
  }
  &::after {
    content: '';
    display: block;
    width: 95%;
    position: absolute;
    z-index: 1;
    height: 10px;
    bottom: 1rem;
    left: 0%;
    right: 0%;
    margin-inline: auto;
    border-bottom: 3px dotted var(--green);
  }
  /* margin-bottom: 1rem; */
}

.page-main {
  .container {
    width: calc(100% - 2rem);
    max-width: 1280px;
    margin-inline: auto;
  }
}

/*=========================
  clinic
=========================*/
section.clinic-sec1 {
  padding: var(--section-padding);
  .bg-img {
    background: url(../img/clinic/sec1-bg.png) no-repeat;
    background-size: cover;
    padding: 4rem 0;
    @media (max-width: 960px) {
      padding: 2rem 0;
    }
    .texts-wrapper {
      background-color: #fff;
      padding: 2rem;
    }
  }
  .docs {
    margin-top: 4rem;
    max-width: 1000px;
    margin-inline: auto;
    .accordion-item {
      margin-bottom: 2rem;
      .title-wrapper {
        background-color: var(--green);
        color: #fff;
        padding: 1rem 2rem;
        font-size: 1.5rem;
        display: flex;
        justify-content: space-between;
        align-items: center;
        @media (max-width: 960px) {
          padding: 0.5rem 1rem;
          font-size: 1.25rem;
        }
      }
      .text-wrapper {
        background-color: #fff;
        max-height: 0;
        overflow: hidden;
        transition: max-height 0.4s ease-in-out;
        .inner {
          padding: 2rem;
          @media (max-width: 960px) {
            padding: 1rem;
          }
        }
        .text {
          font-size: 1rem;
          @media (max-width: 960px) {
            font-size: 0.9rem;
          }
        }
      }
    }
    .accordion-item.open {
      .text-wrapper {
        max-height: 9000px;
      }
    }
  }
}

section.clinic-sec2 {
  padding: var(--section-padding);
  .container > .flex {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    margin-bottom: 4rem;
    @media (max-width: 960px) {
      flex-direction: column-reverse;
    }
    .img-wrapper {
      width: 50%;
      .img {
        translate: 2% 0%;
      }
      @media (max-width: 960px) {
        width: 100%;
      }
    }
    .table-wrapper {
      width: 50%;
      @media (max-width: 960px) {
        width: 100%;
      }
      .table {
        display: grid;
        grid-template-columns: auto 1fr;
        border: #333333 1px solid;
        .row {
          display: grid;
          grid-template-columns: subgrid;
          grid-column: 1/-1;
          &:not(:last-of-type) {
            border-bottom: #333333 1px solid;
          }
        }
        .th {
          background-color: #c7dc8d;
          padding: 1rem;
          text-align: center;
          border-right: #333333 1px solid;
        }
        .td {
          padding: 1rem;
        }
      }
    }
  }
  h3.title {
    background-color: #c7dc8d;
    padding: 1rem;
    text-align: center;
    text-wrap: balance;
    border-radius: 20px;
    font-size: 1.5rem;
    margin-bottom: 2rem;
  }
  .hours-wrapper {
    max-width: 900px;
    margin-inline: auto;
    .hours-table {
      background-color: #fff;
      border-radius: 20px;
      overflow: hidden;
      display: grid;
      grid-template-columns: auto repeat(7, 1fr);
      font-size: 1.125rem;
      text-align: center;
      text-wrap: balance;
      @media (max-width: 960px) {
        font-size: 0.9rem;
      }
      .row {
        display: grid;
        grid-template-columns: subgrid;
        grid-column: 1 / -1;
        &:first-of-type {
          background-color: #c7dc8d;
          border-bottom: 1px solid #ebf3d5;
        }
      }
      .row:nth-of-type(2) {
        border-bottom: 1px solid #ebf3d5;
        .cell:not(.th) {
          color: var(--green);
        }
      }
      .row:nth-of-type(3) {
        .cell:not(.th) {
          color: var(--green);
        }
      }
      .row {
        .th {
          padding-left: 1rem;
        }
        .cell {
          border-right: 1px solid #ebf3d5;
        }
        .cell:last-of-type {
          padding-right: 1rem;
          border-right: none;
        }
      }
      .th {
        padding: 0.5rem 0.5rem;
      }
      .cell {
        display: flex;
        justify-content: center;
        align-items: center;
      }
    }
    .text {
      color: red;
      font-size: 0.9rem;
      margin-left: 1rem;
      @media (max-width: 960px) {
        font-size: 12px;
      }
    }
  }
}

section.clinic-sec3 {
  padding: var(--section-padding);
  .slider-wrapper {
    max-width: 1000px;
    margin-inline: auto;
    .thumbnails {
      margin: 1rem auto 0;
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
      gap: 10px;
      @media (max-width: 960px) {
        grid-template-columns: repeat(auto-fill, minmax(60px, 1fr));
        gap: 5px;
      }
      .thumbnail {
        position: relative;
        &::before {
          content: '';
          position: absolute;
          z-index: 1;
          inset: 0;
          background: #333333;
          opacity: 0.4;
        }
      }
      .thumbnail.is-active {
        &::before {
          opacity: 0;
        }
      }
    }
  }
}

section.clinic-sec4 {
  padding: var(--section-padding);
  .grid-items {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    @media (max-width: 960px) {
      grid-template-columns: repeat(2, 1fr);
      gap: 1rem;
    }
    @media (max-width: 430px) {
      grid-template-columns: repeat(1, 1fr);
      gap: 1rem;
    }
  }
  .grid-item {
    .label {
      background-color: var(--green);
      color: #fff;
      text-align: center;
      padding: 0.5rem;
    }
  }
}

.sec4-accordion {
    /*max-width: 500px;*/
    margin-bottom: 7px;
    background-color: #22ac38;
}

.sec4-accordion summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    padding: 1em;
    color: #ffffff;
    font-weight: 600;
    cursor: pointer;
}

.sec4-accordion summary::-webkit-details-marker {
    display: none;
}

.sec4-accordion summary::before,
.sec4-accordion summary::after {
    width: 3px;
    height: .9em;
    border-radius: 5px;
    background-color: #007c08;
    content: '';
	background-color: #fff;
}

.sec4-accordion summary::before {
    position: absolute;
    right: 1em;
    rotate: 90deg;
}

.sec4-accordion summary::after {
    transition: rotate .3s;
}

.sec4-accordion[open] summary::after {
    rotate: 90deg;
}

.sec4-accordion p {
    transform: translateY(-10px);
    opacity: 0;
    margin: 0;
    padding: 1.5em;
    color: #333;
    transition: transform .5s, opacity .5s;
	background-color: #fff;
}

.sec4-accordion[open] p {
    transform: none;
    opacity: 1;
}

section.clinic-sec5 {
  padding: var(--section-padding);
  @media (max-width: 960px) {
    .section-title {
      font-size: 1.5rem;
    }
  }
  .flex {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    margin-bottom: 6rem;
    @media (max-width: 960px) {
      flex-direction: column-reverse;
    }
    .img-wrapper {
      width: 50%;
      .img {
        translate: 2% 0%;
      }
      @media (max-width: 960px) {
        width: 100%;
      }
    }
    .texts-wrapper {
      width: 50%;
      @media (max-width: 960px) {
        width: 100%;
      }
    }
  }
  .flex + .title {
    font-size: 2rem;
    text-align: center;
    text-wrap: balance;
    color: var(--green);
    border-bottom: var(--green) 2px solid;
    padding-bottom: 1rem;
    margin-bottom: 2rem;
    @media (max-width: 960px) {
      font-size: 1.5rem;
    }
  }
  .title.maru-gothic + .text {
    margin-bottom: 4rem;
  }
}

/*=========================
  staff
=========================*/
section.staff-sec1 {
  padding: var(--section-padding);
  .bg-white {
    background-color: #fff;
    padding: 4rem 0;
    .container > .flex {
      display: flex;
      justify-content: center;
      gap: 2rem;
      margin-bottom: 4rem;
      @media (max-width: 960px) {
        flex-direction: column;
        gap: 1rem;
      }
      .img-wrapper {
        width: 50%;
        @media (max-width: 960px) {
          width: 100%;
        }
        .img {
          width: 100%;
          margin-bottom: 1rem;
        }
        .name {
          display: flex;
          justify-content: center;
          align-items: baseline;
          gap: 1rem;
          @media (max-width: 960px) {
            display: none;
          }
          .post {
            font-size: 1.5em;
          }
          .jp {
            font-size: 1.75em;
          }
          .en {
            font-size: 1.25em;
          }
        }
      }
      .texts-wrapper {
        width: 50%;
        @media (max-width: 960px) {
          width: 100%;
        }
        .copy {
          font-size: 1.5rem;
          text-align: center;
          margin-bottom: 2rem;
          @media (max-width: 960px) {
            font-size: 1.125rem;
            margin-bottom: 1rem;
          }
        }
        .text {
          margin-bottom: 10%;
          @media (max-width: 960px) {
            margin-bottom: 1rem;
          }
        }
        .name {
          display: none;
          justify-content: center;
          align-items: baseline;
          gap: 1rem;
          margin-bottom: 2rem;
          @media (max-width: 960px) {
            display: flex;
            gap: 0.5rem;
          }
          .post {
            font-size: 1.25em;
          }
          .jp {
            font-size: 1.5em;
          }
          .en {
            font-size: 1em;
          }
        }
      }
    }
    .career-lists {
      display: flex;
      justify-content: center;
      gap: 2rem;
      @media (max-width: 960px) {
        flex-direction: column;
      }
      .career-list {
        width: 50%;
        border: 1px solid var(--green);
        border-radius: 40px;
        padding: 2rem;
        @media (max-width: 960px) {
          width: 100%;
        }
        .title {
          font-size: 1.5rem;
          border-bottom: 1px solid var(--green);
          padding-bottom: 0.5rem;
          margin-bottom: 1rem;
        }
      }
    }
  }
}

section.staff-sec2 {
  padding: var(--section-padding);
  .interview-item {
    margin-bottom: 4rem;
    .title {
      background-color: var(--green);
      color: #fff;
      padding: 1rem 2rem;
      font-size: 1.5rem;
      margin-bottom: 1rem;
      @media (max-width: 960px) {
        padding: 1rem;
        font-size: 1.125rem;
        text-align: center;
        text-wrap: balance;
      }
    }
  }
}

/*=========================
  medical
=========================*/
section.medical-sec1,
section.medical-sec2,
section.medical-sec3,
section.medical-sec4,
section.medical-sec5 {
  padding: var(--section-padding);
  .about {
    .flex {
      display: flex;
      justify-content: center;
      gap: 2rem;
      margin-bottom: 4rem;
      @media (max-width: 960px) {
        flex-direction: column !important;
      }
      .texts-wrapper {
        width: 50%;
        @media (max-width: 960px) {
          width: 100%;
        }
        .title {
          font-size: 1.5rem;
          padding-inline: 1rem;
          border-bottom: 1px solid var(--green);
          padding-bottom: 0.5rem;
          margin-bottom: 1rem;
        }
      }
      .img-wrapper {
        width: 50%;
        @media (max-width: 960px) {
          width: 100%;
          .img {
            margin-inline: auto;
          }
        }
      }
    }
    .flex.reverse {
      flex-direction: row-reverse;
    }
  }
  .bg {
    background-color: #dfe9c2;
    padding: 4rem 0;
    .item {
      &:not(:last-of-type) {
        margin-bottom: 4rem;
      }
      .title {
        font-size: 1.5rem;
        padding-inline: 1rem;
        border-bottom: 1px solid var(--green);
        padding-bottom: 0.5rem;
        margin-bottom: 1rem;
      }
      .text {
        width: 96%;
        margin-inline: auto;
      }
    }
  }
}
section.medical-sec5 {
  padding-bottom: 10rem;
}

/*=========================
  access
=========================*/
section.access-sec1 {
  padding: var(--section-padding);
  .img-wrapper {
    margin-bottom: 4rem;
    .img {
      margin-inline: auto;
      translate: 1% 0%;
    }
  }
  h3.title {
    background-color: #c7dc8d;
    padding: 1rem;
    text-align: center;
    text-wrap: balance;
    border-radius: 20px;
    font-size: 1.5rem;
    margin-bottom: 2rem;
  }
  .hours-wrapper {
    max-width: 900px;
    margin-inline: auto;
    .hours-table {
      background-color: #fff;
      border-radius: 20px;
      overflow: hidden;
      display: grid;
      grid-template-columns: auto repeat(7, 1fr);
      font-size: 1.125rem;
      text-align: center;
      text-wrap: balance;
      @media (max-width: 960px) {
        font-size: 0.9rem;
      }
      .row {
        display: grid;
        grid-template-columns: subgrid;
        grid-column: 1 / -1;
        &:first-of-type {
          background-color: #c7dc8d;
          border-bottom: 1px solid #ebf3d5;
        }
      }
      .row:nth-of-type(2) {
        border-bottom: 1px solid #ebf3d5;
        .cell:not(.th) {
          color: var(--green);
        }
      }
      .row:nth-of-type(3) {
        .cell:not(.th) {
          color: var(--green);
        }
      }
      .row {
        .th {
          padding-left: 1rem;
        }
        .cell {
          border-right: 1px solid #ebf3d5;
        }
        .cell:last-of-type {
          padding-right: 1rem;
          border-right: none;
        }
      }
      .th {
        padding: 0.5rem 0.5rem;
      }
      .cell {
        display: flex;
        justify-content: center;
        align-items: center;
      }
    }
    .text {
      color: red;
      font-size: 0.9rem;
      margin-left: 1rem;
      @media (max-width: 960px) {
        font-size: 12px;
      }
    }
  }
}

section.access-sec2 {
  padding: var(--section-padding);
  .map-wrapper {
    max-width: 1000px;
    margin-inline: auto;
    height: 500px;
    margin-bottom: 4rem;
    iframe {
      width: 100%;
      height: 100%;
    }
  }
  .flex-items {
    display: flex;
    justify-content: center;
    gap: 2rem;
    @media (max-width: 960px) {
      flex-direction: column;
    }
    .flex-item {
      position: relative;
      width: 50%;
      background: linear-gradient(135deg, #f5f5eb 80%, #f4edea 80%);
      padding: 1rem 2rem;
      @media (max-width: 960px) {
        width: 100%;
      }
      .img {
        margin-inline: auto;
        margin-bottom: 1rem;
        @media (max-width: 960px) {
          width: 120px;
        }
      }
      .title {
        font-size: 1.5rem;
        text-align: center;
        text-wrap: balance;
        margin-bottom: 1rem;
      }
      .flower {
        position: absolute;
        @media (max-width: 960px) {
          display: none;
        }
      }
      .leaf {
        position: absolute;
        @media (max-width: 960px) {
          display: none;
        }
      }
    }
    .flex-item:nth-child(1) {
      .flower {
        top: 10%;
        right: -2%;
      }
      .leaf {
        bottom: -6%;
        left: -2%;
      }
    }
    .flex-item:nth-child(2) {
      .flower {
        top: 30%;
        left: -2%;
      }
      .leaf {
        bottom: -10%;
        right: -2%;
        transform: scale(-1, 1);
      }
    }
  }
}

/*=========================
  recruit
=========================*/
section.recruit-sec1 {
  padding: var(--section-padding);
  .img-wrapper {
    margin-bottom: 4rem;
    @media (max-width: 960px) {
      .img {
        translate: 1% 0%;
      }
    }
  }
  .flex-items {
    display: flex;
    justify-content: center;
    gap: 2rem;
    @media (max-width: 960px) {
      flex-direction: column;
    }
    .flex-item {
      width: calc(100% / 3 - 2rem);
      background-color: #fff;
      padding: 1rem;
      min-height: 300px;
      display: flex;
      justify-content: center;
      align-items: center;
      flex-direction: column;
      @media (max-width: 960px) {
        width: 100%;
      }
      .number {
        margin-inline: auto;
        width: 100px;
        margin-bottom: 2rem;
        @media (max-width: 960px) {
          width: 80px;
        }
      }
      .title {
        font-size: 1.25rem;
        text-align: center;
        text-wrap: balance;
      }
    }
  }
}
section.recruit-sec2 {
  padding: var(--section-padding);
}
section.recruit-sec3 {
  padding: var(--section-padding);
}
