body {
  font-family: 'Noto Serif JP', serif;
  background-color: #d9d9d9;
  /* section と同じ色にする */
}

header {
  background-color: #d9d9d9;
}

header h1 {
  font-family: 'Magnolia Script', sans-serif;
  font-size: 40px;
  text-align: center;
  padding-top: 10px;
  padding-bottom: 10px;
  color: #fff;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
}

/* header p {
  font-size: 34px;
  text-align: center;
  padding-top: 10px;
  padding-bottom: 20px;
  color: #fff;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
} */

main video {
  width: 100%;
  height: auto;
  padding-bottom: 60px;
  background-color: #d9d9d9;
}

section {
  background-color: #d9d9d9;
}

section .box {
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 60px;
  display: flex;
  gap: 2em;
  align-items: center;
  justify-content: space-between;
}

section .box .box-right h2 {
  width: fit-content;
  font-size: 30px;
  padding-bottom: 15px;
  border-bottom: 2px solid#000;
}

section .box .box-right p {
  margin-top: 30px;
  font-size: 26px;
  line-height: 32px;
}

.black {
  background-color: #6c6861;
  padding-top: 60px;
}

.black .box .box-right h2 {
  color: #fff;
  border-bottom: 2px solid#fff;
}

.black .box .box-right p {
  color: #fff;
  font-size: 16px;
  line-height: 20px;
}

section h3 {
  text-align: center;
  font-size: 30px;
  padding-top: 20px;
  padding-bottom: 20px;
}

section .box-img {
  display: flex;
  gap: 2em;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}

section .box-img img {
  width: 300px;
  height: 200px;
}

section .box-img .small p {
  text-align: center;
  font-size: 16px;
  font-weight: bold;
  padding-top: 10px;
  padding-bottom: 30px;
}

.cleaning-section {
  padding: 60px 20px;
  overflow: hidden;
}

.cleaning-section h3 {
  text-align: center;
  font-size: 28px;
  margin-bottom: 40px;
}

.scroll-slider {
  display: flex;
  gap: 2em;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 20px;
}

.slide {
  width: 300px;
  flex: 0 0 auto;
  scroll-snap-align: center;
}

.slide img {
  width: 300px;
  height: 200px;
  object-fit: cover;
  display: block;
}

.slide p {
  text-align: center;
  font-size: 16px;
  font-weight: bold;
  padding-top: 10px;
  padding-bottom: 30px;
}

section .box2 {
  width: 90%;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 60px;
  display: flex;
  /* gap: 2em; */
  align-items: center;
  justify-content: center;
}

.black .box2 .box-left img {
  width: 100%;
  height: auto;
}

.black .box2 .box-right .big-text {
  font-size: 32px;
  line-height: 42px;
  font-weight: bold;
  color: #fff;
  text-align: center;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);
}

.after {
  background-color: #fff;
}

.price h2 {
  width: fit-content;
  font-size: 40px;
  padding-bottom: 15px;
  border-bottom: 2px solid#000;
  padding-top: 30px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 30px;
}

.price2 h2 {
  width: fit-content;
  font-size: 40px;
  padding-bottom: 15px;
  border-bottom: 2px solid#000;
  padding-top: 30px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 30px;
}

.price2 {
  background-color: #f0f5f6;
}

.price2 p {
  font-size: 20px;
  font-weight: bold;
  line-height: 1.4;
  padding-top: 0.5em;
  padding-bottom: 1em;
}

/* .price .box3 .box-left img {
  width: 100%;
  height: auto;
  display: block;
} */

section .box3 {
  width: 90%;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
  /* padding-top: 15px; */
  padding-bottom: 20px;
  display: flex;
  gap: 0.5em;
  align-items: flex-start;
  /* justify-content: space-between; */
}

section .box3:last-child {
  padding-bottom: 60px;
}

section .box3 h6 {
  font-size: 30px;
  line-height: 40px;
  font-weight: bold;
  margin-bottom: 20px;
}

section .box3 .small-text {
  font-size: 20px;
  line-height: 24px;
}

section .box3 .box-right img {
  width: 100%;
  height: auto;
  display: block;
}

.onegai {
  background-color: #545454;
}

.onegai h5 {
  text-align: center;
  padding-top: 60px;
  padding-bottom: 20px;
  font-size: 42px;
  color: #fff;
}

.onegai ul {
  width: 80%;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 60px;
  color: #fff;
  font-size: 20px;
  line-height: 30px;
}

.onegai ul li {
  padding-bottom: 20px;
}

footer {
  background-image: url(../images/img5.png);
  background-repeat: no-repeat;
  background-size: cover;
  width: 100%;
  height: 770px;
}

footer h1 {
  font-family: 'Magnolia Script', sans-serif;
  font-size: 48px;
  text-align: center;
  padding-top: 40px;
  color: #fff;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
}

footer p {
  font-size: 42px;
  text-align: center;
  padding-top: 10px;
  color: #fff;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
}

footer .box {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10em;
  margin-top: 60px;
  padding-bottom: 100px;
}

footer .box img {
  width: 250px;
  height: 250px;
}

.text-red {
  color: red;
  font-weight: bold;
}

/* img {
  width: 100%;
  height: auto;
  display: block;
} */

/* 1200px以下は1列に */
/* @media (max-width: 1200px) {
  .price .box3 .box-left img {
    width: 100%;
    height: auto;
    display: block;
  }
} */

/* 1000px以下は1列に */
@media (max-width: 1000px) {

  .box {
    flex-direction: column;
    /* 縦並びに変更！ */
  }

  section .box .box-right h2 {
    font-size: 24px;
  }

  section .box .box-right p {
    margin-top: 30px;
    font-size: 18px;
    line-height: 22px;
  }

  section .box3 h6 {
    font-size: 24px;
    line-height: 36px;
  }

  section h3 {
    width: 80%;
    margin-right: auto;
    margin-left: auto;
  }

  footer .box {
    gap: 4em;
    margin-top: 3em;
    padding-bottom: 3em;
  }
}

/* 768px以下は1列に */
@media (max-width: 768px) {
  header p {
    font-size: 20px;
  }

  .price h2 {
    font-size: 26px;
    padding-bottom: 10px;
    margin-bottom: 30px;
  }

  .price2 h2 {
    font-size: 26px;
    padding-bottom: 10px;
    margin-bottom: 30px;
  }

  section .box .box-right h2 {
    font-size: 20px;
  }

  section .box .box-right p {
    margin-top: 15px;
    font-size: 16px;
    line-height: 20px;
  }

  .cleaning-section {
    padding: 0px 20px;
  }

  .cleaning-section h3 {
    font-size: 22px;
    line-height: 26px;
    margin-bottom: 10px;
  }

  .after h3 {
    font-size: 24px;
    line-height: 26px;
    margin-bottom: 10px;
  }

  .box img {
    width: 100%;
    height: auto;
    display: block;
  }

  .box2 {
    flex-direction: column;
    /* 縦並びに変更！ */
  }

  .box3 {
    flex-direction: column;
    /* 縦並びに変更！ */
  }

  section .box3 .box-left img {
    width: 80%;
  }

  .onegai h5 {
    padding-top: 30px;
    font-size: 26px;
  }

  .onegai ul {
    padding-bottom: 40px;
    font-size: 16px;
    line-height: 20px;
  }

  footer p {
    font-size: 22px;
  }

  footer {
    width: 100%;
    height: 350px;
  }

  footer .box {
    gap: 2em;
    margin-top: 2em;
    padding-bottom: 2em;
  }

  footer .box img {
    width: 100px;
    height: 100px;
  }
}

/* 600px以下 */
@media (max-width: 600px) {
  .black .box2 .box-right .big-text {
    font-size: 19px;
    line-height: 24px;
  }

  section .box3 .small-text {
    font-size: 16px;
    line-height: 20px;
  }

  section .box3 h6 {
    font-size: 20px;
    line-height: 24px;
  }

  section .box-img {
    gap: 0em;
  }

  .price2 p {
    font-size: 16px;
  }

  .price .box3 .box-left img {
    width: 70%;
  }

  section .box3 .box-left img {
    width: 50%;
  }

  .onegai ul {
    width: 80%;
    margin-left: auto;
    margin-right: auto;
    padding-bottom: 40px;
    font-size: 16px;
    line-height: 20px;
  }

  .onegai ul li {
    padding-bottom: 10px;
  }
}

/* 料金表 */
.price .sentakuki,
.eakonn {
  width: 90%;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.price .price-title {
  font-size: 20px;
  color: #545454;
  font-weight: bold;
  margin-bottom: 0.5em;
  width: 90%;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.price table {
  width: 90%;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  border-collapse: collapse;
  margin-bottom: 0.5em;
}

.price table thead tr th {
  font-size: 16px;
  color: #fff;
  font-weight: bold;
  text-align: center;
  background-color: #888984;
  padding: 0.5em 3em;
}

.price table tbody tr td {
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  background-color: #fff;
  padding: 0.5em;
}

.price table tbody tr td .color-red {
  font-size: 20px;
  color: red;
}

.price .p-right {
  text-align: right;
  font-size: 14px;
  line-height: 20px;
}

.color-red-small {
  font-size: 16px;
  color: red;
}

.price ul {
  width: 90%;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  border-collapse: collapse;
  padding-top: 1em;
  padding-bottom: 3em;
  font-weight: bold;
  list-style: none;
  /* デフォルトの点を消す */
  padding-left: 0;
  /* 左余白リセット */
}

.price ul li {
  font-size: 14px;
  line-height: 18px;
  padding-top: 0.1em;
  padding-bottom: 0.2em;
  font-weight: 100;
  position: relative;
  padding-left: 0.7em;
  /* 本文の開始位置 */
  text-indent: -0.2em;
  /* 点と文字の距離を微調整 */
}

.price ul li::before {
  content: "•";
  /* 点マーカー */
  position: absolute;
  left: 0;
  color: #545454;
  /* グレー基調に合わせる */
  font-size: 1em;
  line-height: 1.2;
}

.price .p-right {
  width: 90%;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
}

.price table th,
.price table td {
  white-space: nowrap;
  /* ← 自動改行を防ぐ */
}

.price table tbody tr td {
  min-height: 60px;
  /* ← 最低でもこの高さを確保 */
  vertical-align: middle;
}

.set {
  width: 90%;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 60px;
}

.set img {
  width: 100%;
}

.set h2 {
  font-size: 22px;
  width: fit-content;
  padding-bottom: 10px;
  border-bottom: 2px solid #000;
  padding-top: 30px;
  margin-top: 20px;
  margin-bottom: 30px;
}

.set p {
  margin-top: 20px;
  font-size: 16px;
  line-height: 22px;
  font-weight: bold;
}

.set .small {
  font-size: 14px;
  line-height: 20px;
  font-weight: 400;
}