@charset "UTF-8";
/* Scss Document */
/* Scss Document */
/*---------------
   mv
---------------*/
.mv {
  margin-top: 12.7rem;
  padding-bottom: calc(130 / 1920 * 100vw);
  position: relative;
  overflow: hidden;
}
@media only screen and (max-width: 1600px) {
  .mv {
    margin-top: calc(130 / 1600 * 100vw);
    padding-bottom: calc(165 / 1600 * 100vw);
  }
}
@media only screen and (max-width: 1200px) {
  .mv {
    margin-top: calc(120 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .mv {
    margin-top: calc(66 / 440 * 100vw);
  }
}

.mv__inner {
  padding: 0 calc(60 / 1920 * 100vw);
  position: relative;
}
@media only screen and (max-width: 640px) {
  .mv__inner {
    padding: 0 calc(20 / 440 * 100vw);
  }
}

.photo-gallery-grid {
  display: grid;
  width: 100%;
  height: calc(800 / 1920 * 100vw);
  gap: calc(16 / 1920 * 100vw);
  border-radius: calc(24 / 1920 * 100vw);
  overflow: hidden;
  grid-template-columns: 2.08fr 1fr 1fr 1.06fr;
  grid-template-rows: 1.5fr 1fr;
  grid-template-areas: "item-01 item-02 item-03 item-04" "item-01  item-05 item-06 item-07";
}
@media only screen and (max-width: 640px) {
  .photo-gallery-grid {
    height: calc(624 / 440 * 100vw);
    gap: calc(10 / 440 * 100vw);
    border-radius: calc(20 / 440 * 100vw);
    grid-template-columns: 6.6fr 1fr 5fr;
    grid-template-rows: 1.83fr 2.41fr 1fr 2.53fr 2.53fr;
    grid-template-areas: "item-01 item-02 item-02" "item-03 item-02 item-02" "item-04 item-04 item-04" "item-05 item-05 item-06" "item-05 item-05 item-07";
  }
}

/* ---------------------------------- */
/* エリア割り当て (Grid Area Mapping) */
/* ---------------------------------- */
.photo-gallery-grid .item-01 {
  grid-area: item-01;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: 10;
}
@media only screen and (max-width: 640px) {
  .photo-gallery-grid .item-01 {
    grid-area: item-05;
  }
}

.photo-gallery-grid .item-02 {
  grid-area: item-02;
  z-index: 10;
}
@media only screen and (max-width: 640px) {
  .photo-gallery-grid .item-02 {
    grid-area: item-06;
  }
}

.photo-gallery-grid .item-03 {
  grid-area: item-03;
}

.photo-gallery-grid .item-04 {
  grid-area: item-04;
  -o-object-fit: cover;
     object-fit: cover;
}
@media only screen and (max-width: 640px) {
  .photo-gallery-grid .item-04 {
    grid-area: item-02;
  }
}

.photo-gallery-grid .item-05 {
  grid-area: item-05;
  -o-object-fit: cover;
     object-fit: cover;
  z-index: 10;
}
@media only screen and (max-width: 640px) {
  .photo-gallery-grid .item-05 {
    grid-area: item-07;
  }
}

.photo-gallery-grid .item-06 {
  grid-area: item-06;
  -o-object-fit: cover;
     object-fit: cover;
}
@media only screen and (max-width: 640px) {
  .photo-gallery-grid .item-06 {
    grid-area: item-03;
  }
}

.photo-gallery-grid .item-07 {
  grid-area: item-07;
  -o-object-fit: cover;
     object-fit: cover;
}
@media only screen and (max-width: 640px) {
  .photo-gallery-grid .item-07 {
    grid-area: item-01;
  }
}

@media only screen and (max-width: 640px) {
  .photo-gallery-grid .item-08 {
    grid-area: item-04;
    position: static;
  }
}

.photo-gallery-grid .grid-item img {
  width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  opacity: 0;
  -webkit-transform: scale(0.9);
          transform: scale(0.9);
  -webkit-transition: none;
  transition: none;
}
@media only screen and (max-width: 640px) {
  .photo-gallery-grid .grid-item img {
    -o-object-fit: cover;
       object-fit: cover;
  }
}
.photo-gallery-grid.is-animated .grid-item img {
  -webkit-animation: fade-in-scale 1.6s ease-out forwards;
          animation: fade-in-scale 1.6s ease-out forwards;
}
.photo-gallery-grid.is-animated .item-01 img {
  -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
}
.photo-gallery-grid.is-animated .item-02 img {
  -webkit-animation-delay: 0.6s;
          animation-delay: 0.6s;
}
.photo-gallery-grid.is-animated .item-03 img {
  -webkit-animation-delay: 0.8s;
          animation-delay: 0.8s;
}
.photo-gallery-grid.is-animated .item-04 img {
  -webkit-animation-delay: 1s;
          animation-delay: 1s;
}
.photo-gallery-grid.is-animated .item-05 img {
  -webkit-animation-delay: 1.2s;
          animation-delay: 1.2s;
}
.photo-gallery-grid.is-animated .item-06 img {
  -webkit-animation-delay: 1.4s;
          animation-delay: 1.4s;
}
.photo-gallery-grid.is-animated .item-07 img {
  -webkit-animation-delay: 1.6s;
          animation-delay: 1.6s;
}

@-webkit-keyframes fade-in-scale {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.9);
            transform: scale(0.9);
  }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

@keyframes fade-in-scale {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.9);
            transform: scale(0.9);
  }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
.mv__txtarea {
  position: absolute;
  top: 43%;
  left: 41%;
  z-index: 1;
  opacity: 0;
  -webkit-animation: fade-in-up 1s ease forwards;
          animation: fade-in-up 1s ease forwards;
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
}
.mv__txtarea p {
  color: #4468AF;
  -webkit-font-feature-settings: "hwid" on;
          font-feature-settings: "hwid" on;
  font-size: calc(36 / 1920 * 100vw);
  line-height: normal;
  letter-spacing: calc(3.6 / 1920 * 100vw);
  font-weight: 500;
  position: relative;
}
@media only screen and (max-width: 640px) {
  .mv__txtarea p {
    font-size: calc(20 / 440 * 100vw);
    margin-bottom: calc(5 / 440 * 100vw);
  }
}
.mv__txtarea p::before {
  content: "";
  position: absolute;
  background: url(../img/index/bg07.png) no-repeat center center;
  background-size: contain;
  width: calc(174 / 1920 * 100vw);
  height: calc(334 / 1920 * 100vw);
  top: -105%;
  left: -12%;
  z-index: -1;
}
@media only screen and (max-width: 640px) {
  .mv__txtarea p::before {
    display: none;
  }
}

@-webkit-keyframes fade-in-up {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.9);
            transform: scale(0.9);
  }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}

@keyframes fade-in-up {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.9);
            transform: scale(0.9);
  }
  100% {
    opacity: 1;
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
.mv__img {
  width: 100%;
}
.mv__img img {
  width: 100%;
}

.mv__info {
  border-radius: 24px 0 0 24px;
  border: 6px solid #9ccdf2;
  background: #f0f8fd;
  padding: 2.5rem 3.1rem 2.6rem;
  width: 64rem;
  position: absolute;
  right: -7px;
  bottom: calc(-129 / 1920 * 100vw);
  -webkit-transition: -webkit-transform 1s ease;
  transition: -webkit-transform 1s ease;
  transition: transform 1s ease;
  transition: transform 1s ease, -webkit-transform 1s ease;
  -webkit-transform: translateX(1%);
          transform: translateX(1%);
  opacity: 1;
  z-index: 11;
}
@media only screen and (max-width: 1600px) {
  .mv__info {
    bottom: calc(-160 / 1600 * 100vw);
    width: calc(640 / 1600 * 100vw);
    padding: calc(25 / 1600 * 100vw) calc(31 / 1600 * 100vw) calc(26 / 1600 * 100vw);
  }
}
@media only screen and (max-width: 1200px) {
  .mv__info {
    display: none;
  }
}
.mv__info.is-hidden {
  -webkit-transform: translateX(120%);
          transform: translateX(120%);
}
.mv__info.info .info__contact {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2.7rem;
}
@media only screen and (max-width: 1600px) {
  .mv__info.info .info__contact {
    gap: calc(27 / 1600 * 100vw);
  }
}
.mv__info.info .info__contact-tel {
  color: #4468AF;
}
.mv__info.info .contact-tel__ttl {
  font-size: 1.6rem;
  line-height: normal;
  font-weight: 700;
}
@media only screen and (max-width: 1600px) {
  .mv__info.info .contact-tel__ttl {
    font-size: calc(16 / 1600 * 100vw);
  }
}
.mv__info.info .contact-tel__number {
  font-size: 3.4rem;
  line-height: 1.05882;
  letter-spacing: 1.7px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media only screen and (max-width: 1600px) {
  .mv__info.info .contact-tel__number {
    font-size: calc(34 / 1600 * 100vw);
    letter-spacing: calc(1.7 / 1600 * 100vw);
  }
}
.mv__info.info .contact-tel__number img {
  width: 2.7rem;
  height: 2.9rem;
  margin-top: 0.5rem;
}
.mv__info.info .contact-tel__number span {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 2px;
}
@media only screen and (max-width: 1600px) {
  .mv__info.info .contact-tel__number span {
    font-size: calc(20 / 1600 * 100vw);
    letter-spacing: calc(2 / 1600 * 100vw);
  }
}
.mv__info.info .schedule .tb01 {
  width: 100%;
}
.mv__info.info .schedule .tb01 th {
  line-height: 3;
  letter-spacing: 0.8px;
  width: 11rem;
  padding-left: 1rem;
  font-weight: 500;
}
@media only screen and (max-width: 1600px) {
  .mv__info.info .schedule .tb01 th {
    font-size: calc(16 / 1600 * 100vw);
    width: calc(110 / 1600 * 100vw);
    padding-left: calc(10 / 1600 * 100vw);
  }
}
.mv__info.info .schedule .tb01 td {
  line-height: 3;
  letter-spacing: 0.8px;
  width: 1.6rem;
  padding-left: 3.6rem;
}
@media only screen and (max-width: 1600px) {
  .mv__info.info .schedule .tb01 td {
    font-size: calc(16 / 1600 * 100vw);
    width: calc(16 / 1600 * 100vw);
    padding-left: calc(30 / 1600 * 100vw);
  }
}

/*---------------
   greeting
---------------*/
.greeting {
  background: url(../img/index/bg01.png) no-repeat center center;
  background-size: cover;
}
@media only screen and (max-width: 640px) {
  .greeting {
    background: url(../img/index/bg02.png) no-repeat center center;
    background-size: cover;
    margin-top: calc(-50 / 440 * 100vw);
    z-index: -1;
  }
}

.greeting__inner {
  padding: calc(485 / 1920 * 100vw) calc(50 / 1920 * 100vw) calc(160 / 1920 * 100vw);
  margin-top: calc(-446 / 1920 * 100vw);
}
@media only screen and (max-width: 1200px) {
  .greeting__inner {
    padding: calc(160 / 1200 * 100vw) calc(50 / 1200 * 100vw) calc(160 / 1200 * 100vw);
    margin-top: calc(-170 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .greeting__inner {
    padding: calc(60 / 440 * 100vw) calc(20 / 440 * 100vw) calc(280 / 440 * 100vw);
    margin-top: calc(-30 / 440 * 100vw);
  }
}

.greeting__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: calc(85 / 1920 * 100vw);
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
@media only screen and (max-width: 640px) {
  .greeting__content {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: calc(30 / 440 * 100vw);
  }
}

@media only screen and (max-width: 640px) {
  .greeting__button {
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
}

.greeting__img {
  width: calc(995 / 1920 * 100vw);
}
@media only screen and (max-width: 1200px) {
  .greeting__img {
    width: calc(595 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .greeting__img {
    width: 100%;
  }
}

/*---------------
   dental-services
---------------*/
.dental-services__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media only screen and (max-width: 1600px) {
  .dental-services__content {
    margin-right: calc(60 / 1600 * 100vw);
  }
}
@media only screen and (max-width: 1200px) {
  .dental-services__content {
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
        -ms-flex-direction: column-reverse;
            flex-direction: column-reverse;
    gap: calc(40 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .dental-services__content {
    margin-right: 0;
    margin-top: calc(-230 / 440 * 100vw);
  }
}

.dental-services__list-area {
  border-radius: 0 36px 36px 0;
  background: #F0F8FD;
  width: calc(1055 / 1920 * 100vw);
  padding: calc(90 / 1920 * 100vw) calc(95 / 1920 * 100vw) calc(91 / 1920 * 100vw) calc(107 / 1920 * 100vw);
  margin-right: calc(95 / 1920 * 100vw);
}
@media only screen and (max-width: 1600px) {
  .dental-services__list-area {
    width: calc(1055 / 1600 * 100vw);
  }
}
@media only screen and (max-width: 1200px) {
  .dental-services__list-area {
    width: 100%;
  }
}
@media only screen and (max-width: 640px) {
  .dental-services__list-area {
    margin-right: calc(20 / 440 * 100vw);
    width: calc(100% - 20 / 440 * 100vw);
    border-radius: 0 24px 24px 0;
  }
}

.dental-services__list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: calc(50 / 1920 * 100vw) calc(60 / 1920 * 100vw);
}
@media only screen and (max-width: 640px) {
  .dental-services__list {
    grid-template-columns: 1fr;
    gap: calc(40 / 440 * 100vw);
  }
}

.dental-services__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.dental-services__img {
  width: 30.2267002519%;
  margin-right: 6.8010075567%;
}
@media only screen and (max-width: 1200px) {
  .dental-services__img {
    width: calc(120 / 1200 * 100vw);
    margin-right: calc(27 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .dental-services__img {
    width: calc(100 / 440 * 100vw);
    margin-right: calc(15 / 440 * 100vw);
  }
}

.dental-services__item-txtarea {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.dental-services__ttl {
  color: #4468AF;
  font-size: 2.5rem;
  line-height: normal;
  font-weight: 500;
}
@media only screen and (max-width: 1200px) {
  .dental-services__ttl {
    font-size: calc(28 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .dental-services__ttl {
    font-size: calc(22 / 440 * 100vw);
  }
}

.dental-services__txt {
  font-size: 1.5rem;
  line-height: 1.4;
  letter-spacing: 0.75px;
  margin-top: 1.8rem;
}
@media only screen and (max-width: 1200px) {
  .dental-services__txt {
    font-size: calc(20 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .dental-services__txt {
    font-size: calc(15 / 440 * 100vw);
    margin-top: calc(10 / 440 * 100vw);
  }
}

.dental-services__list-button {
  display: none;
}
@media only screen and (max-width: 1200px) {
  .dental-services__list-button {
    display: block;
    margin-top: calc(50 / 1200 * 100vw);
    margin-left: calc(40 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .dental-services__list-button {
    margin-left: 0;
    margin-top: calc(40 / 440 * 100vw);
  }
}
@media only screen and (max-width: 1200px) {
  .dental-services__list-button .c-button {
    margin: 0 auto;
  }
}

@media only screen and (max-width: 1200px) {
  .dental-services__textarea {
    width: 100%;
    padding: 0 calc(50 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .dental-services__textarea {
    padding: 0 calc(20 / 440 * 100vw);
  }
}
.dental-services__textarea .c-textarea__ttl {
  display: inline-block;
}
@media only screen and (max-width: 640px) {
  .dental-services__textarea .c-textarea__ttl .tab {
    display: block !important;
  }
}

@media only screen and (max-width: 1200px) {
  .dental-services__button .c-button {
    margin: 0 auto;
  }
}

/*---------------
   gallery
---------------*/
.gallery {
  padding-top: 16rem;
  padding-left: calc(50 / 1920 * 100vw);
}
@media only screen and (max-width: 1600px) {
  .gallery {
    padding-left: calc(60 / 1600 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .gallery {
    padding-top: calc(100 / 440 * 100vw);
    padding-left: 0;
    margin-top: calc(-10 / 440 * 100vw);
    background: url(../img/index/bg05.png) no-repeat center top;
    background-size: cover;
    margin-top: calc(-30 / 440 * 100vw);
  }
}

.gallery__wrapper {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
@media only screen and (max-width: 640px) {
  .gallery__wrapper {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
}

.gallery__textarea {
  width: calc(285 / 1920 * 100vw);
  margin-right: calc(95 / 1920 * 100vw);
}
@media only screen and (max-width: 1600px) {
  .gallery__textarea {
    width: calc(285 / 1600 * 100vw);
    margin-right: calc(95 / 1600 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .gallery__textarea {
    width: 100%;
    padding: 0 calc(20 / 440 * 100vw);
  }
}

.gallery__controls {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: calc(84 / 1920 * 100vw);
  width: 192px;
  position: relative;
}
@media only screen and (max-width: 1200px) {
  .gallery__controls {
    width: calc(192 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .gallery__controls {
    width: calc(138 / 440 * 100vw);
    margin: calc(26 / 440 * 100vw) auto calc(10 / 440 * 100vw);
    isolation: isolate;
  }
}
.gallery__controls .swiper-button-prev {
  background: url(../img/index/icon-prev.png) no-repeat center center;
  background-size: contain;
  width: 7.7rem;
  height: 4.7rem;
  display: block;
  position: relative;
  z-index: 99;
  margin: 0;
}
@media only screen and (max-width: 640px) {
  .gallery__controls .swiper-button-prev {
    width: calc(59 / 440 * 100vw);
    height: calc(35 / 440 * 100vw);
  }
}
.gallery__controls .swiper-button-prev svg {
  display: none;
}
.gallery__controls .swiper-button-next {
  background: url(../img/index/icon-next.png) no-repeat center center;
  background-size: contain;
  width: 7.7rem;
  height: 4.7rem;
  display: block;
  position: relative;
  z-index: 99;
  margin: 0;
  left: 0;
}
@media only screen and (max-width: 1200px) {
  .gallery__controls .swiper-button-next {
    left: 0;
  }
}
@media only screen and (max-width: 640px) {
  .gallery__controls .swiper-button-next {
    width: calc(59 / 440 * 100vw);
    height: calc(35 / 440 * 100vw);
  }
}
.gallery__controls .swiper-button-next svg {
  display: none;
}
.gallery__controls .swiper-pagination {
  color: #4468AF;
  font-weight: 400;
  line-height: 1.3;
  display: block !important;
  position: relative;
  margin-top: 1.5rem;
  left: 0;
}
@media only screen and (max-width: 1200px) {
  .gallery__controls .swiper-pagination {
    left: 0;
    font-size: calc(21 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .gallery__controls .swiper-pagination {
    font-size: calc(16 / 440 * 100vw);
  }
}

.gallery__slider {
  width: calc(1320 / 1920 * 100vw);
}
@media only screen and (max-width: 1600px) {
  .gallery__slider {
    width: calc(1160 / 1600 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .gallery__slider {
    width: 100%;
    isolation: isolate;
  }
}

.swiper {
  border-radius: 41.85px 0 0 41.85px;
}
@media only screen and (max-width: 640px) {
  .swiper {
    border-radius: 0;
  }
}

.swiper-slide img {
  width: 100%;
}

/*---------------
   news
---------------*/
.news .content {
  padding: calc(351 / 1920 * 100vw) 0 calc(88 / 1920 * 100vw);
  background: url(../img/index/bg03.png) no-repeat center center;
  background-size: cover;
  margin-top: calc(-205 / 1920 * 100vw);
}
@media only screen and (max-width: 640px) {
  .news .content {
    background: url(../img/index/bg04.png) no-repeat center right;
    background-size: cover;
    padding: calc(50 / 440 * 100vw) 0 calc(32 / 440 * 100vw);
    margin-top: 0;
  }
}

.news__wrapper {
  background: rgba(255, 255, 255, 0.65);
  border-radius: 36px;
  padding: 8.5rem 9.8rem 7.2rem 8.9rem;
}
@media only screen and (max-width: 1600px) {
  .news__wrapper {
    padding: calc(85 / 1600 * 100vw) calc(98 / 1600 * 100vw) calc(72 / 1600 * 100vw) calc(89 / 1600 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .news__wrapper {
    padding: calc(30 / 440 * 100vw) calc(20 / 440 * 100vw) calc(46 / 440 * 100vw);
  }
}

.news__body {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
@media only screen and (max-width: 640px) {
  .news__body {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}

.news__ttl {
  margin-right: 11.6rem;
}
@media only screen and (max-width: 1200px) {
  .news__ttl {
    margin-right: calc(60 / 1200 * 100vw);
  }
}

.news__table {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1; /* 余ったスペースを埋める */
  min-width: 0; /* ★Flexbox内でテキスト省略を効かせるための必須記述 */
}
@media only screen and (max-width: 640px) {
  .news__table {
    margin-top: calc(5 / 440 * 100vw);
  }
}
.news__table table {
  width: 100%;
  table-layout: fixed; /* ★列幅を固定計算モードにする */
}
.news__table tr {
  border-bottom: 1px solid rgba(0, 0, 0, 0.2);
}
.news__table tr:last-of-type {
  border-bottom: none;
}
@media only screen and (max-width: 640px) {
  .news__table tr:last-of-type {
    border-bottom: 1px solid rgba(0, 0, 0, 0.2);
  }
}
.news__table th {
  color: #4468AF;
  font-size: 2rem;
  font-weight: 500;
  line-height: normal;
  letter-spacing: 1px;
  width: 14.2rem;
  padding-right: 5rem;
}
@media only screen and (max-width: 1600px) {
  .news__table th {
    padding-right: calc(50 / 1600 * 100vw);
  }
}
@media only screen and (max-width: 1200px) {
  .news__table th {
    font-size: calc(28 / 1200 * 100vw);
    width: calc(170 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .news__table th {
    display: block;
    font-size: calc(16 / 440 * 100vw);
    padding-top: calc(15 / 440 * 100vw);
  }
}
.news__table td {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 2rem;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 1px;
  padding: 3.2rem 0;
}
@media only screen and (max-width: 1200px) {
  .news__table td {
    font-size: calc(28 / 1200 * 100vw);
  }
}
@media only screen and (max-width: 640px) {
  .news__table td {
    display: block;
    font-size: calc(16 / 440 * 100vw);
    padding: 0 0 calc(15 / 440 * 100vw);
  }
}

.news__button .c-button {
  margin: 0 auto;
}