.speed-estimate,
.speed-estimate *,
.speed-estimate *::before,
.speed-estimate *::after {
  box-sizing: border-box;
}

.speed-estimate-off,
.speed-estimate-no {
  font-size: 32px;
}

.speed-estimate {
  --speed-estimate-orange: #f07a00;
  --speed-estimate-yellow: #fff600;
  --speed-estimate-outside-bg: #ffffff;
  --speed-estimate-before-bg: var(--speed-estimate-outside-bg);
  --speed-estimate-after-bg: var(--speed-estimate-outside-bg);
  --speed-estimate-text: #ffffff;
  width: 100vw;
  max-width: none;
  min-width: 0;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  overflow: hidden;
  background: linear-gradient(
    to bottom,
    var(--speed-estimate-before-bg) 0 50%,
    var(--speed-estimate-after-bg) 50% 100%
  );
  color: var(--speed-estimate-text);
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}

.speed-estimate--campaign-bg {
  --speed-estimate-outside-bg: #fff3ed;
}

.speed-estimate__inner {
  width: 100%;
  margin: 0 auto;
  padding: 0;
}

.speed-estimate__panel {
  --speed-estimate-content-width: 689px;
  --speed-estimate-product-width: clamp(118px, 8.5417vw, 164px);
  --speed-estimate-person-width: clamp(178px, 20.5729vw, 395px);
  --speed-estimate-side-gap: 0px;
  --speed-estimate-side-padding: max(16px, calc((100vw - var(--speed-estimate-content-width)) / 2));
  position: relative;
  min-height: clamp(430px, 34vw, 590px);
  padding: clamp(88px, 7vw, 132px) var(--speed-estimate-side-padding) clamp(92px, 7vw, 128px);
  background: var(--speed-estimate-orange);
  clip-path: polygon(0 13%, 100% 0, 100% 87%, 0 100%);
  overflow: hidden;
}

.speed-estimate__content {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: var(--speed-estimate-content-width);
  margin: 0 auto;
  text-align: center;
}

.speed-estimate__badge {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  margin: 0 0 18px;
  padding: 7px 25px 8px;
  border-radius: 999px;
  background: #ffffff;
  color: #e47911;
  font-family: "MOBO-Bold", "Noto Sans JP", sans-serif;
  font-size: clamp(17px, 1.5625vw, 30px);
  font-style: normal;
  font-weight: 700;
  line-height: clamp(18px, 1.6146vw, 31px);
}

.speed-estimate__badge::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  width: 19px;
  height: 11px;
  background: #ffffff;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transform: translateX(-50%);
}

.speed-estimate__title {
  display: grid;
  gap: 12px;
  margin: 0 !important;
  color: #ffffff !important;
  font-family: "MOBO-Bold", "Noto Sans JP", sans-serif;
  background-color: #F07B01 !important;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0;
  line-height: clamp(62px, 5.9375vw, 114px);
}

.speed-estimate__title-small {
  position: relative;
  display: block;
  padding-bottom: 15px;
  font-size: clamp(42px, 4.0625vw, 78px);
  white-space: nowrap;
}

.speed-estimate__title-main {
  position: relative;
  display: block;
  padding-bottom: 17px;
  font-size: clamp(42px, 4.0625vw, 78px);
  white-space: nowrap;
}

.speed-estimate__title-small::after,
.speed-estimate__title-main::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 100%;
  height: 2px;
  background-image: repeating-linear-gradient(
    to right,
    rgba(255, 255, 255, 0.9) 0,
    rgba(255, 255, 255, 0.9) 8px,
    transparent 8px,
    transparent 18px
  );
  transform: translateX(-50%);
}

.speed-estimate__offer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  margin: 18px 0 18px;
  color: #ffffff;
  font-family: "MOBO-Bold", "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 700;
  line-height: 1.05;
}

.speed-estimate__offer::before,
.speed-estimate__offer::after {
  content: "";
  width: 1px;
  height: 44px;
  background: #ffffff;
}

.speed-estimate__offer::before {
  transform: rotate(-22deg);
}

.speed-estimate__offer::after {
  transform: rotate(22deg);
}

.speed-estimate__offer-text {
  color: #ffffff;
  font-size: clamp(15px, 1.0417vw, 20px);
  font-weight: 700;
  line-height: normal;
  text-align: center;
}

.speed-estimate__offer strong {
  color: var(--speed-estimate-yellow);
  font-family: "MOBO-Bold", "Noto Sans JP", sans-serif;
  font-size: clamp(31px, 2.7083vw, 52px);
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  letter-spacing: 0;
  white-space: nowrap;
}

.speed-estimate__offer-unit {
  display: inline-block;
  font-size: clamp(22px, 1.6667vw, 32px);
  margin-left: 2px;
  vertical-align: baseline;
}

.speed-estimate__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: min(100%, 620px);
  height: clamp(68px, 5.3646vw, 103px);
  min-height: 68px;
  padding: 12px 30px 12px 50px;
  border-radius: 999px;
  background: var(--speed-estimate-yellow);
  color: #222222;
  font-family: "MOBO-Bold", "Noto Sans JP", sans-serif;
  font-size: clamp(22px, 1.7708vw, 34px);
  font-style: normal;
  font-weight: 700;
  line-height: 120%;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.16);
  transition: transform 180ms ease, box-shadow 180ms ease, filter 180ms ease;
}

.speed-estimate__button-small {
  font-size: clamp(20px, 1.6667vw, 32px);
}

.speed-estimate__button:hover,
.speed-estimate__button:focus-visible {
  filter: brightness(1.04);
  transform: translateY(-2px);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.22);
}

.speed-estimate__button:active {
  transform: translateY(0);
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.16);
}

.speed-estimate__button-icon,
.speed-estimate__button-arrow {
  display: block;
  height: auto;
  fill: currentColor;
  flex-shrink: 0;
}

.speed-estimate__button-icon {
  width: clamp(24px, 1.8229vw, 35px);
  height: clamp(18px, 1.3542vw, 26px);
  margin-right: 20px;
}

.speed-estimate__button-arrow {
  width: clamp(20px, 1.5625vw, 30px);
  height: clamp(20px, 1.5625vw, 30px);
  margin-left: 24px;
}

.speed-estimate__phone {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 22px;
  font-family: "MOBO-Bold", "Noto Sans JP", sans-serif;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}

.speed-estimate__phone-label {
  color: #ffffff;
  font-size: clamp(16px, 1.3542vw, 26px);
}

.speed-estimate__phone-number {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 30px;
  padding: 4px 13px;
  background: #ffffff;
  color: #e47911;
  font-family: "MOBO-Bold", "Noto Sans JP", sans-serif;
  font-size: clamp(18px, 1.3542vw, 26px);
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  letter-spacing: 0;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}

.speed-estimate__phone-number:hover,
.speed-estimate__phone-number:focus-visible {
  background: #fffaf0;
  transform: translateY(-1px);
  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.16);
}

.speed-estimate__phone-number:active {
  transform: translateY(0);
  box-shadow: none;
}

.speed-estimate__phone-icon {
  display: block;
  width: 15px;
  height: 15px;
  fill: currentColor;
  flex-shrink: 0;
}

.speed-estimate__product,
.speed-estimate__person {
  position: absolute;
  z-index: 1;
  display: block;
  height: auto;
  object-fit: contain;
  pointer-events: none;
}

.speed-estimate__product {
  left: max(48px, calc(50% - (var(--speed-estimate-content-width) / 2) - var(--speed-estimate-side-gap) - var(--speed-estimate-product-width)));
  bottom: clamp(40px, 4.5vw, 86px);
  width: var(--speed-estimate-product-width);
}

.speed-estimate__person {
  right: max(48px, calc(50% - (var(--speed-estimate-content-width) / 2) - var(--speed-estimate-side-gap) - var(--speed-estimate-person-width)));
  bottom: clamp(38px, 4vw, 78px);
  width: var(--speed-estimate-person-width);
  transform: rotate(-6deg);
  transform-origin: center bottom;
}

@media (max-width: 1024px) {
  .speed-estimate__panel {
    --speed-estimate-content-width: 560px;
    --speed-estimate-product-width: 105px;
    --speed-estimate-person-width: 160px;
  }

  .speed-estimate__content {
    max-width: var(--speed-estimate-content-width);
  }

  .speed-estimate__title-small,
  .speed-estimate__title-main {
    font-size: 42px;
  }

  .speed-estimate__product {
    width: var(--speed-estimate-product-width);
  }

  .speed-estimate__person {
    width: var(--speed-estimate-person-width);
    transform: rotate(-6deg);
  }
}

@media (min-width: 768px) and (max-width: 900px) {
  .speed-estimate__panel {
    --speed-estimate-content-width: 520px;
    --speed-estimate-product-width: 88px;
    --speed-estimate-person-width: 132px;
    min-height: 400px;
    padding-top: 86px;
    padding-bottom: 82px;
  }

  .speed-estimate__content {
    max-width: 520px;
  }

  .speed-estimate__button {
    width: min(100%, 520px);
    min-height: 58px;
    height: 72px;
    padding: 11px 24px 11px 36px;
  }

  .speed-estimate__product {
    bottom: 76px;
    width: var(--speed-estimate-product-width);
  }

  .speed-estimate__person {
    bottom: 68px;
    width: var(--speed-estimate-person-width);
    transform: rotate(-6deg);
  }
}

@media (max-width: 767px) {
  .speed-estimate {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }

  .speed-estimate__inner {
    width: 100%;
    padding: 0;
  }

  .speed-estimate__panel {
    min-height: 565px;
    padding: 67px 8px 128px;
    clip-path: polygon(0 6%, 100% 0, 100% 91%, 0 100%);
  }

  .speed-estimate__content {
    width: min(95%, 430px);
    max-width: none;
  }

  .speed-estimate__badge {
    min-height: 34px;
    margin-bottom: 25px;
    padding: 7px 29px 8px;
  }

  .speed-estimate__badge::after {
    bottom: -10px;
    width: 18px;
    height: 11px;
  }

  .speed-estimate__title {
    gap: 12px;
  }

  .speed-estimate__title-small {
    padding-bottom: 13px;
  }

  .speed-estimate__title-main {
    padding-bottom: 13px;
  }

  .speed-estimate__title-small::after,
  .speed-estimate__title-main::after {
    width: 100%;
    height: 2px;
    background-image: repeating-linear-gradient(
      to right,
      rgba(255, 255, 255, 0.9) 0,
      rgba(255, 255, 255, 0.9) 7px,
      transparent 7px,
      transparent 16px
    );
  }

  .speed-estimate__offer {
    gap: 8px;
    margin: 16px 0 15px;
  }

  .speed-estimate__offer::before,
  .speed-estimate__offer::after {
    height: 39px;
  }

  .speed-estimate__button {
    width: 100%;
    min-height: 56px;
    gap: 7px;
    padding: 11px 14px;
  }

  .speed-estimate__phone {
    display: grid;
    justify-items: center;
    gap: 9px;
    margin-top: 20px;
  }

  .speed-estimate__phone-number {
    min-height: 28px;
    padding: 4px 9px;
  }

  .speed-estimate__product {
    left: 6px;
    bottom: 30px;
    width: 150px;
    transform: scaleX(-1);
  }

  .speed-estimate__person {
    right: -60px;
    bottom: 48px;
    width: 192px;
    transform: rotate(-6deg);
  }
}

@media (max-width: 768px) {
  .speed-estimate-off {
    font-size: 24px;
  }

  .speed-estimate-no {
    font-size: 22px;
  }
}

@media (max-width: 900px) {
  .speed-estimate__badge,
  .speed-estimate__title-small,
  .speed-estimate__title-main,
  .speed-estimate__offer-text,
  .speed-estimate__offer strong,
  .speed-estimate__offer-unit,
  .speed-estimate__button,
  .speed-estimate__button-small,
  .speed-estimate__phone-label,
  .speed-estimate__phone-number {
    font-family: "MOBO-Bold", "Noto Sans JP", sans-serif;
    font-style: normal;
    font-weight: 700;
  }

  .speed-estimate__badge {
    color: #e47911;
    font-size: 26px;
    line-height: 31px;
  }

  .speed-estimate__title-small,
  .speed-estimate__title-main {
    color: #ffffff;
    font-size: 43px;
    line-height: 98px;
  }

  .speed-estimate__offer-text {
    color: #ffffff;
    font-size: 18px;
    line-height: normal;
    text-align: center;
  }

  .speed-estimate__offer strong {
    color: #fffe08;
    font-size: 36px;
    line-height: normal;
    text-align: center;
  }

  .speed-estimate__offer-unit {
    color: #fffe08;
    font-size: 24px;
    line-height: normal;
  }

  .speed-estimate__button {
    color: #222;
    font-size: 24px;
    line-height: 120%;
    text-align: center;
  }

  .speed-estimate__button-small {
    color: #222;
    font-size: 22px;
    line-height: 120%;
  }

  .speed-estimate__button-icon {
    width: 28px;
    height: 20px;
    margin-right: 0px;
  }

  .speed-estimate__button-arrow {
    width: 22px;
    height: 22px;
    margin-left: 0px;
  }

  .speed-estimate__phone-label {
    color: #ffffff;
    font-size: 26px;
    line-height: normal;
  }

  .speed-estimate__phone-number {
    color: #e47911;
    font-size: 26px;
    line-height: normal;
  }

  .speed-estimate__phone-icon {
    width: 22px;
    height: 22px;
  }
}
