:root {
  --color-primary: #007bff;
  --color-accent: #ffa011;
  --color-title: #208be9;
  --color-text: #273b68;
}
body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 176%;
  color: var(--color-text);
  margin: 0;
  letter-spacing: 2px;
}
.display_flex {
  display: flex;
  align-items: center;
  justify-content: center;
}
.section-title {
  font-size: clamp(24px, 4.2vw, 32px);
  color: var(--color-title);
  text-align: center;
  line-height: 144%;
  position: relative;
}
.section_img {
  position: absolute;
  top: -108px;
  left: 62%;
  transform: translateX(-50%);
}
h3,
h4 {
  color: var(--color-title);
}
p {
  margin: 0;
  color: var(--color-text);
}
.migiue_contact_button {
  display: none;
}
.container {
  width: 96%;
}
a:hover {
  transition: 0.3s;
}
@media (max-width: 480px) {
  .section-title {
    font-size: clamp(20px, 5.6vw, 26px);
    line-height: 156%;
  }
  .section-title__icon {
    padding: 0px 6px;
  }
}
/* ----------------------------- */
/* // ページヘッダー //
/* ----------------------------- */
.site-header {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  padding: 16px 0;
  z-index: 1000;
}

.header__inner {
  width: 86%;
  /* max-width: ;  */
  margin: 0 auto;
  background: #fff;
  border-radius: 100vmax;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 1%;
}

.logo-pill {
  width: 174px;
  padding: 0 2%;
  display: flex;
}
.logo-pill__img {
  object-fit: contain;
}

/* ナビ */
.header-nav__list {
  display: flex;
  align-items: center;
  gap: 2rem;
  list-style: none;
  margin: 0;
  padding: 0;
}
.header-nav__link {
  color: #1e335f;
  text-decoration: none;
  font-weight: 500;
  font-size: 0.95rem;
  transition: color 0.2s;
}
.header-nav__link:hover {
  color: #007bff;
}
/* CTA ボタン */
.btn-download {
  position: relative;
  display: inline-flex;
  align-items: center;
  background: var(--color-accent);
  color: #fff;
  padding: 8px 36px 8px 24px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.9rem;
  transition: background 0.2s;
}
.btn-download:hover {
  background: #e57c00;
}
.btn-download__icon {
  display: inline-block;
  margin-left: 0.3em;
  font-size: 1.2em;
}
.header-nav__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  right: 10px;
  width: 28px;
  height: 28px;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  transform: translateY(-50%);
  border-radius: 50%;
  background: #fff;
  color: var(--color-accent);
}
/* — 共通ボタン */
.btn {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  text-decoration: none;
  border-radius: 100vmax;
}
.btn--primary {
  background: var(--color-accent);
  color: #fff;
  padding: 0.75rem 1.5rem;
}
.btn__icon {
  display: inline-block;
  margin-left: 0.5rem;
}
@media (max-width: 1040px) {
  .header__inner {
    width: 94%;
  }
  .header-nav__list {
    gap: 1rem;
  }
  .header-nav__link {
    font-size: 14px;
  }
}
@media (max-width: 820px) {
  .logo-pill {
    width: 160px;
  }
  .header__inner {
    width: 96%;
  }
  .header-nav__list {
    gap: 0.8rem;
  }
  .header-nav__link {
    font-size: 12px;
  }
}
@media (max-width: 640px) {
  .header__inner {
    width: 98%;
  }
  .logo-pill {
    width: 108px;
  }
  .header-nav__link {
    font-size: 11px;
  }
  .btn-download {
    font-size: 12px;
    padding: 5px 32px 5px 18px;
  }
  .header-nav__list {
    gap: 8px;
  }
  .header-nav__arrow {
    width: 24px;
    height: 24px;
  }
}
@media (max-width: 420px) {
  .logo-pill {
    width: 90px;
    padding: 0 1%;
  }
  .header-nav__link {
    font-size: 11px;
  }
  .btn-download {
    font-size: 11px;
    padding: 4px 30px 4px 16px;
  }
  .header-nav__arrow {
    width: 22px;
    height: 22px;
  }
}
@media (max-width: 378px) {
  .header-nav__link,
  .btn-download {
    font-size: 10px;
  }
}
/* ----------------------------- */
/* // heroセクション //
/* ----------------------------- */
.hero {
  min-height: 88vh;
  /* height: 680px; */
  position: relative;
  padding: 96px 1rem 0;
  overflow: hidden;
}
.hero__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  min-width: 1140px;
  z-index: -1;
}
.hero__bg2 {
  position: absolute;
  top: -30px;
  right: 0px;
  width: 82%;
  z-index: -1;
}
.hero__inner {
  min-height: 76vh;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 1200px;
  height: 600px;
  margin: 0 auto;
  gap: 15vw;
}
.hero__copy {
  max-width: fit-content;
  color: #fff;
  padding-bottom: 80px;
}
.hero__title {
  font-size: 56px;
  font-weight: bold;
  line-height: 1.2;
  letter-spacing: 8px;
  margin-bottom: 1rem;
  text-shadow: 0px 0px 32px rgba(0, 0, 0, 0.4);
}
.hero__subtitle {
  font-size: 18px;
  line-height: 32px;
  letter-spacing: 4px;
  margin: 20px 20px 2rem;
  color: #fff;
  text-shadow: 0px 0px 32px rgba(0, 0, 0, 0.4);
}
.hero__visual {
  min-width: 320px;
  width: 25vw;
  max-width: 416px;
  aspect-ratio: 9/16;
  margin-top: 80px;
}
.hero__btn {
  width: 100%;
  height: 64px;
  padding-top: 16px;
  display: inline-block;
  border-radius: 38px;
  font-weight: 700;
  position: relative;
  text-align: center;
  transition: transform 0.4s cubic-bezier(0.8, 0, 0.2, 1) 0s;
}
.hero__btn .arrow_right {
  background: #fff;
  color: var(--color-accent);
}
.hero__wave {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 118%;
  height: 150px;
}
.hero_sp {
  display: none;
}
.hero__btn:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
}
.hero__btn:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  z-index: 0;
  background: #fff;
  color: var(--text-color);
  width: 99%;
  height: 94%;
  border-radius: 44px;
  transition: transform 0.4s cubic-bezier(0.8, 0, 0.2, 1) 0s;
  transform: scale(0, 1);
  transform-origin: left top;
  border: 2px solid #e97c59;
}
.hero__btn strong {
  width: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  z-index: 3;
  transition-delay: 100ms;
  font-size: 18px;
}
.hero__btn:hover strong {
  color: #e97c59;
  transition-delay: 100ms;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}
@media (min-width: 1480px) {
  .hero {
    min-height: 84vh;
  }
  .hero__wave {
    width: 108vw;
    height: 226px;
  }
  .hero__inner {
    max-width: 1480px;
    justify-content: space-evenly;
  }
}
@media (max-width: 1024px) {
  .hero__inner {
    gap: 8vw;
    justify-content: center;
  }
  .hero__title {
    font-size: 40px;
  }
  .hero__visual {
    width: 36vw;
    max-width: 320px;
    min-width: 280px;
  }
  .hero__wave {
    width: 110%;
    height: 200px;
  }
  .clients__grid {
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  }
}
@media (max-width: 820px) {
  .hero {
    min-height: inherit;
    padding: 40px 1rem 0;
  }
  .hero__inner {
    min-width: inherit;
    gap: 6vw;
  }
  .hero__title {
    font-size: 38px;
  }
  .hero__subtitle {
    font-size: 16px;
    line-height: 28px;
    margin-bottom: 2rem;
  }
}
@media (max-width: 767px) {
  .hero_pc {
    display: none;
  }
  .hero_sp {
    display: block;
  }
  .hero__bg {
    min-width: auto;
  }
  .hero__inner {
    margin-top: 80px;
    flex-direction: column;
    justify-content: flex-start;
    height: fit-content;
  }
  .hero__visual {
    margin-top: 2rem;
    width: 56vw;
    min-width: 220px;
  }
  .hero__wave {
    width: 110%;
    height: 144px;
  }
}

@media (max-width: 480px) {
  .hero__title {
    font-size: 35px;
    line-height: 1.3;
    margin: 0 auto 1rem;
    width: fit-content;
  }
  .hero__copy {
    padding-bottom: 0px;
  }
  .hero__visual {
    margin-top: 1rem;
  }
  .hero__wave {
    width: 110%;
    height: 144px;
  }
  .hero__subtitle {
    font-size: 14px;
    line-height: 26px;
    margin-bottom: 16px;
  }
  .hero__btn {
    font-size: 14px;
  }
}
/* ----------------------------- */
/* // クライアントロゴ //
/* ----------------------------- */
.clients {
  max-width: 1240px;
  width: 100%;
  margin: 0 auto;
  text-align: center;
}
.clients__lead {
  font-size: clamp(18px, 4vw, 24px);
  color: #003366;
  margin: 40px 0 0;
}
.clients__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: 2rem;
  align-items: center;
  justify-items: center;
}
.clients__grid img {
  max-height: 40px;
  opacity: 0.8;
}
.sp,
.tablet {
  display: none;
}
/* — レスポンシブ調整 */
@media (max-width: 767px) {
  .tablet {
    display: block;
  }
  .clients__grid {
    grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
  }
  .clients__lead {
    margin: 8px 0 0;
    padding: 0 16px;
  }
}
/* ----------------------------- */
/* // Problem //
/* ----------------------------- */
.problems {
  background: #f6f7f9;
  padding: 100px 24px 48px;
  position: relative;
}
.problems .section-title {
  color: var(--color-text);
  width: fit-content;
  margin: 0 auto;
  padding-bottom: 10px;
  border-bottom: 2px dotted #273b68;
}
.section-title__icon {
  background: #208be9;
  padding: 0px 7px;
  border-radius: 50%;
  display: inline-block;
  text-align: center;
}
.section-title__icon {
  color: #fff;
}
.problems__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2.5vw;
  margin-top: 96px;
}
.problem {
  width: clamp(240px, 26vw, 330px);
}
.problem__image {
  width: 90%;
  aspect-ratio: 1/1;
  margin: 0 auto;
  background: #fff;
  border-radius: 50%;
}
.problem__image img {
  height: 80%;
  object-fit: contain;
  margin: -40px auto 0;
}

.problem__title {
  font-size: clamp(20px, 2.1vw, 28px);
  /* white-space: nowrap; */
  text-align: center;
  margin-top: -72px;
}
.problem__desc {
  font-size: 15px;
  margin-top: 16px;
}
.triangle::after {
  content: "";
  position: absolute;
  bottom: -96px;
  left: 0;
  width: 100%;
  height: 96px;
  clip-path: polygon(0 0, 50% 100%, 100% 0);
  background: #f6f7f9;
}
@media (max-width: 820px) {
  .problem {
    width: 330px;
  }
  .problems__list {
    gap: 3vw;
  }
  .problem--3 {
    margin-top: 40px;
  }
  .problem__title {
    font-size: 24px;
  }
  .triangle::after {
    bottom: -95px;
    width: 100%;
    height: 96px;
    clip-path: polygon(0 0, 50% 50%, 100% 0);
  }
}
@media (max-width: 767px) {
  .problems {
    padding: 64px 24px 48px;
  }
  .problems__list {
    flex-direction: column;
    align-items: center;
    gap: 48px;
    margin-top: 80px;
  }
  .problem {
    width: 100%;
    max-width: 400px;
  }
}
@media (max-width: 480px) {
  .problem__desc {
    font-size: 14px;
    margin-top: 12px;
  }
  .triangle::after {
    clip-path: polygon(0 0, 50% 32%, 100% 0);
  }
}
/* ----------------------------- */
/* — Solution */
/* ----------------------------- */
.solution {
  background: #208be9;
  padding: 4rem 1rem;
  text-align: center;
}
.solution hgroup {
  text-align: center;
}
.solution__lead {
  font-size: clamp(20px, 4vw, 34px);
  color: #fff;
  margin: 80px 0 0;
}
.solution__title {
  width: fit-content;
  font-size: clamp(28px, 6vw, 46px);
  color: var(--color-title);
  letter-spacing: 4px;
  background: #fff;
  margin: 1rem auto;
  padding: 16px 12px;
}
.solution__text {
  font-size: 20px;
  color: #fff;
  text-align: center;
  margin: 32px auto 40px;
}
.solution__text strong {
  font-weight: bold;
}
/* — Solution Stats */
.solution__stats {
  width: 96%;
  margin: 0 auto 40px;
  background: #fff;
  border-radius: 16px;
}
.solution_ques {
  font-size: 18px;
  color: #fff;
  text-align: center;
  background: #273b68;
  padding: 16px;
  border-radius: 16px 16px 0 0;
}
.stats-card {
  flex: 1;
  padding-left: 40px;
}
.stats-card__figure p {
  font-size: 18px;
  font-weight: bold;
  text-align: center;
}
.stats-card__text {
  margin: 0;
}
.stats-card__label strong {
  font-size: 2.3em;
  letter-spacing: -2px;
}
.stats-card__label span {
  font-size: 48px;
}
.stats-card__figure .stats-card__label {
  font-size: clamp(28px, 3.6vw, 38px);
  color: var(--color-title);
  line-height: 1.4;
  text-decoration: dotted underline;
  text-underline-offset: 15px;
}
.stats-card__caption {
  margin-top: 24px;
}
.stats-chart {
  flex: 1.4;
  padding: 1.5rem;
  text-align: center;
}
.stats-chart img {
  max-width: 100%;
  height: auto;
}
.stats-chart__legend {
  list-style: none;
  margin-top: 1rem;
  text-align: left;
  font-size: 0.8rem;
  color: #333;
}
.stats-chart__legend li {
  margin-bottom: 0.5rem;
}

/* — Solution Footer & CTA */
.solution__foot_text {
  width: fit-content;
  font-size: 16px;
  color: #fff;
  margin: 0 auto;
}
.solution__cta {
  font-size: 18px;
  color: #fff;
  text-align: center;
  margin-top: 40px;
}
.solution__cta strong {
  font-size: 1.3em;
  font-weight: bold;
  text-decoration: dotted underline;
  text-underline-offset: 15px;
  line-height: 2.2;
}
@media (max-width: 1080px) {
  .solution__foot {
    width: 90%;
    margin: 0 auto;
  }
}
@media (max-width: 820px) {
  .solution__text {
    width: 90%;
  }
  .stats-card__caption {
    margin-top: 16px;
  }
  .stats-chart {
    flex: 1.7;
    padding: 1rem 0rem;
  }
  .stats-card__figure .stats-card__label {
    font-size: 25px;
  }
}
@media (max-width: 767px) {
  .solution__lead {
    margin-top: 56px;
  }
  .solution__stats {
    width: 100%;
  }
  .solution__text {
    width: 100%;
    font-size: 18px;
  }
  .solution__foot {
    width: 98%;
  }
}
@media (max-width: 680px) {
  .solution__stats .display_flex {
    flex-direction: column;
    align-items: center;
  }
  .stats-card {
    padding: 24px 0;
  }
  .stats-card__figure .stats-card__label {
    font-size: clamp(20px, 6.8vw, 40px);
  }
}
@media (max-width: 480px) {
  .sp {
    display: block;
  }
  .solution__cta strong {
    font-size: 18px;
    text-underline-offset: 10px;
  }
}
/* ----------------------------- */
/* — Achieve */
/* ----------------------------- */
.achievements {
  padding: 84px 0;
  position: relative;
}
.achieve_bg {
  position: absolute;
  top: -180px;
  left: 0px;
  width: 100%;
  z-index: -1;
}
.achieve_bg_sp {
  display: none;
}
.achievements__title {
  font-size: clamp(20px, 5.2vw, 40px);
  font-weight: 700;
  line-height: 180%;
  color: #fff;
  text-align: center;
}
.achievements__title .highlight {
  display: block;
  width: fit-content;
  margin: 0 auto;
  color: var(--color-title);
  background: #fff;
  text-decoration: dotted underline;
  text-underline-offset: 15px;
  padding: 12px 40px;
}
.highlight strong {
  font-size: 1.6em;
}
.achievements__lead {
  color: #fff;
  text-align: center;
  margin: 2rem 0;
}
.achievements__cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
}
.card--small {
  display: grid;
  background: #fff;
  border-radius: 24px;
  padding: 40px;
  grid-template-rows: subgrid;
  grid-row: span 3;
  align-items: center;
}
.card--small picture {
  display: block;
  height: 210px;
}
.card--small img {
  object-fit: contain;
}
.card--small__title {
  font-size: clamp(22px, 2.5vw, 28px);
  text-align: center;
  line-height: 1.4;
  text-decoration: dotted underline;
  text-underline-offset: 8px;
}
.card--small__desc {
  line-height: 1.6;
  margin-top: 4px;
}
.card_text_wrap {
  display: none;
}
@media (max-width: 1000px) {
  .achievements__cards {
    grid-template-columns: repeat(auto-fill, minmax(264px, 1fr));
  }
  .card--small {
    padding: 32px 24px;
    box-shadow: 0 0 4px rgba(30, 147, 235, 0.4);
  }
}
@media (max-width: 820px) {
  .achieve_bg {
    display: none;
  }
  .achieve_bg_sp {
    display: block;
    position: absolute;
    top: -180px;
    left: 0%;
    width: inherit;
    height: 118%;
    z-index: -1;
  }
  .achievements__cards {
    display: flex;
    flex-direction: column;
    gap: 24px;
    margin: 0 auto;
  }
  .tablet_none {
    display: none;
  }
  .card_text_wrap {
    display: block;
    flex: 2;
  }
  .card--small {
    display: flex;
    gap: 40px;
  }
  .card--small__title {
    font-size: clamp(20px, 4vw, 28px);
    line-height: 1.8;
    margin-bottom: 16px;
  }
  .card--small picture {
    width: 35%;
    height: auto;
  }
}
@media (max-width: 480px) {
  .achievements__title .highlight {
    text-underline-offset: 10px;
  }
  .achievements__lead {
    font-size: 13px;
    margin: 16px 0;
  }
  .card_text_wrap {
    display: none;
  }
  .tablet_none {
    display: block;
  }
  .card--small {
    flex-direction: column;
    gap: 0;
  }
  .card--small picture {
    width: 56%;
  }
}
/* ----------------------------- */
/* — Points */
/* ----------------------------- */
.points {
  background: #f6f7f9;
  padding: 144px 0;
}
.section-title--with-sub {
  font-size: clamp(20px, 5.2vw, 40px);
  /* font-size: 40px; */
  margin-bottom: 3rem;
  position: relative;
  text-decoration: dotted underline;
  text-underline-offset: 15px;
}
.section-title--with-sub strong {
  font-size: 1.4em;
}
.points__list {
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.points__list .point:nth-of-type(even) {
  flex-direction: row-reverse;
}
.point {
  max-width: 1100px;
  width: 100%;
  flex-wrap: wrap;
  gap: 48px;
  background: #fff;
  margin: 0 auto;
  border-radius: 32px;
  padding: 40px 6vw;
  /* padding: 40px 96px; */
}
.point__media {
  position: relative;
  max-width: 392px;
  width: 40%;
  aspect-ratio: 1/1;
  border-radius: 50%;
  box-shadow: -24px -8px 10px #f6f7f9;
}
.point__media img {
  border-radius: 50%;
}
.point__media .badge {
  position: absolute;
  top: 16px;
  left: inherit;
  right: 8px;
  color: #fff;
  border-radius: 50%;
  font-size: 22px;
  width: 120px;
  height: 120px;
  line-height: 62px;
}
.recommend .badge {
  font-size: 20px;
  line-height: 26px;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 138px;
  height: 138px;
}
.badge::after {
  left: 20%;
}
.badge strong {
  font-size: 1.6em;
  font-weight: bold;
  vertical-align: baseline;
}

.point__body {
  flex: 1;
}
.point__number {
  font-family: DIN Alternate;
  font-size: clamp(96px, 13.5vw, 120px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 6px;
  color: #c6d8e8;
}
.point__title {
  font-size: clamp(24px, 3.4vw, 40px);
  line-height: 144%;
  margin-bottom: 16px;
}
.point__desc {
  margin-bottom: 1rem;
}
.point__features li {
  gap: 40px;
  background: #f6f7f9;
  border-radius: 28px;
  margin: 24px 0;
  padding: 24px 40px;
}
.recommend__features {
  display: flex;
  gap: 40px;
  background: #f6f7f9;
  border-radius: 28px;
  margin: 24px 0;
  padding: 24px 40px;
}
.point_image_wrap {
  width: 240px;
}
.point_text_wrap {
  flex: 2;
}
.point_text_wrap h4 {
  font-size: 28px;
  margin-bottom: 16px;
}
/* — 2番目のみ適用 */
.point__media--right .badge {
  left: -28px;
  right: inherit;
  font-size: 20px;
  line-height: 1.2;
}
.point__media--right .badge:after {
  left: 90%;
}
.point__media--right img {
  object-position: -120px 18px;
}
.sticky-cta__label {
  position: absolute;
  bottom: 0;
  left: -14%;
  background: #208be9;
  color: #fff;
  padding: 28px 14px;
  line-height: 1;
  border-radius: 50%;
  font-size: 16px;
  text-align: center;
}
.sticky-cta__label:after {
  content: "";
  height: 0;
  width: 0;
  position: absolute;
  top: 82%;
  left: 21%;
  border: 10px solid;
  border-color: transparent;
  border-top-color: #208be9;
  margin-left: -10px;
  transform: rotate(-48deg);
}
.sticky-cta__label span {
  font-size: 34px;
  font-weight: bold;
  letter-spacing: -0.2;
}
@media (max-width: 820px) {
  .section_img {
    top: -80px;
    left: 60%;
    transform: translateX(-18%);
  }
  .point__media .badge {
    width: 108px;
    height: 108px;
    font-size: 20px;
    line-height: 52px;
  }
  .sticky-cta__label:after {
    top: 80%;
  }
  .point__media--right .badge {
    left: -40px;
    font-size: 17px;
    padding: 22px 10px 22px 14px;
    line-height: 1.3;
  }
  .recommend .badge {
    font-size: 17px;
    padding: 28px 5px 22px 8px;
    line-height: 1.3;
  }
}
@media (max-width: 768px) {
  .points {
    padding: 144px 0 80px;
  }
  .point__media .badge {
    top: -8px;
    right: -20px;
  }
  .point__media--right .badge {
    left: -62px;
  }
  .point {
    padding: 40px 4.6vw;
  }
  .point__features li {
    flex-direction: column;
    padding: 24px;
    gap: 24px;
  }
  .point_image_wrap {
    max-width: 400px;
    width: 96%;
  }
  .point_text_wrap h4 {
    font-size: 20px;
    margin-bottom: 8px;
  }
}
@media (max-width: 480px) {
  .points {
    padding: 92px 0 80px;
  }
  .points .section-title--with-sub {
    font-size: clamp(22px, 6vw, 26px);
    line-height: 1.8;
    text-underline-offset: 10px;
  }
  .section_img {
    top: -40px;
  }
  .point {
    padding: 40px 4.6vw 16px;
    gap: 0;
  }
  .points__list {
    gap: 16px;
  }
  .point__media {
    width: 90%;
  }
  .point__number {
    margin-top: -79px;
    position: relative;
    z-index: 1;
    text-shadow: 1px 2px 4px rgba(0, 0, 0, 0.4);
  }
  .point__media--right .badge {
    left: -32px;
  }
  .point_text_wrap p {
    font-size: 14px;
  }
}
/* ----------------------------- */
/* — Effect */
/* ----------------------------- */
.effect {
  background: #fff;
  padding: 144px 1rem;
  text-align: center;
}
.effect_wrap {
  padding: 50px;
  background: #f6f7f9;
  border-radius: 32px;
  text-align: center;
}
.effect_wrap h3 {
  font-size: 22px;
  color: #273b68;
  margin-bottom: 16px;
}
.effect_wrap h3 strong {
  font-size: 36px;
  color: var(--color-title);
}
.effect__subtitle {
  font-size: 0.9rem;
  color: #004080;
  margin-bottom: 2rem;
  line-height: 1.4;
}
.effect__vector {
  width: 192px;
  margin: 40px auto;
}
.effect_result {
  padding: 32px 40px;
  gap: 42px;
}
.effect_text_wrap p {
  font-size: clamp(20px, 2.6vw, 36px);
  font-weight: bold;
  color: var(--color-title);
  line-height: 1.4;
}
.effect__highlight {
  text-decoration: dotted underline;
  text-underline-offset: 15px;
}
.effect_text_wrap strong {
  font-size: 1.6em;
  letter-spacing: 6px;
}
.effect_text_wrap strong span {
  font-size: 1.6em;
}
.effect_image_wrap {
  max-width: 250px;
  width: 28%;
}
@media (max-width: 480px) {
  .effect {
    padding: 92px 0 80px;
  }
  .effect_wrap {
    padding: 32px 18px;
  }
  .effect_wrap h3 strong {
    font-size: 22px;
  }
  .effect_wrap h3 {
    font-size: 18px;
  }
  .effect_result {
    flex-direction: column;
    gap: 0;
  }
  .effect_image_wrap {
    max-width: 240px;
    width: 80%;
  }
  .effect_text_wrap p {
    font-size: clamp(15px, 4.3vw, 20px);
  }
  .effect__highlight {
    text-underline-offset: 8px;
  }
}
/* ----------------------------- */
/* — Case（動画制作事例） */
/* ----------------------------- */
.case {
  padding: 144px 0;
  position: relative;
  background-image: url("../../img/lp/moovyplus/case-bg.png");
  background-size: cover;
}
/* .case_bg {
  width: 100%;
  height: 1140px;
  position: absolute;
  top: 0;
  left: 0;
} */
.case .section-title {
  color: #fff;
}
.case-slider {
  max-width: 980px;
  width: 96%;
  margin: 106px auto 0;
}
.case-item {
  padding: 0 32px;
  aspect-ratio: 9/13;
}
.slick-dots {
  top: initial;
  bottom: -40px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
}
.slick-dots li {
  /* width: 100px; */
  width: clamp(18px, 4.6vw, 100px);
}
.case-slider .slick-dots li button:before {
  width: clamp(42px, 8vw, 180px);
  content: "";
  text-align: center;
  opacity: 0.5;
  border-bottom: 6px solid #fff;
  left: -35%;
}
.case-slider .slick-dots li.slick-active button:before {
  opacity: 1;
}
.slick-prev,
.slick-next {
  background: #fff;
  border-radius: 50%;
  width: 48px;
  height: 48px;
  z-index: 100;
  transition: 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  top: 50%;
  transform: translateY(-50%);
}
.slick-prev {
  left: -3%;
}
.slick-next {
  right: -3%;
}
.slick-prev:before,
.slick-next:before {
  color: #208be9;
  position: absolute;
  top: 50%;
  width: 0.4em;
  height: 0.4em;
  border-bottom: 3px solid #208be9;
  content: "";
  background-color: transparent;
  border-radius: initial;
}
.slick-prev:before {
  left: 40%;
  border-left: 3px solid;
  transform: translateY(-50%) rotate(45deg);
}
.slick-next:before {
  right: 40%;
  border-right: 3px solid;
  transform: translateY(-50%) rotate(-45deg);
}
.slick-prev:hover,
.slick-next:hover {
  width: 50px;
  height: 50px;
  background: #fff;
  transition: 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.slick-next:hover {
  transform: translate(9%, -50%);
}
.slick-prev:hover {
  transform: translate(-9%, -50%);
}
.slick-prev:focus,
.slick-next:focus {
  background-color: #fff;
}
.slick-slide:not(.slick-center) {
  filter: blur(3px);
  transform: scale(0.9);
  transition: transform 0.5s ease;
}
/* — レスポンシブ */
@media (max-width: 768px) {
  .case {
    padding: 120px 0 80px;
  }
  .case-slider {
    margin: 80px auto 0;
  }
  .effect__chart {
    grid-template-columns: repeat(1, 1fr);
  }
  .chart__group {
    grid-column: auto !important;
  }
  .case-item {
    padding: 0 16px;
    aspect-ratio: 9/14;
  }
  .slick-dots {
    width: 80%;
  }
  .slick-dots li {
    width: clamp(18px, 6vw, 48px);
  }
  .case-slider .slick-dots li button:before {
    width: clamp(42px, 12vw, 180px);
  }
}
@media (max-width: 480px) {
  .case {
    padding: 92px 0 80px;
  }
  .case-slider {
    margin: 64px auto 0;
  }
  .slick-dots {
    width: 100%;
    left: 47%;
  }
  .case-item {
    padding: 0 8px;
    aspect-ratio: 9/14;
  }
  .case-slider .slick-dots li button:before {
    width: clamp(56px, 8vw, 180px);
  }
}
/* ----------------------------- */
/* — Voice お客様の声 */
/* ----------------------------- */
.voice {
  background: #fff;
  padding: 144px 0;
}
.voice__list {
  display: flex;
  flex-direction: column;
  gap: 2rem;
  margin-top: 2rem;
}
.voice__item {
  border-radius: 8px;
  display: flex;
  padding: 32px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  position: relative;
  z-index: 1;
  transition: 0.3s;
}
.voice_url {
  display: inline-block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
.voice_url:hover {
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
  transition: 0.3s;
}
.voice_bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}
.voice_bg img {
  border-radius: 8px;
}
.voice__media {
  flex-shrink: 0;
  margin-right: 1%;
  /* width: 286px; */
  min-width: 160px;
  width: 20%;
  text-align: right;
}
.voice_image {
  margin-right: 12%;
}
.voice__img {
  width: clamp(140px, 12vw, 176px);
  aspect-ratio: 1/1;
  border-radius: 50%;
  object-fit: cover;
}
.voice__body {
  flex: 1;
}
.voice__heading {
  font-size: clamp(20px, 2.5vw, 28px);
  color: var(--color-title);
  line-height: 1.5;
  margin-bottom: 0.25rem;
}
.voice__meta {
  font-size: 16px;
  color: #838da3;
  margin-bottom: 0.75rem;
}
.voice__text {
  font-size: 15px;
  color: #273b68;
  line-height: 1.8;
}
.voice_link_wrap {
  min-width: 140px;
  width: 18%;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
}
.voice_link_wrap span {
  border: 1px solid var(--color-title);
  border-radius: 50%;
  width: fit-content;
  aspect-ratio: 1/1;
  padding: 4px;
  display: flex;
  align-items: center;
}
.voice__link {
  font-size: 14px;
  color: var(--color-title);
  font-weight: 700;
  position: relative;
  margin: 0px 12px 0px 0px;
  padding: 0px 12px;
  outline: none;
}
.voice__link::before {
  content: "";
  position: absolute;
  bottom: -8px;
  left: 15%;
  width: 85%;
  height: 1px;
  background: var(--color-title);
  transition: 0.3s;
}
.voice__link::after {
  content: "";
  position: absolute;
  bottom: -3px;
  right: 0px;
  width: 15px;
  height: 1px;
  transform: rotate(38deg);
  background: var(--color-title);
  transition: 0.3s;
}
.voice_sp {
  display: none;
}
@media (max-width: 820px) {
  .voice__item {
    padding: 28px 24px;
  }
  .voice__img {
    width: 128px;
    /* width: clamp(100px, 12vw, 128px); */
  }
  .voice_image {
    margin-right: 15%;
  }
  .voice__media {
    min-width: 144px;
  }
  .voice_link_wrap {
    min-width: 116px;
    width: 16%;
  }
  .voice__link {
    font-size: 12px;
    margin: 0px 6px 0px 0px;
    padding: 0px 8px;
  }
  .voice__link::after {
    bottom: -4px;
    width: 12px;
  }
  .voice__text {
    font-size: 14px;
  }
}
@media (max-width: 767px) {
  .voice_sp {
    display: block;
  }
  .voice_pc {
    display: none;
  }
  .voice__item {
    flex-direction: column;
  }
  .voice__media {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
  }
  .voice__heading {
    font-size: clamp(20px, 2.5vw, 28px);
    text-align: left;
  }
  .voice__meta {
    text-align: left;
  }
  .voice_image {
    margin-right: 6%;
  }
  .voice_link_wrap {
    position: absolute;
    bottom: 24px;
    right: 20px;
    background: #e8f2fc;
  }
  .voice_link_wrap span {
    border: none;
    aspect-ratio: inherit;
  }
}
@media (max-width: 480px) {
  .voice {
    padding: 92px 0 80px;
  }
  .voice__item {
    padding: 26px 12px;
  }
  .voice_image {
    margin-right: 4%;
  }
  .voice__heading {
    font-size: 16px;
  }
  .voice__meta {
    font-size: 12px;
  }
  .voice__img {
    width: 71px;
  }
}
/* ----------------------------- */
/* — Process 動画制作の流れ */
/* ----------------------------- */
.process {
  padding: 144px 0 120px;
  position: relative;
  /* z-index: 0; */
  background-image: url("../../img/lp/moovyplus/process_bg.jpg");
  background-size: cover;
}

.process__lead {
  font-size: 18px;
  color: #004080;
  text-align: center;
  margin-bottom: 2rem;
}
.process__list {
  position: relative;
  list-style: none;
  max-width: 1100px;
  width: 96%;
  margin: 0 auto;
  padding: 40px;
  background: rgba(255, 255, 255, 0.4);
  border-radius: 42px;
  counter-reset: num 0;
}
.process__step {
  display: flex;
  align-items: center;
  gap: 4%;
  padding: 1rem 2rem;
  margin-bottom: 1.5rem;
  background: #fff;
  border-radius: 32px;
}
.process__step:last-child {
  margin-bottom: 0;
}
.process__num {
  flex-shrink: 0;
  width: clamp(120px, 16vw, 148px);
  aspect-ratio: 1/1;
  background: #e8f2fb;
  color: var(--color-title);
  border-radius: 50%;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  font-weight: bold;
  position: relative;
  padding-top: 26px;
}
.process__num::after {
  font-family: DIN Alternate;
  position: absolute;
  top: 58%;
  transform: translateY(-50%);
  font-size: clamp(64px, 8vw, 80px);
  counter-increment: num 1;
  content: counter(num, decimal-leading-zero);
}
.process_border {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: clamp(120px, 16vw, 148px);
  /* top: 148px; */
  bottom: 0;
  width: 2px;
  height: 64px;
  border-left: 2px dotted #208be9;
}
.process__step:last-of-type .process_border {
  display: none;
}
.process__title {
  font-size: clamp(24px, 3.2vw, 32px);
  color: var(--color-title);
  margin-bottom: 16px;
}
.process__desc {
  font-size: 15px;
  color: #273b68;
  line-height: 1.5;
}
@media (max-width: 820px) {
  .process__list {
    width: 100%;
  }
  .process__num {
    padding-top: 24px;
  }
  .process__num::after {
    top: 60%;
  }
  .process__title {
    margin-bottom: 12px;
  }
  .process__step {
    padding: 1rem 1.5rem;
  }
}
@media (max-width: 767px) {
  .process_sp {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 4%;
    margin-bottom: 12px;
  }
  .process__step {
    flex-direction: column;
    margin-bottom: 0.6rem;
  }
  .process__list {
    padding: 40px 24px;
  }
  .process__desc {
    font-size: 14px;
  }
  .process__num::after {
    font-size: clamp(48px, 7.8vw, 64px);
  }
  .process__num {
    width: clamp(90px, 15.6vw, 148px);
    font-size: 13px;
    padding-top: 20px;
  }
  .process__title {
    margin-bottom: 0;
  }
}
@media (max-width: 480px) {
  .process {
    padding: 92px 0 80px;
  }
  .process__lead {
    font-size: 16px;
  }
  .process__list {
    padding: 0;
  }
  .process__num {
    width: clamp(80px, 19vw, 90px);
    font-size: 10px;
    padding-top: 18px;
  }
  .process__num::after {
    font-size: clamp(38px, 7.8vw, 46px);
    top: 63%;
  }
  .process__step {
    padding: 1rem 1rem;
    border-radius: 20px;
  }
  .process__title {
    font-size: clamp(18px, 5.2vw, 24px);
  }
}
/* ----------------------------- */
/* — Media Coverage メディア掲載実績 */
/* ----------------------------- */
.media-coverage {
  background: #fff;
  padding: 144px 1rem;
}
.media-coverage__lead {
  text-align: center;
  color: #003366;
}
.pickup_media {
  max-width: 992px;
  margin: 0 auto;
}
.media_logo_wrap {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 8px;
  padding: 36px 0px;
}
.media {
  width: 280px;
  height: 120px;
  margin: 0 auto;
}
.media_logo {
  width: 100%;
  height: 120px;
  object-fit: contain;
  padding: 26px;
}
.nikkei_logo {
  padding: 10px;
}
.expansion_logo {
  padding: 18px;
}
.shrink_logo {
  padding: 32px;
}
.logo_sp {
  display: none;
}
@media (max-width: 820px) {
  .logo_sp {
    display: block;
  }
}
@media (max-width: 640px) {
  .media-coverage {
    padding: 92px 0 48px;
  }
  .media_logo_wrap {
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 4px;
  }
  .media {
    width: 160px;
    height: 80px;
  }
  .media_logo {
    height: 80px;
    padding: 8px;
  }
  .shrink_logo {
    padding: 20px;
  }
}

/* ----------------------------- */
/* — FAQ よくある質問 */
/* ----------------------------- */
.faq {
  background: #1e3360;
  color: #fff;
  padding: 144px 0;
}
.faq .section-title--with-sub {
  color: #fff;
}
.faq__list {
  max-width: 800px;
  margin: 2rem auto 0;
}
.faq__item {
  background: #253a6a;
  border-radius: 4px;
  margin-bottom: 1rem;
  overflow: hidden;
}
.faq__question {
  display: block;
  padding: 1rem 1.5rem;
  font-weight: 700;
  cursor: pointer;
  position: relative;
}
.faq__question::after {
  content: "▾";
  position: absolute;
  right: 1.5rem;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.2s;
}
.faq__item[open] .faq__question::after {
  transform: translateY(-50%) rotate(180deg);
}
.faq__answer {
  padding: 1rem 1.5rem;
  background: #1e3360;
  border-top: 1px solid #334779;
  font-size: 0.9rem;
  line-height: 1.6;
}

/* — レスポンシブ */
@media (max-width: 820px) {
  .faq__question {
    padding: 0.75rem 2.5rem 0.75rem 1rem;
  }
}
@media (max-width: 768px) {
  .faq {
    padding: 144px 0 80px;
  }
  .media-coverage__grid {
    grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
    gap: 1rem;
  }
  .faq__answer {
    padding: 0.75rem 1rem;
  }
}
@media (max-width: 480px) {
  .faq {
    padding: 92px 0 80px;
  }
  .faq__question {
    font-size: 14px;
    line-height: 1.6;
  }
  .faq__answer {
    font-size: 14px;
  }
}
.footer_address p {
  color: #fff;
}
/* ----------------------------- */
/* // スティッキーCTA //
/* ----------------------------- */
.sticky-cta {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: #002f6c;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.75rem 1rem;
  box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.15);
  z-index: 999;
}
.sticky-cta_bottom {
  position: absolute;
  bottom: 0;
  left: -14%;
  background: #208be9;
  color: #fff;
  padding: 28px 14px;
  line-height: 1;
  border-radius: 50%;
  font-size: 16px;
  text-align: center;
}
.sticky-cta_bottom:after {
  content: "";
  height: 0;
  width: 0;
  position: absolute;
  top: 82%;
  left: 90%;
  border: 10px solid;
  border-color: transparent;
  border-top-color: #208be9;
  margin-left: -10px;
  transform: rotate(-48deg);
}
.sticky-cta_bottom span {
  font-size: 34px;
  font-weight: bold;
  letter-spacing: -0.2;
}
.sticky-cta__btn {
  position: relative;
  display: block;
}
.btn--secondary {
  max-width: 450px;
  width: 80%;
  color: #208be9;
  text-align: center;
  background: #fff;
  padding: 16px;
}
.arrow_right {
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  right: 15px;
  width: 40px;
  height: 40px;
  transform: translateY(-50%);
  border-radius: 50%;
  background: #208be9;
  color: #fff;
}
.arrow_right:after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-color: #fff;
  -webkit-transform-origin: center center;
  -ms-transform-origin: center center;
  transform-origin: center center;
  -webkit-transform: scale(0);
  -ms-transform: scale(0);
  transform: scale(0);
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.btn--secondary:hover {
  background: #208be9;
}
.btn--secondary:hover .arrow_right,
.btn--secondary:hover .sticky-cta_bottom {
  color: #208be9;
  background: #fff;
}
.btn--secondary:hover .sticky-cta_bottom:after {
  border-color: transparent;
  border-top-color: #fff;
}
@media (max-width: 520px) {
  .btn--secondary {
    width: 100%;
  }
  .more_btn_text {
    font-size: 14px;
  }
  .sticky-cta_bottom {
    font-size: 12px;
    bottom: 34px;
    left: -4%;
    padding: 24px 9px;
  }
  .sticky-cta_bottom span {
    font-size: 24px;
  }
  .sticky-cta_bottom:after {
    left: 82%;
    top: 84%;
  }
  .arrow_right {
    width: 36px;
    height: 36px;
  }
}
#hubspot-messages-iframe-container.widget-align-left {
  display: none !important;
}
