.mv-renovation {
  position: relative;
  width: 100%;
  height: 694px;
  /* overflow: hidden; */
}

.mv-bg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.mv-overlay {
  position: absolute;
  top: 50%;
  right: 0%;
  transform: translateY(-50%);
  color: #fff;
  max-width: 460px;
  z-index: 2;
}

.mv-sub {
  font-size: 1.45em;
  letter-spacing: 0.05em;
  font-weight: 700;
  position: relative;
  top: 10px;
}

.mv-en {
  font-size: 1.75em;
  letter-spacing: 0.08em;
  margin-bottom: 16px;
  font-weight: 700;
  position: relative;
  display: inline-block;
  padding-bottom: 10px;
 background-image: linear-gradient(to right,#fff 0%,#fff 30%,#999 30%,#999 100%),linear-gradient(to right,#fff 0%,#fff 30%,#999 30%,#999 100%);
  background-size:
    100% 1px,
    100% 1px;
  background-position:
    0 100%,
    0 calc(100% - 4px);
  background-repeat: no-repeat;
  /* text-align:right; */
}

.mv-title {
  position: relative;
  left: -15%;
  font-size: 3.75em;
  font-weight: 700;
  line-height: 1.3;
  margin: 24px 0px;
  font-style: italic;
  letter-spacing: 0.08em;
}

.mv-title span {
  letter-spacing: -20px;
  position: relative;
  left: -3%;
}

.mv-btn {
  position: relative;
  left: -24%;
}

.mv-btn img {
  display: block;
  /* width: 260px; */
  max-width: 100%;
  margin-bottom: 24px;
}

.mv-points.pc_only {
  position: absolute;
  display: flex;
  z-index: 999;
  top: 70%;
  right: 0%;
}

.mv-points.pc_only a {
  width: 100%;
  height: auto;
}

.mv-points.pc_only a:nth-child(1) {
  position: relative;
  right: -14%;
}

.mv-points.pc_only a:nth-child(2) {
  position: relative;
  right: -7%;
}

.reform_contentsWrap {
  background: url(../images/service/painting/bg-contents.png);
  background-position: left top;
  background-repeat: no-repeat;
  overflow: hidden;
}

.promise {
  /* margin-top:70px; */
  margin-bottom: 110px;
}

.promise-head {
  width: 100%;
  padding: 100px 20px 110px;
}

.promise-head .lead {
  font-size: 2.65em;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
  font-style: italic;
}

.promise-head .lead .bigtext {
  font-size: 1.22em;
}

.promise-head .lead .yl_line {
  position: relative;
  display: inline-block;
  z-index: 1;
}

.promise-head .lead .yl_line::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0.05em;
  width: 100%;
  height: 0.5em;
  background: #f8e298;
  z-index: -1;
  transform: skewX(-8deg);
}

.promise-band {
  position: relative;
  background-image: url(../images/service/painting/bg_sec01.png);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
  padding: 50px 20px;
  text-align: center;
  height: 324px;
}

.promise-band .sub {
  position: relative;
  z-index: 2;
  font-size: 2.05em;
  letter-spacing: 0.08em;
  text-align: center;
  font-weight: 700;
}

.promise-band .sub .small {
  font-size: 0.85em;
}

.promise-band .sub .bigtxt {
  font-size: 1.78em;
}

.promise-band .bg-word {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 96px;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.08);
  letter-spacing: 0.1em;
  white-space: nowrap;
}

.promise-cards {
  display: flex;
  justify-content: center;
  gap: 32px;
  margin-top: -140px;
  padding: 0 20px;
}

.promise-cards .card {
  width: 433px;
  z-index: 2;
}

.promise-cards img {
  width: 100%;
  display: block;
}

.promise-cards p {
  padding-top: 1em;
  font-size: 1.35em;
  line-height: 1.6;
  letter-spacing: 0.09em;
  font-weight: 700;
}

.promise-cards p .redtxt {
  color: #e60012;
}

.promise-detail-head {
  position: relative;
  background-image: url(../images/service/painting/bg-h2.png);
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
  text-align: center;
  font-size: 3.695rem;
  font-weight: 700;
  padding: 50px 20px;
  overflow: hidden;
  letter-spacing: 0.08rem;
}
.promise-detail-head span {
  font-size: 2.956rem;
}
.promise-detail-head::before {
  content: "POINT INFORMATION";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 7.6rem;
  font-weight: 700;
  font-style: italic;
  color: rgb(255 255 255 / 15%);
  white-space: nowrap;
  pointer-events: none;
}

.service_planswrap .inner {
  margin: 0 auto;
  max-width: 1180px;
}

.service_planswrap.Service01 {
  margin-bottom: 110px;
}

.service_planswrap .promise-detail-head::before {
  content: "SERVICE PLAN";
}

.promise-detail-head {
  z-index: 1;
}

.promise-detail-body {
  display: block;
  margin-top: 70px;
  margin-bottom: 110px;
}

.promise-row {
  width: 73%;
  margin: 0 auto;
  display: flex;
  align-items: flex-start;
  gap: 44px;
  margin-bottom: 27px;
  align-items: center;
}

/* 左：見出し画像 */
.promise-left {
  flex: 0 0 294px;
}

.promise-left img {
  width: 100%;
  height: auto;
  display: block;
}

/* 右：テキスト */
.promise-right {
  flex: 1;
}

.promise-item + .promise-item {
  margin-top: 24px;
}

.promise-item h4 {
  position: relative;
  padding-left: 18px;
  font-size: 1.75em;
  font-weight: 700;
  margin-bottom: 20px;
  font-style: italic;
  letter-spacing: 0.08em;
  line-height: 1.5em;
}

.promise-item h4::before {
  content: "";
  position: absolute;
  left: 0;
  top: 15px;
  width: 13px;
  height: 13px;
  background: #e60012;
}

.promise-item h4 span {
  color: #e60012;
}

.promise-item p {
  font-size: 1.13em;
  line-height: 1.5;
  margin-left: 18px;
}

.reform .index-sec2__header {
  margin-top: 70px;
  justify-content: flex-start;
  gap: 35px;
}

.reform .index-sec2__num {
  color: #000;
}

.reform .index-sec2 h2 {
  color: #000;
  width: 70%;
  font-size: 4.6rem;
  font-style: italic;
}

.reform .index-sec2 h2 span {
  color: #9f9f9f;
  padding-left: 1em;
  font-size: 2.4rem;
  font-style: normal;
  position: relative;
  top: -10px;
}

.reform .index-sec2 h2::before,
.reform .index-sec2 h2::after {
  left: 0;
}

.reform .index-sec2 h2::after {
  background-color: #000;
}

.plan-box {
  margin-bottom: 60px;
}

/* 上部帯 */
.plan-head {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #ddd;
  height: 70px;
  font-weight: 700;
}

.plan-label {
  background: #000;
  color: #fff;
  padding: 0px 0.8em;
  font-size: 2.1rem;
  letter-spacing: 0.08em;
  line-height: 3rem;
}

.plan-title {
  font-size: 2.8rem;
  font-style: italic;
  letter-spacing: 0.08em;
}

.plan-note {
  position: relative;
  font-size: 2.2rem;
  color: #464646;
  letter-spacing: 0.08em;
  padding-left: 40px;
  /* ← 線の分あける */
}

.plan-note::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 23px;
  height: 1px;
  background-color: #686868;
  transform: translateY(-50%);
}

/* 説明文 */
.plan-lead {
  margin: 35px 0 43px;
  font-size: 1.8rem;
  line-height: 1.7;
  padding-left: 1em;
}

/* 本体 */
.plan-body {
  display: flex;
  gap: 32px;
  align-items: stretch;
}

/* 左画像 */
.plan-image {
  flex: 0 0 45%;
}

.plan-image img {
  width: 100%;
  display: block;
}

/* 右内容 */
.plan-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  width: 100%;
}

/* 仕様リスト */
.plan-spec {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
}

.plan-spec li {
  position: relative;
  padding-left: 3rem;
  margin-bottom: 10px;
  font-size: 1.8rem;
}

.plan-spec li span.ttl {
  margin-right: 1em;
}

.plan-spec li:not(:first-child) span.ttl {
  display: inline-block;
  width: 4.5em;
  text-align: justify;
  text-align-last: justify;
  margin-right: 2.5em;
}

.plan-spec li span.bold {
  font-weight: bold;
  font-size: 1.9rem;
}

.plan-spec li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 13px;
  height: 13px;
  background: #000;
}

.plan-spec .red {
  color: #e60012;
}

/* 注記 */
.plan-caption {
  border: 1px solid #000000;
  padding: 10px;
  font-size: 2rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 20px;
}

.plan-price {
  font-size: 4.343rem;
  font-weight: 700;
  font-style: italic;
  color: #e60012;
  display: flex;
  align-items: baseline;
  justify-content: center;
  line-height: 4.5rem;
  margin-top: 3.5rem;
}
.cover-plans.mb_55 {
  margin-bottom: 5.5rem;
}
.plan-price strong {
  font-size: 7rem;
  color: #e60012;
  margin: 0 4px;
}

.plan-price span {
  font-size: 4.343rem;
}

.cover-head {
  position: relative;
  width: 100%;
  height: 70px;
  background: #000;
  overflow: hidden;
  color: #fff;
  font-size: 3.2rem;
  text-align: center;
  font-weight: 700;
  letter-spacing: 0.5rem;
  font-style: italic;
  line-height: 70px;
}

.cover-head > * {
  position: relative;
  z-index: 2;
}

.cover-head::after {
  content: "";
  position: absolute;
  top: 0;
  right: -66px;
  width: 80px;
  height: 100%;
  background: #323232;
  transform: skewX(-20deg);
  z-index: 1;
}

.cover-head::before {
  content: "";
  position: absolute;
  top: 0;
  left: -65px;
  width: 80px;
  height: 100%;
  background: #323232;
  transform: skewX(-20deg);
  z-index: 1;
}

.cover-lead {
  font-size: 1.8rem;
  text-align: center;
  margin-top: 40px;
  margin-bottom: 32px;
}

.Service02 .plan-spec {
  display: block;
  width: fit-content;
  margin: 0 auto 40px;
  text-align: left;
}

.Service02 .plan-spec li {
  display: block;
  /* ← 縦並び */
  margin-bottom: 0;
  line-height: 4rem;
}

.Service02 .plan-spec li:before {
  display: none;
}

.Service02 .plan-spec li > span {
  display: inline-flex;
  /* ← ここが肝 */
  align-items: center;
}

.Service02 .plan-spec li > span::before {
  content: "";
  width: 13px;
  height: 13px;
  background: #000;
  margin-right: 2rem;
  flex-shrink: 0;
}

.Service02 .plan-spec li span.bold {
  font-size: 2.805rem;
  font-style: italic;
}

.reform .flexbox {
  display: flex;
  align-content: center;
  align-items: center;
  margin-bottom: 26px;
  gap: 15px;
}

.reform .service_planswrap img {
  width: auto;
  /* height: 100%; */
}

.Service02 .plan-image {
  flex: 0 0 48%;
  max-width: 563px;
}

.Service02 .plan-caption {
  margin-bottom: 46px;
}

.cover-plans {
  display: flex;
  align-content: center;
  align-items: center;
  gap: 50px;
}

.cover-plan {
  width: 50%;
}

.Service02 .plan-head {
  height: 65px;
}

.plan-warranty {
  margin-left: auto;
  margin-right: 1em;
  background-color: #fff;
  padding: 0.2em 0.5em 0.2em;
  letter-spacing: 0.08em;
}

.plan-material {
  font-size: 2.182rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin: 2rem 0rem 1rem 1rem;
}

.sp-float-btn {
  display: none;
}
@media screen and (max-width: 1680px) {
  .mv-points.pc_only {
    justify-content: flex-end;
  }

  .mv-points.pc_only a {
    width: 30%;
  }

  .mv-title {
    left: -0%;
  }

  .mv-btn {
    position: relative;
    left: -10%;
  }

  .mv-sub {
    text-align: right;
    padding-right: 5%;
  }

  .mv-en {
    left: 11%;
  }
  .plan-title {
    font-size: 2.5rem;
  }
  .plan-price strong {
    font-size: 5.5rem;
  }

  .plan-price,
  .plan-price span {
    font-size: 3rem;
  }
}
.tb_br {
  display: none;
}

@media screen and (max-width: 1200px) {
  .tb_br {
    display: block;
  }

  .promise-cards,
  .promise-row {
    flex-direction: column;
    align-items: center;
  }

  .promise-row {
    width: 90%;
    margin-bottom: 60px;
  }

  .promise-left {
    width: 80%;
    flex: 1;
  }
  .promise-head {
    padding: 50px 20px 50px;
  }
  .promise-band .sub {
    line-height: 1.3em;
  }

  .promise-cards {
    /* padding-top:20px; */
  }
  .promise-cards .card {
    width: 80%;
  }
  .promise-cards .card br {
    display: none;
  }
  .promise-detail-head {
    padding: 1em;
    line-height: 1.3em;
    background-size: cover;
  }
  .plan-head {
    flex-direction: column;
    align-items: center;
    height: auto;
    line-height: 3rem;
    padding-bottom: 1rem;
  }

  .plan-note {
    padding-left: 0;
  }

  .plan-note::before {
    display: none;
  }

  .plan-lead {
    padding: 0em 1em;
  }

  .reform .flexbox {
    flex-direction: column;
  }

  .Service02 .plan-head {
    height: auto;
  }
  .plan-material {
    text-align: center;
    font-size: 1.8rem;
  }
  .plan-warranty {
    margin: auto;
  }
  .plan-price,
  .plan-price span {
    font-size: 3rem;
    margin-top: 1rem;
  }
  .plan-price strong {
    font-size: 5rem;
  }
  .cover-plans.mb_55 {
    margin-bottom: 4rem;
  }
}

@media screen and (max-width: 900px) {
  .plan-body,
  .cover-plans {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 100%;
  }
  .plan-spec,
  .cover-plan {
    width: 100%;
    padding: 0em 1em;
  }
  .plan-caption {
    margin: 0em 1em;
  }
  .plan-material {
    font-size: 2.182rem;
  }

  .plan-price,
  .plan-price span {
    font-size: 4.343rem;
    margin-top: 2.5rem;
  }
  .plan-price strong {
    font-size: 7rem;
  }
}
@media only screen and (max-width: 767px) {
  .mv-renovation {
    height: 420px;
    overflow: hidden;
  }
  .mv-overlay {
    top: 30%;
  }
  .mv-bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 20% center;

    display: block;
  }

  .mv-title {
    font-size: 28px;
  }
  .mv-sub {
    text-align: left;
    padding-left: 5%;
    line-height: 3rem;
  }
  .mv-en {
    left: 5%;
    line-height: 3rem;
    margin-top: 5%;
  }
  .mv-title {
    left: 5%;
    margin: 0 0 5%;
  }
  .mv-btn {
    position: static;
    margin-top: 5%;
    margin-right: 5%;
  }
  .sp_btn_wrap {
    background-image: url(../images/service/painting/sp-bg.png);
    background-size: cover;
    padding: 5% 5% 10%;
  }
  .mv-points.pc_only {
    display: none;
  }
  .mv-points.sp_only {
    display: flex;
    width: 100%;
    flex-direction: column;
    gap: 20px;
    justify-content: center;
    position: relative;
  }

  .mv-points img {
    width: 100%;
  }
  .promise-head {
    padding: 50px 20px 50px;
  }
  .promise-head .lead {
    font-size: 2.6rem;
  }

  .promise-band {
    position: relative;
    background-image: url(../images/service/painting/bg_sec01.png);
    background-size: 250%;
    background-position: calc(50% - 10px) top;
    background-repeat: no-repeat;
    color: #fff;
    padding: 30px 20px 50px;
    text-align: center;
    height: auto;
  }
  .promise-band .sub {
    font-size: 2.3rem;
    line-height:3.5rem;
  }
  .promise-cards {
    padding-top: 160px;
  }
  .promise,
  .promise-detail-body,
  .service_planswrap.Service01,
  .plan-box {
    margin-bottom: 50px;
  }
  .plan-box.last {
    margin-bottom: 0px;
  }
  .promise-detail-head {
    font-size: 2.3rem;
    padding: 30px 0px;
  }
  .promise-detail-head span {
    font-size: 2rem;
  }
  .promise-detail-head::before {
    content: "POINT\AINFORMATION";
    white-space: pre;
    line-height: 5rem;

    font-size: 4rem;
  }
  .promise-detail-body {
    margin-top: 50px;
  }
  .reform .index-sec2__header {
    margin-top: 50px;
    justify-content: flex-start;
    gap: 5px;
  }
  .plan-lead {
    margin-bottom: 30px;
  }

  .plan-spec li {
    padding-left: 2rem;
  }
  .plan-spec li span.bold {
    display: block;
  }
  .plan-spec li:not(:first-child) span.ttl {
    text-align-last: left;
  }
  .cover-lead {
    margin: 2rem 0rem;
  }
  .Service02 .plan-spec li span.bold {
    font-size: 2.3rem;
  }

  .Service02 .plan-spec li {
    padding-left: 0rem;
  }
  .Service02 .plan-spec li > span::before {
    margin-right: 1rem;
  }
  .reform .flexbox > img {
    transform: rotate(90deg);
  }
  .cover-plans {
    gap: 30px;
  }
  .reform .index-sec2 h2 {
    font-size: 3.6rem;
    margin-bottom: 0px;
  }

  .reform .index-sec2 h2 span {
    padding-left: 0em;
    line-height: 3rem;
  }

  .reform .index-sec2 h2::before,
  .reform .index-sec2 h2::after {
    left: 0;
  }

  .reform .index-sec2 h2::after {
    background-color: #000;
  }

  .promise-row {
    flex-direction: column;
    gap: 24px;
  }

  .promise-left {
    /* max-width: 200px; */
  }

  .plan-price,
  .plan-price span {
    font-size: 2rem;
    margin-top: 2rem;
  }
  .plan-price strong {
    font-size: 4rem;
  }
  .cover-plans.mb_55 {
    margin-bottom: 4rem;
  }
  .plan-image {
    flex: none;
  }
  .Service02 .plan-spec li > span {
    display: block;
  }
  .Service02 .plan-spec li > span::before {
    display: inline-block;
  }

  .sp-float-btn {
    display: block;
  }
  .sp-float-btn {
    position: fixed;
    left: 50%;
    bottom: -10px;
    transform: translateX(-50%);
    z-index: 999;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
  }

  .sp-float-btn.is-show {
    opacity: 1;
    pointer-events: auto;
    width: 100%;
  }
}

/* 太陽光発電 */

.solar-power .mv-title {
  left: -9%;
}

.solar-power .mv-points.pc_only {
  top: 75%;
}

.solar-power .promise-head {
  padding-top: 110px;
}

.solar-power .promise-band {
  background-image: url(../images/service/solar-power/bg_sec01.png);
}
.solar-power .Service01 .index-sec2 .plan-box:nth-of-type(1) {
  margin-top: 70px;
}
.solar-power .plan-spec li {
  display: flex;
}
.solar-power .plan-spec li span.ttl,
.solar-power .plan-spec li:not(:first-child) span.ttl {
  display: inline-block;
  width: 20%;
  text-align: justify;
  text-align-last: justify;
  margin-right: 2.5em;
}

.solar-power .plan-spec {
  margin: 0;
}
.solar-power .plan-content {
  justify-content: space-between;
}

@media screen and (max-width: 1680px) {
  .solar-power .mv-title {
    left: 5%;
  }
}
@media screen and (max-width: 1200px) {
  .solar-power .plan-spec li span.ttl,
  .solar-power .plan-spec li:not(:first-child) span.ttl {
    width: 30%;
  }
}

@media screen and (max-width: 900px) {
  .solar-power .plan-content {
    gap: 30px;
  }
  .solar-power .plan-caption {
    font-size: 1.8rem;
  }
}
@media screen and (max-width: 767px) {
  .solar-power .mv-title,
  .solar-power .mv-title span {
    color: #fff;
    text-shadow:
      0 2px 0 #0a2a5e,
      0 0px 20px rgba(10, 42, 94, 0.9),
      0 0px 20px rgba(10, 42, 94, 0.9);
  }
  .solar-power .mv-en,
  .solar-power .mv-sub {
    text-shadow:
      0 2px 0 #89b9d4,
      0 0px 20px rgb(56 155 211),
      0 0px 20px rgb(60 153 207);
  }
  .solar-power .promise-head {
    padding: 50px 20px 50px;
  }
  .solar-power .plan-spec li span.ttl,
  .solar-power .plan-spec li:not(:first-child) span.ttl {
    text-align-last: left;
    width: 38%;
    margin-right: 0;
  }
  .solar-power .plan-price,
  .solar-power .plan-price span {
    margin-top: 0rem;
  }
  .solar-power .plan-spec li:last-child {
    margin-bottom: 0;
  }
  .solar-power .plan-content {
    gap: 1.5rem;
  }
}
