@charset "UTF-8";

/* http://meyerweb.com/eric/tools/css/reset/
  v2.0 | 20110126
  License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
a {
	text-decoration: none;
}

/* variables
============================================ */
:root {
  --max-content: calc(1200px + (40px * 2));
  --text-color: #333;
  --accent-color: #EC7026;
  --text-color-orange: var(--accent-color);
  --link-color: #1569B0;
  --font-normal: 300;
  --font-bold: bold;

	/* z-index */
	--z-index-fixed-item: 5;
	--z-index-modal: 6;
}

/* common
============================================ */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 10px;
	scroll-behavior: smooth;
}

body {
  font-family: "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif;
  margin: 0 auto;
  color: var(--text-color);
  font-size: 1.6rem;
  font-weight: var(--font-normal);
  line-height: 1.6;
}

:target {
  scroll-margin-top: 64px;
}
@media screen and (min-width: 960px) {
	:target {
		scroll-margin-top: 74px;
	}
}


/* Layout
============================================ */
/* content */
.l-content {
  width: 100%;
  overflow: hidden;
}

/* section */
.l-section {
  width: 100%;
  margin-inline: auto;
	position: relative;
	z-index: 1;
}

.l-section__inner {
  max-width: var(--max-content);
  margin-inline: auto;
  padding: 56px 20px;
}
@media screen and (min-width: 960px) {
  .l-section__inner {
    padding: 120px 40px;
  }
}

.l-section-head {
	margin-bottom: 40px;
}

/* header */
.l-header {
  width: 100%;
  background-color: #FFF;
  border-bottom: 1px solid #DDD;
  position: sticky;
  top: 0;
  z-index: var(--z-index-fixed-item);
}

.l-header__inner {
  display: flex;
  align-items: center;
  max-width: calc(var(--max-content) + (16px * 2));
  height: 63px;
  margin-inline: auto;
  padding: 11px 16px 13px;
}
@media screen and (min-width: 960px) {
  .l-header__inner {
		max-width: 1440px;
    height: 73px;
    padding: 15px 24px;
  }
}

.l-header__logo {
  display: block;
  width: 105px;
  aspect-ratio: 105 / 35;
}
@media screen and (min-width: 960px) {
  .l-header__logo {
    width: 129px;
    aspect-ratio: 129 / 44;
  }
}

@media screen and (max-width: 959px) {
  .l-header__menu-trigger {
    display: block;
    width: 24px;
    height: 25px;
    margin-left: 12px;
    border: none;
    background: none;
    position: relative;
  }

  .l-header__menu-trigger span {
    display: block;
    width: 18px;
    height: 2px;
    background-color: #333;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    transition: 0.3s;
  }

  .l-header__menu-trigger span:nth-child(1) {
    top: 6px;
  }

  .l-header__menu-trigger span:nth-child(2) {
    top: 11px;
  }

  .l-header__menu-trigger span:nth-child(3) {
    top: 16px;
  }

  .l-header__menu-trigger.is-open span:nth-child(1) {
    top: 50%;
    transform: translate(-50%) rotate(135deg);
  }

  .l-header__menu-trigger.is-open span:nth-child(2) {
    opacity: 0;
  }

  .l-header__menu-trigger.is-open span:nth-child(3) {
    top: 50%;
    transform: translate(-50%) rotate(-135deg);
  }
}
@media screen and (min-width: 960px) {
  .l-header__menu-trigger {
    display: none;
  }
}

@media screen and (max-width: 959px) {
  .l-header__nav {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    width: 100%;
    transition: 0.3s;
    overflow: scroll;
    overscroll-behavior: none;
    position: absolute;
    top: calc(100% + 1px);
    left: 0;
    background-color: #FFF;
  }
}

@media screen and (min-width: 960px) {
  .l-header__nav {
    margin-left: 32px;
  }
}

@media screen and (max-width: 959px) {
  .l-header__nav.is-open {
    opacity: 1;
    visibility: visible;
    max-height: calc(100svh - 63px);
    z-index: 10;
  }
}

@media screen and (min-width: 960px) {
  .l-header__nav ul {
    display: flex;
    column-gap: 24px;
  }
}

.l-header__nav-item a {
  color: var(--text-color);
  font-size: 1.6rem;
  text-decoration: none;
}
@media screen and (max-width: 959px) {
  .l-header__nav-item a {
    display: block;
    padding: 16px 16px 15px;
    line-height: 1.5;
    border-bottom: 1px solid #DDD;
  }
}

.l-header__nav-item a:hover {
  text-decoration: underline;
}

@media screen and (min-width: 960px) {
  .l-header__nav-item--banner {
    display: none;
  }
}

@media screen and (max-width: 959px) {
  .l-header__nav-item--banner a {
    display: flex;
    align-items: center;
  }
  .l-header__nav-item--banner-image {
    display: block;
    width: 180px;
    height: auto;
  }

  .l-header__nav-item--banner-image + .c-icon--blank {
    margin-left: 16px;
  }
}

.l-header__button {
  min-width: 135px;
  margin-inline: auto 0;
}

.l-header__button .c-button-01 {
  width: 100%;
  font-size: 1.4rem;
}

.l-header__button .c-button__inner {
  padding-block: 8px;
}

@media screen and (min-width: 960px) {
  .l-header__logo02 {
    width: 180px;
    margin-inline: 20px 0;
    aspect-ratio: 180 / 31;
  }
}

/* footer */
.l-footer {
  width: 100%;
  background-color: #FFF;
}

.l-footer__inner {
  padding: 0 28px 25px;
}
@media screen and (min-width: 960px) {
  .l-footer__inner {
    padding-bottom: 15px;
    text-align: center;
  }
}

.l-footer__link {
  display: inline-flex;
  vertical-align: middle;
  font-size: 0;
  position: relative;
}
@media screen and (max-width: 959px) {
  .l-footer__link {
    flex-direction: column;
  }
}
@media screen and (min-width: 960px) {
  .l-footer__link {
    flex-wrap: wrap;
    align-items: center;
  }
}

@media screen and (min-width: 960px) {
  .l-footer__link::before {
    content: '';
    display: block;
    width: 2px;
    height: 14px;
    background-color: #A0A0A0;
  }
}

.l-footer__link-item {
  font-size: 0;
}

.l-footer__link-item a {
  display: inline-flex;
  align-items: center;
  font-size: 1.3rem;
  line-height: 1.5;
  position: relative;
}
@media screen and (max-width: 959px) {
  .l-footer__link-item a {
    color: var(--link-color);
    padding-right: 12px;
  }
}
@media screen and (min-width: 960px) {
  .l-footer__link-item a {
    padding-inline: 8px 12px;
    color: var(--text-color);
    text-decoration: none;
  }
}

.l-footer__link-item a:hover {
  text-decoration: underline;
}

.l-footer__link-item a::before {
  content: '';
  display: block;
}
@media screen and (max-width: 959px) {
  .l-footer__link-item a::before {
    width: 5px;
    height: 5px;
    margin-left: 4px;
    border-top: 1px solid var(--link-color);
    border-right: 1px solid var(--link-color);
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%) rotate(45deg);
  }
}
@media screen and (min-width: 960px) {
  .l-footer__link-item a::before {
    width: 2px;
    height: 14px;
    margin-left: 10px;
    background-color: #A0A0A0;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
  }
}

@media screen and (min-width: 960px) {
  .l-footer__link-item a[target="_blank"]::after {
    content: '';
    display: block;
    width: 20px;
    height: 20px;
    margin-left: 10px;
    background: url('../images/icon_blank_02.webp') no-repeat center / contain;
  }
}

.l-footer__logo {
  display: block;
  width: 177px;
  margin-top: 29px;
  margin-inline: auto;
}
@media screen and (min-width: 960px) {
  .l-footer__logo {
    margin-top: 68px;
  }
}

.l-footer__copyright {
  display: block;
  width: 100%;
  padding: 9px;
  color: #FFF;
  font-size: 1rem;
  line-height: 1;
  text-align: center;
  background-color: #3C3C3C;
}
@media screen and (min-width: 960px) {
  .l-footer__copyright {
    padding: 15px 15px 16px;
    font-size: 1.2rem;
  }
}


/* about */
.l-section--about {
	z-index: 2;
}

@media screen and (min-width: 960px) {
  .l-section--about .l-section__inner {
    padding-top: 100px;
  }
}

/* use case */
.l-section--use-case {
	background-color: #FAFAFA;
}

/* column */
.l-col {
	display: flex;
	justify-content: center;
	gap: 48px;
	position: relative;
	z-index: 2;

	@media screen and (max-width: 959px) {
		flex-direction: column;
		gap: 24px;
	}
}

.l-col__item {
	width: 100%;

	@media screen and (min-width: 960px) {
		display: flex;
		flex-direction: column;
		justify-content: center;
	}
}

/* 2 column */
@media screen and (min-width: 960px) {
	.l-col-2col {
		flex-direction: row;
	}
}

@media screen and (min-width: 960px) {
	.l-col-2col .l-col__item--content {
		width: min(44.375vw, 568px);
	}
}

@media screen and (min-width: 960px) {
	.l-col-2col .l-col__item--image {
		width: min(45.625vw, 584px);
	}
}

@media screen and (min-width: 960px) {
	.l-col-2col--reverse {
		flex-direction: row-reverse;
	}
}

/* 3 column */
.l-col-3col {
	gap: 24px;

	@media screen and (max-width: 959px) {
		gap: 16px;
	}
}

.l-col-3col .l-col__item {
	@media screen and (min-width: 960px) {
		width: calc((100% - 48px) / 3);
	}
}

.l-col-3col--02 {
	gap: 36px;

	@media screen and (min-width: 960px) {
		gap: 53px;
	}
}

.l-col-3col--02 .l-col__item {
	@media screen and (min-width: 960px) {
		width: calc((100% - (53px * 2)) / 3);
	}
}


/* components
============================================ */
/* image */
.c-image-wrap {
	display: block;
	box-shadow: 2px 2px 15px 0 rgba(66, 67, 68, 0.15);
	border-radius: 20px;
	overflow: hidden;
}

.c-image-contain {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

.c-image-contain-02 {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* icon */
.c-icon {
  display: grid;
  place-content: center;
  width: 24px;
  height: 25px;
  position: relative;
  z-index: 1;

	&::before {
		content: '';
		display: block;
		width: 100%;
		height: 100%;
		background-repeat: no-repeat;
		background-position: center;
		background-size: contain;
		position: absolute;
		top: 0;
		left: 0;
		z-index: 2;
		transition: 0.3s;
	}

	img {
		display: block;
		width: auto;
		height: auto;
		object-fit: contain;
	}
}

.c-icon--blank::before {
  background-image: url('/assets/images/icon_blank.svg');
}

.c-icon--question::before {
  background-image: url('/assets/images/icon_question_orange.svg');
}

.c-icon--plus::before {
  background-image: url('/assets/images/icon_plus_orange.svg');
}

.c-icon--minus::before {
  background-image: url('/assets/images/icon_minus_orange.svg');
}

/* button wrap */
.c-button-wrap-01 {
	display: inline-block;
	margin-top: 24px;
}

.c-button-wrap-02 {
	max-width: 250px;
	margin-top: 24px;
	margin-inline: auto;

	@media screen and (min-width: 960px) {
		margin-top: 16px;
	}
}

.c-button-wrap-03 {
	max-width: 300px;
	margin-top: 4px;
	margin-inline: auto;
}

/* button */
.c-button {
  display: inline-flex;
  width: 100%;
  text-decoration: none;
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  line-height: 1;
  border-radius: 40px;
  box-shadow: 2px 2px 6px 0 rgba(66, 67, 68, 0.15);
  overflow: hidden;
  transition: 0.3s;
  position: relative;
  z-index: 0;

	&::before {
		content: '';
		display: block;
		width: 100%;
		height: 100%;
		position: absolute;
		z-index: 1;
		transition: 0.4s;
		opacity: 1;
	}
}

@media screen and (min-width: 960px) {
	.c-button:hover {
		cursor: pointer;

		& .c-icon::before {
			opacity: 0;
		}
	}
}

.c-button__inner {
  display: inline-flex;
  align-items: center;
  column-gap: 4px;
  margin-inline: auto;
  padding: 15px 24px;
  word-break: keep-all;
	letter-spacing: 0.044em;
  position: relative;
  z-index: 1;
}

.c-button-01 {
  color: var(--text-color);
  border: 2px solid #FFF;
  background-color: #FFF;

	&::before {
		background: linear-gradient(109deg, #F8B423 37.69%, #FF7F33 97.84%);
	}
}
@media screen and (min-width: 960px) {
	.c-button-01:hover {
		color: var(--text-color-orange);
		border-color: var(--accent-color);

		&::before {
			opacity: 0;
		}
	}
}

.c-button-02 {
  color: var(--accent-color);
  border: 2px solid var(--accent-color);
  background-color: var(--accent-color);

	&::before {
		background: #FFF;
	}
}

@media screen and (min-width: 960px) {
	.c-button-02:hover {
		color: #FFF;

		&::before {
			opacity: 0;
		}
	}
}

.c-button-02--toggle {
	.c-icon--minus {
		display: none;
	}

	&.is-expanded {
		.c-icon--plus {
			display: none;
		}

		.c-icon--minus {
			display: block;
		}
	}
}

/* title */
.c-title-01 {
	text-align: center;
}

.c-title-01__sub {
	font-size: 2.4rem;
	color: var(--text-color-orange);
	font-weight: var(--font-bold);
	position: relative;

  &::after {
		content: "";
		width: 40px;
    height: 4px;
    background-color: var(--text-color-orange);
    position: absolute;
    bottom: -18px;
    left: 50%;
    transform: translateX(-50%);
	}
}
@media screen and (max-width: 959px) {
  .c-title-01__sub {
    font-size: 2.0rem;
	}
}
.c-title-01__main{
	font-size: 4.0rem;
	color: var(--text-color);
	font-weight: var(--font-bold);
	margin-top: 16px;
}
@media screen and (max-width: 959px) {
  .c-title-01__main {
    font-size: 2.7rem;
	}
}

.c-title-01__text{
	font-size: 1.6rem;
	color: var(--text-color);
	font-weight: var(--font-normal);
	line-height: 1.6;
	margin-top: 6px;
}
@media screen and (max-width: 959px) {
  .c-title-01__text {
    margin-top: 18px;
	}
}

.c-title-02__sub {
	display: block;
	margin-bottom: 4px;
	color: var(--text-color-orange);
	font-size: 1.6rem;
	font-weight: var(--font-bold);
	position: relative;
}
@media screen and (min-width: 960px) {
  .c-title-02__sub {
		font-size: 1.8rem;
	}
}

.c-title-02__main {
	color: var(--text-color);
	font-size: 2.1rem;
	font-weight: var(--font-bold);
	line-height: 1.5;
	position: relative;
}
@media screen and (min-width: 960px) {
  .c-title-02__main {
    font-size: 3.2rem;
	}
}

.c-title__color {
	color: var(--text-color-orange);
}

/* c-title-03 */
.c-title-03 {
	margin-block: 40px 24px;
	font-size: 1.8rem;
	color: var(--text-color);
	font-weight: var(--font-bold);
	text-align: center;
	position: relative;

	@media screen and (min-width: 960px) {
		margin-block: 44px 24px;
    font-size: 2.4rem;
	}
}


/* c-text */
.c-text {
	font-size: 1.6rem;
	color: var(--text-color);
	font-weight: var(--font-normal);
	line-height: 1.6;
}

.c-text-bold {
	font-weight: var(--font-bold);
}

/* project
============================================ */
/* kv */
.p-kv {
  width: 100%;
  background-color: rgba(254, 248, 226, 0.60);
	overflow: hidden;
}

.p-kv__inner {
  max-width: var(--max-content);
  margin-inline: auto;
  position: relative;

	@media screen and (max-width: 959px) {
		padding: 24px 20px 16px;
	}

	@media screen and (min-width: 960px) {
		display: grid;
    grid-template: 'kv-title kv-image' max-content
                  '... kv-image' min(1.25vw, 18px)
                  'kv-button kv-image' 1fr
                  / max-content 1fr;
    flex-direction: row;
    padding-inline: 40px;
    z-index: 1;
	}
}

.p-kv__inner::before {
  content: '';
  display: block;
  position: absolute;
}
@media screen and (max-width: 959px) {
	.p-kv__inner::before {
		width: 100%;
    padding-bottom: 64.87%;
    background: url('../images/bg_kv_sp.svg') no-repeat center / contain;
    bottom: 0;
    left: 0;
	}
}
@media screen and (min-width: 960px) {
	.p-kv__inner::before {
		width: 650px;
    height: 100%;
    background: url('../images/bg_kv_pc.svg') no-repeat center / auto 100%;
    position: absolute;
    top: 0;
    right: -82px;
    z-index: 2;
	}
}

.p-kv__title {
  text-align: center;
  position: relative;
  z-index: 2;

	@media screen and (max-width: 959px) {
		width: calc(100% + 20px);
		margin-left: -10px;
	}

	@media screen and (min-width: 960px) {
		grid-area: kv-title;
    padding-top: 37px;
	}
}

.p-kv__title-catch {
  display: inline-block;
  font-weight: var(--font-bold);
  line-height: 1.3;
  text-align: left;
}

.p-kv__title-catch-item {
  display: block;

	@media screen and (max-width: 959px) {
		word-break: keep-all;
	}
}

.p-kv__title-catch-item:nth-of-type(1) {
  font-size: min(5.64vw, 2.2rem);

	@media screen and (min-width: 960px) {
		font-size: min(2.78vw, 4rem);
	}
}

.p-kv__title-catch-item:nth-of-type(2) {
  font-size: min(7.69vw ,3rem);

	@media screen and (min-width: 960px) {
		font-size: min(3.89vw, 5.6rem);
	}
}

.p-kv__title-catch-strong {
  color: var(--text-color-orange);
  font-size: min(9.487vw, 3.7rem);

	@media screen and (min-width: 960px) {
		font-size: min(4.45vw, 6.4rem);
	}
}

.p-kv__title-catch-palt {
	font-feature-settings: 'palt';
}

.p-kv__title-main {
  width: 217px;
  margin-top: 24px;
  margin-inline: auto;

	@media screen and (min-width: 960px) {
		max-width: 337px;
    width: 57.31%;
    margin-top: 15px;
		position: relative;
		left: -22px;
	}
}

.p-kv__button {
  max-width: 267px;
  margin-top: 24px;
  margin-inline: auto;
  text-align: center;

	@media screen and (min-width: 960px) {
		grid-area: kv-button;
    max-width: 422px;
    width: 71.769%;
    margin-block: 0 49px;
		position: relative;
		left: -22px;
	}
}

.p-kv__image {
  position: relative;
  z-index: 2;

	@media screen and (max-width: 959px) {
		display: block;
    max-width: 650px;
    margin-top: 40px;
    margin-inline: auto;
	}

	@media screen and (min-width: 960px) {
		grid-area: kv-image;
		width: calc(100% + min(2.656vw, 34px));
	}
}

/* card */
.p-card {
	border-radius: 20px;
	background: #FFF;
	box-shadow: 2px 2px 6px 0 rgba(66, 67, 68, 0.15);
	padding: 24px;
	flex: 1;
	position: relative;
	width: 100%;
  min-width: 0;
	text-align: center;
}

.p-card--border {
	border: 1px solid #424344;
	box-shadow: none;
}

.p-card--step:not(.p-card--step-last) {
	&::before,
	&::after {
		content: '';
		display: block;
		width: 19px;
		height: 27px;
		background: url('../images/img_card_arrow.webp') no-repeat center right / contain;
		position: absolute;
		z-index: -1;

		@media screen and (max-width: 959px) {
			left: 50%;
			bottom: -18px;
			transform: translateX(-50%) rotate(90deg);
		}

		@media screen and (min-width: 960px) {
			width: 19px;
			height: 27px;
			top: 50%;
			right: -16px;
			transform: translateY(-50%);
		}
	}

	&::before {
		filter: drop-shadow(1px 3px 5px rgba(66, 67, 68, 0.15));
		z-index: -1;
	}

	&::after {
		z-index: 1;
	}
}

.p-card__img {
	display: block;
	margin: 0 auto;
	max-width: 100%;
  height: auto;
}

.p-card__label {
  display: inline-block;
  padding: 4px 16px;
  color: var(--text-color-orange);
  font-size: 1.6rem;
  font-weight: var(--font-bold);
  line-height: 1;
  text-align: center;
  border: 1px solid var(--accent-color);
  border-radius: 40px;
}
@media screen and (min-width: 960px) {
  .p-card__label {
    margin-bottom: 24px;
    padding: 7px 16px 8px;
    font-size: 1.8rem;
  }
}

.p-card__step-num {
	width: 64px;
	height: 64px;
	background-color: #FFF3E2;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	border-top-left-radius: 20px;
	position: absolute;
	top: 0;
	left: 0;

	@media screen and (min-width: 960px) {
		width: 70px;
		height: 70px;
	}

	& img {
		width: 38px;
		height: auto;

		@media screen and (min-width: 960px) {
			width: 40px;
		}
	}
}

.p-card__title {
	font-size: 2.0rem;
	color: var(--text-color);
	font-weight: var(--font-bold);
	line-height: 1.6;
	text-align: center;
	margin-bottom: 8px;
	margin-top: 20px;
}

.p-card__text {
	font-size: 1.6rem;
	color: var(--text-color);
	font-weight: var(--font-normal);
	text-align: left;
	line-height: 1.6;
}

/* p-table-01 */
.p-table-scroll-wrapper {
	width: 100%;
	margin-top: 72px;
	padding-block: 22px 2px;
	overflow-x: auto;
	position: relative;
	isolation: isolate;

	@media screen and (min-width: 960px) {
		margin-top: 62px;
	}
}

.p-table-01 {
  width: 1198px;
	font-size: 1.6rem;
	font-weight: var(--font-normal);
	text-align: center;
	color: #000;
	border-collapse: collapse;
	border-spacing: 0;

	@media screen and (max-width: 959px) {
		margin-inline: auto;
		width: 672px;
		font-size: 1.4rem;
	}

	@media screen and (max-width: 712px) {
		margin-inline: 0;
	}
}

@media screen and (max-width: 959px) {
  .col-feature {
		width: 18% !important;
	}
}

@media screen and (max-width: 959px) {
  .col-plan {
		width: 27% !important;
	}
}

.p-table__item {
	padding: 16px 9px;
  vertical-align: middle;
	text-align: center;
}
@media screen and (max-width: 959px) {
  .p-table__item{
		padding: 11px 9px;
	}
}

.p-table__item-02 {
	padding: 16px 9px;
  vertical-align: middle;
	text-align: center;
}
.p-table__item-03 {
	padding: 16px 9px;
  vertical-align: middle;
	text-align: center;
}

.p-table__header__sub {
  position: relative;
  overflow: hidden;
  border: none;
}

.p-table__header__sub__center {
  padding: 6px 9px;
}
@media screen and (max-width: 959px) {
  .p-table__header__sub__center {
		padding: 5px;
	}
}

.p-table__header__sub {
  padding: 9px;
}
@media screen and (max-width: 959px) {
  .p-table__header__sub {
		padding: 5px;
	}
}
.p-table__header__title {
  padding: 16px 9px;
}
@media screen and (max-width: 959px) {
  .p-table__header__title{
		padding: 19px;
	}
}

.p-table-01 tbody th,
.p-table-01 tbody td {
	border-top: 1px solid #D0D0D0;
	border-right: 1px solid #D0D0D0;
	border-bottom: 1px solid #D0D0D0;
}

.lite-01 {
  background-color: #FEEDBB;
	border-top-left-radius: 20px;
}
.standard-01 {
  background-color: #FED868;
	position: relative;
}
.standard-01::before {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	border-left: 1px solid #FFF;
	border-right: 1px solid #FFF;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
}

.pro-01 {
  background-color: #FDC545;
	border-top-right-radius: 20px;
}

.lite-02 {
  background-color: #FEE291;
}
.standard-02 {
  background-color: #FDCE4F;
	position: relative;
}
.standard-02::before {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	border-left: 1px solid #FFF;
	border-right: 1px solid #FFF;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
}
.pro-02 {
  background-color: #FBB83F;
}

.standard-03 {
  background-color: #FED868;
	border-top-right-radius: 20px;
	border-top-left-radius: 20px;
	position: relative;
}

.standard-03::before {
	content: '';
	display: block;
	width: 100%;
	height: 100%;
	border-top: 1px solid #FFF;
	border-left: 1px solid #FFF;
	border-right: 1px solid #FFF;
	border-top-right-radius: 20px;
	border-top-left-radius: 20px;
	position: absolute;
	top: 0;
	left: 0;
}

.plan-name {
	height: 16px;
	margin-block: 6px;

	@media screen and (min-width: 960px) {
		height: 26px;
		margin-block: 11px;
	}

	& img {
		display: block;
		width: auto;
		height: 100%;
		margin-inline: auto;
	}
}

.plan-description {
  font-size: 1.4rem;
	font-weight: var(--font-bold);
}

.table-recommend-tag {
	position: relative;
}

.recommend-tag {
  position: absolute;
  top: -21px;
  left: 50%;
	transform: translateX(-50%);
	min-width: 168px;
  padding: 2px;
  font-size: 1.4rem;
  font-weight: bold;
	text-align: center;
  color: #000;
  background-color: #fff;
  border-radius: 30px;
  z-index: 1;
	border: 2px solid #FDCE4F;

	@media screen and (min-width: 960px) {
		min-width: 180px;
	}
}

.recommend-tag::before {
	content: '';
	display: block;
	width: 0;
	height: 0;
	position: absolute;
	bottom: -8px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 2;
	border-style: solid;
	border-width: 8px 8px 0 8px;
	border-color: #FDCE4F transparent transparent transparent;
}

.recommend-tag::after {
	content: '';
	display: block;
	width: 0;
	height: 0;
	position: absolute;
	bottom: -4px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 3;
	border-style: solid;
	border-width: 4px 4px 0 4px;
	border-color: #FFF transparent transparent transparent;
}

.p-table__col {
  background-color: #F8F8F8;
  font-weight: var(--font-bold);
}

.p-table__price {
  font-size: 2.4rem;
  font-weight: 700;
}
.p-table__price .unit {
  font-size: 1.6rem;
	font-weight: var(--font-normal);
	padding-left: 5px;
}

.p-table-01 .table-01-space {
	position: sticky;
	left: 0;
	z-index: 2;
	background-color: #fff;
	border-left: 0;
	border-right: 0;
}

.p-table-01 .table-01-space::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-left: 2px solid #FFF;
	border-right: 2px solid #FFF;
	background-color: #FFF;
	z-index: -1;
}

.p-table-01 .table-01-space::after {
	content: '';
	position: absolute;
	top: -22px;
	left: 0;
	width: 100%;
	height: 24px;
	border-left: 2px solid #FFF;
	border-right: 2px solid #FFF;
	background-color: #FFF;
	z-index: -1;
}

.p-table-01 td:first-child {
	position: sticky;
	left: 0;
	z-index: 2;
	border-left: 0;
	border-right: 0;
}

.p-table-01 td:first-child::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-left: 1px solid #D0D0D0;
	border-right: 1px solid #D0D0D0;
	background-color: #F8F8F8;
	z-index: -1;
}

.p-table-01 tbody tr:first-child td {
	border-top: 0;
}

.p-table-01 tbody tr:first-child {
	position: relative;
}

.p-table-01 tbody tr:first-child::after {
	content: '';
	width: 100%;
	height: 1px;
	background-color: #D0D0D0;
	position: absolute;
	left: 0;
	top: -1;
	z-index: 4;
}

/* p-table-02 */
.p-table-02-section {
	@media screen and (max-width: 712px) {
		padding-right: 20px;
	}
}

.p-table-02__area {
  max-width: 432px;
  margin: 0 auto;

	@media screen and (max-width: 959px) {
		max-width: 350px;
	}
}
.p-table-02 {
  margin: 0 auto;
	font-size: 1.6rem;
	font-weight: var(--font-normal);
	text-align: center;
	color: #000;
	margin-top: 13px;
}
@media screen and (max-width: 959px) {
  .p-table-02 {
		font-size: 1.4rem;
	}
}

.p-table-02 .p-table__item {
	border: 1px solid #D0D0D0;
}

.p-table__price-02 {
	font-size: 2.4rem;
  font-weight: 700;
	margin-left: 7px;
}
@media screen and (max-width: 959px) {
  .p-table__price-02 {
		font-size: 2.1rem;
	}
}

.p-table__item-04{
	padding: 14px 24px 6px;
	border-right: 1px solid #D0D0D0;
	border-top: 1px solid #D0D0D0;
  vertical-align: middle;
	text-align: right;
}
@media screen and (max-width: 959px) {
  .p-table__item-04 {
		padding: 14px 15px 6px;
	}
}
.p-table__item-05{
	padding: 2px 24px;
	border-right: 1px solid #D0D0D0;
  vertical-align: middle;
	text-align: right;
}
@media screen and (max-width: 959px) {
  .p-table__item-05 {
		padding: 2px 15px;
	}
}
.p-table__item-06{
	padding: 6px 24px 14px;
	border-right: 1px solid #D0D0D0;
	border-bottom: 1px solid #D0D0D0;
  vertical-align: middle;
	text-align: right;
}
@media screen and (max-width: 959px) {
  .p-table__item-06 {
		padding: 6px 15px 14px;
	}
}
.p-table__list{
	margin-top: 24px;
	text-align: left;
}

.p-accordion {
	max-height: 725px;
	overflow: hidden;
	transition: max-height 0.5s ease-out;
	position: relative;

	@media screen and (min-width: 960px) and (max-width: 1280px) {
		width: calc(100% + 40px);
	}

	@media screen and (max-width: 712px) {
		width: calc(100% + 20px);
	}
}

.p-accordion::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 150px; /* グラデーションの高さ */
	background: linear-gradient(to top,#FFF 50%, rgba(255, 255, 255, 0) 100%);
	pointer-events: none;
	z-index: 2;
}

.p-accordion.is-expanded {
	max-height: 2400px;
	overflow: visible;
}
.p-accordion.is-expanded::after {
	display: none;
}

.p-accordion-trigger {
	margin-top: -120px;
	margin-inline: auto;
	position: relative;
	z-index: 2;
}

.p-accordion.is-expanded + .p-accordion-trigger {
	margin-top: 39px;
}

/* p-modal */
.p-modal-overlay {
	display: none;
	background: rgba(66, 67, 68, 0.40);
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	width: 100vw;
	height: 100vh;
	z-index: 1;
}

.p-modal {
	display: none;
	width: 100vw;
	height: 100vh;
	padding: 20px;
	overflow: hidden;
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	bottom: 0;
	z-index: var(--z-index-modal);

	@media screen and (min-width: 960px) {
		padding: 40px;
	}

	&.is-active {
		display: flex;
	}
}

.p-modal__content {
	margin: 0 auto;
	background-color: #FFF;
	width: calc(100% - 80px);
	max-width: 1200px;
  max-height: calc(100vh - 80px);
  overflow: scroll;
	padding: 30px 40px 30px;
	position: relative;
	display: flex;
  flex-direction: column;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 1;
}
@media screen and (max-width: 959px) {
  .p-modal__content {
		width: calc(100% - 40px);
		max-height: calc(100svh - 80px);
		padding: 0;
		top: 45%;
	}
}

.p-modal__header {
	text-align: center;
	flex-shrink: 0;

	@media screen and (max-width: 959px) {
		padding: 20px 55px 16px;
	}

	@media screen and (min-width: 960px) {
		margin-bottom: 40px;
	}
}

.p-modal__title {
	font-size: 3.2rem;
  color: var(--text-color);
  font-weight: var(--font-bold);
	position: relative;
}
@media screen and (max-width: 959px) {
  .p-modal__title{
		font-size: 2.1rem;
	}
}

.p-modal__delete {
	display: block;
	width: 40px;
	height: 40px;
	background: url('../images/icon_cancel.svg') no-repeat center / cover;
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 2;

	@media screen and (min-width: 960px) {
		width: 50px;
		height: 50px;
		top: 24px;
		right: 24px;
	}

	&:hover {
		cursor: pointer;
	}
}

.p-modal__body {
  width: 100%;
}
@media screen and (max-width: 959px) {
    .p-modal__body {
        flex-grow: 1;
        overflow-y: auto;
    }
}

/* issues */
.l-section--issues::before {
  content: '';
  display: block;
  width: 100vw;
}

.l-section--issues-top-area {
	margin-bottom: -12.153%;
	padding-bottom: 12.153%;
  position: relative;
  z-index: 2;
}

.l-section--issues-top-area::before {
  content: '';
  display: block;
  width: 100vw;
  padding-bottom: 12.153%;
  background: url(../images/bg_ellipse.webp) no-repeat center bottom / 100% 100%;
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;

	@media screen and (min-width: 960px) {
		left: 0;
	}
}

.l-section--issues-top-area__inner {
  background-color: #FFF;
}

.l-section--issues-bottom-area {
  position: relative;
}

.l-section--issues-bottom-area::before {
  content: '';
  display: block;
  width: 100vw;
  height: calc(100% + 13vw);
  background: radial-gradient(76.08% 76.08% at 50% 23.93%, #FEF8E2 10.49%, #FDECB4 72.09%, #FCE083 100%);
  position: absolute;
  left: 0;
  bottom: 0;
}

@media screen and (max-width: 959px) {
  .l-section--issues-bottom-area .l-section__inner {
    padding-inline: 0;
  }
}
@media screen and (min-width: 960px) {
  .l-section--issues-bottom-area .l-section__inner {
    padding-bottom: 80px;
  }
}

.p-issues-illust {
	padding-bottom: 142px;
	position: relative;
	z-index: 2;

	@media screen and (min-width: 960px) {
		padding-block: 50px 96px;
	}
}

.p-issues-illust img {
  width: 106px;
  margin-inline: auto;

	@media screen and (min-width: 960px) {
		width: 250px;
	}
}

.p-issues-slide-wrap {
	position: relative;
  z-index: 2;

	@media screen and (max-width: 959px) {
		padding-inline: 7.195vw;
		margin-bottom: -120px;
		top: -120px;
	}

	@media screen and (min-width: 960px) {
		margin-bottom: -246px;
    top: -246px;
		overflow: visible;
	}
}

.p-issues-slide {
  display: flex;
}
@media screen and (min-width: 960px) {
  .p-issues-slide {
    column-gap: 24px;
  }
}

.p-issues-slide__item {
  position: relative;
  display: flex;
  flex-direction: column;

	&.swiper-slide {
		@media screen and (max-width: 959px) {
			width: 83.59vw;
			height: auto;
			padding-inline: 2.051vw;
		}

		@media screen and (min-width: 960px) {
			flex-shrink: 1;
		}
	}
}
@media screen and (min-width: 960px) {
  .p-issues-slide__item {
    height: 1028px;
  }

  .p-issues-slide__item:nth-of-type(1) {
      padding-top: 51px;
  }

  .p-issues-slide__item:nth-of-type(2) {
    margin-top: 0;
    padding-top: 226px;
  }
}

.p-issues-slide__issues {
  display: flex;
  flex-direction: column;
  width: 100%;
	height: 100%;
  position: relative;

	@media screen and (max-width: 959px) {
    border-bottom-right-radius: 0;
	}
}

@media screen and (min-width: 960px) {
	.p-issues-slide__issues::before {
		content: '';
		display: block;
		position: relative;
		width: 0;
		height: 0;
		border-left: calc(42px / 2) solid transparent;
		border-right: calc(42px / 2) solid transparent;
		border-top: calc(42px * 0.8660254) solid #F8B423;
		position: absolute;
		left: 50%;
		bottom: -36px;
		transform: translateX(-50%);
		z-index: 2;
	}
}

.p-issues-slide__issues::after {
  content: '';
  display: block;
  margin-inline: auto;
}
@media screen and (max-width: 959px) {
	.p-issues-slide__issues::after {
		width: 24px;
		height: 36px;
		margin-bottom: 8px;
		background: url('../images/arrow_issues.svg') no-repeat center / contain;
	}
}
@media screen and (min-width: 960px) {
	.p-issues-slide__issues::after {
		width: 16px;
		height: 100%;
		background: linear-gradient(180deg, #F8F8F8 16.57%, #F8B423 100%);
	}
}

.p-issues-slide__issues-box {
  padding: 16px;
  text-align: center;
  background-color: #F8F8F8;
  border-radius: 20px;
}
@media screen and (max-width: 959px) {
  .p-issues-slide__issues-box {
		height: 100%;
    border-bottom-right-radius: 0;
  }
}

@media screen and (min-width: 960px) {
  .p-issues-slide__issues-box--bottom-right {
    border-bottom-right-radius: 0;
  }
  .p-issues-slide__issues-box--bottom-left {
    border-bottom-left-radius: 0;
  }
  .p-issues-slide__issues-box--top-right {
    border-top-right-radius: 0;
  }
  .p-issues-slide__issues-box--top-left {
    border-top-left-radius: 0;
  }
}

.p-issues-slide__issues-title {
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  line-height: 1.72;
}
@media screen and (min-width: 960px) {
  .p-issues-slide__issues-title {
    font-size: 2rem;
    line-height: 1.55;
  }
}

.p-issues-slide__issues-text {
  margin-top: 4px;
}

.p-issues-slide__feature {
	margin-top: auto;
}
@media screen and (min-width: 960px) {
	.p-issues-slide__feature {
		margin-top: 47px;
	}
}

.p-issues-slide-navigation {
	display: flex;
	justify-content: center;
	column-gap: 16px;
	margin-top: 24px;

	@media screen and (min-width: 960px) {
		display: none;
	}

	.swiper-pagination-bullet {
		width: 16px;
		height: 16px;
		margin: 0 !important;
		background: #E1E3E4;
		opacity: 1;
	}

	.swiper-pagination-bullet-active {
		background: #F8B423;
	}
}

@media screen and (max-width: 959px) {
	.p-issues-slide-arrow {
		width: 40px;
		height: 40px;
		width: 10.256vw;
		height: 10.256vw;
		position: absolute;
		top: 40%;
		z-index: 2;

		&::before {
			content: '';
			width: 100%;
			height: 100%;
			background: url('../images/icon_arrow.svg') no-repeat center / contain;
			position: absolute;
			top: 50%;
			transition: 0.2s;
			z-index: 0
		}

		&.swiper-button-disabled {
			pointer-events: none;
			opacity: 0.5;
		}
	}

	.p-issues-slide-arrow--prev {
		left: 5.128vw;

		&::before {
			transform: translateY(-50%) scale(-1, 1);
		}
	}

	.p-issues-slide-arrow--next {
		right: 5.128vw;

		&::before {
			transform: translateY(-50%);
		}
	}
}

.p-issues-text-area {
  text-align: center;
  position: relative;
  z-index: 2;
}
@media screen and (max-width: 959px) {
	.p-issues-text-area {
		margin-top: 24px;
	}
}
@media screen and (min-width: 960px) {
	.p-issues-text-area {
		position: absolute;
		top: 258px;
		left: 50%;
		transform: translateX(-50%);
	}
}

@media screen and (min-width: 960px) {
	.p-issues-text-area::before {
		content: '';
		display: block;
		width: 110%;
		height: 120%;
		background: #FEF8E2;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		z-index: 1;
		opacity: 0.5;
	}
}

.p-issues-text {
  font-size: 1.8rem;
  font-weight: var(--font-bold);
  position: relative;
  z-index: 2;
}
@media screen and (min-width: 960px) {
  .p-issues-text {
    font-size: 2.4rem;
  }
}

.p-issues-text-marker {
  display: inline-flex;
  align-items: baseline;
  margin-top: 8px;
  margin-right: -3px;
  padding: 0 8px;
  line-height: 1.2;
  background: linear-gradient(transparent 75%, #F8B423 0);
}

.p-issues-text-size-01 {
  font-size: 2.7rem;
}
@media screen and (min-width: 960px) {
  .p-issues-text-size-01 {
    font-size: 4rem;
  }
}

.p-issues-text-size-02 {
  font-size: 1.8rem;
}
@media screen and (min-width: 960px) {
  .p-issues-text-size-02 {
    font-size: 3.2rem;
  }
}

/* feature */
.p-feature {
	position: relative;
	padding-bottom: 40px;

	@media screen and (min-width: 960px) {
		padding-bottom: 80px;
	}

	&:nth-of-type(n+2) {
		margin-top: 40px;
	}
}

.p-feature::before {
	content: '';
	display: block;
	width: 100vw;
	height: calc(100% - min(20.513vw, 80px));
	background-color: #FAFAFA;
	position: absolute;
	left: -20px;
	bottom: 0;

	@media screen and (min-width: 960px) {
		width: 100%;
		height: calc(100% - min(9.3755vw, 120px));
		bottom: 40px;
		left: 80px;
	}

	@media screen and (min-width: 960px) and (max-width: 1279px) {
		width: calc(1280px - min(9.3755vw, 120px));
	}

	@media screen and (min-width: 1280px) {
		width: calc(((100vw - 1200px) / 2) + var(--max-content) - 80px);
	}
}

@media screen and (min-width: 960px) {
	.p-feature--reverse::before {
		left: initial;
		right: 80px;
	}
}

.p-feature--adjuster-01,
.p-feature--adjuster-03 {
	@media screen and (min-width: 960px) {
		margin-bottom: -40px;
	}
}

.p-feature--adjuster-01::before {
	@media screen and (min-width: 960px) {
		height: calc(100% - min(20.8594vw, 267px));
		bottom: 187px;
	}
}

@media screen and (min-width: 960px) {
	.p-feature__title {
		margin-top: min(8.59375vw, 110px);
	}
}

.p-feature__title .c-title-02__main {
	line-height: 1.2;
}

.p-feature__text {
	margin-top: 16px;
}
@media screen and (min-width: 960px) {
	.p-feature__text {
		margin-top: 20px;
	}
}

/* cta */
.l-section--cta-01 {
	background-color: #FEF8E2;
	position: relative;
}

.l-section--cta-01::before,
.l-section--cta-01::after {
	content: '';
	width: 150px;
	height: 150px;
	position: absolute;
	z-index: 1;

	@media screen and (min-width: 960px) {
		width: 200px;
		height: 200px;
	}
}

.l-section--cta-01::before {
	background: url('../images/bg_pattern_02.svg') no-repeat center / cover;
	top: 0;
	left: 0;
}

.l-section--cta-01::after {
	background: url('../images/bg_pattern_01.svg') no-repeat center / cover;
	bottom: 0;
	right: 0;
}

.l-section--cta-01 .l-section__inner {
	padding-block: 56px;
	text-align: center;
	position: relative;
	z-index: 2;

	@media screen and (min-width: 960px) {
		padding-block: 70px 75px;
	}
}

/* cta banner */
.p-cta-banner {
  width: 100%;
  border-radius: 20px;
	background: linear-gradient(95deg, #FEF8E2 1.3%, #FAD659 100%);
}

.p-cta-banner__inner {
  max-width: var(--max-content);
  margin-inline: auto;
  position: relative;

  @media screen and (max-width: 959px) {
    padding: 20px 16px;
  }

  @media screen and (min-width: 960px) {
    display: grid;
    grid-template: 'banner-title banner-image' max-content
                  '... banner-image' min(1.25vw, 18px)
                  'banner-button banner-image' 1fr
                  / max-content 1fr;
    flex-direction: row;
    padding-inline: 50px;
    z-index: 1;
  }
}

.p-cta-banner__title {
  text-align: center;
  position: relative;
  z-index: 2;

  @media screen and (min-width: 960px) {
    grid-area: banner-title;
    padding-top: 52px;
  }
}

.p-cta-banner__title-catch {
  display: inline-block;
  font-weight: var(--font-bold);
  line-height: 1.3;
}

.p-cta-banner__title-catch-item {
  display: block;
	font-size: 2.0rem;
	font-weight: var(--font-bold);

  @media screen and (max-width: 959px) {
    font-size: 1.8rem;
		line-height: 1.3;
  }
}

.p-cta-banner__title-main {
  max-width: 278px;
  margin-top: 17px;
  margin-inline: auto;

  @media screen and (min-width: 960px) {
    max-width: 355px;
		width: 71.31%;
		margin-top: 26px;
		position: relative;
		left: 2px;
  }
}

.p-cta-banner__button {
  margin-top: 24px;
  margin-inline: auto;
  text-align: center;

  @media screen and (min-width: 960px) {
    grid-area: banner-button;
    margin-block: 8px 50px;
		position: relative;
		left: 2px;
  }
}

.p-cta-banner__button .c-text::before{
	content: '';
		display: inline-block;
		width: 8px;
		height: 16px;
		background: url('../images/ing_slash.webp') no-repeat center right / contain;
		position: relative;
		z-index: 1;
		margin-right: 6px;
		top: 2px;
}
.p-cta-banner__button .c-text::after{
	content: '';
		display: inline-block;
		width: 8px;
		height: 16px;
		background: url('../images/ing_slash.webp') no-repeat center right / contain;
		position: relative;
		z-index: 1;
		transform: scaleX(-1);
		margin-left: 6px;
		top: 2px;
}

.p-cta-banner__image {
  position: relative;
  z-index: 2;

  @media screen and (max-width: 959px) {
    display: block;
    max-width: 500px;
    margin-top: 25px;
    margin-inline: auto;
  }

  @media screen and (min-width: 960px) {
    grid-area: banner-image;
		width: calc(100% + 50px);
		height: 100%;
  }
}

/* utility
============================================ */
/* space */
.u-mt0 {
	margin-top: 0;
}

.u-mt20 {
	margin-top: 20px;
}

.u-mt70-50 {
	margin-top: 70px;

	@media screen and (max-width: 959px) {
		margin-top: 50px;
	}
}

.u-pt0 {
  padding-top: 0;
}

.u-pb0 {
  padding-bottom: 0;
}

/* align */
.u-center {
	text-align: center;
}

/* display */
@media screen and (min-width: 960px) {
  .u-sp {
    display: none;
  }
}
@media screen and (max-width: 959px) {
  .u-pc {
    display: none;
  }
}