@charset "UTF-8";
/**** lity **********************/
body .lity {
  background: rgba(255, 255, 255, 0.8);
}

.lity-content {
  padding: 4% 3%;
  background-color: #ffffff;
}

.lity-image img {
  height: 85vh;

  -o-object-fit: contain;
  object-fit: contain;
}
@media (max-width: 769px) {
  .lity-image img {
    height: auto;
  }
}

.lity {
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}

/* ///////////////////////////// */
@font-face {
  font-weight: normal;
  font-style: normal;
  font-family: "LINE SEED";
  src: url("../font/LINESeedJP_OTF_Rg.woff") format("woff"),
    url("../font/LINESeedJP_OTF_Rg.woff2") format("woff2");
}
@font-face {
  font-weight: bold;
  font-style: normal;
  font-family: "LINE SEED";
  src: url("../font/LINESeedJP_OTF_Bd.woff") format("woff"),
    url("../font/LINESeedJP_OTF_Bd.woff2") format("woff2");
}
@font-face {
  font-weight: 900;
  font-style: normal;
  font-family: "LINE SEED";
  src: url("../font/LINESeedJP_OTF_Eb.woff") format("woff"),
    url("../font/LINESeedJP_OTF_Eb.woff2") format("woff2");
}
/* ///// variable ///////////////////////////////// */
:root {
  --f-font-base: "LINE SEED", sans-serif;
  /* bg */
  --bg: #ffffff;
  --bg-01: #f7eeff;
  --bg-02: #ffffff;
  --bg-main: #ffffff;
  --bg-cont: #ffffff;
  /* color */
  --c-txt-base: #3d4347;
  --c-btn-shadow: #b8a1a19d;
  --c-01: #751fbc;
  --c-01-con: #ffffff;
  --c-02: #316ab1;
  --c-02-con: #ffffff;
  --c-03: #8da197;
  --c-03-con: #ffffff;
}

/* ///// founfation /////////////////////////////////  ****/
body {
  background-color: var(--bg);
  font-weight: 400;
  font-size: clamp(14px, 2vw, 20px);
  font-family: var(--f-font-base);
  line-height: 1.6;
}

main {
  background-color: var(--bg-main);
  background-image: linear-gradient(
    -45deg,
    var(--bg-01) 0%,
    var(--bg-01) 25%,
    var(--bg-02) 25%,
    var(--bg-02) 50%,
    var(--bg-01) 50%,
    var(--bg-01) 75%,
    var(--bg-02) 75%,
    var(--bg-02) 100%
  );
  background-size: 10px 10px;
}

main * {
  box-sizing: border-box;
  color: var(--c-txt-base);
  word-break: auto-phrase; 
  letter-spacing: 0.1em;
  font-weight: inherit;
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;

  overflow-wrap: break-word;
  font-feature-settings: "palt";
}
@media (max-width: 769px) {
  main * {
    word-break: normal;
  }
}
/* ///// layout /////////////////////////////////  ****/
.l_main {
  background-color: var(--bg-main);
}

.l_main,
.l_width_main {
  position: relative;
  margin: 0 auto;
  width: min(100%, 1150px);
}

.l_width_full {
  margin: 0 calc(50% - 50vw);
  width: 100vw;
}

.l_container {
  position: relative;
  z-index: 1;
  background: var(--bg-cont);

  padding-block-start: 0;
  padding-block-end: 3.5em;
}
.l_main section:first-child .l_container {
  padding-block-start: 2.5em;
}

[class*="l_container_inner"] {
  display: flex;
  align-items: center;
  flex-direction: column;
  margin: 0 auto;
  text-align: center;
}
[class*="l_container_inner"] > div {
  width: 100%;
}

.l_container_inner {
  width: 88.5%;
}

.l_container_inner-l {
  width: 88.5%;
}

@media (max-width: 769px) {
  [class*="l_container_inner"] {
    width: 90%;
  }
}
/* ///// component ///////////////////////////////// */
/**** text **********************/
/* text-color */
.c_txtc-red {
  color: red;
}

/* text-weight */
.c_txtw-b {
  font-weight: bold;
}

.c_txtw-eb {
  font-weight: 900;
}

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

/* text-size */
.c_txts-m {
  font-size: clamp(14px, 1.8vw, 22px);
}
.c_txts-l {
  font-size: clamp(16px, 2vw, 22px);
}

.c_txts-xl {
  font-size: clamp(18px, 2vw, 28px);
}

.c_txts-xxl {
  font-size: clamp(19px, 3vw, 42px);
}

/**** btn **********************/
.c_btn-a a {
  display: inline-block;
  position: relative;
  border-radius: 5px;
  background-color: var(--c-02);
  color: var(--c-02-con);
  text-align: center;
  font-weight: bold;
  filter: drop-shadow(0px 2px 2px var(--c-btn-shadow));
}

.c_btn-a a::before,
.c_btn-a a::after {
  position: absolute;
  top: 0;
  right: 8%;
  bottom: 0;
  margin: auto;
  width: 0.2rem;
  height: 0.8rem;
  border: 0;
  border-radius: 10rem;
  background-color: var(--c-02-con);
  content: "";
}

.c_btn-a a:before {
  top: 0.4rem;
  transform: rotate(45deg);
}

.c_btn-a a:after {
  top: -0.4rem;
  transform: rotate(-45deg);
}

/*--------------------------------
	ヘッダー
--------------------------------*/

header {
  background-color: white;
  color: #333;
  padding: 1rem;
  text-align: center;
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #e0e0e0;
}

.header-left {
  width: 80px;
}

.logo {
  font-size: 1.5rem;
  font-weight: 700;
  color: #378a40;
  text-decoration: none;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 120px;
  height: 32px;
}
@media (max-width: 769px) {
  .logo {
    display: none;
  }
}
.logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.back-btn {
  color: #333;
  text-decoration: none;
  font-size: 1rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  white-space: nowrap;
  padding: 0.5rem;
  font-family: "Noto Sans TC";
}

.back-btn__text {
  display: inline-block;
  white-space: nowrap;
}

.back-btn__text--sp {
  display: none;
  white-space: nowrap;
}

.back-icon {
  width: 16px;
  height: 16px;
  fill: currentColor;
}

.mypage-btn {
  padding: 0.5rem 1rem;
  border: 1px solid #378a40;
  border-radius: 4px;
  color: #378a40;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 700;
  transition: all 0.3s ease;
  white-space: nowrap;
}

.mypage-btn:hover {
  background-color: #378a40;
  color: white;
}

/*--------------------------------
	フッター
--------------------------------*/
footer {
    background: #fff;
}

.footer__inner {
    display: grid;
    grid-template-columns: 5fr 2fr;
    grid-template-rows: repeat(1, 1fr);
    gap: 32px 60px;
    max-width: 1120px;
    padding-block: 3rem;
    margin: auto;
}

.footer__inner *{
   font-family:var(--f-font-base);

}

.footer__gnav-wrap {
    grid-row: 1/3;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.footer__input {
    display: none;
}

.footer__gnav_ttl {
    display: block;
    margin-bottom: 24px;
}

.footer__ttl,
.footer__gnav_ttl {
    font-size: 14px;
    font-weight: 900;
}

.footer__gnav-list {
    padding-left:0;
    font-weight: 500;
    font-size: 14px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.footer__gnav-item {
    list-style:none;
}

.footer__gnav-item a{
   font-size:14px;
   color: #000;
font-weight:400;
}

.footer__link {
    display: flex;
    flex-direction: column;
    gap: 40px;
    padding-block: 7px;
}

.footer__sns-wrap {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
}

.footer__sns-btn {
    background: #000000;
    color: #fff;
    padding: 0.5em 1.1em 0.5em;
    font-weight: bold;
    font-size: 16px;
    display: flex;
    gap: 0.8em;
    align-items: center;
    text-decoration: none;
    &::before {
        content: "";
        display: block;
        width: 1em;
        height: 1em;
        background: no-repeat center / contain url(https://www.melonbooks.co.jp/special/common/components/images/sns/logo-x-white.svg);
        background-size: contain;
    }
}

.footer__sns,
.footer__appli {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.footer__appli .footer__appli-wrap {
    width: 80%;
    margin: auto;
    display: flex;
    gap: 0.5rem;
    max-width: 300px;
}

.footer__nav {
    grid-column: 1/3;
    display: flex;
    gap: min(1.8vw, 48px);
    align-items: center;
    justify-content: center;
    font-size: min(1vw, 14px);
}

.footer__nav-text {
    display: flex;
    gap: 2rem;
    margin-top: 1.1rem;
    width: fit-content;
}

.footer__nav-text a{
font-size: 14px;
font-weight: 400;
color: #000;
}

.footer__logo {
    height: 3em;
    display: block;

    img {
        height: 100%;
        width: auto;
    }
}
@media (max-width:769px) {
  .footer__logo {
    height: 2em;
}
}

.footer__copyright {
    margin: auto;
    text-align: center;
    padding: 2rem;
    font-size: 14px;
    background: #378A40;
    color: #fff;
    font-weight: 500;
}

@media screen and (max-width:1150px) {
    .footer__inner {
        display: flex;
        flex-direction: column;
        width: 90%;
    }
}

@media screen and (max-width:769px) { 
    .footer__btn-group{
        padding: 4rem;
    }

.footer__btn-wrap {
    display: flex;
    max-width: 1120px;
    margin: auto;
    gap: 1rem;
    justify-content: space-around;
    flex-direction: column;
}

.footer__btn {
    width: 85%;
    text-align: center;
}  

    .footer__gnav {
        border-bottom: 1px solid #000;
    }

    .footer__gnav:first-of-type {
        border-top: 1px solid #000;
    }

    .footer__gnav_ttl {
        margin-bottom: 0;
        padding-right: 1em;
        transition: background 0.5s;
        background: no-repeat center right/2rem url('https://www.melonbooks.co.jp/special/common/components/images/icon/add-line.svg');
    }

    [name="footer-menu"]:checked~.footer__gnav_ttl {
        background: no-repeat center right/2rem url('https://www.melonbooks.co.jp/special/common/components/images/icon/subtract-line.svg');
    }

    .footer__gnav_ttl,
    .footer__gnav-item {
        padding-block: 1.5em;
        margin-inline: 0.5em;
        list-style: none;
    }

    .footer__gnav_accordion {
        display: grid;
        grid-template-rows: 0fr;
        transition: 250ms grid-template-rows ease;
        transition: all 0.5s;
    }

    [name="footer-menu"]:checked~.footer__gnav_accordion {
        grid-template-rows: 1fr;
    }

    .footer__gnav-list {
        gap: 0;
        overflow: hidden;
        margin: 0;
    }

    .footer__gnav-item {
        border-top: 1px solid #0000004d;
        padding-right: 1em;
        list-style: none;
    }

    .footer__link {
        width: 90%;
        margin-inline: auto;
    }

    .footer__appli {
        width: 100%;
    }


    .footer__nav {
        display: flex;
        flex-direction: column;
        gap: 32px;
        font-size: 14px;
    }

    .footer__nav-text {
        display: flex;
        gap: 1rem;
        margin-top: 1.1rem;
        flex-direction: column;
        align-items: center;

    }

    .footer__gnav-wrap {
        display: block;
        width: 90%;
        margin: auto;
    }

    .footer__logo {
        margin-left: -1rem;
    }
}

/**** attention **********************/
.c_attention .c_attention-ttl {
  font-size: 1rem;
  font-weight: 700;
  margin-top: 1rem;
}

[class*="c_attention"] p {
  margin-top: 0.4em;
  font-size: clamp(12px, 1.8vw, 16px);
  line-height: 1.4;
  word-break: normal;
  text-indent: -1em;
    padding-left: 1em;
}
[class*="c_attention"] p::before {
  margin-right: 0.2em;
  content: "・";
}

.c_attention__text {
  margin-top: 1rem;
  display: flex;
  font-size: clamp(12px, 1.8vw, 16px);
}

.c_attention__text::before  {
content: "※";
}

/* ///// project ///////////////////////////////// */
.p_leadTxt {
  color: var(--c-01);
}
@media (max-width: 769px) {
  .p_leadTxt {
    letter-spacing: 0.05em;
  }
}

.p_leadTxt_data {
  margin-top: 1em;
}

.p_leadTxt_txt {
  margin-top: 2em;
}

.p_leadTxt_data {
  display: inline-block;
  padding: 0.5em 2em 0.3em;
  border-radius: 10vw;
  background-color: var(--c-01);
  color: var(--c-01-con);
}

.p_detail {
  display: grid;
  grid-template-columns: 30% 1fr;
  border-top: solid 1px var(--c-03);
}
@media (max-width: 769px) {
  .p_detail {
    grid-template-columns: 1fr;
    border-top: none;
  }
}
.p_detail > div {
  display: contents;
}
@media (max-width: 769px) {
  .p_detail > div {
    display: flex;
    flex-direction: column;
  }
}
.p_detail :is(dt, dd) {
  padding: 1em 0 2em;
  border-bottom: solid 1px var(--c-03);
  text-align: left;

  padding-block-start: 1em;
  padding-block-end: 2em;
}
@media (max-width: 769px) {
  .p_detail :is(dt, dd) {
    padding-inline: 0.5em;
  }
}
.p_detail dt {
  font-weight: bold;
}
@media (max-width: 769px) {
  .p_detail dt {
    padding-block-end: 0;
  }
  .p_detail dt h3 {
    font-size: 1.5em;
  }
}
@media (max-width: 769px) {
  .p_detail dd {
    border-bottom: none;
  }
}
.p_detail a:not(.c_btn-a a) {
  display: inline;
  background: linear-gradient(rgba(255, 255, 255, 0) 94%, var(--c-02) 0%);
  color: var(--c-02);
  font-weight: bold;
}

.p_btn_campaign {
  margin-top: 1em;
}
.p_btn_campaign a {
  padding: 0.7em 3em 0.5em 1em;
}

.c_attention {
  display: flex;
  gap: 0.3em;
  flex-direction: column;
}
@media (max-width: 769px) {
  .c_attention p {
    font-size: 0.8em;
  }
}

.p_paidyDetaul_logo {
  margin: 0.5em 0 1.5em;
  width: 30%;
}

.p_paidyDetaul_logo-a {
  text-decoration: none;
  background: none !important;
}

/* ///// footer ///////////////////////////////// */
/* ///// responsive ///////////////////////////////// */
.sp {
  display: none;
}

.pc {
  display: block;
}

.br_pc {
  display: block;
}

@media (max-width: 769px) {
  .sp {
    display: block;
  }
  .pc {
    display: none;
  }
  .br {
    display: block;
  }
  .br_pc {
    display: none;
  }
}
/* /////////////////////////////////////////////////// */
