@charset "UTF-8";
/*-----------------------

         COMMON

-----------------------*/
@media screen and (max-width:1440px) {}
@media screen and (max-width:1368px) {}
@media screen and (max-width:1280px) {}
@media screen and (max-width:1024px) {}
@media screen and (max-width:559px) {}
@media screen and (max-width:375px) {}
@media screen and (max-width:361px) {}
#siEntryForm .display-block a {
  text-decoration: underline;
  color: var(--mainColor);
}
.box-footer p a {
  text-decoration: underline;
  color: var(--mainColor);
}
.portfolio-item .card .card-title a {
  font-size: clamp(1.8rem, 1.7029126214rem + 0.2588996764vw, 2.2rem);
  font-weight: 600;
  line-height: 1.4;
  color: var(--mainColor);
}
.portfolio-item .card .card-title div {
  margin-top: 1rem;
}
/* SHOPログインのリンク */
.shop-panel-body .subtext a {
  text-decoration: underline;
  color: var(--mainColor);
}
/* 退会フォームの件名インデント */
.defect-page p {
  padding-left: 15px;
}
/* SHOPのカテゴリのリンク表示 */
.breadcrumb a {
  color: var(--mainColor);
}
.breadcrumb a:hover {
  text-decoration: underline;
}
.product-category a {
  color: var(--mainColor);
}
.product-category a:hover {
  text-decoration: underline;
}
/* マイページタイムラインのリンク */
.timeline > li > .timeline-item > .timeline-header a {
  color: var(--mainColor);
}
.timeline > li > .timeline-item > .timeline-header a:hover {
  text-decoration: underline;
}
/* コンテンツの前後ページ */
.body-shelf-list .flex-c, .body-info-detail .flex-c {
  flex-direction: row;
}
/* 再生リストチェックボックス */
.body-shelf-comment input[type="checkbox"] {
  -webkit-appearance: auto;
  -moz-appearance: auto;
  appearance: auto;
  border-radius: 0;
  margin-top: 0.8rem;
}
.container {
  margin-bottom: clamp(4rem, 2.5437rem + 6.2136vw, 10rem);
}
/* パスワードの大きさ調整 */
input[type=password] {
  font-size: 16px;
  transform: scale(1.0);
}
/* アンケートフォームのマージン調整 */
.body-form-detail .answer .form-control {
  margin-left: 0.5rem;
}
/* アンケートフォームのマージン調整 */
.body-form-detail [data-event="file-text"] {
  margin-left: 0.5rem;
}
/* プロフィールのマージン調整 */
.body-profile-edit .content .row .col-lg-3:nth-child(2) {
  margin-top: 0;
}
/* フォームの選択アライン */
.body-form-detail th.quantity {
  text-align: center;
}
.l-hdr__right {
  margin-top: 2.3rem;
}
.l-hdr__menu {
  padding-top: 3.7rem;
}
.content-header {
  margin-top: 0;
}
.o_headline_h2_pt04 .deco_en {
  top: -8%;
  left: 0;
}
/*.p_free_cv {
  padding-top: 0;
}*/
.content-header {
  margin-bottom: 0;
  padding-bottom: clamp(1rem, 0.029rem + 2.589vw, 5rem);
}
.p_free_cv {
  padding-top: clamp(8rem, 6.301rem + 4.531vw, 15rem);
}
.o_headline_h2_wrap::after {
  top: -40%;
  font-weight: 400;
}
.o_headline_h2_pt03 .deco_en {
  top: 15%;
}
.p_top_message .deco_en {
  top: -22%;
  left: 0;
}
footer.main-footer::after {
  top: 8rem;
  width: 100vw;
  height: 11vw;
}
.o_headline_h2_pt07 .deco_en {
  font-weight: 400;
}
.o_headline_h2_pt04 .deco_en._about_mistake {
  left: -20%;
}
.p_about-us_we_do .o_headline_h3_sub {
  line-height: 0.5;
}
.p_about-us_overview dl dt {
  width: 20%;
  font-weight: 500;
}
@media screen and (max-width:559px) {
  .o_headline_h2_pt04 .deco_en._about_mistake {
    left: 0%;
  }
  .l-hdr__right {
    gap: 4.5rem;
    margin-right: 7.5rem;
  }
  .p_about-us_we_do .o_headline_h3_sub {
    line-height: 1.2;
  }
  .p_about-us_overview dl div:last-child dd {
    margin-left: 0; /* ←これが本命 */
  }
  .p_about-us_overview dl dd p {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .p_about-us_overview dl dd {
    text-indent: 0;
  }
  .p_about-us_overview dl div:last-child dd p {
    text-indent: 0;
  }
  .p_about-us_overview dl dt {
    width: 100%;
  }
}
.l-hdr__btn.pc {
  background-color: var(--mainColor);
  padding: 0.3rem 3rem;
  border-radius: 99rem;
  color: #fff;
  margin-right: 1rem;
}
.l-hdr__right {
  align-items: center;
}
.faq_title {
  font-weight: 500;
}
.l_mv .mask_copy {
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.08em;
}
.p_top_learn_bottom {
  align-items: start;
}
@media only screen and (max-width: 559px) {
  button.drawer-toggle.drawer-hamburger::after {
    border-radius: 50%;
    width: 65px;
    height: 65px;
    top: 2.1rem;
    left: 2rem;
  }
  .drawer--right .drawer-hamburger, .drawer--right.drawer-open .drawer-navbar .drawer-hamburger, .drawer--right.drawer-open .drawer-hamburger {
    right: 2.5rem;
    top: 2rem;
  }
  .o_headline_h2_pt04 .deco_en {
    top: -2.8%;
  }
  .p_top_message .deco_en {
    top: -10%;
  }
  .l-hdr__login {
    margin-bottom: 0;
  }
  .body-page-detail-top .p_our-courses_diploma .container {
    padding-inline: 6%;
  }
  footer.main-footer::after {
    height: 38rem;
    top: 3rem;
  }
}
.content-header .page-header span {
  color: #9c9c9c;
}
.page-header:first-letter {
  color: var(--mainColor);
}
.content-header {
  padding-top: clamp(12rem, 8.6019417476rem + 9.0614886731vw, 26rem);
  background-color: transparent;
}
.content-header .page-header {
  font-size: clamp(2.6rem, 1.6776699029rem + 2.4595469256vw, 6.4rem);
  font-weight: 500;
  letter-spacing: 0.025em;
  line-height: 1;
  text-align: center;
  color: var(--baseColor);
}
.content-header .page-header_title_sub {
  font-family: "Cormorant Garamond", serif;
  font-size: clamp(1.6rem, 1.3087378641rem + 0.7766990291vw, 2.8rem);
  color: #9c9c9c;
  text-align: center;
  margin-top: clamp(1.5rem, 1.1359223301rem + 0.9708737864vw, 3rem);
  letter-spacing: 0.2em;
  line-height: 1;
}
.body-page-detail-top .p_our-courses_diploma {
  padding-top: clamp(6rem, 4.058rem + 5.178vw, 14rem);
  padding-bottom: clamp(6rem, 4.058rem + 5.178vw, 14rem);
}
.p_our-courses_diploma .o-card .conditions {
  margin-bottom: clamp(0.5rem, 0.136rem + 0.971vw, 2rem);
}
/*トップページ追加コンテンツ*/
.left_text {
  text-align: left;
  padding: 0 4rem;
}
.left_text2 {
  text-align: left !important;
  font-size: 1.6rem;
  padding: 0 2rem 2rem;
}
.left_text2 li {
  text-indent: -1em;
  padding-left: 1em;
}
.plus_one dt {
  display: block;
  padding: 1rem;
  text-align: center;
  color: #fff;
  font-weight: 400;
  letter-spacing: 0.1em;
  background-color: var(--mainColor);
  margin-bottom: 1.5rem;
}
.plus_one dd {
  color: var(--mainColor);
  text-align: left;
  text-indent: -1em;
  padding-left: 1em;
  margin: 0 2rem;
}
.p_our-courses_fee table td.diagonal-line {
  position: relative;
  background:
    linear-gradient(to bottom right, transparent calc(50% - 1px), var(--baseColor), transparent calc(50% + 1px)), #fff !important; /* 背景白を下層に */
  background-repeat: no-repeat !important;
  background-size: 100% 100% !important;
  background-position: center !important;
}
.f-top .asta {
  font-size: 0.7em;
}
.annotation_area {
  width: 100rem;
  margin: 1.5rem auto 0;
}
.annotation_area span {
  color: var(--mainColor);
}
.annotation_area p {
  text-indent: -2.5em;
  padding-left: 2.5em;
}
.body-page-detail-our-courses .p_top_learn {
  padding-top: 0;
}
.body-page-detail-about-us .p_about_beauty {
  padding-top: 0;
}
.body-page-detail-about .p_about_why {
  padding-top: 0;
}
.body-page-detail-free .p_free_cv {
  padding-top: 0;
}
.body-page-detail-free .o_faq {
  padding-bottom: clamp(8rem, 6.301rem + 4.531vw, 15rem);
}
.page-top-img {
  margin-bottom: clamp(8rem, 4.117rem + 10.356vw, 24rem);
}
/*.p_our-courses_fee table tr th:first-child{
	width:25%;
}
.p_our-courses_fee table tr th:nth-child(2){
    width: 50%;
}
.p_our-courses_fee table tr th:nth-child(3){
    width: 50%;
}*/
.o_headline_h2_pt07 h2 {
  letter-spacing: 0.09em;
  text-align: left;
}
/* ログイン関連のマージン調整 */
.login-page .panel {
  margin-top: 15rem;
}
@media only screen and (max-width: 559px) {
  .body-page-detail-top .tableArea {
    transform: scale(0.85);
    transform-origin: top left; /* ←左上基準で縮小 */
    width: 117.6%; /* 1 / 0.85 → 縮小で小さくなる分を補正 */
    overflow-x: auto;
    position: relative;
  }
  .body-page-detail-top .tableArea table {
    border-collapse: collapse;
    width: 100%;
    min-width: 600px; /* スクロールが発生する幅 */
  }
  /* ===== 左列固定 ===== */
  .body-page-detail-top .tableArea th:first-child {
    position: sticky;
    left: 0;
    background: #f2f2f2; /* 背景を指定して重なり対策 */
    z-index: 2; /* 上に重ねるための指定 */
    padding: 0 1rem;
  }
  /* 境界線が見えるように */
  /*  .tableArea th, .tableArea td {
    border: 1px solid #acacac;
    text-align: center;
    vertical-align: middle;
  }*/
  .body-page-detail-top .p_our-courses_fee .container {
    margin-bottom: 0 !important;
  }
  .body-page-detail-top .p_top_free {
    padding-top: 0 !important;
  }
  .body-page-detail-top .annotation_area {
    font-size: 1.4rem;
    max-width: 100%;
  }
}
/*トップページ代表イメージのサイズ*/
.p_top_message figure {
  width: 32.395833vw;
}
@media only screen and (max-width: 559px) {
  .p_top_message figure {
    width: 100%;
  }
}
.p_top_message .text {
  font-size: clamp(1.4rem, 1.303rem + 0.259vw, 1.8rem);
}
.body-page-detail-top .fr-view img {
  position: static;
}
.o_headline_h2_pt02_wrap h2 {
  letter-spacing: 0.03em;
}
.o_cv .container {
  padding-left: 0;
  padding-right: 0;
}
/*メインバナーボタン*/
.p_our-courses_courseOverview .p_our-courses_courseOverview_con .point-section {
  border: none;
  padding: 0;
  position: static;
  margin-top: 3rem;
}
.point-section .fr-view img {
  width: 100%;
}
.p_our-courses_courseOverview .p_our-courses_courseOverview_con .point-section::before, .p_our-courses_courseOverview .p_our-courses_courseOverview_con .point-section::after {
  height: 0;
  background: none;
}
/*----------------------講座案内 入会金・月会費、受講料などのキャンペーン価格表---------------------------*/
.body-page-detail-our-courses .campaign_first {
  text-align: center;
  margin-top: 4.5rem;
}
.body-page-detail-our-courses .campaign_banner_area, .body-page-detail-our-courses .campaign_tablelist {
  text-align: center;
  margin: clamp(2rem, 1.515rem + 1.294vw, 4rem) auto 0;
}
/*--------------------------法人会員・賛助会員---------------------------*/
/* pt06配下だけ打ち消し */
.body-page-detail-corporate-member .o_headline_h2_pt04 .o_headline_h2_pt06 h2::after {
  content: none; /* または初期化 */
}
.body-page-detail-corporate-member .o_headline_h2_pt06_en {
  margin-bottom: 3rem;
}
.body-page-detail-corporate-member .corp_tablelist {
  text-align: center;
}
.body-page-detail-corporate-member .o_headline_h2_pt04 .o_btn_main {
  margin-top: 5rem;
}
@media only screen and (max-width: 559px) {
  .page-detail-page .content-header .page-header_title_sub {
    margin-bottom: 2.5rem;
  }
}
/* 既存の背景は外す（擬似要素に移す） */
body {
  min-height: 71rem;
  position: relative;
  background: none;
}
/* 背景固定レイヤー */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  background: url(../img/bg.webp) no-repeat center left / cover;
  z-index: -1;
  pointer-events: none;
}
.o_btn_main a {
  width: 45rem;
  height: 9rem;
}
@media only screen and (max-width: 559px) {
  .o_btn_main a {
    width: 100%;
    height: 8rem;
  }
}
.p_top_career_cv .o_btn_main a {
  font-size: clamp(1.6rem, 1.503rem + 0.259vw, 2rem);
}
.p_about-us_is_for .o_btn_main.o_faq_btn {
  display: none;
}
.p_our-courses_syllabus__flexttl span.f-medium {
  font-size: clamp(1.1rem, 0.882rem + 0.583vw, 2rem);
}
.page-detail-page .content-header .page-header_title_sub {
  color: var(--mainColor);
}
@media screen and (max-width: 559px) {
  /* テーブルを画面幅に収める */
  .tableArea {
    width: 100%;
    overflow-x: hidden; /* はみ出しを防ぐ */
  }
  .tableArea table {
    width: 100%;
    table-layout: fixed; /* 列幅を固定して崩れにくく */
    border-collapse: collapse;
  }
  /* すべてのセルで改行を許可 */
  .tableArea th, .tableArea td {
    white-space: normal !important;
    word-break: break-word; /* 英数字長文も折り返し */
    overflow-wrap: anywhere; /* どこでも折り返し可 */
    line-break: strict; /* 日本語の禁則をやや安定 */
    vertical-align: top;
  }
  /* p, li, dd内も折り返し強制 */
  .tableArea p, .tableArea li, .tableArea dd, .tableArea dt, .tableArea span {
    white-space: normal !important;
    word-break: break-word;
    overflow-wrap: anywhere;
    padding-left: 1em;
    text-indent: -1em;
  }
  /* ULの左余白が大きすぎるとはみ出すので調整 */
  .tableArea ul.left_text, .tableArea ul.left_text2 {
    margin: 0;
    padding-left: 1.4em;
  }
  /* 金額行が詰まりすぎる場合の微調整 */
  .tableArea .f-top {
    line-height: 1.4;
  }
}
.body-page-detail-free-sign-up .p_top_free {
  padding-top: 0;
}
.body-page-detail-free-sign-up .p_top_free_item.ban figure {
  bottom: -45%;
  width: 60rem;
}
.body-page-detail-free-sign-up .p_top_free_item.dip figure {
  width: clamp(28.8rem, 28.2417475728rem + 1.4886731392vw, 31.1rem);
  bottom: -50%;
}
@media screen and (max-width: 559px) {
  .body-page-detail-free-sign-up .p_top_free_item.ban figure {
    bottom: -78%;
    width: 64%;
  }
  .body-page-detail-free-sign-up .p_top_free_item.dip figure {
    bottom: -53%;
    width: 75%;
  }
  .body-page-detail-free-sign-up .p_top_free_item .tab {
    width: 70%;
  }
  .body-page-detail-free-sign-up .p_top_free_item .title {
    letter-spacing: 0em;
  }
  .body-page-detail-free-sign-up .p_free_cv {
    padding-top: 4rem;
  }
}