/* CTA-005
---------------------------------------------*/
/* base
-----------------------*/
.cta-005 {
  background-color: #F5F5EF;
  padding: 50px 0 25px;
}
.cta-005 .container {
  width: 100%;
  max-width: calc(100vw * 900 / var(--lpw));
}
.cta-005 .cta-contents {
  max-width: calc(100vw * 900 / var(--lpw));
  background-color: #fff;
  border: 2px solid #E74E2B;
  border-radius: 0 0 10px 10px;
  padding: calc(100vw * 30 / var(--lpw)) calc(100vw * 45 / var(--lpw)) calc(100vw * 50 / var(--lpw));
}
.cta-005 .cta-body {
  width: 100%;
  padding-left: calc(100vw * 220 / var(--lpw));
}
.cta-005 .cta-body::before {
  content: '';
  width: calc(100vw * (200 / var(--lpw)));
  height: calc(100vw * (343 / var(--lpw)));
  display: inline-block;
  position: absolute;
  top: calc(100vw * -18 / var(--lpw));
  left: 0;
  background-repeat: no-repeat;
  background-position: bottom right;  /* 配置: 右下寄せ */
  background-size: contain;           /* 縦横比を維持してフィット */
  /* 1) フォールバック (image-set非対応ブラウザ用) */
  background-image: url("../../img/cta/ip/cta-200×343.png");

  /* 2) Safari用 (-webkit-) */
  background-image: -webkit-image-set(
    url("../../img/cta/ip/cta-200×343.webp") type("image/webp") 1x,
    url("../../img/cta/ip/cta-200×343.png")  type("image/png") 1x
  );

  /* 3) 標準仕様 */
  background-image: image-set(
    url("../../img/cta/ip/cta-200×343.webp") type("image/webp") 1x,
    url("../../img/cta/ip/cta-200×343.png")  type("image/png") 1x
  );
}
.cta-005.affiliate .cta-body::before {
  top: calc(100vw * 10 / var(--lpw));
}
@media only screen and (min-width: 1281px) {
  .cta-005 .container {
    max-width: 900px;
  }
  .cta-005 .cta-contents {
    max-width: 900px;
    padding: 30px 45px 50px;
  }
  .cta-005 .cta-body {
    padding-left: 220px;
  }
  .cta-005 .cta-body::before {
    width: 200px;
    height: 343px;
    top: -18px;
  }
  .cta-005.affiliate .cta-body::before {
    top: 10px;
  }  
}
@media only screen and (max-width: 768px){
  .cta-005 {
    padding: 130px 20px 45px;
  }
  .cta-005 .container {
    max-width: 375px;
    padding: 0;
    border-radius: 10px;
  }
  .cta-005 .container:before {
    content: "";
    width: 200px;
    height: 105px;
    position: absolute;
    top: -101px;
    left: calc(50% - 100px);
    background-repeat: no-repeat;
    background-position: bottom right;  /* 配置: 右下寄せ */
    background-size: contain;           /* 縦横比を維持してフィット */
    /* 1) フォールバック (image-set非対応ブラウザ用) */
    background-image: url("../../img/cta/ip/cta_sp.png");
  
    /* 2) Safari用 (-webkit-) */
    background-image: -webkit-image-set(
      url("../../img/cta/ip/cta_sp.webp") type("image/webp") 1x,
      url("../../img/cta/ip/cta_sp.png")  type("image/png") 1x
    );
  
    /* 3) 標準仕様 */
    background-image: image-set(
      url("../../img/cta/ip/cta_sp.webp") type("image/webp") 1x,
      url("../../img/cta/ip/cta_sp.png")  type("image/png") 1x
    );  
  }
  .cta-005 .cta-contents {
    max-width: 375px;
    padding: 10px 20px 27px;
    border: 3px solid #E74E2B;
  }
  .cta-005 .cta-body,
  .cta-005.affiliate .cta-body,
  .cta-005.webonly .cta-body {
    width: 100%;
    max-width: 375px;
    padding-left: 0;
  }
  .cta-005 .cta-body::before,
  .cta-005.webonly .cta-body::before {
    content: none;
  }
}
/* ip-hide base
-----------------------*/
@media only screen and (min-width: 769px) {
  .cta-005.ip-hide .cta-body {
    padding-left: 0;
  }
  .cta-005.ip-hide .cta-body::before {
    content: none;
  }
}
@media only screen and (max-width: 768px) {
  .cta-005.ip-hide {
    padding-top: 35px;
  }
  .cta-005.ip-hide .container::before {
    content: none;
  }
}

/* title
-----------------------*/
.cta-005 .cta-title {
  text-align: center;
  font-weight: 600;
}
.cta-005 .cta-title small {
  display: block;
  line-height: 1;
}
.cta-005 .cta-title p {
  font-size: clamp( 1px, calc(100vw * 20 / var(--lpw)), 20px );
  text-align: center;
  font-weight: 600;
  display: inline-block;
}
.cta-005 .cta-title p:before,
.cta-005 .cta-title p:after {
  position: absolute;
  top: calc(50% - calc(100vw * 12 / var(--lpw)));
  content: "";
  width: 2px;
  height: calc(100vw * 24 / var(--lpw));
  background: #333;
  border-radius: 5px;
  transform: rotate(-30deg);
}
.cta-005 .cta-title p:before {
  left: calc(100vw * (-13 / var(--lpw)));
}
.cta-005 .cta-title p:after {
  right: calc(100vw * (-13 / var(--lpw)));
  transform: rotate(30deg);
}
@media only screen and (min-width: 1281px) {
  .cta-005 .cta-title p:before,
  .cta-005 .cta-title p:after {
    top: calc(50% - 12px);
    width: 2px;
    height: 24px;
    border-radius: 5px;
  }
  .cta-005 .cta-title p:before {
    left: -13px;
  }
  .cta-005 .cta-title p:after {
    right: -13px;
  }
}
@media only screen and (max-width: 768px) {
  .cta-005 .cta-title {
    font-size: 25px;
  }
  .cta-005 .cta-title p {
    font-size: 16px;
  }
  .cta-005 .cta-title p:before,
  .cta-005 .cta-title p:after {
    top: calc(50% - 12px);
    width: 2px;
    height: 24px;
    border-radius: 5px;
  }
  .cta-005 .cta-title p:before {
    left: -13px;
  }
  .cta-005 .cta-title p:after {
    right: -13px;
  }
}
/* tel
-----------------------*/
.cta-005 .cta-tel {
  text-align: center;
}
.cta-005 .cta-tel-link {
  font-weight: 600;
  color: #2E9F21;
  line-height: 1;
}
.cta-005 .cta-tel-link .pc {
  background-image: url(../../img/cta/cta-005/icon-tel_green.svg);
  background-repeat: no-repeat;
  background-position: left;
  background-size: calc(100vw * 49 / var(--lpw));
  padding-left: calc(100vw * 55 / var(--lpw));
  font-weight: 700;
  vertical-align: middle;
}
.cta-005 .number {
  letter-spacing: 0.07px;
}
.cta-005 .cta-tel-text {
  display: block;
  font-family: ヒラギノ角ゴ Pro,Hiragino Kaku Gothic Pro,メイリオ,Meiryo,Osaka,ＭＳ Ｐゴシック,MS PGothic,sans-serif;
  font-size: clamp( 1px, calc(100vw * 20 / var(--lpw)), 20px );
  font-weight: 600;
  margin-top: calc(100vw * 15 / var(--lpw));
  color: #333;
}
.cta-005 .cta-tel-text small {
  color: #A52A2A;
  font-size: clamp( 1px, calc(100vw * 20 / var(--lpw)), 20px );
  font-weight: 600;
}
/* アフィリエイト用*/
.cta-005 .cta-tel-confirm.pc {
  margin-top: calc(100vw * 10 / var(--lpw));
}
.cta-005 .cta-tel-confirm a {
  color: #1A5ECB;
  font-size: clamp( 1px, calc(100vw * 14 / var(--lpw)), 14px );
  line-height: 1.0;
  text-decoration: underline;
}
.cta-005 .cta-tel-confirm p:after {
  content: "";
  display: inline-block;
  background: center/calc(100vw * (25 / var(--lpw))) url(../../01_kimono-ts-4.0_of/img/icon_link.svg) no-repeat;
  width: calc(100vw * (25 / var(--lpw)));
  height: calc(100vw * (25 / var(--lpw)));
  vertical-align: middle;
}
/* end アフィリエイト用*/
@media only screen and (min-width: 1281px) {
  .cta-005 .cta-tel-link .pc {
    background-size: 49px;
    padding-left: 55px;
  }
  .cta-005 .cta-tel-text {
    margin-top: 15px;
  }
  .cta-005 .cta-tel-confirm p:after {
    background-size: 25px;
    width: 25px;
    height: 25px;
  }
}
@media only screen and (min-width: 769px) {
  .cta-005 .cta-tel-link {
    pointer-events: none;
  }
}
@media only screen and (max-width: 768px) {
  .cta-005 .cta-tel-link {
    display: block;
    text-align: center;
    background-color: #2E9F21;
    color: #fff;
    font-weight: 600;
    padding: 27px 0 24px;
    font-size: 20px;
    border-radius: 8px;
    box-shadow: 0 7px 1px #206A17;
    margin-top: 0;
    max-width: 375px;
    margin-left: auto;
    margin-right: auto;
    z-index: 1;
  }
  .cta-005 .cta-tel-icon {
    width: 25px;
    height: 25px;
    margin-right: 10px;
    vertical-align: middle;
    top: -3px;
  }
  .cta-005 .cta-tel-text {
    margin-top: 10px;
    font-size: 16px;
  }
  .cta-005 .cta-tel-text small {
    font-size: 14px;
  }
}
/* web
-----------------------*/
.cta-005 .cta-web {
  margin-top: calc(100vw * 30 / var(--lpw));
}
.cta-005 .cta-web:before {
  content: "";
  width: calc(100vw * 50 / var(--lpw));
  height: 1px;
  background-color: #fff;
  position: absolute;
  left: calc(50% - calc(100vw * 25 / var(--lpw)));
  top: 0;
}
.cta-005 .cta-web-title {
  font-size: clamp( 1px, calc(100vw * 20 / var(--lpw)), 20px );
  font-weight: 600;
  color: #fff;
  text-align: center;
}
.cta-005 .cta-web-item {
  display: block;
  text-align: center;
  background-color: #E04631;
  color: #fff;
  font-weight: 600;
  padding: calc(100vw * 25 / var(--lpw)) 0 calc(100vw * 26 / var(--lpw));
  font-size: clamp( 1px, calc(100vw * 25 / var(--lpw)), 25px );
  border-radius: 8px;
  box-shadow: 0 calc(100vw * 7 / var(--lpw)) 1px #982E1F;
  max-width: calc(100vw * 500 / var(--lpw));
  height: calc(100vw * 83 / var(--lpw));
  margin-inline: auto;
  z-index: 1;
  line-height: calc(100vw * 33 / var(--lpw));
}
.cta-005 .cta-web-item:active {
  box-shadow: 0 calc(100vw * 5 / var(--lpw)) 1px #005D39;
  top: 5px;
}
.cta-005 .cta-mail-icon {
  display: inline-block;
  width: calc(100vw * 30 / var(--lpw));
  height: calc(100vw * 30 / var(--lpw));
  margin-right: calc(100vw * 10 / var(--lpw));
  vertical-align: middle;
  top: calc(50% - calc(100vw * 18 / var(--lpw)));
}
.cta-005 .cta-arrow-icon {
  right: calc(100vw * 20 / var(--lpw));
  position: absolute;
  top: calc(50% - calc(100vw * 13 / var(--lpw)));
  width: calc(100vw * 25 / var(--lpw));
  height: calc(100vw * 25 / var(--lpw));
}
@media only screen and (min-width: 1281px) {
  .cta-005 .cta-web {
    margin-top: 30px;
  }
  .cta-005 .cta-web:before {
    width: 50px;
    height: 1px;
    left: calc(50% - 25px);
    top: 0;
  }
  .cta-005 .cta-web-item {
    padding: 25px 0 26px;
    border-radius: 8px;
    box-shadow: 0 7px 1px #982E1F;
    max-width: 500px;
    height: 83px;
    line-height: 33px;
  }
  .cta-005 .cta-web-item:active {
    box-shadow: 0 5px 1px #005D39;
    top: 5px;
  }
  .cta-005 .cta-mail-icon {
    width: 30px;
    height: 30px;
    margin-right: 10px;
    top: calc(50% - 18px);
  }
  .cta-005 .cta-arrow-icon {
    right: 20px;
    top: calc(50% - 13px);
    width: 25px;
    height: 25px;
  }
}
@media only screen and (max-width: 768px){
  .cta-005 .cta-web {
    margin-top: 20px;
  }
  .cta-005 .cta-web-item {
    max-width: 375px;
    padding: 25px 0 26px;
    border-radius: 8px;
    box-shadow: 0 7px 1px #982E1F;
    height: 83px;
    line-height: 33px;
    font-size: 20px;
    text-indent: -25px;
  }
  .cta-005 .cta-web-item:active {
    box-shadow: 0 5px 1px #005D39;
    top: 5px;
  }
  .cta-005 .cta-mail-icon {
    width: 30px;
    height: 30px;
    margin-right: 10px;
    top: calc(50% - 18px);
  }
  .cta-005 .cta-arrow-icon {
    right: 12px;
    top: calc(50% - 11px);
    width: 22px;
    height: 22px;
  }
}