@charset "UTF-8";
:root {
  --color-orange: #f27333;
  --color-blue: #003190;
  --color-text: #333333;
  --color-muted: #6b7280;
  --color-line: #e5e7eb;
  --color-white: #ffffff;
  --color-gray: #f9f8fb;
  --color-gray2: #aeacaa;
  --color-border: #c7d0e3;
  --color-lime: #66bb0a;
  --font-figtree: "Figtree", sans-serif;
  --font-montserrat: "Montserrat", sans-serif;
  --font-yugothic: "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "Noto Sans JP", "メイリオ", sans-serif;
  --font-inter: "Inter", sans-serif;
  --font-sans: "Noto Sans JP", sans-serif;
  --font-display: "Jost", sans-serif;
}

.c-kicker {
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--color-text);
  font-weight: 700;
  font-size: 18rem;
}
@media only screen and (max-width: 1271px) {
  .c-kicker {
    font-size: 14rem;
  }
}

.c-title {
  margin-top: 10rem;
}
@media only screen and (max-width: 767px) {
  .c-title {
    margin-top: 0;
  }
}

.p-logo-marquee {
  position: relative;
  overflow: hidden;
  padding-block: 20rem 0;
  background: var(--color-gray);
}
.p-logo-marquee::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 120rem;
  background: linear-gradient(to bottom, rgba(249, 248, 251, 0) 0%, rgba(249, 248, 251, 0.45) 40%, var(--color-gray) 100%);
  pointer-events: none;
  z-index: 0;
}
.p-logo-marquee__viewport {
  overflow: hidden;
  width: 100%;
}
.p-logo-marquee__track {
  display: flex;
  align-items: center;
  width: -moz-max-content;
  width: max-content;
  will-change: transform;
}
.p-logo-marquee__group {
  display: flex;
  align-items: center;
  gap: 61rem;
  padding-right: 61rem;
  flex: 0 0 auto;
}
@media only screen and (max-width: 767px) {
  .p-logo-marquee__group {
    gap: 24rem;
    padding-right: 24rem;
  }
}
.p-logo-marquee__item {
  flex: 0 0 auto;
}
.p-logo-marquee__item.--voice {
  display: flex;
  align-items: center;
  gap: 5rem;
}
.p-logo-marquee__item.--person {
  width: 130rem;
  height: 130rem;
  border-radius: 50%;
  overflow: hidden;
  flex: 0 0 130rem;
}
@media only screen and (max-width: 767px) {
  .p-logo-marquee__item.--person {
    width: 74rem;
    height: 74rem;
    flex: 0 0 74rem;
  }
}
.p-logo-marquee__item.--person img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-logo-marquee__logos {
  width: 395rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 27rem 49rem;
  align-items: center;
}
@media only screen and (max-width: 767px) {
  .p-logo-marquee__logos {
    width: 223rem;
    gap: 15rem 31rem;
  }
}
.p-logo-marquee__logo {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
}
.p-logo-marquee__logo img {
  display: block;
  width: auto;
  height: 53rem;
  max-width: 166rem;
  -o-object-fit: contain;
     object-fit: contain;
}
@media only screen and (max-width: 767px) {
  .p-logo-marquee__logo img {
    width: 96rem;
    height: 31rem;
  }
}
.p-logo-marquee__card {
  position: relative;
  width: 300rem;
  min-height: 174rem;
  border-radius: 10rem;
  background: var(--color-white);
  box-shadow: 0 4rem 16rem rgba(0, 0, 0, 0.08);
  overflow: visible;
  padding: 23rem 12rem 26rem 31rem;
}
@media only screen and (max-width: 767px) {
  .p-logo-marquee__card {
    width: 180rem;
    min-height: 127rem;
    padding: 13rem 17rem;
  }
}
.p-logo-marquee__card::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -14rem;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-top: 10rem solid transparent;
  border-bottom: 10rem solid transparent;
  border-right: 14rem solid var(--color-white);
}
.p-logo-marquee__card-head {
  display: flex;
  justify-content: start;
  flex-direction: column;
  gap: 9rem;
}
@media only screen and (max-width: 767px) {
  .p-logo-marquee__card-head {
    gap: 5rem;
  }
}
.p-logo-marquee__card-head img {
  display: block;
  width: 124rem;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
@media only screen and (max-width: 767px) {
  .p-logo-marquee__card-head img {
    width: 71rem;
  }
}
.p-logo-marquee__card-company {
  color: #828282;
  font-family: var(--font-sans);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.05em;
  font-size: 13rem;
}
@media only screen and (max-width: 767px) {
  .p-logo-marquee__card-company {
    font-size: 10rem;
  }
}
.p-logo-marquee__card-text {
  margin-top: 14rem;
  color: var(--color-text);
  font-weight: 700;
  font-family: var(--font-sans);
  line-height: 1.5;
  letter-spacing: 0.05em;
  font-size: 15rem;
}
@media only screen and (max-width: 767px) {
  .p-logo-marquee__card-text {
    margin-top: 8rem;
    font-size: 12rem;
  }
}

.p-strong-point {
  padding-block: 143rem 100rem;
  background: var(--color-gray);
}
@media only screen and (max-width: 1271px) {
  .p-strong-point {
    padding-block: 100rem 60rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-strong-point {
    padding-block: 60rem 40rem;
  }
}
.p-strong-point__head {
  text-align: center;
}
.p-strong-point__section {
  margin-top: 60rem;
  padding-top: 16rem;
  border-top: 1rem solid var(--color-border);
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__section {
    margin-top: 40rem;
    padding-top: 16rem;
  }
}
.p-strong-point__head + .p-strong-point__section {
  margin-top: 48rem;
  padding-top: 0;
  border-top: 0;
}
@media only screen and (max-width: 767px) {
  .p-strong-point__head + .p-strong-point__section {
    margin-top: 24rem;
  }
}
.p-strong-point__section-head {
  display: flex;
  align-items: center;
  gap: 30rem;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__section-head {
    gap: 16rem;
  }
}
.p-strong-point__section-title {
  color: var(--color-navy);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.07em;
  font-size: 38rem;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__section-title {
    font-size: 22rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-strong-point__section-title {
    font-size: 28rem;
  }
}
.p-strong-point__section-sub {
  color: var(--color-border);
  font-weight: 500;
  line-height: 1.2;
  font-family: var(--font-montserrat);
  font-size: 15rem;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__section-sub {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-strong-point__section-sub {
    font-size: 12rem;
  }
}
.p-strong-point__cards {
  margin-top: 20rem;
  display: flex;
  gap: 14rem;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__cards {
    margin-top: 16rem;
    flex-wrap: wrap;
  }
}
@media only screen and (max-width: 767px) {
  .p-strong-point__cards {
    display: block;
  }
}
.p-strong-point__card {
  min-height: 120rem;
  padding: 15rem 0 7rem 15rem;
  border-radius: 8rem;
  background: var(--color-white);
  display: flex;
  flex-direction: column;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card {
    min-height: 104rem;
    padding: 12rem 16rem 7rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-strong-point__card {
    margin-top: 12rem;
  }
}
.p-strong-point__card.--001 {
  width: 20%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--001 {
    width: 54%;
  }
}
.p-strong-point__card.--002 {
  width: 20%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--002 {
    width: 44%;
  }
}
.p-strong-point__card.--003 {
  width: 18.6%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--003 {
    width: 30%;
  }
}
.p-strong-point__card.--004 {
  width: 19.4%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--004 {
    width: 34%;
  }
}
.p-strong-point__card.--005 {
  width: 17.8%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--005 {
    width: 32%;
  }
}
.p-strong-point__card.--006 {
  width: 19.9%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--006 {
    width: 36%;
  }
}
.p-strong-point__card.--007 {
  width: 19.9%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--007 {
    width: 29%;
  }
}
.p-strong-point__card.--008 {
  width: 17.4%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--008 {
    width: 31%;
  }
}
.p-strong-point__card.--009 {
  width: 23.6%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--009 {
    width: 58%;
  }
}
.p-strong-point__card.--010 {
  width: 14.9%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--010 {
    width: 40%;
  }
}
.p-strong-point__card.--011 {
  width: 28.3%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--011 {
    width: 62%;
  }
}
.p-strong-point__card.--012 {
  width: 14.4%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--012 {
    width: 36%;
  }
}
.p-strong-point__card.--013 {
  width: 11.5%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--013 {
    width: 24%;
  }
}
.p-strong-point__card.--014 {
  width: 19.4%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--014 {
    width: 34%;
  }
}
.p-strong-point__card.--015 {
  width: 22.1%;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card.--015 {
    width: 38%;
  }
}
@media only screen and (max-width: 767px) {
  .p-strong-point__card.--001, .p-strong-point__card.--002, .p-strong-point__card.--003, .p-strong-point__card.--004, .p-strong-point__card.--005, .p-strong-point__card.--006, .p-strong-point__card.--007, .p-strong-point__card.--008, .p-strong-point__card.--009, .p-strong-point__card.--010, .p-strong-point__card.--011, .p-strong-point__card.--012, .p-strong-point__card.--013, .p-strong-point__card.--014, .p-strong-point__card.--015 {
    width: 100%;
  }
}
.p-strong-point__card-headline {
  display: flex;
  align-items: flex-start;
  height: 44rem;
  margin-bottom: 9rem;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card-headline {
    justify-content: space-between;
    height: 21rem;
    margin-bottom: 4rem;
  }
}
.p-strong-point__card-title {
  color: var(--color-navy);
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  font-size: 16rem;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card-title {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card-title {
    font-size: 14rem;
  }
}
.p-strong-point__annotation {
  flex-shrink: 0;
  margin-left: 23rem;
  color: #4c4c4c;
  line-height: 2;
  font-weight: 700;
  font-size: 12rem;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__annotation {
    font-size: 12rem;
  }
}
.p-strong-point__annotation.--ml-wide {
  margin-left: 30rem;
}
.p-strong-point__card-body {
  margin-top: auto;
  display: flex;
  align-items: flex-end;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__card-body {
    margin-top: 0;
    justify-content: space-between;
  }
}
.p-strong-point__icon {
  width: 62rem;
  height: 62rem;
  margin-bottom: 8rem;
}
@media only screen and (max-width: 767px) {
  .p-strong-point__icon {
    width: 55rem;
    height: 55rem;
  }
}
.p-strong-point__icon img {
  display: block;
  width: 100%;
  height: auto;
}
.p-strong-point__meta {
  min-width: 0;
}
.p-strong-point__meta.--001 {
  margin-left: 15rem;
}
.p-strong-point__meta.--002 {
  margin-left: 49rem;
}
.p-strong-point__meta.--003 {
  margin-left: 17rem;
}
.p-strong-point__meta.--004 {
  margin-left: 10rem;
}
.p-strong-point__meta.--005 {
  margin-left: 12rem;
}
.p-strong-point__meta.--006 {
  margin-left: 8rem;
}
.p-strong-point__meta.--007 {
  margin-left: 41rem;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__meta.--007 {
    margin-left: 0;
  }
}
.p-strong-point__meta.--008 {
  margin-left: 10rem;
}
.p-strong-point__meta.--009 {
  margin-left: 42rem;
}
@media only screen and (max-width: 767px) {
  .p-strong-point__meta.--009 {
    margin-left: 0;
  }
}
.p-strong-point__meta.--010 {
  margin-left: 10rem;
}
.p-strong-point__meta.--011 {
  margin-left: 10rem;
}
@media only screen and (max-width: 767px) {
  .p-strong-point__meta.--011 {
    margin-left: 4rem;
  }
}
.p-strong-point__meta.--012 {
  margin-left: 10rem;
}
.p-strong-point__meta.--013 {
  margin-left: 10rem;
}
.p-strong-point__meta.--014 {
  margin-left: 10rem;
}
.p-strong-point__meta.--015 {
  margin-left: 4rem;
}
.p-strong-point__subtext {
  color: #4c4c4c;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  font-size: 16rem;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__subtext {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-strong-point__subtext {
    font-size: 14rem;
    display: inline;
  }
}
.p-strong-point__value {
  color: #4c4c4c;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.05em;
  font-size: 16rem;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__value {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-strong-point__value {
    font-size: 14rem;
    display: inline-block;
  }
}
.p-strong-point__value--ratio {
  margin-left: 13rem;
  display: flex;
  align-items: center;
  justify-content: start;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__value--ratio {
    margin-left: 8rem;
  }
}
.p-strong-point__value-divider {
  display: inline-block;
  line-height: 1;
  font-family: var(--font-inter);
  font-size: 34rem;
}
.p-strong-point__value-number {
  padding-left: 1rem;
  font-family: var(--font-inter);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.05em;
  display: inline-block;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  font-size: 42rem;
}
@media only screen and (max-width: 1313px) {
  .p-strong-point__value-number {
    font-size: 38rem;
  }
}
.p-strong-point__value-number.--ml {
  margin-left: 102rem;
}
.p-strong-point__value-p {
  display: inline-block;
  font-family: var(--font-inter);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.03em;
  font-size: 38rem;
}
@media only screen and (max-width: 767px) {
  .p-strong-point__value-p {
    font-size: 32rem;
  }
}
.p-strong-point__value-mark {
  display: inline-block;
  font-family: var(--font-sans);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.03em;
  transform: translateY(-2rem);
  font-size: 33rem;
}
@media only screen and (max-width: 767px) {
  .p-strong-point__value-mark {
    font-size: 28rem;
  }
}
.p-strong-point__value-isms {
  font-family: var(--font-inter);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  font-size: 42rem;
}
@media only screen and (max-width: 767px) {
  .p-strong-point__value-isms {
    font-size: 32rem;
  }
}
.p-strong-point__caption {
  margin-bottom: 3rem;
  color: #4c4c4c;
  line-height: 1.5;
  font-weight: 700;
  font-size: 14rem;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__caption {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-strong-point__caption {
    display: inline;
  }
}
.p-strong-point__caption--ml {
  margin-left: 11rem;
}
.p-strong-point__note {
  margin-bottom: 5rem;
  color: #4c4c4c;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.2;
  font-size: 12rem;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__note {
    font-size: 12rem;
  }
}
.p-strong-point__notice {
  margin-top: 24rem;
  padding: 18rem 20rem;
  border-radius: 6rem;
  background: url(../media/images/home/mask-group-002.webp) no-repeat center/cover;
  color: var(--color-text);
  line-height: 1.6;
  font-weight: 700;
  font-size: 16rem;
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__notice {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 1335px) {
  .p-strong-point__notice {
    font-size: 15rem;
  }
}
@media only screen and (max-width: 1271px) {
  .p-strong-point__notice {
    padding-right: 22rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-strong-point__notice {
    margin-top: 20rem;
    padding: 16rem;
    background: url(../media/images/home/mask-group-002-sp.webp) no-repeat center/cover;
    line-height: 1.4;
    font-size: 14rem;
  }
}

.p-merit {
  position: relative;
  padding-block: 180rem 160rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit {
    padding-block: 120rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit {
    padding-block: 80rem;
  }
}
.p-merit__bg {
  position: absolute;
  inset: 0;
  background: url(../media/images/home/mask-group-001.webp) center/cover no-repeat;
  overflow: hidden;
}
@media only screen and (max-width: 767px) {
  .p-merit__bg {
    background: url(../media/images/home/merit-bg-sp.webp) center/cover no-repeat;
  }
}
.p-merit__bg::before {
  content: "";
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: 140rem;
  background: linear-gradient(to top, rgba(249, 248, 251, 0) 0%, #f9f8fb 100%);
  pointer-events: none;
}
@media only screen and (max-width: 1271px) {
  .p-merit__bg::before {
    height: 40rem;
  }
}
.p-merit__bg::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  width: 100%;
  height: 120rem;
  background: linear-gradient(to bottom, rgba(249, 248, 251, 0) 0%, #f9f8fb 100%);
  pointer-events: none;
}
@media only screen and (max-width: 1271px) {
  .p-merit__bg::after {
    height: 40rem;
  }
}
.p-merit__width {
  position: relative;
  z-index: 1;
}
.p-merit__mascot {
  position: absolute;
  top: -260rem;
  right: -28rem;
  width: 107rem;
  z-index: 2;
}
@media only screen and (max-width: 1271px) {
  .p-merit__mascot {
    top: -140rem;
    right: -6rem;
    width: 88rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__mascot {
    top: -112rem;
    right: -6rem;
  }
}
.p-merit__mascot img {
  display: block;
  width: 100%;
  height: auto;
}
.p-merit__inner {
  padding: 80rem;
  border: 1rem solid var(--color-white);
  border-radius: 20rem;
  background: rgba(255, 255, 255, 0.4);
}
@media only screen and (max-width: 1271px) {
  .p-merit__inner {
    padding: 40rem 16rem;
  }
}
.p-merit__head {
  text-align: center;
}
.p-merit__chart {
  margin-top: 40rem;
  padding: 40rem 82rem;
  border: 1rem solid var(--color-white);
  border-radius: 20rem;
  background: rgba(255, 255, 255, 0.3);
  display: grid;
  grid-template-columns: 43rem 1fr;
  gap: 0;
}
@media only screen and (max-width: 1271px) {
  .p-merit__chart {
    padding: 0;
    border: none;
    background: none;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__chart {
    margin-top: 24rem;
    grid-template-columns: 20rem 1fr;
  }
}
.p-merit__chart-main {
  position: relative;
  min-height: 438rem;
  padding-bottom: 59rem;
}
@media only screen and (max-width: 767px) {
  .p-merit__chart-main {
    min-height: 188rem;
    padding-bottom: 20rem;
  }
}
.p-merit__grid {
  position: absolute;
  inset: 0 0 56rem 0;
  pointer-events: none;
}
@media only screen and (max-width: 767px) {
  .p-merit__grid {
    inset: 0 0 20rem 0;
  }
}
.p-merit__grid::before, .p-merit__grid::after {
  content: "";
  position: absolute;
  background-color: #c8c5be;
  opacity: 0.9;
}
.p-merit__grid::before {
  top: 50%;
  left: 0;
  width: 100%;
  height: 1rem;
  transform: translateY(-0.5rem);
  border-top: 1rem dotted #c8c5be;
  background: none;
}
.p-merit__grid::after {
  top: 0;
  left: 50%;
  width: 1rem;
  height: 100%;
  transform: translateX(-0.5rem);
  border-left: 1rem dotted #c8c5be;
  background: none;
}
@media only screen and (max-width: 767px) {
  .p-merit__grid::after {
    height: 88%;
    transform: translateY(7rem);
  }
}
.p-merit__chart-axis {
  position: relative;
}
.p-merit__chart-axis--vertical {
  padding: 27rem 12rem;
  margin-bottom: 43rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  width: 43rem;
  background: linear-gradient(180deg, rgba(247, 95, 35, 0.5215686275) 0%, rgba(255, 157, 0, 0.5215686275) 100%);
  clip-path: polygon(50% 0, 100% 6%, 100% 94%, 50% 100%, 0 94%, 0 6%);
}
@media only screen and (max-width: 767px) {
  .p-merit__chart-axis--vertical {
    padding: 10rem 5rem;
    margin-bottom: 27rem;
    width: 20rem;
  }
}
.p-merit__chart-axis--horizontal {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 43rem;
  padding: 12.5rem 27rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: linear-gradient(90deg, rgba(255, 157, 0, 0.5215686275) 0%, rgba(247, 95, 35, 0.5215686275) 100%);
  clip-path: polygon(2% 0, 98% 0, 100% 50%, 98% 100%, 2% 100%, 0 50%);
}
@media only screen and (max-width: 767px) {
  .p-merit__chart-axis--horizontal {
    height: 20rem;
    padding: 4rem 10rem;
  }
}
.p-merit__axis-title {
  font-family: var(--font-sans);
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.1;
  color: var(--color-text);
  font-size: 18rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit__axis-title {
    font-size: 14rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__axis-title {
    font-size: 10rem;
  }
}
.p-merit__chart-axis--vertical .p-merit__axis-title {
  writing-mode: vertical-rl;
  text-orientation: upright;
}
.p-merit__axis-label {
  font-family: var(--font-sans);
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1;
  color: var(--color-text);
  font-size: 18rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit__axis-label {
    font-size: 14rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__axis-label {
    font-size: 10rem;
  }
}
.p-merit__points {
  position: relative;
  inset: 0;
  height: 100%;
}
.p-merit__point {
  position: absolute;
}
.p-merit__point--bpo-total {
  top: 28rem;
  left: 101rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit__point--bpo-total {
    left: 64rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__point--bpo-total {
    top: 10rem;
    left: 19rem;
  }
}
.p-merit__point--bpo-low {
  top: 154rem;
  left: 101rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit__point--bpo-low {
    left: 64rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__point--bpo-low {
    top: 64rem;
    left: 19rem;
  }
}
.p-merit__point--tool {
  top: 280rem;
  left: 101rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit__point--tool {
    left: 64rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__point--tool {
    top: 117rem;
    left: 19rem;
  }
}
.p-merit__point--agency {
  top: 251rem;
  right: 38rem;
}
@media only screen and (max-width: 767px) {
  .p-merit__point--agency {
    top: 105rem;
    right: 0;
  }
}
.p-merit__point--pardot {
  top: 28rem;
  right: 92rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit__point--pardot {
    right: 80rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__point--pardot {
    top: 10rem;
    right: 7rem;
  }
}
.p-merit__point.is-active .p-merit__point-icon-circle {
  stroke: var(--color-navy);
  fill: var(--color-navy);
}
.p-merit__point.is-active .p-merit__point-icon-arrow {
  fill: var(--color-white);
}
.p-merit__point-card, .p-merit__point-logo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-radius: 8rem;
  background: var(--color-white);
  cursor: auto;
  text-align: left;
}
@media only screen and (max-width: 1271px) {
  .p-merit__point-card, .p-merit__point-logo {
    display: block;
    pointer-events: none;
    text-align: center;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__point-card, .p-merit__point-logo {
    border-radius: 3.4rem;
  }
}
.p-merit__point-card:hover .p-merit__point-icon-circle, .p-merit__point-card:focus-visible .p-merit__point-icon-circle, .p-merit__point-logo:hover .p-merit__point-icon-circle, .p-merit__point-logo:focus-visible .p-merit__point-icon-circle {
  stroke: var(--color-navy);
  fill: var(--color-navy);
}
.p-merit__point-card:hover .p-merit__point-icon-arrow, .p-merit__point-card:focus-visible .p-merit__point-icon-arrow, .p-merit__point-logo:hover .p-merit__point-icon-arrow, .p-merit__point-logo:focus-visible .p-merit__point-icon-arrow {
  fill: var(--color-white);
}
.p-merit__point-card {
  width: 240rem;
  padding: 28rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit__point-card {
    width: 200rem;
    padding: 22rem 0;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__point-card {
    width: 103rem;
    padding: 7rem 0 7rem;
  }
}
.p-merit__point-card--large {
  width: 269rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit__point-card--large {
    width: 220rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__point-card--large {
    width: 129rem;
  }
}
.p-merit__point-logo {
  width: 300rem;
  min-width: 198rem;
  padding: 28rem 15rem 15rem 60rem;
  display: grid;
  grid-template-columns: 1fr 26rem;
  gap: 19rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit__point-logo {
    width: 100%;
    padding: 26rem 40rem;
    display: block;
    text-align: center;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__point-logo {
    width: 120rem;
    min-width: 58rem;
    padding: 10rem 22rem 13rem;
  }
}
.p-merit__point-logo img {
  display: block;
  width: 100%;
  height: auto;
  margin-bottom: 12rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit__point-logo img {
    width: 140rem;
    height: auto;
    margin-bottom: 0;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__point-logo img {
    width: 76rem;
    height: 35rem;
  }
}
.p-merit__point-text {
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.05em;
  color: var(--color-navy);
  font-family: var(--font-sans);
  font-size: 20rem;
}
@media only screen and (max-width: 767px) {
  .p-merit__point-text {
    font-size: 13rem;
  }
}
.p-merit__point-icon {
  width: 26rem;
  height: 26rem;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--color-navy);
}
@media only screen and (max-width: 1271px) {
  .p-merit__point-icon {
    display: none;
  }
}
.p-merit__point-icon.--corner {
  margin: auto 0 0;
}
.p-merit__point-icon-svg {
  width: 26rem;
  height: 26rem;
}
.p-merit__point-icon-circle {
  fill: var(--color-white);
  stroke: var(--color-navy);
  stroke-width: 1px;
  vector-effect: non-scaling-stroke;
  transition: fill 0.3s ease, stroke 0.3s ease;
}
.p-merit__point-icon-arrow {
  fill: var(--color-navy);
  transition: fill 0.3s ease;
}
.p-merit__note {
  margin-top: 13rem;
  color: var(--color-text);
  line-height: 1.5;
  font-weight: 700;
  font-size: 13rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit__note {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__note {
    margin-top: 16rem;
    line-height: 1.3;
    font-size: 12rem;
  }
}
.p-merit__summaries {
  position: relative;
  margin-top: 40rem;
  min-height: 138rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit__summaries {
    display: grid;
    gap: 12rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__summaries {
    margin-top: 20rem;
  }
}
.p-merit__summary {
  position: absolute;
  inset: 0;
  padding: 30rem 32rem 26rem;
  border-radius: 10rem;
  background: var(--color-white);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
@media only screen and (max-width: 1271px) {
  .p-merit__summary {
    position: static;
    inset: auto;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__summary {
    padding: 16rem 12rem 16rem 16rem;
    border-radius: 5.4rem;
  }
}
.p-merit__summary--pardot {
  padding: 32rem 30rem 32rem 32rem;
  display: grid;
  grid-template-columns: 160rem 1fr;
  gap: 32rem;
  align-items: start;
}
@media only screen and (max-width: 1271px) {
  .p-merit__summary--pardot {
    gap: 24rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__summary--pardot {
    padding: 16rem 12rem 16rem 16rem;
    display: block;
  }
}
.p-merit__summary.is-active {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
@media only screen and (max-width: 1271px) {
  .p-merit__summary.is-active {
    position: static;
  }
}
.p-merit__summary-logo {
  width: 160rem;
  height: 74rem;
  overflow: hidden;
}
@media only screen and (max-width: 767px) {
  .p-merit__summary-logo {
    width: 105rem;
    height: 49rem;
  }
}
.p-merit__summary-logo img {
  display: block;
  width: 100%;
  height: auto;
}
.p-merit__summary-heading {
  color: var(--color-navy);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.05em;
  font-size: 22rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit__summary-heading {
    font-size: 18rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__summary-heading {
    font-size: 16rem;
  }
}
.p-merit__summary-text {
  color: var(--color-text);
  font-weight: 700;
  line-height: 1.5;
  font-size: 16rem;
}
@media only screen and (max-width: 1271px) {
  .p-merit__summary-text {
    font-size: 14rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-merit__summary-text {
    margin-top: 8rem;
    font-size: 13rem;
  }
}
.p-merit__summary-text.--secondary {
  margin-top: 8rem;
}

.p-support {
  padding-block: 100rem;
  background: var(--color-gray);
}
@media only screen and (max-width: 1271px) {
  .p-support {
    padding-block: 60rem 80rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-support {
    padding-block: 40rem;
  }
}
.p-support__head {
  text-align: center;
  margin-bottom: 60rem;
}
@media only screen and (max-width: 767px) {
  .p-support__head {
    margin-bottom: 24rem;
  }
}

.p-campaign {
  position: relative;
  padding-block: 180rem;
}
@media only screen and (max-width: 1271px) {
  .p-campaign {
    padding-block: 120rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-campaign {
    padding-block: 80rem;
  }
}
.p-campaign__bg {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: url(../media/images/home/mask-group-001.webp) center/cover no-repeat;
}
@media only screen and (max-width: 767px) {
  .p-campaign__bg {
    background: url(../media/images/home/campaign-bg-sp.webp) center/cover no-repeat;
  }
}
.p-campaign__bg::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 140rem;
  background: linear-gradient(to top, rgba(249, 248, 251, 0) 0%, #f9f8fb 100%);
  pointer-events: none;
}
@media only screen and (max-width: 1271px) {
  .p-campaign__bg::before {
    height: 60rem;
  }
}
.p-campaign__bg::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 180rem;
  background: linear-gradient(to bottom, rgba(249, 248, 251, 0) 0%, #f9f8fb 100%);
  pointer-events: none;
}
@media only screen and (max-width: 1271px) {
  .p-campaign__bg::after {
    height: 60rem;
  }
}
.p-campaign__width {
  position: relative;
}
.p-campaign__mascot {
  width: 107rem;
  position: absolute;
  top: -260rem;
  left: -16rem;
}
@media only screen and (max-width: 1271px) {
  .p-campaign__mascot {
    width: 88rem;
    top: -130rem;
    left: -6rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-campaign__mascot {
    top: -110rem;
    left: -6rem;
  }
}
.p-campaign__mascot img {
  display: block;
  width: 100%;
  height: auto;
}
.p-campaign__inner {
  position: relative;
  z-index: 1;
  padding: 80rem 80rem 40rem;
  border-radius: 20rem;
  background: rgba(255, 255, 255, 0.4);
  border: 1rem solid var(--color-white);
}
@media only screen and (max-width: 1271px) {
  .p-campaign__inner {
    padding: 40rem 16rem;
  }
}
.p-campaign__head {
  text-align: center;
}
.p-campaign__body {
  margin-top: 40rem;
  display: grid;
  grid-template-columns: 358rem 1fr;
  gap: 100rem;
}
@media only screen and (max-width: 1271px) {
  .p-campaign__body {
    grid-template-columns: 290rem 1fr;
    gap: 40rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-campaign__body {
    margin-top: 24rem;
    grid-template-columns: 1fr;
    gap: 28rem;
  }
}
.p-campaign__nav-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.p-campaign__nav-item {
  border-bottom: 1rem solid var(--color-border);
}
.p-campaign__nav-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 25rem 0;
}
@media only screen and (max-width: 1271px) {
  .p-campaign__nav-link {
    padding: 19rem 2rem 19rem 0;
  }
}
@media only screen and (max-width: 767px) {
  .p-campaign__nav-link {
    padding: 16rem 0;
  }
}
@media only screen and (min-width: 1272px) {
  .p-campaign__nav-link:hover .p-campaign__icon-circle, .p-campaign__nav-link:focus-visible .p-campaign__icon-circle, .p-campaign__nav-link.is-active .p-campaign__icon-circle {
    stroke: var(--color-navy);
    fill: var(--color-navy);
  }
  .p-campaign__nav-link:hover .p-campaign__icon-arrow, .p-campaign__nav-link:focus-visible .p-campaign__icon-arrow, .p-campaign__nav-link.is-active .p-campaign__icon-arrow {
    fill: var(--color-white);
  }
}
.p-campaign__nav-text {
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-navy);
  font-size: 20rem;
}
@media only screen and (max-width: 1271px) {
  .p-campaign__nav-text {
    font-size: 16rem;
  }
}
.p-campaign__icon {
  border-radius: 999rem;
}
.p-campaign__icon-svg {
  width: 30rem;
  height: 30rem;
}
@media only screen and (max-width: 1271px) {
  .p-campaign__icon-svg {
    width: 22rem;
    height: 22rem;
  }
}
.p-campaign__icon-circle {
  fill: var(--color-white);
  stroke: var(--color-navy);
  stroke-width: 1px;
  vector-effect: non-scaling-stroke;
  transition: fill 0.3s ease, stroke 0.3s ease;
}
.p-campaign__icon-arrow {
  fill: var(--color-navy);
  transition: fill 0.3s ease;
}
.p-campaign__contents {
  position: relative;
}
.p-campaign__content {
  position: absolute;
  inset: 0;
  margin-top: 20rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
@media only screen and (max-width: 767px) {
  .p-campaign__content {
    margin-top: 0;
  }
}
.p-campaign__content.is-active {
  position: relative;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.p-campaign__labels {
  display: flex;
  flex-wrap: wrap;
  gap: 10rem;
}
.p-campaign__label {
  padding: 5rem 12rem 3rem;
  border-radius: 9999rem;
  background: var(--color-white);
  color: var(--color-navy);
  font-weight: 700;
  line-height: 1.6;
  font-size: 13rem;
}
@media only screen and (max-width: 1271px) {
  .p-campaign__label {
    font-size: 13rem;
  }
}
.p-campaign__panel {
  margin-top: 25rem;
}
.p-campaign__panel-title {
  color: var(--color-text);
  font-weight: 700;
  line-height: 0.9;
  font-size: 28rem;
}
@media only screen and (max-width: 1271px) {
  .p-campaign__panel-title {
    font-size: 21rem;
  }
}
.p-campaign__text {
  margin-top: 20rem;
  color: var(--color-text);
  font-weight: 700;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  min-height: 7.5em;
  font-size: 16rem;
}
@media only screen and (max-width: 1271px) {
  .p-campaign__text {
    font-size: 13rem;
  }
}
.p-campaign__gallery {
  margin-top: 35rem;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24rem;
}
@media only screen and (max-width: 1271px) {
  .p-campaign__gallery {
    margin-top: 0;
    gap: 14rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-campaign__gallery {
    gap: 7rem;
  }
}
.p-campaign__gallery-item {
  overflow: hidden;
  aspect-ratio: 327/213;
}
@media only screen and (max-width: 767px) {
  .p-campaign__gallery-item {
    aspect-ratio: 148/96;
  }
}
.p-campaign__gallery-item img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: fill;
     object-fit: fill;
}
.p-campaign__note {
  margin-top: 16rem;
  color: var(--color-text);
  line-height: 1.5;
  font-weight: 700;
  font-size: 13rem;
}
@media only screen and (max-width: 1271px) {
  .p-campaign__note {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-campaign__note {
    margin-top: 8rem;
  }
}

.p-tips {
  padding: 100rem 0;
  background: var(--color-gray);
}
@media only screen and (max-width: 1271px) {
  .p-tips {
    padding: 60rem 0 80rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-tips {
    padding: 40rem 0;
  }
}
.p-tips__head {
  display: flex;
  align-items: start;
  justify-content: space-between;
}
@media only screen and (max-width: 1271px) {
  .p-tips__head {
    display: block;
  }
}
.p-tips__filters {
  max-width: 886rem;
  display: flex;
  flex-wrap: wrap;
  gap: 20rem 8rem;
  justify-content: flex-start;
  padding-top: 20rem;
}
@media only screen and (max-width: 1271px) {
  .p-tips__filters {
    gap: 8rem;
    padding-top: 24rem;
  }
}
.p-tips__filter {
  background: var(--color-white);
  color: var(--color-navy);
  border-radius: 999rem;
  padding: 10rem 20rem 6rem;
  line-height: 1.6;
  font-weight: 700;
  letter-spacing: 0.05em;
  transition: background 0.3s ease, color 0.3s ease;
  font-size: 16rem;
}
@media only screen and (max-width: 1271px) {
  .p-tips__filter {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 1271px) {
  .p-tips__filter {
    padding: 3rem 10rem;
    line-height: 1.5;
    letter-spacing: 0;
  }
}
.p-tips__filter.is-current {
  background: var(--color-navy);
  color: var(--color-white);
}
.p-tips__filter:hover, .p-tips__filter:focus-visible {
  background: var(--color-navy);
  color: var(--color-white);
}
.p-tips__panel {
  display: none;
}
.p-tips__panel.is-active {
  display: block;
}
.p-tips__list {
  display: grid;
  row-gap: 0;
  border-top: 1rem solid var(--color-border);
  margin-top: 38rem;
}
@media only screen and (max-width: 1271px) {
  .p-tips__list {
    margin-top: 24rem;
  }
}
.p-tips__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  -moz-column-gap: 50rem;
       column-gap: 50rem;
  padding: 40rem 0;
  border-bottom: 1rem solid var(--color-border);
}
@media only screen and (max-width: 1271px) {
  .p-tips__row {
    padding: 24rem 0rem;
    -moz-column-gap: 19rem;
         column-gap: 19rem;
  }
}
.p-tips__col {
  min-width: 0;
  height: 100%;
}
.p-tips__item {
  min-width: 0;
  height: 100%;
}
.p-tips__card {
  height: 100%;
  display: grid;
  grid-template-columns: 320rem 1fr;
  -moz-column-gap: 20rem;
       column-gap: 20rem;
  align-items: start;
}
@media only screen and (max-width: 1271px) {
  .p-tips__card {
    grid-template-columns: 158rem 1fr;
  }
}
@media only screen and (max-width: 767px) {
  .p-tips__card {
    grid-template-columns: 1fr;
  }
}
.p-tips__card:hover .p-tips__icon-circle, .p-tips__card:focus-visible .p-tips__icon-circle {
  stroke: var(--color-navy);
  fill: var(--color-navy);
}
.p-tips__card:hover .p-tips__icon-arrow, .p-tips__card:focus-visible .p-tips__icon-arrow {
  fill: var(--color-white);
}
.p-tips__thumb {
  width: 320rem;
  height: 222rem;
  overflow: hidden;
  background: var(--color-gray);
}
@media only screen and (max-width: 1271px) {
  .p-tips__thumb {
    width: 158rem;
    height: 109rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-tips__thumb {
    width: 158rem;
    height: 109rem;
  }
}
.p-tips__thumb img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-tips__content {
  min-width: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
}
.p-tips__meta {
  display: inline-flex;
  align-items: center;
  gap: 10rem;
}
@media only screen and (max-width: 767px) {
  .p-tips__meta {
    -moz-column-gap: 4rem;
         column-gap: 4rem;
    margin-top: 12rem;
  }
}
.p-tips__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999rem;
  line-height: 1.1;
  font-family: var(--font-montserrat);
  font-weight: 500;
  color: var(--color-white);
  font-size: 15rem;
}
@media only screen and (max-width: 1271px) {
  .p-tips__badge {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-tips__badge {
    font-size: 10rem;
  }
}
.p-tips__badge--hot {
  background: var(--color-orange);
  padding: 6rem 16.5rem;
}
@media only screen and (max-width: 1271px) {
  .p-tips__badge--hot {
    padding: 4rem 10rem;
  }
}
.p-tips__badge--new {
  background: #e30000;
  padding: 6rem 13.5rem;
}
@media only screen and (max-width: 1271px) {
  .p-tips__badge--new {
    padding: 4rem 10rem;
  }
}
.p-tips__cat {
  padding: 5rem 12rem;
  background: var(--color-white);
  border-radius: 999rem;
  color: var(--color-navy);
  line-height: 1.5;
  font-weight: 700;
  font-size: 13rem;
}
@media only screen and (max-width: 1271px) {
  .p-tips__cat {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 1271px) {
  .p-tips__cat {
    padding: 3rem 10rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-tips__cat {
    font-size: 10rem;
  }
}
.p-tips__headline {
  margin-top: 12rem;
  color: var(--color-text);
  font-weight: 700;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: 2.8em;
  font-size: 18rem;
}
@media only screen and (max-width: 1271px) {
  .p-tips__headline {
    font-size: 14rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-tips__headline {
    margin-top: 8rem;
    -webkit-line-clamp: 3;
    min-height: 4.2em;
  }
}
.p-tips__text {
  margin-top: 10rem;
  color: var(--color-text);
  font-weight: 700;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  min-height: 4.5em;
  font-size: 16rem;
}
@media only screen and (max-width: 1271px) {
  .p-tips__text {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-tips__text {
    line-height: 1.4;
    margin-top: 8rem;
    -webkit-line-clamp: 4;
    min-height: 5.6em;
  }
}
.p-tips__link {
  margin-top: auto;
  padding-top: 21rem;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6rem;
  color: var(--color-navy);
  font-weight: 700;
  font-size: 14rem;
}
@media only screen and (max-width: 1271px) {
  .p-tips__link {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-tips__link {
    padding-top: 12rem;
    justify-content: space-between;
    gap: 0;
  }
}
.p-tips__icon {
  border-radius: 999rem;
}
.p-tips__icon-svg {
  width: 26rem;
  height: 26rem;
}
@media only screen and (max-width: 1271px) {
  .p-tips__icon-svg {
    width: 22rem;
    height: 22rem;
  }
}
.p-tips__icon-circle {
  fill: var(--color-white);
  stroke: var(--color-navy);
  stroke-width: 1px;
  vector-effect: non-scaling-stroke;
  transition: fill 0.3s ease, stroke 0.3s ease;
}
.p-tips__icon-arrow {
  fill: var(--color-navy);
  transition: fill 0.3s ease;
}
.p-tips__empty {
  height: 222rem;
  color: var(--color-text);
  line-height: 1.6;
  font-weight: 700;
  font-size: 16rem;
}
@media only screen and (max-width: 1271px) {
  .p-tips__empty {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 1271px) {
  .p-tips__empty {
    height: 208rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-tips__empty {
    height: 323rem;
  }
}
.p-tips__foot {
  margin-top: 60rem;
  text-align: center;
}
@media only screen and (max-width: 767px) {
  .p-tips__foot {
    margin-top: 28rem;
  }
}

.p-column {
  position: relative;
  padding-block: 100rem;
  background: #fff;
}
@media only screen and (max-width: 1271px) {
  .p-column {
    padding-block: 80rem 60rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-column {
    padding-block: 24rem 40rem;
    background: var(--color-gray);
  }
}
.p-column::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 140rem;
  background: linear-gradient(to top, var(--color-white) 0%, var(--color-gray) 100%);
  pointer-events: none;
  z-index: 0;
}
@media only screen and (max-width: 767px) {
  .p-column::before {
    background: none;
  }
}
.p-column__inner {
  position: relative;
  display: grid;
  grid-template-columns: 285rem 1fr;
  -moz-column-gap: 154rem;
       column-gap: 154rem;
}
@media only screen and (max-width: 1271px) {
  .p-column__inner {
    grid-template-columns: 245rem 1fr;
    -moz-column-gap: 40rem;
         column-gap: 40rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-column__inner {
    grid-template-columns: 1fr;
    -moz-column-gap: 0;
         column-gap: 0;
    row-gap: 32rem;
  }
}
.p-column {
  /* side */
}
.p-column__side {
  position: relative;
  z-index: 1;
}
.p-column__nav {
  background: var(--color-gray);
  border-radius: 5rem;
  padding: 30rem;
  margin-top: 35rem;
}
@media only screen and (max-width: 767px) {
  .p-column__nav {
    padding: 0;
    margin-top: 24rem;
  }
}
.p-column__nav-list {
  display: grid;
  row-gap: 20rem;
}
@media only screen and (max-width: 767px) {
  .p-column__nav-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8rem 16rem;
    align-items: center;
  }
}
@media only screen and (max-width: 767px) {
  .p-column__nav-item {
    flex: 0 0 auto;
  }
}
.p-column__nav-btn {
  display: flex;
  align-items: center;
  gap: 10rem;
  width: 100%;
  justify-content: flex-start;
  text-align: left;
  word-break: keep-all;
  overflow-wrap: anywhere;
  color: var(--color-text);
  line-height: 1.5;
  letter-spacing: 0.03em;
  transition: opacity 0.3s ease;
  font-weight: 500;
  font-size: 16rem;
}
@media only screen and (max-width: 1271px) {
  .p-column__nav-btn {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-column__nav-btn {
    display: inline-flex;
    width: auto;
    letter-spacing: 0;
    gap: 8rem;
    font-weight: 700;
  }
}
.p-column__nav-btn::before {
  content: "";
  width: 8rem;
  height: 8rem;
  border-radius: 999rem;
  flex: 0 0 8rem;
}
@media only screen and (min-width: 1272px) {
  .p-column__nav-btn:hover, .p-column__nav-btn:focus-visible {
    opacity: 0.5;
  }
}
.p-column__nav-btn.is-current {
  font-weight: 700;
  color: #333;
}
.p-column__nav-btn.is-current::before {
  background: var(--color-orange);
}
.p-column {
  /* main list */
}
.p-column__main {
  z-index: 1;
}
.p-column__panels {
  position: relative;
}
.p-column__panel {
  display: none;
}
.p-column__panel.is-active {
  display: block;
}
.p-column__item {
  border-bottom: 1px solid var(--color-border);
}
.p-column__item--empty {
  border-bottom: 1px solid var(--color-border);
}
.p-column__card {
  display: grid;
  grid-template-columns: 270rem 1fr;
  -moz-column-gap: 30rem;
       column-gap: 30rem;
  padding: 30rem 0;
}
@media only screen and (max-width: 1271px) {
  .p-column__card {
    grid-template-columns: 210rem 1fr;
    -moz-column-gap: 20rem;
         column-gap: 20rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-column__card {
    grid-template-columns: 158rem 1fr;
    -moz-column-gap: 16rem;
         column-gap: 16rem;
    padding: 20rem 0;
  }
}
.p-column__card.--first {
  padding-top: 0;
}
.p-column__card--empty {
  display: flex;
  align-items: center;
  min-height: 230rem;
}
@media only screen and (max-width: 1271px) {
  .p-column__card--empty {
    min-height: 200rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-column__card--empty {
    min-height: 168rem;
  }
}
.p-column__card:hover .p-column__icon-circle, .p-column__card:focus-visible .p-column__icon-circle {
  stroke: var(--color-navy);
  fill: var(--color-navy);
}
.p-column__card:hover .p-column__icon-arrow, .p-column__card:focus-visible .p-column__icon-arrow {
  fill: var(--color-white);
}
.p-column__thumb {
  width: 270rem;
  height: 180rem;
  overflow: hidden;
}
@media only screen and (max-width: 1271px) {
  .p-column__thumb {
    width: 210rem;
    height: 150rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-column__thumb {
    width: 158rem;
    height: 104rem;
  }
}
.p-column__thumb img {
  width: 100%;
  height: auto;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-column__content-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.p-column__date {
  color: var(--color-navy);
  font-weight: 700;
  font-size: 13rem;
}
@media only screen and (max-width: 1271px) {
  .p-column__date {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-column__date {
    font-size: 11rem;
  }
}
.p-column__badge {
  padding: 6rem 12rem;
  border-radius: 999rem;
  line-height: 1.1;
  color: #fff;
  background: #e30000;
  font-family: var(--font-montserrat);
  font-weight: 500;
  font-size: 15rem;
}
@media only screen and (max-width: 1271px) {
  .p-column__badge {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 1271px) {
  .p-column__badge {
    padding: 4rem 10rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-column__badge {
    font-size: 10rem;
  }
}
.p-column__content-body {
  margin-top: 15rem;
}
@media only screen and (max-width: 767px) {
  .p-column__content-body {
    margin-top: 8rem;
  }
}
.p-column__headline {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: 3em;
  line-height: 1.5;
  color: var(--color-text);
  font-weight: 700;
  font-size: 20rem;
}
@media only screen and (max-width: 1271px) {
  .p-column__headline {
    font-size: 16rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-column__headline {
    -webkit-line-clamp: 3;
    min-height: 4.2em;
    line-height: 1.4;
    font-size: 14rem;
  }
}
.p-column__tag {
  display: inline-block;
  margin-top: 15rem;
  padding: 5rem 12rem;
  border-radius: 999rem;
  line-height: 1.5;
  color: var(--color-navy);
  background: var(--color-gray);
  font-weight: 700;
  font-size: 13rem;
}
@media only screen and (max-width: 1271px) {
  .p-column__tag {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 1271px) {
  .p-column__tag {
    padding: 3rem 10rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-column__tag {
    margin-top: 6rem;
    background: var(--color-white);
    letter-spacing: 0.05em;
    font-size: 10rem;
  }
}
.p-column__content-footer {
  display: flex;
  justify-content: end;
}
.p-column__icon {
  border-radius: 999rem;
}
.p-column__icon-svg {
  width: 30rem;
  height: 30rem;
}
@media only screen and (max-width: 1271px) {
  .p-column__icon-svg {
    width: 22rem;
    height: 22rem;
  }
}
.p-column__icon-circle {
  fill: var(--color-white);
  stroke: var(--color-navy);
  stroke-width: 1px;
  vector-effect: non-scaling-stroke;
  transition: fill 0.3s ease, stroke 0.3s ease;
}
.p-column__icon-arrow {
  fill: var(--color-navy);
  transition: fill 0.3s ease;
}
.p-column__empty {
  color: var(--color-text);
  line-height: 1.6;
  font-weight: 700;
  font-size: 16rem;
}
@media only screen and (max-width: 1271px) {
  .p-column__empty {
    font-size: 13rem;
  }
}
.p-column {
  /* foot */
}
.p-column__foot {
  margin-top: 40rem;
  display: grid;
  place-items: end;
}
@media only screen and (max-width: 767px) {
  .p-column__foot {
    margin-top: 28rem;
    place-items: center;
  }
}
.p-column__mascot {
  width: 107rem;
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 2;
}
@media only screen and (max-width: 1271px) {
  .p-column__mascot {
    width: 88rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-column__mascot {
    width: 88rem;
    bottom: -100rem;
  }
}
.p-column__mascot img {
  display: block;
  width: 100%;
  height: auto;
}

.p-seminar {
  position: relative;
  padding-block: 180rem 174rem;
  overflow: hidden;
}
@media only screen and (max-width: 1271px) {
  .p-seminar {
    padding-block: 120rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-seminar {
    padding-block: 80rem;
  }
}
.p-seminar__bg {
  position: absolute;
  inset: 0;
  background: url(../media/images/home/mask-group-001.webp) center/cover no-repeat;
}
@media only screen and (max-width: 767px) {
  .p-seminar__bg {
    background: url(../media/images/home/seminar-bg-sp.webp) center/cover no-repeat;
  }
}
.p-seminar__bg::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 140rem;
  background: linear-gradient(to top, rgba(255, 255, 255, 0) 0%, rgb(255, 255, 255) 100%);
  pointer-events: none;
}
@media only screen and (max-width: 1271px) {
  .p-seminar__bg::before {
    height: 60rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-seminar__bg::before {
    height: 40rem;
    background: linear-gradient(to top, rgba(249, 248, 251, 0) 0%, #f9f8fb 100%);
  }
}
.p-seminar__bg::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 150rem;
  background: linear-gradient(to bottom, rgba(249, 248, 251, 0) 0%, #f9f8fb 100%);
  pointer-events: none;
}
@media only screen and (max-width: 1271px) {
  .p-seminar__bg::after {
    height: 40rem;
  }
}
.p-seminar__inner {
  position: relative;
  z-index: 1;
  background: rgba(255, 255, 255, 0.4);
  padding: 80rem;
  border-radius: 20px;
  border: 1rem solid var(--color-white);
}
@media only screen and (max-width: 767px) {
  .p-seminar__inner {
    padding: 40rem 16rem;
  }
}
.p-seminar__head {
  text-align: center;
}
.p-seminar__panel {
  margin-top: 67rem;
}
@media only screen and (max-width: 767px) {
  .p-seminar__panel {
    margin-top: 24rem;
  }
}
.p-seminar__calendar {
  background: var(--color-white);
  overflow: hidden;
}
.p-seminar__iframe {
  width: 100%;
  height: 740rem;
  display: block;
}
.p-seminar__foot {
  display: grid;
  place-items: center;
  margin-top: 60rem;
}
@media only screen and (max-width: 767px) {
  .p-seminar__foot {
    margin-top: 28rem;
  }
}

.p-service {
  background: var(--color-gray);
  padding-block: 100rem 120rem;
}
@media only screen and (max-width: 1271px) {
  .p-service {
    padding-block: 40rem 80rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-service {
    padding-block: 40rem 60rem;
  }
}
.p-service__inner {
  display: grid;
  grid-template-columns: 275rem 1fr;
  gap: 105rem;
  align-items: start;
}
@media only screen and (max-width: 1271px) {
  .p-service__inner {
    display: block;
  }
}
@media only screen and (max-width: 1271px) {
  .p-service__lead {
    text-align: center;
  }
}
.p-service__btn {
  margin-top: 59rem;
  width: 100%;
}
@media only screen and (max-width: 1271px) {
  .p-service__btn {
    display: none;
  }
}
.p-service__btn.--sp {
  display: none;
}
@media only screen and (max-width: 1271px) {
  .p-service__btn.--sp {
    display: inline-flex;
    width: auto;
    margin-top: 0;
  }
}
.p-service {
  /* list */
}
.p-service__list {
  display: grid;
  row-gap: 30rem;
}
@media only screen and (max-width: 71271px) {
  .p-service__list {
    row-gap: 16rem;
    margin-top: 24rem;
  }
}
.p-service__item {
  background: var(--color-white);
  border-radius: 10px;
}
.p-service {
  /* カード全体リンク */
}
.p-service__link {
  display: grid;
  grid-template-columns: 37% 1rem 1fr;
  -moz-column-gap: 30rem;
       column-gap: 30rem;
  padding: 30rem;
  transition: box-shadow 0.3s ease;
}
@media only screen and (max-width: 767px) {
  .p-service__link {
    grid-template-columns: 1fr;
    -moz-column-gap: 0;
         column-gap: 0;
    row-gap: 20rem;
    padding: 20rem;
  }
}
.p-service__link:hover, .p-service__link:focus-visible {
  box-shadow: 0 0 20rem 0 rgba(0, 48, 131, 0.2);
  /* 反転（紺地 + 白線） */
}
.p-service__link:hover .p-service__link-icon circle, .p-service__link:focus-visible .p-service__link-icon circle {
  fill: var(--color-navy);
  stroke: var(--color-navy);
}
.p-service__link:hover .p-service__link-icon path, .p-service__link:focus-visible .p-service__link-icon path {
  stroke: var(--color-white);
}
.p-service__no {
  font-weight: 400;
  font-family: var(--font-montserrat);
  color: var(--color-gray2);
  font-size: 14rem;
}
@media only screen and (max-width: 1271px) {
  .p-service__no {
    font-size: 13rem;
  }
}
.p-service__logo {
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 41rem;
}
@media only screen and (max-width: 767px) {
  .p-service__logo {
    min-height: 68rem;
  }
}
.p-service__logo.--service-01 {
  margin-top: 45rem;
}
@media only screen and (max-width: 1271px) {
  .p-service__logo.--service-01 {
    margin-top: 34rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-service__logo.--service-01 {
    margin-top: 20rem;
  }
}
.p-service__logo.--service-02 {
  margin-top: 49rem;
}
@media only screen and (max-width: 1271px) {
  .p-service__logo.--service-02 {
    margin-top: 40rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-service__logo.--service-02 {
    margin-top: 20rem;
  }
}
.p-service__logo.--service-03 {
  margin-top: 59rem;
}
@media only screen and (max-width: 1271px) {
  .p-service__logo.--service-03 {
    margin-top: 40rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-service__logo.--service-03 {
    margin-top: 20rem;
  }
}
.p-service__logo img {
  display: block;
  width: auto;
  max-width: 318rem;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}
@media only screen and (max-width: 1271px) {
  .p-service__logo img {
    max-width: 272rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-service__logo img {
    max-width: 295rem;
  }
}
.p-service__line {
  width: 1rem;
  height: 100%;
  background-color: var(--color-border);
}
@media only screen and (max-width: 767px) {
  .p-service__line {
    width: 100%;
    height: 1rem;
  }
}
.p-service__body {
  padding-top: 20rem;
  display: grid;
  row-gap: 15rem;
}
@media only screen and (max-width: 767px) {
  .p-service__body {
    padding-top: 0;
    display: block;
  }
}
.p-service__name {
  line-height: 1.2;
  letter-spacing: 0.05em;
  color: var(--color-navy);
  font-weight: 700;
  font-size: 20rem;
}
@media only screen and (max-width: 1271px) {
  .p-service__name {
    font-size: 16rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-service__name {
    line-height: 1.3;
    font-size: 18rem;
  }
}
.p-service__text {
  line-height: 1.5;
  letter-spacing: 0.05em;
  color: var(--color-text);
  font-weight: 700;
  font-size: 16rem;
}
@media only screen and (max-width: 1271px) {
  .p-service__text {
    font-size: 13rem;
  }
}
@media only screen and (max-width: 767px) {
  .p-service__text {
    margin-top: 8rem;
    font-size: 14rem;
  }
}
.p-service__action {
  display: grid;
  place-items: end;
}
@media only screen and (max-width: 767px) {
  .p-service__action {
    margin-top: 4rem;
  }
}
.p-service__link-icon {
  display: inline-grid;
  place-items: center;
}
.p-service__link-icon svg {
  width: 30rem;
  height: 30rem;
}
@media only screen and (max-width: 767px) {
  .p-service__link-icon svg {
    width: 22rem;
    height: 22rem;
  }
}
.p-service__link-icon circle {
  fill: var(--color-white);
  stroke: var(--color-navy);
  stroke-width: 1rem;
  vector-effect: non-scaling-stroke;
  transition: fill 0.3s ease, stroke 0.3s ease;
}
.p-service__link-icon path {
  stroke: var(--color-navy);
  transition: stroke 0.3s ease;
}
.p-service__foot {
  display: none;
}
@media only screen and (max-width: 1271px) {
  .p-service__foot {
    margin-top: 40rem;
    display: flex;
    justify-content: center;
  }
}
@media only screen and (max-width: 767px) {
  .p-service__foot {
    margin-top: 28rem;
  }
}