/*-------------------------------------
FV
-------------------------------------*/
#fv {
  position: relative;
  padding: min(calc(200 * var(--vw)), 200px) 0 min(calc(20 * var(--vw)), 20px);
  margin-bottom: min(calc(125 * var(--vw)), 125px);
}
#fv .copy-box {
  position: relative;
  max-width: var(--max-content-width);
  padding-left: min(calc(100 * var(--vw)), 100px);
  margin: 0 auto min(calc(20 * var(--vw)), 20px);
  z-index: 5;
}
#fv .copy-box p {
  /* font-size: min(5vw, 30px); */
  font-size: min(calc(50 * var(--vw)), 50px);
  font-weight: bold;
  width: fit-content;
}
#fv .copy-box .line1 {
  margin-bottom: min(2vw, 10px);
}
#fv .copy-box span {
  display: inline-block;
}
#fv .copy-box span.bg-black,
#fv .copy-box span.bg-red {
  color: #fff;
  border-radius: min(1.4vw, 7px);
  padding: min(0.5vw, 2.5px) min(3vw, 15px) 0;
  margin: 0 min(1vw, 5px);
}
#fv .copy-box span.bg-black {
  background-color: #000;
}
#fv .copy-box span.bg-red {
  background-color: #ec1c1c;
  margin-left: 0;
}
#fv .copy-box .line2 {
  padding: min(calc(30 * var(--vw)), 30px) min(calc(255 * var(--vw)), 255px)
    min(calc(25 * var(--vw)), 25px) min(calc(20 * var(--vw)), 20px);

  line-height: 1.2;
  background-image: url("../images/top/bg-copy.webp");
  background-position: center;
  background-size: contain;
}
#fv .copy-box span.font-large {
  /* font-size: 2.5em; */
  font-size: 2.25em;
  letter-spacing: -0.05em;
  margin-right: min(2vw, 10px);
}
#fv .copy-box .line3 {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
}
#fv .copy-box .line3 p span {
  line-height: 1.2;
  padding: 0 min(2vw, 5px);
  /* 
    transparent 30%: 上から30%は透明
    #ffec6e 30%: 下から70%（100%-30%）を黄色にする
  */
  background: linear-gradient(transparent 70%, rgb(236 28 28 / 80%) 70%);
  margin-bottom: min(1vw, 5px);
}
#fv .copy-box .line3 p span.padding-right {
  padding-right: 0;
}
#fv .copy-box span.color-red {
  color: #ec1c1c;
  font-size: 1.5em;
  line-height: 1.3;
  margin-right: min(1vw, 5px);
}
#fv .img-box {
  position: relative;
  width: 70%;
  aspect-ratio: 2/1.15;
  margin-left: auto;
  z-index: 10;
  background-color: #fff;
}
#fv .img-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: min(calc(3 * var(--vw)), 3px) solid #000;
  border-right: none;
  border-radius: min(calc(100 * var(--vw)), 100px) 0 0
    min(calc(100 * var(--vw)), 100px);
}
/* 装飾画像用 */
#fv .bg-img-box {
  position: absolute;
  z-index: 1;
}
#fv .bg-img-box.top {
  width: min(calc(1250 * var(--vw)), 1250px);
  aspect-ratio: 2/1;
  top: min(calc(200 * var(--vw)), 200px);
  right: max(
    min(calc(20 * var(--vw)), 20px),
    (100vw - var(--max-content-width)) / 2 + min(calc(20 * var(--vw)), 20px)
  );
}
#fv .bg-img-box.bottom {
  width: min(calc(460 * var(--vw)), 460px);
  aspect-ratio: 1;
  bottom: min(calc(20 * var(--vw)), 20px);
  left: max(0px, (100vw - var(--max-content-width)) / 2);
  margin-left: min(calc(100 * var(--vw)), 100px);
  z-index: 15;
}
#fv .bg-img-box img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
#fv .bg-img-box.top img {
  object-position: right top;
}
#fv .bg-img-box.bottom img {
  object-position: left bottom;
}
@media (max-width: 767px) {
  #fv {
    padding: min(calc(125 * var(--sp-vw)), 125px) 0
      min(calc(20 * var(--sp-vw)), 20px);
  }
  #fv .copy-box {
    width: 95%;
    padding-left: 0;
    margin: 0 0 min(4vw, 20px) auto;
  }
  #fv .copy-box p {
    font-size: min(calc(30 * var(--sp-vw)), 30px);
  }
  #fv .copy-box .line2 {
    padding: min(calc(20 * var(--sp-vw)), 20px)
      min(calc(160 * var(--sp-vw)), 160px) min(calc(15 * var(--sp-vw)), 15px) 0;
  }
  #fv .copy-box .line2 .font-large {
    padding-left: min(calc(15 * var(--sp-vw)), 15px);
  }
  #fv .copy-box .line3 {
    display: block;
  }
  #fv .img-box {
    width: 95%;
    aspect-ratio: 2/1.5;
    margin-right: 0;
    border-right: none;
    border-radius: min(3vw, 15px) 0 0 min(3vw, 15px);
  }
  #fv .bg-img-box.top {
    top: inherit;
    width: 25%;
    aspect-ratio: 1/1.1;
    top: min(calc(175 * var(--sp-vw)), 175px);
  }
  #fv .bg-img-box.bottom {
    width: 20%;
    left: inherit;
    bottom: inherit;
    top: min(calc(375 * var(--sp-vw)), 375px);
    right: min(calc(125 * var(--sp-vw)), 125px);
  }
  #fv .bg-img-box.top img,
  #fv .bg-img-box.bottom img {
    object-fit: cover;
  }
}
/*-------------------------------------
共通スタイル
-------------------------------------*/
section {
  padding: min(calc(125 * var(--vw)), 125px) min(calc(20 * var(--vw)), 20px)
    min(calc(150 * var(--vw)), 150px);
}
.section__inner {
  width: min(calc(1700 * var(--vw)), 1700px);
  margin: 0 auto;
}
section .title-box {
  text-align: center;
  margin-bottom: min(calc(100 * var(--vw)), 100px);
}
section .title-box h2 {
  font-size: min(calc(70 * var(--vw)), 70px);
  line-height: 1.3;
  margin-bottom: min(1vw, 5px);
}
section .title-box p {
  width: fit-content;
  font-size: min(calc(30 * var(--vw)), 30px);
  padding: 0 min(calc(15 * var(--vw)), 15px);
  border-bottom: 1px solid #000;
  margin: 0 auto;
}
section#about,
section#company {
  background-color: #f5f5f5;
}
@media (max-width: 767px) {
  section {
    padding: min(calc(90 * var(--sp-vw)), 90px)
      min(calc(20 * var(--sp-vw)), 20px);
  }
  .section__inner {
    width: min(calc(700 * var(--sp-vw)), 700px);
    margin: 0 auto;
  }
  section .title-box {
    margin-bottom: min(calc(75 * var(--sp-vw)), 75px);
  }
  section .title-box h2 {
    font-size: min(9vw, 45px);
  }
  section .title-box p {
    font-size: min(4vw, 20px);
    padding: 0 min(calc(15 * var(--sp-vw)), 15px);
  }
}
/*-------------------------------------
ABOUT 
-------------------------------------*/
#about .about__text {
  /* font-size: min(calc(30 * var(--vw)), 30px); */
  text-align: center;
  line-height: 2.5;
}
#about .about__text .highlight {
  font-weight: bold;
  padding: 0 min(2vw, 5px) min(0.5vw, 2.5px);
  /* 
    transparent 30%: 上から30%は透明
    #ffec6e 30%: 下から70%（100%-30%）を黄色にする
  */
  background: linear-gradient(transparent 50%, #ffb5b5 50%);
}
#about .about__text .highlight.text-end {
  padding-right: 0;
}
/*-------------------------------------
SERVICE
-------------------------------------*/
#service .service__content {
  padding: 0 min(calc(15 * var(--vw)), 15px) min(calc(50 * var(--vw)), 50px);
  border-bottom: 1px solid #ec1c1c;
  margin-bottom: min(calc(50 * var(--vw)), 50px);
}
#service .service__content:last-child {
  padding-bottom: 0;
  border-bottom: none;
}
#service .service__content h3 {
  font-size: min(calc(50 * var(--vw)), 50px);
  margin-bottom: min(calc(50 * var(--vw)), 50px);
}
#service .service__content .flex-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 2.5%;
}
#service .service__content .flex-container.reverse {
  flex-direction: row-reverse;
}
#service .service__content .flex-container .service__img-box {
  width: 35%;
  aspect-ratio: 1.75/1;
}
#service .service__content .flex-container .service__img-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
#service .service__content .flex-container .service__text {
  width: 62.5%;
}
@media (max-width: 767px) {
  #service .section__inner {
    width: min(calc(650 * var(--sp-vw)), 650px);
    margin: 0 auto;
  }
  #service .service__content {
    padding: 0 0 min(calc(30 * var(--sp-vw)), 30px);
    margin-bottom: min(calc(50 * var(--sp-vw)), 30px);
  }
  #service .service__content h3 {
    font-size: min(5.5vw, 30px);
    margin-bottom: min(calc(20 * var(--vw)), 20px);
  }
  #service .service__content .flex-container {
    display: block;
  }
  #service .service__content .flex-container .service__img-box,
  #service .service__content .flex-container .service__text {
    width: 100%;
  }
  #service .service__content .flex-container .service__img-box {
    margin-bottom: min(calc(15 * var(--sp-vw)), 15px);
  }
}
/*-------------------------------------
COMPANY
-------------------------------------*/
#company .section__inner {
  margin-bottom: min(7vw, 35px);
}
#company table {
  width: 75%;
  margin: 0 auto;
}
#company table tr {
  display: block;
  padding: min(calc(20 * var(--vw)), 20px) min(calc(10 * var(--vw)), 10px);
  border-bottom: 1px solid #959595;
}
#company table tr td {
  display: inline-block;
}
#company table tr td.label {
  width: 40%;
}
#company table tr td.content {
  width: calc(60% - min(calc(20 * var(--vw)), 20px));
}
@media (max-width: 767px) {
  #company table {
    width: min(calc(650 * var(--sp-vw)), 650px);
    margin: 0 auto;
  }
  #company table tr {
    padding: min(calc(30 * var(--sp-vw)), 30px)
      min(calc(30 * var(--sp-vw)), 30px) min(calc(10 * var(--sp-vw)), 10px);
  }
  #company table tr td.content {
    width: calc(60% - min(calc(20 * var(--sp-vw)), 20px));
  }
}
/*-------------------------------------
CONTACT
-------------------------------------*/
section#contact {
  width: 100%;
  max-width: none;
  color: #fff;
  text-align: center;
  background-image: url("../images/top/bg-contact.webp");
  background-size: cover;
  background-position: center;
  padding: 0;
  margin-bottom: 0;
}
#contact .bg-filter {
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, #00000088, #00000088, #00000088, #000);
  padding: min(calc(100 * var(--vw)), 100px) min(4vw, 20px)
    min(calc(200 * var(--vw)), 200px);
}
section#contact .title-box {
  margin-bottom: min(calc(100 * var(--vw)), 100px);
}
section#contact .title-box p {
  border-bottom: 1px solid #fff;
}
#contact .contact__text {
  margin-bottom: min(calc(40 * var(--vw)), 40px);
}
#contact .mail-link {
  color: #fff;
  font-size: min(calc(50 * var(--vw)), 50px);
  vertical-align: text-bottom;
}
#contact .mail-link::before {
  content: "";
  display: inline-block;
  width: min(calc(75 * var(--vw)), 75px);
  aspect-ratio: 1.5/1;
  background-image: url("../images/top/icon-mail.png");
  background-size: contain;
  background-position: center;
  margin-right: min(2vw, 10px);
}
@media (max-width: 767px) {
  #contact .bg-filter {
    padding: min(calc(90 * var(--sp-vw)), 90px) min(4vw, 20px)
      min(calc(100 * var(--sp-vw)), 100px);
  }
  section#contact .title-box {
    margin-bottom: min(calc(90 * var(--sp-vw)), 90px);
  }
  #contact .contact__text {
    margin-bottom: min(6vw, 30px);
  }
  #contact .mail-link {
    font-size: min(6vw, 30px);
  }
  #contact .mail-link::before {
    width: min(11vw, 55px);
    margin-right: min(2vw, 10px);
  }
}
