@charset "UTF-8";
/*
Theme Name: kpro
Theme URL: 
Description: kpro homepage
Author: 
Version: 1.0.0
Tags: Web
*/
/* ===========================================
 * COMMON
 * ======================================== */
/* definition: default-style */
/* ======================================== */
body {
  margin: 0;
  overflow-x: hidden;
}

p, h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: 0.05em;
}

.fadein {
  opacity: 1 !important;
}

a {
  color: #000;
  text-decoration: none;
}
a:hover {
  text-decoration: none;
}

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

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

.wpcf7-spinner {
  display: none;
}

.wpcf7-not-valid-tip {
  margin: 12px 0 0;
}

.sf-icon-favorite {
  width: 20px;
  height: 20px;
  color: #72c9b9;
  font-size: 20px;
}

.simplefavorite-button.active {
  color: #FFF;
}
.simplefavorite-button.active .sf-icon-favorite {
  color: #FFF;
}

/* definition: animation */
/* ======================================== */
/* header */
/* ======================================== */
.header {
  position: fixed;
  top: 32px;
  left: calc((100% - 1040px) / 2);
  z-index: 10000;
  width: 1040px;
  height: 76px;
  border: 1px solid #EBF1F3;
  border-radius: 10000px;
  background-color: #FFF;
}
.header--employer {
  top: 67px;
  left: calc((100% - 1200px) / 2);
  width: 1200px;
}
.header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 9px 12px;
}
.header-logo__picture {
  width: 100%;
  height: 58px;
  -o-object-fit: contain;
     object-fit: contain;
}
.header-menu__list {
  display: flex;
  gap: 30px;
}
.header-menu__link {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 13px;
  font-weight: 500;
  line-height: 30px;
}
.header-cta__list {
  display: flex;
  gap: 8px;
}
.header-cta__item {
  border-radius: 10000px;
  box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25);
}
.header-cta__item--login {
  position: relative;
}
.header-cta__item--login::before {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 10000px;
  top: 0;
  left: 0;
  background: linear-gradient(90deg, #FDC8FB 0%, #FEEBB8 100%);
  content: "";
  z-index: 1;
}
.header-cta__item--login::after {
  position: absolute;
  width: calc(100% - 4px);
  height: calc(100% - 4px);
  border-radius: 10000px;
  top: 2px;
  left: 2px;
  background-color: #FFF;
  content: "";
  z-index: 2;
}
.header-cta__item--register {
  background-color: #72c9b9;
}
.header-cta__item--register .header-cta__link {
  color: #FFF;
  font-size: 15px;
  letter-spacing: 0.05em;
}
.header-cta__item--download {
  position: relative;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.08);
}
.header-cta__item--download .header-cta__link {
  font-size: 14px;
  letter-spacing: 1.56%;
  line-height: 14px;
}
.header-cta__item--download::before {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 10000px;
  top: 0;
  left: 0;
  background-image: linear-gradient(0deg, #B5FD9C 0%, #86EBC1 100%);
  content: "";
  z-index: 1;
}
.header-cta__item--download::after {
  position: absolute;
  width: calc(100% - 4px);
  height: calc(100% - 4px);
  border-radius: 10000px;
  top: 2px;
  left: 2px;
  background-color: #FFF;
  content: "";
  z-index: 2;
}
.header-cta__item--post {
  background: linear-gradient(89deg, #FF9A23 0%, #FF5824 100%);
  box-shadow: 4px 5px 9px rgba(0, 0, 0, 0.13);
}
.header-cta__item--post .header-cta__link {
  color: #FFF;
  font-size: 15px;
  letter-spacing: 0.78%;
  line-height: 15px;
}
.header-cta__item--profile {
  background-color: #72c9b9;
}
.header-cta__item--profile .header-cta__link {
  color: #FFF;
  font-size: 15px;
  letter-spacing: 0.05em;
}
.header-cta__item--profile .header-cta__icon {
  width: 20px;
  height: 20px;
  background-color: #FFF;
  -webkit-mask-image: url("./img/house-icon.svg");
          mask-image: url("./img/house-icon.svg");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: center;
          mask-position: center;
  -webkit-mask-size: contain;
          mask-size: contain;
}
.header-cta__item--contact {
  background: linear-gradient(293.3deg, #FD7BF8 0%, #FECF69 100%);
  box-shadow: 3.86px 4.6px 9px rgba(0, 0, 0, 0.13);
}
.header-cta__item--contact .header-cta__link {
  color: #FFF;
  font-size: 15px;
  line-height: 18px;
}
.header-cta__link {
  display: flex;
  position: relative;
  align-items: center;
  gap: 10px;
  z-index: 3;
  padding: 14px 16px;
}
.header-cta__text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 600;
}
.header__employer {
  position: fixed;
  bottom: 0;
  right: 0;
  z-index: 10001;
}
.header__employer--hide {
  display: none;
}
.header__employer-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 280px;
  height: 80px;
  border-radius: 40px 0 0 0;
  box-shadow: 3.86px 4.6px 9px rgba(0, 0, 0, 0.13);
  background: linear-gradient(17.3deg, #FF9A23 0%, #FF5824 100%);
  text-align: center;
}
.header__employer-link-text {
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 0.03em;
  line-height: 24px;
}

/* footer */
/* ======================================== */
.footer {
  position: relative;
  top: -78px;
  background-image: url("./img/footer-bg.png");
  background-position: top left;
  background-repeat: repeat-x;
  background-size: contain;
  z-index: 2;
}
.footer__inner {
  max-width: 1040px;
  padding: 106px 0 0;
  margin: 0 auto;
  overflow: hidden;
}
.footer-main {
  display: flex;
  justify-content: space-between;
  margin: 0 0 40px;
}
.footer-main__intro {
  width: 294px;
}
.footer-main__logo {
  margin: 0 0 22px;
}
.footer-main__logo-picture {
  width: 100%;
  height: 58px;
  -o-object-fit: contain;
     object-fit: contain;
}
.footer-main__detail {
  margin: 0 0 26px;
}
.footer-main__detail-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 26px;
}
.footer-main__sns-list {
  display: flex;
  gap: 20px;
}
.footer-main__sns-icon {
  width: 32px;
  height: 32px;
}
.footer-main__menu {
  display: flex;
}
.footer-main__menu-list {
  width: 240px;
  padding: 0 0 42px 40px;
  border-left: 2px dashed #E4E9EB;
}
.footer-main__menu-item--title {
  margin: 0 0 34px;
}
.footer-main__menu-title {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.footer-main__menu-title-jp {
  display: block;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 24px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1;
}
.footer-main__menu-title-en {
  display: block;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 16px;
  font-weight: 600;
  line-height: 1;
}
.footer-main__menu-title-en--job {
  letter-spacing: 2.34%;
  background: linear-gradient(276deg, #FD7BF8 0%, #FECF69 100%);
}
.footer-main__menu-title-en--support {
  letter-spacing: 3.13%;
  background: linear-gradient(281deg, #FD7BF8 0%, #FECF69 100%);
}
.footer-main__menu-title-en--info {
  letter-spacing: 3.91%;
  background: linear-gradient(277deg, #FD7BF8 0%, #FECF69 100%);
}
.footer-main__menu-title-en {
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.footer-main__menu-link {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.78%;
  line-height: 50px;
}
.footer-copyright {
  margin: 0 0 85px;
  text-align: center;
}
.footer-copyright__text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 500;
}
.footer-cta__inner {
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 0 0 auto;
}
.footer-cta__list {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.footer-cta__item {
  position: relative;
  width: 378px;
  padding: 28px 31px;
  border: 3px solid #FFF;
  border-radius: 16px;
  box-shadow: 4px 5px 9px 0 rgba(0, 0, 0, 0.13);
}
.footer-cta__item--employee {
  background: linear-gradient(259deg, #71C9A0 0%, #71C9B9 100%);
}
.footer-cta__item--employer {
  background: linear-gradient(259deg, #FD7BF8 0%, #FECF69 100%);
}
.footer-cta__catch {
  position: absolute;
  top: -22px;
  left: 50%;
  width: 185px;
  padding: 10px;
  border: 2px solid #000;
  border-radius: 10000px;
  background-color: #FFF;
  text-align: center;
  transform: translateX(-50%);
}
.footer-cta__catch-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 1.2px;
  line-height: 20px;
}
.footer-cta__main {
  display: flex;
  align-items: center;
  gap: 22px;
}
.footer-cta__main-text {
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 4.5px;
  line-height: 30px;
}
.footer-cta__icon {
  width: 29px;
  height: 35px;
}
.footer-cta__icon-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 66px;
  height: 66px;
  border-radius: 10000px;
  background-color: #FFF;
}

/* employer-footer */
/* ======================================== */
.employer-footer {
  position: relative;
}
.employer-footer__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 874px;
}
.employer-footer__bg-color {
  position: absolute;
  bottom: 0;
  z-index: 0;
  width: 100%;
  height: 2180px;
  background: linear-gradient(316.1deg, #ADE7E3 0%, #FDDEFC 49%, #FEF5D4 82%, #FFFFFF 100%);
}
.employer-footer__inner {
  position: relative;
  z-index: 2;
  max-width: 1040px;
  padding: 72px 0 100px;
  margin: 0 auto;
}
.employer-footer__title {
  margin: 0 0 34px;
  text-align: center;
}
.employer-footer__title-text {
  font-family: "Shippori Mincho B1", serif;
  font-style: normal;
  font-size: 43px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 90px;
}
.employer-footer__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  width: 100%;
  padding: 52px 0;
  border-radius: 35px;
  margin: 0 0 40px;
  background-color: #FFF;
  box-shadow: 4px 5px 4px rgba(255, 113, 69, 0.06);
  overflow-x: hidden;
}
.employer-footer__cta-title {
  text-align: center;
}
.employer-footer__cta-title-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.05em;
}
.employer-footer__cta-list {
  display: flex;
  gap: 30px;
}
.employer-footer__cta-item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: 400px;
  height: 106px;
  border-radius: 10000px;
  box-shadow: 4px 5px 9px rgba(0, 0, 0, 0.13);
}
.employer-footer__cta-item--post {
  background: linear-gradient(18.5deg, #FF9A23 0%, #FF5824 100%);
}
.employer-footer__cta-item--download {
  background: linear-gradient(18.5deg, #71C9B9 0%, #60E194 100%);
}
.employer-footer__cta-item:first-of-type .employer-footer__cta-icon {
  width: 33px;
}
.employer-footer__cta-item:last-of-type .employer-footer__cta-icon {
  width: 39px;
}
.employer-footer__cta-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 30px;
}
.employer-footer__cta-icon {
  height: auto;
}
.employer-footer__cta-text {
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 28.8px;
}
.employer-footer__copyright {
  margin: 0 0 30px;
  text-align: center;
}
.employer-footer__copyright-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 500;
  line-height: 26px;
}
.employer-footer__button {
  position: relative;
  width: 378px;
  padding: 28px 45px;
  border: 3px solid #FFF;
  border-radius: 23px;
  margin: 0 0 0 auto;
  background: linear-gradient(15deg, #FF9A23 0%, #FF5824 100%);
  box-shadow: 4px 5px 9px 0 rgba(0, 0, 0, 0.13);
}
.employer-footer__button-catch {
  position: absolute;
  top: -22px;
  left: 50%;
  width: 185px;
  padding: 5px;
  border: 2px solid #000;
  border-radius: 10000px;
  background-color: #FFF;
  text-align: center;
  transform: translateX(-50%);
}
.employer-footer__button-catch-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 1.2px;
  line-height: 24px;
}
.employer-footer__button-main {
  display: flex;
  align-items: center;
  gap: 32px;
}
.employer-footer__button-main-text {
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-weight: 600;
  line-height: 40.8px;
  text-align: center;
}
.employer-footer__button-main-text--before {
  font-size: 24px;
  letter-spacing: 0.15em;
}
.employer-footer__button-main-text--before-kana {
  letter-spacing: 0;
}
.employer-footer__button-main-text--after {
  font-size: 30px;
  letter-spacing: 0.15em;
}
.employer-footer__button-icon {
  width: 30px;
  height: auto;
}
.employer-footer__button-icon-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 66px;
  height: 66px;
  border-radius: 10000px;
  background-color: #FFF;
}

/* ===========================================
 * FRONTPAGE
 * ======================================== */
/* first-view */
/* ======================================== */
.first-view {
  overflow-x: hidden;
}
.first-view__inner {
  display: flex;
  flex-direction: column;
  position: relative;
  max-width: 1080px;
  padding: 155px 0 90px 30px;
  margin: 0 auto;
  z-index: 4;
}
.first-view__inner--employer {
  padding: 32px 0 89px;
}
.first-view__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}
.first-view__bg-image {
  position: absolute;
}
.first-view__bg-image--first {
  top: 0;
  left: 0;
  width: 100%;
  height: 1200px;
  background: linear-gradient(135deg, #FEF5D4 0%, #FDF5DA 51%, #FEF5D4 100%);
  -webkit-mask-image: url("./img/fv-bg-01.svg");
          mask-image: url("./img/fv-bg-01.svg");
  z-index: 1;
}
.first-view__bg-image--second {
  top: 215px;
  left: 0;
  width: 100%;
  height: 1270px;
  background: linear-gradient(135deg, #ADE7E3 0%, #FDDEFC 49%, #FEF5D4 100%);
  -webkit-mask-image: url("./img/fv-bg-02.svg");
          mask-image: url("./img/fv-bg-02.svg");
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
  -webkit-mask-position: top center;
          mask-position: top center;
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  z-index: 2;
}
.first-view__bg-image--third {
  top: 287px;
  left: -63px;
  width: 2003px;
  height: 1850px;
  background: linear-gradient(135deg, #ADE7E3 0%, #FDDEFC 49%, #FEF5D4 100%);
  -webkit-mask-image: url("./img/fv-bg-04.svg");
          mask-image: url("./img/fv-bg-04.svg");
  z-index: 2;
}
.first-view__bg-pattern {
  position: absolute;
  background-size: contain;
}
.first-view__bg-pattern--employee-first {
  top: -4px;
  left: 103px;
  z-index: 3;
  width: 283px;
  height: 167px;
  background: url("./img/pattern-circle-01.png");
}
.first-view__bg-pattern--employee-second {
  top: 130px;
  right: 376px;
  z-index: 3;
  width: 90px;
  height: 90px;
  background-image: url("./img/pattern-ball-01.png");
}
.first-view__bg-pattern--employee-third {
  top: 528.87px;
  left: 307px;
  z-index: 3;
  width: 159.13px;
  height: 159.13px;
  background-image: url("./img/pattern-ball-01.png");
}
.first-view__bg-pattern--employee-fourth {
  top: 566px;
  right: -1px;
  z-index: 3;
  width: 167px;
  height: 283px;
  background-image: url("./img/pattern-circle-02.png");
}
.first-view__bg-pattern--employer-first {
  top: 0;
  left: 103px;
  z-index: 3;
  width: 283px;
  height: 167px;
  background: url("./img/pattern-circle-01.png");
}
.first-view__bg-pattern--employer-second {
  top: 236px;
  right: 19.5%;
  z-index: 4;
  width: 90px;
  height: 90px;
  background-image: url("./img/pattern-ball-01.png");
}
.first-view__bg-pattern--employer-third {
  top: 605.87px;
  left: 228px;
  z-index: 3;
  width: 159.13px;
  height: 159.13px;
  background-image: url("./img/pattern-ball-01.png");
}
.first-view__bg-pattern--employer-fourth {
  top: 570px;
  right: 0;
  z-index: 3;
  width: 167px;
  height: 283px;
  background-image: url("./img/pattern-circle-02.png");
}
.first-view__bg--employee {
  height: 1338px;
}
.first-view__bg--employer {
  height: 2386px;
  overflow-x: hidden;
}
.first-view__lead {
  margin: 0 0 142px;
  text-align: center;
}
.first-view__lead-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.1em;
}
.first-view__head {
  position: relative;
  margin: 0 0 34px;
}
.first-view__head--emplyer {
  margin: 0 0 60px;
}
.first-view__image {
  position: absolute;
  top: -19px;
  right: 26px;
  width: 498px;
  height: 626px;
}
.first-view__image--employer {
  top: 248px;
  right: -70px;
  width: 489px;
  height: 626px;
}
.first-view__picture {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.first-view__catch {
  display: flex;
  align-items: center;
  flex-direction: row;
  gap: 7px;
  width: -moz-fit-content;
  width: fit-content;
  padding: 8px 14px;
  margin: 0 0 40px;
  border-radius: 10000px;
  background-color: #FFF;
}
.first-view__catch--employer {
  gap: 16px;
  padding: 0;
  border-radius: 0;
  margin: 0 0 48px;
  background-color: transparent;
}
.first-view__catch-list {
  display: flex;
  flex-direction: row;
  gap: 5px;
}
.first-view__catch-item {
  padding: 8px 21px;
  border-radius: 10000px;
}
.first-view__catch-item--medical {
  background-color: #70D1C0;
}
.first-view__catch-item--welfare {
  background-color: #EEA768;
}
.first-view__catch-item--beauty {
  background-color: #FD95ED;
}
.first-view__catch-item--employer {
  background-color: #ff9a23;
}
.first-view__catch-icon {
  color: #606060;
  font-size: 24px;
}
.first-view__catch-tag {
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.54px;
  line-height: 1;
}
.first-view__catch-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.54px;
  line-height: 1;
}
.first-view__catch-address {
  width: 15px;
  height: auto;
}
.first-view__catch-accent {
  padding: 9px 18px;
  border-radius: 10000px;
  background-color: #FF9A23;
}
.first-view__catch-accent-text {
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 400;
  letter-spacing: 0.54px;
  line-height: 18px;
}
.first-view__title-main {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 0 34px;
}
.first-view__title-main--employer {
  margin: 0 0 38px;
}
.first-view__title-main--employer .first-view__title-main-inner:nth-of-type(2) {
  position: relative;
}
.first-view__title-main--employer .first-view__title-main-inner:nth-of-type(2)::after {
  position: absolute;
  bottom: 0;
  right: -248px;
  z-index: 2;
  width: 248px;
  height: 257px;
  content: url("./img/fv-employer-lens.png");
}
.first-view__title-main-inner {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  padding: 0 12px;
  border-radius: 4px;
  margin: 0 0 15px;
  background-color: #FFF;
  box-shadow: 4px 5px 9px rgba(0, 0, 0, 0.07);
}
.first-view__title-main-inner:last-of-type {
  margin: 0;
}
.first-view__title-main-text {
  display: block;
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 68px;
  font-weight: 700;
  letter-spacing: 9.52px;
  line-height: 100px;
  background: linear-gradient(284deg, #FD7BF8 0%, #FECF69 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.first-view__title-main-text--employer {
  font-family: "Shippori Mincho", serif;
  font-style: normal;
  letter-spacing: 2.04px;
  background: linear-gradient(292deg, #FD7BF8 0%, #FECF69 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.first-view__title-main-period {
  font-size: 60px;
  letter-spacing: 8.4px;
}
.first-view__title-sub {
  display: block;
  position: relative;
  z-index: 1;
  margin: 0 0 92px;
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 3px;
  line-height: 60px;
}
.first-view__title-sub--employer {
  margin: 0 0 27px;
  font-family: "Shippori Mincho", serif;
  font-style: normal;
  font-size: 30px;
  font-weight: 700;
  letter-spacing: 3px;
  line-height: 60px;
}
.first-view__title-en {
  display: block;
  margin: 0 0 27px;
  color: #FFF;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 34px;
  font-weight: 400;
  letter-spacing: 1.95%;
  line-height: 34px;
}
.first-view__title-en--employer {
  margin: 0 0 20px;
  font-size: 50px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 50px;
  background: linear-gradient(58.2deg, #ADE7E3 0%, #FDDEFC 49%, #FECF69 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.first-view__summary {
  display: flex;
  flex-direction: row;
  gap: 10px;
}
.first-view__detail {
  display: flex;
  flex-direction: column;
  gap: 27px;
}
.first-view__detail-title {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 26px;
  font-weight: 500;
  letter-spacing: 2.6px;
  line-height: 26px;
}
.first-view__detail-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 1.44px;
  line-height: 32px;
}
.first-view__detail-text--employer {
  font-family: "Shippori Mincho", serif;
}
.first-view__point-list {
  display: flex;
  flex-direction: row;
  gap: 26px;
}
.first-view__point-item {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 10px;
  width: 144px;
  height: 144px;
  border-radius: 10000px;
  text-align: center;
  z-index: 2;
}
.first-view__point-item::before {
  position: absolute;
  top: 0;
  left: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  border-radius: 10000px;
  background: linear-gradient(144deg, #ADE7E3 0%, #FDDEFC 49%, #FEF5D4 100%);
  content: "";
}
.first-view__point-item::after {
  position: absolute;
  top: 5px;
  left: 5px;
  z-index: -1;
  width: calc(100% - 10px);
  height: calc(100% - 10px);
  border-radius: 10000px;
  background-color: #FFF;
  content: "";
}
.first-view__point-item:first-of-type .first-view__point-icon {
  width: 39px;
  height: 30px;
}
.first-view__point-item:last-of-type .first-view__point-icon {
  width: 29px;
  height: 35px;
}
.first-view__point-text {
  color: #FD95ED;
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0px;
  line-height: 26px;
}
.first-view__body {
  position: relative;
  z-index: 3;
}
.first-view__search {
  padding: 37px 30px;
  border-radius: 35px;
  background-color: #FFF;
  box-shadow: 4px 5px 4px rgba(255, 113, 69, 0.06);
}
.first-view__search-list {
  display: flex;
  align-items: center;
  gap: 11px;
  border-radius: 10000px;
  margin: 0 0 29px;
}
.first-view__search-item {
  position: relative;
  padding: 0;
  border-radius: 15px;
  color: #606060;
  background-color: #EBF1F3;
}
.first-view__search-item .keipro-search-choice {
  padding: 14px 16px;
  border-radius: 15px;
  width: 100%;
}
.first-view__search-item--active,
.first-view__search-item:has(.keipro-search-choice__input:checked) {
  color: #FFF;
  background-color: #71C9B9;
}
.first-view__search-item--active .first-view__search-icon,
.first-view__search-item:has(.keipro-search-choice__input:checked) .first-view__search-icon {
  filter: brightness(0) invert(1);
}
.first-view__search-item--active .first-view__search-tag,
.first-view__search-item:has(.keipro-search-choice__input:checked) .first-view__search-tag {
  color: #FFF;
}
.first-view__search-bar {
  display: flex;
  align-items: center;
  flex-direction: row;
  gap: 20px;
  padding: 26px 24px;
  border-radius: 40px;
  margin: 0 0 17px;
  background-color: #EBF1F3;
  overflow: hidden;
}
.first-view__search-input {
  position: relative;
}
.first-view__search-input:first-of-type .first-view__input-parameter {
  width: 304px;
}
.first-view__search-input:nth-of-type(2) .first-view__input-parameter {
  width: 360px;
}
.first-view__search-icon {
  width: 17px;
  height: auto;
}
.keipro-search-choice,
.listing__search-choice {
  display: flex;
  align-items: center;
  gap: 13px;
  color: inherit;
  cursor: pointer;
  margin: 0;
}
.listing__feature-choice.keipro-search-choice {
  display: block;
}
.keipro-search-choice__input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
  appearance: none;
  -webkit-appearance: none;
  opacity: 0;
  pointer-events: none;
}
.first-view__search-tag {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.48px;
  line-height: 16px;
}
.first-view__input-parameter {
  display: block;
  padding: 23px 23px 23px 64px;
  border: 0;
  border-radius: 10000px;
}
.first-view__input-icon {
  position: absolute;
  top: 50%;
  left: 25px;
  color: #606060;
  font-size: 24px;
  transform: translateY(-50%);
}
.first-view__submit {
  display: flex;
  gap: 13px;
  align-items: center;
  width: -moz-fit-content;
  width: fit-content;
  height: -moz-fit-content;
  height: fit-content;
  width: 230px;
  padding: 22px 52px;
  border: 1px solid #E4E9EB;
  border-radius: 10000px;
  background: linear-gradient(270deg, #F17800 0%, #FD95ED 100%);
}
.first-view__submit-text {
  border: 0;
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 1.78px;
  line-height: 22px;
  background-color: transparent;
}
.first-view__submit-icon {
  width: 21px;
  height: 21px;
}
.first-view__parameter {
  display: flex;
  align-items: center;
  gap: 9px;
}
.first-view__parameter-lead {
  color: #606060;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.48px;
  line-height: 16px;
}
.first-view__parameter-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}
.first-view__parameter-item {
  width: -moz-fit-content;
  width: fit-content;
  position: relative;
  padding: 0;
  border-radius: 10000px;
  background-color: #EBF1F3;
}
.first-view__parameter-item .keipro-search-choice {
  display: block;
  padding: 9px 17px;
  border-radius: 10000px;
}
.first-view__parameter-item--active,
.first-view__parameter-item:has(.keipro-search-choice__input:checked) {
  background-color: #71C9B9;
}
.first-view__parameter-item--active .first-view__parameter-text,
.first-view__parameter-item:has(.keipro-search-choice__input:checked) .first-view__parameter-text {
  color: #FFF;
}
.first-view__parameter-text {
  color: #606060;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.42px;
  line-height: 14px;
}
.first-view__cta {
  width: 1040px;
  padding: 58px 95px;
  border: 3px solid #F3F3F3;
  border-radius: 35px;
  margin: 0 0 78px;
  background-color: #FFF;
  box-shadow: 4px 5px 4px rgba(255, 113, 69, 0.06);
}
.first-view__cta-list {
  display: flex;
  justify-content: center;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 32px 27px;
}
.first-view__cta-item--post {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 850px;
  padding: 62px 0;
  border-radius: 30px;
  background: linear-gradient(22.8deg, #FF9A23, #FF5824);
  box-shadow: 4px 5px 9px rgba(0, 0, 0, 0.13);
}
.first-view__cta-item--sub {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  width: 270px;
  height: 66px;
  border-radius: 10000px;
  background-color: #FFF;
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.08);
}
.first-view__cta-item--download::before {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 10000px;
  top: 0;
  left: 0;
  background-image: linear-gradient(0deg, #71C9B9 0%, #60E194 100%);
  content: "";
  z-index: 1;
}
.first-view__cta-item--download::after {
  position: absolute;
  width: calc(100% - 6px);
  height: calc(100% - 6px);
  border-radius: 10000px;
  top: 3px;
  left: 3px;
  background-color: #FFF;
  content: "";
  z-index: 2;
}
.first-view__cta-item--download .first-view__cta-sub-text {
  letter-spacing: -1.56%;
}
.first-view__cta-item--download .first-view__cta-icon {
  width: 23px;
}
.first-view__cta-item--contact::before {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 10000px;
  top: 0;
  left: 0;
  background-image: linear-gradient(0deg, #FD7BF8 0%, #FECF69 100%);
  content: "";
  z-index: 1;
}
.first-view__cta-item--contact::after {
  position: absolute;
  width: calc(100% - 6px);
  height: calc(100% - 6px);
  border-radius: 10000px;
  top: 3px;
  left: 3px;
  background-color: #FFF;
  content: "";
  z-index: 2;
}
.first-view__cta-item--contact .first-view__cta-sub-text {
  letter-spacing: 3.91%;
}
.first-view__cta-item--contact .first-view__cta-icon {
  width: 39px;
}
.first-view__cta-catch {
  position: absolute;
  top: 0;
  left: 50%;
  width: 340px;
  padding: 18px 0;
  border: 2px solid #000;
  border-radius: 10000px;
  background-color: #FFF991;
  text-align: center;
  transform: translate(-50%, -50%);
}
.first-view__cta-catch-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 2.08px;
  line-height: 26px;
}
.first-view__cta-main {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
}
.first-view__cta-main-icon {
  width: 60px;
  height: auto;
}
.first-view__cta-main-text {
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 36px;
  font-weight: 700;
  letter-spacing: 2.88px;
  line-height: 36px;
}
.first-view__cta-sub {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  gap: 13px;
  z-index: 3;
}
.first-view__cta-sub-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 700;
  line-height: 18px;
}
.first-view__db {
  position: absolute;
  top: 148px;
  right: 0;
  width: 180px;
  height: 72px;
  padding: 20px 0;
  border: 1px solid #CACACA;
  border-radius: 15px;
  background-color: #FFF;
  text-align: center;
}
.first-view__db-text {
  display: flex;
  flex-direction: column;
  gap: 8px;
  color: #5D5D5D;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
}
.first-view__db-first {
  display: block;
  font-size: 16px;
  letter-spacing: 0.8px;
  line-height: 16px;
}
.first-view__db-second {
  display: block;
  font-size: 11px;
  letter-spacing: 1.1px;
  line-height: 11px;
}
.first-view__job {
  display: flex;
  flex-direction: column;
  gap: 56px;
}
.first-view__job-title {
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 40px;
  font-weight: 400;
  letter-spacing: 5.6px;
  line-height: 40px;
  text-align: center;
}
.first-view__job-list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 20px;
  justify-content: space-evenly;
  width: 1040px;
}
.first-view__job-list-title {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 1.6px;
  line-height: 24px;
}
.first-view__job-list-image {
  height: auto;
}
.first-view__job-list-picture {
  width: 100%;
  height: auto;
}
.first-view__job-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 30px;
  width: 190px;
  height: 230px;
  border: 1px solid #000;
  border-radius: 20px;
  background-color: #FFF;
  text-align: center;
}
.first-view__job-item:first-of-type .first-view__job-list-image {
  width: 110px;
}
.first-view__job-item:nth-of-type(2) .first-view__job-list-image {
  width: 103px;
}
.first-view__job-item:nth-of-type(3) .first-view__job-list-image {
  width: 114px;
}
.first-view__job-item:nth-of-type(4) .first-view__job-list-image {
  width: 120px;
}
.first-view__job-item:nth-of-type(5) .first-view__job-list-image {
  width: 113px;
}
.first-view__job-item:nth-of-type(6) .first-view__job-list-image {
  width: 110px;
}
.first-view__job-item:nth-of-type(7) .first-view__job-list-image {
  width: 98px;
}
.first-view__job-item:nth-of-type(8) .first-view__job-list-image {
  width: 111px;
}
.first-view__job-item:nth-of-type(9) .first-view__job-list-image {
  width: 120px;
}
.first-view__job-item:nth-of-type(10) .first-view__job-list-image {
  width: 110px;
}

/* new-post */
/* ======================================== */
.new-post {
  position: relative;
  width: 100%;
  background-color: #FFF;
}
.new-post__bg-image {
  position: absolute;
  left: 0;
  width: 100%;
  height: 495px;
  background-image: url("./img/new-post-bg.png");
  z-index: 3;
}
.new-post__bg-image--first {
  top: 0;
}
.new-post__bg-image--second {
  bottom: 0;
}
.new-post__inner {
  display: flex;
  flex-direction: column;
  gap: 68px;
  max-width: 1080px;
  padding: 101px 0 129px;
  margin: 0 auto;
}
.new-post__head {
  display: flex;
  position: relative;
  align-items: center;
  flex-direction: column;
  gap: 17px;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  z-index: 4;
}
.new-post__section-title {
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 50px;
  font-weight: 400;
  letter-spacing: 7px;
  line-height: 50px;
  background: linear-gradient(307deg, #FD7BF8 0%, #FECF69 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.new-post__section-detail {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: 18px;
}
.new-post__icon {
  display: flex;
  position: absolute;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  top: -119px;
  left: 50%;
  width: 90px;
  height: 90px;
  border-radius: 10000px;
  background: linear-gradient(307deg, #FD7BF8 0%, #FECF69 100%);
  transform: translateX(-50%);
}
.new-post__icon-text {
  color: #FFF;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 4.89%;
  line-height: 26px;
}
.new-post__body {
  position: relative;
  z-index: 4;
}
.new-post__body-inner {
  display: flex;
  flex-direction: column;
  gap: 40px;
  max-width: 1080px;
  padding: 40px 0 80px;
  margin: 0 auto;
}
.new-post__list {
  display: flex;
  gap: 60px;
}
.new-post__item {
  position: relative;
  width: calc((100% - 50px) / 2);
  padding: 25px;
  border-radius: 25px 20px 20px 20px;
  background-color: #FEF5D4;
  overflow: hidden;
}
.new-post__item--has-image .new-post__type {
  bottom: 10px;
  right: 14px;
}
.new-post__item--has-image .new-post__favorite {
  position: absolute;
  top: 13px;
  right: 17px;
  z-index: 3;
  color: #ebf1f3;
}
.new-post__item--no-image .new-post__favorite {
  position: absolute;
  top: 18px;
  right: 18px;
  z-index: 3;
  color: #CCC;
}
.new-post__ribbon {
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  width: 114px;
  height: 114px;
  clip-path: polygon(0 0, 100% 0, 0 100%);
  background: linear-gradient(143deg, #FD7BF8 0%, #FECF69 100%);
  text-align: center;
  z-index: 3;
}
.new-post__ribbon-text {
  position: absolute;
  top: 26px;
  left: 13px;
  color: #fff;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 24px;
  line-height: 24px;
  transform: rotate(-45deg);
}
.new-post__image {
  position: relative;
  width: 100%;
  height: 200px;
  border-radius: 24px 24px 0 0;
  overflow: hidden;
  z-index: 2;
}
.new-post__picture {
  width: 100%;
  height: 210px;
  background-image: url("./img/post-thumbnail.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}
.new-post__contents {
  display: flex;
  flex-direction: column;
  position: relative;
  padding: 12px 20px 19px;
  background-color: #FFF;
}
.new-post__contents-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.new-post__type {
  position: absolute;
  width: -moz-fit-content;
  width: fit-content;
  z-index: 3;
}
.new-post__type-inner {
  padding: 6px 13px;
  border-radius: 10000px;
  background-color: #71C9B9;
}
.new-post__type-text {
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.48px;
  line-height: 16px;
}
.new-post__favorite-icon {
  width: 26px;
  height: 24px;
  background-size: contain;
}
.new-post__favorite-icon--normal {
  background-image: url("./img/icon-favorite-normal.svg");
}
.new-post__favorite-icon--active {
  background-image: url("./img/icon-favorite-active.svg");
}
.new-post__post-title {
  margin: 0 0 27px;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 30px;
}
.new-post__post-tag {
  color: #606060;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.38px;
  line-height: 12px;
}
.new-post__post-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 0 11px;
}
.new-post__post-tag-item {
  width: -moz-fit-content;
  width: fit-content;
  padding: 8px 14px;
  border-radius: 10000px;
  background-color: #EBF1F3;
}
.new-post__post-link {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 700;
}
.new-post__post-link-list {
  display: flex;
  flex-direction: row;
  gap: 8px;
}
.new-post__post-link-item {
  width: 50%;
  padding: 14px;
  border-radius: 8px;
  text-align: center;
}
.new-post__post-link-item--detail {
  border: 1px solid #CCC;
}
.new-post__post-link-item--application {
  background-color: #ff9a23;
}
.new-post__post-link-item--application .listing__post-link {
  color: #FFF;
}
.new-post__address {
  display: flex;
  align-items: center;
  gap: 11px;
  position: relative;
  padding: 0 11px;
  margin: 0 0 30px;
}
.new-post__address::before {
  position: absolute;
  top: -11px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #EBF1F3;
  content: "";
}
.new-post__address::after {
  position: absolute;
  bottom: -13px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #EBF1F3;
  content: "";
}
.new-post__address-icon {
  width: 15px;
  height: 21px;
}
.new-post__address-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.7px;
  line-height: 30px;
}
.new-post__salary {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 0 11px;
  margin: 0 0 20px;
  color: #FD95ED;
}
.new-post__salary-icon {
  width: 17px;
  height: 19px;
}
.new-post__salary-text {
  display: flex;
}
.new-post__salary-monthly {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 7.03%;
  line-height: 16px;
}
.new-post__salary-value {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 7.03%;
  line-height: 16px;
}

/* support */
/* ======================================== */
.support {
  position: relative;
  top: -39px;
  background: linear-gradient(290deg, #ADE7E3 0%, #FDDEFC 49%, #FEF5D4 100%);
}
.support__bg-pattern {
  position: absolute;
  background-size: contain;
}
.support__bg-pattern--first {
  top: -28px;
  left: calc((100vw - 1040px) / 2 - 26px);
  z-index: 4;
  width: 90px;
  height: 90px;
  background-image: url("./img/pattern-ball-01.png");
}
.support__bg-pattern--second {
  bottom: -66px;
  right: 16.6%;
  z-index: 3;
  width: 159.13px;
  height: 159.13px;
  background-image: url("./img/pattern-ball-01.png");
}
.support__inner {
  display: flex;
  flex-direction: column;
  gap: 43px;
  max-width: 1080px;
  padding: 102px 0 124px;
  margin: 0 auto;
}
.support__head {
  display: flex;
  position: relative;
  flex-direction: column;
}
.support__section-title {
  margin: 0 0 25px;
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 50px;
  font-weight: 400;
  letter-spacing: 5px;
  line-height: 80px;
}
.support__section-subtitle {
  position: relative;
  z-index: 5;
  margin: 0 0 18px;
  color: #FFF;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 50px;
  font-weight: 400;
  letter-spacing: 1.76%;
  line-height: 50px;
}
.support__section-detail {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: 18px;
}
.support__section-image {
  position: absolute;
  top: -137px;
  right: 35px;
  width: 412px;
  height: 480px;
  z-index: 4;
}
.support__section-picture {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.support__list {
  display: flex;
  flex-direction: row;
  padding: 58px 0 68px;
  background-color: #FFF;
  border-radius: 30px;
}
.support__list-title {
  margin: 0 0 26px;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 20px;
  font-weight: 600;
  letter-spacing: 2px;
  line-height: 34px;
  text-align: center;
}
.support__list-image {
  margin: 0 0 28px;
  width: 100%;
  max-height: 184px;
}
.support__list-picture {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.support__list-detail {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.8px;
  line-height: 30px;
}
.support__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  width: 33.3333333333%;
  padding: 0 44px 0 38px;
  border-right: 2px dashed #E4E9EB;
}
.support__item:first-of-type .support__list-picture {
  height: 165px;
}
.support__item:nth-of-type(2) .support__list-picture {
  height: 184px;
}
.support__item:last-of-type {
  border-right: 0;
}
.support__item:last-of-type .support__list-picture {
  height: 171px;
}
.support__counter {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 0 0 18px;
}
.support__count {
  color: #90D9CA;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 30px;
  font-weight: 400;
  letter-spacing: 3.13%;
  line-height: 30px;
}

/* listing */
/* ======================================== */
.listing {
  position: relative;
  top: -39px;
  overflow: hidden;
}
.listing--archive {
  top: 0;
}
.listing--archive .listing__head-inner {
  padding-top: 176px;
}
.listing__inner {
  display: flex;
  flex-direction: column;
  gap: 33px;
}
.listing__head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.listing__head-inner {
  display: flex;
  flex-direction: column;
  max-width: 1080px;
  padding: 106px 0 0;
  margin: 0 auto;
}
.listing__section-icon {
  display: flex;
  position: absolute;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  top: -58px;
  left: 50%;
  width: 90px;
  height: 90px;
  border-radius: 10000px;
  background: linear-gradient(307deg, #FD7BF8 0%, #FECF69 100%);
  text-align: center;
  transform: translateX(-50%);
}
.listing__section-lens {
  width: 39px;
  height: 39px;
}
.listing__section-title {
  display: flex;
  position: relative;
  align-items: center;
  flex-direction: column;
  gap: 17px;
  width: 560px;
  height: 200px;
  padding: 64px 0 48px;
  border: 1px solid #FEF5D4;
  border-radius: 10000px;
  margin: 0 auto 26px;
  background-color: #FEFAEB;
}
.listing__section-title-main {
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 50px;
  font-weight: 600;
  letter-spacing: 5px;
  line-height: 50px;
  background: linear-gradient(280deg, #FD7BF8 0%, #FECF69 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.listing__section-title-sub {
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 3px;
  line-height: 30px;
}
.listing__section-detail {
  margin: 0 0 26px;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.8px;
  line-height: 30px;
  text-align: center;
}
.listing__search-list {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 1000px;
  padding: 24px 102px;
  border: 2px solid #E4E9EB;
  border-radius: 10000px;
  background-color: #FFF;
}
.listing__search-item {
  position: relative;
  padding: 0;
  border-radius: 15px;
  color: #606060;
  background-color: #EBF1F3;
}
.listing__search-item .keipro-search-choice,
.listing__search-item .listing__search-choice {
  padding: 14px 16px;
  border-radius: 15px;
  width: 100%;
}
.listing__search-item--active,
.listing__search-item:has(.keipro-search-choice__input:checked) {
  color: #FFF;
  background-color: #71C9B9;
}
.listing__search-item--active .listing__search-icon,
.listing__search-item:has(.keipro-search-choice__input:checked) .listing__search-icon {
  filter: brightness(0) invert(1);
}
.listing__search-item--active .listing__search-tag,
.listing__search-item:has(.keipro-search-choice__input:checked) .listing__search-tag {
  color: #FFF;
}
.listing__search-tag {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.48px;
  line-height: 30px;
}
.listing__search-icon {
  width: 17px;
  height: auto;
}
.listing__search-form {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}
.listing__search-fields {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
  width: 100%;
  padding: 26px 24px;
  border-radius: 40px;
  background-color: #EBF1F3;
}
.listing__search-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1 1 240px;
}
.listing__search-label {
  color: #606060;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.42px;
}
.listing__search-input {
  width: 100%;
  padding: 18px 24px;
  border: 0;
  border-radius: 10000px;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
}
.listing__search-actions {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: center;
}
.listing__search-button {
  padding: 18px 52px;
  border: 1px solid #E4E9EB;
  border-radius: 10000px;
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 1px;
  background: linear-gradient(270deg, #F17800 0%, #FD95ED 100%);
  cursor: pointer;
}
.listing__search-reset {
  color: #606060;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-decoration: underline;
}
.listing__feature-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  width: 100%;
}
.listing__feature-item {
  width: -moz-fit-content;
  width: fit-content;
  padding: 0;
  border-radius: 10000px;
  background-color: #EBF1F3;
}
.listing__feature-item .keipro-search-choice {
  display: block;
  padding: 9px 17px;
  border-radius: 10000px;
}
.listing__feature-item:has(.keipro-search-choice__input:checked) {
  background-color: #71C9B9;
}
.listing__feature-item:has(.keipro-search-choice__input:checked) .listing__feature-tag {
  color: #FFF;
}
.listing__feature-choice {
  display: block;
}
.listing__feature-tag {
  color: #606060;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.42px;
  line-height: 14px;
}
.listing__pagination {
  display: flex;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}
.listing__pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  padding: 8px 12px;
  border-radius: 8px;
  color: #606060;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 600;
  background-color: #EBF1F3;
}
.listing__pagination .page-numbers.current {
  color: #FFF;
  background-color: #71C9B9;
}
.listing__body {
  background-color: #FEFAEB;
}
.listing__body-inner {
  display: flex;
  flex-direction: column;
  gap: 38px;
  max-width: 1080px;
  padding: 51px 0 110px;
  margin: 0 auto;
}
.listing__list {
  display: flex;
  flex-wrap: wrap;
  gap: 60px 50px;
}
.listing__item {
  position: relative;
  width: calc((100% - 50px) / 2);
  padding: 25px;
  border-radius: 25px;
  background-color: #EBF1F3;
}
.listing__item--has-image .listing__type {
  bottom: 51px;
  left: 14px;
}
.listing__item--has-image .listing__favorite {
  position: absolute;
  top: 18px;
  right: 18px;
  z-index: 3;
}
.listing__item--no-image .listing__favorite {
  position: relative;
  z-index: 3;
}
.listing__image {
  position: relative;
  width: 100%;
  height: 210px;
  border-radius: 24px 24px 0 0;
  overflow: hidden;
  z-index: 2;
}
.listing__picture {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: center;
     object-position: center;
}
.listing__contents {
  display: flex;
  flex-direction: column;
  position: relative;
  padding: 12px 20px 19px;
  background-color: #FFF;
}
.listing__contents-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 16px;
}
.listing__type {
  position: relative;
  width: -moz-fit-content;
  width: fit-content;
  z-index: 3;
}
.listing__type-inner {
  padding: 6px 13px;
  border-radius: 10000px;
  background-color: #71C9B9;
}
.listing__type-text {
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.48px;
  line-height: 16px;
}
.listing__favorite-icon {
  width: 26px;
  height: 24px;
  background-size: contain;
  background-repeat: no-repeat;
}
.listing__favorite-icon--normal {
  background-image: url("./img/icon-favorite-normal.svg");
}
.listing__post-title {
  margin: 0 0 27px;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 30px;
}
.listing__post-tag {
  color: #606060;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.38px;
  line-height: 12px;
}
.listing__post-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 0 11px;
  margin: 0 0 17px;
}
.listing__post-tag-item {
  width: -moz-fit-content;
  width: fit-content;
  padding: 8px 14px;
  border-radius: 10000px;
  background-color: #EBF1F3;
}
.listing__post-link {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-weight: 400;
}
.listing__post-link-list {
  display: flex;
  flex-direction: row;
  gap: 10px;
}
.listing__post-link-item {
  width: 50%;
  padding: 17px;
  border: 1px solid #D0D0D0;
  border-radius: 8px;
  text-align: center;
}
.listing__post-link-item--detail .listing__post-link {
  font-size: 14px;
  letter-spacing: 0.7px;
  line-height: 14px;
}
.listing__post-link-item--application {
  background-color: #F17800;
}
.listing__post-link-item--application .listing__post-link {
  color: #FFF;
  font-size: 16px;
  letter-spacing: 0.8px;
  line-height: 16px;
}
.listing__address {
  display: flex;
  align-items: center;
  gap: 11px;
  position: relative;
  padding: 0 11px;
  margin: 0 0 30px;
}
.listing__address::before {
  position: absolute;
  top: -11px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #EBF1F3;
  content: "";
}
.listing__address::after {
  position: absolute;
  bottom: -13px;
  left: 0;
  width: 100%;
  height: 1px;
  background-color: #EBF1F3;
  content: "";
}
.listing__address-icon {
  width: 15px;
  height: 21px;
}
.listing__address-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.7px;
  line-height: 30px;
}
.listing__salary {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 0 11px;
  margin: 0 0 20px;
  color: #FD95ED;
}
.listing__salary-icon {
  width: 17px;
  height: 19px;
}
.listing__salary-text {
  display: flex;
}
.listing__salary-monthly {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 7.03%;
  line-height: 16px;
}
.listing__salary-value {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 7.03%;
  line-height: 16px;
}
.listing__button {
  display: flex;
  justify-content: center;
}
.listing__more-link {
  display: flex;
  position: relative;
  align-items: center;
  justify-content: center;
  gap: 16px;
  width: 290px;
  padding: 20px;
  border: 2px solid #FFF;
  border-radius: 10000px;
}
.listing__more-link::before {
  position: absolute;
  width: 100%;
  height: 100%;
  border-radius: 10000px;
  top: 0;
  left: 0;
  background: linear-gradient(270deg, #FD7BF8 0%, #FECF69 100%);
  content: "";
  z-index: 1;
}
.listing__more-link:after {
  position: absolute;
  width: calc(100% - 6px);
  height: calc(100% - 6px);
  border-radius: 10000px;
  top: 3px;
  left: 3px;
  background-color: #FFF;
  content: "";
  z-index: 2;
}
.listing__more-text {
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 2.4px;
  line-height: 24px;
  z-index: 3;
}
.listing__more-arrow {
  width: 18px;
  height: 17px;
  z-index: 3;
}

/* features */
/* ======================================== */
.features {
  position: relative;
  top: -78px;
  width: 100%;
  background-image: url("./img/bg-features.png");
  background-repeat: no-repeat;
}
.features__bg-pattern {
  position: absolute;
  background-size: contain;
}
.features__bg-pattern--first {
  top: -60px;
  left: calc((100vw - 1040px) / 2 - 114px);
  z-index: 4;
  width: 159.13px;
  height: 159.13px;
  background-image: url("./img/pattern-ball-01.png");
}
.features__bg-pattern--second {
  bottom: -34px;
  right: 20%;
  z-index: 3;
  width: 90px;
  height: 90px;
  background-image: url("./img/pattern-ball-01.png");
}
.features__inner {
  display: flex;
  flex-direction: column;
  gap: 65px;
  max-width: 1080px;
  padding: 74px 0 161px;
  margin: 0 auto;
}
.features__head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.features__section-lead {
  margin: 0 0 20px;
  color: #FFF;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 50px;
  font-weight: 400;
  letter-spacing: 4.3%;
  line-height: 50px;
}
.features__section-title {
  margin: 0 0 23px;
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 60px;
  font-weight: 600;
  letter-spacing: 6px;
  line-height: 60px;
}
.features__section-subtitle {
  margin: 0 0 30px;
  position: relative;
  width: 420px;
  padding: 26px;
  border-radius: 10000px;
  background-color: #FD95ED;
  text-align: center;
}
.features__section-subtitle::after {
  position: absolute;
  width: 35px;
  height: 20px;
  bottom: -13px;
  left: 50%;
  transform: translateX(-50%);
  background-color: #FD95ED;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  content: "";
}
.features__section-subtitle-text {
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 28px;
  font-weight: 600;
  letter-spacing: 1.4px;
  line-height: 28px;
  text-align: center;
}
.features__section-detail {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: 40px;
  text-align: center;
}
.features__list {
  display: flex;
  flex-direction: row;
  gap: 16px;
}
.features__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  width: 33.3333333333%;
  padding: 75px 20px 58px;
  border: 1px solid #000;
  border-radius: 30px;
  background-color: #FFF;
}
.features__item:first-of-type .features__picture {
  height: 171px;
}
.features__item:nth-of-type(2) .features__picture {
  height: 184px;
}
.features__item:last-of-type .features__picture {
  height: 165px;
}
.features__counter {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 50%;
  width: 72px;
  height: 72px;
  border: 1px solid #000;
  border-radius: 10000px;
  background: linear-gradient(0deg, #FD7BF8 0%, #FECF69 100%);
  transform: translate(-50%, -50%);
}
.features__count {
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 30px;
  font-weight: 400;
  line-height: 30px;
}
.features__title {
  margin: 0 0 28px;
  text-align: center;
}
.features__title-text {
  color: #FD95ED;
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 3.6px;
  line-height: 36px;
}
.features__image {
  margin: 0 0 28px;
  width: 100%;
}
.features__picture {
  width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.features__detail-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.8px;
  line-height: 30px;
}

/* step */
/* ======================================== */
.step {
  position: relative;
  overflow: hidden;
}
.step__bg-pattern {
  position: absolute;
  background-size: contain;
}
.step__bg-pattern--first {
  top: 1277px;
  left: calc((100vw - 1040px) / 2 - 109px);
  z-index: 4;
  width: 159.13px;
  height: 159.13px;
  background-image: url("./img/pattern-ball-01.png");
}
.step__bg-pattern--second {
  bottom: 504px;
  right: calc((100vw - 1040px) / 2 - 90px - 89px);
  z-index: 3;
  width: 90px;
  height: 90px;
  background-image: url("./img/pattern-ball-01.png");
}
.step__inner {
  display: flex;
  flex-direction: column;
  gap: 39px;
  max-width: 1080px;
  padding: 35px 0 293px;
  margin: 0 auto;
}
.step__head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.step__head-title {
  margin: 0 0 26px;
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 50px;
  font-weight: 600;
  letter-spacing: 7px;
  line-height: 50px;
  background: linear-gradient(280deg, #FD7BF8 0%, #FECF69 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.step__head-subtitle {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 90px;
  height: 90px;
  border-radius: 10000px;
  margin: 0 0 29px;
  color: #FFF;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 6.25%;
  line-height: 20px;
  background: linear-gradient(307deg, #FD7BF8 0%, #FECF69 100%);
}
.step__head-detail {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: 40px;
  text-align: center;
}
.step__body {
  display: flex;
  flex-direction: column;
  gap: 49px;
}
.step__flow-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  counter-reset: count 0;
}
.step__flow-item {
  display: flex;
  align-items: center;
  position: relative;
  counter-increment: count 1;
}
.step__flow-item:first-of-type .step__flow-pattern-line::before {
  height: 167px;
}
.step__flow-item:first-of-type .step__flow-pattern-line::after {
  height: 167px;
}
.step__flow-item:last-of-type .step__flow-pattern-line::before {
  height: 0;
}
.step__flow-item:last-of-type .step__flow-pattern-line::after {
  height: 0;
}
.step__flow-item:last-of-type .step__flow-counter {
  background: linear-gradient(238deg, #71C9A0 0%, #71C9B9 100%);
}
.step__flow-pattern-circle {
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 3;
  width: 32px;
  height: 32px;
  border-radius: 10000px;
  background: linear-gradient(290deg, #A0D5D1 0%, #FDC2FC 49%, #FEF2B0 99%);
  transform: translateY(-50%);
}
.step__flow-pattern-circle::after {
  position: absolute;
  top: 4px;
  left: 4px;
  z-index: 4;
  width: 24px;
  height: 24px;
  border-radius: 10000px;
  background: #FFF;
  content: "";
}
.step__flow-pattern-line::before {
  position: absolute;
  top: calc(50% + 24px);
  left: 15px;
  z-index: 3;
  width: 0;
  height: 177px;
  border-left: 3px dashed;
  -o-border-image: linear-gradient(to bottom, #A0D5D1 0%, #FDC2FC 49%, #FEEA8A 99%) 1;
     border-image: linear-gradient(to bottom, #A0D5D1 0%, #FDC2FC 49%, #FEEA8A 99%) 1;
  content: "";
}
.step__flow-pattern-line::after {
  position: absolute;
  top: calc(50% + 24px);
  left: 15px;
  z-index: 4;
  width: 0;
  height: 177px;
  border-left: 3px dashed #FFF;
  background-image: linear-gradient(to bottom, transparent, transparent 6px, #fff 6px, #fff 12px);
  background-size: 12px 4px;
  content: "";
}
.step__flow-image {
  position: relative;
  top: 0;
  left: 42px;
  max-width: 203px;
  max-height: 158px;
  z-index: 2;
}
.step__flow-picture {
  -o-object-fit: contain;
     object-fit: contain;
}
.step__flow-contents {
  position: relative;
  top: 0;
  left: 11px;
  width: 100%;
  padding: 31px 54px;
  border-radius: 25px 20px 20px 20px;
  background-color: #FEF5D4;
  z-index: 1;
}
.step__flow-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 0 0 16px;
  border-bottom: 1px dashed #FD95ED;
}
.step__flow-head-main {
  display: flex;
  align-items: center;
  gap: 20px;
}
.step__flow-head-sub {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 158px;
  height: 36px;
  border-radius: 10000px;
  background-color: #FF9A23;
}
.step__flow-head-tag {
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 15px;
  font-weight: 400;
  line-height: 15px;
}
.step__flow-title {
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 2.4px;
  line-height: 24px;
}
.step__flow-counter {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  border-radius: 10000px;
  background: linear-gradient(7deg, #FD7BF8 0%, #FECF69 100%);
}
.step__flow-count {
  color: #FFF;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 26px;
  font-weight: 400;
  line-height: 26px;
}
.step__flow-body {
  padding: 24px 0 0;
}
.step__flow-detail {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 1.6px;
  line-height: 28px;
}
.step__button {
  display: flex;
  justify-content: center;
}
.step__link {
  display: flex;
  align-items: center;
  gap: 19px;
  width: 400px;
  padding: 26px;
  border: 3px solid #FFF;
  border-radius: 10000px;
  color: #FFF;
  background: linear-gradient(163deg, #71C9A0 0%, #71C9B9 100%);
  box-shadow: 4px 5px 9px rgba(0, 0, 0, 0.13);
}
.step__link-text {
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 1.2px;
  line-height: 24px;
}
.step__link-arrow {
  width: 17px;
  height: 16px;
  fill: #FFF;
}

/* columns */
/* ======================================== */
.columns {
  background-color: #FEFAEB;
}
.columns__inner {
  display: flex;
  position: relative;
  flex-direction: column;
  gap: 83px;
  max-width: 1080px;
  padding: 88px 0 118px;
  margin: 0 auto;
  z-index: 1;
}
.columns__section-title {
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 28px;
}
.columns__section-title-main {
  font-family: "秀英丸ゴシック B", "Zen Maru Gothic", sans-serif;
  font-size: 42px;
  font-weight: 600;
  letter-spacing: 4.2px;
  line-height: 42px;
}
.columns__section-title-sub {
  position: relative;
  width: 250px;
  padding: 17px;
  border-radius: 10000px;
  color: #FFF;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 24px;
  font-weight: 400;
  letter-spacing: 1.56%;
  line-height: 24px;
  background: linear-gradient(282deg, #FD7BF8 0%, #FECF69 100%);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, 0.13);
  text-align: center;
}
.columns__section-title-sub::after {
  position: absolute;
  width: 35px;
  height: 20px;
  bottom: -13px;
  left: 50%;
  transform: translateX(-50%);
  background-color: #FD95ED;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  content: "";
}
.columns__list {
  display: flex;
  flex-direction: row;
  gap: 26px;
}
.columns__item {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 33.3333333333%;
  padding: 20px;
  border-radius: 10px;
  background-color: #FFF;
}
.columns__picture {
  width: 100%;
  height: 170px;
  background-color: #EBF1F3;
}
.columns__contents {
  display: flex;
  flex-direction: column;
}
.columns__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 18px;
}
.columns__tag {
  padding: 6px 14px;
  border-radius: 10000px;
  background-color: #EBF1F3;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.55px;
  line-height: 11px;
}
.columns__date {
  color: #FD95ED;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.36px;
  line-height: 12px;
  text-decoration: none;
}
.columns__body {
  display: flex;
  flex-direction: column;
}
.columns__article-title {
  padding: 0 0 8px;
  border-bottom: 2px solid #EBF1F3;
  margin: 0 0 10px;
  color: #71C9B9;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 1.28px;
  line-height: 26px;
}
.columns__article-excerpt {
  margin: 0 0 13px;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.6px;
  line-height: 20px;
}
.columns__article-link {
  display: flex;
  gap: 4px;
  align-items: center;
  width: -moz-fit-content;
  width: fit-content;
  padding: 8px 12px 8px 54px;
  border-radius: 10000px;
  margin: 0 0 0 auto;
  background: linear-gradient(281deg, #FD7BF8 0%, #FECF69 100%);
  color: #FFF;
}
.columns__article-link-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 1.2px;
  line-height: 12px;
}
.columns__article-link-arrow {
  width: 14px;
  height: 13px;
}

/* cta */
/* ======================================== */
/* check */
/* ======================================== */
.check {
  position: relative;
}
.check__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}
.check__bg-image {
  position: relative;
  width: 100%;
  height: 495px;
  background-image: url("./img/footer-bg.png");
  background-repeat: no-repeat;
  z-index: 3;
}
.check__bg-pattern {
  position: absolute;
  background-size: contain;
}
.check__bg-pattern--first {
  top: -20px;
  right: 20.4%;
  z-index: 5;
  width: 90px;
  height: 90px;
  background-image: url("./img/pattern-ball-01.png");
}
.check__inner {
  position: relative;
  max-width: 1040px;
  padding: 92px 0 109px;
  margin: 0 auto;
  z-index: 6;
}
.check__list {
  display: flex;
  gap: 16px;
}
.check__item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc((100% - 32px) / 3);
  padding: 70px 40px 48px;
  border: 1px solid #000;
  border-radius: 30px;
}
.check__item:first-of-type .check__image {
  width: 212px;
  margin: 0 0 42px;
}
.check__item:nth-of-type(2) .check__image {
  width: 230px;
  margin: 0 0 16px;
}
.check__item:last-of-type .check__image {
  width: 211px;
  margin: 0 0 29px;
}
.check__catch {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 0;
  left: 50%;
  width: 72px;
  height: 72px;
  border: 1px solid #000;
  border-radius: 10000px;
  background: linear-gradient(0deg, #71C9B9 0%, #60E194 100%);
  transform: translate(-50%, -50%);
}
.check__catch-text {
  color: #FFF;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 7.81%;
  line-height: 15px;
  text-align: center;
}
.check__title {
  margin: 0 0 47px;
}
.check__title-text {
  color: #54C481;
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 2.6px;
  line-height: 26px;
  text-align: center;
}
.check__picture {
  width: 100%;
  height: auto;
}
.check__detail-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.8px;
  line-height: 30px;
}

/* reason */
/* ======================================== */
.reason {
  position: relative;
  width: 100%;
  background-image: url("./img/bg-reason.png");
  background-size: cover;
  background-repeat: no-repeat;
}
.reason__inner {
  display: flex;
  flex-direction: column;
  gap: 75px;
  max-width: 1040px;
  padding: 83px 0 140px;
  margin: 0 auto;
  overflow-x: hidden;
}
.reason__head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.reason__section-lead {
  margin: 0 0 20px;
  color: #FFF;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 50px;
  font-weight: 400;
  letter-spacing: 1.17%;
  line-height: 50px;
  text-shadow: 0 0 29px #ade7e3;
}
.reason__section-title {
  margin: 0 0 23px;
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 60px;
  font-weight: 400;
  letter-spacing: 6px;
  line-height: 60px;
}
.reason__section-subtitle {
  margin: 0 0 30px;
  position: relative;
  width: 420px;
  padding: 26px;
  border-radius: 10000px;
  background-color: #60E194;
  text-align: center;
}
.reason__section-subtitle::after {
  position: absolute;
  width: 35px;
  height: 20px;
  bottom: -13px;
  left: 50%;
  transform: translateX(-50%);
  background-color: #60E194;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  content: "";
}
.reason__section-subtitle-text {
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 1.4px;
  line-height: 28px;
  text-align: center;
}
.reason__section-detail {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: 40px;
  text-align: center;
}
.reason__body {
  display: flex;
  flex-direction: column;
  gap: 56px;
}
.reason__list {
  display: flex;
  flex-direction: column;
  gap: 77px;
}
.reason__item {
  display: flex;
  justify-content: space-between;
  position: relative;
  padding: 45px 48px;
  border: 1px solid #000;
  border-radius: 50px;
  background-color: #FFF;
}
.reason__item:first-of-type .reason__main-picture {
  width: 302px;
}
.reason__item:nth-of-type(2) .reason__main-picture {
  width: 326px;
}
.reason__item:last-of-type .reason__main-picture {
  width: 242px;
}
.reason__counter {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 2px;
  position: absolute;
  top: 0;
  left: 50%;
  width: 90px;
  height: 90px;
  border-radius: 20px;
  background: linear-gradient(0deg, #71C9B9 0%, #60E194 100%);
  text-align: center;
  transform: translate(-50%, -50%);
}
.reason__counter-head {
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 15px;
  font-weight: 400;
  letter-spacing: 0.45px;
  line-height: 15px;
}
.reason__count {
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 40px;
  font-weight: 400;
  line-height: 40px;
}
.reason__main {
  width: 442px;
}
.reason__main-image {
  margin: 0 0 30px;
  text-align: center;
}
.reason__main-picture {
  width: 100%;
  height: auto;
}
.reason__main-title {
  display: flex;
  flex-direction: column;
  gap: 13px;
  margin: 0 0 28px;
}
.reason__main-title-text {
  color: #54C481;
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 36px;
  font-weight: 600;
  letter-spacing: 1.8px;
  line-height: 36px;
}
.reason__main-subtitle-text {
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 2.6px;
  line-height: 26px;
}
.reason__main-detail {
  margin: 0 0 15px;
}
.reason__main-detail-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.48px;
  line-height: 30px;
}
.reason__main-list {
  padding: 9px 35px;
  border-radius: 15px;
  background-color: #EBF1F3;
}
.reason__main-list--remark {
  margin: 0 0 10px;
}
.reason__main-item {
  display: flex;
  align-items: center;
  gap: 26px;
  padding: 9px 0;
}
.reason__main-item:first-of-type {
  border-bottom: 2px dotted #DADADA;
}
.reason__main-icon {
  width: 20px;
  height: auto;
}
.reason__main-addition {
  color: #606060;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.8px;
  line-height: 16px;
}
.reason__main-addition {
  color: #606060;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.8px;
  line-height: 16px;
}
.reason__main-remark-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 30px;
}
.reason__sub {
  width: 440px;
  padding: 77px 40px;
  border: 1px solid #FEFAEB;
  border-radius: 80px;
  background-color: #FEFAEB;
}
.reason__flow-title {
  margin: 0 0 35px;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.44px;
  line-height: 22px;
  text-align: center;
}
.reason__flow-list {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.reason__flow-list--left .reason__flow-item::before {
  left: 66px;
}
.reason__flow-list--center .reason__flow-item::before {
  left: 50%;
}
.reason__flow-item {
  display: flex;
  align-items: center;
  gap: 60px;
  position: relative;
  height: 100px;
  padding: 19px 35px;
  border-radius: 10000px;
  background-color: #FFF;
  box-shadow: 4px 2px 0 rgba(240, 159, 2, 0.16);
}
.reason__flow-item::before {
  position: absolute;
  bottom: -40px;
  height: 52px;
  border-left: 8px dotted #54C481;
  content: "";
}
.reason__flow-item:last-of-type::before {
  border-left: 0;
}
.reason__flow-item::after {
  position: absolute;
  top: 20px;
  left: 116px;
  width: 2px;
  height: 60px;
  background-color: #DADADA;
  content: "";
}
.reason__flow-item:first-of-type .reason__flow-icon {
  width: 36px;
}
.reason__flow-item:nth-of-type(2) .reason__flow-icon {
  width: 36px;
}
.reason__flow-item:last-of-type .reason__flow-icon {
  width: 56px;
}
.reason__flow-icon {
  height: auto;
}
.reason__flow-icon-wrapper {
  width: 60px;
  text-align: center;
}
.reason__flow-timing {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 60px;
  height: 60px;
  border-radius: 10000px;
  background-color: #54C481;
  text-align: center;
}
.reason__flow-timing-text {
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.96px;
  line-height: 19px;
}
.reason__flow-timing-number {
  font-size: 20px;
  letter-spacing: 0.6px;
  line-height: 17px;
}
.reason__flow-subtitle {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: 26px;
}
.reason__match {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.reason__match-title {
  margin: 0 0 47px;
}
.reason__match-title-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: 18px;
  text-align: center;
}
.reason__match-subtitle {
  margin: 0 0 40px;
  position: relative;
  width: 300px;
  padding: 26px;
  border-radius: 10000px;
  background-color: #FF9A23;
  text-align: center;
}
.reason__match-subtitle:after {
  position: absolute;
  width: 35px;
  height: 20px;
  bottom: -13px;
  left: 50%;
  transform: translateX(-50%);
  background-color: #FF9A23;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  content: "";
}
.reason__match-subtitle-text {
  color: #FFF;
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 1.4px;
  line-height: 28px;
}
.reason__match-image {
  text-align: center;
}
.reason__match-picture {
  width: 269px;
  height: auto;
}
.reason__addition-list {
  display: flex;
  flex-direction: row;
  gap: 39px;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
}
.reason__addition-item {
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 25px 46px;
  border: 1px solid #000;
  border-radius: 20px;
  background-color: #FFF;
}
.reason__addition-item:first-of-type .reason__addition-picture {
  width: 60px;
}
.reason__addition-item:last-of-type .reason__addition-picture {
  width: 54px;
}
.reason__addition-image {
  width: 60px;
}
.reason__addition-picture {
  height: auto;
}
.reason__addition-detail {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.reason__addition-title {
  color: #54C481;
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 26px;
  font-weight: 400;
  letter-spacing: 1.3px;
  line-height: 26px;
}
.reason__addition-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.8px;
  line-height: 16px;
}
.reason__policy-title {
  margin: 0 0 32px;
  text-align: center;
}
.reason__policy-title-text {
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 36px;
}
.reason__policy-main {
  padding: 46px 26px;
  border-radius: 50px;
  background-color: #FFF;
}
.reason__policy-main-lead {
  margin: 0 0 12px;
  text-align: center;
}
.reason__policy-main-lead-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 36px;
}
.reason__policy-main-title {
  margin: 0 0 23px;
  text-align: center;
}
.reason__policy-main-title-text {
  color: #FF9A23;
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 28px;
  font-weight: 700;
  letter-spacing: 0.2em;
}
.reason__policy-main-image {
  width: 302px;
  height: auto;
  text-align: center;
}
.reason__policy-main-picture {
  width: 100%;
  height: auto;
}

/* contact */
/* ======================================== */
.contact {
  position: relative;
  padding: 107px 0 0;
  overflow-x: hidden;
}
.contact__bg-pattern {
  position: absolute;
  z-index: 3;
  background-image: url(./img/pattern-ball-02.png);
  background-size: contain;
}
.contact__bg-pattern--first {
  bottom: 280px;
  left: calc((100vw - 1040px) / 2 - 109px);
  width: 159.13px;
  height: 159.13px;
}
.contact__bg-pattern--second {
  top: 218px;
  right: calc((100vw - 1040px) / 2 - 90px - 45px);
  width: 90px;
  height: 90px;
}
.contact__inner {
  position: relative;
  z-index: 4;
  max-width: 1040px;
  padding: 111px 0 102px;
  margin: 0 auto;
}
.contact__color {
  position: relative;
  background-color: #FEFAEB;
}
.contact__image {
  position: absolute;
  top: -62px;
  right: 32px;
}
.contact__picture {
  width: 575px;
  height: auto;
}
.contact__main {
  display: flex;
  flex-direction: column;
  gap: 121px;
  position: relative;
  z-index: 2;
}
.contact__title-main {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.contact__title-text {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  padding: 4px 14px;
  border-radius: 4px;
  font-family: "Shippori Mincho", serif;
  font-style: normal;
  font-size: 53px;
  font-weight: 700;
  background-color: #FFF;
}
.contact__title-text--accent {
  color: #FF9A23;
}
.contact__cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 28px;
  position: relative;
  padding: 40px 0;
  border: 1px solid #000;
  border-radius: 20px;
  background-color: #FFF;
}
.contact__cta-catch {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 28px;
  position: absolute;
  top: -39px;
  left: 50%;
  width: 330px;
  height: 60px;
  border: 2px solid #000;
  border-radius: 10000px;
  transform: translateX(-50%);
  background-color: #FFF991;
}
.contact__cta-catch-lead {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 22px;
  font-weight: 600;
  line-height: 32px;
}
.contact__cta-catch-price {
  display: flex;
  align-items: center;
  color: #FF9A23;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-weight: 600;
}
.contact__cta-catch-value {
  font-size: 40px;
}
.contact__cta-catch-unit {
  font-size: 26px;
}
.contact__cta-title-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 30px;
  font-weight: 600;
}
.contact__cta-title-text--accent {
  color: #FF9A23;
}
.contact__cta-list {
  display: flex;
  justify-content: center;
  flex-direction: row;
  gap: 30px;
}
.contact__cta-item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 400px;
  height: 106px;
  border-radius: 10000px;
  box-shadow: 3.86px 4.6px 9px rgba(0, 0, 0, 0.13);
}
.contact__cta-item--post {
  background: linear-gradient(18.5deg, #FF9A23 0%, #FF5824 100%);
}
.contact__cta-item--post .contact__cta-icon {
  width: 33px;
}
.contact__cta-item--contact {
  background: linear-gradient(18.5deg, #FD7BF8 0%, #FEAD4D 100%);
}
.contact__cta-item--contact .contact__cta-icon {
  width: 40px;
}
.contact__cta-sub {
  display: flex;
  align-items: center;
  gap: 18px;
}
.contact__cta-sub-text {
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 28.8px;
}
.contact__cta-icon {
  height: auto;
}

/* follow */
/* ======================================== */
.follow {
  position: relative;
}
.follow__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 975px;
}
.follow__bg-color {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 1500px;
  background: linear-gradient(223deg, #ADE7E3 0%, #FEF5D4 82%, #FFFFFF 100%);
}
.follow__inner {
  display: flex;
  flex-direction: column;
  position: relative;
  z-index: 2;
  gap: 83px;
  max-width: 880px;
  padding: 102px 0 88px;
  margin: 0 auto;
}
.follow__head {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.follow__section-lead {
  margin: 0 0 13px;
  color: #FFF;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 50px;
  font-weight: 400;
  line-height: 90px;
  text-shadow: 0 0 29px rgba(171, 225, 194, 0.003);
}
.follow__section-title {
  margin: 0 0 12px;
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 60px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 80px;
}
.follow__section-subtitle {
  margin: 0 0 18px;
  position: relative;
  width: 420px;
  padding: 21px;
  border-radius: 10000px;
  background-color: #60E194;
  text-align: center;
}
.follow__section-subtitle::after {
  position: absolute;
  width: 35px;
  height: 20px;
  bottom: -13px;
  left: 50%;
  transform: translateX(-50%);
  background-color: #60E194;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  content: "";
}
.follow__section-subtitle-text {
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 1.4px;
  line-height: 28px;
  text-align: center;
}
.follow__section-detail {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 1.8px;
  line-height: 40px;
  text-align: center;
}
.follow__body {
  width: 100%;
  overflow-x: hidden;
}
.follow__list {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
}
.follow__list-lead {
  position: relative;
  width: 116px;
  padding: 8px;
  border-radius: 10000px;
  margin: 0 0 26px;
  background-color: #54C481;
  text-align: center;
}
.follow__list-lead::after {
  position: absolute;
  width: 20px;
  height: 12px;
  bottom: -12px;
  left: 50%;
  transform: translateX(-50%);
  background-color: #54C481;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  content: "";
}
.follow__list-lead-text {
  color: #FFF;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 30px;
}
.follow__list-timing {
  position: relative;
  width: 150px;
  padding: 0 0 10px;
  margin: 0 0 17px;
  text-align: center;
}
.follow__list-timing::after {
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 150px;
  border-bottom: 2px solid #DADADA;
  border-radius: 10000px;
  content: "";
}
.follow__list-timing-text {
  color: #54C481;
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 30px;
}
.follow__list-action {
  text-align: center;
}
.follow__list-action-text {
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 26px;
  font-weight: 400;
}
.follow__item {
  display: flex;
  flex-direction: column;
  gap: 26px;
  flex-basis: 260px;
}
.follow__item--goal .follow__main::after {
  content: "";
}
.follow__item--goal .follow__list-lead {
  background-color: #FF9A23;
}
.follow__item--goal .follow__list-lead::after {
  background-color: #FF9A23;
}
.follow__item--goal .follow__list-timing-text {
  color: #FF9A23;
}
.follow__main {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  width: 260px;
  height: 260px;
  border-radius: 10000px;
  padding: 28px;
  background-color: #FFF;
  box-shadow: 4.46px 2.2px 0 rgba(240, 159, 2, 0.16);
}
.follow__main::after {
  position: absolute;
  top: 50%;
  right: -68.44px;
  z-index: 2;
  width: 105.44px;
  height: auto;
  content: url("./img/icon-arrow-green.png");
}
.follow__detail-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 30px;
}

/* plan */
/* ======================================== */
.plan {
  position: relative;
  overflow-x: hidden;
}
.plan__bg-image {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1101px;
  background-image: url(./img/bg-white.png);
  background-position: top;
  z-index: 1;
}
.plan__inner {
  display: flex;
  flex-direction: column;
  gap: 25px;
  position: relative;
  z-index: 2;
  max-width: 1040px;
  padding: 84px 0 115px;
  margin: 0 auto;
}
.plan__head-lead {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 90px;
  height: 90px;
  margin: 0 auto 19px;
  border-radius: 10000px;
  background: linear-gradient(140.6deg, #71C9B9 0%, #60E194 100%);
  text-align: center;
}
.plan__head-lead-text {
  color: #FFF;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 20px;
  font-weight: 400;
}
.plan__head-title {
  margin: 0 0 26px;
  text-align: center;
}
.plan__head-title-text {
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 50px;
  font-weight: 400;
  letter-spacing: 0.05em;
  line-height: 90px;
}
.plan__head-title-text--accent {
  color: #FF9A23;
}
.plan__head-detail {
  text-align: center;
}
.plan__head-detail-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 40px;
}
.plan__body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 1040px;
  padding: 48px 45px;
  border-radius: 50px;
  background: linear-gradient(307.2deg, #71C9B9 0%, #60E194 100%);
}
.plan__reward {
  display: flex;
  align-items: center;
  flex-direction: column;
  position: relative;
  width: 500px;
  border: 1px solid #FEF5D4;
  border-radius: 80px;
  background-color: #FEFAEB;
}
.plan__reward-head {
  margin: -37px 0 0;
}
.plan__reward-detail {
  margin: 0 0 -27px;
}
.plan__reward-timing {
  margin: 0 0 15px;
  text-align: center;
}
.plan__reward-timing-text {
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 36px;
}
.plan__reward-triangle {
  display: block;
  width: 35px;
  height: 20px;
  margin: 0 auto 6px;
  background-color: #FF9A23;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}
.plan__reward-result {
  width: 400px;
  padding: 19px;
  border-radius: 10000px;
  background-color: #FF9A23;
  text-align: center;
}
.plan__reward-result-text {
  color: #FFF;
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 30px;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 40px;
}
.plan__reward-image {
  margin: 0 0 10px;
  text-align: center;
}
.plan__reward-picture {
  width: 197px;
  height: auto;
}
.plan__reward-cost-image {
  width: 346px;
}
.plan__reward-cost-picture {
  width: 100%;
  height: auto;
}
.plan__risk {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 390px;
}
.plan__risk-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
}
.plan__risk-title-text {
  color: #FFF;
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 38px;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 36px;
}
.plan__risk-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.plan__risk-item {
  display: flex;
  align-items: center;
  gap: 48px;
  position: relative;
  width: 390px;
  height: 90px;
  padding: 24px 0 24px 34px;
  border-radius: 10000px;
  background-color: #FFF;
  box-shadow: 4.46px 2.27px 0 rgba(240, 159, 2, 0.16);
}
.plan__risk-item::after {
  position: absolute;
  top: 15px;
  left: 114px;
  width: 2px;
  height: 60px;
  border-radius: 10000px;
  background-color: #DADADA;
  content: "";
}
.plan__risk-icon-wrapper {
  display: flex;
  width: 58px;
  justify-content: center;
}
.plan__risk-subtitle-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 26px;
}

/* question */
/* ======================================== */
.question {
  position: relative;
}
.question__bg-image {
  position: absolute;
  left: 0;
  width: 100%;
  height: 1657px;
  background-image: url(./img/bg-white.png);
  background-position: bottom;
  z-index: 2;
}
.question__inner {
  display: flex;
  flex-direction: column;
  gap: 59px;
  position: relative;
  z-index: 2;
  max-width: 1040px;
  padding: 0 0 130px;
  margin: 0 auto;
}
.question__section-title {
  text-align: center;
}
.question__section-title-text {
  font-family: dnp-shuei-mgothic-std, "Zen Maru Gothic", sans-serif;
  font-size: 60px;
  font-weight: 400;
  letter-spacing: 0.1em;
  line-height: 80px;
}
.question__list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.question__item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  height: 260px;
  padding: 0 57px;
  border: 1px solid #000;
  border-radius: 50px;
  background-color: #FEFAEB;
}
.question__q {
  display: flex;
  align-items: center;
  gap: 28px;
  padding: 0 0 27px;
  border-bottom: 2px solid #DADADA;
  margin: 0 0 16px;
}
.question__q-icon {
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 32px;
  font-weight: 400;
}
.question__q-icon-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 10000px;
  background: linear-gradient(0deg, #71C9B9 0%, #60E194 100%);
}
.question__q-title-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 26px;
  font-weight: 500;
  letter-spacing: 0.1em;
}
.question__a {
  display: flex;
  align-items: center;
  gap: 28px;
}
.question__a-icon {
  position: relative;
  left: 14px;
  font-family: maru-maru-gothic-blr-stdn, "Zen Maru Gothic", sans-serif;
  font-size: 32px;
  font-weight: 400;
}
.question__a-icon-wrapper {
  position: relative;
  width: 52px;
}
.question__a-title-text {
  font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 30px;
}/*# sourceMappingURL=style.css.map */

/* =========================================================

/* =========================================================
   KEIPRO RESPONSIVE LAYER  (added 2026-08-14)
   PC専用だったレイアウトにスマホ/タブレット対応を追加。
   既存の記述は一切変更していません。ここから下のみが追加分です。
   1) 共通レイアウト  2) 見出し・余白  3) 横並びの縦積み
   4) ヘッダー/FV     5) 検索チップ    6) 左右パディング
   ========================================================= */
/* ---- タブレット（1080px以下）: コンテナを可変化 ---- */
@media screen and (max-width:1080px){
html,body{overflow-x:hidden;max-width:100%;}
img,svg,video,iframe{max-width:100%;height:auto;}
body [class][class]{max-width:100%!important;flex-wrap:wrap!important;}
[class*="__inner"],[class*="-inner"]{width:100%!important;max-width:100%!important;box-sizing:border-box!important;padding-left:24px!important;padding-right:24px!important;}
}

/* ---- スマートフォン（768px以下） ---- */
@media screen and (max-width:768px){
html,body{overflow-x:hidden;max-width:100%;}
body [class][class]{flex-wrap:wrap!important;max-width:100%!important;}
img,svg,video,iframe{max-width:100%;height:auto;}
[class*="__inner"],[class*="-inner"]{width:100%!important;max-width:100%!important;box-sizing:border-box!important;padding-left:20px!important;padding-right:20px!important;}
[class*="__list"],[class*="-list"],[class*="__menu"],[class*="-menu"],[class*="__items"],[class*="-items"],[class*="__flow"],[class*="-flow"],[class*="__steps"],[class*="-steps"],[class*="__columns"],[class*="-columns"]{width:auto!important;max-width:100%!important;}
[class*="__image"],[class*="-image"],[class*="__picture"],[class*="-picture"],[class*="__photo"],[class*="-photo"],[class*="__icon"],[class*="-icon"],[class*="__logo"],[class*="-logo"],[class*="__thumb"],[class*="-thumb"]{max-width:100%!important;}
[class*="__bg-pattern"],[class*="-bg-pattern"],[class*="__bg-image"],[class*="-bg-image"],[class*="__bg-decoration"],[class*="-bg-decoration"],[class*="__decoration"],[class*="-decoration"]{display:none!important;}
[class*="__search-form"],[class*="-search-form"],[class*="__search-box"],[class*="-search-box"],[class*="__search-bar"],[class*="-search-bar"],[class*="__form"],[class*="-form"],[class*="__box"],[class*="-box"],[class*="__bar"],[class*="-bar"],[class*="__row"],[class*="-row"]{flex-direction:column!important;align-items:stretch!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important;}
[class*="__input"],[class*="-input"],[class*="__submit"],[class*="-submit"],[class*="__button"],[class*="-button"],[class*="__btn"],[class*="-btn"],[class*="__select"],[class*="-select"],[class*="__textarea"],[class*="-textarea"],[class*="__field"],[class*="-field"]{width:100%!important;max-width:100%!important;box-sizing:border-box!important;}
input[type="radio"],input[type="checkbox"]{width:auto!important;}
[class*="__title"],[class*="-title"],[class*="__subtitle"],[class*="-subtitle"],[class*="__catch"],[class*="-catch"],[class*="__detail"],[class*="-detail"],[class*="__text"],[class*="-text"],[class*="__lead"],[class*="-lead"],[class*="__desc"],[class*="-desc"],[class*="__name"],[class*="-name"]{width:auto!important;max-width:100%!important;box-sizing:border-box!important;}
[class*="__item"],[class*="-item"],[class*="__card"],[class*="-card"],[class*="__contents"],[class*="-contents"],[class*="__content"],[class*="-content"],[class*="__block"],[class*="-block"],[class*="__panel"],[class*="-panel"],[class*="__col"],[class*="-col"]{max-width:100%!important;box-sizing:border-box!important;}
[class*="__cta"],[class*="-cta"],[class*="__body"],[class*="-body"],[class*="__sub"],[class*="-sub"],[class*="__wrap"],[class*="-wrap"],[class*="__container"],[class*="-container"],[class*="__area"],[class*="-area"],[class*="__main"],[class*="-main"],[class*="__section"],[class*="-section"],[class*="__head"],[class*="-head"],[class*="__foot"],[class*="-foot"],[class*="__group"],[class*="-group"],[class*="__frame"],[class*="-frame"],[class*="__table"],[class*="-table"]{width:auto!important;max-width:100%!important;box-sizing:border-box!important;}
.first-view__image{position:static!important;left:auto!important;right:auto!important;width:100%!important;margin:0 auto!important;}
}
/* ---- 見出し・余白のスマホ最適化（自動生成） ---- */
@media screen and (max-width:768px){
.footer-cta__list{gap:16px;}
.footer-cta__main-text{font-size:19px;}
.employer-footer__title-text{font-size:23px;}
.employer-footer__cta-title-text{font-size:18px;}
.employer-footer__cta-text{font-size:18px;}
.employer-footer__button-main-text--after{font-size:19px;}
.first-view__title-main-text{font-size:26px;}
.first-view__title-main-period{font-size:26px;}
.first-view__title-sub{font-size:19px;}
.first-view__title-sub--employer{font-size:19px;}
.first-view__title-en{font-size:21px;}
.first-view__title-en--employer{font-size:26px;}
.first-view__detail-title{font-size:18px;}
.first-view__cta-catch-text{font-size:18px;}
.first-view__cta-main-text{font-size:21px;}
.first-view__job{gap:22px;}
.first-view__job-title{font-size:23px;}
.new-post__inner{gap:27px;}
.new-post__section-title{font-size:26px;}
.new-post__icon-text{font-size:19px;}
.new-post__body-inner{gap:16px;}
.new-post__list{gap:24px;}
.support__inner{gap:17px;}
.support__section-title{font-size:26px;}
.support__section-subtitle{font-size:26px;}
.support__count{font-size:19px;}
.listing--archive .listing__head-inner{padding-top:79px;}
.listing__section-title-main{font-size:26px;}
.listing__section-title-sub{font-size:19px;}
.listing__list{gap:24px;}
.features__inner{gap:26px;}
.features__section-lead{font-size:26px;}
.features__section-title{font-size:26px;}
.features__section-subtitle-text{font-size:19px;}
.features__count{font-size:19px;}
.step__head-title{font-size:26px;}
.step__body{gap:20px;}
.step__flow-count{font-size:18px;}
.columns__inner{gap:33px;}
.columns__section-title-main{font-size:23px;}
.check__title-text{font-size:18px;}
.reason__inner{gap:30px;}
.reason__section-lead{font-size:26px;}
.reason__section-title{font-size:26px;}
.reason__section-subtitle-text{font-size:19px;}
.reason__body{gap:22px;}
.reason__list{gap:31px;}
.reason__count{font-size:23px;}
.reason__main-title-text{font-size:21px;}
.reason__main-subtitle-text{font-size:18px;}
.reason__flow-item{gap:24px;}
.reason__match-subtitle-text{font-size:19px;}
.reason__addition-title{font-size:18px;}
.reason__policy-main-title-text{font-size:19px;}
.contact__main{gap:48px;}
.contact__title-text{font-size:26px;}
.contact__cta-catch-value{font-size:23px;}
.contact__cta-catch-unit{font-size:18px;}
.contact__cta-title-text{font-size:19px;}
.follow__inner{gap:33px;}
.follow__section-lead{font-size:26px;}
.follow__section-title{font-size:26px;}
.follow__section-subtitle-text{font-size:19px;}
.follow__list-timing-text{font-size:18px;}
.follow__list-action-text{font-size:18px;}
.plan__head-title-text{font-size:26px;}
.plan__reward-timing-text{font-size:18px;}
.plan__reward-result-text{font-size:19px;}
.plan__risk-title{gap:16px;}
.plan__risk-title-text{font-size:21px;}
.plan__risk-item{gap:19px;}
.question__inner{gap:24px;}
.question__section-title-text{font-size:26px;}
.question__q-icon{font-size:21px;}
.question__q-title-text{font-size:18px;}
.question__a-icon{font-size:21px;}
}
/* ---- 横並びカラムをスマホで縦積みに / 装飾画像の重なり解除 ---- */
@media screen and (max-width:768px){
[class*="__item"]:not([class*="search"]):not([class*="menu"]):not([class*="cta"]):not([class*="sns"]):not([class*="tag"]):not([class*="nav"]):not([class*="pager"]):not([class*="step"]):not([class*="catch"]):not([class*="sidebar"]),[class*="-item"]:not([class*="search"]):not([class*="menu"]):not([class*="cta"]):not([class*="sns"]):not([class*="tag"]):not([class*="nav"]):not([class*="pager"]):not([class*="step"]):not([class*="catch"]):not([class*="sidebar"]),[class*="__card"],[class*="__contents"],[class*="__col"],[class*="-col"]{min-width:min(100%,250px)!important;flex-grow:1!important;}
[class*="__step-list"],[class*="-step-list"]{flex-wrap:nowrap!important;gap:6px!important;width:100%!important;}
[class*="__step-item"],[class*="-step-item"]{min-width:0!important;flex:1 1 0!important;}
[class*="__section-image"],[class*="-section-image"]{position:static!important;top:auto!important;right:auto!important;left:auto!important;bottom:auto!important;margin:0 auto 16px!important;max-width:72%!important;height:auto!important;}
[class*="__head"] [class*="__image"],[class*="__head"] img{position:static!important;}
}
/* ---- ヘッダー / ファーストビュー のスマホ最適化 ---- */
@media screen and (max-width:768px){
body{padding-top:80px!important;}
.header{position:fixed!important;top:0!important;left:0!important;right:0!important;width:100%!important;height:auto!important;padding:0!important;z-index:9999!important;}
.header__inner{width:100%!important;max-width:100%!important;height:auto!important;border-radius:0!important;padding:8px 12px!important;gap:8px!important;flex-wrap:wrap!important;align-items:center!important;background:#fff!important;box-shadow:0 2px 8px rgba(0,0,0,.08)!important;}
.header-logo{flex:0 0 auto!important;}
.header-logo__picture{height:26px!important;width:auto!important;}
.header-menu{order:3!important;flex:0 0 100%!important;margin:2px 0 0!important;}
.header-menu__list{justify-content:center!important;gap:14px!important;width:100%!important;flex-wrap:nowrap!important;}
.header-menu__item,.header-menu__link{font-size:11px!important;white-space:nowrap!important;}
.header-cta{flex:1 1 auto!important;}
.header-cta__list{justify-content:flex-end!important;gap:6px!important;width:auto!important;flex-wrap:nowrap!important;}
.header-cta__link{padding:7px 10px!important;gap:4px!important;}
.header-cta__text{font-size:11px!important;white-space:nowrap!important;}
.header-cta__icon{width:12px!important;}
.header__employer{position:fixed!important;left:auto!important;right:10px!important;top:auto!important;bottom:10px!important;width:auto!important;height:auto!important;z-index:9998!important;}
.header__employer-link{padding:12px 18px!important;border-radius:9999px!important;height:auto!important;width:auto!important;}
.header__employer-link-text{font-size:12px!important;}
.first-view__bg-image{display:block!important;}
.first-view__image{position:static!important;width:100%!important;height:auto!important;max-width:300px!important;margin:16px auto 0!important;}
.first-view__head{height:auto!important;}
.first-view__inner{padding-top:24px!important;padding-bottom:32px!important;}
.first-view__title{margin-bottom:16px!important;}
}
/* ---- 検索チップは2列に ---- */
@media screen and (max-width:768px){
[class*="__search-item"],[class*="-search-item"]{min-width:140px!important;flex-grow:1!important;}
[class*="__search-choice"],[class*="-search-choice"]{width:100%!important;justify-content:center!important;text-align:center!important;}
[class*="__search-list"],[class*="-search-list"]{justify-content:center!important;gap:10px!important;border-radius:20px!important;}
}
/* ---- 大きな左右パディングをスマホで縮小（自動生成） ---- */
@media screen and (max-width:768px){
.employer-footer__button{padding-left:16px!important;padding-right:16px!important;}
.first-view__submit{padding-left:16px!important;padding-right:16px!important;}
.first-view__cta{padding-left:16px!important;padding-right:16px!important;}
.support__item{padding-left:16px!important;padding-right:16px!important;}
.listing__search-list{padding-left:16px!important;padding-right:16px!important;}
.listing__search-button{padding-left:16px!important;padding-right:16px!important;}
.step__flow-contents{padding-left:16px!important;padding-right:16px!important;}
.check__item{padding-left:16px!important;padding-right:16px!important;}
.reason__item{padding-left:16px!important;padding-right:16px!important;}
.reason__sub{padding-left:16px!important;padding-right:16px!important;}
.reason__addition-item{padding-left:16px!important;padding-right:16px!important;}
.plan__body{padding-left:16px!important;padding-right:16px!important;}
.question__item{padding-left:16px!important;padding-right:16px!important;}
}


/* KEIPRO ANCHOR OFFSET (added 2026-08-17) */
#reason,#plan,#question{scroll-margin-top:120px;}
@media screen and (max-width:768px){#reason,#plan,#question{scroll-margin-top:80px;}}


/* KEIPRO AGREEMENT CHECKBOX (added 2026-08-17) */
.keipro-agreement{margin-top:24px;display:flex;align-items:flex-start;gap:8px;}
.keipro-agreement .register-job-seeker__addition-label{font-size:14px;line-height:1.6;}
.keipro-agreement a{text-decoration:underline;}


/* KEIPRO FAQ MOBILE FIX (added 2026-08-17) */
/* 縦方向flex + flex-wrap:wrap で回答が右の列に送られ画面外に出るのを防ぐ */
@media screen and (max-width:768px){
  .question__inner,
  .question__list,
  .question__item{flex-wrap:nowrap!important;height:auto!important;max-height:none!important;}
  .question__item{display:block!important;}
  .question__q,
  .question__a{width:100%!important;max-width:100%!important;margin-left:0!important;}
  .question__a{margin-top:12px;}
  [class*="__section-title-main"]{max-width:100%!important;}
}

.keipro-agreement label{font-size:14px;line-height:1.6;}


/* ==========================================================================
   KPRO RESPONSIVE — スマートフォン対応（2026-08-21 追加）
   ここより下は既存のスタイルを上書きするため、必ずファイル末尾に置くこと。
   ========================================================================== */

/* --- 1. ハンバーガーボタン（PCでは非表示） --- */
.header-burger { display: none; }

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

  /* --- ヘッダー本体 --- */
  .header {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: auto !important;
    border: 0 !important;
    border-radius: 0 !important;
    border-bottom: 1px solid #EBF1F3 !important;
  }

  .header__inner {
    flex-wrap: nowrap !important;
    padding: 8px 14px !important;
    gap: 10px !important;
    box-shadow: none !important;
  }

  .header-logo__picture { height: 30px !important; }

  /* --- ハンバーガーボタン --- */
  .header-burger {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    margin-left: auto;
    padding: 0;
    border: 0;
    border-radius: 10px;
    background: transparent;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
  }

  .header-burger__bar {
    display: block;
    width: 22px;
    height: 2px;
    border-radius: 2px;
    background-color: #333;
    transition: transform .25s ease, opacity .2s ease;
  }

  .header--nav-open .header-burger__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .header--nav-open .header-burger__bar:nth-child(2) { opacity: 0; }
  .header--nav-open .header-burger__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  /* --- ドロワー（閉じている状態） --- */
  .header-menu,
  .header-cta {
    order: 9 !important;
    flex: 0 0 100% !important;
    width: 100% !important;
    margin: 0 !important;
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    pointer-events: none;
    transition: max-height .3s ease, opacity .2s ease, padding .3s ease;
  }

  /* --- ドロワー（開いている状態） --- */
  .header--nav-open .header__inner { flex-wrap: wrap !important; }

  .header--nav-open .header-menu {
    max-height: 340px;
    opacity: 1;
    pointer-events: auto;
    padding: 6px 0 0 !important;
    border-top: 1px solid #EEF3F5;
    margin-top: 8px !important;
  }

  .header--nav-open .header-cta {
    max-height: 200px;
    opacity: 1;
    pointer-events: auto;
    padding: 10px 0 6px !important;
  }

  /* --- ドロワー内のナビ --- */
  .header-menu__list {
    display: block !important;
    width: 100% !important;
    gap: 0 !important;
  }

  .header-menu__item { border-bottom: 1px solid #F1F5F7; }
  .header-menu__item:last-child { border-bottom: 0; }

  .header-menu__link {
    display: block !important;
    padding: 14px 4px !important;
    font-size: 15px !important;
    line-height: 1.4 !important;
    white-space: normal !important;
  }

  /* --- ドロワー内のログイン・登録ボタン --- */
  .header-cta__list {
    display: flex !important;
    flex-direction: column;
    gap: 10px !important;
    width: 100% !important;
  }

  .header-cta__item { width: 100%; }

  .header-cta__link {
    justify-content: center !important;
    padding: 14px 16px !important;
    gap: 8px !important;
  }

  .header-cta__text { font-size: 15px !important; }
  img.header-cta__icon { width: 18px !important; height: 18px !important; }

  /* --- 固定ヘッダー分の余白を本文に確保 --- */
  body { padding-top: 58px; }

  /* --- 採用担当者への導線（右下固定） --- */
  .header__employer-link { padding: 11px 16px !important; }
  .header__employer-link-text { font-size: 12px !important; }

}

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

  /* --- 2. ファーストビュー --- */

  /* 左右の余白を揃える */
  .first-view__inner {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  /* 医療・福祉・美容のタグを横1列に戻す（伸びて縦積みになっていた） */
  .first-view__catch {
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
  }

  .first-view__catch-list {
    flex-wrap: nowrap !important;
    gap: 6px !important;
    width: auto !important;
  }

  .first-view__catch-item {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 6px 14px !important;
  }

  .first-view__catch-tag { font-size: 14px !important; }
  .first-view__catch-text { font-size: 15px !important; }

  /* キャッチコピー：文字間隔と行間がPC用のまま残り箱が巨大化していた */
  .first-view__title-main-inner {
    padding: 4px 12px !important;
    margin: 0 0 8px !important;
  }

  .first-view__title-main-text {
    font-size: 27px !important;
    letter-spacing: 1.5px !important;
    line-height: 1.45 !important;
  }

  .first-view__title-sub {
    font-size: 16px !important;
    letter-spacing: 0.5px !important;
    line-height: 1.75 !important;
    margin: 12px 0 16px !important;
  }

  .first-view__title-en {
    font-size: 17px !important;
    line-height: 1.4 !important;
    margin: 0 0 18px !important;
  }

  /* 事業者ページのキャッチコピーも同様に */
  .first-view__title-main-text--employer {
    font-size: 25px !important;
    letter-spacing: 1px !important;
    line-height: 1.45 !important;
  }

  .first-view__title-sub--employer {
    font-size: 16px !important;
    letter-spacing: 0.5px !important;
    line-height: 1.75 !important;
    margin: 12px 0 16px !important;
  }

  .first-view__title-en--employer {
    font-size: 22px !important;
    line-height: 1.3 !important;
  }

  /* PCで右側に置かれる装飾画像はモバイルでは隠す（重なりの原因） */
  .first-view__title-main-inner:nth-of-type(2)::after { display: none !important; }

  /* 見出し下の説明文 */
  .first-view__detail-title {
    font-size: 17px !important;
    line-height: 1.6 !important;
  }

  .first-view__detail-text {
    font-size: 13px !important;
    line-height: 1.8 !important;
  }

}

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

  /* --- 装飾英文の視認性 ---
     PCでは背景画像の上に白文字で載るが、モバイルでは背景が
     クリーム色になり白文字がほぼ読めなくなるため色を変える --- */
  .first-view__title-en {
    color: rgba(120, 96, 72, 0.5) !important;
    -webkit-text-fill-color: rgba(120, 96, 72, 0.5) !important;
  }

}

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

  /* --- 3. セクション見出し ---
     PC用の固定幅560px・高さ200pxの楕円がそのまま残り、
     中の文字が画面右端からはみ出していた --- */
  .listing__section-title,
  [class*="__section-title"] {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    padding: 22px 16px !important;
    border-radius: 24px !important;
    gap: 6px !important;
    margin-bottom: 18px !important;
  }

  .listing__section-title-main {
    font-size: 24px !important;
    letter-spacing: 1px !important;
    line-height: 1.35 !important;
    text-align: center;
  }

  .listing__section-title-sub {
    font-size: 15px !important;
    letter-spacing: 0.5px !important;
    line-height: 1.5 !important;
    text-align: center;
  }

  /* --- 4. 事業者ページのバッジ重なり ---
     「厚労省DB連携済み」が絶対配置(top:148px right:0)のまま残り、
     「順次拡大中」ボタンの上に覆いかぶさっていた --- */
  .first-view__db {
    position: static !important;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    padding: 10px 14px !important;
    border-radius: 12px !important;
    margin: 14px 0 0 !important;
    display: inline-block;
  }

  .first-view__db-text { gap: 4px !important; }
  .first-view__db-first { font-size: 13px !important; line-height: 1.4 !important; letter-spacing: 0.3px !important; }
  .first-view__db-second { font-size: 11px !important; line-height: 1.4 !important; letter-spacing: 0.3px !important; }

  .first-view__catch-accent { padding: 6px 14px !important; }
  .first-view__catch-accent-text { font-size: 13px !important; line-height: 1.3 !important; }

}

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

  /* --- 5. 会員登録フォーム ---
     入力欄のコンテナが横並びのままで幅が118pxまで潰れ、
     職種の選択肢が読みづらくなっていた --- */
  .register-job-seeker__input,
  .register-employer__input,
  [class*="__step-input"] {
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    gap: 10px !important;
  }

  .register-job-seeker__options-list,
  .register-job-seeker__options-item,
  .register-job-seeker__options,
  .register-job-seeker__options-category,
  .register-job-seeker__options-category-title {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* 選択肢の行は左右いっぱいに、矢印は右端へ */
  .register-job-seeker__options-category {
    justify-content: space-between !important;
    align-items: center !important;
    gap: 10px !important;
  }

  .register-job-seeker__options-category-title {
    flex: 1 1 auto !important;
    width: auto !important;
  }

  /* フォーム全体を画面幅いっぱいに */
  .register-job-seeker__form,
  .register-employer__form {
    width: 100% !important;
    max-width: 100% !important;
  }

  .register-job-seeker__inner,
  .register-employer__inner {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  /* 入力欄はタップしやすい高さを確保（iOSの自動ズーム防止に16px以上） */
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="password"],
  input[type="number"],
  input[type="date"],
  select,
  textarea {
    font-size: 16px !important;
    max-width: 100% !important;
  }

  /* --- 6. 余白の調整 ---
     PC用の大きな余白がそのまま残っている箇所を圧縮 --- */
  .first-view__lead { margin-bottom: 20px !important; }
  .first-view__head { margin-bottom: 20px !important; }
  .first-view__summary { margin-bottom: 20px !important; }

  /* --- 7. 画像のはみ出し防止（全体） --- */
  img,
  video,
  iframe,
  table {
    max-width: 100% !important;
  }

}

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

  /* --- 8. アイコンの巨大化を防ぐ ---
     包括ルール [class*="__input"] 等が width:100% を強制するため、
     クラス名に input / submit / button を含むアイコン画像まで
     入力欄いっぱいに引き伸ばされていた（検索バーの表示崩れの原因） --- */
  /* 拡大されてしまう対象を、包括ルールに該当するものだけに限定する。
     （width:auto を全アイコンに広げるとSVGが既定300pxで描画され逆効果） */
  img[class*="__input-icon"],
  img[class*="__submit-icon"],
  img[class*="__button-icon"] {
    max-width: 100% !important;
  }

  img.first-view__input-icon,
  img.listing__input-icon {
    width: 18px !important;
    height: auto !important;
    left: 16px !important;
  }

  img.first-view__submit-icon { width: 20px !important; height: 20px !important; }
  img.first-view__search-icon,
  img.listing__search-icon { width: 17px !important; height: auto !important; }
  .header-cta__icon { width: 18px !important; height: 18px !important; }

  /* 検索欄の左パディングをアイコン分だけ確保 */
  .first-view__input-parameter,
  .listing__input-parameter { padding-left: 44px !important; }

  /* --- 9. タップ領域の確保 ---
     指で押しやすいよう主要なリンク・ボタンの高さを44px以上に --- */
  .footer-main__menu-link {
    display: block;
    padding: 11px 0 !important;
    line-height: 1.4 !important;
  }

  .footer-main__sns-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
  }

  .footer-main__logo-link { display: inline-block; padding: 6px 0; }
  .header-logo__link { display: inline-flex; align-items: center; min-height: 44px; }

  .listing__post-link,
  .columns__article-link {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 44px !important;
  }

  .first-view__submit,
  .listing__submit {
    min-height: 52px !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .first-view__submit-text,
  .listing__submit-text { min-height: 24px; }

  .login-job-seeker__submit-link,
  .login-employer__submit-link,
  [class*="__addition-link"] {
    display: inline-block;
    padding: 10px 0 !important;
  }

  /* チェックボックス・ラジオのラベルは指で押せる高さに */
  .register-job-seeker__options-option-text,
  [class*="__options-option-text"] {
    display: block;
    padding: 10px 0 !important;
    line-height: 1.4 !important;
  }

}

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

  /* --- 10. 見出しの字間・行間 ---
     フォントサイズだけ縮小され、字間(6〜7px)と行間(50〜60px)が
     PC用のまま残っていたため、見出しが不自然に間延びしていた --- */
  h1[class*="__title"],
  h2[class*="__title"],
  h3[class*="__title"],
  [class*="__section-title"],
  [class*="__head-title"],
  [class*="__section-title-main"],
  [class*="__section-title-sub"] {
    letter-spacing: 1px !important;
    line-height: 1.45 !important;
  }

  /* --- 11. 右下の固定ボタンが本文に重なるのを防ぐ --- */
  body { padding-bottom: 72px; }

  .header__employer-link {
    padding: 10px 15px !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18) !important;
  }

  .header__employer-link-text { font-size: 12px !important; line-height: 1.3 !important; }

}

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

  /* --- 12. 事業者ページのCTAボタンを押しやすい高さに --- */
  .first-view__cta-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 48px !important;
    padding: 12px 18px !important;
    text-align: center;
  }

}

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

  /* --- 13. マイページのサイドバーを横スクロールタブに ---
     スマホではサイドバーが縦393pxの塊となって最初の1画面を占有し、
     本文にたどり着くまで大きくスクロールが必要だった。
     横並びのタブに変更して縦の占有を約56pxまで圧縮する。
     求職者・事業者で同じクラスを使っているため両方に適用される。 --- */

  .profile-job-seeker__inner,
  [class*="-job-seeker__inner"],
  [class*="-employer__inner"] {
    flex-direction: column !important;
    gap: 14px !important;
  }

  .common-job-seeker__sidebar {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    order: -1;
  }

  .common-job-seeker__sidebar-list {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 6px !important;
    padding: 0 0 6px !important;
    margin: 0 !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .common-job-seeker__sidebar-list::-webkit-scrollbar { display: none; }

  .common-job-seeker__sidebar-item {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    border: 0 !important;
    margin: 0 !important;
    list-style: none;
  }

  .common-job-seeker__sidebar-link {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: auto !important;
    height: auto !important;
    min-height: 40px !important;
    padding: 9px 15px !important;
    border: 1px solid #E3ECEF !important;
    border-radius: 9999px !important;
    background-color: #FFF !important;
    white-space: nowrap !important;
  }

  .common-job-seeker__sidebar-link-text {
    font-size: 13px !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
  }

  .common-job-seeker__sidebar-item--current .common-job-seeker__sidebar-link {
    border-color: #72C9B9 !important;
    background-color: #72C9B9 !important;
  }

  .common-job-seeker__sidebar-item--current .common-job-seeker__sidebar-link-text {
    color: #FFF !important;
    font-weight: 600 !important;
  }

  [class*="-job-seeker__main"],
  [class*="-employer__main"] {
    width: 100% !important;
    max-width: 100% !important;
  }

}

/* --- 14. 1pxの横スクロールを解消 ---
   装飾用の背景パターン(.step__bg-pattern 等)が画面右端を1pxはみ出し、
   全幅で横スクロールバーが出ていた。
   body の overflow-x:hidden だけでは documentElement 側に残るため、
   html にも指定する。（メディアクエリ外＝全幅に適用） */
html {
  overflow-x: hidden;
  max-width: 100%;
}

/* 装飾パターンを親要素で切り取る。
   .first-view__bg-pattern は right:-1px、.step__bg-pattern は
   親の外まで配置されており、これが横スクロールの発生源だった。
   装飾なので、はみ出す分は親側でクリップしてよい。 */
.first-view,
.first-view__bg,
.step,
.step__bg,
.contact,
.contact__bg,
.features,
.columns,
.support {
  overflow-x: hidden;
}

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

  /* --- 15. マイページ上部の余白 ---
     PC用の padding-top:152px がそのまま残り、
     スマホでは画面の1/5が空白になっていた --- */
  [class*="-job-seeker__inner"],
  [class*="-employer__inner"] {
    padding-top: 20px !important;
    padding-bottom: 28px !important;
  }

}

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

  /* --- 16. 事業者側のサイドバーも横スクロールタブに ---
     求職者側は common-job-seeker__sidebar だが、事業者側は
     common-employer__sidebar という別クラスだった。
     各項目が flex:1 1 0% で均等分割され幅58pxまで潰れ、
     「応募者管理」が縦書きのように折り返していた。 --- */

  .common-employer__sidebar {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .common-employer__sidebar-list {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 6px !important;
    padding: 0 0 6px !important;
    margin: 0 !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .common-employer__sidebar-list::-webkit-scrollbar { display: none; }

  .common-employer__sidebar-item {
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    border: 0 !important;
    margin: 0 !important;
    list-style: none;
  }

  .common-employer__sidebar-link {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: auto !important;
    height: auto !important;
    min-height: 40px !important;
    padding: 9px 15px !important;
    border: 1px solid #E3ECEF !important;
    border-radius: 9999px !important;
    background-color: #FFF !important;
    white-space: nowrap !important;
  }

  .common-employer__sidebar-link-text,
  .common-employer__sidebar-link {
    font-size: 13px !important;
    line-height: 1.3 !important;
    white-space: nowrap !important;
  }

  .common-employer__sidebar-item--current .common-employer__sidebar-link {
    border-color: #1F6F5C !important;
    background-color: #1F6F5C !important;
    color: #FFF !important;
  }

  .common-employer__sidebar-item--current .common-employer__sidebar-link-text {
    color: #FFF !important;
    font-weight: 600 !important;
  }

}

/* --------------------------------------------------------------
   17. サイドバー横スクロールの折り返し防止（768px 以下）
   既存の  body [class][class] { flex-wrap: wrap !important; }  が
   詳細度で勝ってしまい、タブが 2 段に折り返されるため上書きする。
   -------------------------------------------------------------- */
@media screen and (max-width: 768px) {
  body ul.common-employer__sidebar-list.common-employer__sidebar-list,
  body ul.common-job-seeker__sidebar-list.common-job-seeker__sidebar-list {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
}

/* --------------------------------------------------------------
   18. モバイル：入力欄の潰れ／フッターの重なり／ボタン文字あふれ
   -------------------------------------------------------------- */
@media screen and (max-width: 768px) {

  /* 18-1 事業者会員登録・パスワード発行/再設定の入力欄が 34〜77px に潰れる。
     ブロック5 は求職者側（register-job-seeker）のみ対応していたため、
     事業者側と password-reset 系は未対応のまま残っていた。 */
  .register-employer__input,
  .password-reset-employer__input,
  .password-reset-job-seeker__input {
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 6px !important;
  }
  .register-employer__floating,
  .register-employer__control,
  .password-reset-employer__floating,
  .password-reset-employer__control,
  .password-reset-job-seeker__floating,
  .password-reset-job-seeker__control {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    font-size: 16px !important;
  }
  .register-employer__label,
  .password-reset-employer__label,
  .password-reset-job-seeker__label {
    width: 100% !important;
    justify-content: flex-start !important;
  }

  /* 18-2 .footer{top:-78px} によりフッターの装飾画像が本文に 78px 食い込み、
     ボタンの文字に白い線が重なって見える。装飾画像は 1919x974px で
     background-size:contain のため 375px 幅では高さ 190px まで縮む。
     PC(1440px) での比率 78/731 = 約10.7% に合わせて -24px に緩和する。 */
  .footer { top: -24px !important; }

  /* 18-3 white-space:pre のためボタン内の文字が枠からはみ出す
     （例：「パスワードの設定メールを送信する」） */
  [class*="__button"],
  [class*="__submit"],
  input[type="submit"],
  button {
    white-space: normal !important;
    word-break: break-word !important;
  }
}

/* --------------------------------------------------------------
   19. 履歴書・職務経歴書ページのPDFリンク（2026-08-22 追加）
   既存の -detail-text はプレーンテキスト用のため、リンクに見えるよう上書きする。
   -------------------------------------------------------------- */
a.resumes-job-seeker__information-detail-text {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 22px;
  border: 2px solid #1F6F5C;
  border-radius: 10000px;
  color: #1F6F5C;
  font-weight: 700;
  text-decoration: none;
  transition: opacity .2s;
}
a.resumes-job-seeker__information-detail-text:hover { opacity: .75; }
@media screen and (max-width: 768px) {
  a.resumes-job-seeker__information-detail-text {
    width: 100%;
    justify-content: center;
    box-sizing: border-box;
  }
}

/* --------------------------------------------------------------
   20. 事業者アカウント設定の入力欄が潰れる（2026-08-22 追加）
   ブロック18 では register-employer / password-reset-* のみ対応しており、
   account-employer 系が残っていた。入力欄58px・ボタン58x322px になる。
   -------------------------------------------------------------- */
@media screen and (max-width: 768px) {
  .account-employer__input {
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 6px !important;
  }
  .account-employer__floating,
  .account-employer__control,
  .account-employer__button {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    font-size: 16px !important;
  }
  .account-employer__label {
    width: 100% !important;
    justify-content: flex-start !important;
  }
  .account-employer__button {
    height: auto !important;
    min-height: 52px !important;
  }
}
