@charset "UTF-8";
html {
  scroll-behavior: smooth;
  background: linear-gradient(to right, #8ac29a 50%, #eebb78 50%); }

body {
  background: transparent; }

a:active {
  color: unset; }

a:visited {
  color: unset; }

a:focus {
  outline: none; }

a {
  text-decoration: none; }

.sp {
  display: none; }

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0; }

body {
  font-family: "M PLUS Rounded 1c", "ヒラギノ丸ゴ Pro W4", "ヒラギノ丸ゴ Pro", "Hiragino Maru Gothic Pro", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "HG丸ｺﾞｼｯｸM-PRO", "HGMaruGothicMPRO";
  margin: 0;
  padding: 0; }

header {
  overflow: hidden; }
  header .mv {
    position: relative;
    width: 100%;
    aspect-ratio: 1366 / 791;
    overflow: hidden; }
    header .mv::before {
      content: "";
      position: absolute;
      top: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 100%;
      height: calc(592 / 791 * 100%);
      background: url("./imgs/mv.jpg") no-repeat center/cover;
      z-index: 1; }
    header .mv h1 {
      position: absolute;
      bottom: 0;
      left: 50%;
      transform: translateX(-50%);
      width: 90%;
      z-index: 2; }
      header .mv h1 img {
        width: 100%;
        height: auto;
        object-fit: contain;
        aspect-ratio: 1366 / 450; }
  header nav {
    width: 100%;
    background-color: #fff; }
    header nav ul {
      display: flex;
      justify-content: center;
      padding: 5px 0;
      margin: 2em 0 0;
      gap: 10%; }
      header nav ul li {
        list-style: none; }
        header nav ul li a {
          font-size: clamp(16px, 2vw, 38px);
          font-weight: 600;
          color: #333; }
          header nav ul li a:hover {
            color: #e18c82; }

main .lead {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  margin-bottom: -5vw;
  padding-bottom: 55px;
  background: url("./imgs/read-bg.jpg") no-repeat center/cover;
  aspect-ratio: 2400 / 1007; }
  main .lead .contents {
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 90%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 0; }
    main .lead .contents p {
      margin: 0;
      color: #333;
      font-size: clamp(14px, 1.4vw, 18px);
      font-weight: 500;
      line-height: 1.9;
      text-align: center; }
main .flyer .contents {
  box-sizing: border-box;
  width: 90%;
  max-width: 500px;
  margin: 0 auto;
  margin-top: 50px;
  padding: 1.5em;
  background: rgba(255, 255, 255, 0.9);
  border-radius: 16px;
  box-shadow: 0 18px 40px rgba(24, 32, 39, 0.08);
  text-align: center;
  overflow: hidden; }
  main .flyer .contents h2 {
    font-size: clamp(20px, 4.5vw, 32px);
    margin: 0;
    padding-bottom: 16px;
    color: #2b2b2b;
    text-align: center; }
  main .flyer .contents .img-wrap {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center; }
    main .flyer .contents .img-wrap img {
      display: block;
      width: 100%;
      height: auto;
      max-height: 100%;
      object-fit: contain;
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06); }
  main .flyer .contents .apply-form {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: fit-content;
    margin: 18px auto 0;
    background: linear-gradient(90deg, #ff7b85 0%, #ff5b6b 100%);
    color: #fff;
    padding: 12px 22px;
    border-radius: 999px;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 8px 20px rgba(255, 95, 110, 0.16);
    transition: transform .12s ease, box-shadow .12s ease; }
    main .flyer .contents .apply-form:hover {
      transform: translateY(-3px);
      box-shadow: 0 14px 30px rgba(255, 95, 110, 0.18); }
    main .flyer .contents .apply-form::after {
      content: "";
      display: inline-block;
      width: 1em;
      height: 1em;
      background: url("./imgs/external-icon.svg") no-repeat center/contain;
      flex-shrink: 0; }
main #section1 .contents {
  width: 90%;
  max-width: 1080px;
  margin: 0 auto; }
  main #section1 .contents h2 img {
    filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.4)); }
main #section2 {
  position: relative;
  z-index: 2;
  margin: 0 0 50px; }
  main #section2 h2 {
    position: relative; }
    main #section2 h2 .title-bg {
      width: 100%;
      height: auto;
      z-index: 0; }
    main #section2 h2 .title-text {
      position: absolute;
      width: auto;
      height: clamp(52px, 5vw, 68px);
      max-width: 90%;
      margin: 0 auto;
      z-index: 1;
      top: 65%;
      left: 50%;
      transform: translate(-50%, -50%); }
  main #section2 .contents {
    background-color: #ffffe6; }
    main #section2 .contents .contents-inner-wrap {
      width: 90%;
      max-width: 1080px;
      margin: 0 auto; }
      main #section2 .contents .contents-inner-wrap h3 {
        font-size: clamp(20px, 5vw, 50px);
        text-align: center;
        padding: 20px 0;
        color: #323232; }
      main #section2 .contents .contents-inner-wrap picture {
        padding: 50px 0; }
main #section3 {
  padding: 100px 0 30px; }
  main #section3 .contents {
    width: 90%;
    max-width: 1080px;
    margin: 0 auto; }
    main #section3 .contents h2 img {
      filter: drop-shadow(0 4px 4px rgba(0, 0, 0, 0.4)); }
    main #section3 .contents .boxes {
      margin-top: 50px;
      display: flex;
      flex-direction: column;
      gap: 100px; }
      main #section3 .contents .boxes .box {
        position: relative;
        width: 100%;
        background-color: #fff;
        border-radius: 20px;
        padding: 70px 2% 35px 2%; }
        main #section3 .contents .boxes .box.link-none {
          padding-bottom: 20px; }
        main #section3 .contents .boxes .box h3 {
          position: absolute;
          z-index: 1;
          width: 100%;
          left: 0; }
          main #section3 .contents .boxes .box h3 img {
            display: block; }
        main #section3 .contents .boxes .box .cards {
          position: relative;
          display: flex;
          gap: 3%; }
          main #section3 .contents .boxes .box .cards .card {
            position: relative;
            display: flex;
            flex-direction: column;
            flex: 1;
            padding: 15px 2%;
            border-radius: 15px;
            background-color: #e8f4ec; }
            main #section3 .contents .boxes .box .cards .card h4 {
              color: #5a9e6c;
              font-size: clamp(16px, 4vw, 28px);
              text-align: center;
              margin: 0.5em 0; }
            main #section3 .contents .boxes .box .cards .card > p {
              text-align: justify; }
            main #section3 .contents .boxes .box .cards .card .flex-title {
              display: flex;
              align-items: center;
              justify-content: center;
              gap: 15px;
              margin: 1em 0 0 0; }
              main #section3 .contents .boxes .box .cards .card .flex-title img {
                flex: 1;
                max-height: 120px;
                object-fit: contain; }
              main #section3 .contents .boxes .box .cards .card .flex-title h5 {
                margin: 0;
                font-size: clamp(24px, 2.2vw, 32px);
                color: #5a9e6c;
                line-height: 1em;
                flex-grow: 1;
                flex: 4; }
                main #section3 .contents .boxes .box .cards .card .flex-title h5 span {
                  font-size: clamp(16px, 2vw, 24px); }
            main #section3 .contents .boxes .box .cards .card.mie {
              background-color: #fff6e6; }
              main #section3 .contents .boxes .box .cards .card.mie p.icon {
                background-color: #d4a04a; }
              main #section3 .contents .boxes .box .cards .card.mie h4 {
                color: #d4a04a; }
              main #section3 .contents .boxes .box .cards .card.mie .flex-title h5 {
                color: #d4a04a; }
              main #section3 .contents .boxes .box .cards .card.mie > a {
                background-color: #d4a04a; }
                main #section3 .contents .boxes .box .cards .card.mie > a:hover {
                  background-color: #c08a30; }
              main #section3 .contents .boxes .box .cards .card.mie ul li a {
                color: #d4a04a;
                background-color: #fffaf0; }
                main #section3 .contents .boxes .box .cards .card.mie ul li a:hover {
                  background-color: #d4a04a;
                  color: #fff; }
            main #section3 .contents .boxes .box .cards .card p.icon {
              width: 100%;
              padding: 0.3em 1em;
              font-size: clamp(16px, 2.5vw, 24px);
              font-weight: 600;
              text-align: center;
              background-color: #5a9e6c;
              border: solid 5px #fff;
              border-radius: 0.8em;
              margin-bottom: 0.5em;
              color: #fff; }
            main #section3 .contents .boxes .box .cards .card > a {
              display: flex;
              position: relative;
              justify-content: center;
              align-items: center;
              width: 80%;
              margin: auto auto 0;
              background-color: #5a9e6c;
              border-radius: 999px;
              color: #fff;
              font-size: 18px;
              font-weight: bold;
              text-align: center;
              flex-shrink: 0;
              height: 50px;
              padding: 10px 1em;
              top: 25px;
              transition: .2s; }
              main #section3 .contents .boxes .box .cards .card > a:hover {
                background-color: #4a8558; }
            main #section3 .contents .boxes .box .cards .card ul {
              margin: 0;
              padding: 0;
              list-style: none; }
              main #section3 .contents .boxes .box .cards .card ul li {
                display: flex;
                flex-direction: column;
                gap: 0.5em; }
                main #section3 .contents .boxes .box .cards .card ul li a {
                  position: relative;
                  display: flex;
                  justify-content: space-between;
                  align-items: center;
                  color: #5a9e6c;
                  font-weight: 600;
                  font-size: 1em;
                  text-decoration: none;
                  transition: background-color 0.2s, color 0.2s;
                  background: #f4faf6;
                  border-radius: 12px;
                  box-shadow: 0 2px 8px rgba(90, 158, 108, 0.08);
                  margin-bottom: 1em;
                  padding: 0.5em 1em 0.5em 1em; }
                  main #section3 .contents .boxes .box .cards .card ul li a:hover {
                    background-color: #4a8558;
                    color: #fff; }
                  main #section3 .contents .boxes .box .cards .card ul li a::after {
                    content: "";
                    display: block;
                    flex-shrink: 0;
                    height: 1em;
                    width: 1em;
                    background-color: currentColor;
                    -webkit-mask: url("./imgs/external-icon.svg") no-repeat center/contain;
                    mask: url("./imgs/external-icon.svg") no-repeat center/contain; }
            main #section3 .contents .boxes .box .cards .card h5 {
              margin: 2em 0 1em 0;
              font-size: 1.2em;
              font-weight: bold;
              color: #5a9e6c; }
          main #section3 .contents .boxes .box .cards .vs {
            position: absolute;
            display: block;
            width: 10%;
            z-index: 1;
            right: 50%;
            top: 35%;
            transform: translate(50%, -70%); }

footer {
  background-color: #ffffe6; }
  footer .contents {
    width: 90%;
    max-width: 1080px;
    margin: 0 auto;
    padding: 20px 0; }
    footer .contents .info {
      display: flex;
      justify-content: space-around;
      align-items: center;
      gap: 2em; }
      footer .contents .info p {
        margin: 5px 0;
        font-size: clamp(12px, 2vw, 16px); }
        footer .contents .info p strong {
          font-weight: 400;
          font-size: clamp(16px, 2vw, 20px); }
      footer .contents .info a {
        display: inline-flex;
        align-items: center;
        gap: 0.6em;
        background-color: #5a9e6c;
        color: #fff;
        padding: 10px 1.1em;
        border-radius: 999px;
        font-size: clamp(14px, 2vw, 18px);
        width: auto;
        box-shadow: 0 8px 18px rgba(90, 158, 108, 0.15);
        transition: transform .12s ease, box-shadow .12s ease, opacity .12s ease;
        text-decoration: none; }
        footer .contents .info a.mie {
          background-color: #d4a04a;
          box-shadow: 0 8px 18px rgba(212, 160, 74, 0.12); }
        footer .contents .info a::after {
          content: "";
          display: inline-block;
          width: 1em;
          height: 1em;
          background: url("./imgs/external-icon.svg") no-repeat center/contain;
          flex-shrink: 0;
          opacity: 0.95; }
        footer .contents .info a:hover {
          transform: translateY(-3px);
          box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
          opacity: 1; }
        footer .contents .info a:focus {
          outline: none;
          box-shadow: 0 0 0 4px rgba(90, 158, 108, 0.14); }
    footer .contents .copyright {
      text-align: center;
      font-size: clamp(12px, 2vw, 16px);
      margin-top: 30px; }

@media screen and (max-width: 767px) {
  .pc {
    display: none; }

  .sp {
    display: block; }

  main {
    overflow: hidden; }
    main .lead {
      aspect-ratio: auto;
      min-height: 0;
      margin-bottom: -50px;
      padding: 2.5em 0 50px;
      background: url("./imgs/read-bg.jpg") no-repeat center/cover; }
      main .lead .contents {
        justify-content: center;
        padding: 0 0 20px; }
        main .lead .contents p {
          width: 100%;
          max-width: 100%;
          padding: 0;
          background: none;
          border-radius: 0;
          font-size: clamp(9px, 2.7vw, 12px);
          line-height: 1.85;
          white-space: nowrap; }
    main .flyer .contents {
      margin-top: 30px; }
    main #section2 {
      margin-top: 0; }
      main #section2 h2 .title-text {
        height: clamp(34px, 9vw, 42px); }
      main #section2 .contents .contents-inner-wrap picture {
        padding: 0 0 50px 0; }
    main #section3 {
      padding: 30px 0 30px; }
      main #section3 .contents .boxes {
        margin-top: 50px;
        display: flex;
        flex-direction: column;
        gap: 70px; }
        main #section3 .contents .boxes .box {
          position: relative;
          width: 100%;
          background-color: #fff;
          border-radius: 20px;
          padding: 2em 2% 35px 2%; }
          main #section3 .contents .boxes .box.link-none {
            padding-bottom: 20px; }
          main #section3 .contents .boxes .box h3 {
            position: absolute;
            z-index: 1;
            width: 100%;
            scale: 1.1; }
            main #section3 .contents .boxes .box h3 img {
              display: block; }
          main #section3 .contents .boxes .box .cards {
            flex-direction: column;
            row-gap: 40px; }
            main #section3 .contents .boxes .box .cards .card > a {
              margin: 0 auto;
              top: 35px; }
            main #section3 .contents .boxes .box .cards .card h4 {
              font-size: clamp(18px, 6vw, 24px); }
            main #section3 .contents .boxes .box .cards .card .flex-title h5 {
              margin: 0;
              font-size: clamp(18px, 4vw, 24px);
              color: #5a9e6c;
              line-height: 1em;
              flex-grow: 1;
              flex: 4; }
              main #section3 .contents .boxes .box .cards .card .flex-title h5 span {
                font-size: clamp(16px, 2vw, 18px); }
            main #section3 .contents .boxes .box .cards .card.mie .flex-title h5 {
              color: #d4a04a; }
            main #section3 .contents .boxes .box .cards .card.mie .abs-icon {
              left: unset;
              top: -20px;
              right: -20px; }
            main #section3 .contents .boxes .box .cards .card .abs-icon {
              position: absolute;
              width: 60px;
              height: 60px;
              left: -20px;
              top: -20px; }
            main #section3 .contents .boxes .box .cards .vs {
              position: unset;
              display: block;
              width: 20%;
              margin: 0 auto;
              max-width: 80px;
              z-index: 1;
              right: 50%;
              top: 50%;
              transform: unset; }
              main #section3 .contents .boxes .box .cards .vs.pc {
                display: none; }
              main #section3 .contents .boxes .box .cards .vs.sp {
                display: block; }
          main #section3 .contents .boxes .box.link .vs {
            margin-top: 1em; }

  footer .contents .info {
    flex-direction: column;
    gap: 1em;
    align-items: flex-start; } }

/*# sourceMappingURL=style.css.map */
