@charset "utf-8";

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

.fv {
  position: relative;
  z-index: 10;

  width: 100%;
  margin: 0;
  padding: 0;

  line-height: 0;
  overflow: hidden;
}

.fv__inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.fv__picture {
  display: block;
  width: 100%;
  line-height: 0;
}

.fv__bg {
  display: block;

  width: 100%;
  max-width: none;
  height: auto;

  vertical-align: bottom;
}


/* ========================================
INTRO
======================================== */

.intro {
  position: relative;
  z-index: 1;

  width: 100%;
  margin: -105px 0 0;
  padding: 0;

  line-height: 0;
  overflow: hidden;
}

.intro__inner {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.intro__picture {
  display: block;
  width: 100%;
  line-height: 0;
}

.intro__img {
  display: block;

  width: 100%;
  max-width: none;
  height: auto;

  vertical-align: bottom;
}

/* INTROだけ共通inner幅を無効化 */
.intro__inner {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
/* ========================================
Problem
======================================== */

.problem {
  padding: 80px 0;
  background-image: url("../img/problem-bg.webp");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  color: #fff;
}

.problem__inner {
  width: min(900px, calc(100% - 40px));
  margin: 0 auto;
}

.problem__heading {
  margin-bottom: 36px;
  text-align: center;
}

.problem__label {
  margin: 0 0 8px;
  color: var(--color-gold);
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.problem__title {
  display: inline-block;
  margin: 0;
  padding: 8px 22px;

  background: #fff;
  color: #222;

  font-family: var(--font-serif);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.06em;
}

.problem__lead {
  margin: 10px 0 0;

  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
}

/* list
======================================== */

.problem__list-wrap {
  position: relative;
  max-width: 860px;
  margin: 0 auto 0;
}

.problem__list-inner {
  position: relative;
  z-index: 1;

  padding: 60px 50px 18px;
	
 margin: 0 0 4rem;

  background: linear-gradient(
    180deg,
    #110E0B 0%,
    #25221F 55%,
    #4A5A73 100%
  );
}

.problem__list {
  margin: 0;
  padding: 0;

  list-style: none;
  background: transparent;
}

.problem__item {
  display: flex;
  gap: 12px;

  padding: 18px 0;

  border-bottom: 1px solid rgba(255, 255, 255, .32);

  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.03em;
}

.problem__item:first-child {
  padding-top: 0;
}

.problem__item:last-child {
  padding-bottom: 30px;
}

.problem__icon {
  flex: 0 0 auto;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  width: 18px;
  height: 18px;
  margin-top: 3px;

  border: 1px solid #fff;
  border-radius: 50%;

  font-size: 12px;
  line-height: 1;
}

.problem__text {
  flex: 1;
}

.problem__more {
  margin: 18px 0 0;

  color: #fff;
  font-size: 14px;
  font-weight: 700;
  text-align: right;
}

/* arrow
======================================== */

.problem__arrow-wrap {
  position: absolute;
  left: 50%;
  bottom: -42px;
  z-index: 10;

  transform: translateX(-50%);
}

.problem__arrow {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.problem__arrow-item {
  width: 0;
  height: 0;

  border-left: 28px solid transparent;
  border-right: 28px solid transparent;
  border-top: 19px solid var(--color-gold);

  opacity: .15;

  animation: problemArrowFade 1.8s infinite;
}

.problem__arrow-item:nth-child(1) {
  animation-delay: 0s;
}

.problem__arrow-item:nth-child(2) {
  animation-delay: .2s;
}

.problem__arrow-item:nth-child(3) {
  animation-delay: .4s;
}

@keyframes problemArrowFade {
  0%,
  100% {
    opacity: .15;
    transform: translateY(0);
  }

  50% {
    opacity: 1;
    transform: translateY(4px);
  }
}

/* solution
======================================== */

.problem__solution {
  max-width: 860px;
  margin: 0 auto;
  padding: 46px 24px 42px;

  background:
    linear-gradient(var(--color-gold), var(--color-gold)) padding-box,
    linear-gradient(
      90deg,
      #B7903B 0%,
      #A77F33 32%,
      #E4D092 68%,
      #966F2D 100%
    ) border-box;

  border: 4px solid transparent;

  text-align: center;
}

.problem__solution-text {
  margin: 0 0 24px;

  color: #fff;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.06em;
}

.problem__btn {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: space-between;

  width: 500px;
  max-width: 100%;
  min-height: 60px;
  margin: 0 auto;
  padding: 0 18px 0 28px;

  border: 0;
  border-radius: 6px;

  background: linear-gradient(
    90deg,
    #e30613 0%,
    #c40010 45%,
    #a90008 100%
  );

  color: #fff;
  box-shadow: 0 3px 0 #7c0006;

  font-size: 17px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
  text-decoration: none;

  cursor: pointer;

  transform: translateY(0);
  transition:
    transform .15s ease,
    box-shadow .15s ease,
    opacity .2s ease;
}

.problem__btn:hover {
  opacity: .92;
}

.problem__btn:active {
  transform: translateY(3px);
  box-shadow: 0 0 0 #7c0006;
}

/* テキスト */
.problem__btn-text {
  text-align: left;
}

/* 右端アイコン */
.problem__btn-icon {
  flex-shrink: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 28px;
  height: 28px;

  border: 1px solid #fff;
  border-radius: 50%;
}

.problem__btn-icon::before {
  content: "";

  width: 8px;
  height: 12px;

  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='12' viewBox='0 0 8 12'%3E%3Cpath d='M1 1L6 6L1 11' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: contain;
}

/* ========================================
Profile
======================================== */

.profile { padding: 5rem 13.75rem; background: var(--color-paper); }
.profile__heading { text-align: center; margin-bottom: 50px; }
.profile__title {
	font-size: 1.875rem;
}
.profile__box { display: grid; grid-template-columns: 1fr 340px; align-items: center; gap: 50px; padding: 45px 60px; background: #fff; }
.profile__name { margin: 0; font-family: var(--font-serif); font-size: 28px; }
.profile__ruby { font-size: 16px; }
.profile__line { width: 62px; height: 5px; margin: 20px 0; background: var(--color-gold); }
.profile__credential { font-weight: 700; }
.profile__text { margin: 0; }
.profile__text + .profile__text { margin-top: 16px; }
.profile__image-placeholder { display: grid; place-items: center; height: 250px; border-radius: 50%; background: #eee; color: #777; text-align: center; }

/* ========================================
Program
======================================== */

.program {
  padding: 80px 0;
  background: var(--color-dark);
  color: #fff;
}

.program__inner {
  width: min(1000px, calc(100% - 40px));
  margin: 0 auto;
}

.program__heading {
  margin-bottom: 50px;
  text-align: center;
}

.program__label {
  margin: 0 0 8px;
  color: var(--color-gold);
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.program__title {
  margin: 0;
  color: #fff;
  font-family: var(--font-serif);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
}

.program__list {
  display: grid;
  gap: 24px;
}

.program__item {
  overflow: hidden;
  background: #fff;
  color: #222;
}

.program__item-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;

  min-height: 82px;
  padding: 16px 24px;

  background: #050505;
  color: #fff;
}

.program__item--new .program__item-header {
  background: linear-gradient(90deg, #c4000b 0%, #8b0007 100%);
}

.program__title-wrap {
  flex: 1;
  min-width: 0;
}

.program__number {
  margin: 0 0 6px;

  color: var(--color-gold);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
}

.program__item-title {
  margin: 0;

  color: #fff;
  font-family: var(--font-serif);
  font-size: 24px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0.04em;
}

.program__badge {
  flex-shrink: 0;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-width: 76px;
  padding: 7px 14px;

  background: var(--color-gold);
  color: #fff;

  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
  border-radius: 2px;
}

.program__badge--new {
  background: #fff;
  color: #d70a11;
}

.program__body {
  display: grid;
  grid-template-columns: 1fr 330px;
  align-items: center;
  gap: 32px;

  padding: 30px;
  background: #fff;
}

.program__body--reverse {
  grid-template-columns: 330px 1fr;
}

.program__body--reverse .program__image {
  order: 1;
}

.program__body--reverse .program__text {
  order: 2;
}

.program__text {
  color: #222;
  font-size: 15px;
  line-height: 1.8;
  letter-spacing: 0.03em;
}

.program__text p {
  margin: 0;
}

.program__text p + p {
  margin-top: 1em;
}

.program__text-list {
  margin: 1em 0;
  padding-left: 1.4em;
  list-style: disc;
}

.program__text-list li {
  display: list-item;
  line-height: 1.8;
}

.program__image {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
}

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

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

.comparison {
  padding: 80px 0;
  background: var(--color-gray);
}

.comparison__inner {
  width: min(1000px, calc(100% - 40px));
  margin: 0 auto;
}

.comparison__heading {
  margin-bottom: 50px;
  text-align: center;
}

.comparison__label {
  margin: 0 0 8px;
  color: var(--color-gold);
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.comparison__title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
}

.comparison__table {
  display: grid;
  grid-template-columns: 310px 280px 250px;
  justify-content: center;
  align-items: end;
  column-gap: 0;

  max-width: 950px;
  margin: 0 auto;
}

/* =========================
左項目
========================= */

.comparison__feature {
  background: var(--color-dark);
  color: #fff;
}

.comparison__feature-item {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  min-height: 92px;
  padding: 0 20px;

  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}

.comparison__feature-item::after {
  content: "";

  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 0;

  height: 1px;
  background: rgba(255,255,255,.35);
}

.comparison__feature-item:last-child::after {
  display: none;
}

/* =========================
プラン共通
========================= */

.comparison__plan {
  text-align: center;
}

.comparison__plan-header {
  display: flex;
  align-items: center;
  justify-content: center;

  height: 92px;

  font-weight: 700;
  letter-spacing: 0.06em;
}

.comparison__plan-body {
  background: #efefef;
}

.comparison__item {
  position: relative;

  display: flex;
  align-items: center;
  justify-content: center;

  height: 92px;
  padding: 0 16px;

  color: #222;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.04em;
  text-align: center;
}

.comparison__item::after {
  content: "";

  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 0;

  height: 1px;
  background: #bcbcbc;
}

.comparison__item:last-child::after {
  display: none;
}

/* =========================
新プラン
========================= */

.comparison__plan--new {
  position: relative;
  z-index: 2;

  padding: 8px;

  background: linear-gradient(
    90deg,
    #b3913e 0%,
    #d7c173 45%,
    #b3913e 100%
  );
}

.comparison__plan--new .comparison__plan-header {
  background: linear-gradient(
    90deg,
    #b3913e 0%,
    #d7c173 45%,
    #b3913e 100%
  );

  color: #222;
  font-family: var(--font-serif);
  font-size: 30px;
  font-weight: 700;
}

.comparison__plan--new .comparison__plan-body {
  background: #f3f3f3;
}

/* =========================
旧プラン
========================= */

.comparison__plan--old {
  margin-bottom: 0;
  background: transparent;
}

.comparison__plan--old .comparison__plan-header {
  width: calc(100% - 28px);
  margin: 0 auto;

  height: 84px;

  background: #8b8b8b;
  color: #fff;

  font-size: 22px;
  font-weight: 700;
}

.comparison__plan--old .comparison__plan-body {
  width: 100%;
  background: #efefef;
}

/* =========================
文字装飾
========================= */

.comparison__item--accent,
.comparison__item--new {
  color: var(--color-red);
  font-size: 20px;
}

/* ========================================
Portfolio
======================================== */

.portfolio {
  padding: 80px 0;
  background-color: var(--color-cream);
  background-image: radial-gradient(rgba(0,0,0,.04) 1px, transparent 1px);
  background-size: 18px 18px;
}

.portfolio__inner {
  width: min(1000px, calc(100% - 40px));
  margin: 0 auto;
}

.portfolio__content {
  margin-bottom: 46px;
}

.portfolio__heading {
  margin-bottom: 28px;
  text-align: center;
}

.portfolio__label {
  margin: 0 0 8px;
  color: var(--color-gold);
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.portfolio__title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
}

.portfolio__description {
  max-width: 820px;
  margin: 0 auto;
}

.portfolio__text {
  margin: 0;
  font-size: 16px;
  line-height: 1.8;
}

.portfolio__note {
  margin: 28px 0 0;
  font-weight: 700;
  text-align: center;
}

/* table */
.portfolio__table {
  width: 100%;
  /*max-width: 900px;*/
  margin: 0 auto;

  overflow: hidden;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,.15);
}

/* header */
.portfolio__header {
  display: flex;
  align-items: center;
  gap: 20px;

  min-height: 72px;
  padding: 0 30px;

  background: var(--color-dark);
  color: #fff;
}

.portfolio__table-title {
  flex: 0.55;
  margin: 0;

  font-family: var(--font-serif);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.06em;
}

.portfolio__badge {
  flex-shrink: 0;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 7px 16px;
  background: var(--color-gold);
  border-radius: 3px;

  color: #fff;
  font-size: 14px;
  font-weight: 700;
}

/* body */
.portfolio__body {
  padding: 24px 46px 14px;
  background: #fff;
}

.portfolio__item {
  display: grid;
  grid-template-columns: 48px 300px 1fr 150px;
  align-items: center;
  gap: 18px;

  min-height: 58px;

  color: #222;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.4;
}

.portfolio__number {
  font-weight: 700;
  letter-spacing: 0.15em
}

.portfolio__stock,
.portfolio__status {
  padding-bottom: 12px;
  border-bottom: 1px solid #ddd;
  letter-spacing: 0.15em
}

.portfolio__arrow {
  position: relative;
  height: 1px;
  border-bottom: 3px dotted #333;
}

.portfolio__arrow::after {
  content: "";

  position: absolute;
  top: 50%;
  right: -1px;

  width: 10px;
  height: 10px;

  border-top: 3px solid #333;
  border-right: 3px solid #333;

  transform: translateY(-50%) rotate(45deg);
}

.portfolio__status {
  text-align: center;
}

/* cta */
.portfolio__cta {
  position: relative;
  z-index: 2;
  margin-top: 8px;
}

.portfolio__cta-box {
  width: calc(100% - 36px);
  margin: 0 auto;
  padding: 30px 24px 32px;

  background: #eee;
  text-align: center;
}

.portfolio__cta-label {
  margin: 0;

  font-size: 15px;
  font-weight: 700;
}

.portfolio__cta-label::before {
  content: "🔒";
  margin-right: 6px;
  color: var(--color-gold);
}

.portfolio__cta-note {
  margin: 6px 0 20px;

  font-size: 14px;
  font-weight: 700;
}

.portfolio__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;

  width: 520px;
  max-width: 90%;
  margin: 0 auto;
  padding: 14px 22px 14px 34px;

  background: var(--color-gold);
  color: #fff;
  border-radius: 8px;

  font-size: 20px;
  font-weight: 700;

  /* アクション */
  box-shadow: 0 5px 0 #79652b;
  transform: translateY(0);
  transition:
    transform .15s ease,
    box-shadow .15s ease,
    background-color .2s ease;
}

/* hover */
.portfolio__btn:hover {
  opacity: .95;
}

/* 押下時 */
.portfolio__btn:active {
  transform: translateY(5px);
  box-shadow: 0 0 0 #79652b;
}

/* キーボードフォーカス */
.portfolio__btn:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}

.portfolio__btn::after {
  content: "";

  width: 12px;
  height: 12px;

  border-top: 2px solid #fff;
  border-right: 2px solid #fff;

  transform: rotate(45deg);
}

/* hidden */
.portfolio__hidden {
  padding: 34px 46px 56px;
  background: #fff;
}

.portfolio__hidden-list {
  filter: blur(6px);
  pointer-events: none;
  user-select: none;
  opacity: .75;
}

.portfolio__item--hidden {
  min-height: 58px;
}

/* ========================================
Report
======================================== */

.report { padding: 5rem 13.75rem; background: #fff; background-image: radial-gradient(rgba(0,0,0,.035) 3px, transparent 3px); background-size: 42px 42px; }
.report__heading { text-align: center; margin-bottom: 56px; }
.report__title { 
	font-size: 1.875rem; 
}
.report__title-accent { color: var(--color-red); }
.report__content { display: grid; grid-template-columns: 1fr 420px; align-items: center; gap: 60px; }
.report__list { margin: 22px 0; padding-left: 1em; font-weight: 700; font-size: 20px; }
.report__description { margin-top: 28px; }
.report__image {
  flex-shrink: 0;
  width: 100%;
  max-width: 520px;
}

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

/* ========================================
Howto
======================================== */

.howto { 
	padding: 5rem 0; 
	background-image: url("../img/howto.webp");
	background-repeat: no-repeat;
	background-position: center top;
    background-size: cover;
	/*background: linear-gradient(90deg, rgba(0,0,0,.82), rgba(12,28,37,.7)), radial-gradient(circle at 85% 35%, rgba(255,255,255,.22), transparent 20%), #06111a; */
	color: #fff; 
}
.howto__heading { 
	text-align: center; 
	margin-bottom: 3.125rem; 
}
.howto__title { 
	font-size: 1.875rem;
}
.howto__list { 
	display: grid; 
	grid-template-columns: repeat(3,1fr); 
	gap: 36px; 
}
.howto__item { 
	padding-right: 34px; 
	border-right: 1px solid rgba(255,255,255,.45); 
}
.howto__item:last-child { 
	border-right: 0; 
}
.howto__item-head { 
	margin-bottom: 40px; 
}
.howto__badge { 
	display: inline-flex; 
	padding: 4px 10px; 
	margin-bottom: 4px; 
	background: #fff; 
	color: #000; 
	font-size: 20px; 
	font-weight: 700; 
	letter-spacing: .08em;
}
.howto__item-title { 
	margin: 0; 
	font-size: 1.875rem; 
	line-height: 1.35; 
}
/*.howto__description { margin: 0; font-size: 18px; }*/

/* ========================================
Member Voice
======================================== */

.member-voice {
  padding: 80px 0;
  background: var(--color-cream);
}

.member-voice__inner {
  width: min(920px, calc(100% - 40px));
  margin: 0 auto;
}

/* heading
======================================== */

.member-voice__heading {
  margin-bottom: 50px;
  text-align: center;
}

.member-voice__label {
  margin: 0 0 8px;

  color: var(--color-gold);
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.member-voice__title {
  margin: 0;

  font-family: var(--font-serif);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
}

/* list
======================================== */

.member-voice__list {
  display: grid;
  gap: 22px;
}

/* card
======================================== */

.member-voice__item {
  overflow: hidden;

  background: #fff;
  border: 1px solid rgba(0,0,0,.10);

  box-shadow:
    0 2px 8px rgba(0,0,0,.12),
    0 1px 2px rgba(0,0,0,.06);
}

/* gold title bar
======================================== */

.member-voice__item-title {
  margin: 0;
  padding: 16px 32px;

  background: var(--color-gold);
  color: #fff;

  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
  text-align: center;
}

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

.member-voice__body {
  display: grid;
  grid-template-columns: 140px 1fr;
  align-items: center;
  gap: 34px;

  min-height: 138px;
  padding: 28px 42px;

  background: #F6F6F6;
}

/* left user area
======================================== */

.member-voice__user {
  text-align: center;
}

/* icon
======================================== */

.member-voice__icon {
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100px;
  height: 100px;
  margin: 0 auto 10px;

  overflow: hidden;
  border-radius: 50%;

  background: #f7f7f7;
}

/* actual image */
.member-voice__icon-img {
  display: block;

  width: 100%;
  height: 100%;

  object-fit: cover;
}

.member-voice__name {
  margin: 0;

  color: #222;
  font-size: 14px;
  line-height: 1.4;
  letter-spacing: 0.04em;
}

/* text
======================================== */

.member-voice__text {
  margin: 0;

  color: #222;
  font-size: 14px;
  line-height: 2;
  letter-spacing: 0.04em;
}

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

@media screen and (max-width: 760px) {

  .member-voice {
    padding: 60px 0;
  }

  .member-voice__list {
    gap: 18px;
  }

  .member-voice__item-title {
    padding: 14px 20px;
    font-size: 16px;
  }

  .member-voice__body {
    grid-template-columns: 1fr;
    gap: 20px;

    min-height: auto;
    padding: 28px 24px;

    text-align: center;
  }

  .member-voice__icon {
    width: 90px;
    height: 90px;
  }

  .member-voice__text {
    text-align: left;
    line-height: 1.9;
  }
}

/* ========================================
Plan
======================================== */

/* ========================================
Plan
======================================== */

.plan {
  padding: 80px 0;
  background: var(--color-dark);
}

.plan__inner {
  width: min(900px, calc(100% - 40px));
  margin: 0 auto;
}

.plan__heading {
  margin-bottom: 50px;
  color: #fff;
  text-align: center;
}

.plan__label {
  margin: 0 0 8px;
  color: var(--color-gold);
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.08em;
}

.plan__title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
}

.plan__card {
  width: 100%;
  max-width: 720px;
  min-height: 860px;
  margin: 0 auto;
  overflow: hidden;
  background: #fff;
  border: 4px solid var(--color-gold);
  text-align: center;
}

.plan__card-header {
  padding: 22px 24px 18px;
  background: var(--color-gold);
  color: #fff;
}

.plan__card-title {
  margin: 0;
  font-family: var(--font-serif);
  font-size: 26px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-shadow: 0 2px 3px rgba(0, 0, 0, .35);
}

.plan__card-subtitle {
  margin: 2px 0 0;
  font-family: var(--font-serif);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-shadow: 0 2px 3px rgba(0, 0, 0, .35);
}

/* switch */
.plan__switch {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: 280px;
  margin: 26px auto 20px;
  padding: 4px;
  background: #fff;
  border: 2px solid var(--color-gold);
  border-radius: 999px;
}

.plan__switch-bg {
  position: absolute;
  top: 4px;
  left: 4px;
  z-index: 1;
  width: calc(50% - 4px);
  height: calc(100% - 8px);
  background: var(--color-gold);
  border-radius: 999px;
  transition: transform .3s ease;
}

.plan__switch[data-active="monthly"] .plan__switch-bg {
  transform: translateX(100%);
}

.plan__switch-button {
  position: relative;
  z-index: 2;
  border: 0;
  background: transparent;
  padding: 8px 24px;
  color: var(--color-gold);
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
  cursor: pointer;
}

.plan__switch-button.is-active {
  color: #fff;
}

/* content */
.plan__content {
  min-height: 690px;
}

.plan__panel {
  display: none;
}

.plan__panel.is-active {
  display: block;
  padding: 0 0.7rem;
}

/* discount */
.plan__discount {
  position: relative;
  height: 48px;
  margin-bottom: 18px;
}

.plan__discount--empty {
  visibility: hidden;
}

.plan__discount-label {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 150px;
  height: 42px;
  background: var(--color-gold);
  color: #fff;
  border-radius: 5px;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.08em;
}

.plan__discount-label::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  width: 0;
  height: 0;
  border-left: 9px solid transparent;
  border-right: 9px solid transparent;
  border-top: 9px solid var(--color-gold);
  transform: translateX(-50%);
}

/* price */
.plan__price {
  position: relative;
  min-height: 118px;
  margin-bottom: 26px;
}

/* 年払い：取り消し価格〜現在価格までまとめて下線 */
.plan__panel[data-panel="yearly"] .plan__price {
  display: inline-block;
  padding-bottom: 8px;
}

.plan__panel[data-panel="yearly"] .plan__price::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 61px;
  z-index: 0;
  height: 8px;
  background: #efe7d8;
}

/* 月払い：価格の下に下線 */
.plan__panel[data-panel="monthly"] .plan__price {
  display: inline-block;
  padding-bottom: 8px;
}

.plan__panel[data-panel="monthly"] .plan__price::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 60px;
  z-index: 0;
  height: 8px;
  background: #efe7d8;
}

.plan__price-before {
  position: relative;
  z-index: 1;
  display: inline-block;
  margin: 0 10px 0 0;
  color: #8f8f8f;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: line-through;
}

.plan__price-current {
  position: relative;
  z-index: 1;
  display: inline-block;
  margin: 0;
  color: #333;
  font-size: 44px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: 0.08em;
}

/* 旧指定が残っていても無効化 */
.plan__price-current::after {
  content: none;
}

.plan__price-arrow {
  margin: 0 8px;
  font-size: 22px;
  vertical-align: middle;
}

.plan__price-unit {
  color: #8f8f8f;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.plan__price-note {
  position: relative;
  z-index: 1;
  margin: 10px 0 0;
  color: #8f8f8f;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.04em;
}

/* feature */
.plan__feature-list {
  width: calc(100% - 56px);
  margin: 0 auto;
  padding: 34px 42px;
  list-style: none;
  background: #f8f4eb;
  text-align: left;
}

.plan__feature-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 0 10px 34px;
  color: #333;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.plan__feature-item::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border: 2px solid currentColor;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  transform: translateY(-50%);
}

.plan__feature-item--new {
  color: var(--color-red);
}

.plan__new-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 62px;
  height: 24px;
  margin-right: 8px;
  background: linear-gradient(90deg, #e30613 0%, #a90008 100%);
  color: #fff;
  border-radius: 3px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.04em;
}

/* cta */
.plan__cta {
  padding: 32px 40px 38px;
  background: #fff;
}

.plan__form {
  margin: 0;
}

.plan__btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  width: 430px;
  max-width: 100%;
  min-height: 54px;
  margin: 0 auto;
  padding: 0 22px;
  border: 0;
  border-radius: 6px;
  background: linear-gradient(90deg, #e30613 0%, #a90008 100%);
  color: #fff;
  box-shadow: 0 3px 0 #7c0006;
  font: inherit;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.04em;
  cursor: pointer;
  transform: translateY(0);
  transition:
    transform .15s ease,
    box-shadow .15s ease,
    opacity .2s ease;
}

.plan__btn:hover {
  opacity: .92;
}

.plan__btn:active {
  transform: translateY(3px);
  box-shadow: 0 0 0 #7c0006;
}

.plan__btn-text small {
  font-size: 13px;
  font-weight: 700;
}

.plan__btn-icon {
  position: relative;
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  border: 1px solid #fff;
  border-radius: 50%;
}

.plan__btn-icon::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 47%;
  width: 8px;
  height: 8px;
  border-top: 2px solid #fff;
  border-right: 2px solid #fff;
  transform: translate(-50%, -50%) rotate(45deg);
}

.plan__note {
  margin: 22px 0 0;
  color: #777;
  font-size: 12px;
  line-height: 1.7;
  letter-spacing: 0.03em;
}

/* Flow */
.flow { padding: 5rem 13.75rem; background: var(--color-gray); }
.flow__heading { text-align:center; margin-bottom:50px; }
.flow__title {
	font-size: 1.875rem;
}
.flow__list { display:flex; justify-content:center; align-items:center; gap:18px; }
.flow__item { position:relative; width: 256px; min-height: 300px; background:#fff; padding: 56px 30px 30px; }
.flow__number { position:absolute; top:-12px; left:0; display:grid; place-items:center; width:54px; height:54px; background:var(--color-dark); color:#fff; font-size:32px; font-weight:700; }
.flow__item-title { margin:0 0 22px; font-size:24px; line-height:1.3; }
.flow__connector { display:flex; gap:5px; align-items:center; }
.flow__connector span { width:6px; height:6px; border-radius:50%; background:var(--color-dark); }
.flow__connector--arrow::after { content:""; width:0; height:0; border-top:7px solid transparent; border-bottom:7px solid transparent; border-left:10px solid var(--color-dark); }

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

.faq { 
	padding: 5rem 13.75rem; 
	background: var(--color-cream);
}
.faq__heading { 
	text-align:center; 
	margin-bottom:50px; 
}
.faq__title {
	font-size: 1.875rem;
}
.faq__list {
	max-width: 1000px;
	margin:0 auto;
}

/* 各質問ブロック */
.faq__item {
  margin-bottom: 12px;
}

/* 最後だけ余白なし */
.faq__item:last-child {
  margin-bottom: 0;
}
.faq__question { 
	display:flex; align-items:center;
	width:100%; padding:0 0 0 50px; border:0; 
	background:#fff;
	text-align:left;
}
.faq__q-label { 
	color:var(--color-gold);
	font-family:var(--font-serif); 
	font-size:30px;
	font-weight:700; 
	margin-right:20px; 
}
.faq__question-text { 
	flex:1; 
	font-family:var(--font-serif);
	font-size:22px; 
	font-weight:700; 
}
.faq__toggle { 
	position:relative; 
	flex-shrink:0; 
	width:48px; 
	height:70px; 
	background:var(--color-gold);
}
.faq__toggle::before { 
	content:""; 
	position:absolute;
	top:45%; 
	left:50%; 
	width:12px; 
	height:12px; 
	border-right:2px solid #fff;
	border-bottom:2px solid #fff;
	transform:translate(-50%,-50%) rotate(45deg);
	transition:.25s; 
}
.faq__item.is-open .faq__toggle::before {
	transform:translate(-50%,-50%) rotate(-135deg);
}
.faq__answer { 
	display:none; 
	align-items:flex-start;
	gap:20px; 
	padding:24px 50px; 
	background:#fbf6e8;
}
.faq__item.is-open .faq__answer {
	display:flex; 
}
.faq__a-label { 
	color:var(--color-gold); 
	font-family:var(--font-serif); 
	font-size:30px; 
	font-weight:700; 
}
.faq__answer-text {
	margin:0; 
}

/* ========================================
Vision
======================================== */

.vision { padding:5rem 13.75rem; background:var(--color-paper); }
.vision__inner { max-width:900px; }
.vision__heading { text-align:center; margin-bottom:40px; }
.vision__title { 
	font-size: 1.875rem;
}
.vision__text { margin:0; }
.vision__text + .vision__text { margin-top:24px; }

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

.cta { 
	padding:5rem 13.75rem; 
	background:linear-gradient(270deg, #760309, #e30512); 
	color:#fff; 
	text-align:center; 
}
.cta__title {
	font-size:1.875rem;
}
.cta__text { 
	font-size:20px; 
	font-weight:500; 
}
.cta__button { display:flex; align-items:center; justify-content:space-between; width:600px; max-width:90%; margin:44px auto 12px; padding:24px 54px 24px 70px; background:#fff; color:#000; border-radius:60px; box-shadow:0 4px 4px rgba(0,0,0,.25); font-size:24px; font-weight:700; }
.cta__button-text {
  color: #111;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .04em;
}
.cta__button-icon::before { content:""; display:block; width:14px; height:14px; border-top:2px solid #000; border-right:2px solid #000; transform:rotate(45deg); }
.cta__note { margin:0; }

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

.footer { padding:70px 0; background:#222; color:#fff; text-align:center; }
.footer__title {
	margin:0 0 24px;
	font-weight:700; 
}
.footer__nav { display:flex; flex-wrap:wrap; justify-content:center; gap:40px; margin-bottom:12px; }
.footer__link { font-weight:700; }
.footer__copyright { margin:0; color:#aaa; font-weight:700; }

@media screen and (max-width: 760px) {
  :root { --inner: 100%; }
  /*.fv__inner,*/
  .intro__inner,
  .problem__inner,
  .profile__inner,
  .program__inner,
  .comparison__inner,
  .portfolio__inner,
  .report__inner,
  .howto__inner,
  .member-voice__inner,
  .plan__inner,
  .flow__inner,
  .faq__inner,
  .vision__inner,
  .cta__inner,
  .footer__inner { width: calc(100% - 28px); }
  /*.fv__bg { min-height: 620px; padding: 28px 20px 150px; }
  .fv__catch { font-size: 14px; padding: 8px; }
  .fv__name { right:20px; bottom:180px; }
  .fv__panel { width: 92%; }
  .fv__benefit-list { grid-template-columns: 1fr; gap: 12px; }
  .fv__benefit-item { border-right: 0; border-bottom: 1px dotted var(--color-gold); padding-bottom: 10px; }*/
  .profile__box,
  .program__body,
  .program__body--reverse,
  .report__content { grid-template-columns: 1fr; }
  .comparison__table { grid-template-columns: 1fr; }
  .portfolio__item { grid-template-columns: 44px 1fr; gap: 10px; font-size: 16px; }
  .portfolio__arrow { display:none; }
  .portfolio__status { grid-column: 2; }
  .howto__list { grid-template-columns:1fr; }
  .howto__item { border-right:0; border-bottom:1px solid rgba(255,255,255,.3); padding: 0 0 30px; }
  .member-voice__body { grid-template-columns:1fr; padding:28px; }
  .flow__list { flex-direction:column; }
  .flow__connector { transform: rotate(90deg); margin: 8px 0; }
  .faq__question { padding-left:18px; }
  .faq__question-text { font-size:16px; }
}

/* ========================================
SP最適化（追記）
======================================== */
@media screen and (max-width: 760px) {

  /* =========================
  共通
  ========================= */
  section {
    overflow: hidden;
  }

  .problem,
  .profile,
  .program,
  .comparison,
  .portfolio,
  .report,
  .howto,
  .member-voice,
  .plan,
  .faq {
    padding: 1.875rem 0;
  }

  .problem__inner,
  .profile__inner,
  .program__inner,
  .comparison__inner,
  .portfolio__inner,
  .report__inner,
  .howto__inner,
  .member-voice__inner,
  .plan__inner,
  .faq__inner {
    width: calc(100% - 28px);
  }

  /* =========================
  見出し
  ========================= */
  .problem__title,
  .profile__title,
  .program__title,
  .comparison__title,
  .portfolio__title,
  .report__title,
  .howto__title,
  .member-voice__title,
  .plan__title,
  .faq__title {
    font-size: 26px;
    line-height: 1.45;
  }

  /* =========================
  INTRO
  ========================= */
  .intro {
    margin-top: -48px;
  }

  .intro__img {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
  }

  /* =========================
  PROBLEM
  ========================= */
  .problem__list-inner {
    padding: 40px 24px 18px;
    margin-bottom: 70px;
  }

  .problem__title {
    padding: 10px 16px;
    font-size: 22px;
  }

  .problem__lead {
    font-size: 18px;
  }

  .problem__item {
    font-size: 14px;
    line-height: 1.9;
  }

  .problem__solution {
    padding: 34px 20px;
  }

  .problem__solution-text {
    font-size: 16px;
    line-height: 1.8;
  }

  .problem__btn {
    width: 100%;
    min-height: 56px;
    padding: 0 18px;
    font-size: 15px;
  }

  /* =========================
  PROFILE
  ========================= */
  .profile__box {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 30px 22px;
  }

  .profile__image {
    order: -1;
    text-align: center;
  }

  .profile__img {
    max-width: 260px;
  }

  /* =========================
  PROGRAM
  ========================= */
  .program__body,
  .program__body--reverse {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 24px;
  }

  .program__body--reverse .program__image,
  .program__body--reverse .program__text {
    order: initial;
  }

  .program__item-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding: 20px;
  }

  .program__item-title {
    font-size: 21px;
  }

  .program__badge {
    align-self: flex-start;
  }

  /* =========================
COMPARISON
========================= */

.comparison {
  padding: 60px 0;
}

.comparison__inner {
  width: calc(100% - 28px);
  margin: 0 auto;
}

.comparison__heading {
  margin-bottom: 28px;
  text-align: center;
}

.comparison__title {
  font-size: 24px;
  line-height: 1.45;
  letter-spacing: 0.04em;
}

/* 横スクロール廃止 */
.comparison__image {
  overflow: hidden;
}

/* 画像をスマホ幅にフィット */
.comparison__img {
  display: block;

  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: auto;

  margin: 0 auto;
}

  /* =========================
  PORTFOLIO
  ========================= */
  .portfolio__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding: 22px;
  }

  .portfolio__table-title {
    font-size: 18px;
  }

  .portfolio__body,
  .portfolio__hidden {
    padding: 24px 20px;
  }

  .portfolio__item {
    grid-template-columns: 40px 1fr;
    gap: 8px;
    font-size: 14px;
  }

  .portfolio__arrow {
    display: none;
  }

  .portfolio__status {
    grid-column: 2;
    border-bottom: 1px solid #ddd;
    padding-bottom: 14px;
    text-align: left;
  }

  .portfolio__btn {
    width: 100%;
    max-width: 100%;
    font-size: 16px;
    padding: 14px 20px;
  }

  /* =========================
  REPORT
  ========================= */
  .report__content {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .report__title br {
    display: none;
  }

  .report__image {
    max-width: 100%;
  }

  /* =========================
HOWTO
========================= */

.howto__list {
  grid-template-columns: 1fr;
  gap: 18px;
}

.howto__item {
  padding: 24px 18px 22px;

  border-right: 0;
  border-bottom: 1px solid rgba(255,255,255,.2);
}

.howto__item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

/* 番号 */
.howto__number {
  width: 52px;
  height: 52px;

  font-size: 28px;
}


/* タイトル + badge 横並び */
.howto__item-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;

  margin: 14px 0 12px;
}

/* タイトル */
.howto__item-title {
  margin: 0;
  flex: 1;

  font-size: 18px;
  line-height: 1.45;
  letter-spacing: 0.03em;
}

/* badge */
.howto__badge {
  flex-shrink: 0;

  padding: 6px 10px;

  font-size: 11px;
  line-height: 1;
  white-space: nowrap;
}


/* 説明文 */
.howto__description {
  font-size: 14px;
  line-height: 1.85;
  letter-spacing: 0.03em;
}

/* コネクタ（丸4つ） */
.howto__connector {
  margin: -4px 0;
}

.howto__dots {
  font-size: 22px;
}
/* =========================
PLAN（SP）
========================= */
@media screen and (max-width: 760px) {

  .plan {
    padding: 60px 0;
  }

  .plan__inner {
    width: calc(100% - 28px);
    margin: 0 auto;
  }

  .plan__card {
    width: 100%;
    min-height: auto;
  }

  .plan__content {
    min-height: auto;
  }

  .plan__card-header {
    padding: 18px 16px;
  }

  .plan__card-title {
    font-size: 22px;
    line-height: 1.45;
    letter-spacing: 0.04em;
  }

  .plan__card-subtitle {
    font-size: 18px;
    line-height: 1.4;
  }

  .plan__switch {
    width: 220px;
    margin: 20px auto 18px;
  }

  .plan__switch-button {
    font-size: 16px;
  }

  .plan__discount {
    height: 42px;
    margin-bottom: 14px;
  }

  .plan__discount-label {
    min-width: 128px;
    height: 36px;
    font-size: 14px;
  }

  .plan__discount-label::after {
    bottom: -7px;
    border-left-width: 8px;
    border-right-width: 8px;
    border-top-width: 8px;
  }

  /* =========================
  PRICE
  ========================= */

  .plan__price {
    position: relative;
    min-height: 112px;
    margin-bottom: -28px;
    text-align: center;
  }

  .plan__price-before {
    font-size: 14px;
    line-height: 1.2;
  }

  .plan__price-current {
    font-size: 1.75rem;
    line-height: 1.1;
    letter-spacing: 0.02em;
  }

  .plan__price-arrow {
    margin: 0 4px;
    font-size: 18px;
  }

  .plan__price-unit {
    font-size: 13px;
    color: #8f8f8f;
    margin-left: 4px;
  }

  .plan__price-note {
    margin-top: 8px;
    font-size: 14px;
    line-height: 1.5;
  }

  /* 年払い：PC版下線をスマホ用に位置・長さ調整 */
  .plan__panel[data-panel="yearly"] .plan__price::after {
    left: 0%;
    right: 1%;
    bottom: 4.75rem;
    height: 8px;
  }

  /* 月払い：PC版下線をスマホ用に位置・長さ調整 */
  .plan__panel[data-panel="monthly"] .plan__price::after {
    left: 0%;
    right: 3%;
    bottom: 4.5625rem;
    height: 8px;
  }

  /* PC側の current単体下線が残る場合のみ無効化 */
  .plan__price-current::after {
    content: none;
  }

  /* =========================
  FEATURE
  ========================= */

  .plan__feature-list {
    width: calc(100% - 24px);
    margin: 22px auto 0;
    padding: 22px 18px;
  }

  .plan__feature-item {
    gap: 10px;
    padding: 9px 0 9px 30px;
    font-size: 15px;
    line-height: 1.8;
  }

  .plan__feature-item::before {
    width: 18px;
    height: 18px;
    font-size: 11px;
  }

  .plan__feature-item--new {
    font-size: 14px;
  }

  .plan__new-badge {
    min-width: 52px;
    height: 22px;
    font-size: 11px;
  }

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

  .plan__cta {
    padding: 28px 18px 32px;
  }

  .plan__btn {
    width: 100%;
    min-height: 56px;
    padding: 0 16px;
    font-size: 15px;
  }

  .plan__btn-text small {
    display: block;
    margin-top: 4px;
    font-size: 11px;
  }

  .plan__btn-icon {
    width: 24px;
    height: 24px;
  }

  .plan__note {
    margin-top: 18px;
    font-size: 10px;
    line-height: 1.8;
  }
}

  /* =========================
FLOW
========================= */

.flow {
  padding: 60px 0;
}

.flow__inner {
  width: calc(100% - 28px);
  margin: 0 auto;
}

.flow__heading {
  margin-bottom: 32px;
  text-align: center;
}

.flow__label {
  font-size: 12px;
  line-height: 1.5;
}

.flow__title {
  font-size: 24px;
  line-height: 1.45;
  letter-spacing: 0.06em;
}

.flow__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 34px;
}

.flow__item {
  position: relative;

  width: 100%;
  min-height: auto;
  padding: 58px 22px 32px;

  background: #fff;
}

.flow__number {
  position: absolute;
  top: 0;
  left: 0;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 58px;
  height: 58px;

  background: var(--color-dark);
  color: #fff;

  font-size: 32px;
  font-weight: 700;
  line-height: 1;
}

.flow__content {
  width: 100%;
}

.flow__item-title {
  margin: 0 0 18px;
  padding-left: 18px;

  font-size: 20px;
  line-height: 1.45;
  letter-spacing: 0.04em;
}

.flow__description {
  margin: 0;
  padding-left: 18px;

  font-size: 14px;
  line-height: 1.9;
  letter-spacing: 0.04em;
}

/* 縦ドット */
.flow__connector {
  display: flex;
  justify-content: center;
  align-items: center;

  height: 34px;
  margin: -18px 0;

  transform: none !important;
}

/* PC用spanをスマホでは非表示 */
.flow__connector span {
  display: none !important;
}

/* SP用の縦ドット */
.flow__connector::before {
  content: "••••";

  display: block;

  color: var(--color-dark);
  font-size: 26px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.05em;

  writing-mode: vertical-rl;
  transform: none !important;
}

/* 右向き矢印指定がある場合も打ち消し */
.flow__connector--arrow::after {
  display: none !important;
  content: none !important;
}
	
  /* =========================
FAQ
========================= */
.faq {
  padding: 60px 0;
}

.faq__inner {
  width: calc(100% - 28px);
}

.faq__list {
  width: 100%;
}

.faq__item {
  margin-bottom: 12px;
}

.faq__question {
  display: grid;
  grid-template-columns: auto 1fr 52px;
  align-items: stretch;

  min-height: 68px;
  padding: 0;
}

.faq__q-label {
  display: flex;
  align-items: center;
  padding-left: 18px;
  margin-right: 12px;

  font-size: 24px;
}

.faq__question-text {
  display: flex;
  align-items: center;

  padding: 14px 8px 14px 0;

  font-size: 15px;
  line-height: 1.6;
}

.faq__toggle {
  width: 52px;
  height: auto;
  min-height: 68px;
}

.faq__answer {
  display: none;
  grid-template-columns: auto 1fr;
  gap: 14px;

  padding: 20px 18px;
}

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

.faq__a-label {
  font-size: 24px;
  line-height: 1.4;
}

.faq__answer-text {
  font-size: 14px;
  line-height: 1.9;
}
	
/* =========================
  VISION
  ========================= */

  .vision {
    padding: 60px 0;
    background: var(--color-cream);
  }

  .vision__inner {
    width: calc(100% - 28px);
    margin: 0 auto;
  }

  .vision__heading {
    margin-bottom: 28px;
    text-align: center;
  }

  .vision__label {
    margin: 0 0 8px;

    color: var(--color-gold);
    font-size: 12px;
    line-height: 1.5;
    letter-spacing: 0.08em;
  }

  .vision__title {
    font-size: 24px;
    line-height: 1.55;
    letter-spacing: 0.06em;
  }

  .vision__content {
    padding: 0;
  }

  .vision__text {
    font-size: 14px;
    line-height: 2;
    letter-spacing: 0.04em;
    text-align: left;
  }

  .vision__text + .vision__text {
    margin-top: 22px;
  }
	
/* =========================
  CTA
  ========================= */
	.cta {
    padding: 60px 0;
  }

  .cta__inner {
    width: calc(100% - 28px);
    margin: 0 auto;
  }

  .cta__heading {
    margin-bottom: 28px;
    text-align: center;
  }

  .cta__label {
    margin: 0 0 8px;

    color: #fff;
    font-size: 12px;
    line-height: 1.5;
    letter-spacing: 0.08em;
  }

  .cta__title {
    font-size: 24px;
    line-height: 1.55;
    letter-spacing: 0.06em;
  }

  .cta__text {
    margin-top: 14px;

    font-size: 15px;
    line-height: 1.8;
    letter-spacing: 0.04em;
  }

  .cta__button {
    width: 100%;
    max-width: 100%;
    min-height: 64px;
    padding: 0 20px 0 24px;

    border-radius: 999px;
  }

  .cta__button-text {
    font-size: 17px;
    line-height: 1.2;
    letter-spacing: 0.04em;
    text-align: left;
  }

  .cta__button-icon {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
  }

  .cta__note {
    margin-top: 14px;

    font-size: 12px;
    line-height: 1.7;
    letter-spacing: 0.03em;
    text-align: center;
  }
}
