html {
  -webkit-tap-highlight-color: transparent;
}

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

a {
  text-decoration: none;
}

img {
  vertical-align: bottom;
  max-width: 100%;
}

img,
a:hover {
  text-decoration: none;
}

ul {
  padding: 0px;
  list-style: none;
}

body {
  position: relative;
  margin: auto;
  max-width: 480px;
  width: 100%;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: inherit;
  color: rgba(0, 0, 0, 1);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*header*/
header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-left: 16px;
  height: 56px;
}

.header-logo {
  width: 155px;
}

.urgency-btn {
  align-self: flex-start;
  position: relative;
  padding: 0 16px 0 56px;
  width: 162px;
  height: 47px;
  line-height: 47px;
  background: rgba(200, 0, 54, 1);
  border-radius: 0px 0px 0px 20px;
  cursor: pointer;
}

.urgency-btn p {
  position: relative;
  font-size: 18px;
  font-weight: 700;
  color: rgba(255, 255, 255, 1);
}

.urgency-btn p::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -40px;
  width: 32px;
  height: 32px;
  background: url(../img/exclamation.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

/*hero*/
.hero {
  position: relative;
  padding: 24px 16px;
  height: 482px;
  background-image: url("../img/hero.png");
  background-size: contain;
  background-position: bottom;
  background-repeat: no-repeat;
  background-color: rgba(237, 239, 242, 1);
}

h1 img {
  width: 284px;
}

.h1-sub {
  margin: 0 0 8px 16px;
  font-size: 12px;
  font-weight: 700;
  line-height: 15px;
  color: rgba(12, 24, 68, 1);
}

.hero-box {
  position: relative;
  padding: 8px;
  background: rgba(255, 255, 255, 1);
  border-top: 2px solid rgba(60, 54, 51, 1);
}

.hero-box img {
  position: absolute;
  top: -54px;
  right: 16px;
  width: 72px;
}

.hero-box-heading {
  padding-bottom: 7px;
  font-size: 16px;
  font-weight: 700;
  line-height: 18px;
  color: rgba(12, 24, 68, 1);
  border-bottom: 1px solid rgba(224, 204, 190, 1);
}

.hero-box-content-outer {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 20px 24px;
}

.hero-box-content {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.funeral-name {
  position: relative;
  font-size: 14px;
  font-weight: 700;
  line-height: 18px;
  color: rgba(160, 38, 38, 1);
}
.funeral-name:before {
  content: "";
  position: absolute;
  top: -2px;
  left: -12px;
  width: 1px;
  height: 12px;
  background: rgba(160, 38, 38, 1);
}

.funeral-name:after {
  content: "";
  position: absolute;
  top: 0px;
  left: -14px;
  width: 12px;
  height: 1px;
  background: rgba(160, 38, 38, 1);
}

.funeral-name span {
  position: relative;
}

.funeral-name span::before {
  content: "";
  position: absolute;
  right: -9px;
  bottom: -2px;
  width: 1px;
  height: 12px;
  background: rgba(160, 38, 38, 1);
}

.funeral-name span::after {
  content: "";
  position: absolute;
  right: -11px;
  bottom: 0px;
  width: 12px;
  height: 1px;
  background: rgba(160, 38, 38, 1);
}

.funeral-price-outer {
  display: flex;
}

.funeral-price {
  font-family: "Roboto", sans-serif;
  font-size: 38px;
  font-weight: 700;
  line-height: 30px;
  color: rgba(200, 0, 54, 1);
}

.tax-outer {
  display: flex;
  flex-direction: column;
  color: rgba(200, 0, 54, 1);
}

.tax {
  font-size: 10px;
  font-weight: 500;
  line-height: 1;
}

.yen {
  font-size: 16px;
  font-weight: 700;
  line-height: 18px;
}

.tax-included {
  align-self: flex-end;
  font-size: 12px;
  font-weight: 700;
  line-height: 10px;
}

.tax-included span {
  font-family: "Roboto", sans-serif;
}

.correspondence {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  margin-top: 8px;
  width: 70px;
  height: 70px;
  font-size: 12px;
  font-weight: 700;
  line-height: 14px;
  color: rgba(12, 24, 68, 1);
  background: rgba(255, 255, 255, 1);
  border: 2px solid;
  border-radius: 50%;
}

.hero-box-content.hero-box-content-right .funeral-name {
  color: rgba(221, 108, 26, 1);
}

.hero-box-content.hero-box-content-right .funeral-name::before {
  background: rgba(221, 108, 26, 1);
}

.hero-box-content.hero-box-content-right .funeral-name::after {
  background: rgba(221, 108, 26, 1);
}

.hero-box-content.hero-box-content-right .funeral-name span::before {
  background: rgba(221, 108, 26, 1);
}

.hero-box-content.hero-box-content-right .funeral-name span::after {
  background: rgba(221, 108, 26, 1);
}

.hero-box-annotation {
  text-align: right;
  font-size: 10px;
  font-weight: 400;
  line-height: 1;
}

/*urgency*/
.urgency-top {
  position: relative;
  padding: 18px 16px 24px;
  border-bottom: 1px solid rgba(196, 200, 213, 1);
}

.urgency-top img {
  position: absolute;
  bottom: 0;
}

.urgency-heading {
  margin: 0 0 8px 100px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  color: rgba(200, 0, 54, 1);
}

.urgency-heading-b {
  font-size: 24px;
}

.urgency-heading-b span {
  font-family: "Roboto", sans-serif;
  font-size: 28px;
}

.urgency-text {
  margin-left: 140px;
  font-size: 14px;
  font-weight: 700;
  line-height: 15px;
}

.urgency-window {
  padding: 16px;
}

.urgency-window-inner {
  position: relative;
  padding: 22px 0px 30px;
  border-top: 3px solid rgba(200, 0, 54, 1);
  border-bottom: 3px solid rgba(200, 0, 54, 1);
}

.urgency-window-inner:before {
  display: block;
  content: "";
  position: absolute;
  top: 0px;
  bottom: 0px;
  left: 0px;
  right: 0px;
  margin: 3px 0;
  border-top: 2px dotted rgba(255, 105, 105, 1);
  border-bottom: 2px dotted rgba(255, 105, 105, 1);
}

.urgency-window h3 {
  position: relative;
  text-align: center;
  font-size: 18px;
  font-weight: 700;
  line-height: 16px;
  color: rgba(200, 0, 54, 1);
}

.urgency-window h3::before {
  content: "";
  position: absolute;
  top: -4px;
  width: 32px;
  height: 32px;
  background: url(../img/exclamation-red.svg) no-repeat center / contain;
}

.urgency-window h3 span {
  margin-left: 36px;
}

.urgency-window-text {
  text-align: center;
  margin: 24px 0 8px;
  font-size: 14px;
  font-weight: 700;
  line-height: 15px;
}

#tel-btn {
  display: block;
  position: relative;
  text-align: left;
  margin: auto;
  max-width: 330px;
  width: 100%;
  color: rgba(255, 255, 255, 1);
  background: rgba(102, 0, 27, 1);
  border-radius: 40px;
}

#tel-btn::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
  width: calc(100% - 16px);
  height: 100%;
  background: rgba(153, 0, 41, 1);
  border-radius: 40px;
}

#tel-btn::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
  width: calc(100% - 32px);
  height: 100%;
  background: rgba(200, 0, 54, 1);
  border-radius: 40px;
}

#tel-btn p {
  position: relative;
  z-index: 1;
  padding: 17px 0 16px 80px;
}

#tel-btn p::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 32px;
  width: 32px;
  height: 32px;
  background: url(../img/tel.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

#tel-btn p::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 32px;
  width: 8px;
  height: 12px;
  background: url(../img/triangle-white.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

.tel-btn-top {
  display: block;
  font-size: 24px;
  font-weight: 700;
  line-height: 1;
}

.tel-btn-top-s {
  font-size: 22px;
}

.tel-btn-bottom {
  font-size: 12px;
  font-weight: 700;
  line-height: 15px;
}

.tel-btn-bottom span + span {
  margin-left: 16px;
}

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

.relief-heading {
  padding: 24px 16px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  color: rgba(12, 24, 68, 1);
  background: rgba(228, 232, 247, 1);
}

.relief-heading-font22 {
  font-size: 22px;
}

.relief-heading-font22 span {
  color: rgba(69, 173, 73, 1);
}

.relief-heading-font14 {
  font-size: 14px;
}

.relief-border-heading-roboto {
  font-family: "Roboto", sans-serif;
}

.relief-border-heading {
  margin: 8px 40px 16px;
  font-size: 16px;
  font-weight: 700;
  line-height: 30px;
  border-bottom: 2px solid rgba(0, 0, 0, 1);
}

.relief-border-heading-green {
  font-size: 20px;
  color: rgba(69, 173, 73, 1);
}

.relief-text {
  margin: 0 38px;
  font-size: 13px;
  font-weight: 500;
  line-height: 15px;
}

.btns-outer {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin: 16px auto 0;
  padding-bottom: 31px;
  border-bottom: 1px solid rgba(196, 200, 213, 1);
}

.detail-short-btn {
  position: relative;
  text-align: center;
  margin-left: 16px;
  max-width: 208px;
  width: calc(50% - 8px);
  height: 48px;
  font-size: 16px;
  font-weight: 700;
  line-height: 48px;
  color: rgba(200, 0, 54, 1);
  background: rgba(239, 177, 190, 1);
  border-radius: 40px;
}

.detail-short-btn::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
  width: calc(100% - 12px);
  height: 100%;
  background: rgba(249, 209, 218, 1);
  border-radius: 40px;
}

.detail-short-btn::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
  width: calc(100% - 24px);
  height: 100%;
  background: rgba(251, 242, 244, 1);
  border-radius: 40px;
}

.to-plan-btn {
  position: relative;
  text-align: center;
  margin-right: 16px;
  max-width: 208px;
  width: calc(50% - 8px);
  height: 48px;
  font-size: 16px;
  font-weight: 700;
  line-height: 48px;
  color: rgba(255, 255, 255, 1);
  background: rgba(102, 0, 27, 1);
  border-radius: 40px;
}

.to-plan-btn::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
  width: calc(100% - 12px);
  height: 100%;
  background: rgba(153, 0, 41, 1);
  border-radius: 40px;
}

.to-plan-btn::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
  width: calc(100% - 24px);
  height: 100%;
  background: rgba(200, 0, 54, 1);
  border-radius: 40px;
}

.detail-short-btn p,
.to-plan-btn p {
  position: relative;
  z-index: 1;
}

.detail-short-btn p::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 28px;
  width: 8px;
  height: 12px;
  background: url(../img/triangle-red.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

.to-plan-btn p::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 28px;
  width: 8px;
  height: 12px;
  background: url(../img/triangle-white.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

.search-btn {
  display: block;
  position: relative;
  text-align: center;
  margin: 16px auto 32px;
  width: calc(100% - 48px);
  height: 48px;
  font-size: 16px;
  font-weight: 700;
  line-height: 48px;
  color: rgba(200, 0, 54, 1);
  background: rgba(239, 177, 190, 1);
  border-radius: 40px;
}

.search-btn::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
  width: calc(100% - 12px);
  height: 100%;
  background: rgba(249, 209, 218, 1);
  border-radius: 40px;
}

.search-btn::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
  width: calc(100% - 24px);
  height: 100%;
  background: rgba(251, 242, 244, 1);
  border-radius: 40px;
}

.search-btn p {
  position: relative;
  z-index: 1;
}

.search-btn p::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 28px;
  width: 8px;
  height: 12px;
  background: url(../img/triangle-red.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

/*reason*/
.reason-heading {
  text-align: center;
  padding: 24px 16px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  color: rgba(12, 24, 68, 1);
  background: rgba(228, 232, 247, 1);
}

.reason-heading span {
  font-size: 22px;
  color: rgba(69, 173, 73, 1);
}

.reason-inner {
  padding: 0 16px 24px;
}

.reason-box {
  position: relative;
  margin-top: 36px;
}

.reason-box::before {
  content: "";
  position: absolute;
  top: -12px;
  right: 0px;
  left: 0px;
  margin: auto;
  width: 123px;
  height: 52px;
  background: rgba(191, 198, 213, 1);
  border-radius: 50%;
}

.reason-box-heading {
  position: relative;
  text-align: center;
  padding: 11px;
  font-size: 16px;
  font-weight: 700;
  line-height: 18px;
  color: rgba(12, 24, 68, 1);
  background: rgba(191, 198, 213, 1);
}

.reason-box-bottom {
  padding: 0 16px 16px;
  background: rgba(237, 239, 242, 1);
}

.reason li {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 7px;
  min-height: 55px;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  border-bottom: 1px solid rgba(191, 198, 213, 1);
}

.reason-box-bottom-text {
  margin-top: 8px;
  font-size: 14px;
  font-weight: 350;
  line-height: 21px;
}

/*accordion*/
.accordion-btn {
  padding: 20px 16px;
}

.accordion-input {
  display: none;
}

.accordion-heading {
  display: block;
  position: relative;
  text-align: center;
  width: 100%;
  height: 48px;
  font-size: 16px;
  font-weight: 700;
  line-height: 48px;
  color: rgba(0, 0, 0, 1);
  background: rgba(255, 255, 255, 1);
  cursor: pointer;
}

.accordion-heading::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 29px;
  width: 2px;
  height: 20px;
  background: rgba(0, 0, 0, 1);
  transform: translateY(-50%);
  transition: ease 0.3s;
}

.accordion-heading::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 20px;
  width: 20px;
  height: 2px;
  background: rgba(0, 0, 0, 1);
  transform: translateY(-50%);
  transition: ease 0.3s;
}

.accordion-input:checked + .accordion-heading::before {
  transform: translateY(-50%) rotate(90deg);
}

.accordion-text-outer {
  opacity: 0;
  overflow: hidden;
  height: 0;
  transition: padding 0.3s;
}

.accordion-text {
  position: relative;
  padding: 20px 16px 0;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.005em;
  color: rgb(0 0 0);
}

.accordion-input:checked ~ .accordion-text-outer {
  opacity: 1;
  padding: 0px 0px 20px;
  height: auto;
  background: rgba(255, 255, 255, 1);
}

/*accepting*/
.accepting {
  padding: 24px 16px;
}

.accepting-heading {
  position: relative;
  overflow: hidden;
  text-align: center;
  padding: 21px 0;
  font-size: 14px;
  font-weight: 700;
  line-height: 15px;
  color: rgba(12, 24, 68, 1);
  border-top: 3px solid;
  border-bottom: 3px solid;
}

.accepting-heading::before {
  display: block;
  content: "";
  position: absolute;
  top: 0px;
  right: 0px;
  left: 0px;
  bottom: 0px;
  margin: 3px 0;
  border-top: 2px dotted;
  border-bottom: 2px dotted;
}

.accepting-heading img {
  position: absolute;
  left: 24px;
  bottom: -8px;
}

.accepting-heading span {
  display: inline-block;
  margin-bottom: 10px;
  font-size: 24px;
  font-weight: 700;
  line-height: 15px;
  color: rgba(200, 0, 54, 1);
}

.accepting-text {
  text-align: center;
  margin: 16px;
  font-size: 14px;
  font-weight: 700;
  line-height: 15px;
  color: rgba(12, 24, 68, 1);
}

.accepting-box {
  position: relative;
  margin: 0 auto 25px;
  padding: 6px;
  max-width: 340px;
  width: 100%;
  height: 144px;
  font-size: 14px;
  font-weight: 700;
  line-height: 31px;
  background: rgba(237, 239, 242, 1);
  border: 2px solid rgba(12, 24, 68, 1);
  border-radius: 6px;
}

.accepting-box img {
  position: absolute;
  right: 0;
  bottom: 0;
}

.accepting-box li {
  border-bottom: 1px solid rgba(191, 198, 213, 1);
}

.accepting-box li:last-child {
  line-height: 32px;
  border-bottom: none;
}

.triangle {
  position: absolute;
  left: 40px;
  bottom: -17px;
  width: 18px;
  height: 35px;
  background-color: inherit;
  border: inherit;
  border-radius: 0 0 0 4px;
  clip-path: polygon(0% 0%, 100% 100%, 0% 100%);
  transform: rotate(-64deg);
}

/*service*/
.service {
  padding: 24px 16px;
}

.service-heading {
  position: relative;
  text-align: center;
  padding: 13px 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  color: rgba(12, 24, 68, 1);
  border-top: 3px solid;
  border-bottom: 3px solid;
}

.service-heading::before {
  display: block;
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
  margin: 3px 0;
  border-top: 2px dotted;
  border-bottom: 2px dotted;
}

.service ul {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0;
}

.service li {
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  padding: 4px 0 3px 36px;
  width: calc((100% - 16px) / 3);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
  border-bottom: 1px solid rgba(191, 198, 213, 1);
}

.service li span {
  font-size: 9px;
}

.service li::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 8px;
  width: 17px;
  height: 17px;
  background: url(../img/check.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

.service-annotation {
  text-align: right;
  font-size: 10px;
  font-weight: 350;
  line-height: 15px;
}

/*set-plan*/
.set-plan-heading {
  text-align: center;
  padding: 18px 16px;
  font-size: 16px;
  font-weight: 700;
  line-height: 18px;
  color: rgba(12, 24, 68, 1);
  background: rgba(228, 232, 247, 1);
}

.set-plan-heading span {
  font-size: 22px;
  color: rgba(69, 173, 73, 1);
}

.set-plan-inner {
  padding: 8px 16px 34px;
}

.ceremony-name {
  position: relative;
  text-align: center;
  margin: 24px 4px 0 0;
  height: 36px;
  font-size: 16px;
  font-weight: 700;
  line-height: 36px;
  color: rgba(255, 255, 255, 1);
  background: rgba(12, 24, 68, 1);
}

.ceremony-name::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 4px;
  z-index: -1;
  width: 100%;
  height: 100%;
  border: 2px solid rgba(12, 24, 68, 1);
}

.set-plan-box {
  display: block;
  position: relative;
  margin: 20px auto 0;
  padding: 0 14px 14px;
  max-width: 432px;
  width: 100%;
  color: rgba(12, 24, 68, 1);
  border: 2.5px solid;
}

.set-plan-box::before {
  display: block;
  content: "";
  position: absolute;
  top: -5px;
  left: -5px;
  border-bottom: 24px solid transparent;
  border-left: 24px solid rgba(12, 24, 68, 1);
}

.set-plan-box::after {
  display: block;
  content: "";
  position: absolute;
  bottom: -5px;
  right: -5px;
  border-left: 24px solid transparent;
  border-bottom: 24px solid rgba(12, 24, 68, 1);
}

.set-plan-name {
  text-align: center;
  padding: 12px 0 14px;
  font-size: 20px;
  font-weight: 700;
  line-height: 18px;
  border-bottom: 1px solid rgba(12, 24, 68, 1);
}

.set-plan-box-inner {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  position: relative;
  margin-top: 16px;
}

.set-plan-box-inner::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 8px;
  height: 12px;
  background: url(../img/triangle-blue.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

.set-plan-box-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.set-plan-target {
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.set-plan-usually-price {
  position: relative;
  font-size: 12px;
  font-weight: 700;
  line-height: 11px;
  color: rgba(136, 136, 136, 1);
}

.set-plan-usually-price::after {
  content: "";
  position: absolute;
  top: 50%;
  left: -3px;
  width: 100%;
  height: 0.5px;
  background: rgba(136, 136, 136, 1);
  transform: translateY(-50%);
}

.set-plan-usually-price span {
  font-family: "Roboto", sans-serif;
}

.set-plan-excluding-tax-price {
  margin: 10px 0 5px;
  color: rgba(200, 0, 54, 1);
}

.set-plan-excluding-tax-price-roboto {
  font-family: "Roboto", sans-serif;
  font-size: 30px;
  font-weight: 700;
  line-height: 22px;
}

.set-plan-yen {
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
}

.set-plan-tax {
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
}

.set-plan-tax-included-price {
  font-size: 12px;
  font-weight: 700;
  line-height: 11px;
  color: rgba(0, 0, 0, 1);
}

.set-plan-tax-included-price span {
  font-family: "Roboto", sans-serif;
}

.recommendation {
  position: absolute;
  top: 12px;
  left: 14px;
  text-align: center;
  width: 61px;
  height: 20px;
  font-size: 12px;
  font-weight: 700;
  line-height: 20px;
  color: rgba(255, 255, 255, 1);
  background: rgba(69, 173, 73, 1);
}

/*btns*/
.btns {
  padding: 26px 16px 24px;
}

.btns-heading {
  text-align: center;
  margin-bottom: 16px;
  font-size: 16px;
  font-weight: 700;
  line-height: 15px;
}

.btns-heading-green {
  position: relative;
  font-size: 20px;
  color: rgba(69, 173, 73, 1);
}

.btns-heading-green-roboto {
  font-family: "Roboto", sans-serif;
  font-size: 22px;
}

.btns-heading-green::before {
  content: "・・・";
  position: absolute;
  top: -8px;
  right: 0;
  left: 0;
  margin-left: -2px;
  font-size: 16px;
  letter-spacing: 0.15em;
}

#document-btn {
  display: block;
  position: relative;
  text-align: left;
  margin: 8px auto 0;
  max-width: 330px;
  width: 100%;
  color: rgba(255, 255, 255, 1);
  background: rgba(12, 24, 68, 1);
  border-radius: 40px;
}

#document-btn::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
  width: calc(100% - 16px);
  height: 100%;
  background: rgba(7, 32, 121, 1);
  border-radius: 40px;
}

#document-btn::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
  width: calc(100% - 32px);
  height: 100%;
  background: rgba(14, 42, 143, 1);
  border-radius: 40px;
}

#document-btn p::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 32px;
  width: 8px;
  height: 12px;
  background: url(../img/triangle-white.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

#document-btn p::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 32px;
  width: 32px;
  height: 32px;
  background: url(../img/document.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

#document-btn p {
  position: relative;
  z-index: 1;
  padding: 13px 0 12px 80px;
}

.document-btn-top {
  display: block;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
}

.document-btn-top span {
  font-size: 24px;
}

.document-btn-bottom {
  font-size: 12px;
  font-weight: 700;
  line-height: 15px;
}

.btns-underline {
  border-bottom: 1px solid rgba(196, 200, 213, 1);
}
/*search*/
.search-heading {
  text-align: center;
  padding: 18px 16px;
  font-size: 16px;
  font-weight: 700;
  line-height: 18px;
  color: rgba(12, 24, 68, 1);
  background: rgba(228, 232, 247, 1);
}

.search-heading-green {
  font-size: 14px;
  color: rgba(69, 173, 73, 1);
}

.search-heading-green span {
  font-family: "Roboto", sans-serif;
  font-size: 26px;
}

/*by-tel*/
.by-tel {
  padding: 24px 16px;
}

.by-tel-heading {
  text-align: center;
  margin-bottom: 16px;
  font-size: 14px;
  font-weight: 700;
  line-height: 15px;
  color: rgba(60, 54, 51, 1);
}

/*support*/
.support-inner {
  padding: 16px;
}

.support-heading {
  text-align: center;
  padding: 24px 16px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  color: rgba(12, 24, 68, 1);
  background: rgba(228, 232, 247, 1);
}

.support-heading-green {
  color: rgba(69, 173, 73, 1);
}

.support-heading-green-b {
  font-size: 22px;
  color: rgba(69, 173, 73, 1);
}

.support-text {
  font-size: 14px;
  font-weight: 350;
  line-height: 21px;
}

.support-box-heading {
  position: relative;
  text-align: center;
  margin: 24px 0 20px;
  font-size: 16px;
  font-weight: 700;
  line-height: 28px;
  color: rgba(12, 24, 68, 1);
  border: 2px solid rgba(12, 24, 68, 1);
}

.support-box-heading::after {
  content: "";
  position: absolute;
  top: -6px;
  right: 0;
  left: 0;
  margin: auto;
  width: calc(100% - 4px);
  height: 40px;
  border: 2px solid rgba(12, 24, 68, 1);
}

.support ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0 24px;
  margin-bottom: 16px;
}

.support ul li {
  display: flex;
  align-items: center;
  padding: 4px 8px 3px;
  width: calc(50% - 12px);
  min-height: 48px;
  font-size: 14px;
  font-weight: 350;
  line-height: 20px;
  border-bottom: 1px solid rgba(191, 198, 213, 1);
}

/*consultation*/
.consultation-heading {
  text-align: center;
  padding: 20px 16px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  color: rgba(12, 24, 68, 1);
  background: rgba(228, 232, 247, 1);
}

.consultation-heading-green-box {
  display: inline-block;
  margin-bottom: 6px;
  padding: 0 8px;
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
  color: rgba(255, 255, 255, 1);
  background: rgba(69, 173, 73, 1);
}

.consultation-heading-green {
  font-size: 22px;
  color: rgba(69, 173, 73, 1);
}

.consultation-inner {
  padding: 16px;
}

.consultation-text {
  margin-bottom: 16px;
  font-size: 14px;
  font-weight: 400;
  line-height: 21px;
}

/*form*/
.form {
  padding: 24px 16px 32px;
}

.form h2 {
  text-align: center;
  font-size: 26px;
  font-weight: 700;
  line-height: 39px;
  color: initial;
}

.form-text {
  text-align: center;
  margin: 16px 0;
  padding: 8px 0;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  color: rgba(69, 173, 73, 1);
  background: rgba(231, 252, 232, 1);
  border: 2px solid rgba(69, 173, 73, 1);
}

.zf-templateWidth {
  margin: 0 auto;
  max-width: 480px;
  width: 100%;
}

.zf-templateWrapper {
  border: none;
  box-shadow: unset;
}

.zf-subContWrap {
  margin: 0px;
}

.zf-tempFrmWrapper {
  margin: 16px 0 0;
  padding: 0;
  width: 100%;
}

.zf-topAlign .zf-tempFrmWrapper .zf-labelName {
  display: flex;
  align-items: center;
  padding-bottom: 6px;
  font-size: 16px;
  color: rgba(0, 0, 0, 1);
}

.zf-subContWrap.zf-topAlign ul {
  display: flex;
  flex-wrap: wrap;
}

.zf-important {
  display: none;
}

.required {
  margin-right: 8px;
  padding: 2px 4px 6px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  color: rgba(255, 255, 255, 1);
  background: rgba(200, 0, 54, 1);
  border-radius: 4px;
}

.any {
  margin-right: 8px;
  padding: 2px 4px 6px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  color: rgba(255, 255, 255, 1);
  background: rgba(128, 128, 128, 1);
  border-radius: 4px;
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  font-family: "Noto Sans JP", sans-serif;
  color: rgba(156, 163, 175, 1);
}

input,
input[type="text"],
input[type="search"],
isindex,
textarea,
button {
  outline: revert;
}

.zf-tempContDiv input[type="text"]:focus,
.zf-tempContDiv textarea:focus {
  border: initial !important;
  -webkit-box-shadow: initial !important;
  -moz-box-shadow: initial !important;
  box-shadow: initial !important;
}

.form .zf-tempFrmWrapper .zf-tempContDiv input,
.zf-form-sBox {
  padding: 15px 16px;
  width: 100%;
  height: 50px;
  font-size: 14px;
  line-height: 20px;
  border-color: rgba(213, 213, 213, 1);
  border-radius: 4px;
}

.zf-namemedium .zf-nameWrapper {
  width: 100%;
}

.zf-name .zf-tempContDiv span {
  margin-bottom: 0px;
}

.zf-phwrapper span {
  margin-bottom: 0px;
  float: none;
}

.zf-small .zf-phwrapper {
  width: 100%;
}

.zf-small .zf-tempContDiv .zf-form-sBox {
  width: 100%;
}

.li-half {
  width: 49%;
}

.li-half-right {
  margin-left: 2%;
}

.zf-radio.zf-tempFrmWrapper.zf-oneColumns .zf-tempContDiv .zf-overflow {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.zf-oneColumns .zf-tempContDiv span {
  margin: 0;
  width: calc(50% - 5px);
}

.zf-oneColumns .zf-tempContDiv span label {
  position: relative;
  margin: 0;
  padding: 14px 16px;
  font-size: 14px;
  color: rgba(0, 0, 0, 1);
  line-height: 20px;
  border: 1px solid rgba(213, 213, 213, 1);
  border-radius: 4px;
  cursor: pointer;
}

.zf-oneColumns .zf-tempContDiv span label::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 8px;
  width: 12px;
  height: 12px;
  background: url(../img/check-white.svg) no-repeat rgba(216, 216, 216, 1)
    center / 8px;
  border-radius: 50%;
  transform: translateY(-50%);
}

.form .zf-tempFrmWrapper .zf-tempContDiv input:checked + label {
  background-color: rgba(233, 237, 251, 1);
  border-color: rgba(14, 42, 143, 1);
}

.form .zf-tempFrmWrapper .zf-tempContDiv input:checked + label::after {
  background-color: rgba(14, 42, 143, 1);
}

.zf-oneColumns .zf-tempContDiv span input[type="radio"] {
  display: none;
}

.zf-clearBoth {
  display: none;
}

.zf-small .zf-tempContDiv textarea {
  padding: 16px;
  width: 100%;
  height: 174px;
  resize: vertical;
  font-size: 14px;
  line-height: 20px;
  border-radius: 4px;
}

.zf-fmFooter {
  position: relative;
  margin-top: 24px;
  padding: 0px;
}

.zf-fmFooter::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 28px;
  width: 8px;
  height: 12px;
  background: url(../img/triangle-white.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

.zf-fmFooter .zf-submitColor {
  position: relative;
  padding: 0;
  width: 100%;
  height: 48px;
  font-size: 16px;
  font-weight: 700;
  line-height: 48px;
  color: rgba(255, 255, 255, 1);
  background: rgba(12, 24, 68, 1);
  border: none;
  border-radius: 40px;
  cursor: pointer;
}

.zf-fmFooter .zf-submitColor::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
  width: calc(100% - 12px);
  height: 100%;
  background: rgba(7, 32, 121, 1);
  border-radius: 40px;
}

.zf-fmFooter .zf-submitColor::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  margin: auto;
  width: calc(100% - 24px);
  height: 100%;
  background: rgba(14, 42, 143, 1);
  border-radius: 40px;
}

.zf-fmFooter .zf-submitColor span {
  position: relative;
  z-index: 1;
}

.privacy-policy-wrap {
  margin-top: 30px;
  font-size: 12px;
  line-height: 16px;
  background-color: rgb(245 245 245);
}

.privacy-policy {
  overflow-y: scroll;
  padding: 16px;
  height: 210px;
}

.privacy-policy p {
  margin-bottom: 16px;
  font-size: 14px;
  line-height: 1.4;
}

.privacy-policy .privacy-policy-heading-top {
  text-align: center;
  font-size: 16px;
  font-weight: 700;
}

.privacy-policy-heading {
  font-weight: 700;
}

/*footer*/
footer {
  text-align: center;
  padding: 31px 16px 131px;
  color: rgba(255, 255, 255, 1);
  background: rgba(12, 24, 68, 1);
}

footer a {
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  color: rgba(255, 255, 255, 1);
}

footer small {
  display: block;
  padding-top: 47px;
  font-size: 10px;
  font-weight: 350;
  line-height: 15px;
}

/*cta*/
.cta {
  display: flex;
  position: fixed;
  bottom: 0px;
  z-index: 10;
  max-width: 480px;
  width: 100%;
}

.cta-tel {
  display: block;
  text-align: center;
  padding: 16px 0 8px;
  width: 50%;
  height: 68px;
  color: rgba(255, 255, 255, 1);
  background: rgba(200, 0, 54, 1);
  border-radius: 10px 10px 0px 0px;
}

.cta-tel-top {
  display: inline;
  position: relative;
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
}

.cta-tel-top span {
  font-size: 18px;
}

.cta-tel-top::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -48px;
  width: 32px;
  height: 32px;
  background: url(../img/tel.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

.cta-tel-bottom span {
  display: inline-block;
  padding: 0 8px;
  height: 16px;
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  background: rgba(69, 173, 73, 1);
}

.cta-tel-bottom span + span {
  margin-left: 8px;
}

.cta-document {
  display: block;
  text-align: center;
  padding: 16px 0 8px;
  width: 50%;
  height: 68px;
  color: rgba(255, 255, 255, 1);
  background: rgba(14, 42, 143, 1);
  border-radius: 10px 10px 0px 0px;
}

.cta-document-top {
  display: inline;
  position: relative;
  margin-left: 30px;
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
}

.cta-document-top span {
  font-size: 20px;
}

.cta-document-top::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -44px;
  width: 32px;
  height: 32px;
  background: url(../img/document.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

.cta-document-bottom {
  margin-left: -36px;
}

.cta-document-bottom span {
  display: inline-block;
  padding: 0 8px;
  height: 16px;
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  background: rgba(69, 173, 73, 1);
}

/*plan-page*/

/*plan-fv*/
.plan-fv h1 {
  padding: 6px 16px 7px;
}

.plan-h1-top {
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
  color: rgba(12, 24, 68, 1);
}

.plan-h1-bottom {
  display: block;
  font-size: 24px;
  font-weight: 700;
  line-height: 36px;
}

.plan-fv-img {
  position: relative;
}

.plan-fv-img span {
  position: absolute;
  top: 8px;
  right: 12px;
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  background: rgba(255, 255, 255, 1);
  border-radius: 4px;
}

.plan-fv-content {
  padding: 12px 16px 32px;
}

.plan-fv-content-frame {
  display: flex;
  align-items: flex-start;
  gap: 16px;
}

.plan-fv-content-frame + .plan-fv-content-frame {
  align-items: center;
  margin-top: 12px;
}

.plan-fv-content-item {
  text-align: center;
  margin-top: 4px;
  width: 56px;
  font-size: 14px;
  font-weight: 700;
  line-height: 24px;
  color: rgba(255, 255, 255, 1);
  background: rgba(12, 24, 68, 1);
  border-radius: 6px;
}

.plan-fv-content-marker-inner {
  font-size: 14px;
  font-weight: 350;
  line-height: 20px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 65%, #5ae05f 65%);
}

.plan-fv-content-marker-inner span {
  font-family: "Roboto", sans-serif;
  font-weight: 400;
}

.plan-fv-content-price {
  display: flex;
  align-items: flex-end;
  margin-top: 8px;
}

.plan-fv-content-excluding-tax-price {
  font-family: "Roboto", sans-serif;
  font-size: 34px;
  font-weight: 700;
  line-height: 36px;
  letter-spacing: 0.9px;
  color: rgba(200, 0, 54, 1);
}

.plan-fv-content-yen {
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  color: rgba(200, 0, 54, 1);
}

.plan-fv-content-tax-included-price {
  margin-left: 8px;
  font-size: 14px;
  font-weight: 350;
  line-height: 1;
}

.plan-fv-content-tax-included-price span {
  font-family: "Roboto", sans-serif;
  font-weight: 400;
}

.plan-fv-content-usually-price {
  margin-top: 12px;
  font-size: 14px;
  font-weight: 350;
  line-height: 20px;
  color: rgba(200, 0, 54, 1);
}

.plan-fv-content-usually-price-double-line {
  margin-left: 14px;
  color: rgba(0, 0, 0, 1);
  text-decoration-style: solid;
  text-decoration-line: line-through;
}

.plan-fv-content-marker-b {
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 0.8px;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 65%, #5ae05f 65%);
}

.plan-fv-content-marker-b span {
  font-size: 24px;
  line-height: 32px;
}

.plan-fv-flow {
  display: flex;
  justify-content: center;
  gap: 24px;
  margin-top: 24px;
}

.plan-fv-flow-item {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 56px;
  height: 56px;
  color: rgba(12, 24, 68, 1);
  border: 2px solid;
  border-radius: 50%;
}

.plan-fv-flow-item span {
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
}

.plan-fv-flow-item.gray {
  background: rgba(204, 204, 204, 1);
  border: 2px solid rgba(204, 204, 204, 1);
}

.plan-fv-flow-item.gray span {
  color: rgba(170, 170, 170, 1);
}

.plan-fv-flow-item + .plan-fv-flow-item::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -26px;
  width: 24px;
  height: 3px;
  background: rgba(12, 24, 68, 1);
  transform: translateY(-50%);
}

/*about*/
.about-heading {
  text-align: center;
  padding: 8px 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 28px;
  border-top: 1px solid;
  border-bottom: 1px solid;
}

.about-text {
  padding: 16px 20px;
  font-size: 14px;
  font-weight: 350;
  line-height: 28px;
}

.about-box-top {
  display: flex;
  flex-direction: column;
  position: relative;
  padding: 0 16px 8px;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  color: rgba(255, 255, 255, 1);
  background: rgba(12, 24, 68, 1);
}

.about-box-top-heading {
  align-self: center;
  position: relative;
  text-align: center;
  padding: 16px 0 12px;
}

.about-box-top-heading::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -32px;
  width: 24px;
  height: 24px;
  background: url(../img/about-white.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

.about-box-top li {
  position: relative;
  padding: 10px 0px 10px 30px;
  border-top: 1px dashed;
}

.about-box-top li::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 6px;
  width: 14px;
  height: 12px;
  background: url(../img/downward-triangle.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

.about-box-bottom {
  padding: 15px 16px 12px;
}

.about-box-bottom-heading {
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
}

.about-box-bottom-heading span {
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 65%, #5ae05f 65%);
}

.about-box-bottom-heading .about-box-bottom-heading-b {
  font-size: 19px;
  line-height: 28px;
  background: none;
}

.about-box-bottom-table-th {
  text-align: center;
  margin-top: 16px;
  font-size: 16px;
  font-weight: 700;
  line-height: 28px;
  color: rgba(54, 54, 54, 1);
  border: 1px solid;
}

.about-box-bottom-table-td {
  text-align: center;
  padding: 5px 0;
  color: rgba(255, 255, 255, 1);
  background: rgba(54, 54, 54, 1);
}

.about-box-bottom-table-td-price {
  font-size: 16px;
  font-weight: 700;
  line-height: 16px;
}

.about-box-bottom-table-td-price-b {
  font-family: "Roboto", sans-serif;
  font-size: 23px;
  font-weight: 700;
  line-height: 24px;
}

.about-box-bottom-table-td-price-research {
  margin-top: 6px;
  font-size: 10px;
  font-weight: 350;
  line-height: 15px;
}

.about-box-bottom-reasonable-table-th {
  text-align: center;
  margin-top: 16px;
  font-size: 16px;
  font-weight: 700;
  line-height: 28px;
  color: rgba(12, 24, 68, 1);
  border: 1px solid;
}

.about-box-bottom-reasonable-table-td {
  display: flex;
}

.about-box-bottom-reasonable-price {
  display: flex;
  align-items: center;
  padding-left: 6px;
  width: 112px;
  font-weight: 700;
  color: rgba(255, 255, 255, 1);
  background: rgba(12, 24, 68, 1);
}

.about-box-bottom-reasonable-price-b {
  font-family: "Roboto", sans-serif;
  font-size: 23px;
  font-weight: 700;
  line-height: 32px;
}

.about-box-bottom-reasonable-price-s {
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
}

.red-arrow {
  display: flex;
  align-items: center;
  width: 75%;
}

.red-arrow-triangle {
  margin: 4px 0 4px 2px;
  border-top: 14px solid transparent;
  border-right: 25px solid rgba(200, 0, 54, 1);
  border-bottom: 14px solid transparent;
}

.red-arrow-text {
  text-align: center;
  padding: 4px 0;
  width: 100%;
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  color: rgba(255, 255, 255, 1);
  background: rgba(200, 0, 54, 1);
}

/*plan-table*/
.plan-table {
  padding: 48px 16px 24px;
}

.plan-table table {
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
}

.plan-table th {
  width: 40px;
}

.th-left {
  padding: 8px 0;
  width: 40px;
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 0.25em;
  text-indent: 0.25em;
  color: rgba(255, 255, 255, 1);
  background: rgba(150, 150, 150, 1);
  border-bottom: 1px solid rgba(200, 200, 200, 1);
}

.th-left span {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  writing-mode: vertical-lr;
  white-space: pre;
}

.plan-table .viewing-plan-name,
.plan-table .compared-plan-name {
  position: relative;
  text-align: center;
  padding: 4px 0;
  width: auto;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.1;
  color: rgba(255, 255, 255, 1);
  background: rgba(12, 24, 68, 1);
  border-radius: 12px 12px 0 0;
}

.plan-table .viewing-plan-name span,
.plan-table .compared-plan-name span {
  font-size: 10px;
  line-height: 11px;
}

.mark {
  position: absolute;
  right: 0;
  left: 0;
  bottom: 100%;
  margin: auto;
  padding: 4px 8px;
  width: 88px;
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  color: rgba(255, 255, 255, 1);
  background: rgba(69, 173, 73, 1);
}

.plan-table .compared-plan-name {
  color: rgba(12, 24, 68, 1);
  background: rgba(191, 198, 213, 1);
}

.plan-table td:first-of-type {
  text-align: center;
  padding: 8px;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  background: rgba(237, 239, 242, 1);
  border-right: 2px solid rgba(12, 24, 68, 1);
  border-left: 2px solid rgba(12, 24, 68, 1);
  border-bottom: 1px solid rgba(200, 200, 200, 1);
}

.plan-table td:last-of-type {
  text-align: center;
  padding: 8px;
  font-size: 14px;
  font-weight: 800;
  line-height: 20px;
  border-right: 1px solid rgba(200, 200, 200, 1);
  border-bottom: 1px solid rgba(200, 200, 200, 1);
}

.plan-table-excluding-tax-price {
  font-size: 12px;
  line-height: 1;
  color: rgba(200, 0, 54, 1);
}

.plan-table-excluding-tax-price span {
  font-family: "Roboto", sans-serif;
  font-size: 22px;
  line-height: 24px;
}

.plan-table td:last-of-type .plan-table-excluding-tax-price span {
  font-weight: 800;
}

.plan-table-tax {
  display: inline-block;
  margin-top: 10px;
  font-size: 12px;
  line-height: 1;
}

.plan-table-tax-included-price {
  margin-top: 4px;
  padding-top: 3px;
  font-size: 8px;
  line-height: 16px;
  border-top: 1px dashed;
}

.plan-table-tax-included-price span {
  font-family: "Roboto", sans-serif;
  font-size: 11px;
  line-height: 16px;
}

.plan-table td:last-of-type .plan-table-tax-included-price span {
  font-weight: 400;
}

.plan-table-flow ul {
  display: flex;
  justify-content: center;
  gap: 8px;
  padding: 0;
  list-style: none;
}

.plan-table-flow li {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 4px;
  width: 14px;
  font-size: 12px;
  font-weight: 700;
  line-height: 16px;
  writing-mode: vertical-lr;
  letter-spacing: 0.25em;
  text-indent: 0.25em;
  color: rgba(255, 255, 255, 1);
  white-space: pre;
  background: rgba(12, 24, 68, 1);
  border-radius: 4px;
}

.plan-table-enshrinement td {
  vertical-align: top;
}

.plan-table-flow td li.gray {
  color: rgba(255, 255, 255, 1);
  background: rgba(221, 221, 221, 1);
}

.plan-table-flow td:last-of-type li {
  color: rgba(12, 24, 68, 1);
  background: rgba(191, 198, 213, 1);
}

.plan-table-flow td:last-of-type li.gray {
  color: rgba(255, 255, 255, 1);
  background: rgba(221, 221, 221, 1);
}

.plan-table-enshrinement-item {
  padding: 4px 0 5px;
}

.plan-table-enshrinement-item + .plan-table-enshrinement-item {
  border-top: 1px dashed rgba(200, 200, 200, 1);
}

.separately {
  font-size: 12px;
  line-height: 1;
}

.separately.font-weight400 {
  font-weight: 400;
}

.plan-table-shiraki td:first-of-type {
  border-bottom: 2px solid rgba(12, 24, 68, 1);
}

.plan-table-annotation {
  text-align: right;
  margin-top: 8px;
  font-size: 12px;
  font-weight: 350;
  line-height: 16px;
}

/*plan-services-included*/
.plan-services-included {
  padding: 8px 12px 2px;
  background: rgba(244, 244, 244, 1);
}

.plan-services-included-heading {
  text-align: center;
  margin-bottom: 18px;
  font-size: 14px;
  font-weight: 700;
  line-height: 28px;
  color: rgba(255, 255, 255, 1);
  background: rgba(12, 24, 68, 1);
  border-radius: 30px;
}

.plan-services-included-item {
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
  border-bottom: 1px dashed;
}

.plan-services-included ul {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  margin: 12px 0 32px;
}

.plan-services-included li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 8px;
  width: calc(50% - 2px);
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  background: rgba(255, 255, 255, 1);
  border-radius: 4px;
}

.plan-services-included li img {
  width: 32px;
  height: 32px;
}

.plan-services-included-li-word {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.plan-services-included-li-word-s {
  font-size: 10px;
  font-weight: 350;
}

/*plan-total-amount*/
.plan-total-amount {
  position: relative;
  text-align: center;
  padding-bottom: 24px;
  color: rgba(255, 255, 255, 1);
  background: rgba(12, 24, 68, 1);
}

.plan-total-amount::before {
  content: "";
  position: absolute;
  top: 0px;
  margin: auto;
  border-top: 10px solid rgba(244, 244, 244, 1);
  border-right: 8px solid transparent;
  border-left: 8px solid transparent;
}

.plan-total-amount2::before {
  border-top: 10px solid rgba(255, 255, 255, 1);
}

.plan-total-amount-text {
  text-align: center;
  padding: 24px 0 16px;
  font-size: 16px;
  font-weight: 350;
  line-height: 24px;
}

.plan-total-amount-text-b {
  font-size: 20px;
  font-weight: 350;
  line-height: 28px;
}

.plan-total-amount-price {
  margin: 0 16px;
  padding: 16px 0;
  border-top: 1px solid rgba(69, 173, 73, 1);
  border-bottom: 1px solid rgba(69, 173, 73, 1);
}

.plan-total-amount-price-frame {
  display: flex;
  justify-content: center;
  align-items: center;
}

.plan-total-amount-item {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 21px;
  height: 56px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  writing-mode: vertical-lr;
  letter-spacing: 0.25em;
  text-indent: 0.25em;
  color: rgba(255, 255, 255, 1);
  white-space: pre;
  background: rgba(200, 0, 54, 1);
}

.plan-total-amount-roboto {
  margin-left: 8px;
  font-family: "Roboto", sans-serif;
  font-size: 49px;
  font-weight: 700;
  line-height: 78px;
  letter-spacing: 1.3px;
}

.plan-total-amount-yen {
  margin-left: 4px;
  font-size: 18px;
  font-weight: 700;
  line-height: 28px;
  letter-spacing: 1.3px;
}

.plan-total-amount-tax {
  font-size: 14px;
  font-weight: 350;
  line-height: 20px;
  letter-spacing: 1.3px;
}

.plan-total-amount-tax-included-price {
  font-size: 12px;
  font-weight: 350;
  line-height: 16px;
}

.plan-total-amount-tax-included-price span {
  margin-left: 12px;
  font-family: "Roboto", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
}

/*right-now*/
.right-now {
  position: relative;
  text-align: center;
  padding: 16px 12px 21px;
  border-top: 3px solid rgba(200, 0, 54, 1);
  border-bottom: 3px solid rgba(200, 0, 54, 1);
}

.right-now::before {
  content: "";
  position: absolute;
  top: 0px;
  margin: auto;
  border-top: 10px solid rgba(200, 0, 54, 1);
  border-right: 8px solid transparent;
  border-left: 8px solid transparent;
}

.right-now-text {
  text-align: center;
  margin-bottom: 8px;
  font-size: 18px;
  font-weight: 700;
  line-height: 28px;
}

/*flow*/
.flow-border-heading {
  text-align: center;
  margin-top: 40px;
  padding: 8px 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
  border-top: 1px solid;
  border-bottom: 1px solid;
}

.flow-table {
  margin: 20px 16px 12px;
  color: rgba(12, 24, 68, 1);
  border-collapse: collapse;
}

.flow-table th {
  text-align: center;
  padding: 0 20px;
  font-size: 14px;
  font-weight: 700;
  line-height: 20px;
  background: rgba(244, 244, 244, 1);
  border: 1px solid;
}

.flow-table td {
  padding: 12px;
  border: 1px solid;
}

.flow-table ul {
  display: flex;
  justify-content: center;
  gap: 30px;
}

.flow-table li {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  padding: 4px;
  width: 21px;
  min-height: 70px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  writing-mode: vertical-lr;
  letter-spacing: 0.25em;
  text-indent: 0.25em;
  color: rgba(255, 255, 255, 1);
  white-space: pre;
  background: rgba(12, 24, 68, 1);
  border-radius: 4px;
}

.flow-table li + li::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -22px;
  width: 14px;
  height: 14px;
  background: url(../img/arrow-blue.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

.flow-box {
  padding: 0 16px;
  border-top: 2px solid rgba(12, 24, 68, 1);
}

.flow-box-last {
  padding-top: 20px;
}

.flow-heading {
  padding: 6px 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 24px;
  border-bottom: 1px dashed;
}

.flow-box-item {
  display: flex;
  align-items: stretch;
  gap: 16px;
}

.flow-heading + .flow-box-item {
  padding-top: 20px;
}

.flow-box-item:last-of-type {
  padding-bottom: 20px;
}

.flow-box-item-number {
  display: flex;
  justify-content: center;
  align-self: flex-start;
  flex-shrink: 0;
  position: relative;
  width: 24px;
  height: 24px;
  font-size: 16px;
  font-weight: 700;
  color: rgba(255, 255, 255, 1);
  background: rgba(0, 0, 0, 1);
  border-radius: 50%;
}

.flow-box-item-subject {
  position: relative;
  padding: 24px 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 28px;
}

.flow-box-item-subject::before {
  content: "";
  position: absolute;
  top: 0;
  left: -28px;
  z-index: -1;
  width: 1px;
  height: 100%;
  background: rgba(0, 0, 0, 1);
}

.flow-box-item-img {
  margin-left: auto;
  margin-bottom: 20px;
  width: 170px;
  object-fit: cover;
}

.flow-box-item:last-of-type .flow-box-item-img {
  margin-bottom: 0px;
}

/*document-btn-area*/
.document-btn-area {
  padding: 24px 16px 32px;
}

/*set-plan(プランページ)*/
.set-plan-border-heading {
  text-align: center;
  padding: 16px 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 18px;
  color: rgba(12, 24, 68, 1);
  border-top: 2px solid;
  border-bottom: 2px solid;
}

.set-plan-border-heading span {
  font-size: 22px;
  color: rgba(69, 173, 73, 1);
}

.set-plan-inner.white-bg {
  background: rgba(255, 255, 255, 1);
}

.white-bg .set-plan-box {
  border: 1px solid rgba(51, 51, 51, 1);
}

.white-bg .set-plan-name {
  padding: 4px 8px;
  font-size: 16px;
  line-height: 24px;
}

.white-bg .ceremony-name {
  color: rgba(0, 0, 0, 1);
}

.white-bg .ceremony-name span {
  background: rgba(255, 255, 255, 1);
}

.white-bg .ceremony-name::before {
  border-top: 2px dashed rgba(20, 113, 184, 1);
}

/*company*/

/*overview*/
.overview {
  padding: 24px;
}

.overview-heading {
  font-weight: 700;
  line-height: 1.5;
}

.overview-table {
  text-align: left;
  width: 100%;
  font-size: 12px;
  line-height: 16px;
  border-collapse: collapse;
}

.overview-table tr {
  border-bottom: 1px solid rgb(204 204 204);
}

.overview-table tr:last-of-type {
  border-bottom: none;
}

.overview-table th {
  padding: 16px 0;
}

.overview-table td {
  padding: 16px 0 16px 8px;
}

.overview-table th {
  width: 33%;
  font-weight: 700;
}

/*thanks*/
.thanks {
  padding-bottom: 0;
}

.thanks-outer {
  position: relative;
  padding: 20px;
  min-height: 550px;
  background: rgba(233, 237, 251, 1);
}

.thanks-outer h1 {
  text-align: center;
  margin-bottom: 16px;
  font-size: 20px;
  line-height: 2;
}

.thanks-text {
  margin-bottom: 32px;
  font-size: 14px;
  line-height: 2;
}

.to-top-btn {
  text-align: center;
}

.to-top-btn a {
  display: inline-block;
  position: relative;
  text-align: left;
  margin-top: 16px;
  padding: 0 32px;
  width: 212px;
  height: 40px;
  font-size: 16px;
  font-weight: 700;
  line-height: 40px;
  color: rgba(255, 255, 255, 1);
  background: rgba(12, 24, 68, 1);
  border-radius: 6px;
}

.to-top-btn a::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 32px;
  width: 20px;
  height: 20px;
  background: url(../img/arrow-white.svg) no-repeat center / contain;
  transform: translateY(-50%);
}

.woman {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 40%;
  height: auto;
}

.hero-box-content-outer-kanto {
  display: block;
  justify-content: space-between;
}

.hero-box-content-outer-kanto .funeral-price-outer {
  align-self: center;
}

.hero-box-content-outer-kanto .funeral-price {
  font-size: 59px;
  margin-top: 12px;
}

.hero-box-content-outer-kanto .tax {
  font-size: 16px;
}

.hero-box-content-outer-kanto .yen {
  font-size: 25px;
  margin-top: 8px;
}

.hero-box-content-outer-kanto .tax-included {
  font-size: 19px;
  margin-top: 10px;
  margin-right: 50px;
}

.set-plan-box-inner {
  border-radius: 10px;
}

.set-plan-box-img {
  border-radius: 10px;
}

.kanto-plan-fv-img img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.kanto-plan-fv-img-top img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  object-position: top;
}

.kanto .plan-fv-content-price {
  margin-top: 0;
}

.plan-table-single .viewing-plan-name {
  padding: 14px 0;
}

.plan-table-single td:last-of-type {
  border-right: 2px solid rgba(12, 24, 68, 1);
}

.plan-table.plan-table-single
  td:last-of-type
  .plan-table-tax-included-price
  span {
  font-weight: 700;
}

.plan-table-single .plan-table-flow td:last-of-type li {
  color: rgba(255, 255, 255, 1);
  background: rgba(12, 24, 68, 1);
}

.plan-table-single .plan-table-flow td:last-of-type li.gray {
  color: rgba(255, 255, 255, 1);
  background: rgba(221, 221, 221, 1);
}

.plan-services-included .plan-services-included-kanto {
  margin: 12px 0 8px;
}

.plan-services-included-kanto + p {
  text-align: right;
  margin-bottom: 8px;
  font-size: 12px;
  font-weight: 500;
  line-height: 10px;
}

.plan-services-included .other-costs ul {
  margin: 12px 0 16px;
}

.plan-services-included .other-costs li {
  padding: 9px;
  font-size: 14px;
  font-weight: 500;
}

.other-costs span {
  position: relative;
  margin-left: 24px;
}

.other-costs span::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -24px;
  width: 16px;
  height: 16px;
  background: rgba(153, 195, 217, 1);
  border-radius: 50%;
  transform: translateY(-50%);
}
