@charset "UTF-8";

/* ========================================
  Base
======================================== */

:root {
  --color-blue: #0054b8;
  --color-blue-dark: #003f94;
  --color-orange: #ff5a16;
  --color-text: #202020;
  --color-white: #ffffff;
  --header-shadow: rgba(227, 236, 248, 1);
  --content-max-width: 1440px;
}

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

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  color: var(--color-text);
  background: var(--color-white);
  font-family:
    "Noto Sans JP",
    "Hiragino Kaku Gothic ProN",
    "Hiragino Sans",
    "Yu Gothic",
    "YuGothic",
    Meiryo,
    sans-serif;
  line-height: 1.6;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration: none;
}

/* ========================================
  Common Button Arrow
======================================== */

.c-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.c-button__arrow {
  display: inline-block;
  flex: 0 0 auto;
  width: 0;
  height: 0;
  margin-left: 8px;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 9px solid var(--button-arrow-color, #ffffff);
}

/* TEL用 */
.c-button--blue {
  --button-arrow-color: var(--color-blue);
}

/* ========================================
  Header
======================================== */

.site-header {
  position: relative;
  z-index: 100;
  width: 100%;
  background: var(--color-white);
  box-shadow: 0 4px 4px var(--header-shadow);
}

.site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100%, var(--content-max-width));
  height: 80px;
  margin: 0 auto;
  padding: 16px 80px;
}

.site-header__logo {
  display: inline-flex;
  flex-shrink: 0;
  align-items: center;
}

.site-header__logo img {
  width: auto;
  height: 42px;
}

.site-header__actions {
  display: flex;
  align-items: center;
  gap: 16px;
}

/* Tel button */

.header-tel {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  column-gap: 8px;
  min-height: 48px;
  padding: 5px 10px 5px 14px;
  color: var(--color-blue);
  border: 1px solid var(--color-blue);
  border-radius: 5px;
  background: var(--color-white);
  transition:
    color 0.2s ease,
    background-color 0.2s ease;
}

.header-tel:hover {
  --button-arrow-color: #ffffff;
  color: var(--color-white);
  background: var(--color-blue);
}

.header-tel__icon {
  flex-shrink: 0;
}

.header-tel__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.05;
}

.header-tel__number {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.header-tel__time {
  margin-top: 2px;
  color: var(--color-text);
  font-size: 10px;
}

.header-tel:hover .header-tel__time {
  color: var(--color-white);
}

.header-tel .c-button__arrow {
  margin-left: 4px;
  border-top-width: 5px;
  border-bottom-width: 5px;
  border-left-width: 7px;
}

/* CTA button */

.header-cta {
  gap: 7px;
  min-height: 48px;
  padding: 0 13px;
  color: var(--color-white);
  background: var(--color-orange);
  border-radius: 5px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}

.header-cta:hover {
  opacity: 0.9;
  transform: translateY(-1px);
}

.header-cta__label {
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  height: 25px;
  padding-inline: 4px;
  color: var(--color-orange);
  background: var(--color-white);
  border-radius: 2px;
  font-size: 14px;
  font-weight: 700;
}

.header-cta .c-button__arrow {
  margin-left: 2px;
  border-top-width: 5px;
  border-bottom-width: 5px;
  border-left-width: 8px;
}

/* ========================================
  Header Responsive
======================================== */

@media screen and (max-width: 1100px) {
  .site-header__inner {
    padding-right: 32px;
    padding-left: 32px;
  }
}

@media screen and (max-width: 767px) {
  .site-header__inner {
    height: 58px;
    padding: 8px 16px;
  }

  .site-header__logo img {
    height: 28px;
  }

  .header-tel {
    display: none;
  }

  .site-header__actions {
    gap: 0;
  }

  .header-cta {
    gap: 5px;
    min-height: 40px;
    padding: 0 10px;
    border-radius: 4px;
    font-size: 13px;
  }

  .header-cta__label {
    min-width: 28px;
    height: 22px;
    font-size: 12px;
  }
}

/* ========================================
  FV Common
======================================== */

.fv {
  width: 100%;
  overflow: hidden;
  background: #edf6ff;
}

.fv img {
  display: block;
  max-width: 100%;
  height: auto;
}

.fv__lead {
  position: relative;
  width: fit-content;
  margin: 0 0 26px;
  padding-bottom: 13px;
  color: #0052b8;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
}

.fv__lead::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 34px;
  height: 2px;
  background: #0052b8;
}

.fv__title {
  margin: 0 0 12px;
  color: #303030;
  font-size: 52px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.02em;
}

.fv__catch {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  margin-bottom: 34px;
  white-space: nowrap;
}

.fv__catch-image {
  width: 300px;
}

.fv__catch-text {
  color: #303030;
  font-size: 56px;
  font-weight: 700;
  line-height: 1.4;
}

/* ========================================
  FV PC / Tablet
======================================== */

.fv__pc-stage {
  position: relative;
  overflow: hidden;
  background-color: #edf6ff;
  background-image: url(../img/fv-bg-pc.jpg);
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}

.fv__pc-canvas {
  position: absolute;
  top: 0;
  left: 50%;
  width: 1440px;
  height: 670px;
  transform: translateX(-50%) scale(var(--fv-scale, 1));
  transform-origin: top center;
}

.fv__pc-main {
  position: absolute;
  top: 60px;
  left: 80px;
  width: 575px;
}

.fv__points {
  display: grid;
  grid-template-columns: 180px 180px 200px;
  gap: 10px;
  margin-bottom: 32px;
}

.fv-point {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 80px;
  padding: 10px 8px;
  text-align: center;
  background: #ffffff;
  border: 1px solid #d9e9ff;
  border-radius: 4px;
}

.fv-point__label {
  margin: 0 0 4px;
  color: #0c58c6;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
}

.fv-point__label small {
  font-size: 10px;
}

.fv-point__value {
  margin: 0;
  color: #135dcc;
  font-size: 38px;
  font-weight: 700;
  line-height: 1;
}

.fv-point__value span {
  font-size: 24px;
}

.fv-point--online .fv-point__value {
  font-size: 28px;
  white-space: nowrap;
}

.fv-point--online .fv-point__value span {
  font-size: 18px;
}

.fv__awards {
  display: flex;
  align-items: center;
  gap: 22px;
}

.fv__awards img {
  width: 270px;
}

.fv__pc-visual {
  position: absolute;
  bottom: 0;
  left: 670px;
  width: 240px;
}

.fv__form-area {
  position: absolute;
  top: 50%;
  right: 80px;
  width: 440px;
  transform: translateY(-50%);
}

.fv-form {
  padding: 24px 40px 24px;
  background: #ffffff;
  border-radius: 10px;
  box-shadow: 0 0 20px rgba(208, 219, 234, 0.7);
}

.fv-form__title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 0 0 16px;
  color: #004fb5;
  font-size: 24px;
  font-weight: 700;
}

.fv-form__free {
  display: inline-grid;
  place-items: center;
  min-width: 58px;
  height: 36px;
  color: #004fb5;
  border: 1px solid #004fb5;
  border-radius: 4px;
  font-size: 18px;
}

.fv-form__group {
  margin-bottom: 12px;
}

.fv-form__group label,
.fv-form__privacy-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 6px;
  color: #333333;
  font-size: 14px;
  font-weight: 700;
}

.fv-form__required {
  display: inline-grid;
  place-items: center;
  min-width: 31px;
  height: 18px;
  padding: 0 4px;
  color: #ffffff;
  background: #0754b8;
  border-radius: 3px;
  font-size: 11px;
}

.fv-form .select {
  width: 100%;
  height: 40px;
  padding: 0 15px;
  color: #333333;
  background: #fefbf2;
  border: 1px solid #d9d9d9;
  border-radius: 3px;
  font-size: 15px;
}

.fv-form input[type="text"],
.fv-form input[type="email"],
.fv-form input[type="tel"] {
  width: 100%;
  height: 40px;
  padding: 0 15px;
  color: #333333;
  background: #fefbf2;
  border: 1px solid #d9d9d9;
  border-radius: 3px;
  font-size: 15px;
}

.fv-form input::placeholder {
  color: #cfcac0;
}

.fv-form__privacy {
  margin: 6px 0 16px;
}

.fv-form__check {
  display: flex;
  gap: 7px;
  align-items: flex-start;
  font-size: 14px;
  line-height: 1.4;
}

.fv-form__check input {
  appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  margin: 0;
  flex-shrink: 0;
  background: #fefbf2;
  border: 1px solid #d9d9d9;
  border-radius: 2px;
  cursor: pointer;
}

.fv-form__check input:checked {
  background-color: #0754b8;
  border-color: #0754b8;
}

.fv-form__check input:checked::after {
  content: "";
  display: block;
  width: 5px;
  height: 10px;
  margin: 2px auto 0;
  border-right: 2px solid #ffffff;
  border-bottom: 2px solid #ffffff;
  transform: rotate(45deg);
}

.fv-form__check a {
  color: #0754b8;
  text-decoration: underline;
}

.fv-form__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 285px;
  min-height: 56px;
  margin: 0 auto;
  padding: 10px 16px;
  color: #ffffff;
  background: #ff5a13;
  border: 0;
  border-radius: 999px;
  box-shadow: 0 4px 0 rgba(207, 80, 18, 0.25);
  font-size: 20px;
  font-weight: 700;
  cursor: pointer;
}

.fv-form__submit .c-button__arrow {
  margin-left: 4px;
  border-top-width: 7px;
  border-bottom-width: 7px;
  border-left-width: 10px;
}

.fv__notes {
  color: #4a4a4a;
}

.fv__notes p {
  margin: 0;
}

.fv__notes--pc {
  position: absolute;
  bottom: 18px;
  left: 80px;
  font-size: 11px;
  line-height: 1.45;
}

/* ========================================
  SP Initial State
======================================== */

.fv__sp-stage {
  display: none;
}

/* ========================================
  SP
======================================== */

@media screen and (max-width: 767px) {
  .fv__pc-stage {
    display: none;
  }

  .fv__sp-stage {
    display: block;
    background: #edf6ff;
  }

  .fv__sp-inner {
    width: 100%;
    padding: clamp(26px, 6.8vw, 52px) clamp(20px, 5.2vw, 40px) 12px;
    background: url("../img/fv-bg-sp.jpg") no-repeat center top / 100% auto;
  }

  .fv__sp-inner .fv__lead {
    margin-bottom: clamp(16px, 4.2vw, 32px);
    padding-bottom: clamp(10px, 2.6vw, 20px);
    font-size: clamp(12px, 3.1vw, 24px);
  }

  .fv__sp-inner .fv__lead::after {
    width: clamp(26px, 6.8vw, 52px);
    height: 2px;
  }

  .fv__sp-inner .fv__title {
    margin-bottom: clamp(8px, 2vw, 16px);
    font-size: clamp(30px, 7.8vw, 60px);
    line-height: 1.35;
  }

  .fv__sp-inner .fv__catch {
    gap: clamp(4px, 1vw, 8px);
    margin-bottom: clamp(16px, 4.2vw, 32px);
  }

  .fv__sp-inner .fv__catch-image {
    width: 51.7%;
    max-width: 388px;
  }

  .fv__sp-inner .fv__catch-text {
    font-size: clamp(34px, 8.8vw, 68px);
  }

  .fv__sp-middle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2.6%;
    margin-bottom: clamp(10px, 2.6vw, 20px);
  }

  .fv__sp-left {
    flex: 0 0 50%;
    width: 50%;
  }

  .fv__sp-awards {
    display: flex;
    flex-direction: column;
    gap: clamp(8px, 2vw, 16px);
    margin-bottom: clamp(10px, 2.6vw, 20px);
  }

  .fv__sp-awards img {
    width: 100%;
    height: auto;
  }

  .fv__sp-points {
    display: grid;
    gap: clamp(7px, 1.8vw, 14px);
    width: 85.5%;
  }

  .fv__sp-points .fv-point {
    min-height: clamp(55px, 14.3vw, 110px);
    padding: clamp(7px, 1.8vw, 14px) clamp(5px, 1.3vw, 10px);
    border-radius: clamp(3px, 0.8vw, 6px);
  }

  .fv__sp-points .fv-point__label {
    margin-bottom: clamp(3px, 0.8vw, 6px);
    font-size: clamp(11px, 2.9vw, 22px);
  }

  .fv__sp-points .fv-point__label small {
    font-size: clamp(8px, 2.1vw, 16px);
  }

  .fv__sp-points .fv-point__value {
    font-size: clamp(25px, 6.5vw, 50px);
  }

  .fv__sp-points .fv-point__value span {
    font-size: clamp(15px, 3.9vw, 30px);
  }

  .fv__sp-points .fv-point--online .fv-point__value {
    font-size: clamp(18px, 4.7vw, 36px);
  }

  .fv__sp-points .fv-point--online .fv-point__value span {
    font-size: clamp(13px, 3.4vw, 26px);
  }

  .fv__sp-visual {
    flex: 0 0 50%;
    width: 50%;
    max-width: none;
    margin: 0 0 -1.5vw;
  }

  .fv__sp-visual img {
    width: 100%;
    height: auto;
  }

  .fv__cta-sp {
    gap: clamp(11px, 2.9vw, 22px);
    min-height: clamp(62px, 16.2vw, 124px);
    margin-top: clamp(8px, 2vw, 16px);
    padding: clamp(10px, 2.6vw, 20px) clamp(14px, 3.6vw, 28px);
    color: #ffffff;
    background: #ff5a13;
    border: clamp(2px, 0.52vw, 4px) solid #ffffff;
    border-radius: clamp(4px, 1vw, 8px);
    box-shadow: 0 3px 7px rgba(45, 74, 109, 0.35);
    font-size: clamp(20px, 5.2vw, 40px);
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    width: 100%;
    justify-content: space-between;
  }

  .fv__cta-sp-free {
    display: inline-grid;
    place-items: center;
    min-width: clamp(54px, 14.1vw, 108px);
    height: clamp(32px, 8.3vw, 64px);
    color: #ff5a13;
    background: #ffffff;
    border-radius: clamp(2px, 0.5vw, 4px);
    font-size: clamp(17px, 4.4vw, 34px);
  }

  .fv__cta-sp .c-button__arrow {
    margin-left: clamp(6px, 1.5vw, 12px);
    border-top-width: clamp(5px, 1.3vw, 10px);
    border-bottom-width: clamp(5px, 1.3vw, 10px);
    border-left-width: clamp(8px, 2vw, 15px);
  }

  .fv__notes--sp {
    margin-top: clamp(14px, 3.6vw, 28px);
    font-size: clamp(8px, 2.1vw, 16px);
    line-height: 1.4;
  }
}

/* ========================================
  Trouble
======================================== */

.trouble {
  width: 100%;
  background: #edf6ff;
}

.trouble__inner {
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: 36px 80px 70px;
}

.trouble__banner {
  display: block;
  width: 640px;
  max-width: 100%;
  margin: 0 auto 48px;
}

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

.trouble__title {
  margin: 0 0 34px;
  color: #333333;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.45;
  text-align: center;
}

.trouble__title br {
  display: none;
}

.trouble__list {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 54px;
  max-width: 890px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.trouble__item {
  flex: 0 0 122px;
  text-align: center;
}

.trouble__item img {
  display: block;
  width: 66px;
  height: 66px;
  margin: 0 auto 12px;
  object-fit: contain;
}

.trouble__item p {
  margin: 0;
  color: #333333;
  font-size: 17px;
  line-height: 1.55;
  white-space: nowrap;
}

/* ========================================
  Tablet
======================================== */

@media screen and (max-width: 1100px) {
  .trouble__inner {
    padding-right: 32px;
    padding-left: 32px;
  }

  .trouble__list {
    gap: clamp(20px, 4vw, 54px);
  }

  .trouble__item {
    flex-basis: 110px;
  }

  .trouble__item p {
    font-size: 15px;
  }
}

/* ========================================
  SP
======================================== */

@media screen and (max-width: 767px) {
  .trouble__inner {
    padding: 5.33vw;
  }

  .trouble__banner {
    width: 100%;
    margin: 0 auto 8.1vw;
  }

  .trouble__title {
    margin: 0 0 5.7vw;
    color: #303030;
    font-size: clamp(24px, 6.4vw, 32px);
    font-weight: 700;
    line-height: 1.48;
    letter-spacing: 0;
    text-align: center;
    white-space: nowrap;
  }

  .trouble__title br {
    display: block;
  }

  .trouble__list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0;
    width: 100%;
    max-width: none;
  }

  .trouble__item {
    width: auto;
    min-width: 0;
  }

  .trouble__item--sp-hidden {
    display: none;
  }

  .trouble__item img {
    width: clamp(64px, 17.07vw, 96px);
    max-width: none;
    height: auto;
    margin: 0 auto 4.27vw;
  }

  .trouble__item p {
    margin: 0;
    color: #333333;
    font-size: clamp(14px, 3.73vw, 18px);
    line-height: 1.48;
    letter-spacing: -0.03em;
    white-space: nowrap;
  }
}

/* ========================================
  Reason
======================================== */

.reason {
  position: relative;
  overflow: hidden;
  background: linear-gradient(110deg, #78a8f6 0%, #69c5e6 100%);
}

.reason::before {
  content: "";
  position: absolute;
  top: -1px;
  right: 0;
  left: 0;
  height: 65px;
  background: #edf6ff;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  pointer-events: none;
}

.reason__inner {
  position: relative;
  z-index: 1;
  width: min(100%, 1120px);
  margin: 0 auto;
  padding: 106px 24px 80px;
}

/* ========================================
  Heading
======================================== */

.reason__heading {
  position: relative;
  min-height: 200px;
  padding: 24px 0 0 360px;
}

.reason__lead {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: #111;
  font-size: 27px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}

.reason__brand-logo {
  display: block;
  width: 158px;
  height: auto;
}

.reason__title {
  margin: 13px 0 0;
  font-weight: 700;
}

.reason__title-pc {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 10px;
  white-space: nowrap;
}

.reason__title-sp {
  display: none;
}

.reason__title-blue {
  position: relative;
  display: inline-block;
  padding: 4px 14px 6px;
  color: #0752b7;
  font-size: 32px;
  line-height: 1.15;
  white-space: nowrap;
  z-index: 0;
}

.reason__title-blue::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #fff;
  transform: skewX(-14deg);
  z-index: -1;
}

.reason__title-white {
  display: inline-block;
  color: #fff;
  font-size: 32px;
  line-height: 1.2;
  white-space: nowrap;
}

.reason__person {
  position: absolute;
  bottom: 0;
  left: 120px;
  width: 210px;
  height: auto;
}

/* ========================================
  Cards
======================================== */

.reason__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.reason__item {
  display: grid;
  grid-template-columns: 122px minmax(0, 1fr);
  min-height: 101px;
  overflow: hidden;
  border-radius: 8px;
  background: #fff;
}

.reason__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  /* padding: 8px; */
  background: rgba(230, 242, 255, 0.85);
}

.reason__icon img {
  display: block;
  /* width: 82px;
  max-height: 82px; */
  object-fit: contain;
}

.reason__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 15px 22px;
}

.reason__content h3 {
  margin: 0 0 10px;
  color: #0752b7;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.35;
}

.reason__content h3 small {
  margin-left: 5px;
  color: #9a9a9a;
  font-size: 11px;
  font-weight: 400;
  white-space: nowrap;
}

.reason__content p {
  margin: 0;
  color: #222;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.55;
}

/* ========================================
  Tablet
======================================== */

@media screen and (max-width: 1100px) {
  .reason__inner {
    width: min(100%, 960px);
  }

  .reason__heading {
    min-height: clamp(150px, 18vw, 184px);
    padding-top: clamp(28px, 3vw, 36px);
    padding-left: clamp(245px, 28vw, 320px);
  }

  .reason__lead {
    gap: clamp(5px, 0.73vw, 8px);
    font-size: clamp(21px, 2.45vw, 27px);
  }

  .reason__brand-logo {
    width: clamp(155px, 18vw, 200px);
  }

  .reason__title {
    margin-top: clamp(10px, 1.3vw, 13px);
  }

  .reason__title-pc {
    gap: clamp(7px, 0.91vw, 10px);
  }

  .reason__title-blue {
    padding:
      clamp(3px, 0.36vw, 4px)
      clamp(10px, 1.27vw, 14px)
      clamp(4px, 0.55vw, 6px);
    font-size: clamp(26px, 2.9vw, 32px);
  }

  .reason__title-white {
    font-size: clamp(26px, 2.9vw, 32px);
  }

  .reason__person {
    left: clamp(60px, 8.5vw, 100px);
    width: clamp(164px, 19vw, 210px);
  }

  .reason__item {
    grid-template-columns: 104px minmax(0, 1fr);
  }

  .reason__content {
    padding-right: 16px;
    padding-left: 16px;
  }
}

/* ========================================
  SP
======================================== */

@media screen and (max-width: 767px) {
  .reason::before {
    height: 8.8vw;
  }

  .reason__inner {
    width: 100%;
    padding: 13.33vw 5.33vw 12.53vw;
  }


  .reason__heading {
    min-height: 45vw;
    padding: 0;
  }

  /* 人物の上 */
  .reason__lead {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 1.07vw;
    padding-left: 7.47vw;
    color: #111;
    font-size: 4vw;
    font-weight: 700;
    line-height: 1.7;
    white-space: nowrap;
  }

  .reason__brand-logo {
    width: 40vw;
    height: auto;
  }

  /* 人物の右側 */
  .reason__title {
    position: relative;
    z-index: 2;
    margin: 0vw 0 0 40vw;
    padding-top: 7vw;
  }

  .reason__title-pc {
    display: none;
  }

  /*
    SP表示
    スピーディーに
    資金化　して
    解決します！
  */
  .reason__title-sp {
    display: grid;
    grid-template-columns: max-content max-content;
    grid-template-areas:
      "speed speed"
      "fund solve"
      "complete complete";
    column-gap: 1.6vw;
    row-gap: 1.07vw;
    align-items: center;
  }

  /* スピーディーに */
  .reason__title-sp > .reason__title-blue:first-child {
    grid-area: speed;
  }

  /* 資金化 */
  .reason__title-sp > .reason__title-blue:nth-child(2) {
    grid-area: fund;
  }

  /*
    HTML内の
    <span class="reason__title-white">
      <span>して</span>
      <span>解決します！</span>
    </span>
    をグリッド上で別要素として扱う
  */
  .reason__title-sp > .reason__title-white {
    display: contents;
  }

  /* して */
  .reason__title-sp > .reason__title-white span:first-child {
    grid-area: solve;
  }

  /* 解決します！ */
  .reason__title-sp > .reason__title-white span:last-child {
    grid-area: complete;
  }

  .reason__title-sp .reason__title-blue {
    position: relative;
    display: inline-block;
    padding: 0.53vw 1.87vw 0.8vw;
    color: #0752b7;
    font-size: 6.13vw;
    font-weight: 700;
    line-height: 1.15;
    white-space: nowrap;
    z-index: 0;
  }

  .reason__title-sp .reason__title-blue::before {
    content: "";
    position: absolute;
    inset: 0;
    background: #fff;
    transform: skewX(-14deg);
    z-index: -1;
  }

  .reason__title-sp > .reason__title-white span {
    display: block;
    color: #fff;
    font-size: 6.13vw;
    font-weight: 700;
    line-height: 1.18;
    white-space: nowrap;
  }

  .reason__person {
    position: absolute;
    bottom: 0;
    left: 4vw;
    width: 35vw;
    height: auto;
  }

  /* ----------------------------------------
    Cards
  ---------------------------------------- */

  .reason__list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.13vw;
  }

  .reason__item {
    grid-template-columns: 19.2vw minmax(0, 1fr);
    min-height: 20.8vw;
    border-radius: 2.13vw;
  }

  .reason__icon {
    /* padding: 1.33vw; */
  }

  .reason__icon img {
    /* width: 15.47vw;
    max-height: 15.47vw; */
  }

  .reason__content {
    padding: 2.93vw 3.2vw;
  }

  .reason__content h3 {
    margin-bottom: 1.33vw;
    font-size: 4.27vw;
    line-height: 1.3;
  }

  .reason__content h3 small {
    margin-left: 1.07vw;
    font-size: 2.13vw;
  }

  .reason__content p {
    font-size: 3.2vw;
    line-height: 1.45;
  }
}

/* ========================================
  Support
======================================== */

.support {
  position: relative;
  overflow: hidden;
  background: url("../img/support-bg-pc.png") center / cover no-repeat;
}

.support__inner {
  width: min(calc(100% - 80px), 1120px);
  margin: 0 auto;
  padding: min(90px, 6.25vw) 0 min(80px, 5.56vw);
}

/* ========================================
  Heading
======================================== */

.support__heading {
  display: flex;
  align-items: flex-end;
  gap: min(70px, 4.86vw);
  width: 100%;
  margin: 0 auto min(40px, 2.78vw);
}

.support__heading-title {
  flex: 0 0 auto;
}

.support__heading-title p {
  margin: 0 0 min(12px, 0.83vw);
  color: #0752b7;
  font-size: min(24px, 1.67vw);
  font-weight: 700;
  line-height: 1.35;
}

.support__heading-title h2 {
  margin: 0;
  color: #0752b7;
  font-size: min(38px, 2.64vw);
  font-weight: 700;
  line-height: 1.18;
  letter-spacing: -0.03em;
}

.support__heading-text {
  margin: 0 0 min(4px, 0.28vw);
  color: #333333;
  font-size: min(18px, 1.25vw);
  font-weight: 500;
  line-height: 1.55;
}

/* ========================================
  Grid
======================================== */

.support__grid {
  --support-gap: min(32px, 2.64vw);

  display: grid;
  grid-template-columns: calc((100% - var(--support-gap)) * 400 / 1088) minmax(0, 1fr);
  grid-template-rows: min(210px, 17.36vw) min(258px, 21.36vw);
  gap: var(--support-gap);
  width: 100%;
  margin: 0 auto;
}

/* ========================================
  Card
======================================== */

.support-card {
  position: relative;
  overflow: hidden;
  border-radius: min(16px, 1.11vw);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 0 20px rgba(15, 84, 192, 0.1);
}

.support-card--achievement {
  grid-row: 1 / 3;
  min-height: auto;
  padding: min(32px, 2.22vw);
}

.support-card--staff {
  min-height: auto;
  padding: min(32px, 2.22vw) min(32px, 2.22vw) 0;
}

.support-card--group {
  min-height: auto;
  padding: min(32px, 2.22vw);
}

/* ========================================
  Card common
======================================== */

.support-card__head {
  display: flex;
  align-items: center;
  gap: min(15px, 1.04vw);
  margin-bottom: min(4px, 0.28vw);
}

.support-card__number {
  flex: 0 0 auto;
  margin: 0;
  color: #dceaff;
  font-family: "Roboto", sans-serif;
  font-size: min(44px, 3.06vw);
  font-style: italic;
  font-weight: 700;
  line-height: 1;
}

.support-card__title {
  margin: 0;
  color: #0752b7;
  font-size: min(24px, 1.67vw);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.03em;
}

.support-card__lead {
  margin: 0;
  color: #333333;
  font-size: min(16px, 1.11vw);
  font-weight: 500;
  line-height: 1.55;
}

/* ========================================
  Achievement
======================================== */

.support-card__chart {
  display: block;
  width: 100%;
  margin: min(12px, 0.83vw) auto min(10px, 0.69vw);
}

.support-card__achievement-results {
  display: grid;
  gap: 0;
  width: 100%;
  margin: 0 auto;
}

.support-card__achievement-result {
  display: block;
  width: 100%;
  height: auto;
}

/* ========================================
  Staff
======================================== */

.support-card__staff-image {
  position: absolute;
  right: min(32px, 2.22vw);
  bottom: 0;
  left: min(32px, 2.22vw);
  display: block;
  width: calc(100% - min(64px, 4.44vw));
  height: auto;
}

/* ========================================
  Group
======================================== */

.support-card__group-image {
  display: block;
  width: 100%;
  margin-top: min(8px, 0.56vw);
}

/* ========================================
  Tablet
======================================== */

@media screen and (max-width: 1100px) {
  .support__inner {
    width: min(calc(100% - 80px), 960px);
  }

  .support__heading {
    gap: clamp(28px, 3.5vw, 40px);
  }

  .support__grid {
    grid-template-columns: 36.5% minmax(0, 1fr);
  }
}

/* ========================================
  Support SP
======================================== */

@media screen and (max-width: 767px) {
  .support {
    background: url("../img/support-bg-sp.png") center top / cover no-repeat;
  }

  .support__inner {
    width: 100%;
    padding: 13.33vw 5.33vw 12.8vw;
  }

  /* Heading */

  .support__heading {
    display: block;
    width: 100%;
    margin-bottom: 8vw;
  }

  .support__heading-title p {
    margin: 0 0 2.13vw;
    font-size: 5.07vw;
    line-height: 1.35;
  }

  .support__heading-title h2 {
    margin: 0;
    font-size: 8vw;
    line-height: 1.2;
  }

  .support__heading-text {
    margin: 5.33vw 0 0;
    font-size: 4vw;
    line-height: 1.58;
  }

  .support__heading-text br {
    display: none;
  }

  /* Grid */

  .support__grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 5.33vw;
    width: 100%;
  }

  /* Card */

  .support-card {
    width: 100%;
    overflow: hidden;
    border-radius: 2.67vw;
    box-shadow: 0 0 16px rgba(15, 84, 192, 0.1);
  }

  .support-card--achievement {
    height: 105.33vw;
    min-height: 0;
    padding: 4.27vw 4.27vw 3.73vw;
  }

  .support-card--staff {
    position: relative;
    height: 54.4vw;
    min-height: 0;
    padding: 4.27vw 4.27vw 0;
  }

  .support-card--group {
    height: 80vw;
    min-height: 0;
    padding: 4.27vw 4.27vw 3.73vw;
  }

  /* Card Head */

  .support-card__head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.8vw;
    margin-bottom: 1.6vw;
  }

  .support-card__number {
    margin: 0;
    font-size: 7.47vw;
    line-height: 0.9;
  }

  .support-card__title {
    margin: 0;
    font-size: 5.33vw;
    line-height: 1.25;
    letter-spacing: -0.03em;
  }

  .support-card__lead {
    margin: 0;
    font-size: 3.73vw;
    line-height: 1.5;
  }

  /* 01 Achievement */

  .support-card__chart {
    display: block;
    width: 90%;
    margin: 2.13vw auto 1.33vw;
  }

  .support-card__achievement-results {
    display: grid;
    gap: 0;
    width: 85%;
    margin: auto;
  }

  .support-card__achievement-result {
    display: block;
    width: 100%;
    height: auto;
  }

  /* 02 Staff */

  .support-card__staff-image {
    position: absolute;
    right: 4.27vw;
    bottom: 0;
    left: 4.27vw;
    display: block;
    width: calc(100% - 8.54vw);
    height: auto;
    margin: 0;
  }

  /* 03 Group */

  .support-card__group-image {
    display: block;
    width: 100%;
    height: auto;
    margin-top: 1.6vw;
  }
}

/* ========================================
  Campaign CTA
======================================== */

.campaign-cta {
  position: relative;
  overflow: visible;
  background:
    url("../img/cta-bg-pc.jpg") center / cover no-repeat,
    linear-gradient(100deg, #277ce0 0%, #004cc5 100%);
}

.campaign-cta__inner {
  position: relative;
  width: min(100%, 1440px);
  min-height: 280px;
  margin: 0 auto;
  padding: 34px 40px 32px;
}

/* ========================================
  Person
======================================== */

.campaign-cta__man {
  position: absolute;
  top: auto;
  bottom: 0;
  left: max(20px, calc(50% - 540px));
  display: block;
  width: 275px;
  height: auto;
  pointer-events: none;
  z-index: 2;
}

.campaign-cta__man img {
  display: block;
  width: 100%;
  height: auto;
}

/* ========================================
  Content
======================================== */

.campaign-cta__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 214px;
  text-align: center;
}

/* PC〜Tablet：最短2時間〜は1行 */
.campaign-cta__headline {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  line-height: 1.3;
  white-space: nowrap;
  font-size: 31px;
}

.campaign-cta__headline-line1 {
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

/* .campaign-cta__headline-after {
  display: none;
} */

.campaign-cta__headline-line2 {
  display: inline;
  font-size: 31px;
  line-height: 1.3;
}

.campaign-cta__2hours {
  display: block;
  width: 156px;
  height: auto;
}

/* ========================================
  Campaign copy
======================================== */

.campaign-cta__campaign {
  position: relative;
  margin: 23px 0 21px;
  padding: 0 30px;
  color: #fff56a;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.25;
  white-space: nowrap;
}

.campaign-cta__campaign::before,
.campaign-cta__campaign::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 24px;
  height: 1px;
  background: #fff;
}

.campaign-cta__campaign::before {
  left: 0;
  transform: rotate(46deg);
}

.campaign-cta__campaign::after {
  right: 0;
  transform: rotate(-46deg);
}

.campaign-cta__campaign-line1,
.campaign-cta__campaign-line2 {
  display: inline;
}

.campaign-cta__campaign strong {
  font-size: 32px;
}

/* ========================================
  Buttons
======================================== */

.campaign-cta__buttons {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 68px;
  width: 100%;
}

.campaign-cta__tel {
  order: 1;
}

.campaign-cta__main-button {
  order: 2;
}

.campaign-cta__tel,
.campaign-cta__main-button {
  text-decoration: none;
  transition:
    opacity 0.2s ease,
    transform 0.2s ease,
    color 0.2s ease,
    background-color 0.2s ease;
}

/* ========================================
  TEL button
  header-tel準拠
======================================== */

.campaign-cta__tel {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  column-gap: 8px;
  width: 270px;
  min-height: 58px;
  padding: 5px 10px 5px 14px;
  color: var(--color-blue);
  border: 1px solid var(--color-blue);
  border-radius: 5px;
  background: var(--color-white);
}

.campaign-cta__tel:hover {
  --button-arrow-color: #ffffff;
  color: var(--color-white);
  background: var(--color-blue);
}

.campaign-cta__tel-icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  fill: currentColor;
}

.campaign-cta__tel-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.05;
  white-space: nowrap;
}

.campaign-cta__tel-text strong {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.campaign-cta__tel-text small {
  margin-top: 2px;
  color: var(--color-text);
  font-size: 11px;
  white-space: nowrap;
}

.campaign-cta__tel:hover .campaign-cta__tel-text small {
  color: var(--color-white);
}

.campaign-cta__tel .c-button__arrow {
  margin-left: 4px;
  border-top-width: 5px;
  border-bottom-width: 5px;
  border-left-width: 7px;
}

/* ========================================
  Main CTA button
  header-cta準拠
======================================== */

.campaign-cta__main-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 330px;
  min-height: 58px;
  padding: 0 13px;
  color: var(--color-white);
  background: var(--color-orange);
  border-radius: 5px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.campaign-cta__main-button:hover {
  opacity: 0.9;
  transform: translateY(-1px);
}

.campaign-cta__free {
  display: inline-grid;
  place-items: center;
  min-width: 43px;
  height: 32px;
  padding-inline: 5px;
  color: var(--color-orange);
  background: var(--color-white);
  border-radius: 2px;
  font-size: 17px;
  font-weight: 700;
}

.campaign-cta__main-button .c-button__arrow {
  margin-left: 2px;
  border-top-width: 5px;
  border-bottom-width: 5px;
  border-left-width: 8px;
}

/* ========================================
  Tablet
======================================== */

@media screen and (max-width: 1100px) {
  .campaign-cta__inner {
    min-height: 25.45vw;
    padding: 3.1vw 4vw 2.9vw;
  }

  .campaign-cta__man {
    top: auto;
    left: max(1.8vw, calc(50% - 49vw));
    width: clamp(210px, 25vw, 275px);
  }

  .campaign-cta__content {
    min-height: 19.45vw;
  }

  .campaign-cta__headline-line2 {
    font-size: clamp(26px, 2.82vw, 31px);
  }

  .campaign-cta__headline-after{
    font-size: clamp(26px, 2.82vw, 31px);
  }

  .campaign-cta__2hours {
    width: clamp(126px, 14.18vw, 156px);
  }

  .campaign-cta__campaign {
    margin: clamp(17px, 2.1vw, 23px) 0 clamp(15px, 1.91vw, 21px);
    font-size: clamp(19px, 2.18vw, 24px);
  }

  .campaign-cta__campaign strong {
    font-size: clamp(25px, 2.91vw, 32px);
  }

  .campaign-cta__buttons {
    gap: clamp(30px, 5.45vw, 68px);
  }

  .campaign-cta__tel {
    column-gap: clamp(6px, 0.73vw, 8px);
    width: clamp(220px, 24.55vw, 270px);
    min-height: clamp(50px, 5.27vw, 58px);
    padding:
      clamp(4px, 0.45vw, 5px)
      clamp(8px, 0.91vw, 10px)
      clamp(4px, 0.45vw, 5px)
      clamp(11px, 1.27vw, 14px);
  }

  .campaign-cta__tel-icon {
    width: clamp(23px, 2.55vw, 28px);
    height: clamp(23px, 2.55vw, 28px);
  }

  .campaign-cta__tel-text strong {
    font-size: clamp(18px, 2.18vw, 24px);
  }

  .campaign-cta__tel-text small {
    font-size: clamp(9px, 1vw, 11px);
  }

  .campaign-cta__tel .c-button__arrow {
    margin-left: clamp(3px, 0.36vw, 4px);
  }

  .campaign-cta__main-button {
    gap: clamp(5px, 0.64vw, 7px);
    width: clamp(270px, 30vw, 330px);
    min-height: clamp(50px, 5.27vw, 58px);
    padding-inline: clamp(10px, 1.18vw, 13px);
    font-size: clamp(18px, 2vw, 22px);
  }

  .campaign-cta__free {
    min-width: clamp(36px, 3.91vw, 43px);
    height: clamp(27px, 2.91vw, 32px);
    font-size: clamp(14px, 1.55vw, 17px);
  }

  .campaign-cta__main-button .c-button__arrow {
    border-top-width: clamp(4px, 0.45vw, 5px);
    border-bottom-width: clamp(4px, 0.45vw, 5px);
    border-left-width: clamp(6px, 0.73vw, 8px);
  }
}

/* ========================================
  SP
======================================== */

@media screen and (max-width: 767px) {
  .campaign-cta {
    overflow: visible;
    background:
      url("../img/cta-bg-sp.jpg") center / cover no-repeat,
      linear-gradient(155deg, #287ee3 0%, #004abe 100%);
  }

  .campaign-cta__inner {
    width: 100%;
    min-height: 100vw;
    padding: 6.4vw 5.33vw 9.33vw;
  }

  .campaign-cta__man {
    top: -35px;
    bottom: auto;
    left: 0;
    width: 45.3vw;
  }

  .campaign-cta__content {
    align-items: stretch;
    min-height: 0;
    text-align: left;
  }

  /* SP：人物右側で2行 */
  .campaign-cta__headline {
    display: block;
    margin-left: 41.5vw;
    padding-top: 5.33vw;
    white-space: normal;
  }

  .campaign-cta__headline-line1 {
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
  }

  .campaign-cta__headline-after {
    display: inline;
    margin-left: 1.33vw;
    font-size: 6.2vw;
    line-height: 1.2;
  }

  .campaign-cta__headline-line2 {
    display: block;
    margin-top: 1.33vw;
    margin-left: 0;
    font-size: 6.9vw;
    line-height: 1.08;
  }

  .campaign-cta__2hours {
    width: 29.6vw;
    margin-right: 0;
  }

  /* SP：マイクロコピー2行 */
  .campaign-cta__campaign {
    align-self: center;
    margin: 6.93vw 0 4vw;
    padding: 0 7.2vw;
    font-size: 4.53vw;
    line-height: 1.35;
    text-align: center;
    white-space: normal;
  }

  .campaign-cta__campaign-line1,
  .campaign-cta__campaign-line2 {
    display: block;
  }

  .campaign-cta__campaign strong {
    font-size: 6.93vw;
  }

  .campaign-cta__campaign::before,
  .campaign-cta__campaign::after {
    top: 62%;
    width: 5.33vw;
  }

  /* SP：見積もりCTA → TELの順 */
  .campaign-cta__buttons {
    flex-direction: column;
    gap: 4.27vw;
  }

  .campaign-cta__main-button {
    order: 1;
    gap: 2.13vw;
    width: 100%;
    min-height: 15.2vw;
    padding-inline: 3.47vw;
    border-radius: 1.07vw;
    font-size: 5.6vw;
  }

  .campaign-cta__free {
    min-width: 11.2vw;
    height: 8.8vw;
    font-size: 4.27vw;
  }

  .campaign-cta__main-button .c-button__arrow {
    margin-left: 0.53vw;
    border-top-width: 1.33vw;
    border-bottom-width: 1.33vw;
    border-left-width: 2.13vw;
  }

  .campaign-cta__tel {
    order: 2;
    column-gap: 2.13vw;
    width: 89.3%;
    min-height: 12.8vw;
    padding: 1.33vw 2.67vw 1.33vw 3.73vw;
    border-radius: 1.07vw;
  }

  .campaign-cta__tel-icon {
    width: 6.4vw;
    height: 6.4vw;
  }

  .campaign-cta__tel-text strong {
    font-size: 5.33vw;
  }

  .campaign-cta__tel-text small {
    margin-top: 0.53vw;
    font-size: 2.93vw;
  }

  .campaign-cta__tel .c-button__arrow {
    margin-left: 0.53vw;
    border-top-width: 1.33vw;
    border-bottom-width: 1.33vw;
    border-left-width: 1.87vw;
  }
}

/* ========================================
  Factoring
======================================== */

.factoring {
  position: relative;
  overflow: hidden;
  background:
    url("../img/factoring-bg-pc.jpg") center / cover no-repeat,
    #d9effd;
}

.factoring__inner {
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: 5.56vw 5.56vw 6.25vw;
}

/* ========================================
  Heading
======================================== */

.factoring__heading {
  /* margin-bottom: 2.36vw; */
  text-align: center;
}

.factoring__eyebrow {
  margin: 0 0 0.9vw;
  color: #333;
  font-size: clamp(20px, 1.67vw, 24px);
  font-weight: 700;
  line-height: 1.35;
}

.factoring__heading h2 {
  position: relative;
  display: inline-block;
  margin: 0;
  padding: 0 3vw;
  color: #0752b7;
  font-size: clamp(20px, 1.94vw, 28px);
  font-weight: 700;
  line-height: 1.4;
}

.factoring__heading h2::before,
.factoring__heading h2::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 1.85vw;
  height: 1px;
  background: #0752b7;
}

.factoring__heading h2::before {
  left: 0;
  transform: rotate(47deg);
}

.factoring__heading h2::after {
  right: 0;
  transform: rotate(-47deg);
}

/* ========================================
  Factoring flow image
======================================== */

.factoring__flow {
  display: block;
  width: min(100%, 1075px);
  margin: 0 auto 4.86vw;
}

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

/* ========================================
  Comparison image
======================================== */

.factoring__comparison {
  width: min(100%, 885px);
  margin: 0 auto 4.86vw;
}

.factoring__section-title {
  margin: 0 0 1.74vw;
  color: #333;
  font-size: min(2.08vw, 28px);
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
}

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

.factoring__comparison-image img {
  display: block;
  width: 100%;
  height: auto;
}

/* ========================================
  Fee title
======================================== */

.factoring__fees {
  width: min(100%, 960px);
  margin: 0 auto;
}

.factoring__fees-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.7vw;
  margin: 0 0 1.6vw;
  color: #111;
  font-size: min(2vw, 24px);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
}

.factoring__fees-logo {
  display: block;
  width: 15vw;
  max-width: 180px;
  height: auto;
}

.factoring__fees-title > span {
  flex: 0 0 auto;
}

.factoring__fees-title strong {
  color: #0752b7;
  font-size: min(2.7vw, 28px);
  font-weight: 700;
}

/* ========================================
  Fee table - PC
======================================== */

.factoring__fee-table-pc-wrap {
  display: block;
  overflow: hidden;
  border-radius: 0.62vw;
}

.factoring__fee-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.factoring__fee-table th,
.factoring__fee-table td {
  border: 1px solid #d4e5f5;
  text-align: center;
}

.factoring__fee-table--pc thead th {
  padding: 0.72vw 0.35vw;
  color: #fff;
  background: #0752b7;
  font-size: min(0.83vw, 12px);
  font-weight: 700;
  line-height: 1.25;
}

.factoring__fee-num {
  font-family: "Roboto", sans-serif;
  font-size: min(1.39vw, 20px);
  line-height: 1;
}

.factoring__fee-table--pc thead th:first-child {
  width: 16%;
  background: #6684b5;
}

.factoring__fee-table--pc tbody th {
  padding: 0.72vw 0.35vw;
  color: #fff;
  background: #a6a6a6;
  font-size: min(1.04vw, 16px);
  font-weight: 700;
}

.factoring__fee-table--pc td {
  padding: 0.72vw 0.25vw;
  color: #333;
  background: rgba(255, 255, 255, 0.96);
  font-size: min(1.04vw, 18px);
  font-weight: 700;
  white-space: nowrap;
}

/* ========================================
  Fee table - SP
======================================== */

.factoring__fee-table-sp-wrap {
  display: none;
}

.factoring__note {
  margin: 0.85vw 0 0;
  color: #555;
  font-size: 0.78vw;
  line-height: 1.4;
  text-align: right;
}

/* ========================================
  Tablet
======================================== */

@media screen and (max-width: 1100px) {
  .factoring__inner {
    padding: 6vw 4vw;
  }

  .factoring__flow {
    width: min(100%, 980px);
  }

  .factoring__comparison {
    width: min(100%, 820px);
  }

  .factoring__fees {
    width: min(100%, 900px);
  }
}

/* ========================================
  SP
======================================== */

@media screen and (max-width: 767px) {
  .factoring {
    background:
      url("../img/factoring-bg-sp.jpg") center top / cover no-repeat,
      #d9effd;
  }

  .factoring__inner {
    width: 100%;
    padding: 12.8vw 5.33vw 13.33vw;
  }

  /* Heading */

  .factoring__heading {
    /* margin-bottom: 7.47vw; */
  }

  .factoring__eyebrow {
    margin-bottom: 3.2vw;
    font-size: 4.8vw;
    line-height: 1.35;
  }

  .factoring__heading h2 {
    display: block;
    padding: 0 7.47vw;
    font-size: 5.2vw;
    line-height: 1.45;
  }

  .factoring__heading h2::before,
  .factoring__heading h2::after {
    top: 76%;
    width: 7.2vw;
  }

  .factoring__heading h2::before {
    left: 0;
  }

  .factoring__heading h2::after {
    right: 0;
  }

  /* Flow */

  .factoring__flow {
    width: 100%;
    margin-bottom: 12.8vw;
  }

  /* Comparison */

  .factoring__comparison {
    width: 100%;
    margin-bottom: 13.33vw;
  }

  .factoring__section-title {
    margin-bottom: 6.4vw;
    font-size: 5.2vw;
    line-height: 1.35;
  }

  .factoring__comparison-image {
    width: 100%;
  }

  /* Fee title */

  .factoring__fees {
    width: 100%;
  }

  .factoring__fees-title {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 1.33vw;
    margin-bottom: 7.47vw;
    color: #111;
    font-size: 7.47vw;
    line-height: 1.7;
    text-align: left;
  }

  .factoring__fees-logo {
    width: 40vw;
    max-width: none;
  }

  .factoring__fees-title > span {
    font-size: 3.5vw;
    white-space: nowrap;
  }

  .factoring__fees-title strong {
    flex-basis: 100%;
    margin-top: 1.6vw;
    color: #0752b7;
    font-size: 5.2vw;
    line-height: 1.35;
  }

  /* Fee table */

  .factoring__fee-table-pc-wrap {
    display: none;
  }

  .factoring__fee-table-sp-wrap {
    display: block;
    overflow: hidden;
    border-radius: 2.13vw;
  }

  .factoring__fee-table--sp th,
  .factoring__fee-table--sp td {
    border: 1px solid #d4e5f5;
  }

  .factoring__fee-table--sp thead th {
    padding: 3.2vw 1.33vw;
    color: #fff;
    background: #a6a6a6;
    font-size: 4.27vw;
    font-weight: 700;
    line-height: 1.25;
  }

  .factoring__fee-table--sp thead th:first-child {
    width: 30%;
  }

  .factoring__fee-table--sp tbody th {
    padding: 3.35vw 1.33vw;
    color: #fff;
    background: #0752b7;
    font-size: 5.07vw;
    font-weight: 400;
    line-height: 1.2;
  }

  .factoring__fee-table--sp tbody th span {
    margin-left: 0.5vw;
    font-size: 3.2vw;
  }

  .factoring__fee-table--sp tbody td {
    padding: 3.35vw 1vw;
    color: #333;
    background: rgba(255, 255, 255, 0.96);
    font-size: 4vw;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
  }

  .factoring__note {
    margin-top: 3.2vw;
    font-size: 3.2vw;
    line-height: 1.4;
    text-align: left;
  }
}

/* ========================================
  Flow
======================================== */

.flow {
  overflow: hidden;
  background: #edf6ff;
}

.flow__inner {
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: 5.9vw 5.56vw 6.25vw;
}

/* ========================================
  Heading
======================================== */

.flow__heading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1vw;
  margin-bottom: 3vw;
}

.flow__heading-badge {
  position: relative;
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  /* min-width: 15.2vw; */
  padding: 0.42vw 0.9vw 0.5vw;
  color: #0752b7;
  border: 2px solid #0752b7;
  font-size: min(1.56vw, 28px);
  font-weight: 700;
  font-style: italic;
  line-height: 1;
  transform: skewX(-4deg);
  background: #fff;
}

.flow__heading-badge > * {
  transform: skewX(4deg);
}

.flow__heading-badge span {
  font-family: "Roboto", sans-serif;
  font-size: min(3.33vw, 48px);
  font-style: italic;
  font-weight: 700;
}

.flow__heading h2 {
  margin: 0;
  color: #333;
  font-size: min(1.56vw, 28px);
  font-weight: 700;
  line-height: 1.2;
}

/* ========================================
  PC / Tablet steps
======================================== */

.flow__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5.45vw;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.flow__item {
  position: relative;
  min-width: 0;
}

.flow__item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 12.65vw;
  right: -3.8vw;
  width: 0;
  height: 0;
  border-top: 1.15vw solid transparent;
  border-bottom: 1.15vw solid transparent;
  border-left: 1.45vw solid #d8e9ff;
}

.flow__step {
  margin: 0 0 1.55vw;
  color: #0752b7;
  font-size: min(2.35vw, 24px);
  font-style: italic;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  font-family: "Roboto", sans-serif;
}

.flow__step span {
  font-size: min(3.2vw, 32px);
}

.flow__content h3 {
  display: flex;
  align-items: center;
  justify-content: center;
  /* min-height: 3.75vw; */
  margin: 0;
  padding: 0.55vw 1vw;
  color: #fff;
  background: #0752b7;
  font-size: min(1.55vw, 18px);
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
}

.flow__image-wrap {
  display: block;
}

.flow__image {
  display: block;
  width: min(100%, 13.8vw);
  height: auto;
  margin: 1.4vw auto 1.2vw;
}

.flow__text {
  margin: 0;
  color: #333;
  font-size: min(1.25vw, 18px);
  line-height: 1.58;
}

/* ========================================
  Tablet
======================================== */

@media screen and (max-width: 1100px) {
  .flow__inner {
    padding: 6vw 4vw;
  }

  .flow__list {
    gap: 4vw;
  }

  .flow__item:not(:last-child)::after {
    right: -2.75vw;
  }

  .flow__text {
    font-size: clamp(13px, 1.25vw, 18px);
  }
}

/* ========================================
  SP
======================================== */

@media screen and (max-width: 767px) {
  .flow__inner {
    width: 100%;
    padding: 13.33vw 5.33vw 14.67vw;
  }

  /* Heading */

  .flow__heading {
    gap: 3.47vw;
    margin-bottom: 11.2vw;
  }

  .flow__heading-badge {
    min-width: 37.6vw;
    padding: 2.13vw 3.47vw 2.4vw;
    border-width: 0.53vw;
    font-size: 4vw;
  }

  .flow__heading-badge span {
    margin: 0 0.53vw;
    font-size: 8.53vw;
  }

  .flow__heading h2 {
    font-size: 7.47vw;
    white-space: nowrap;
  }

  /* Step list */

  .flow__list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8.8vw;
    max-width: none;
  }

  .flow__item {
    position: relative;
    display: grid;
    grid-template-columns: 23.47vw minmax(0, 1fr);
    column-gap: 3.2vw;
    align-items: start;
  }

  /* PC用の横矢印はSPでは消す */
  .flow__item:not(:last-child)::after {
    display: none;
  }

  /* 左側：STEP */

  .flow__step {
    grid-column: 1;
    grid-row: 1;
    margin: 1.6vw 0 3.47vw;
    color: #0752b7;
    font-size: 5.33vw;
    font-style: italic;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
  }

  .flow__step span {
    margin-left: 0.4vw;
    font-size: 7.47vw;
  }

  /* 中身を親gridに展開 */
  .flow__content {
    display: contents;
  }

  /* 左側：画像 */

  .flow__image-wrap {
    grid-column: 1;
    grid-row: 2;
    display: block;
    align-self: start;
    justify-self: center;
  }

  .flow__image {
    display: block;
    width: 20vw;
    height: auto;
    margin: 0;
  }

  /* 矢印は画像の下に固定 */
  .flow__item:not(:last-child) .flow__image-wrap {
    position: relative;
  }

  .flow__item:not(:last-child) .flow__image-wrap::after {
    content: "";
    position: absolute;
    top: calc(100% + 3.2vw);
    left: 50%;
    width: 0;
    height: 0;
    transform: translateX(-50%);
    border-top: 2.67vw solid #d8e9ff;
    border-right: 4vw solid transparent;
    border-bottom: 0;
    border-left: 4vw solid transparent;
  }

  /* 右側：見出し */

  .flow__content h3 {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 7.47vw;
    margin: 0;
    padding: 1.47vw 2.67vw;
    color: #fff;
    background: #0752b7;
    font-size: 4vw;
    font-weight: 700;
    line-height: 1.25;
    text-align: center;
  }

  /* 右側：説明文 */

  .flow__text {
    grid-column: 2;
    grid-row: 2;
    width: 100%;
    /* margin: 3.2vw 0 0; */
    color: #333;
    font-size: 3.73vw;
    line-height: 1.55;
  }

  .flow__text br {
    display: none;
  }
}

/* ========================================
  Case
======================================== */

.case {
  overflow: hidden;
  background: #ffffff;
}

.case__inner {
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: 90px 0 96px;
}

.case__title {
  margin: 0 0 50px;
  color: #333333;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
}

.case__slider-wrap {
  position: relative;
  width: min(100%, 1120px);
  margin: 0 auto;
}

/* ========================================
  Slick
======================================== */

.case__slider {
  width: 880px; /* 280px × 3 + 20px × 2 */
  max-width: 100%;
  margin: 0 auto;
}

.case__slider .slick-list {
  overflow: hidden;
  padding: 20px 0;
    margin: -20px 0;
}

.case__slider .slick-track {
  display: flex;
  align-items: stretch;
  gap: 20px;
}

.case__slider .slick-slide {
  width: 280px;
  height: auto;
  /* margin-right: 20px; */
  padding: 0;
}

.case__slider .slick-slide > div {
  display: flex;
  justify-content: center;
  height: 100%;
  box-sizing: border-box;
}

.case__slider .case-card {
  height: 100%;
}

/* ========================================
  Card
======================================== */

.case-card {
  display: flex;
  flex-direction: column;
  width: 280px;
  overflow: hidden;
  border: 1px solid #e5eefa;
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 0 5px rgba(15, 84, 192, 0.1);
}

.case-card__image-wrap {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 155px;
  flex-shrink: 0;
  background: #eef5fb;
}

.case-card__label {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  min-width: 64px;
  padding: 7px 10px 8px;
  color: #ffffff;
  background: #0752b7;
  border-radius: 7px 0 6px 0;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  text-align: center;
}

.case-card__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ========================================
  Card body
======================================== */

.case-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 16px;
}

.case-card__body h3 {
  margin: 0 0 14px;
  color: #0752b7;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: -0.03em;
}

.case-card__body p {
  margin: 0;
  color: #333333;
  font-size: 14px;
  line-height: 1.7;
  letter-spacing: -0.03em;
}

/* ========================================
  Meta
======================================== */

.case-card__meta {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 6px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid #d8d8d8;
  color: #999999;
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
}

.case-card__body p + .case-card__meta {
  margin-top: 20px;
}

.case-card__meta span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 23px;
  padding: 4px 6px;
  border: 1px solid #c9c9c9;
  border-radius: 3px;
  color: #999999;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
}

.case-card__meta strong {
  color: #999999;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
}

/* ========================================
  Arrows
======================================== */

.case__arrow {
  position: absolute;
  top: 50%;
  z-index: 5;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #0752b7;
  cursor: pointer;
  transform: translateY(-50%);
}

.case__arrow span {
  display: block;
  width: 0;
  height: 0;
}

.case__arrow--prev {
  left: 70px;
}

.case__arrow--prev span {
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-right: 9px solid #ffffff;
  transform: translateX(-1px);
}

.case__arrow--next {
  right: 70px;
}

.case__arrow--next span {
  border-top: 7px solid transparent;
  border-bottom: 7px solid transparent;
  border-left: 9px solid #ffffff;
  transform: translateX(1px);
}

/* ========================================
  Tablet
======================================== */

@media screen and (max-width: 1200px) {
  .case__inner {
    padding: 72px 0 80px;
  }

  .case__title {
    margin-bottom: 4.17vw;
    font-size: clamp(24px, 2.5vw, 30px);
  }

  .case__slider-wrap {
    width: min(100%, 1000px);
  }

  .case__slider {
    width: clamp(748px, 73.33vw, 880px);
  }

  .case__slider .slick-slide {
    width: clamp(236px, 23.33vw, 280px);
    /* margin-right: clamp(16px, 1.67vw, 20px); */
  }

  .case-card {
    width: clamp(236px, 23.33vw, 280px);
    border-radius: clamp(6px, 0.67vw, 8px);
  }

  .case-card__image-wrap {
    height: clamp(130px, 12.92vw, 155px);
  }

  .case-card__label {
    min-width: clamp(56px, 5.33vw, 64px);
    padding:
      clamp(6px, 0.58vw, 7px)
      clamp(8px, 0.83vw, 10px)
      clamp(7px, 0.67vw, 8px);
    border-radius: clamp(6px, 0.58vw, 7px) 0 clamp(5px, 0.5vw, 6px) 0;
    font-size: clamp(12px, 1.17vw, 14px);
  }

  .case-card__body {
    padding: clamp(14px, 1.33vw, 16px);
  }

  .case-card__body h3 {
    margin-bottom: clamp(11px, 1.17vw, 14px);
    font-size: clamp(15px, 1.42vw, 17px);
  }

  .case-card__body p {
    font-size: clamp(12px, 1.17vw, 14px);
  }

  .case-card__body p + .case-card__meta {
    margin-top: clamp(16px, 1.67vw, 20px);
  }

  .case-card__meta {
    gap: clamp(4px, 0.42vw, 6px);
    padding-top: clamp(12px, 1.17vw, 14px);
    font-size: clamp(11px, 1vw, 12px);
  }

  .case-card__meta span {
    min-height: clamp(20px, 1.92vw, 23px);
    padding:
      clamp(3px, 0.33vw, 4px)
      clamp(5px, 0.5vw, 6px);
    font-size: clamp(11px, 1vw, 12px);
  }

  .case-card__meta strong {
    font-size: clamp(12px, 1.08vw, 13px);
  }

  .case__arrow {
    width: clamp(34px, 3.33vw, 40px);
    height: clamp(34px, 3.33vw, 40px);
  }

  .case__arrow--prev {
    left: clamp(20px, 5.83vw, 70px);
  }

  .case__arrow--next {
    right: clamp(20px, 5.83vw, 70px);
  }
}

/* ========================================
  SP
======================================== */

@media screen and (max-width: 767px) {
  .case__inner {
    width: 100%;
    padding: 13.33vw 0 14.67vw;
  }

  .case__title {
    margin-bottom: 8vw;
    font-size: 7.47vw;
    line-height: 1.35;
  }

  .case__slider-wrap {
    width: 100%;
    padding: 0 10.67vw;
  }

  .case__slider {
    width: 100%;
  }

  .case__slider .slick-track{
    gap: 0;
  }

  .case__slider .slick-slide {
    width: auto;
    margin-right: 0;
    padding: 0;
  }

  .case__slider .slick-slide > div {
    justify-content: center;
    height: 100%;
  }

  .case-card {
    width: 100%;
    border-radius: 2.13vw;
  }

  .case-card__image-wrap {
    height: 42.67vw;
  }

  .case-card__label {
    min-width: auto;
    padding: 1.87vw 2.67vw 2.13vw;
    border-radius: 2.13vw 0 1.33vw 0;
    font-size: 4.27vw;
  }

  .case-card__body {
    padding: 4.8vw 4vw 4.8vw;
  }

  .case-card__body h3 {
    margin-bottom: 4.27vw;
    font-size: 4.3vw;
    line-height: 1.55;
    letter-spacing: -0.04em;
  }

  .case-card__body p {
    font-size: 3.6vw;
    line-height: 1.7;
    letter-spacing: -0.04em;
  }

  .case-card__body p + .case-card__meta {
    margin-top: 5.33vw;
  }

  .case-card__meta {
    gap: 2.13vw;
    padding-top: 4.27vw;
    font-size: 3.73vw;
    white-space: nowrap;
  }

  .case-card__meta span {
    min-height: 6.4vw;
    padding: 1.07vw 1.6vw;
    border-radius: 0.8vw;
    font-size: 3.6vw;
  }

  .case-card__meta strong {
    font-size: 3.6vw;
  }

  .case__arrow {
    width: 6.53vw;
    height: 6.53vw;
  }

  .case__arrow--prev {
    left: 1.6vw;
  }

  .case__arrow--next {
    right: 1.6vw;
  }

  .case__arrow--prev span {
    border-top-width: 1.6vw;
    border-bottom-width: 1.6vw;
    border-right-width: 2.13vw;
  }

  .case__arrow--next span {
    border-top-width: 1.6vw;
    border-bottom-width: 1.6vw;
    border-left-width: 2.13vw;
  }
}

/* ========================================
  FAQ
======================================== */

.faq {
  background: #ffffff;
}

.faq__inner {
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: 90px 40px 110px;
}

.faq__title {
  margin: 0 0 56px;
  color: #333333;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
}

.faq__list {
  width: min(100%, 780px);
  margin: 0 auto;
  border: 1px solid #d6e8ff;
  border-bottom: 0;
}

/* ========================================
  Item
======================================== */

.faq__item {
  border-bottom: 1px solid #d6e8ff;
}

/* ========================================
  Question
======================================== */

.faq__question {
  display: grid;
  grid-template-columns: 46px 1fr 22px;
  align-items: center;
  column-gap: 18px;
  width: 100%;
  min-height: 62px;
  padding: 13px 30px;
  border: 0;
  background: #fdfdfd;
  color: #333333;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

/* 開いている時だけ質問部分を青背景に */
.faq__item.is-open .faq__question {
  background: #dcebff;
}

.faq__q {
  color: #0752b7;
  font-family: Arial, sans-serif;
  font-size: 38px;
  font-weight: 700;
  font-style: italic;
  line-height: 1;
}

.faq__question-text {
  color: #222222;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.45;
}

.faq__icon {
  position: relative;
  display: block;
  width: 14px;
  height: 14px;
  justify-self: end;
}

.faq__icon::before,
.faq__icon::after {
  content: "";
  position: absolute;
  top: 6px;
  width: 9px;
  height: 2px;
  background: #0752b7;
  border-radius: 999px;
  transition: transform 0.2s ease;
}

/* 閉じている時：下向き */
.faq__icon::before {
  left: 0;
  transform: rotate(45deg);
}

.faq__icon::after {
  right: 0;
  transform: rotate(-45deg);
}

/* 開いている時：上向き */
.faq__item.is-open .faq__icon::before {
  transform: rotate(-45deg);
}

.faq__item.is-open .faq__icon::after {
  transform: rotate(45deg);
}

/* ========================================
  Answer
======================================== */

.faq__answer {
  display: none;
  background: #ffffff;
}

.faq__item.is-open .faq__answer {
  display: block;
}

.faq__answer p {
  margin: 0;
  padding: 20px 30px 22px;
  color: #222222;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.75;
}

/* ========================================
  SP
======================================== */

@media screen and (max-width: 767px) {
  .faq__inner {
    width: 100%;
    padding: 13.33vw 5.33vw 14.67vw;
  }

  .faq__title {
    margin-bottom: 10.67vw;
    font-size: 7.47vw;
    line-height: 1.35;
  }

  .faq__list {
    width: 100%;
  }

  .faq__question {
    grid-template-columns: 11.2vw 1fr 4.8vw;
    column-gap: 3.2vw;
    min-height: 16vw;
    padding: 4vw 4vw;
  }

  .faq__q {
    font-size: 10.67vw;
  }

  .faq__question-text {
    font-size: 4.27vw;
    line-height: 1.4;
  }

  .faq__icon {
    width: 4vw;
    height: 4vw;
  }

  .faq__icon::before,
  .faq__icon::after {
    top: 1.87vw;
    width: 2.67vw;
    height: 0.53vw;
  }

  .faq__answer p {
    padding: 4.27vw 4vw 5.33vw;
    font-size: 3.73vw;
    line-height: 1.75;
  }
}

/* ========================================
  Contact
======================================== */

.contact {
  position: relative;
  overflow: hidden;
  background: #dcebff;
}

.contact__inner {
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: 72px 80px 70px;
}

.contact__content {
  display: grid;
  grid-template-columns: minmax(0, 480px) minmax(0, 560px);
  justify-content: center;
  align-items: start;
  column-gap: 80px;
}

.contact__left {
  position: static;
  min-height: 650px;
  /* padding-top: 115px; */
  padding-bottom: 260px;
  text-align: center;
}

/* Campaign */

.contact__campaign {
  color: #ff5a13;
  font-weight: 700;
  text-align: center;
}

.contact__campaign-small {
  margin: 0 0 6px;
  font-size: 24px;
  line-height: 1;
}

.contact__campaign-main {
  position: relative;
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  margin: 0;
  font-size: 25px;
  line-height: 1.15;
}

.contact__campaign-main::before,
.contact__campaign-main::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 28px;
  height: 1px;
  background: #ff5a13;
}

.contact__campaign-main::before {
  left: -46px;
  transform: rotate(47deg);
}

.contact__campaign-main::after {
  right: -46px;
  transform: rotate(-47deg);
}

.contact__campaign-main strong {
  font-size: 40px;
  line-height: 0.9;
}

/* Free lead */

.contact__free-lead {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin-top: 30px;
}

.contact__free {
  display: inline-grid;
  place-items: center;
  width: 72px;
  height: 72px;
  color: #0752b7;
  border: 1px solid #0752b7;
  border-radius: 4px;
  background: #ffffff;
  font-size: 28px;
  font-weight: 700;
}

.contact__free-lead p {
  margin: 0;
  color: #0752b7;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.55;
  text-align: left;
}

/* Results */

.contact__results {
  width: 390px;
  margin: 70px auto 0;
}

.contact__results-images {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.contact__result-image {
  display: block;
  width: 100%;
  height: auto;
}

.contact__note {
  margin: 14px 0 0;
  color: #333333;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.5;
  text-align: left;
}

/* Awards */

.contact__awards {
  display: none;
}

/* Man
  PCでは .contact を基準に下端配置
*/

.contact__man {
  position: absolute;
  left: calc(50% - 320px);
  bottom: 0;
  display: block;
  width: 300px;
  height: auto;
  transform: translateX(-50%);
  z-index: 1;
}

/* Form */

.contact__form-wrap {
  width: 100%;
}

.contact__form {
  width: 100%;
  padding: 34px 40px 36px;
  border-radius: 10px;
}

.fv-form__required--optional {
  background: #999999;
}

.fv-form textarea {
  width: 100%;
  height: 108px;
  padding: 14px 15px;
  color: #333333;
  background: #fefbf2;
  border: 1px solid #d9d9d9;
  border-radius: 3px;
  font-size: 15px;
  line-height: 1.6;
  resize: vertical;
}

.fv-form textarea::placeholder {
  color: #cfcac0;
}

/* ========================================
  Tablet
======================================== */

@media screen and (max-width: 1100px) {
  .contact__inner {
    padding-right: 40px;
    padding-left: 40px;
  }

  .contact__content {
    grid-template-columns: minmax(0, 430px) minmax(0, 520px);
    column-gap: 40px;
  }

  .contact__left {
    position: static;
    min-height: 610px;
    padding-bottom: 235px;
  }

  .contact__campaign-small {
    font-size: 22px;
  }

  .contact__campaign-main {
    font-size: 22px;
  }

  .contact__campaign-main strong {
    font-size: 36px;
  }

  .contact__free {
    width: 66px;
    height: 66px;
    font-size: 25px;
  }

  .contact__free-lead p {
    font-size: 23px;
  }

  .contact__results {
    width: 360px;
  }

  .contact__results-images {
    gap: 18px;
  }

  .contact__man {
    left: calc(50% - 290px);
    bottom: 1px;
    width: 270px;
  }
}

/* ========================================
  SP
======================================== */

@media screen and (max-width: 767px) {
  .contact__inner {
    width: 100%;
    padding: 8.53vw 5.33vw 12.8vw;
  }

  .contact__content {
    display: block;
  }

  .contact__left {
    position: relative;
    min-height: 0;
    padding-top: 0;
    padding-bottom: 0;
  }

  .contact__campaign-small {
    margin-bottom: 2.13vw;
    font-size: 5vw;
  }

  .contact__campaign-main {
    display: block;
    font-size: 5vw;
    line-height: 1.25;
  }

  .contact__campaign-main::before,
  .contact__campaign-main::after {
    top: 64%;
    width: 10.67vw;
  }

  .contact__campaign-main::before {
    left: 5.8vw;
  }

  .contact__campaign-main::after {
    right: 5.8vw;
  }

  .contact__campaign-main strong {
    margin: 0 1.07vw;
    font-size: 7.5vw;
  }

  .contact__campaign-main .sp_block {
    display: block;
  }

  .contact__free-lead {
    gap: 4.27vw;
    margin-top: 5.33vw;
  }

  .contact__free {
    width: 13.33vw;
    height: 10.33vw;
    font-size: 5vw;
  }

  .contact__free-lead p {
    font-size: 5.4vw;
    line-height: 1.45;
  }

  .contact__results {
    position: relative;
    width: 57.33vw;
    margin: 8.53vw 0 0 auto;
    z-index: 2;
  }

  .contact__results-images {
    gap: 3.73vw;
  }

  .contact__result-image {
    display: block;
    width: 100%;
    height: auto;
  }

  .contact__note {
    margin-top: 2.67vw;
    font-size: 3.2vw;
    line-height: 1.5;
    text-align: left;
  }

  .contact__man {
    position: absolute;
    right: auto;
    bottom: auto;
    left: -1.6vw;
    top: 48.33vw;
    width: 39.47vw;
    transform: none;
    z-index: 1;
  }

  .contact__awards {
    display: none;
  }

  .contact__form-wrap {
    position: relative;
    z-index: 3;
    margin-top: 5.33vw;
  }

  .contact__form {
    padding: 8.53vw 5.33vw 8vw;
    border-radius: 2.67vw;
  }

  .fv-form__group {
    margin-bottom: 5.33vw;
  }

  .fv-form__group label,
  .fv-form__privacy-title {
    gap: 2.13vw;
    margin-bottom: 2.67vw;
    font-size: 3.7vw;
  }

  .fv-form__required {
    min-width: 8vw;
    height: 5.33vw;
    border-radius: 0.8vw;
    font-size: 3.2vw;
  }

  .fv-form .select {
    height: 13.33vw;
    padding: 0 4vw;
    font-size: 3.7vw;
    border-radius: 1.07vw;
  }
  
  .fv-form input[type="text"],
  .fv-form input[type="email"],
  .fv-form input[type="tel"] {
    height: 13.33vw;
    padding: 0 4vw;
    font-size: 3.7vw;
    border-radius: 1.07vw;
  }

  .fv-form textarea {
    height: 32vw;
    padding: 3.2vw 4vw;
    font-size: 3.7vw;
    border-radius: 1.07vw;
  }

  .fv-form__privacy {
    margin: 5.33vw 0 9.6vw;
  }

  .fv-form__check {
    gap: 2.13vw;
    font-size: 3.7vw;
    line-height: 1.45;
  }

  .fv-form__check input {
    width: 5.33vw;
    height: 5.33vw;
  }

  .fv-form__check input:checked::after {
    width: 1.6vw;
    height: 2.93vw;
    margin-top: 0.53vw;
    border-right-width: 0.53vw;
    border-bottom-width: 0.53vw;
  }

  .fv-form__submit {
    width: 100%;
    min-height: 17.07vw;
    padding: 3.2vw 4vw;
    font-size: 5.2vw;
    box-shadow: 0 1.07vw 0 rgba(207, 80, 18, 0.25);
  }

  .fv-form__submit .c-button__arrow {
    margin-left: 1.07vw;
    border-top-width: 1.87vw;
    border-bottom-width: 1.87vw;
    border-left-width: 2.67vw;
  }
}

/* ========================================
  Certification
======================================== */

.certification {
  background: #3d6faf;
}

.certification__inner {
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: 70px 40px 54px;
}

.certification__box {
  width: min(100%, 960px);
  margin: 0 auto;
  padding: 42px 72px 46px;
  background: #ffffff;
  border-radius: 24px;
  text-align: center;
}

.certification__title {
  margin: 0 0 28px;
  color: #0752b7;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.4;
}

.certification__lead {
  margin: 0 0 28px;
  color: #333333;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.65;
}

.certification__text {
  margin: 0;
  color: #333333;
  font-size: 17px;
  font-weight: 500;
  line-height: 1.75;
}

.certification__meta {
  margin: 30px 0 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
  text-align: center;
}

/* ========================================
  Tablet
======================================== */

@media screen and (max-width: 1100px) {
  .certification__inner {
    padding: 64px 40px 50px;
  }

  .certification__box {
    width: min(100%, 860px);
    padding: 38px 52px 42px;
    border-radius: 22px;
  }

  .certification__title {
    font-size: 24px;
  }

  .certification__lead {
    font-size: 18px;
  }

  .certification__text {
    font-size: 16px;
  }

  .certification__meta {
    font-size: 15px;
  }
}

/* ========================================
  SP
======================================== */

@media screen and (max-width: 767px) {
  .certification__inner {
    width: 100%;
    padding: 8.53vw 5.33vw 8vw;
  }

  .certification__box {
    width: 100%;
    padding: 7.47vw 5.33vw 6.93vw;
    border-radius: 3.2vw;
    text-align: left;
  }

  .certification__title {
    margin-bottom: 5.33vw;
    color: #0752b7;
    font-size: 4.7vw;
    font-weight: 700;
    line-height: 1.45;
    text-align: center;
  }

  .certification__lead {
    margin-bottom: 5.33vw;
    font-size: 3.6svw;
    font-weight: 700;
    line-height: 1.7;
  }

  .certification__text {
    font-size: 3.3vw;
    line-height: 1.75;
  }

  .certification__lead br,
  .certification__text br {
    display: none;
  }

  .certification__meta {
    margin-top: 4.27vw;
    color: rgba(255, 255, 255, 0.8);
    font-size: 3.2vw;
    line-height: 1.7;
    text-align: right;
  }
}

/* ========================================
  Footer / Company
======================================== */

.site-footer {
  background: #3d6faf;
}

.site-footer__main {
  overflow: hidden;
  background: #223e72;
  border-radius: 150px 150px 0 0;
}

.site-footer__inner {
  width: min(100%, 1120px);
  margin: 0 auto;
  padding: 72px 40px 90px;
}

.site-footer__top {
  display: grid;
  grid-template-columns: 270px minmax(0, 1fr);
  column-gap: 70px;
  align-items: start;
}

.site-footer__logo img {
  display: block;
  width: 250px;
  height: auto;
}

/* Company table */

.company-info {
  margin: 0;
  color: #ffffff;
}

.company-info__row {
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  column-gap: 42px;
  padding: 20px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.18);
}

.company-info__row:first-child {
  padding-top: 0;
}

.company-info dt {
  color: rgba(255, 255, 255, 0.75);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.65;
}

.company-info dd {
  margin: 0;
  color: #ffffff;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.65;
}

.company-info a {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Survey box */

.survey-box {
  display: grid;
  grid-template-columns: 38% minmax(0, 1fr);
  column-gap: 52px;
  width: 100%;
  margin-top: 72px;
  padding: 44px 52px;
  color: #ffffff;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 12px;
}

.survey-box__lead {
  display: flex;
  align-items: center;
  padding-right: 42px;
  border-right: 1px solid rgba(255, 255, 255, 0.35);
}

.survey-box__lead p {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.85;
}

.survey-box__heading {
  margin: 0 0 22px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.65;
}

.survey-info {
  margin: 0;
}

.survey-info div {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  column-gap: 22px;
  margin-bottom: 10px;
}

.survey-info div:last-child {
  margin-bottom: 0;
}

.survey-info dt {
  color: rgba(255, 255, 255, 0.72);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.65;
}

.survey-info dd {
  margin: 0;
  color: #ffffff;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.65;
}

.survey-info a {
  color: #ffffff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Bottom footer */

.site-footer__bottom {
  background: #333333;
}

.site-footer__bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100%, 1120px);
  margin: 0 auto;
  padding: 22px 40px;
}

.site-footer__privacy {
  color: #d9d9d9;
  font-size: 13px;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.site-footer__copy {
  margin: 0;
  color: #aaaaaa;
  font-size: 12px;
  font-weight: 500;
}

.pc-only {
  display: inline;
}

.sp-only {
  display: none;
}

/* ========================================
  Tablet
======================================== */

@media screen and (max-width: 1100px) {
  .site-footer__main {
    border-radius: 100px 100px 0 0;
  }

  .site-footer__inner {
    padding: 64px 40px 80px;
  }

  .site-footer__top {
    grid-template-columns: 230px minmax(0, 1fr);
    column-gap: 40px;
  }

  .site-footer__logo img {
    width: 220px;
  }

  .company-info__row {
    grid-template-columns: 150px minmax(0, 1fr);
    column-gap: 30px;
  }

  .survey-box {
    column-gap: 36px;
    padding: 38px 36px;
  }

  .survey-box__lead {
    padding-right: 30px;
  }
}

/* ========================================
  SP
======================================== */

@media screen and (max-width: 767px) {
  .site-footer__main {
    border-radius: 0;
  }

  .site-footer__inner {
    width: 100%;
    padding: 14.93vw 5.33vw 8.53vw;
  }

  .site-footer__top {
    display: block;
  }

  .site-footer__logo {
    margin-bottom: 8.53vw;
  }

  .site-footer__logo img {
    width: 72vw;
    max-width: 330px;
  }

  .company-info__row {
    display: grid;
    grid-template-columns: 28vw minmax(0, 1fr);
    column-gap: 5.33vw;
    padding: 4.8vw 0;
  }

  .company-info__row:first-child {
    padding-top: 0;
  }

  .company-info dt {
    font-size: 3.3vw;
    line-height: 1.55;
  }

  .company-info dd {
    font-size: 3.3vw;
    line-height: 1.55;
  }

  .survey-box {
    display: block;
    margin-top: 9.6vw;
    padding: 7.47vw 5.33vw 7.47vw;
    border-radius: 5.33vw;
    background: rgba(255, 255, 255, 0.06);
  }

  .survey-box__lead {
    display: block;
    padding: 0 0 6.4vw;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.35);
  }

  .survey-box__lead p {
    font-size: 3.3vw;
    line-height: 1.75;
  }

  .survey-box__detail {
    padding-top: 6.4vw;
  }

  .survey-box__heading {
    margin-bottom: 5.33vw;
    font-size: 3.3vw;
    line-height: 1.65;
  }

  .survey-info div {
    grid-template-columns: 24vw minmax(0, 1fr);
    column-gap: 4vw;
    margin-bottom: 2.67vw;
  }

  .survey-info dt {
    font-size: 3.3vw;
    line-height: 1.6;
  }

  .survey-info dd {
    font-size: 3.3vw;
    line-height: 1.6;
  }

  .site-footer__bottom-inner {
    display: block;
    width: 100%;
    padding: 6.4vw 5.33vw 6.93vw;
    text-align: center;
  }

  .site-footer__privacy {
    font-size: 4vw;
  }

  .site-footer__copy {
    margin-top: 4.27vw;
    font-size: 3.2vw;
  }

  .pc-only {
    display: none;
  }

  .sp-only {
    display: inline;
  }
}


/* ========================================
  Confirm Page
======================================== */

.confirm-page {
  margin: 0;
  color: #333333;
  background: #dcebff;
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  line-height: 1.6;
}

/* ========================================
  Confirm Header
======================================== */

.confirm-header {
  background: #ffffff;
}

.confirm-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100%, 1440px);
  height: 80px;
  margin: 0 auto;
  padding: 0 80px;
}

.confirm-header__logo {
  display: block;
  width: 244px;
}

.confirm-header__logo img {
  display: block;
  width: 100%;
  height: auto;
}

.confirm-header__buttons {
  display: flex;
  align-items: center;
  gap: 16px;
}

.confirm-header__tel {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  column-gap: 8px;
  min-width: 200px;
  min-height: 48px;
  padding: 5px 10px 5px 14px;
  color: #0752b7;
  border: 1px solid #0752b7;
  border-radius: 5px;
  background: #ffffff;
  text-decoration: none;
}

.confirm-header__tel-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  fill: currentColor;
}

.confirm-header__tel-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.05;
}

.confirm-header__tel-content strong {
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.confirm-header__tel-content small {
  margin-top: 2px;
  color: #333333;
  font-size: 10px;
}

.confirm-header__arrow {
  display: block;
  width: 0;
  height: 0;
  margin-left: 4px;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 7px solid #0752b7;
}

.confirm-header__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  padding: 0 16px;
  color: #ffffff;
  background: #ff5a13;
  border-radius: 5px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
}

.confirm-header__cta span {
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  height: 25px;
  padding-inline: 4px;
  color: #ff5a13;
  background: #ffffff;
  border-radius: 2px;
  font-size: 14px;
  font-weight: 700;
}

.confirm-header__cta i {
  display: block;
  width: 0;
  height: 0;
  margin-left: 2px;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 8px solid #ffffff;
}

/* ========================================
  Confirm Main
======================================== */

.confirm-main {
  background: #dcebff;
}

.confirm {
  min-height: calc(100vh - 80px - 58px);
}

.confirm__inner {
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: 56px 40px 88px;
}

.confirm__title {
  margin: 0 0 54px;
  color: #0752b7;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
}

.confirm__box {
  width: min(100%, 800px);
  margin: 0 auto;
  padding: 48px 40px 38px;
  background: #ffffff;
  border-radius: 8px;
}

.confirm-list {
  width: 100%;
  margin: 0;
}

.confirm-list__row {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  column-gap: 24px;
  align-items: center;
  min-height: 56px;
  padding: 18px 0;
  border-bottom: 1px solid #bfbfbf;
}

.confirm-list__row:first-child {
  padding-top: 0;
}

.confirm-list__row dt {
  color: #0752b7;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  text-align: right;
}

.confirm-list__row dd {
  margin: 0;
  color: #333333;
  font-size: 16px;
  line-height: 1.6;
}

.confirm__buttons {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  margin-top: 58px;
}

.confirm__back,
.confirm__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-width: 150px;
  min-height: 54px;
  padding: 10px 24px;
  border: 0;
  border-radius: 999px;
  color: #ffffff;
  font: inherit;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
}

.confirm__back {
  background: #aaaaaa;
}

.confirm__back span {
  display: block;
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-right: 8px solid #ffffff;
}

.confirm__submit {
  background: #ff5a13;
}

.confirm__submit span {
  display: block;
  width: 0;
  height: 0;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 8px solid #ffffff;
}

/* ========================================
  Confirm Footer
======================================== */

.confirm-footer {
  background: #333333;
}

.confirm-footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100%, 1120px);
  min-height: 58px;
  margin: 0 auto;
  padding: 16px 40px;
}

.confirm-footer__privacy {
  color: #d9d9d9;
  font-size: 13px;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.confirm-footer__copy {
  margin: 0;
  color: #aaaaaa;
  font-size: 12px;
  font-weight: 500;
}

/* ========================================
  Confirm SP
======================================== */

@media screen and (max-width: 767px) {
  .confirm-header__inner {
    height: 60px;
    padding: 0 16px;
  }

  .confirm-header__logo {
    width: 155px;
    max-width: 42vw;
  }

  .confirm-header__buttons {
    gap: 0;
  }

  .confirm-header__tel {
    display: none;
  }

  .confirm-header__cta {
    min-height: 38px;
    padding: 0 12px;
    border-radius: 5px;
    font-size: 14px;
    gap: 6px;
  }

  .confirm-header__cta span {
    min-width: 31px;
    height: 24px;
    font-size: 13px;
    border-radius: 3px;
  }

  .confirm-header__cta i {
    margin-left: 3px;
    border-top-width: 5px;
    border-bottom-width: 5px;
    border-left-width: 7px;
  }

  .confirm {
    min-height: auto;
  }

  .confirm__inner {
    width: 100%;
    padding: 44px 20px 48px;
  }

  .confirm__title {
    margin-bottom: 34px;
    font-size: 5.7vw;
    line-height: 1.35;
  }

  .confirm__box {
    width: 100%;
    padding: 36px 20px 34px;
    border-radius: 8px;
  }

  .confirm-list__row {
    display: block;
    min-height: auto;
    padding: 18px 8px 17px;
    border-bottom: 1px solid #bfbfbf;
  }

  .confirm-list__row:first-child {
    padding-top: 0;
  }

  .confirm-list__row dt {
    margin-bottom: 10px;
    color: #0752b7;
    font-size: 3.7vw;
    line-height: 1.45;
    text-align: left;
  }

  .confirm-list__row dd {
    margin: 0;
    color: #333333;
    font-size: 3.7vw;
    line-height: 1.55;
  }

  .confirm__buttons {
    gap: 12px;
    margin-top: 36px;
  }

  .confirm__back,
  .confirm__submit {
    flex: 1;
    min-width: 0;
    min-height: 56px;
    padding: 12px 10px;
    border-radius: 999px;
    font-size: 3.6vw;
    white-space: nowrap;
  }

  .confirm__back span {
    border-top-width: 6px;
    border-bottom-width: 6px;
    border-right-width: 8px;
  }

  .confirm__submit span {
    border-top-width: 6px;
    border-bottom-width: 6px;
    border-left-width: 8px;
  }

  .confirm-footer__inner {
    display: block;
    width: 100%;
    min-height: 100px;
    padding: 24px 20px 26px;
    text-align: center;
  }

  .confirm-footer__privacy {
    font-size: 15px;
  }

  .confirm-footer__copy {
    margin-top: 14px;
    font-size: 12px;
  }
}

/* ========================================
  Thanks Page
======================================== */

.thanks-main {
  background: #dcebff;
}

.thanks {
  min-height: calc(100vh - 80px - 58px);
}

.thanks__inner {
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: 56px 40px 48px;
}

.thanks__title {
  margin: 0 0 46px;
  color: #0752b7;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.55;
  text-align: center;
}

.thanks__box {
  width: min(100%, 690px);
  margin: 0 auto;
  padding: 34px 40px 32px;
  background: #ffffff;
  border-radius: 8px;
}

.thanks__lead {
  margin: 0;
  color: #333333;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.75;
  text-align: center;
}

.thanks__phone-title {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 280px;
  min-height: 44px;
  margin: 32px 0 14px;
  color: #0752b7;
  border: 1px solid #0752b7;
  border-radius: 3px;
  background: #ffffff;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.35;
}

.thanks__text {
  margin: 0;
  color: #333333;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.75;
}

.thanks__prepare {
  margin: 18px 0 20px;
  padding: 18px 26px 20px;
  background: #dcebff;
  border-radius: 6px;
}

.thanks__prepare-title {
  margin: 0 0 12px;
  color: #0752b7;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
}

.thanks__prepare-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.thanks__prepare-list li {
  color: #333333;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.65;
}

.thanks__bottom-text {
  margin: 0;
  color: #333333;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.7;
}

.thanks__bottom-text a {
  color: #0752b7;
  font-weight: 700;
  text-decoration: none;
}

.thanks__top-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 160px;
  min-height: 54px;
  margin: 42px auto 0;
  color: #ffffff;
  background: #ff5a13;
  border-radius: 999px;
  box-shadow: 0 4px 0 rgba(207, 80, 18, 0.25);
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}

.thanks__top-button span {
  display: block;
  width: 0;
  height: 0;
  margin-left: 2px;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 8px solid #ffffff;
}

/* ========================================
  Thanks Footer
======================================== */

.thanks-footer {
  background: #333333;
}

.thanks-footer__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: min(100%, 1120px);
  min-height: 58px;
  margin: 0 auto;
  padding: 16px 40px;
}

.thanks-footer__privacy {
  color: #d9d9d9;
  font-size: 13px;
  font-weight: 500;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.thanks-footer__copy {
  margin: 0;
  color: #aaaaaa;
  font-size: 12px;
  font-weight: 500;
}

/* ========================================
  Thanks SP
======================================== */

@media screen and (max-width: 767px) {
  .thanks {
    min-height: auto;
  }

  .thanks__inner {
    width: 100%;
    padding: 45px 20px 50px;
  }

  .thanks__title {
    margin-bottom: 34px;
    font-size: 25px;
    line-height: 1.55;
  }

  .thanks__box {
    width: 100%;
    padding: 30px 20px 34px;
    border-radius: 7px;
  }

  .thanks__lead {
    font-size: 15px;
    line-height: 1.75;
    text-align: left;
  }

  .thanks__phone-title {
    width: 100%;
    min-height: 44px;
    margin: 26px 0 16px;
    border-radius: 3px;
    font-size: 16px;
  }

  .thanks__text {
    font-size: 15px;
    line-height: 1.75;
  }

  .thanks__prepare {
    margin: 20px 0 20px;
    padding: 16px 14px 18px;
    border-radius: 6px;
  }

  .thanks__prepare-title {
    margin-bottom: 12px;
    font-size: 16px;
    line-height: 1.65;
  }

  .thanks__prepare-list li {
    font-size: 14px;
    line-height: 1.7;
  }

  .thanks__bottom-text {
    font-size: 14px;
    line-height: 1.7;
  }

  .thanks__top-button {
    width: 138px;
    min-height: 48px;
    margin-top: 38px;
    font-size: 16px;
  }

  .thanks__top-button span {
    border-top-width: 5px;
    border-bottom-width: 5px;
    border-left-width: 7px;
  }

  .thanks-footer__inner {
    display: block;
    width: 100%;
    min-height: 104px;
    padding: 25px 20px 26px;
    text-align: center;
  }

  .thanks-footer__privacy {
    font-size: 14px;
  }

  .thanks-footer__copy {
    margin-top: 14px;
    font-size: 10px;
  }
}

/* ========================================
  Form Error
======================================== */

.fv-form__error {
  display: none;
  margin: 4px 0 8px;
  color: #ff1f2d;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}

.fv-form__group.is-error .fv-form__error,
.fv-form__privacy.is-error .fv-form__error {
  display: block;
}

.fv-form__group.is-error input,
.fv-form__group.is-error textarea {
  border-color: #ff1f2d;
  background: #fff0f0;
}

.fv-form__group.is-error input::placeholder,
.fv-form__group.is-error textarea::placeholder {
  color: #b5b5b5;
}

.fv-form__privacy.is-error .fv-form__check input {
  border-color: #ff1f2d;
  background: #fff0f0;
}

@media screen and (max-width: 767px) {
  .fv-form__error {
    margin: 1.6vw 0 2.13vw;
    font-size: 4vw;
    line-height: 1.45;
  }
}

/* ========================================
  Form Error
======================================== */

.fv-form__error {
  display: none;
  margin: 4px 0 8px;
  color: #ff1f2d;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}

.fv-form__group.is-error .fv-form__error,
.fv-form__privacy.is-error .fv-form__error {
  display: block;
}

.fv-form__group.is-error input,
.fv-form__group.is-error textarea {
  border-color: #ff1f2d;
  background: #fff0f0;
}

.fv-form__group.is-error input::placeholder,
.fv-form__group.is-error textarea::placeholder {
  color: #b5b5b5;
}

.fv-form__privacy.is-error .fv-form__check input {
  border-color: #ff1f2d;
  background: #fff0f0;
}

/* SP */
@media screen and (max-width: 767px) {
  .fv-form__error {
    margin: 1.6vw 0 2.13vw;
    font-size: 3.7vw;
    line-height: 1.45;
  }
}