@charset "UTF-8";

/* ---------- 共通 ---------- */
html { font-size: 1rem; }
body {
  color: #885714;
  font-family: "Shippori Mincho B1";
  font-style: normal;
  font-weight: 500;
  width: 100%;
  -webkit-text-size-adjust: 100%;
}
ul,ol {
  padding: 0;
  list-style-type: none;
}
dd{
  margin: 0;
}
img {
  width: 100%;
  max-width: 100%;
  height: auto;
  object-fit: contain;
}
a {
  color: #313C9F;
  text-decoration-line: underline;
  text-decoration-style: solid;
  text-decoration-skip-ink: auto;
  text-decoration-thickness: auto;
  text-underline-offset: auto;
  text-underline-position: from-font;
}
a:hover {
  color: #885714;
}
a:active {
  color: #E60144;
}
a:visited{
  color: #747474;
}
#header_cont,
#pr_btn_top,
#pr_book_cont,
#disharmony_cont,
#evidence_cont,
#review_cont,
#ambassador_cont,
#price_cont,
#message_cont,
#developer_cont,
main,
footer,
asaide {
  width: 100%;
  max-width: 100%;
}


/* ---------- Web Font ---------- */
@font-face {
  font-family: 'NotoSansCJKjp-Medium';
  src: url('../font/NotoSansCJKjp-Medium.woff2') format('woff2');
}


/* ---------- アニメーション ---------- */

/* animation:fadeup */
.fdup_trigger {opacity: 0;}
.fdup_active {
  animation: fadeup 1.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}
@keyframes fadeup {
  0% {
    transform: translateY(30px);
    opacity: 0;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}
/* animation:fadein */
.fdin_trigger {opacity: 0;}
.fdin_active {
  animation: fadeIn 2.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
/* animation:txtsmooth */
.ttsm_trigger {
  clip-path: inset(0 100% 0 0);
  transition: 1.5s cubic-bezier(0.45, 0, 0.55, 1);
  transition-property: clip-path;
}
.ttsm_trigger.ttsm_active {
  clip-path: inset(0);
}


/* ---------- #header_cont ---------- */
#header_cont {
  padding: 2.5em 1em 3em;
  background:
    url(../img/top_bg_lt.png),
    var(--backgroun, linear-gradient(180deg, #FFF4F7 0%, #FFFCF8 100%));
  background-repeat: no-repeat, no-repeat;
  background-position: left bottom, center;
  background-size: contain, cover;
  margin-bottom: 1.5em;
}
.hc_top {
  color: #313C9F;
  font-family: "Noto Sans CJK JP";
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 0.8em;
}
.hc_top span {
  display: inline-block;
  color: #FFF;
  border-radius: 3px;
  background: var(--accent, radial-gradient(85.14% 85.16% at 50% 50%, #313C9F 0%, #AEB5EE 100%));  
  padding: 0 0.2em;
}
.hc_text {
  font-size: 16px;
  line-height: 29px;
  margin: 0 auto;
}
.hc_title {
  color: #E60144;
  font-size: 27px;
  font-weight: 600;
  line-height: 38px;
  margin: 0 auto 0.6em;
}
.hc_title span {
  font-size: 20px;
  font-weight: 500;
}
.hc_list {
  display: flex;
  color: #FFF;
  font-family: "Noto Sans";
  font-size: 11.5px;
  line-height: 18px;
  font-weight: 300;
  margin: 0 auto 1.4em;
}
.hc_list li {
  border-radius: 3px;
  background: var(--accent, radial-gradient(65.23% 65.25% at 50% 50%, #E60144 0%, #FF8F8F 100%));
  padding: 6px;
}
.hc_list li:first-child { margin-right: 8px; }
.hc_rt { width: 100%; }
.hc_rt figure { margin: 0; }


/* ---------- #pr_btn_top ---------- */
#pr_btn_top { margin-bottom: 5em; }

/* pr_btn */
.pr_btn, .pr_patent {
  padding: 0 1.2em;
  text-align: center;
}
.pr_btn {
  margin-bottom: 2.4em;
}
.pr_btn_hd {
  color: #E60144;
  font-size: 15px;  
  font-weight: 600;
  margin: 0 auto 0.8em;
}
.pr_btn_hd::before { content: "＼"; }
.pr_btn_hd::after { content: "／"; }
.pr_btn_all,
.pr_btn_book {
  transition: all 0.3s ease; /* なめらかな変化を追加 */
}.pr_btn_all {
  color: #BA9C71;
  font-family: "Noto Sans";
  font-size: 17px;
  font-weight: 500;
  padding: 1.2em;
  width: 100%;
  border-radius: 5px;
  border: 1px solid #BA9C71;
  background: #FFF7EB;
  box-shadow: 0 0 6px 0 rgba(186, 156, 113, 0.50);
  max-width: 454px;
  cursor: pointer;
}
/* pr_btn_all のホバー演出 */
.pr_btn_all:hover {
  background: #FFEED2; /* 少し濃い背景色に変化 */
  color: #A07F54; /* 文字色も少し濃く */
  box-shadow: 0 0 8px rgba(186, 156, 113, 0.6); /* 影を強調 */
}
.pr_btn_ft {
  color: #747474;
  font-family: "Noto Sans CJK JP";
  font-size: 10px;
  font-style: normal;
  font-weight: 400;
  line-height: 36px;
}
.pr_btn_book {
  color: #BA9C71;
  font-family: "Noto Sans";
  font-size: 15px;
  font-weight: 500;
  border-radius: 5px;
  border: 1px solid #BA9C71;
  background: #FFF;
  box-shadow: 0 0 4px 0 #BA9C71;
  margin: 0 auto;
  padding: 1.1em 1.8em;
  cursor: pointer;
}
/* pr_btn_book のホバー演出 */
.pr_btn_book:hover {
  background: #FFF7EB; /* 背景を少し温かく */
  color: #A07F54;
  box-shadow: 0 0 6px rgba(186, 156, 113, 0.6);
}
.pr_btn_all:active,
.pr_btn_book:active {
  transform: scale(0.97); /* 少し縮んで押した感を演出 */
  box-shadow: 0 0 2px rgba(186, 156, 113, 0.4); /* 影を弱めて沈み込む印象に */
}
/* pr_ptnt */
.pr_ptnt_title {
  color: #885714;
  font-size: 14px;
  font-family: "Noto Sans";
  line-height: 20px;
  margin: 0 auto;
}
.pr_ptnt_title .pr_ptnt_special {
  color: #E60144;
  font-family: "Shippori Mincho B1";
  font-size: 18px;
  font-weight: 700;
  line-height: 40px;
  display: block;
}


/* ---------- #pr_book_cont ---------- */
#pr_book_cont { margin-bottom: 3em; }
.pr_bk_outline {
    background:
      url(../img/top_bg_lt.png),
      url(../img/top_bg_rt.png),
      linear-gradient(180deg, #FFF4F7 0%, #FFFCF8 100%);
    background-repeat: no-repeat, no-repeat, no-repeat;
    background-position: left bottom, right top, center;
    background-size: contain, contain, cover;
}
.pr_bk_desc_top {
  text-align: center;
  margin: 0;
  font-size: 27px;
  font-weight: 600;
  line-height:0;
}
.pr_bk_desc_btm {
  text-align: center;
  color: #E60144;
  font-size: 27px;
  font-weight: 600;
  margin-bottom: 1.3em;
}
.pr_bk_desc_top span,
.pr_bk_desc_btm span {
  font-size: 24px;
}
.pr_bk_mid {
  margin-bottom: 2.4em;
}
.pr_bk_mid_lt figure {
  width: 210px;
  margin: 0 auto 2em;
}
.pr_bk_mid_rt {
  padding: 0 1.625em;
  width: fit-content;
  margin: 0 auto;
}
.pr_bk_md_tptxt {
  display: inline-block;
  border-radius: 3px;
  background: var(--accent, radial-gradient(65.23% 65.25% at 50% 50%, #E60144 0%, #FF8F8F 100%));
  color: #FFF;
  font-family: "Noto Sans";
  font-size: 14px;
  font-style: normal;
  padding: 0.6em 1.3em;
  margin: 0 auto 0.5em;
}
.pr_bk_md_title {
  color: #E60144;
  font-size: 18px;
  font-weight: 600;
  line-height: 27px;
  margin-bottom: 1.8em;
}
.pr_bk_md_title span {
  display: inline-block;
  font-size: 30px;
  margin-bottom: 0.5em;
}

.pr_bk_md_works {
  display: flex;
  align-items: stretch; /* ddの高さに合わせる */
}
.pr_bk_md_works dt {
  font-family: "Noto Sans";
  font-weight: 500;
  display: flex;
  align-items: center;     /* 縦中央揃え */
  justify-content: center; /* 横中央揃え */
  padding-right: 1.5em;
  white-space: nowrap;
}
.pr_bk_md_works dd {
  margin: 0;
  flex: 1;
}
.pr_bk_md_works dd ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.pr_bk_md_works dd li {
  font-family: "Noto Sans";
  font-weight: 400;
  padding: 0.1em 0;
}
.pr_bk_md_price {
  font-family: "Noto Sans";
  display: flex;
  align-items: center; /* 縦中央揃え */
  gap: 0.5em;
}
.pr_bk_md_pritxt_1 {
  color: #E60144;
  font-size: 20px;
  font-weight: 500;
}
.pr_bk_md_pritxt_1 span {
  font-weight: 700;
}
.pr_bk_md_pritxt_2 {
  font-size: 26px;
  font-weight: 700;
}
.pr_bk_md_pritxt_2 span {
  font-size: 20px;
}
.pr_bk_btm {
  padding: 0 0.4em 3em;
}
.pr_bk_btm_outline {
  border-radius: 8px;
  border: 1px solid #885714;
  background: #FFF;
  padding: 2.4em 1em 3em;
}
.pr_bk_btm_title {
  color: #E60144;
  font-size: 20px;
  font-weight: 600;
  line-height: 34px;
  margin: 0 auto 0.8em;
}
.pr_bk_btm_txt {
  font-family: "Noto Sans";
  font-size: 16px;
  font-weight: 400;
  line-height: 27px;
  margin-bottom: 3em;
}
.pr_bk_btm_lt {
  text-align: center;
}
.pr_bk_btm_lt img {
  width: 239px;
  margin-bottom: 1em;
}
.pr_bk_btm_txt2 {
  font-family: "Noto Sans";
  font-size: 14px;
  font-weight: 500;
  line-height: 23px;
}
.pr_bk_btm_list {
  font-family: "Noto Sans";
  font-weight: 400;
  line-height: 27px;
  margin-bottom: 0;
}
.pr_bk_btm_list li::before {
  content: "・";
}


/* ---------- #disharmony_cont ---------- */
#disharmony_cont{
  margin-bottom: 1.5em;
}
.disha_outline {
    background:
      url(../img/disha_bg.png),
      url(../img/disha_bg.png),
      url(../img/disha_bar_bg.png);
    background-repeat: no-repeat, no-repeat, no-repeat;
    background-position: -10% top, 122% 98%, 50% bottom;
    background-size: 165px, 175px, auto;
    padding: 0 1.2em 5.5em;
    margin-bottom: 1.5em;
}
.disha_txt_title {
  text-align: center;
  color: #000;
  font-size: 25px;
  font-weight: 500;
  line-height: 40px;
}
.disha_mid img {
  box-shadow: 1px 6px 8px -1px rgba(0, 0, 0, 0.35);
  margin-bottom: 1.8em;
}
.disha_txt_bl {
  color: #313C9F;
  font-size: 20px;
  font-weight: 600;
  line-height: 31px;
  margin: 0 auto 1em;
}
.disha_txt {
  color: #000;
  font-size: 20px;
  line-height: 32px;
}
.disha_txt span {
  display: block;
  margin-bottom: 0.5em;
}
.disha_txt_btm {
  text-align: center;
  padding: 0em 1.2em;
  font-family: "Noto Sans";
  font-size: 18px;
  font-weight: 400;
  line-height: 27px;
}
.disha_txt_btm strong {
  font-family: "Shippori Mincho B1";
  display: block;
  font-size: 30px;
  font-weight: 600;
  line-height: 38px;
  margin-bottom: 1em;
}
.disha_txt_btm strong span {
  color: #313C9F;
}


/* ---------- #evidence_cont ---------- */
#evidence_cont {
  background: #FFF8FA;
  padding: 2em 0;
  margin-bottom: 3.5em;
}
.evid_top {
  margin: 0 auto 6em;
}
.evid_tp_tptxt {
  font-size: 18px;
  font-weight: 600;
  line-height: 27px;
  margin-bottom: 0.2em;
}
.evid_tp_tptxt,
.evid_tp_btmtxt {
  padding: 0 1em;
}
.evid_tp_lt h1 {
  color: #E60144;
  font-size: 30px;
  font-style: normal;
  font-weight: 600;
  line-height: 52px;
  border-bottom: 1px solid #E60144;
  width: 95%;
  margin: 0 auto;
  padding: 0 0 0.3em 0.3em;
}
.evid_tp_btmtxt{
  font-family: "Noto Sans";
  font-weight: 400;
  line-height: 24px;
}
.evid_to_rt figure {
  text-align: center;
}
.evid_to_rt img {
  width: 239px;
}
.evid_mid {
  padding: 0 0.4em;
}
.evid_mid_lt h2 img {
  width: 180px;
}
.evid_mid_lt {
  padding-left: 1em;
}
.evid_mid_rt_outline{
  border-radius: 7px;
  border: 1px solid #BA9C71;
  background: #FFF;
  padding: 1.5em 0.5em;
}
.evid_mid_list {
  margin: 0;
}
.evid_mid_list li {
  margin-bottom: 3em;
}
.evid_mid_list li dl {
  margin-bottom: 1.5em;
}
.evid_mid_list li dt {
  font-size: 20px;
  line-height: 29px;
  margin-bottom: 0.3em;
}
.evid_mid_li_num {
  font-size: 23px;
  line-height: 40px;
}
.evid_mid_li_num::after {
  content: "\A" ;
  white-space: pre;
}
.evid_mid_li_col {
  color: #E60144;
}
.evid_mid_list li dd {
  font-family: "Noto Sans";
  font-weight: 400;
  line-height: 24px;
} 
.evid_mid_list li dd span {
  font-size: 12px;
}
.evid_mid_li_rt {
  overflow: hidden;
}
.evid_mid_li_rt figure {
  width: 50%;
  float: left;
  margin: 0;
  text-align: center;
}
.evid_mid_fig_lt {
  padding-right: 0.15em;
}
.evid_mid_fig_rt {
  padding-left: 0.15em;
}
.evid_mid_li_rt img {
  margin-bottom: 0.1em;
}
.before03_img img,
.after03_img img {
  width: 126px;
}
.evid_mid_li_rt figcaption {
  font-family: "Noto Sans";
  font-size: 12px;
  font-weight: 400;
  line-height: 24px;
}
.evid_mid_li_rt figcaption.evid_mid_li_af {
  color: #E60144;
}
.evid_btm {
  padding: 0 1em;
}
.evid_btm h2 {
  color: #E60144;
  font-size: 30px;
  font-weight: 600;
  margin-bottom: 1.8em;
}
.evid_btm_grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr); /* 横1列 */
  gap: 1.8em; /* カード間の余白 */
  align-items: stretch; /* 各カードの高さを揃える */
}
.evid_btm_card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: 100%; /* 高さを揃えるために必要 */
  border-radius: 8px;
  border: 1px solid #885714;
  background: #FFF;
  padding: 1.2em 2em;
}
.evid_btm_card dl {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
}
.evid_btm_card dt {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 20px;
  font-weight: 600;
  line-height: 29px;
  min-height: 58px; /* 必要に応じて調整 */
  margin-bottom: 1.2em;
}
.evid_btm_card_img {
  flex: 0 0 auto;
  margin-bottom: 0.8em;
  text-align: center;
}
.evid_btm_card_txt {
  flex: 1 1 auto; /* 残りの高さを均等に割り当てる */
  display: flex;
  justify-content: center;
  font-family: "Noto Sans";
  font-weight: 400;
  line-height: 24px;
  min-height: 96px; /* 必要に応じて調整 */
}


/* ---------- #review_cont ---------- */
#review_cont {
  padding: 0 1em;
  margin-bottom: 5em;
}
.rev_hd p {
  font-size: 18px;
  line-height: 28px;
  margin-bottom: 0.5em;
}
.rev_hd h2 {
  color: #E60144;
  font-size: 36px;
  font-weight: 600;
  line-height: 51px;
  margin: 0 0 0.8em;
}
.rev_main {
  display: grid;
  grid-template-columns: repeat(1, 1fr); /* 横1列 */
  gap: 1.8em; /* カード間の余白 */
  align-items: stretch; /* 各カードの高さを揃える */
}
.rev_card {
  display: flex;
  flex-direction: column;
  gap: 1.2em;
  height: 100%;
  border-radius: 7px;
  border: 1px solid #885714;
  background: #FFF;
  padding: 1.5em 0.7em 1em;
  align-items: center;
  padding-bottom:20px !important;
}
.rev_cd_lt {
  flex: 0 0 auto; /* 固定幅（画像サイズに応じて調整） */
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.rev_cd_lt figure {
  margin: 0;
}
.rev_cd_lt img {
  width: 149px;
  height: auto;
  }
.rev_cd_rt {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.rev_cd_rt h3 {
  color: #E60144;
  font-size: 20px;
  font-weight: 600;
  line-height: 29px;
  min-height: 58px; /* 2行分の高さを確保 */
  /* display: flex;
  align-items: center; */
  margin: 0 0 0.5em;
}

.rev_cd_age {
  font-family: "Noto Sans";
  font-weight: 400;
  min-height: 29px;
  display: flex;
  align-items: center;
  margin: 0 0 0.5em;
}

.rev_cd_txt {
  font-family: "Noto Sans";
  font-weight: 400;
  line-height: 24px;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  min-height: 5em; /* 内容に応じて調整 */
  margin: 0;
}

.tuika_rev_cd_txt {
  font-family: "Noto Sans";
  font-weight: 400;
  line-height: 24px;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  min-height: 5em; /* 内容に応じて調整 */
  margin: 30px 45px 50px 30px;
}

/* ---------- #ambassador_cont ---------- */
#ambassador_cont {
  margin-bottom: 3em;
}
.amb_outline {
  border-radius: 10px;
  background:
    url(../img/amb_bg.png),
    linear-gradient(359deg, #F4F5FF 3.53%, #E9ECFF 89.92%);
  background-repeat: no-repeat, no-repeat;
  background-position: right top, center;
  background-size: contain, cover;
}
.amb_hd h2 {
  margin: 0;
  position: relative;
}
.amb_hd h2 img {
  width: 221px;
  position:absolute;
  top:-25px;
  left:20px;
}
.amb_card_outline {
  padding: 3.5em 1.5em 2.5em;
}
.amb_cd_first {
  margin-bottom: 3.5em;
}
.amb_card_lt figure {
  width: 211px;
  margin: 0 auto 1em;
}
.amb_card_rt h3 {
  color: #313C9F;
  font-size: 24px;
  font-weight: 600;
  margin: 0 0 1em;
}
.amb_card_rt span {
  color: #885714;
  font-size: 16px;
  font-weight: 400;
  display: inline-block;
  margin-left: 1em;
}
.amb_card_desc {
  font-family: "Noto Sans";
  font-weight: 500;
  line-height: 28px;
  margin: 0 0 1em;
}
.amb_card_link{
  font-family: "Noto Sans";
  margin: 0 0 1.3em;
}
.amb_card_txt {
  font-family: "Noto Sans";
  font-weight: 400;
  line-height: 28px;
}


/* ---------- #price_cont ---------- */
#price_cont {
    padding: 0 0.4em;
    margin-bottom: 3em;
}
.pri_cont_outline {
  margin-bottom: 3em;
}
.pri_cont_lt h2 {
  color: #E60144;
  font-size: 30px;
  margin: 0 0 0.8em 0.1em;
}
.pri_cont_rt {
  border: 1px solid #E60144;;
}
.pri_card h3 {
  margin: 0 0 2em;
  display: inline-block;
  background: var(--accent, radial-gradient(65.23% 65.25% at 50% 50%, #E60144 0%, #FF8F8F 100%));
  padding: 0.6em;
  color: #FFF;
  text-align: center;
  font-family: "Noto Sans";
  font-size: 18px;
  font-weight: 600;
}
.pri_cont_inline {
  padding: 0 0.5em 1.5em;
}
.pri_card_lt figure {
  margin: 0 auto;
  width: 200.5px;
}
.pri_card_lt figure img {
  width: 100%;
  height: auto;
  display: block;
}
.pri_card_rt dt {
  color: #E60144;
  font-size: 24px;
  font-weight: 600;
  margin-bottom: 0.6em;
}
.pri_card_rt dt span {
  display: block;
  color: #FFF;
  font-family: "Noto Sans CJK JP";
  font-size: 16px;
  font-weight: 600;
  border-radius: 3px;
  background: var(--accent, radial-gradient(85.14% 85.16% at 50% 50%, #313C9F 0%, #AEB5EE 100%));
  padding: 0.1em 0.4em 0.15em;
  margin-bottom: 0.2em;
  width:fit-content;
} 
.pri_card_dd_txt {
  font-family: "Noto Sans";
  font-size: 17px;
  font-weight: 400;
  line-height: 29px; /* 170.588% */
  margin: 0 auto 2em;
}
.pri_card_dd_pr {
  text-align: right;
  font-family: "Noto Sans";
  font-size: 13px;
  font-weight: 700;
  margin: 0;
}
.pri_card_dd_pr strong {
  font-size: 16px;
}
.pri_card_dd_pr strong span {
  font-size: 22px;
}
.pri_card_dd_year,
.pri_card_dd_year strong {
  font-size: 13px;
}


/* ---------- #message_cont ---------- */
#message_cont {
  padding: 0 1.5em;
  margin-bottom: 3em;
}
#message_cont h2 {
  text-align: center;
  font-size: 24px;
  font-weight: 600;
  margin: 0 auto 1em;
}
#message_cont h2 span {
  display: block;
  margin: 0 auto;
}
.mge_cont_lt figure {
  width: 154px;
  margin: 0 auto;
}
.mge_cont_lt figure img {
  width: 100%;
  height: auto;
  display: block;
}
.mge_desc {
  color: #E60144;
  font-size: 20px;
  font-weight: 600;
  line-height: 33px;
}
.mge_txt {
  font-family: "Noto Sans";
  font-weight: 400;
  line-height: 24px;
  margin-bottom: 1.2em;
}
.mge_auth {
  color: #885714;
  text-align: right;
  font-size: 17px;
  font-weight: 600;
}


/* ---------- #developer_cont ---------- */
#developer_cont {
  padding: 0 1.3em;
  margin-bottom: 3em;
  display: flex;
  flex-direction: column;
  gap: 2em; /* dev_card同士の間隔もここで調整可能 */
}
#developer_cont h2 {
  display: none;
}
.dev_card {
  border: 1px solid #885714;
  padding: 1.5em;
}
.dev_card_lt figure {
  margin: 0 auto 1em;
  width: 181px;
}
.dev_card_lt figure img {
  width: 100%;
  height: auto;
  display: block;
}
.dev_card_rt dl{
  margin: 0 auto;
}
.dev_card_rt dt,
.dev_card_rt dd {
  font-family: "Noto Sans JP";
  font-weight: 400;
  line-height: 27px;
}


/* ---------- footer ---------- */
.footer_outline {
  background: linear-gradient(180deg, #FFF4F7 0%, #FFFCF8 100%);
  padding: 3em 0 1em;
}
.footer_lt figure {
  margin: 0 auto 3em;
  width: 333px;
}
.footer_lt figure img {
  width: 100%;
  height: auto;
  display: block;
}


/* ---------- aside ---------- */
aside {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  z-index: 999;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
  pointer-events: none;
}
aside.show {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.ft_bnr {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1em;
  flex-wrap: wrap;
}
.ft_bnr_all,
.ft_bnr_book {
  flex: 1 1 47%;
  max-width: 190px;
  box-sizing: border-box;
  border-radius: 5px 5px 0 0;
  border: 1px solid #FFF;
  background: radial-gradient(52.52% 52.52% at 50% 50%, #479F31 0%, #8FBB6F 100%);
  box-shadow: 0 0 4px 0 rgba(199, 68, 142, 0.30);
  color: #FFF;
  text-align: center;
  font-family: "NotoSansCJKjp-Medium";
  font-size: 14px;
  font-weight: 500;
  line-height: 20px;
  padding: 0.8em 0;
  letter-spacing: 1px;
  transition: all 0.5s ease;
  cursor: pointer;
}
.ft_bnr_all {
  background: radial-gradient(52.52% 52.52% at 50% 50%, #479F31 0%, #8FBB6F 100%);
}
.ft_bnr_book {
  background: var(--accent, radial-gradient(85.14% 85.16% at 50% 50%, #313C9F 0%, #AEB5EE 100%));
  font-size: 13px;
  line-height: 40px;
}
.ft_bnr_midtxt::after {
  content: "\A" ;
  white-space: pre;
}
.ft_bnr_whbg {
  display: inline-block;
  background-color: #E9ECFF;
  padding: 0;
  border-radius: 3px;
  color: #379321;
  font-family: "Noto Sans";
  font-size: 14px;
  font-weight: 700;
}
.ft_bnr_click {
  display: none;
}





/* ==================== Mobile Only ==================== */
@media (max-width: 375px) {

  /* iOSバウンススクロール対策 */
  html, body {
    overscroll-behavior: none;
    height: 100%;
  }

  body {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y;
  }

}



/* ==================== For Tablet & PC ==================== */
@media (min-width: 376px) {

  

}



/* ==================== For PC Only ==================== */
@media (min-width: 769px) {

  /* ---------- 共通Class ---------- */
  .clearfix::after {
    content:'';
    display:block;
    clear:both;
  }
  .float_l { float: left;}
  .float_r { float: right;}
  body {
    width: 1440px;
    margin: 0 auto;
    overflow-x: hidden;
  }


  /* ---------- #header_cont ---------- */
  #header_cont {
    background:
      url(../img/top_bg_lt.png),
      url(../img/top_bg_rt.png),
      var(--backgroun, linear-gradient(180deg, #FFF4F7 0%, #FFFCF8 100%));
    background-repeat: no-repeat, no-repeat, no-repeat;
    background-position: left bottom, right top, center;
    background-size: auto, auto, cover;
    font-size: 20px;
    padding: 2.5em 180px 3em;
    margin-bottom: 1.8em;
  }
  .hc_outline {
    display: flex;
    align-items: flex-start;
    gap: 3em;
  }
  .hc_lt, .hc_rt {
    width: 50%;
    box-sizing: border-box;
  }
  .hc_text span::after {
  content: "\A" ;
  white-space: pre;
  }
  .hc_top {
    font-size: 18px;
    margin:1.5em auto 0.1em;
  }
  .hc_text{
    font-size: 20px;
    line-height: 31px;
    margin-bottom: 0.6em;
  }
  .hc_title {
    font-size: 36px;
    margin-bottom: 0.8em;
    line-height: 51px;
  }
  .hc_title span { font-size: 26px; }
  .hc_list { font-size: 16px; }
  .hc_list li {
    padding: 0.3em 1.2em 0.4em;
    font-weight: 300;
  }
  .hc_rt figure { width: 503px; }


  /* ---------- #pr_btn_top ---------- */
  /* pr_btn */
  .pr_btn_hd { font-size: 16px; }
  .pr_btn_all { font-size: 20px; }
  .pr_btn_ft { font-size: 12px; }
  .pr_btn_book { font-size: 16px; }
  .pr_ptnt_title { font-size: 16px; }
  .pr_ptnt_title .pr_ptnt_special {
    display: inline-block;
    margin-right: 1.1em;
    font-size: 24px;
  }


  /* ---------- #pr_book_cont ---------- */
  .pr_bk_outline { background-size: auto, 95%; }
  .pr_bk_desc_top { font-size: 40px; }
  .pr_bk_desc_btm { 
    font-size: 43px;
    margin: 0.8em auto 1.6em;    
  }
  .pr_bk_desc_top span,
  .pr_bk_desc_btm span { font-size: 40px; }
  .pr_bk_mid {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 2em;
  }
  .pr_bk_mid_lt,
  .pr_bk_mid_rt {
    width: 50%;
    margin: 0;
  }
  .pr_bk_mid_lt {
    text-align: right;
    padding-right: 2em;
  }
  .pr_bk_mid_lt figure {
    width: 335.117px;
    display: inline-block;
  }
  .pr_bk_mid_rt {
    width: auto;
    flex: 1; 
  }
  .pr_bk_md_tptxt {
    font-size: 16px;
    padding: 0.5em 1.3em;
  }
  .pr_bk_md_title { font-size: 20px; }
  .pr_bk_md_title span { font-size: 36px; }
  .pr_bk_md_works dt {
    font-size: 20px;
    padding-right: 1.2em;
  }
  .pr_bk_btm { padding: 0 180px 5em; }
  .pr_bk_btm_outline { padding: 5em 3em 3em 4.5em; }
  .pr_bk_btm_title {
    font-size: 24px;
    line-height: 40px;
    margin-bottom: 0;
  }
  .pr_bk_btm_title span::after {
    content:"\A";
    white-space:pre;
  }
  .pr_bk_btm_txt { line-height: 31px; }
  .pr_bk_btm_txt2 {
    line-height: 34px;
    margin-top: 0.8em;
  }
  .pr_bk_btm_btm {
    display: flex;
    flex-direction: row-reverse;
    align-items: flex-start;
  }
  .pr_bk_btm_lt,
  .pr_bk_btm_rt {
    width: 350px;
    margin: 0;
  }
  .pr_bk_btm_lt { text-align: right; }
  .pr_bk_btm_lt img {
    width: 100%;
    margin: 0;
  }
    .pr_bk_btm_rt { flex: 1; }
  .pr_bk_btm_list { line-height: 31px; }


  /* ---------- #disharmony_cont ---------- */
    .disha_outline {
      background:
        url(../img/disha_bg.png),
        url(../img/disha_bg.png),
        url(../img/disha_bar_bg.png);
      background-repeat: no-repeat, no-repeat, no-repeat;
      background-position: 10.5% 3%, 90% 82%, 50% bottom;
      background-size: 247px, 300px, auto;
      padding: 0 5em 4.8em;
      margin-bottom: 1.5em;
  }
  .disha_top,
  .disha_mid_lt,
  .disha_mid_rt {width: 50%;}
  .disha_txt_title {
    font-size: 36px;
    line-height: 56px;
    margin-bottom: 0.5em;
  }
  .disha_mid {
    display: flex;
    align-items: center;
    gap: 0;
  }
  .disha_mid_lt,
  .disha_mid_rt {
    width: 50%;
    margin: 0;
  }
  .disha_mid_lt { text-align: center; }
  .disha_mid img {
    width: 80%;
    max-width: 100%;
    height: auto;
  }
  .disha_mid_rt{ padding-left: 3em; }
  .disha_txt_bl { font-size: 24px; }
  .disha_txt { 
    font-size: 24px;
    line-height: 40px;
  }
  .disha_txt_btm {
    font-size: 20px;
    line-height: 46px;
    margin: 0 auto;
    width: fit-content;
  }
  .disha_txt_btm strong {
    font-size: 36px;
    line-height: 46px;
    margin-bottom: 0.2em;
  }

  /* ---------- #evidence_cont ---------- */
  #evidence_cont { padding: 3em 0; }
  .evid_top {
    display: flex;
    align-items: center;
    margin-bottom: 3em;
  }
  .evid_tp_lt {
    width: 42%;
  }
  .evid_to_rt {
    width: 58%;
    padding-right: 160px;
  }
  .evid_tp_tptxt,
  .evid_tp_btmtxt { padding-left: 180px; }
  .evid_tp_tptxt {
    font-size: 20px;
    line-height: 33px;
    margin: 0;
  }
  .evid_tp_lt h1 {
    font-size: 36px;
    line-height: 52px;
    width: 95%;
    padding: 0 0 0.4em 5em;
    margin-left: 0;
  }
  .evid_to_rt figure {
    width: 100%;
    margin: 0;
    text-align: right;
  }
  .evid_to_rt figure img { width: 557px; }
  .evid_mid {
    display: flex;
    align-items: center;
    padding: 0 180px;
    margin-bottom: 3em;
  }
   .evid_mid_lt img {
    /* width: 180px !important; OLD */
    width:96px !important;
  }
  .evid_mid_lt { padding-left: 2em; }
  .evid_mid_rt {
    width: calc(100% - 180px);
    margin-left: auto;
  }
  .evid_mid_rt_outline { padding: 2em 1.5em 2em 3em;}
  .evid_mid_list li { margin-bottom: 2em; }
  .evid_mid_list li dl { margin-bottom: 0;}
  .evid_mid_li_lt { width: 60%; }
  .evid_mid_li_rt {
    width: 40%;
    padding-left: 2em;
  }
  .evid_mid_li_num {
    display: inline-block;
    margin-right: 1em;
  }
  .evid_mid_li_num::after { content: none; }
  .evid_btm { padding: 0 180px; }
  .evid_btm h2 {
    margin-bottom: 0.8em;
    font-size: 36px;
  }
  .evid_btm_grid { grid-template-columns: repeat(3, 1fr); }


  /* ---------- #review_cont ---------- */
  #review_cont {
    padding: 0 180px;
    margin-bottom: 7em;
  }
  .rev_main {
    grid-template-columns: repeat(2, 1fr);
    gap: 0.9em; 
  }
  .rev_card {
    flex-direction: row;
    align-items: flex-start;
    padding-bottom: 0;
  }
  .rev_cd_lt { text-align: left; }
  .rev_cd_rt_04 h3 span::after {
    content:"\A";
    white-space:pre;
  }
  .rev_cd_age { align-items: flex-start; }
  .rev_cd_txt {
    min-height: 9em;
    align-items: flex-start;
  }


  /* ---------- #ambassador_cont ---------- */
  #ambassador_cont { padding: 0 180px; }
  .amb_hd h2 img {
    width: 42.5px;
    top: -75px;
    left: 65px;

  }
  .amb_card_outline { padding: 3.5em 2em 2.5em 13em; }
  .amb_card {
    display: flex;
    align-items: flex-start;
    gap: 40px;
  }
  .amb_card_lt { flex: 0 0 auto; }
  .amb_card_lt figure { width: 294px; }
  .amb_card_rt { flex: 1; }


  /* ---------- #price_cont ---------- */
  #price_cont { padding: 0 180px; }
  .pri_cont_outline {
    display: flex;
    gap: 0;
  }
  .pri_cont_lt {
    writing-mode: vertical-rl;
    width: 42px;
    display: flex;
    align-items: center;
    margin-right: 2.5em;
  }
  .pri_cont_lt h2 {
    margin: 0;
    font-size: 36px;
    letter-spacing: 0.3em;
  }
  .pri_cont_inline {
    display: flex;
    align-items: center;
    gap: 0em;
    padding: 0 2em 2em;
  }
  .pri_card_lt { flex-shrink: 0; }
  .pri_card_lt figure { 
    width: 291px;
    margin-right: 1em;
  }
  .pri_card_rt { flex: 1; }
  .pri_card_rt dt {
    font-size: 21px;
    margin-bottom: 0.8em;
  }
  .pri_card_rt dt span {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: 0.3em;
  }
  .pri_card_dd_txt { margin-bottom: 0.5em; }


  /* ---------- #message_cont ---------- */
  #message_cont { padding: 0 220px; }
  #message_cont h2 { font-size: 36px; }
  #message_cont h2 span {
  display: inline-block;
  margin: 0 0.5em 0 0;
  }
  .mge_cont_main {
    display: flex;
    align-items: flex-start;
    flex-direction: row-reverse;
  }
  .mge_cont_lt { flex-shrink: 0; }
  .mge_cont_lt figure { width: 250px; }
  .mge_cont_rt {
    flex: 1;
    margin-right: 1.5em;
  }
  .mge_desc {
    font-size: 24px;
    line-height: 46px;
    margin-top: 0;
  }
  .mge_txt {
    font-size: 17px;
    line-height: 31px;
  }


  /* ---------- #developer_cont ---------- */
  #developer_cont {
    padding: 0 220px;
    gap: 1.5em;
  }
  #developer_cont h2 {
    display: block;
    font-size: 20px;
    margin: 0;
  }
  .dev_card {
    display: flex;
    align-items: flex-start;
    gap: 1.5em;
    box-sizing: border-box;
    padding: 2em 4em;
  }
  .dev_card_lt figure { margin: 0; }


  /* ---------- footer ---------- */
  .footer_outline {
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(180deg, #FFF4F7 0%, #FFFCF8 100%);
    padding: 48px 220px 32px;
  }
  .footer_lt,
  .footer_rt {
    width: 50%;
    box-sizing: border-box;
    text-align: center;
  }
  .footer_lt figure {
    width: 402px;
    margin: 0 auto;
  }
  .footer_rt .pr_btn {
    padding: 0;
    margin: 0;
  }
  .footer_rt .pr_btn .pr_btn_all {
    min-width: 95%;
    width: 95%;
  }


  /* ---------- aside ---------- */
  aside {
    position: fixed;
    bottom: 1em;
    right: 0;
    width: auto;
    transform: translateY(0);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.6s ease;
    z-index: 9999;
  }
  aside.show {
    opacity: 1;
    pointer-events: auto;
  }
  .ft_bnr {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1em;
  }
  .ft_bnr_all,
  .ft_bnr_book {
    width: 221px;
    max-width: 221px;
    flex: none;
  }
  .ft_bnr_toptxt::after {
    content: "\A" ;
    white-space: pre;
  }
  .ft_bnr_midtxt::after { content: none; }
  .ft_bnr_click {
    display: block;
    font-family: "Acumin Pro";
    font-size: 10px;
    font-weight: 700;
  }
  .ft_bnr_book {
    font-size: 14px;
    line-height: 20px;
  }
  .ft_bnr_all:hover {
    background: radial-gradient(52.52% 52.52% at 50% 50%, #769E3F 0%, #AFCB7A 100%);
     /* background: var(--accent, radial-gradient(85.14% 85.16% at 50% 50%, #4A5BD4 0%, #AEB5EE 100%)); */
    box-shadow: 0 0 8px rgba(49, 60, 159, 0.5);
    transform: translateY(-2px);
  }
  .ft_bnr_book:hover {
    background: var(--accent, radial-gradient(85.14% 85.16% at 50% 50%, #4A5BD4 0%, #AEB5EE 100%));
    box-shadow: 0 0 8px rgba(194, 30, 123, 0.5);
    transform: translateY(-2px);
  }
 
}