@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;700&family=Montserrat:wght@300;400;500;700&display=swap");
.inter {
  font-family: 'Inter', sans-serif; }

.montserrat {
  font-family: 'Montserrat', sans-serif; }

.corp_logo {
  font-family: "corporate-logo-ver2", sans-serif; }

.linelp_wrapper {
  max-width: 768px;
  margin: 0 auto;
  padding: 0;
  font-family: "source-han-sans-japanese", sans-serif; }
  .linelp_wrapper .block {
    padding: 0 20px; }

.sec1 {
  position: relative;
  z-index: 1; }
  .sec1 #top_img {
    position: relative; }
    .sec1 #top_img a {
      display: block;
      width: 100%;
      height: calc(100vw * 0.15);
      position: absolute;
      bottom: 5%; }
      @media screen and (min-width: 768px) {
        .sec1 #top_img a {
          height: 120px; } }

.sec2 {
  background-color: #1C996D;
  margin-top: -10%;
  padding-bottom: 80px;
  background-image: url("../img/bg_sec2.svg");
  background-repeat: no-repeat;
  background-size: 100% auto;
  background-position: center bottom; }
  @media screen and (min-width: 768px) {
    .sec2 {
      padding-bottom: 180px; } }
  .sec2 ul {
    list-style: none;
    margin: 0;
    padding: 10px 0 0;
    width: 100%; }
    .sec2 ul li {
      margin-bottom: 30px;
      position: relative; }
      .sec2 ul li:last-child .step_body::after {
        display: none; }
      @media screen and (min-width: 768px) {
        .sec2 ul li {
          margin-bottom: 40px; } }
  .sec2 .step_heading {
    background-color: #A1E097;
    background-image: url("../img/step_heading.svg");
    background-repeat: no-repeat;
    background-size: cover;
    border-radius: 6px 6px 0 0;
    font-family: 'Montserrat', sans-serif;
    font-size: 26px;
    font-weight: bold;
    line-height: 1;
    color: #FFFFFF;
    text-align: center;
    padding: .5em; }
    @media screen and (min-width: 768px) {
      .sec2 .step_heading {
        font-size: 32px; } }
  .sec2 .step_body {
    background-color: #FFFFFF;
    border-radius: 0 0 6px 6px;
    padding: 24px;
    text-align: center;
    position: relative; }
    .sec2 .step_body::after {
      content: "";
      display: block;
      width: 0;
      height: 0;
      border-style: solid;
      border-width: 20px 24px 0 24px;
      border-color: #ffffff transparent transparent transparent;
      position: absolute;
      top: 100%;
      left: 50%;
      transform: translateX(-50%); }
    .sec2 .step_body ._title {
      font-family: "corporate-logo-ver2", sans-serif;
      font-size: 20px;
      font-weight: bold;
      color: #184035;
      margin-bottom: 24px; }
      @media screen and (min-width: 414px) {
        .sec2 .step_body ._title {
          font-size: 24px; } }
      @media screen and (min-width: 768px) {
        .sec2 .step_body ._title {
          font-size: 32px; } }
    .sec2 .step_body a {
      display: block;
      margin: 0 auto; }
      @media screen and (min-width: 768px) {
        .sec2 .step_body a {
          max-width: 520px; } }
    .sec2 .step_body p {
      font-size: 14px;
      color: #5D7972; }
      @media screen and (min-width: 414px) {
        .sec2 .step_body p {
          font-size: 16px; } }
      @media screen and (min-width: 768px) {
        .sec2 .step_body p {
          font-size: 18px; } }
  .sec2 .btn_area a {
    display: block;
    max-width: 520px;
    margin: 0 auto; }

.sec3 {
  margin-top: calc(100vw * (-0.12)); }
  @media screen and (min-width: 768px) {
    .sec3 {
      margin-top: calc(768px * (-0.12)); } }
  .sec3 .block {
    background-color: #F1EEE7; }
  .sec3 ul {
    list-style: none;
    margin: 0;
    padding: 20px 0;
    width: 100%; }
    .sec3 ul li {
      margin-bottom: 30px; }
      @media screen and (min-width: 768px) {
        .sec3 ul li {
          margin-bottom: 40px; } }
      .sec3 ul li a {
        text-decoration: none;
        color: #184035; }
  .sec3 .cam_heading {
    background: url("../img/cam_heading.svg") no-repeat;
    background-size: cover;
    font-family: "corporate-logo-ver2", sans-serif;
    font-size: 5vw;
    font-weight: bold;
    text-align: center;
    aspect-ratio: 462 / 93;
    padding-top: 4%;
    position: relative;
    z-index: 1; }
    @media screen and (min-width: 768px) {
      .sec3 .cam_heading {
        font-size: 36px; } }
  .sec3 .cam_body {
    background-color: #FFFFFF;
    width: 96%;
    margin: -26px auto 0;
    padding: 40px 24px 24px; }
    @media screen and (min-width: 768px) {
      .sec3 .cam_body {
        margin: -46px auto 0;
        padding: 60px 24px 24px; } }
    .sec3 .cam_body .tag {
      margin-top: 20px; }
      .sec3 .cam_body .tag span {
        display: inline-block;
        font-size: 16px;
        font-weight: bold;
        background-color: #F1EEE7;
        padding: .4em 1em;
        text-align: center; }
        @media screen and (min-width: 768px) {
          .sec3 .cam_body .tag span {
            font-size: 20px; } }
    .sec3 .cam_body ._title {
      font-size: 20px;
      font-weight: bold;
      line-height: 1.6;
      color: #1C996D;
      padding: 1em 0; }
      @media screen and (min-width: 768px) {
        .sec3 .cam_body ._title {
          font-size: 24px; } }
    .sec3 .cam_body p {
      font-size: 14px;
      color: #444444; }
      @media screen and (min-width: 768px) {
        .sec3 .cam_body p {
          font-size: 18px; } }
      .sec3 .cam_body p span.orange {
        color: #FB9413;
        font-weight: bold; }
      .sec3 .cam_body p strong.highlight {
        font-size: 1.4em;
        font-weight: bold;
        background: linear-gradient(transparent 60%, #F2FF00 60%); }
    .sec3 .cam_body .cam_btn {
      margin-top: 28px;
      text-align: center; }
      .sec3 .cam_body .cam_btn img {
        max-width: 100%; }

footer {
  background-color: #F1EEE7;
  background-image: url("../img/bg_footer.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center top;
  font-family: "corporate-logo-ver2", sans-serif; }
  footer .footer_btn_area {
    font-size: 25px;
    font-weight: bold;
    color: #FFFFFF;
    text-align: center;
    padding: 60px 0 40px; }
    @media screen and (min-width: 768px) {
      footer .footer_btn_area {
        font-size: 36px; } }
    footer .footer_btn_area a {
      display: block;
      max-width: 520px;
      margin: 30px auto 0; }
  footer .copy {
    background-color: #FFFFFF;
    font-size: 8px;
    font-weight: bold;
    text-align: center;
    color: #637062;
    padding: .5em; }

.sec3 #cam2 .cam_body .tag {
  display: flex;
  flex-direction: column;
  gap: 10px 0;
}
.sec3 #cam2 .cam_body .tag span {
  white-space: nowrap;
}
.sec3 #cam2 .cam_body .tag small {
  font-size: 12px;
}
