@charset "UTF-8";
:root {
  --theme_color: #d71c47;
  --theme_color_light: #ffeaea;
}

:root {
  --font_ja: "Noto Sans JP", "ヒラギノ角ゴ ProN W3", Meiryo, sans-serif;
  --font_en: "Tenor Sans", sans-serif;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
  line-height: 1.5;
  scroll-behavior: smooth;
  overflow-x: hidden;
  scroll-padding-top: 52px;
}

body {
  font-family: "Noto Sans JP", "ヒラギノ角ゴ ProN W3", Meiryo, sans-serif;
  font-feature-settings: "palt";
  letter-spacing: 0.02em;
  padding-top: 52px;
  overflow-x: hidden;
}

p {
  font-size: 1.6rem;
  line-height: 1.65;
}

p.xs {
  font-size: 1.4rem;
}

p.s {
  font-size: 1.5rem;
  line-height: 1.65;
  margin-bottom: 18px;
}

p.m {
  font-size: 1.6rem;
  line-height: 1.8;
  margin-bottom: 18px;
}

p.l {
  font-size: 1.6rem;
  line-height: 1.8;
  margin-bottom: 18px;
}

.u-tc {
  text-align: center;
}

.u-ctol {
  text-align: center;
}

.u-ltoc {
  text-align: left;
}

.u-mb {
  margin-bottom: 1em;
}

.note {
  font-size: 1.4rem;
  line-height: 1.4;
}

.tlink {
  color: var(--theme_color);
  text-decoration: underline;
}
.tlink:hover {
  text-decoration: none;
}

ul,
ol {
  list-style: none;
}

img {
  width: 100%;
  height: auto;
  vertical-align: bottom;
}

em {
  font-style: normal;
}

address {
  font-style: normal;
}

table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  border-spacing: 0;
}

thead {
  border: none;
}

a {
  color: inherit;
  text-decoration: none;
  display: inline-block;
  color: #000;
  transition: 0.2s;
}

button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: none;
  transition: 0.2s;
  cursor: pointer;
}

.font_en {
  font-family: var(--font_en);
}

/*googlefont*/
.allura-regular {
  font-family: "Allura", cursive;
  font-weight: 400;
  font-style: normal;
}

.tenor-sans-regular {
  font-family: "Tenor Sans", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.noto-sans-jp {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
}

/*コンテナ*/
.u-inner {
  padding-left: 15px;
  padding-right: 15px;
}

.u-frame_s {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}

.u-frame_m {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}

.u-wfull {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

@media (max-width: 767px) {
  .pc_only {
    display: none;
  }
}
@media (min-width: 768px) {
  .u-inner {
    padding-left: 40px;
    padding-right: 40px;
  }
  .u-frame_s {
    padding-left: 40px;
    padding-right: 40px;
  }
  .u-frame_m {
    padding-left: 40px;
    padding-right: 40px;
  }
  .mob_inline {
    display: none;
  }
  .mob_only {
    display: none;
  }
  p.s {
    font-size: 1.6rem;
  }
  p.l {
    font-size: 2rem;
  }
  .u-ctol {
    text-align: left;
  }
  .u-ltoc {
    text-align: center;
  }
}
@media (min-width: 960px) {
  html {
    scroll-padding-top: 80px;
  }
  body {
    padding-top: 80px;
  }
}
/*---------------------------
header
---------------------------*/
.l-header {
  width: 100%;
  height: 52px;
  background: #fff;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
  position: fixed;
  top: 0;
  z-index: 10;
  transition: background-color 0.3s;
}

.l-header_pc {
  display: none;
}

.l-header_mob {
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  margin: 0 auto;
  position: relative;
}

.header_sitelogo {
  padding-left: 10px;
}

.header_sitelogo img {
  width: auto;
  height: 38px;
}

/*ハンバーガーメニュー*/
.hamburger {
  position: absolute;
  right: 10px;
  cursor: pointer;
  width: 36px;
  height: 15px;
  z-index: 10;
}

.hamburger span {
  transition: all 0.2s;
  position: absolute;
  height: 1px;
  background-color: #555;
  width: 100%;
  z-index: 10;
}

.hamburger span:nth-of-type(1) {
  top: 0px;
}

.hamburger span:nth-of-type(2) {
  top: 8px;
}

.hamburger span:nth-of-type(3) {
  top: 15px;
}

.hamburger.open span:nth-of-type(1) {
  top: 0px;
  transform: translateY(7px) rotate(-32deg);
}

.hamburger.open span:nth-of-type(2) {
  opacity: 0;
}

.hamburger.open span:nth-of-type(3) {
  top: 15px;
  transform: translateY(-7px) rotate(32deg);
}

.l-mobmenu_area {
  position: fixed;
  top: 52px;
  width: 100%;
  z-index: 10;
  height: 100%;
  height: 0;
  border-top: 1px solid #ededed;
}

.l-mobmenu {
  height: 0;
  overflow: hidden;
  transition: 0.3s;
  list-style: none;
  background: #fff;
  overflow-y: auto;
}

.l-mobmenu.open {
  padding-bottom: 70px;
}

.l-mobmenu_nav > .navlist {
  padding-top: 15px;
  padding-left: 20px;
  border-top: 1px solid #ededed;
}

.l-mobmenu_nav_item {
  padding: 0 10px 0 20px;
}

.l-mobmenu_nav_item + .l-mobmenu_nav_item {
  border-top: 1px solid #ededed;
}

.l-mobmenu .navlist_title {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.l-mobmenu .navlist_title > a {
  display: flex;
  align-items: center;
  width: 100%;
  height: 62px;
  padding-right: 20px;
}

.l-mobmenu_nav li a {
  font-size: 1.4rem;
  line-height: 1.2;
}

.l-mobmenu_nav .navlist li a {
  width: 100%;
  height: 24px;
  width: auto;
  padding-right: 30px;
}
.l-mobmenu_nav .navlist li a::after {
  right: 5px;
  top: 8px;
}

.l-mobmenu_nav .navlist li + li {
  margin-top: 10px;
}

.l-mobmenu .navlist li:last-child {
  padding-bottom: 15px;
}

.l-mobmenu .navlist_subtitle {
  font-size: 1.4rem;
  color: #444;
  padding-top: 20px;
  border-top: 1px solid #ededed;
}

.l-mobmenu ul.u-list_bou li a::before {
  background: #000;
}

.l-mobmenu .company_item {
  border: 1px solid #eee;
  width: 210px;
  padding: 10px 15px;
  display: block;
  height: auto;
  margin-left: 20px;
}

/*お問い合わせボックス*/
.c-header_contact_box {
  text-align: center;
  background: #394346;
  padding: 20px 10px 25px;
  margin: 30px 15px;
  border-radius: 8px;
  box-shadow: inset -10px -10px 10px rgba(0, 0, 0, 0.05), inset 10px 10px 10px rgba(0, 0, 0, 0.05);
}

.c-header_contact_box .c-button_contact {
  margin-top: 8px;
  width: 80%;
  max-width: 300px;
}

.c-header_contact_box .contact_box_title {
  font-size: 1.4rem;
  font-weight: 600;
  margin-bottom: 10px;
  color: #fff;
}

.c-header_contact_box p {
  font-size: 1.4rem;
  line-height: 1.2;
  color: #fff;
}

.c-header_contact_box p .num {
  font-size: 2.3rem;
}
.c-header_contact_box p .num a {
  color: #fff;
}

@media (min-width: 960px) {
  .l-header_mob {
    display: none;
  }
  .l-header {
    height: 80px;
  }
  .l-header_inner {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    padding: 0 20px;
  }
  .header_sitelogo {
    margin-right: 20px;
    padding: 0;
  }
  .l-header_nav {
    display: flex;
    align-items: center;
    margin-left: auto;
  }
  .l-header_nav .c-button_contact {
    width: 154px;
    margin-left: 20px;
  }
  .l-pcmenu_nav {
    display: flex;
    align-items: center;
    gap: 15px;
  }
  .l-pcmenu_nav .navlist_li {
    position: relative;
    transition: 0.2s;
    margin: 10px 0;
  }
  .l-pcmenu_nav .navlist_li a {
    font-size: 1.4rem;
    line-height: 1.2;
  }
  .l-pcmenu_nav .navlist_li a:hover {
    color: var(--theme_color);
  }
  .l-pcmenu_nav .navlist_li > a {
    font-size: 1.4rem;
    font-weight: 600;
    line-height: 1.2;
  }
  .l-pcmenu_nav .nav_child {
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
  }
  .l-pcmenu_nav .navlist_li:hover > .nav_child,
  .l-pcmenu_nav .navlist_li .nav_child.is-open {
    opacity: 1;
    visibility: visible;
  }
  .l-pcmenu_nav .nav_child {
    width: -moz-max-content;
    width: max-content;
    max-width: 90vw;
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    background: #fff;
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1);
    border-radius: 10px;
    padding: 25px 30px 20px 15px;
  }
  .l-pcmenu_nav .nav_child.pos-right {
    right: 0;
    left: initial;
  }
  .l-pcmenu_nav .nav_child .u-flex {
    display: flex;
    gap: 50px;
    margin-top: 18px;
  }
  .l-pcmenu_nav .nav_child .navchild_cont {
    display: inline-block;
  }
  .l-pcmenu_nav .navchild_cont .ttl_desc {
    margin-bottom: 16px;
    margin-left: 4px;
  }
  .l-pcmenu_nav .nav_child .navchild_list {
    margin: 10px 10px 16px;
  }
  .navchild_list a {
    font-size: 1.4rem;
  }
  /*トップページのヘッダーを透明化*/
  body.toppage .l-header {
    background-color: transparent;
    box-shadow: none;
  }
  body.toppage .l-header.is-scrolled {
    background-color: #fff;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
  }
  body.toppage {
    padding-top: 0;
  }
  body.toppage .l-header:not(.is-scrolled) .l-pcmenu_nav .navlist_li > a {
    color: #fff;
  }
  body.toppage .l-header:not(.is-scrolled) .j-nav_tgr::after {
    background-image: url(../images/common/arr_min_white.svg);
  }
}
@media (min-width: 1280px) {
  .l-header_inner {
    padding: 0 40px;
  }
  .l-pcmenu_nav {
    display: flex;
    align-items: center;
    gap: 20px;
  }
}
/*---------------------------
footer
---------------------------*/
.l-footer {
  color: #fff;
  background: #1d2021;
  padding-top: 25px;
  padding-bottom: 25px;
}

.l-footer_pc {
  display: none;
}

.l-footer_mob {
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.footer_sitelogo {
  max-width: 480px;
  margin: 0 auto;
}

.l-footer address {
  margin-top: 25px;
  text-align: center;
}

.l-footer address p {
  font-size: 1.4rem;
  line-height: 1.5;
  text-align: center;
}

.l-footer address p + p {
  margin-top: 18px;
}

/*お問い合わせボックス*/
.c-footer_contact_box {
  text-align: center;
  background: #394346;
  padding: 20px 10px 25px;
  margin-top: 25px;
  border-radius: 8px;
  box-shadow: inset -10px -10px 10px rgba(0, 0, 0, 0.05), inset 10px 10px 10px rgba(0, 0, 0, 0.05);
}

.c-footer_contact_box .c-button_contact {
  margin-top: 8px;
  width: 80%;
  max-width: 300px;
}

.c-footer_contact_box .contact_box_title {
  font-size: 1.4rem;
  font-weight: 600;
  margin-bottom: 10px;
}

.c-footer_contact_box p {
  font-size: 1.4rem;
  line-height: 1.2;
  color: #fff;
}
.c-footer_contact_box p a {
  color: #fff;
}

.c-footer_contact_box p .num {
  font-size: 2.3rem;
  color: #fff;
}

.l-footer_nav {
  background: #0c1214;
  padding-bottom: 30px;
}

.l-footer_nav_item {
  padding: 0 15px;
}

.l-footer_nav_item + .l-footer_nav_item {
  border-top: 1px solid #1d2021;
}

.l-footer_nav .navlist_title {
  font-size: 1.4rem;
  height: 54px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.l-footer_nav .navlist_title a {
  color: #fff;
  display: block;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  padding-right: 20px;
}
.l-footer_nav .navlist_title a::after {
  background-image: url(../images/common/arr_min_white.svg);
}

.l-footer_nav .navlist .navlist_subtitle {
  font-size: 1.4rem;
  color: #9f9f9f;
  margin-top: 25px;
}

.l-footer_nav .navlist .navlist_subtitle + li {
  margin-top: 12px;
}

.l-footer_nav .navlist li {
  margin-top: 18px;
}

.l-footer_nav .navlist li:last-child {
  padding-bottom: 15px;
}

.l-footer_nav .navlist li a {
  font-size: 1.3rem;
  line-height: 1.5;
  color: #fff;
  text-decoration: none;
  display: block;
}
.l-footer_nav .navlist li a:hover {
  color: var(--theme_color);
}

.l-footer_nav_inner > .navlist {
  border-top: 1px solid #1d2021;
  padding-top: 15px;
  padding-left: 20px;
}

.l-footer_nav .company_item {
  width: 210px;
  height: 60px;
  display: flex;
  padding: 15px 25px;
  margin-left: 20px;
  margin-top: 8px;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid #eeeeee;
}

.copyright {
  margin-top: 25px;
}

.copyright small {
  font-size: 1rem;
  line-height: 1.2;
  color: #fff;
  display: block;
  text-align: center;
}

@media (min-width: 960px) {
  .l-footer {
    padding-top: 75px;
    padding-bottom: 35px;
  }
  .l-footer_mob {
    display: none;
  }
  .l-footer_pc {
    display: block;
  }
  .l-foot_inner {
    gap: 40px;
    display: flex;
    justify-content: space-between;
    margin-left: auto;
    margin-right: auto;
    max-width: 1520px;
  }
  .l-footarea_left {
    flex: 0 0 330px;
  }
  .foot_boxcont {
    display: flex;
    gap: 30px;
    flex-wrap: wrap;
  }
  .foot_box {
    flex: 1 0 auto;
  }
  .foot_box.u-mt {
    margin-top: 3em;
  }
  .foot_boxcont + .foot_boxcont {
    margin-top: 20px;
  }
  .footnav_title {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.2;
    color: #9f9f9f;
    margin-bottom: 20px;
  }
  .footnav_subtitle {
    font-size: 1.4rem;
    font-weight: 600;
    line-height: 1.2;
    color: #9f9f9f;
    padding-bottom: 8px;
    margin: 18px 0 10px;
    border-bottom: 1px solid #fff;
  }
  .navlist li {
    margin: 0 0 10px 0;
  }
  .navlist li a {
    font-size: 1.3rem;
    line-height: 1.4;
    color: #fff;
  }
  .c-footer_contact_box {
    text-align: left;
    padding: 20px 25px;
  }
  .c-footer_contact_box .c-button_contact {
    margin: 8px auto 0 0;
    height: 38px;
    width: 190px;
  }
  .footer_sitelogo img {
    height: 45px;
  }
  .l-footer address p {
    text-align: left;
  }
  .l-footer address p + p {
    margin-top: 10px;
  }
  .copyright {
    margin-top: 60px;
  }
  .copyright small {
    font-size: 1.2rem;
  }
  .l-footer_mob {
    display: none;
  }
}
@media (min-width: 1280px) {
  .foot_boxcont {
    flex-wrap: nowrap;
  }
  .foot_box {
    flex: 0 0 260px;
  }
}
@media (min-width: 1400px) {
  .foot_boxcont {
    gap: 40px;
  }
  .foot_box {
    flex: 0 0 280px;
  }
}
@media (min-width: 1560px) {
  .foot_box {
    flex: 0 0 320px;
  }
}
/*---------------------------
parts
---------------------------*/
ul.u-list_bou li a {
  position: relative;
  padding-left: 20px;
}
ul.u-list_bou li a::before {
  content: "";
  display: block;
  width: 6px;
  height: 1px;
  background: #fff;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 0;
}
ul.u-list_bou li a:hover {
  color: var(--theme_color);
}

.u-akawaku span {
  font-size: 1.4rem;
  line-height: 1.5;
  color: #d30b0b;
  padding: 15px;
  background: #ffe8e8;
  border: 1px solid #e15050;
  display: inline-block;
}

.j-acd_list {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}

.j-acd_list.is-open {
  max-height: 500px;
}

.j-acd_tgr {
  background-image: url(../images/icon/icon_pluse_white.svg);
  background-repeat: no-repeat;
  background-size: 17px 17px;
  background-position: center;
}

.j-acd_tgr.is-minus {
  background-image: url(../images/icon/icon_minimize_white.svg);
}

.tgr-button {
  background-color: #394346;
  border-radius: 4px;
  width: 29px;
  flex: 0 0 29px;
  height: 29px;
  display: flex;
  align-content: center;
  justify-content: center;
  cursor: pointer;
  margin-left: 8px;
  font-weight: bold;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.c-button {
  font-size: 1.4rem;
  color: #fff;
  background: #000;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 100px;
  padding: 10px 10px;
  min-width: 120px;
}
.c-button:hover {
  background: var(--theme_color);
}

/*タイトル*/
.ttl_desc {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.2;
  position: relative;
  padding-left: 16px;
}
.ttl_desc::before {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  background: #d86868;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.u-decobou_c {
  position: relative;
}
.u-decobou_c::after {
  content: "";
  display: block;
  width: 60px;
  height: 2px;
  background: var(--theme_color);
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

.ttl_ribbon_b {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.5;
  padding-bottom: 10px;
  margin-bottom: 20px;
  border-bottom: 2px solid #f3f3f3;
  position: relative;
}
.ttl_ribbon_b::before {
  content: "";
  width: 70px;
  height: 2px;
  background: var(--theme_color);
  position: absolute;
  bottom: -2px;
}

.ttl_ribbon_l {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.5;
  padding-left: 10px;
  margin-bottom: 20px;
  border-left: 2px solid var(--theme_color);
}

.ttl_bg {
  margin-bottom: 10px;
}

.ttl_bg span {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.65;
  letter-spacing: 0.04em;
  color: var(--theme_color);
  margin-bottom: 15px;
}

@media (min-width: 768px) {
  .ttl_ribbon_b {
    font-size: 2.4rem;
    padding-bottom: 20px;
  }
  .ttl_ribbon_l {
    font-size: 1.8rem;
  }
  .ttl_bg span {
    font-size: 2.4rem;
  }
}
@media (min-width: 960px) {
  .ttl_bg span {
    display: inline;
    font-size: 2.8rem;
    color: #fff;
    font-weight: 600;
    line-height: 1.8;
    padding: 0 5px;
    background: linear-gradient(transparent 0%, var(--theme_color) 0%);
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
  }
}
/*アイコン*/
.u-icon {
  background-size: contain;
  background-repeat: no-repeat;
  width: 20px;
  height: 20px;
  display: inline-block;
  position: absolute;
}

.u-icon.icon_exlink_black {
  background-image: url(../images/icon/icon_exlink_black.svg);
}

.u-icon.icon_exlink_white {
  background-image: url(../images/icon/icon_exlink_white.svg);
}

.u-icon.icon_zoom_black {
  background-image: url(../images/icon/icon_zoom_black.svg);
}

.u-icon.icon_pdf_white {
  background-image: url(../images/icon/icon_pdf_white.svg);
}

.u-icon.icon_pdf_color {
  background-image: url(../images/icon/icon_pdf_color.svg);
}

.u-icon.icon_alert_white {
  background-image: url(../images/icon/icon_alert_white.svg);
}

.u-icon_wrap {
  position: relative;
}

@keyframes arrow {
  0% {
    transform: translateX(0%);
  }
  49% {
    transform: translateX(200%);
    visibility: hidden;
  }
  50% {
    transform: translateX(-200%);
    visibility: hidden;
  }
  52% {
    visibility: visible;
  }
  100% {
    transform: translateX(0%);
  }
}
/*ボタン*/
.navchild_list_button {
  display: inline-block;
  margin: 0 15px 10px 0;
}

.navchild_list_button a {
  font-size: 1.4rem;
  color: var(--theme_color);
  line-height: 1.2;
  background: #ffeaea;
  border-radius: 100px;
  padding: 8px 35px 8px 18px;
  height: 43px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.2s;
  box-shadow: 0 2px 0 rgba(157, 81, 98, 0.3);
}
.navchild_list_button a .arryaji::after {
  background-image: url(../images/common/arr_color.svg);
  background-repeat: no-repeat;
}
.navchild_list_button a:hover {
  opacity: 0.8;
  box-shadow: none;
}

.c-button_contact {
  font-size: 1.4rem;
  font-weight: 600;
  color: #fff;
  line-height: 1.4;
  border-radius: 100px;
  background: #d71c47;
  background: linear-gradient(0deg, rgb(215, 28, 71) 0%, rgb(255, 45, 115) 100%);
  padding: 8px 20px 8px 8px;
  padding: 0;
  height: 48px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  transition: 0.2s;
}
.c-button_contact .icon {
  width: 18px;
  height: 18px;
  background: url(../images/icon/icon_mail_white.svg) no-repeat;
  background-size: contain;
  margin-right: 2px;
}

.l-header .c-button_contact,
.l-footer .c-button_contact {
  background: var(--theme_color);
}

.c-button_contact:hover {
  filter: saturate(120%);
}

.p-button_arr {
  font-size: 1.4rem;
  color: #fff;
  line-height: 1.4;
  text-align: center;
  border-radius: 100px;
  background: #000;
  padding: 8px 20px 8px 8px;
  padding: 8px 40px;
  width: 90%;
  max-width: 440px;
  height: 58px;
  margin: 30px auto 0;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.p-button_arr > span:not([class]) {
  position: relative;
  right: -3px;
}
.p-button_arr .maruarr {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 18px;
  transition: 0.3s;
}
.p-button_arr:hover .maruarr img {
  animation: arrow 0.5s ease-out;
}

.p-link_arr {
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--theme_color);
  position: relative;
}
.p-link_arr .maruarr {
  width: 28px;
  height: 28px;
  border-color: var(--theme_color);
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: -2em;
  transition: 0.3s;
}
.p-link_arr:hover .maruarr img {
  animation: arrow 0.5s ease-out;
}

.c-button_exlink_wrap {
  display: flex;
  gap: 12px;
  max-width: 630px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 60px;
}

.c-button_exlink_wrap .c-button_exlink {
  flex: 1 1 100%;
}

.c-button_exlink {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  color: #fff;
  padding: 12px 10px 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
  border-radius: 4px;
  flex-direction: column;
  position: relative;
  transition: 0.2s;
}
.c-button_exlink:hover {
  opacity: 0.8;
}
.c-button_exlink:hover .arrmin {
  bottom: 6px;
}

.c-button_exlink .arrmin {
  position: absolute;
  bottom: 8px;
  left: 50%;
  transition: 0.1s;
  transform: translateX(-50%);
}
.c-button_exlink .arrmin::after {
  width: 24px;
  height: 24px;
}

.c-button_exlink .arrmin::after {
  position: initial;
  transform: rotate(90deg);
  background-image: url(../images/common/arr_min_white.svg);
}

.c-button_back {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  width: 145px;
  padding: 10px 10px 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  margin: 60px auto 0;
  background: #000;
  border-radius: 100px;
}
.c-button_back .icon {
  width: 24px;
  height: 24px;
}
.c-button_back:hover {
  background: var(--theme_color);
}

/*矢印*/
.maruarr {
  border: 1px solid #fff;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  overflow: hidden;
}
.maruarr img {
  width: 8px;
  height: 8px;
}

.arr img {
  width: 8px;
  height: 8px;
  margin: auto 0;
  overflow: hidden;
}

.arrmin {
  position: relative;
}
.arrmin::after {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  background: url(../images/common/arr_min_black.svg) no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

.arryaji {
  position: relative;
}
.arryaji::after {
  content: "";
  display: block;
  width: 12px;
  height: 12px;
  background: url(../images/common/arr_black.svg) no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  right: -1.2em;
  transform: translateY(-50%);
  transition: 0.2s;
}
.arryaji:hover {
  color: var(--theme_color);
}
.arryaji:hover::after {
  transform: translateY(-50%) translateX(4px);
  background-image: url(../images/common/arr_color.svg);
}

@media (min-width: 960px) {
  .p-button_arr {
    font-size: 1.6rem;
    width: -moz-fit-content;
    width: fit-content;
    padding: 8px 70px 8px 50px;
    height: 74px;
    margin-top: 50px;
  }
  .p-button_arr:hover {
    background-color: var(--theme_color);
  }
  .maruarr {
    width: 36px;
    height: 36px;
  }
  .maruarr img {
    width: 10px;
    height: 10px;
  }
  .arr img {
    width: 10px;
    height: 10px;
  }
  .c-button_exlink {
    font-size: 1.6rem;
    padding: 14px 10px 30px;
  }
  .c-button_back {
    font-size: 1.6rem;
    width: 210px;
  }
}
/*コンバージョン*/
.p-cvp_content {
  display: flex;
  flex-direction: column;
  gap: 35px;
  margin: 60px auto;
}

.p-cvp_content .cvp_icon {
  width: auto;
  height: 40px;
}

.p-cvp_content .cvp_title {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.65;
  margin-bottom: 10px;
  text-align: center;
}
.p-cvp_content .cvp_title::before {
  content: "";
  width: 40px;
  height: 40px;
  display: block;
  margin: 0 auto 4px;
  background: url(../images/cvp/icon_kentei_color.png) no-repeat;
  background-size: contain;
}

.p-cvp_content .cvp_t {
  font-size: 1.4rem;
  line-height: 1.65;
  margin-bottom: 12px;
}
.p-cvp_content .cvp_t br {
  display: none;
}

.p-cvp_item {
  padding: 30px;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}

.p-cvp_item .cvp_foot_box {
  max-width: 440px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  border-top: 5px solid var(--theme_color);
  margin: 0 auto;
  padding: 20px 4% 30px;
}

.p-cvp_item.p-cvp_item__kentei {
  background-image: url(../images/cvp/bg_kentei.png);
}
.p-cvp_item.p-cvp_item__kentei .cvp_title::before {
  background-image: url(../images/cvp/icon_kentei_color.png);
}

.p-cvp_item.p-cvp_item__katsuyou {
  background-image: url(../images/cvp/bg_katsuyou.png);
}
.p-cvp_item.p-cvp_item__katsuyou .cvp_title::before {
  background-image: url(../images/cvp/icon_katsuyou_color.png);
}

.p-cvp_item.p-cvp_item__ninteikou {
  background-image: url(../images/cvp/bg_ninteikou.png);
}
.p-cvp_item.p-cvp_item__ninteikou .cvp_title::before {
  background-image: url(../images/cvp/icon_ninteikou_color.png);
}

.p-cvp_item .p-button_arr {
  margin: 0 auto;
}

.p-cvp_contact {
  margin: 60px auto;
  padding: 35px 10px;
  background: url(../images/cvp/bg_contact_mob.png) no-repeat;
  background-size: cover;
}

.p-cvp_contact .cvp_title {
  font-size: 2rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.5;
  color: #fff;
  text-align: center;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
  margin: 0 auto 15px;
}

.p-cvp_contact .cvp_t {
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 0.06em;
  text-align: center;
  text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
  color: #fff;
  margin-bottom: 20px;
}
.p-cvp_contact .cvp_t b {
  color: #ff9cb3;
}

.p-cvp_contact .c-button_contact {
  height: 62px;
  min-width: 285px;
  width: -moz-fit-content;
  width: fit-content;
}

.p-cvp_ninteikou {
  display: flex;
  flex-direction: column;
  gap: 25px;
  max-width: 550px;
  margin: 40px auto;
}

.cvp_ninteikou_item {
  padding: 25px 5%;
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1);
  border-radius: 4px;
  border-top: 3px solid var(--theme_color);
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 0 0 50%;
}

.cvp_ninteikou_item .set {
  display: flex;
  gap: 15px;
}

.cvp_ninteikou_item .ttl {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.65;
  text-align: center;
  margin-bottom: 15px;
}

.cvp_ninteikou_item .t {
  margin-bottom: 15px;
}

.cvp_ninteikou_item .imagearea {
  flex: 0 0 90px;
}

.cvp_ninteikou_item .c-button {
  width: 180px;
  position: relative;
  margin-top: auto;
}

.cvp_ninteikou_item .c-button .maruarr {
  width: 20px;
  height: 20px;
  position: absolute;
  right: 16px;
}
.cvp_ninteikou_item .c-button .maruarr img {
  width: 8px;
  height: 8px;
}

@media (min-width: 768px) {
  .p-cvp_content {
    margin: 60px auto;
    padding: 0 40px;
  }
  .p-cvp_content .p-cvp_item {
    width: 100%;
    border-radius: 4px;
  }
  .p-cvp_content .p-cvp_item .cvp_foot_box {
    max-width: 660px;
  }
  .p-cvp_contact {
    max-width: 1520px;
    margin-left: auto;
    margin-right: auto;
    border-radius: 4px;
    padding: 50px 10px;
    background-image: url(../images/cvp/bg_contact_pc.png);
  }
  .p-cvp_contact .cvp_title {
    font-size: 2.8rem;
    margin: 0 auto 25px;
  }
  .p-cvp_contact .cvp_t {
    font-size: 1.5rem;
    margin-top: -5px;
  }
  .p-cvp_contact .cvp_t br.mob_only {
    display: none;
  }
  .p-cvp_contact .c-button_contact {
    font-size: 1.8rem;
    min-width: 335px;
    height: 82px;
  }
  .p-cvp_contact .c-button_contact .icon {
    width: 24px;
    height: 24px;
    margin-right: 4px;
  }
  .p-cvp_ninteikou {
    flex-direction: row;
    max-width: none;
  }
  .cvp_ninteikou_item {
    padding: 25px 5% 30px;
  }
  .cvp_ninteikou_item .set {
    gap: 25px;
  }
  .cvp_ninteikou_item .ttl {
    font-size: 2rem;
  }
}
@media (min-width: 960px) {
  .p-cvp_content {
    display: flex;
    flex-direction: row;
    max-width: 1600px;
    margin: 100px auto;
  }
  .p-cvp_content .p-cvp_item {
    display: flex;
    flex-direction: column;
    padding: 0;
    flex: 1;
  }
  .p-cvp_content .p-cvp_item .cvp_foot_box {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    width: 90%;
    margin-top: -270px;
    padding: 24px 10% 40px;
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.1);
  }
  .p-cvp_content .p-cvp_item .cvp_foot_box .p-button_arr {
    margin-top: auto;
  }
  .p-cvp_content .p-cvp_item::before {
    content: "";
    display: block;
    width: 100%;
    height: 360px;
    border-radius: 4px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
  }
  .p-cvp_content .p-cvp_item.p-cvp_item__kentei::before {
    background-image: url(../images/cvp/bg_kentei.png);
  }
  .p-cvp_content .p-cvp_item.p-cvp_item__katsuyou::before {
    background-image: url(../images/cvp/bg_katsuyou.png);
  }
  .p-cvp_content .p-cvp_item.p-cvp_item__ninteikou::before {
    background-image: url(../images/cvp/bg_ninteikou.png);
  }
  .p-cvp_content .p-cvp_item.p-cvp_item__kentei {
    background: transparent;
  }
  .p-cvp_content .p-cvp_item.p-cvp_item__katsuyou {
    background: transparent;
  }
  .p-cvp_content .p-cvp_item.p-cvp_item__ninteikou {
    background: transparent;
  }
  .p-cvp_content .cvp_title {
    font-size: 2.4rem;
  }
  .p-cvp_content .cvp_title::before {
    width: 48px;
    height: 48px;
  }
  .p-cvp_content .cvp_t {
    text-align: center;
    margin-bottom: 24px;
  }
  .p-cvp_content .cvp_t br {
    display: initial;
  }
  .p-cvp_item .p-button_arr {
    min-width: 300px;
  }
  .p-cvp_item .p-button_arr br {
    display: none;
  }
  .p-cvp_ninteikou {
    flex-direction: row;
    gap: 30px;
    margin: 60px auto;
  }
  .cvp_ninteikou_item {
    flex: 1 1 550px;
    padding: 25px 50 30px;
  }
  .cvp_ninteikou_item .imagearea {
    flex: 0 0 134px;
  }
}
@media (min-width: 1400px) {
  .p-cvp_content .p-cvp_item .cvp_foot_box {
    width: 80%;
    margin-top: -220px;
  }
}
/*グローバルナビゲーション*/
.j-nav_tgr {
  padding-right: 30px;
}
.j-nav_tgr::after {
  content: "";
  display: block;
  width: 20px;
  height: 20px;
  background: url(../images/common/arr_min_black.svg) no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  right: 10px;
  transform: translateY(-50%) rotate(90deg);
}

.j-nav_tgr.is-active::after {
  background-image: url(../images/common/arr_min_color.svg);
}

.j-nav_tgr.is-active > a {
  color: var(--theme_color);
}

/*---------------------------
pagetop
---------------------------*/
.c-pagetop {
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 58px;
  height: 58px;
  z-index: 100;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
  cursor: pointer;
}
.c-pagetop img {
  transition: 0.3s;
}
.c-pagetop img:hover {
  opacity: 0.8;
}
.c-pagetop.is-show {
  opacity: 1;
  visibility: visible;
}

/*表*/
table.p-normal {
  border: 1px solid #000;
  vertical-align: top;
  table-layout: auto;
}
table.p-normal th {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.8;
  text-align: left;
  color: #fff;
  background: #000;
  padding: 15px;
  border-bottom: 1px solid #fff;
  vertical-align: top;
}
table.p-normal td {
  font-size: 1.5rem;
  line-height: 1.8;
  text-align: left;
  padding: 15px;
  border-bottom: 1px solid #000;
}
table.p-normal td .s {
  font-size: 1.4rem;
}
table.p-normal td p + p {
  margin-top: 1em;
}

.amount {
  font-size: 1.8rem;
  font-weight: 600;
  margin-bottom: 0.5em;
}
.amount .min {
  font-size: 80%;
}

table.p-kasen {
  border-collapse: collapse;
  width: 100%;
}
table.p-kasen tr {
  border-bottom: 1px solid #e3e3e3;
}
table.p-kasen th,
table.p-kasen td {
  font-size: 1.6rem;
  line-height: 1.65;
  display: block;
  width: 100%;
  text-align: left;
}
table.p-kasen th {
  font-weight: 600;
  text-align: left;
  padding: 0.5em 0;
  padding-bottom: 0;
}
table.p-kasen td {
  padding: 0.5em 0;
}

@media (min-width: 960px) {
  table.p-kasen tr {
    border: none;
  }
  table.p-kasen th,
  table.p-kasen td {
    border-bottom: 1px solid #e3e3e3;
    padding: 0.6em;
    width: auto;
    display: table-cell;
    height: 72px;
  }
  table.p-kasen th {
    border-bottom: 1px solid var(--theme_color);
    width: 20%;
    min-width: 4em;
  }
  table.p-normal th {
    padding: 22px 25px;
    border-bottom: 1px solid #fff;
    vertical-align: middle;
  }
  table.p-normal td {
    padding: 22px 25px;
  }
}
/*---------------------------
front-page
---------------------------*/
/*mv------------------------------*/
.mv {
  background: url(../images/common/mv_mob.webp) no-repeat center top/cover;
}

.mv_inner {
  position: relative;
  padding: 0 20px;
  height: 420px;
}

.mv_title_area {
  position: absolute;
  bottom: 60px;
}

.mv .site_title img {
  height: 53px;
  width: auto;
}

.mv .site_desc {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.65;
  color: #fff;
  text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.4);
  margin: 12px 0 0;
}

@media (min-width: 640px) {
  .mv .site_title img {
    height: 70px;
  }
  .mv .site_desc {
    font-size: 1.6rem;
  }
}
@media (min-width: 768px) {
  .mv {
    background-image: url(../images/common/mv_pc.webp);
  }
  .mv .site_title img {
    height: 80px;
  }
  .mv .site_desc {
    font-size: 1.8rem;
  }
}
@media (min-width: 960px) {
  .mv_inner {
    height: 840px;
    height: 800px;
    padding-left: 40px;
    padding-right: 40px;
    max-width: 1600px;
    margin-left: auto;
    margin-right: auto;
  }
  .mv_title_area {
    bottom: 160px;
  }
  .mv .site_title img {
    height: 114px;
  }
  .mv .site_desc {
    font-size: 2.2rem;
  }
}
@media (min-width: 960px) {
  .mv .site_title img {
    height: 120px;
  }
  .mv .site_desc {
    font-size: 2.4rem;
  }
}
/*front_sec------------------------------*/
.front_sec {
  margin: 90px auto 60px;
  padding-left: 15px;
  padding-right: 15px;
}

.front_sec_inner {
  display: flex;
  flex-direction: column;
  position: relative;
}

.front_ttlarea {
  position: relative;
  text-align: center;
}

.bgttl {
  font-size: 6rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.01em;
  color: #ffedea;
  white-space: nowrap;
  position: absolute;
  left: 50%;
  top: -50px;
  transform: translateX(-50%);
  z-index: -1;
}

.addttl {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--theme_color);
  margin: 0 auto 12px;
}

.front_sec .addttl {
  font-size: 1.5rem;
}

.secttl {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.65;
  margin: 0 auto 20px;
}

.secttl_bou {
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.65;
  text-align: center;
  position: relative;
  margin-bottom: 60px;
}
.secttl_bou::before {
  content: "";
  display: block;
  width: 60px;
  height: 2px;
  background: var(--theme_color);
  position: absolute;
  bottom: -18px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-block;
}

.secsubttl {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.65;
  margin-bottom: 20px;
}

.front_sec .p-cvp_content {
  margin: 0 auto;
  position: relative;
  gap: 25px;
  top: -15px;
}
.front_sec .p-cvp_item {
  padding: 0;
  background: initial;
}
.front_sec .p-cvp_item .cvp_foot_box {
  width: 100%;
  max-width: none;
  padding: 20px 6% 30px;
}

.front_sec1 {
  position: relative;
  margin: 0 auto 120px;
  overflow: initial;
}
.front_sec1::before {
  content: "";
  display: block;
  background: #fcecec url(../images/common/bg_front_sec1_mob.png) no-repeat;
  background-size: 100%;
  background-position: bottom;
  width: 100%;
  height: 90%;
  position: absolute;
  top: 0;
  left: 0;
}

.front_sec1_ttl {
  font-size: 2.2rem;
  font-weight: 600;
  line-height: 1.65;
  color: var(--theme_color);
  margin-bottom: 15px;
}

.front_sec1 .inner {
  position: relative;
  margin: 30px auto 0;
  padding-left: 10px;
  padding-right: 10px;
}

.front_sec1_decoset {
  display: flex;
  gap: 20px;
  justify-content: center;
  margin-bottom: 8px;
  position: relative;
  left: 10px;
}

.front_sec1_decoset .img_deco1 {
  width: 32vw;
  flex: 0 0 32vw;
  height: 100%;
}

.front_sec1_decoset .img_deco2 {
  width: 41vw;
  flex: 0 0 41vw;
  height: 100%;
  margin-top: 20px;
}

.front_sec_cont {
  margin-top: 100px;
}

.front_sec_cont .textarea {
  display: contents;
}

.front_sec_cont .imagearea {
  margin: 20px auto 30px;
  max-width: 620px;
}

.front_sec_cont .p-button_arr {
  order: 3;
}

.front_sec_exam .textarea > p {
  order: 1;
}
.front_sec_exam .imagearea {
  margin-top: 0;
}

.front_sec_lear .textarea > p {
  order: 1;
}
.front_sec_lear .imagearea {
  margin-top: 0;
}

.front_sec_topics {
  background-color: var(--theme_color_light);
  background-image: url(../images/common/bg_str_gray.png);
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-top: 30px;
  padding-bottom: 50px;
}

.front_sec_topics .topics_list {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.front_sec_topics .topics_list a {
  flex: 0 0 calc((100% - 10px) / 2);
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 16/9;
  background-color: #fff;
  overflow: hidden;
}
.front_sec_topics .topics_list a img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.3s;
}

.front_sec_topics .topics_list a:hover img {
  transform: scale(1.03);
}

@media (min-width: 640px) {
  .front_sec1 .inner {
    text-align: center;
    max-width: 820px;
    margin: 50px auto 0;
  }
  .front_sec1_decoset {
    display: contents;
  }
  .front_sec1_decoset .img_deco1 {
    position: absolute;
    left: 0;
    width: 140px;
    width: 22vw;
    height: auto;
  }
  .front_sec1_decoset .img_deco2 {
    position: absolute;
    top: 60%;
    right: -5px;
    width: 150px;
    width: 20vw;
    height: auto;
    margin: 0;
  }
}
@media (min-width: 768px) {
  .front_sec {
    margin: 120px auto;
    padding-left: 40px;
    padding-right: 40px;
  }
  .secttl_bou {
    font-size: 2.8rem;
    margin-bottom: 80px;
  }
  .bgttl {
    font-size: 10rem;
    top: -60px;
  }
  .addttl {
    font-size: 1.8rem;
  }
  .front_sec .addttl {
    font-size: 1.8rem;
    margin: 0 auto 20px;
  }
  .secttl {
    font-size: 2.4rem;
  }
  .secsubttl {
    font-size: 2.2rem;
  }
  .front_sec1 {
    margin: 0 auto 160px;
  }
  .front_sec1 .m br.mob_only {
    display: none;
  }
  .front_sec1_decoset .img_deco1 {
    width: 18vw;
  }
  .front_sec1_decoset .img_deco2 {
    width: 16vw;
  }
  .front_sec .p-cvp_content {
    flex-direction: row;
    padding: 0;
  }
  .front_sec_cont {
    margin-top: 120px;
  }
  .front_sec_topics {
    padding-top: 50px;
    padding-bottom: 80px;
  }
  .front_sec_topics .topics_list {
    gap: 20px;
  }
  .front_sec_topics .topics_list a {
    flex: 0 0 calc((100% - 20px) / 2);
  }
}
@media (min-width: 960px) {
  .front_sec {
    margin: 140px auto;
    padding-left: 40px;
    padding-right: 40px;
    max-width: 1600px;
  }
  .front_sec_inner {
    gap: 60px;
    flex-direction: row;
    padding-left: 40px;
    padding-right: 40px;
    margin: 0 auto;
    max-width: 1400px;
  }
  .front_sec_cont {
    margin-top: 180px;
  }
  .front_sec .p-cvp_content {
    top: -80px;
    gap: 30px;
    max-width: 1400px;
  }
  .front_sec .p-cvp_content .p-cvp_item::before {
    display: none;
  }
  .front_sec .p-cvp_content .p-cvp_item .cvp_foot_box {
    margin-top: 0;
    padding: 24px 10% 40px;
  }
  .front_ttlarea {
    text-align: left;
  }
  .secttl_bou {
    font-size: 3.2rem;
  }
  .addttl {
    font-size: 2.4rem;
    margin: 0 auto 15px;
  }
  .secsubttl {
    font-size: 2.4rem;
  }
  .bgttl {
    position: absolute;
    top: -90px;
    right: -20px;
    left: initial;
    transform: initial;
  }
  .front_sec .addttl {
    display: inline-block;
    position: relative;
  }
  .front_sec .addttl::before {
    content: "";
    display: block;
    width: 140px;
    height: 1px;
    background: var(--theme_color);
    position: absolute;
    top: 10px;
    left: 120%;
  }
  .front_sec1 {
    max-width: none;
    margin: 0 auto 150px;
    padding-bottom: 100px;
  }
  .front_sec1::before {
    height: 100%;
    background-color: #fcecec;
    background-image: url(../images/common/bg_front_sec1_pc.png);
  }
  .front_sec1 .inner {
    margin: -10px auto 0;
    max-width: 1080px;
    padding-bottom: 100px;
  }
  .front_sec1_ttl {
    font-size: 3.2rem;
    letter-spacing: 0.05em;
  }
  .front_sec1 p.m {
    font-size: 1.8rem;
    line-height: 2;
    letter-spacing: 0.05em;
  }
  .front_sec1_decoset .img_deco1 {
    width: 190px;
    width: 19vw;
    max-width: 314px;
    height: auto;
    top: -20px;
  }
  .front_sec1_decoset .img_deco2 {
    width: 180px;
    width: 18vw;
    max-width: 302px;
    height: auto;
    top: 45%;
  }
  .front_sec_cont .textarea {
    display: block;
    flex: 1 1 45%;
  }
  .front_sec_cont .imagearea {
    flex: 1 1 55%;
    margin: 50px 0 0 0;
  }
  .front_sec_style .bgttl {
    font-size: 12rem;
    top: -90px;
  }
  .front_sec_style .imagearea {
    margin-top: 80px;
  }
  .front_sec_exam {
    margin-top: 100px;
  }
  .front_sec_exam .bgttl {
    font-size: 11rem;
    top: -80px;
  }
  .front_sec_exam .imagearea {
    max-width: 505px;
  }
  .front_sec_lear .bgttl {
    font-size: 12rem;
    top: -90px;
  }
  .front_sec_lear .imagearea {
    margin-top: 80px;
    max-width: 580px;
  }
  .front_sec_cont .p-button_arr {
    margin: 40px auto 0 0;
  }
  .front_sec_cont .p-button_arr br {
    display: none;
  }
  .front_sec_news .c-newslist_card article {
    flex: 0 0 calc((100% - 60px) / 4);
  }
  .front_sec_topics {
    max-width: none;
  }
}
@media (min-width: 1400px) {
  .front_sec1 {
    margin: 0 auto 240px;
  }
  .front_sec1 .inner {
    margin: 20px auto 0;
    max-width: 1310px;
  }
  .front_sec1_decoset .img_deco1 {
    width: 314px;
  }
  .front_sec1_decoset .img_deco2 {
    width: 302px;
  }
  .bgttl {
    right: -40px;
  }
  .front_sec_style .bgttl {
    font-size: 14rem;
  }
  .front_sec_exam {
    margin-top: 160px;
  }
  .front_sec_exam .bgttl {
    font-size: 14rem;
    top: -100px;
  }
  .front_sec_lear .bgttl {
    font-size: 14rem;
  }
  .front_sec_news .c-newslist {
    gap: 35px 30px;
  }
  .front_sec_news .c-newslist_card article {
    flex: 0 0 calc((100% - 90px) / 4);
  }
  .front_sec_topics .topics_list a {
    flex: 0 0 calc((100% - 60px) / 4);
  }
}
/*検定の3つのレベル------------------------------*/
.c-lebel {
  background: url(../images/common/bg_dot_blue.png);
  background-size: 15px;
  padding: 30px 0 20px;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  margin-top: 60px;
}

.c-lebel .ttl {
  font-size: 2rem;
  font-weight: 600;
  margin-bottom: 10px;
}

.c-lebel .lebelttl {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.65;
  color: #0c3a5a;
  text-align: center;
  margin-bottom: 20px;
}

.lebelttl_addset {
  display: flex;
  justify-content: center;
  margin-bottom: 8px;
  gap: 4px;
}

.c-lebel .lebelttl_add {
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 20px;
  color: #fff;
  text-align: center;
  display: inline-block;
  width: 90px;
  padding: 2px 2px 4px;
}

.c-lebel .lebelttl_add:nth-of-type(1) {
  background: #8ac8f3;
}

.c-lebel .lebelttl_add:nth-of-type(2) {
  background: #3386c0;
}

.c-lebel .lebelttl_add:nth-of-type(3) {
  background: #0c3a5a;
}

.c-lebel .zoom_t {
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.03em;
  text-align: center;
  position: relative;
}
.c-lebel .zoom_t .u-icon {
  position: relative;
  top: 5px;
}

.c-lebel .imagearea {
  width: 80%;
  max-width: 640px;
  margin: 0 auto 15px;
}

.c-lebel_type2 {
  width: 100%;
  padding-left: 20px;
  padding-right: 20px;
  margin-left: auto;
  margin-right: auto;
  border-radius: 10px;
}

.c-lebel_type2 .textarea {
  text-align: center;
}

.c-lebel_type2 .imagearea {
  width: 100%;
}

@media (min-width: 768px) {
  .c-lebel {
    padding: 50px 0 50px;
    margin-top: 90px;
  }
  .lebelttl_addset {
    gap: 8px;
    margin-bottom: 12px;
  }
  .c-lebel .lebelttl_add {
    font-size: 2.4rem;
    width: 125px;
    line-height: 24px;
  }
  .c-lebel .lebelttl {
    font-size: 2rem;
    margin-bottom: 40px;
  }
  .c-lebel .lebelttl br {
    display: none;
  }
  .c-lebel .ttl {
    font-size: 2.8rem;
  }
  .c-lebel_type2 {
    padding: 50px 40px;
  }
  .c-lebel_type2 .inner {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .c-lebel_type2 .textarea {
    text-align: left;
  }
  .c-lebel_type2 .imagearea {
    margin: 0;
  }
  .zoom_t {
    display: none;
  }
}
/*Styling Mapの活用事例------------------------------*/
.c-jirei {
  padding-left: 15px;
  padding-right: 15px;
  margin-bottom: 40px;
}

.c-jirei .jirei_headarea {
  margin-bottom: 30px;
}

.c-jirei .jirei_inner {
  border-radius: 10px;
  background: #ffe5df;
  background: linear-gradient(-45deg, rgb(255, 229, 223) 0%, rgb(253, 239, 238) 47%, rgb(255, 227, 235) 100%);
  padding: 30px 20px 50px;
  margin-left: auto;
  margin-right: auto;
}

.c-jirei .jirei_ttl {
  font-size: 2rem;
  line-height: 1.4;
  margin-bottom: 12px;
}

.c-jirei .jirei_cont_ttl {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.65;
  position: relative;
  padding-left: 20px;
  margin-bottom: 18px;
  margin-top: 18px;
}
.c-jirei .jirei_cont_ttl::before {
  content: "";
  width: 17px;
  height: 17px;
  background: url(../images/common/jirei_ttlstar1.svg) no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
}

.jirei_linkbox_set {
  display: flex;
  flex-direction: column;
  gap: 15px;
  padding-bottom: 20px;
  margin-bottom: 18px;
  border-bottom: 1px dashed #b9b9b9;
}

.jirei_cont:last-of-type .jirei_linkbox_set {
  border: none;
  margin-bottom: 0;
}

.jirei_linkbox {
  background: #fff;
  border-radius: 10px;
  padding: 20px 20px 25px 0;
  display: block;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.05);
}

.jirei_linkbox.arryaji::after {
  right: 10px;
}

.jirei_linkbox .ttl {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 12px;
  padding-left: 20px;
  position: relative;
}
.jirei_linkbox .ttl::before {
  content: "";
  display: block;
  width: 6px;
  height: 22px;
  border-radius: 1px;
  background: #f27e9d;
  position: absolute;
  top: 0;
  left: 0;
}

.jirei_linkbox .t {
  font-size: 1.4rem;
  line-height: 1.65;
  padding-left: 20px;
}

.c-jirei .gakkou .jirei_cont_ttl::before {
  background-image: url(../images/common/jirei_ttlstar2.svg);
}
.c-jirei .gakkou .jirei_linkbox .ttl::before {
  background: #f85d87;
}

.c-jirei .pro .jirei_cont_ttl::before {
  background-image: url(../images/common/jirei_ttlstar3.svg);
}
.c-jirei .pro .jirei_linkbox .ttl::before {
  background: #bf1a46;
}

.c-jirei .p-button_arr {
  margin-top: 30px;
}

@media (min-width: 768px) {
  .c-jirei {
    padding-left: 40px;
    padding-right: 40px;
    margin-bottom: 80px;
  }
  .c-jirei .jirei_headarea {
    margin-bottom: 50px;
  }
  .c-jirei .jirei_inner {
    padding: 50px 55px;
    max-width: 1200px;
  }
  .c-jirei .jirei_ttl {
    font-size: 2.8rem;
  }
  .c-jirei .jirei_cont_ttl {
    font-size: 1.8rem;
    padding-left: 28px;
  }
  .c-jirei .jirei_cont_ttl::before {
    width: 22px;
    height: 22px;
  }
  .jirei_linkbox_set {
    padding-bottom: 30px;
    margin-bottom: 30px;
  }
  .jirei_linkbox {
    padding: 45px 50px 45px 0;
  }
  .jirei_linkbox .ttl {
    font-size: 1.8rem;
    padding-left: 30px;
  }
  .jirei_linkbox .t {
    font-size: 1.5rem;
    padding-left: 30px;
  }
  .jirei_linkbox.arryaji::after {
    right: 20px;
  }
  .c-jirei .p-button_arr {
    width: 360px;
  }
}
@media (min-width: 960px) {
  .c-jirei {
    margin-top: 160px;
  }
  .c-jirei .jirei_ttl {
    font-size: 3.2rem;
  }
  .c-jirei .jirei_cont {
    display: flex;
    align-items: center;
  }
  .jirei_linkbox_set {
    flex: 1 1 auto;
  }
  .c-jirei .jirei_cont_ttl {
    flex: 0 0 230px;
    margin: 0 20px 0 0;
  }
}
@media (min-width: 1200px) {
  .jirei_linkbox_set {
    flex-direction: row;
    gap: 30px;
  }
  .jirei_linkbox {
    flex: 0 1 50%;
  }
}
/*テイストチェック------------------------------*/
.c-tcheck {
  padding-left: 15px;
  padding-right: 15px;
  margin-bottom: 40px;
}

.c-tcheck .tcheck_inner {
  border-radius: 10px;
  background: #f7f7f7;
  padding: 30px 20px 50px;
  margin-left: auto;
  margin-right: auto;
}

.c-tcheck .tcheck_ttl {
  font-size: 2rem;
  line-height: 1.4;
  margin-bottom: 12px;
}

.c-tcheck .t {
  font-size: 1.5rem;
}

.tcheck_headarea {
  position: relative;
}
.tcheck_headarea::before {
  content: "";
  display: block;
  width: 93px;
  height: 58px;
  background: url(../images/common/tcheck_deco.png) no-repeat;
  background-size: contain;
  position: absolute;
  top: -20px;
  right: -10px;
}

.c-tcheck .tcheck_cont {
  display: flex;
  gap: 10px;
  justify-content: center;
  margin: 25px auto;
  padding-bottom: 40px;
  border-bottom: 1px dashed #dedede;
}

.c-tcheck .tcheck_item {
  text-align: center;
  padding: 15px 10px 32px;
  background: #fff;
  border-radius: 3px;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.05);
  position: relative;
  width: 100%;
  max-width: 230px;
}
.c-tcheck .tcheck_item::after {
  content: "";
  width: 13px;
  height: 13px;
  position: absolute;
  bottom: 5px;
  right: 5px;
  background-repeat: no-repeat;
  background-size: contain;
}

.c-tcheck .tcheck_item img {
  height: 110px;
  text-align: center;
}

.c-tcheck .tcheck_item:nth-of-type(1)::after {
  background-image: url(../images/common/tcheck_link_blue.svg);
}

.c-tcheck .tcheck_item:nth-of-type(2)::after {
  background-image: url(../images/common/tcheck_link_red.svg);
}

.tcheck_cont_ttl {
  font-size: 1.5rem;
  font-weight: 400;
  text-align: center;
  line-height: 1.5;
  margin-bottom: 18px;
}
.tcheck_cont_ttl b {
  font-size: 120%;
  font-weight: 600;
}

.tcheck_footarea .ttl {
  font-size: 2rem;
  font-weight: 600;
  text-align: center;
  margin: 0 auto 15px;
}

@media (min-width: 768px) {
  .c-tcheck {
    padding-left: 40px;
    padding-right: 40px;
    margin-bottom: 80px;
  }
  .c-tcheck .tcheck_inner {
    max-width: 940px;
    padding: 40px 40px 50px;
  }
  .tcheck_headarea {
    text-align: center;
  }
  .tcheck_cont_ttl br {
    display: none;
  }
  .c-tcheck .tcheck_ttl {
    font-size: 2.6rem;
  }
  .c-tcheck .tcheck_cont {
    margin: 30px auto 40px;
    gap: 18px;
  }
  .tcheck_footarea {
    text-align: center;
  }
  .c-tcheck .p-button_arr {
    margin-top: 20px;
  }
}
/*タップで拡大------------------------------*/
.c-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}

.c-modal.is-open {
  opacity: 1;
  visibility: visible;
}

.c-modal_overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  cursor: pointer;
}

.c-modal_content {
  background: #fff;
  padding: 20px;
  position: relative;
  width: 90%;
  max-height: 90%;
  max-width: 1200px;
  z-index: 1;
}

.c-modal_content img {
  width: auto;
  max-width: 100%;
  max-height: calc(100vh - 350px);
  height: auto;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.c-modal_close {
  position: absolute;
  top: -50px;
  right: -10px;
  width: 40px;
  height: 40px;
  background-image: url("../images/common/modal_closebtn.svg");
  background-color: transparent;
  background-repeat: no-repeat;
  background-size: contain;
  border: none;
  cursor: pointer;
  z-index: 1001;
}

/*スタイリング4つのテイスト------------------------------*/
.c-tastenav {
  background: #f4f4f4;
  padding: 30px 0 40px;
  margin-top: 30px;
  margin-bottom: 30px;
}

.c-tastenav .ttl {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  margin-bottom: 35px;
}

.c-tastenav .ttl span {
  display: block;
  position: relative;
}
.c-tastenav .ttl span::before {
  content: "";
  position: absolute;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  background: #000;
  width: 14px;
  height: 14px;
  clip-path: polygon(0 0, 100% 0, 50% 100%);
}

.c-tastenav .tastenav_cont {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 auto;
  width: 85%;
}

.c-tastenav .tastenav_item {
  flex: 0 0 calc((100% - 12px) / 2);
  background: #fff;
  padding: 15px 10px 20px;
  border-radius: 4px;
}

.c-tastenav .taste_icon {
  width: 60px;
  position: absolute;
  top: 25%;
  z-index: 2;
  transition: opacity 0.2s ease-in-out;
}

.c-tastenav .hid_t {
  opacity: 0;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  width: 100%;
  text-align: center;
  position: absolute;
  top: 45%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  transition: opacity 0.2s ease-in-out;
}

.c-tastenav .taste_name {
  font-size: 1.4rem;
  font-weight: 600;
  margin-top: 12px;
  line-height: 1.2;
  text-align: center;
}

.taste_link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: auto;
  max-width: 135px;
}
.taste_link .taste_img {
  z-index: 1;
  transition: opacity 0.2s ease-in-out;
}
.taste_link .taste_img_active {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}
.taste_link::after {
  content: "";
  display: block;
  width: 21px;
  height: 13px;
  background: url(../images/common/arr_taste_brown.svg) no-repeat;
  background-size: contain;
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}
.taste_link.t-aq::after, .taste_link.t-cr::after {
  background: url(../images/common/arr_taste_blue.svg);
}
.taste_link.t-br::after, .taste_link.t-ea::after {
  background: url(../images/common/arr_taste_brown.svg);
}

.taste_link:hover .taste_img {
  opacity: 0;
}
.taste_link:hover .taste_icon {
  opacity: 0;
}
.taste_link:hover .hid_t {
  opacity: 1;
}
.taste_link:hover::after {
  background: url(../images/common/arr_taste_white.svg);
}

@media (min-width: 640px) {
  .c-tastenav .tastenav_cont {
    width: 90%;
    max-width: 1060px;
  }
  .c-tastenav .tastenav_item {
    flex: 0 0 calc((100% - 36px) / 4);
  }
}
@media (min-width: 768px) {
  .c-tastenav {
    padding: 40px 0 50px;
  }
  .c-tastenav .tastenav_cont {
    gap: 15px;
  }
  .c-tastenav .ttl {
    margin-bottom: 20px;
  }
  .c-tastenav .ttl span {
    display: inline-block;
    padding-left: 1em;
  }
  .c-tastenav .ttl span::before {
    bottom: 4px;
    left: -2px;
    transform: initial;
  }
  .c-tastenav .taste_name {
    font-size: 1.6rem;
  }
  .c-tastenav .taste_icon {
    width: 86px;
  }
  .c-tastenav .tastenav_item {
    flex: 0 0 calc((100% - 45px) / 4);
    padding: 25px 10px 30px;
  }
  .taste_link {
    max-width: 174px;
  }
}
/*検定の仕組み（ステップデザイン）--*/
.c-kentei_step {
  padding-left: 15px;
  padding-right: 15px;
}

.kstep_cont {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  padding-bottom: 20px;
}

.kstep_item {
  flex: 0 0 330px;
  display: flex;
  flex-direction: column;
}

.kstep_item .kstep_titlearea {
  text-align: center;
  margin-bottom: 18px;
  position: relative;
}

.kstep_item + .kstep_item .kstep_titlearea::before {
  content: "";
  display: block;
  width: 17px;
  height: 40px;
  background: url(../images/common/arr_step_color2.svg) no-repeat;
  background-size: contain;
  position: absolute;
  top: 20px;
  left: -20px;
}

.kstep_item .stepttl {
  font-size: 1.8rem;
  line-height: 1.4;
  font-weight: 600;
}

.kstep_item .stepttl .num {
  font-size: 1.7rem;
  font-weight: 600;
  line-height: 1;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: var(--theme_color);
  border-radius: 50%;
  margin: 0 auto 6px;
}

.kstep_item .kstep_contarea {
  height: 100%;
  padding: 25px 10px 20px;
  background: #f4f4f4;
  border-radius: 4px;
  box-shadow: 1px 1px 0 rgba(0, 0, 0, 0.1);
}

.kstep_item .set {
  text-align: center;
}

.kstep_item .set + .set {
  border-top: 1px dashed #000;
  padding-top: 10px;
  margin-top: 10px;
}

.kstep_item .ttl {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 6px;
}

.kstep_item .t {
  font-size: 1.6rem;
  line-height: 1.4;
}

.c-kentei_step .note {
  margin-top: 20px;
}

@media (min-width: 768px) {
  .kstep_cont {
    gap: 35px;
  }
  .kstep_item .kstep_titlearea {
    margin-bottom: 28px;
  }
  .kstep_item .stepttl {
    font-size: 2rem;
  }
  .kstep_item .stepttl .num {
    width: 40px;
    height: 40px;
  }
  .kstep_item .kstep_contarea {
    padding: 28px 15px;
  }
  .kstep_item .set + .set {
    padding-top: 15px;
    margin-top: 15px;
  }
}
@media (min-width: 960px) {
  .kstep_item {
    flex: 0 0 260px;
  }
  .c-kentei_step .note {
    text-align: center;
  }
}
@media (min-width: 1280px) {
  .kstep_cont {
    overflow-x: initial;
    justify-content: center;
  }
}
/*検定の流れ（ステップデザイン）--*/
.c-nstep {
  margin: 10px auto;
}

.nstep_cont {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.nstep_item {
  display: flex;
  gap: 20px;
  border: 1px solid #e6e6e6;
  padding: 23px 20px;
}

.nstep_item .num {
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--theme_color);
  text-align: center;
}

.nstep_item .num span {
  font-size: 1.7rem;
}

.nstep_contarea .ttl {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.5;
  color: var(--theme_color);
  margin-top: 5px;
}

.nstep_contarea p {
  margin-top: 1em;
  margin-bottom: 0;
}

.nstep_contarea .t {
  font-size: 1.5rem;
  line-height: 1.5;
}

.nstep_contarea .s {
  font-size: 1.4rem;
}

@media (min-width: 768px) {
  .c-nstep {
    margin: 40px auto;
  }
}
.c-tstep {
  margin: 40px auto;
}

.tstep_cont {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.tstep_item {
  position: relative;
  border: 1px solid #dedede;
  background: #fff;
  border-radius: 4px;
  padding: 10px 10px 18px;
  text-align: center;
}

.tstep_item + .tstep_item::before {
  content: "";
  display: block;
  width: 17px;
  height: 40px;
  background: url(../images/common/arr_step_color.svg) no-repeat;
  background-size: contain;
  position: absolute;
  top: -40px;
  left: 50%;
  transform: translateX(-50%) rotate(90deg);
}

.tstep_item .num {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  background: var(--theme_color);
  border-radius: 50%;
  margin: 0 auto 6px;
}

.tstep_item .ttl {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--theme_color);
  text-align: center;
}

@media (min-width: 768px) {
  .c-tstep {
    margin: 60px auto;
  }
  .tstep_item .num {
    font-size: 1.6rem;
    width: 30px;
    height: 30px;
  }
  .tstep_item .ttl {
    font-size: 2rem;
    margin-bottom: 8px;
  }
  .tstep_item {
    padding: 25px 10px 35px;
  }
}
@media (min-width: 960px) {
  .tstep_cont {
    flex-direction: row;
    gap: 40px;
  }
  .tstep_item {
    flex: 1 1 100%;
  }
  .tstep_item + .tstep_item::before {
    top: 50%;
    left: -28px;
    transform: translateY(-50%);
  }
}
/*検定プログラムについて--*/
.c-kentei_program {
  background: var(--theme_color_light);
  padding-left: 20px;
  padding-right: 20px;
}

.c-kentei_program .kyouzai_wrap {
  position: relative;
  background: #fff;
  border: 2px solid var(--theme_color);
  border-radius: 4px;
  padding: 30px 4%;
  margin-top: 50px;
}

.c-kentei_program .kyouzai_wrap_ttl {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
}

.c-kentei_program .kyouzai_wrap_ttl span {
  font-size: 1.4rem;
  line-height: 1.2;
  color: #fff;
  display: inline-block;
  padding: 6px 12px;
  border-radius: 100px;
  background: var(--theme_color);
}

.c-kentei_program .kyouzai_card_set {
  display: flex;
  flex-direction: column;
  gap: 17px;
  align-items: center;
  margin-bottom: 20px;
}

.c-kentei_program .kyouzai_card {
  width: 100%;
  background: #f6f6f6;
  padding: 25px 20px 30px;
  border-radius: 4px;
  display: flex;
  flex-direction: column;
}

.c-kentei_program .kyouzai_card .textarea {
  margin: 15px auto 18px;
  padding: 0 5px;
}

.c-kentei_program .kyouzai_card .imagearea {
  text-align: center;
}
.c-kentei_program .kyouzai_card .imagearea img {
  width: auto;
}

.c-kentei_program .kyouzai_card img.k_dig {
  height: 143px;
}

.c-kentei_program .kyouzai_card img.k_text {
  height: 158px;
}

.c-kentei_program .kyouzai_card .kyouzai_name {
  font-size: 1.5rem;
  font-weight: 600;
  text-align: center;
  line-height: 1.2;
  margin-bottom: 8px;
}

.c-kentei_program .kyouzai_card .t {
  font-size: 1.4rem;
  line-height: 1.5;
}

.c-kentei_program .kyouzai_card .btnarea {
  display: flex;
  justify-content: center;
  gap: 5px;
}

.c-kentei_program .c-button {
  max-width: 190px;
}

.c-kentei_program .kyouzai_card .btnarea .c-button {
  flex: 1 1 100%;
}

.c-kentei_program .shikaku_card {
  background: #fff;
  border: 1px solid #000;
  width: 90%;
  margin: 0 auto;
}

.dli_pluse {
  width: 22px;
  height: 22px;
  flex: 0 0 22px;
  display: block;
  background: url(../images/common/pluse.svg) no-repeat;
}

.c-kentei_program .kyouzai_wrap + .dli_pluse {
  margin: 10px auto;
}

@media (min-width: 1100px) {
  .c-kentei_program_cont {
    gap: 10px;
    display: flex;
    align-items: flex-start;
    max-width: 1100px;
    margin-top: 60px;
    margin-left: auto;
    margin-right: auto;
  }
  .c-kentei_program .kyouzai_wrap_ttl span {
    font-size: 1.8rem;
    padding: 8px 24px;
  }
  .c-kentei_program .kyouzai_wrap {
    margin: 0;
    padding: 30px 25px;
  }
  .c-kentei_program .kyouzai_card_set {
    flex-direction: row;
    align-items: initial;
    gap: 10px;
  }
  .c-kentei_program .kyouzai_card {
    flex: 1;
  }
  .c-kentei_program .kyouzai_card .imagearea {
    height: 158px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .c-kentei_program .kyouzai_card .btnarea {
    margin: auto 0 0;
  }
  .c-kentei_program .shikaku_card {
    margin-top: 35px;
    flex: 0 0 310px;
  }
  .c-kentei_program .kyouzai_card + .dli_pluse {
    margin-top: 175px;
  }
  .c-kentei_program .kyouzai_wrap + .dli_pluse {
    margin: 200px auto 0;
  }
}
/*嬉しいポイント--*/
.c-urepoint {
  margin: 40px auto 0;
}

.urepoint_ttl {
  font-size: 2rem;
  text-align: center;
  margin-bottom: 28px;
}

.urepoint_ttl span {
  position: relative;
  display: inline-block;
}
.urepoint_ttl span::before, .urepoint_ttl span::after {
  content: "";
  display: block;
  width: 28px;
  height: 35px;
  background: url(../images/common/deco_urettl.svg) no-repeat;
  background-size: contain;
  position: absolute;
  top: 0;
}
.urepoint_ttl span::before {
  left: -40px;
}
.urepoint_ttl span::after {
  right: -40px;
  transform: rotate(180deg);
}

.c-urepoint .point_box {
  display: flex;
  gap: 15px;
  margin-left: 6px;
  margin-bottom: 15px;
  padding: 10px 20px 20px 10px;
  background: url(../images/common/bg_str.png) repeat;
  background-size: 7px;
  border-radius: 8px;
  position: relative;
}
.c-urepoint .point_box::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: -6px;
  left: -6px;
  background: #fff;
  border-radius: 10px;
}

.c-urepoint .point_box * {
  position: relative;
  z-index: 1;
}

.c-urepoint .point_box .imagearea {
  width: 56px;
  flex: 0 0 56px;
}

.c-urepoint .point_box .t {
  font-size: 1.4rem;
  line-height: 1.5;
}

.c-urepoint .s {
  margin-bottom: 0;
}

.c-urepoint .icon_pdf_color {
  top: 3px;
}

@media (min-width: 768px) {
  .c-urepoint {
    margin: 80px auto 0;
  }
  .urepoint_ttl {
    font-size: 2.8rem;
  }
  .urepoint_ttl span::before {
    left: -50px;
  }
  .urepoint_ttl span::after {
    right: -45px;
  }
  .urepoint_ttl span::before, .urepoint_ttl span::after {
    width: 34px;
    height: 43px;
  }
  .c-urepoint .point_box_wrap {
    display: flex;
    gap: 20px;
    max-width: 920px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 40px;
  }
  .c-urepoint .point_box {
    padding: 20px 30px 30px 22px;
    flex: 1 1 440px;
  }
  .c-urepoint .point_box .imagearea {
    width: 68px;
    flex: 0 0 68px;
  }
  .c-urepoint .point_box .t {
    font-size: 1.8rem;
  }
}
@media (min-width: 960px) {
  .c-urepoint .point_box_wrap {
    display: flex;
    gap: 40px;
  }
}
/*---------------------------
記事一覧
---------------------------*/
.c-postlist_card {
  display: block grid;
  grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr));
  gap: 35px 15px;
  gap: 50px 15px;
}

.c-postlist_card article {
  background: #fff;
  position: relative;
  flex-direction: column;
  gap: 12px;
  display: flex;
}

.c-postlist_card article.u-waku {
  padding: 20px 20px 30px;
  border: 1px solid #ddd;
  border-radius: 4px;
}

.c-postlist_card article.u-wakubg {
  padding: 20px 20px 30px;
  border-radius: 4px;
}

.c-postlist_card article > a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.c-postlist_card .post_imagearea {
  width: 100%;
  border-radius: 4px;
  overflow: hidden;
  aspect-ratio: 3/2;
}

.c-postlist_card .post_imagearea img {
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.3s;
  width: 100%;
  height: 100%;
}

.c-postlist_card article:hover .post_imagearea img {
  transform: scale(1.07);
}

.c-postlist_card .post-ttl {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.5;
  margin-bottom: 10px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.c-postlist_card .p-organization {
  padding-bottom: 4px;
  margin-bottom: 8px;
  border-bottom: 1px dashed #777777;
}

/*横長→カード型*/
.c-newslist_row {
  display: block grid;
  grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr));
  gap: 35px 15px;
}

.c-newslist_row article {
  position: relative;
}

.c-newslist_row article > a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.c-newslist_row .post_imagearea {
  width: 100%;
  min-height: initial;
  border-radius: 4px;
  overflow: hidden;
}

.c-newslist_row .post_imagearea img {
  transition: 0.2s;
}

.c-newslist_row .post_textarea {
  margin-top: 18px;
}

.c-newslist_row .post_textarea .inner {
  display: contents;
}

.c-newslist_row .post-ttl {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.5;
  margin-top: 5px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  transition: 0.2s;
}

.c-newslist_row .post-day {
  font-size: 1.4rem;
  line-height: 1.2;
  margin-bottom: 4px;
  transition: 0.2s;
}

.c-newslist_row .entry_terms {
  display: inline-block;
  margin-right: 5px;
  flex: 0 0 auto;
}

.c-newslist_row article:hover .post_imagearea img {
  transform: scale(1.07);
}

.c-newslist_row .maruarr {
  display: none;
}

.c-newslist_row article:hover .post-ttl,
.c-newslist_row article:hover .post-day {
  color: var(--theme_color);
}

@media (min-width: 768px) {
  .c-postlist_card {
    grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr));
    grid-template-columns: repeat(auto-fill, minmax(min(210px, 100%), 1fr));
    gap: 35px 15px;
  }
  .c-newslist_row {
    gap: 0;
    grid-template-columns: 1fr;
  }
  .c-newslist_row article {
    display: flex;
    gap: 30px;
    align-items: center;
    padding-right: 60px;
    padding-bottom: 25px;
    margin-bottom: 25px;
    border-bottom: 1px dashed #dedede;
    width: 100%;
  }
  .c-newslist_row .post_textarea {
    display: contents;
  }
  .c-newslist_row .post_textarea .inner {
    display: block;
  }
  .c-newslist_row .post_imagearea {
    flex: 0 0 140px;
  }
  .c-newslist_row .maruarr {
    display: flex;
    border: 1px solid #000;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
  }
  .c-newslist_row article:hover .maruarr img {
    animation: arrow 0.5s ease-out;
  }
}
@media (min-width: 960px) {
  .c-postlist_card {
    grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr));
  }
}
.c-newslist {
  display: flex;
  flex-wrap: wrap;
  gap: 35px 20px;
}

.c-newslist_card article {
  position: relative;
  flex: 0 0 calc((100% - 20px) / 2);
}

.c-newslist article > a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.c-newslist .post_imagearea {
  width: 100%;
  min-height: initial;
  border-radius: 4px;
  overflow: hidden;
  aspect-ratio: 3/2;
}

.c-newslist .post_imagearea img {
  transition: 0.2s;
  -o-object-fit: cover;
     object-fit: cover;
}

.c-newslist .post_textarea {
  margin-top: 10px;
}

.c-newslist .post-ttl {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.5;
  margin-top: 5px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

.c-newslist .post-day {
  font-size: 1.4rem;
  line-height: 1.2;
}

.c-newslist article:hover .post_imagearea img {
  transform: scale(1.07);
}

/*---------------------------
記事パーツ
---------------------------*/
.single .u-frame_s {
  margin-top: 30px;
}

/*ページャー*/
.page-numbers_wrap,
#pagination-container {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 30px;
}

.page-numbers {
  font-size: 1.4rem;
  color: #373737;
  text-align: center;
  display: flex;
  flex: 0 0 36px;
  height: 34px;
  align-items: center;
  justify-content: center;
  border-radius: 2px;
  background: #fff;
  margin: 0 4px 10px;
  transition: 0.2s;
}
.page-numbers.current {
  color: #fff;
  border: 1px solid #000;
  background: #000;
}

/*ターム*/
.entry_terms {
  display: inline-block;
  margin-right: 5px;
  flex: 0 0 auto;
}

.p-term {
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.4;
  color: var(--theme_color);
  border: 1px solid var(--theme_color);
  border-radius: 100px;
  padding: 2px 18px;
  margin: 0 5px 5px 0;
  display: inline-block;
}

/*会社名*/
.p-organization {
  font-size: 1.6rem;
  font-weight: 600;
  padding: 0 0 0 28px;
  position: relative;
}
.p-organization::before {
  content: "";
  display: block;
  width: 24px;
  height: 24px;
  position: absolute;
  top: 0;
  left: 0;
  background: url(../images/icon/icon_building_black.svg) no-repeat;
  background-size: contain;
}

.entry-day {
  font-size: 1.4rem;
  line-height: 1.2;
  margin-left: 5px;
  display: inline-block;
}

.entry-header .p-organization {
  margin-top: 10px;
}

.entry-header {
  margin-bottom: 40px;
}

.entry-title {
  font-size: 2rem;
  line-height: 1.65;
  margin: 0 auto 30px;
}

.entry-header .entry-title {
  margin-top: 20px;
}

.single-stylingmap_case .entry-header .entry-title {
  border-top: 1px solid #eee;
  padding-top: 20px;
  margin-top: 20px;
}

.entry-content {
  font-size: 1.5rem;
  line-height: 1.65;
}
.entry-content .post-thumbnail {
  margin-bottom: 40px;
}
.entry-content .wp-block-image {
  margin-bottom: 1em;
}
.entry-content p {
  margin-bottom: 1em;
}
.entry-content ul,
.entry-content ol {
  font-size: 1.5rem;
  line-height: 1.65;
  margin-bottom: 1em;
}
.entry-content p a {
  color: var(--theme_color);
}
.entry-content ul li {
  position: relative;
  padding-left: 12px;
}
.entry-content ul li::before {
  content: "";
  display: block;
  width: 7px;
  height: 7px;
  background: #d4d4d4;
  border-radius: 50%;
  position: absolute;
  top: 8px;
  left: 0;
}
.entry-content ol {
  list-style: auto;
}
.entry-content ol li {
  position: relative;
  margin-left: 1.5em;
}
.entry-content h2.wp-block-heading {
  font-size: 2.4rem;
  line-height: 1.5;
  margin: 40px auto 20px;
}
.entry-content h3.wp-block-heading {
  font-size: 2.2rem;
  font-weight: 600;
  line-height: 1.5;
  margin: 40px auto 20px;
  padding-left: 10px;
  border-left: 2px solid var(--theme_color);
}
.entry-content h4.wp-block-heading {
  font-size: 1.8rem;
  line-height: 1.5;
  font-weight: 600;
  margin: 40px auto 20px;
}
.entry-content h5.wp-block-heading,
.entry-content h6.wp-block-heading {
  font-size: 1.6rem;
  font-weight: 600;
  margin: 40px auto 20px;
}
.entry-content .wp-block-group,
.entry-content .wp-block-columns,
.entry-content .wp-block-media-text {
  margin: 40px auto;
}
.entry-content .wp-block-embed {
  text-align: center;
}
.entry-content .wp-block-group .wp-block-heading {
  margin: 20px auto;
}
.entry-content .wp-block-group .wp-block-columns {
  margin: 20px auto;
}
.entry-content .wp-block-columns .wp-block-heading {
  margin: 0px auto 20px;
}
.entry-content .wp-block-media-text .wp-block-heading {
  margin: 20px auto;
}
@media (max-width: 600px) {
  .entry-content .wp-block-media-text .wp-block-media-text__content {
    padding: 0;
  }
}
.entry-content .wp-block-table {
  margin: 40px auto;
}
.entry-content .wp-block-table table {
  border: 1px solid #000;
  vertical-align: top;
}
.entry-content .wp-block-table table thead {
  border-bottom: none;
}
.entry-content .wp-block-table table th {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.5;
  color: #fff;
  background: #000;
  padding: 15px;
  border-top: 1px solid #000;
  border-left: 1px solid #000;
  border-bottom: 1px solid #fff;
}
.entry-content .wp-block-table table th + th {
  border-left: 1px solid #fff;
}
.entry-content .wp-block-table table td {
  font-size: 1.5rem;
  line-height: 1.5;
  padding: 15px;
  border-bottom: 1px solid #000;
}

@media (min-width: 768px) {
  .single .u-frame_s {
    margin-top: 60px;
  }
  .p-term {
    font-size: 1.4rem;
  }
  .p-organization {
    font-size: 1.6rem;
  }
  .entry-title {
    font-size: 3.2rem;
  }
  .entry-content {
    padding-left: 20px;
    padding-right: 20px;
    font-size: 1.6rem;
  }
  .entry-content ul,
  .entry-content ol {
    font-size: 1.6rem;
  }
  .entry-content ul li::before {
    top: 10px;
  }
  .entry-content h2.wp-block-heading {
    font-size: 2.6rem;
  }
  .entry-content h3.wp-block-heading {
    font-size: 2.4rem;
  }
  .entry-content h4.wp-block-heading {
    font-size: 1.8rem;
  }
  .entry-content h5.wp-block-heading,
  .entry-content h6.wp-block-heading {
    font-size: 1.6rem;
  }
  .entry-content .wp-block-group,
  .entry-content .wp-block-columns,
  .entry-content .wp-block-media-text {
    margin: 80px auto;
  }
  .entry-content .wp-block-media-text .wp-block-media-text__content {
    padding: 0 0 0 8%;
  }
  .entry-content .wp-block-media-text.has-media-on-the-right .wp-block-media-text__content {
    padding: 0 8% 0 0;
  }
  .entry-content .wp-block-table {
    margin: 80px auto;
  }
  .entry-content .wp-block-table table th {
    font-size: 1.6rem;
  }
  .entry-content .wp-block-table table td {
    font-size: 1.6rem;
  }
}
/*---------------------------
パンクズ
---------------------------*/
.rank-math-breadcrumb {
  padding: 0 15px;
  margin: 10px auto 30px;
  overflow: auto;
  white-space: nowrap;
  -ms-overflow-style: none;
}

.rank-math-breadcrumb .separator {
  position: relative;
  top: -1px;
}

.rank-math-breadcrumb > p {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

.rank-math-breadcrumb a,
.rank-math-breadcrumb span {
  font-size: 1rem;
  color: #747474;
  letter-spacing: 0.02em;
}

.rank-math-breadcrumb a {
  transition: 0.2s;
}
.rank-math-breadcrumb a:hover {
  color: var(--theme_color);
}

@media (min-width: 768px) {
  .rank-math-breadcrumb {
    margin-top: 40px;
    padding-left: 40px;
    padding-right: 40px;
  }
  .rank-math-breadcrumb a,
  .rank-math-breadcrumb span {
    font-size: 1.4rem;
  }
}
@media (min-width: 960px) {
  .rank-math-breadcrumb {
    padding-left: 40px;
    padding-right: 40px;
    max-width: 1680px;
  }
}
/*---------------------------
固定ページ（デフォルト）
---------------------------*/
.p-header_df {
  text-align: center;
  margin-bottom: 10px;
  background: url(../images/cover/mv_page_mob.webp) no-repeat;
  background-size: cover;
  height: 154px;
}

.p-header_df .inner {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
}

.p-header_df .p-pttl {
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: #fff;
}

.l-page {
  margin-top: 40px;
}

.l-page.u-frame_m {
  margin-left: auto;
  margin-right: auto;
  padding-left: 15px;
  padding-right: 15px;
}

@media (min-width: 768px) {
  .p-header_df {
    margin-bottom: 40px;
    height: 240px;
  }
  .p-header_df .p-pttl {
    font-size: 2.8rem;
  }
  .l-page .page_sec {
    margin-top: 80px;
  }
  .l-page .entry-content {
    padding-left: 40px;
    padding-right: 40px;
  }
  .l-page .ttl_ribbon_b,
  .l-page .ttl_ribbon_l {
    font-size: 2rem;
  }
}
@media (min-width: 960px) {
  .p-header_df {
    background-image: url(../images/cover/mv_page_pc.webp);
  }
  .l-page .page_sec:first-of-type {
    margin-top: 100px;
  }
  .l-page .page_sec {
    margin-top: 80px;
    margin-bottom: 80px;
  }
  .p-header_df .p-pttl {
    font-size: 3.8rem;
  }
}
/*------------------------------*/
/*過去の投稿*/
.sns_stylingmap .contents_inner h2 {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.5;
  padding-left: 10px;
  margin-bottom: 20px;
  border-left: 2px solid var(--theme_color);
  margin-top: 50px;
}
.sns_stylingmap .contents_inner br {
  display: none;
}

@media (min-width: 768px) {
  .sns_stylingmap .contents_inner h2 {
    font-size: 2rem;
    margin-top: 80px;
  }
}
/*------------------------------*/
/*フリー素材*/
.stylingmap-dl li {
  font-size: 0;
}
.stylingmap-dl ul {
  display: block grid;
  grid-template-columns: repeat(auto-fill, minmax(min(200px, 100%), 1fr));
  gap: 15px;
}
.stylingmap-dl section > h2 {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.5;
  padding-left: 10px;
  margin-bottom: 20px;
  border-left: 2px solid var(--theme_color);
  margin-top: 50px;
}
.stylingmap-dl p a {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--theme_color);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--theme_color);
  border-radius: 100px;
  background: #fff;
  padding: 2px 5px;
  margin-top: 12px;
  transition: 0.2s;
}
.stylingmap-dl p a:hover {
  color: #fff;
  background: var(--theme_color);
  border: 1px solid var(--theme_color);
}
.stylingmap-dl figure a {
  aspect-ratio: 1/1;
  overflow: hidden;
  border: 4px solid #fff;
  box-shadow: 0 0 0 1px #d8d8d8;
  display: block;
}
.stylingmap-dl figure a img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.stylingmap-dl .el_btn {
  font-size: 1.5rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  width: 100%;
  padding: 10px 10px;
  height: 58px;
  background: #000;
  border: none;
  color: #fff;
  transition: 0.3s;
}
.stylingmap-dl .el_btn:hover {
  background: var(--theme_color);
}
.stylingmap-dl .el_btn span::after {
  content: "";
  display: inline-block;
  background-image: url(../images/icon/icon_download_white.svg);
  background-size: contain;
  background-repeat: no-repeat;
  width: 20px;
  height: 20px;
  position: relative;
  top: 3px;
  right: -2px;
}
.stylingmap-dl .footarea {
  text-align: center;
  margin-top: 40px;
}

@media (min-width: 768px) {
  .stylingmap-dl .stylingmap-dl > section:nth-of-type(1) {
    margin-top: 100px;
  }
  .stylingmap-dl ul {
    gap: 20px;
  }
  .stylingmap-dl section > h2 {
    font-size: 2rem;
    margin-top: 80px;
  }
  .stylingmap-dl p a {
    padding: 2px 5px;
  }
  .stylingmap-dl p a:hover {
    color: #fff;
    background: var(--theme_color);
    border: 1px solid var(--theme_color);
  }
  .stylingmap-dl figure a {
    aspect-ratio: 1/1;
    overflow: hidden;
    border: 4px solid #fff;
    box-shadow: 0 0 0 1px #d8d8d8;
    display: block;
  }
  .stylingmap-dl figure a img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }
  .stylingmap-dl .footarea {
    margin-top: 80px;
  }
  .stylingmap-dl .footarea br {
    display: none;
  }
  .stylingmap-dl .el_btn {
    font-size: 1.5rem;
    max-width: 530px;
    margin-left: auto;
    margin-right: auto;
    height: 65px;
  }
}
/*------------------------------*/
/*漫画*/
.styling-map-comic .u-frame_m {
  margin-top: 80px;
}

.c-comic_wrap {
  display: block grid;
  grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
  gap: 20px;
}

.c-comic {
  background: #f9f9f9;
  padding: 10px;
  padding: 12px;
}

.c-comic > div {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}

.c-comic .num {
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
  color: #fff;
  position: absolute;
  bottom: 0;
  left: 0;
  background: #000;
  padding: 5px 15px;
  display: inline-block;
}

.c-comic .imagearea {
  aspect-ratio: 1/1;
  overflow: hidden;
  flex: 1 1 45%;
  position: relative;
  max-width: 180px;
}
.c-comic .imagearea img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: 0.3s;
}

.c-comic .textarea {
  flex: 1 1 55%;
}

.c-comic h3 {
  font-size: 1.6rem;
  font-weight: 600;
  margin-bottom: 0.5em;
}

.c-comic p {
  font-size: 1.4rem;
  line-height: 1.5;
  margin-bottom: 0.5em;
}

.c-comic .btn {
  font-size: 1.4rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #000;
  border: 1px solid #000;
  border-radius: 100px;
  background: #fff;
  padding: 8px;
  margin-top: 8px;
  transition: 0.2s;
}
.c-comic .btn:hover {
  color: #fff;
  background: var(--theme_color);
  border: 1px solid var(--theme_color);
}

@media (min-width: 960px) {
  .c-comic_wrap {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
  }
  .c-comic {
    padding: 0 0 25px;
    display: flex;
    flex-direction: column;
  }
  .c-comic > div {
    display: contents;
  }
  .c-comic .imagearea {
    max-width: none;
    flex: initial;
  }
  .c-comic p {
    font-size: 1.6rem;
  }
  .c-comic p b {
    font-size: 1.4rem;
  }
  .c-comic .textarea {
    padding: 15px 15px 0;
    flex: initial;
  }
  .c-comic .btn {
    font-size: 1.6rem;
    margin-left: 15px;
    margin-right: 15px;
    margin-top: auto;
  }
}
@media (min-width: 1200px) {
  .c-comic_wrap {
    gap: 60px;
  }
}
.l-page .entry-content h2.wp-block-heading {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.5;
  margin: 40px auto 20px;
  padding-left: 10px;
  border-left: 2px solid var(--theme_color);
}
.l-page .entry-content h3.wp-block-heading {
  font-size: 1.8rem;
  line-height: 1.5;
  margin: 40px auto 20px;
}

/*------------------------------*/
/*404*/
.error404 h2 {
  font-size: 2rem;
  margin-bottom: 30px;
  text-align: center;
}

.error404 .l-page .p-button_arr {
  width: 280px;
}

@media (min-width: 768px) {
  .error404 h2 {
    font-size: 2.8rem;
    margin-bottom: 50px;
  }
}
/*---------------------------
固定ページ（メインページ）
---------------------------*/
.p-header {
  text-align: center;
  margin-bottom: 10px;
}
.p-header::before {
  content: "";
  display: block;
  width: 100vw;
  height: 140px;
  background: url(../images/cover/mv_stylingmap_mob.webp) no-repeat;
  margin-bottom: 20px;
}

.p-header .p-pttl {
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin-bottom: 10px;
}

.p-header .p-penttl {
  font-size: 2.3rem;
  color: var(--theme_color);
  letter-spacing: 0.04em;
  font-family: "Allura", cursive;
}

.p-header .p-pttl {
  font-size: 2.4rem;
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: 0.05em;
  margin-bottom: 10px;
}

.l-case_lp .p-header .p-pttl span {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--theme_color);
  display: block;
  margin-top: 8px;
}

.page_sec.u-bg {
  padding-top: 40px;
  padding-bottom: 40px;
}

.page_sec {
  margin-top: 80px;
  margin-bottom: 80px;
}

.page_sec:first-of-type {
  margin-top: 40px;
}

.sec_cont {
  margin: 60px auto;
}

@media (min-width: 768px) {
  .p-header {
    margin-bottom: 40px;
  }
  .p-header::before {
    height: 180px;
  }
  .p-header .p-pttl {
    font-size: 2.8rem;
  }
  .p-header .p-penttl {
    font-size: 2.6rem;
  }
  .page_sec.u-bg {
    padding-top: 80px;
    padding-bottom: 80px;
  }
  .l-case_lp .p-header .p-pttl {
    font-size: 2.8rem;
  }
  .l-case_lp .p-header .p-pttl span {
    font-size: 1.8rem;
  }
}
@media (min-width: 960px) {
  .p-header {
    text-align: left;
    height: 370px;
    background: url(../images/cover/mv_stylingmap_pc.webp) no-repeat;
    background-size: cover;
  }
  .p-header::before {
    display: none;
  }
  .p-header .inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding-left: 40px;
    padding-right: 40px;
    max-width: 1680px;
    height: 100%;
    margin: 0 auto;
  }
  .p-header .p-pttl {
    font-size: 4.2rem;
    font-weight: 500;
  }
  .p-header .p-penttl {
    font-size: 3.6rem;
  }
  .l-case_lp .p-header .p-pttl {
    font-size: 4.2rem;
  }
  .l-case_lp .p-header .p-pttl span {
    font-size: 2rem;
  }
}
/*------------------------------*/
/*スタイリングマップとは*/
.l-stylingmap .cont {
  display: flex;
  flex-direction: column;
  gap: 25px;
  margin: 60px auto;
}

.l-stylingmap .sttowa_ttl {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.5;
  padding-left: 100px;
  margin-bottom: 30px;
  position: relative;
}
.l-stylingmap .sttowa_ttl::before {
  content: "";
  display: block;
  width: 100px;
  height: 40px;
  border-radius: 0 100px 100px 0;
  position: absolute;
  background: #ffd5ef;
  background: linear-gradient(0deg, rgb(255, 213, 239) 0%, rgb(255, 234, 234) 100%);
  position: absolute;
  bottom: 3px;
  left: -15px;
}

.l-stylingmap .sttowa_ttl .num {
  position: absolute;
  left: 0;
  bottom: 16px;
}
.l-stylingmap .sttowa_ttl .num img {
  height: 42px;
}

.l-stylingmap .cont .imagearea {
  margin: auto;
  max-width: 620px;
  position: relative;
}

.l-stylingmap .cont .imagearea .zoombtn {
  width: 59px;
  height: 59px;
  background: url(../images/common/zoombtn.png) no-repeat;
  position: absolute;
  bottom: 10px;
  right: 10px;
  transition: 0.2s;
}
.l-stylingmap .cont .imagearea .zoombtn:hover {
  opacity: 0.8;
}

.l-stylingmap .cont2 {
  gap: 0;
}

.l-stylingmap .cont2 .imagearea {
  margin: auto;
  width: 65%;
  max-width: 400px;
}

@media (min-width: 768px) {
  .page_sec {
    margin-top: 120px;
    margin-bottom: 120px;
    padding-left: 40px;
    padding-right: 40px;
  }
  .page_sec:first-of-type {
    margin-top: 100px;
  }
  .l-stylingmap .page_sec1 p.m,
  .l-stylingmap .page_sec2 p.m {
    text-align: center;
  }
  .l-stylingmap .sttowa_ttl {
    font-size: 2.4rem;
    padding-left: 120px;
  }
  .l-stylingmap .sttowa_ttl .num img {
    height: 60px;
  }
  .l-stylingmap .sttowa_ttl::before {
    width: 115px;
    border-radius: 100px;
  }
  .l-stylingmap .cont2 + .cont2 {
    margin-top: 60px;
  }
  .l-stylingmap .cont2:nth-of-type(2) .sttowa_ttl::before {
    left: -10px;
  }
  .l-stylingmap .cont2:nth-of-type(2) .sttowa_ttl::before {
    left: -12px;
  }
}
@media (min-width: 960px) {
  .page_sec {
    margin-top: 150px;
    margin-bottom: 150px;
  }
  .page_sec:first-of-type {
    margin-top: 120px;
  }
  .l-stylingmap .page_sec1 .cont {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 30px;
  }
  .l-stylingmap .page_sec1 .cont .imagearea {
    flex: 1 1 50%;
  }
  .l-stylingmap .page_sec1 .cont .textarea {
    flex: 1 1 50%;
    text-align: left;
  }
  .l-stylingmap .page_sec1 .cont .textarea .secsubttl,
  .l-stylingmap .page_sec1 .cont .textarea p {
    text-align: left;
  }
  .l-stylingmap .sttowa_ttl {
    padding-left: 120px;
  }
  .l-stylingmap .cont2 {
    flex-direction: row;
    align-items: center;
    gap: 40px;
  }
  .l-stylingmap .cont2 + .cont2 {
    margin-top: 100px;
  }
  .l-stylingmap .cont2 .textarea {
    flex: 1 1 45%;
  }
  .l-stylingmap .cont2:nth-of-type(1) .imagearea {
    max-width: 375px;
  }
  .l-stylingmap .cont2:nth-of-type(2) {
    flex-direction: row-reverse;
    margin-left: 40px;
  }
  .l-stylingmap .cont2:nth-of-type(2) .imagearea {
    max-width: 314px;
  }
  .l-stylingmap .cont2:nth-of-type(3) .imagearea {
    max-width: 454px;
  }
  .l-stylingmap .page_sec3.uframe_m {
    max-width: 1280px;
  }
}
@media (min-width: 1400px) {
  .l-stylingmap .page_sec1 .cont {
    display: flex;
    gap: 60px;
  }
  .l-stylingmap .sttowa_ttl {
    padding-left: 148px;
  }
  .l-stylingmap .cont2 {
    gap: 80px;
  }
  .l-stylingmap .cont2 + .cont2 {
    margin-top: 120px;
  }
  .l-stylingmap .sttowa_ttl::before {
    width: 150px;
    left: -20px;
  }
  .l-stylingmap .sttowa_ttl .num img {
    height: 74px;
  }
}
/*------------------------------*/
/*個人向けサービス*/
.l-personal .cont {
  display: flex;
  flex-direction: column;
  gap: 25px;
  margin: 60px auto;
}

.l-personal .cont .imagearea {
  margin: auto;
  -ms-wrap-flow: 620px;
}

.l-personal .pricebox {
  background: #f7f7f7;
  border: 1px solid #d9e3e8;
  display: flex;
  width: -moz-fit-content;
  width: fit-content;
  padding: 10px 18px;
  justify-content: space-between;
  align-items: flex-end;
}

.l-personal .pricebox .t {
  font-size: 1.4rem;
  margin-right: 1em;
  line-height: 1.4;
  position: relative;
  top: -5px;
}

.l-personal .pricebox .num {
  font-size: 3.8rem;
  font-weight: 600;
  line-height: 1;
  color: #004e6d;
}
.l-personal .pricebox .num span {
  font-size: 40%;
}

.l-personal .c-tstep {
  background: #f7f7f7;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding-top: 40px;
  padding-bottom: 40px;
}

.l-personal .c-tstep > .ttl {
  font-size: 2rem;
  font-weight: 600;
  margin: 0 auto 30px;
  text-align: center;
}

.l-personal .c-tstep .tstep_cont {
  width: 90%;
  max-width: 1260px;
  margin: 0 auto;
}

.l-personal .page_sec1 .c-tstep .tstep_cont {
  max-width: 1260px;
}

.l-personal .page_sec2 .c-tstep .tstep_cont {
  max-width: 1090px;
}

@media (min-width: 960px) {
  .l-personal .page_sec1 .cont,
  .l-personal .page_sec2 .cont {
    max-width: 1200px;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 60px;
  }
  .l-personal .page_sec1 .cont .textarea,
  .l-personal .page_sec2 .cont .textarea {
    flex: 1 1 50%;
  }
  .l-personal .page_sec1 .cont .imagearea,
  .l-personal .page_sec2 .cont .imagearea {
    flex: 1 1 420px;
  }
  .l-personal .pricebox {
    margin-top: 30px;
    width: 400px;
  }
  .l-personal .page_sec2 .cont .textarea {
    flex: 1 1 50%;
  }
  .l-personal .page_sec2 .cont .imagearea {
    flex: 1 1 420px;
  }
  .l-personal .c-tstep .tstep_cont.u-min {
    gap: 20px;
  }
  .l-personal .c-tstep .tstep_cont .t {
    text-align: left;
  }
  .l-personal .c-tstep .tstep_cont.u-row {
    flex-wrap: wrap;
    gap: 30px 10px;
  }
  .l-personal .c-tstep .tstep_cont.u-row .tstep_item {
    flex: 1 1 330px;
    padding-left: 20px;
    padding-right: 20px;
  }
  .l-personal .c-tstep .tstep_cont.u-row .tstep_item + .tstep_item {
    margin-left: 20px;
  }
  .l-personal .c-tstep .tstep_cont.u-row .tstep_item:last-of-type {
    margin-right: -20px;
  }
  .l-personal .c-tstep .tstep_cont.u-row .tstep_item + .tstep_item::before {
    left: -24px;
  }
}
/*------------------------------*/
/*検定プログラムについて*/
.l-examination .cont {
  display: flex;
  flex-direction: column;
  gap: 25px;
  margin: 60px auto;
}

.l-examination .cont .imagearea {
  margin: auto;
  max-width: 620px;
}

.l-examination .page_sec1.u-frame_m {
  max-width: 1440px;
}

.l-examination .page_sec4.u-frame_m {
  max-width: 980px;
}

.l-examination .page_sec4 .page_sec4_cont {
  margin-top: 60px;
}

.l-examination .page_sec4_cont > article {
  margin-top: 40px;
}

.l-examination .page_sec4 .c-button_exlink_wrap {
  max-width: 630px;
}

@media (min-width: 768px) {
  .l-examination .page_sec3 p.m {
    text-align: center;
  }
  .l-examination .page_sec4 .page_sec4_cont {
    margin-top: 80px;
  }
}
@media (min-width: 960px) {
  .l-examination .page_sec1 .cont {
    max-width: 1200px;
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    gap: 60px;
  }
  .l-examination .page_sec1 .cont .textarea .secsubttl,
  .l-examination .page_sec1 .cont .textarea p {
    text-align: left;
  }
  .l-examination .page_sec1 .cont .textarea {
    flex: 1 1 50%;
    text-align: left;
  }
}
/*------------------------------*/
/*受検の流れ*/
.l-apply_flow .page_sec1.u-frame_m,
.l-apply_flow .page_sec2.u-frame_m {
  max-width: 980px;
  margin-bottom: 60px;
}

.l-apply_flow .page_sec2 h3.ttl {
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  margin: 30px auto 30px;
}

.l-apply_flow .tab_lebel_cont .arrnext {
  display: block;
  width: 45px;
  margin: 10px auto;
  margin: 0px auto -10px;
}

.l-apply_flow .tab_lebel_cont .arrnext img {
  transform: rotate(90deg);
}

.l-apply_flow .tab_lebel_cont .cont {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0 auto 50px;
}

.l-apply_flow .tab_lebel_cont .imagearea {
  width: 90%;
  margin: 0 auto;
}

.l-apply_flow .attcont {
  border: 1px solid #c90e0e;
  border-radius: 4px;
  margin: 0 auto;
}

.l-apply_flow .attcont .attcont_ttl {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.2;
  color: #fff;
  display: inline-block;
  background: #c90e0e;
  padding: 3px 20px 10px 18px;
  border-radius: 4px 0 4px 0;
}
.l-apply_flow .attcont .attcont_ttl .u-icon {
  position: relative;
  width: 27px;
  height: 27px;
  top: 6px;
  margin-right: 2px;
}

.l-apply_flow .attcont .inner {
  padding: 25px 20px 35px;
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.l-apply_flow .attcont .ttl {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.4;
  color: #c90e0e;
  margin-bottom: 8px;
}

.l-apply_flow .attcont .t {
  font-size: 1.6rem;
  line-height: 1.8;
}

.l-apply_flow .attcont .imagearea {
  width: 80%;
  margin: 0 auto;
}

.c-holder_cont {
  margin: 60px auto 0;
}

.c-holder_cont .repocard_wrap {
  display: flex;
  gap: 15px;
  flex-wrap: wrap;
  margin: 30px auto 0;
}

.c-holder_cont .repocard {
  background: #f6f6f6;
  padding: 24px 20px 30px;
  position: relative;
  background: #f6f6f6 url(../images/common/bg_holder.png) no-repeat;
  background-size: 197px 333px;
  background-position: right bottom;
  flex: 1 1 320px;
}

.c-holder_cont .repocard .name {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.2;
}
.c-holder_cont .repocard .name span {
  font-size: 1.4rem;
  margin-left: 8px;
}

.c-holder_cont .repocard .repocard_foot {
  display: flex;
  gap: 15px;
  align-items: center;
  justify-content: center;
}

.c-holder_cont .repocard .repocard_foot .c-button {
  flex: 0 0 200px;
}

.c-tab_content {
  display: flex;
  flex-wrap: wrap;
  gap: 0 6px;
}

.c-tab_content > label {
  font-size: 1.5rem;
  text-align: center;
  color: #929292;
  flex: 1 1;
  order: -1;
  min-width: 80px;
  padding: 15px 5px;
  border-radius: 4px 4px 0 0;
  background-color: #ebebeb;
  cursor: pointer;
  border: 1px solid #000;
  border-bottom: transparent;
}

.c-tab_content > label:hover {
  opacity: 0.8;
}

.c-tab_content > label:first-of-type {
  margin-left: 10px;
}

.c-tab_content > label:last-of-type {
  margin-right: 10px;
}

.c-tab_content input {
  display: none;
}

.c-tab_content > article {
  display: none;
  width: 100%;
  padding: 30px 0;
  background-color: #fff;
  border-top: 1px solid #000;
}

.c-tab_content label:has(:checked) {
  opacity: 1;
  background: #02213e;
  color: #fff;
}

.c-tab_content label:has(:checked) + article {
  display: block;
}

@media (min-width: 768px) {
  .l-apply_flow .page_sec1.u-frame_m,
  .l-apply_flow .page_sec2.u-frame_m {
    margin-bottom: 80px;
  }
  .l-apply_flow .page_sec2 h3.ttl {
    font-size: 2.4rem;
    margin: 50px auto 35px;
  }
  .l-apply_flow .page_sec1 .m {
    text-align: center;
  }
  .l-apply_flow .tab_lebel_cont .arrnext {
    margin: 0 auto -30px;
  }
  .l-apply_flow .attcont {
    margin: 80px auto 0;
  }
  .c-holder_cont .repocard_wrap {
    gap: 40px;
    margin: 50px auto 0;
    width: 95%;
  }
  .c-holder_cont .repocard {
    padding: 25px 4% 20px;
    max-width: 400px;
  }
  .c-tab_content {
    gap: 0 8px;
    justify-content: center;
  }
  .c-tab_content > label {
    font-size: 1.8rem;
    max-width: 166px;
  }
  .c-tab_content > article {
    padding: 60px 0;
  }
}
@media (min-width: 960px) {
  .l-apply_flow .c-button_exlink_wrap {
    margin-top: 50px;
  }
  .l-apply_flow .tab_lebel_cont .imagearea {
    flex: 0 0 400px;
  }
  .l-apply_flow .attcont .inner {
    flex-direction: row;
    gap: 55px;
    padding: 30px 30px 35px 40px;
  }
  .l-apply_flow .attcont .ttl {
    margin-bottom: 12px;
  }
  .l-apply_flow .attcont .imagearea {
    flex: 0 0 236px;
    margin-top: 35px;
  }
  .l-apply_flow .tab_lebel_cont .cont {
    flex-direction: row;
    gap: 30px;
    max-width: 860px;
    justify-content: space-between;
  }
}
/*------------------------------*/
/*認定校について*/
.l-school .page_sec1 .cont1 {
  display: flex;
  flex-direction: column;
  gap: 25px;
  margin: 60px auto;
}

.l-school .page_sec1 .cont1 .imagearea {
  margin: auto;
  max-width: 420px;
}

.l-school .page_sec1 .cont2 {
  margin-top: 40px;
}

.l-school .page_sec1 .cont2box_wrap {
  margin-top: 40px;
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.l-school .page_sec1 .cont2box .ttl_ribbon_l {
  font-size: 1.8rem;
}

.l-school .page_sec1 .cont2box li {
  font-size: 1.6rem;
  line-height: 1.5;
  position: relative;
  padding-left: 20px;
}
.l-school .page_sec1 .cont2box li + li {
  margin-top: 10px;
}
.l-school .page_sec1 .cont2box li::before {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  background: #d4d4d4;
  border-radius: 50%;
  position: absolute;
  top: 8px;
  left: 0;
}

.l-school .page_sec1 .cont2box .ttl {
  font-size: 1.8rem;
  font-weight: 600;
  margin: 0 auto 15px;
}

.l-school .page_sec1 .cont2box .tablebox {
  margin: 15px auto;
  border: 1px solid #000;
  font-size: 1.5rem;
}

.l-school .page_sec1 .cont2box th {
  color: #fff;
  background: #000;
  width: 140px;
  padding: 15px;
}

.l-school .page_sec1 .cont2box td {
  padding: 15px;
}
.l-school .page_sec1 .cont2box td .s {
  font-weight: 400;
  font-size: 1.4rem;
}

.l-school .toc_list {
  display: flex;
  gap: 12px;
  max-width: 630px;
  margin: 40px auto 60px;
}

.l-school .toc_list li {
  flex: 1 1 100%;
}

.l-school .toc_list a {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  color: #fff;
  padding: 12px 10px 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #000;
  border-radius: 4px;
  flex-direction: column;
  position: relative;
  transition: 0.2s;
}
.l-school .toc_list a:hover {
  opacity: 0.8;
}
.l-school .toc_list a:hover::after {
  bottom: 6px;
}

.l-school .toc_list a::after {
  content: "";
  position: absolute;
  bottom: 8px;
  left: 50%;
  transition: 0.1s;
  transform: translateX(-50%) rotate(90deg);
  width: 24px;
  height: 24px;
  background: url(../images/common/arr_min_white.svg) no-repeat;
  background-size: contain;
}

.l-school .page_sec2 .wp-block-heading {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.5;
  padding-left: 10px;
  margin-top: 40px;
  margin-bottom: 20px;
  border-left: 2px solid var(--theme_color);
}

@media (max-width: 767px) {
  .l-school .wp-block-table table {
    border: 1px solid #000;
  }
  .l-school .wp-block-table table thead {
    border: none;
    background: #000;
    color: #fff;
  }
  .l-school .wp-block-table table thead tr:nth-child(2) {
    display: none;
  }
  .l-school .wp-block-table table th {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.2;
    color: #fff;
    border: none;
    padding: 15px 8px;
  }
  .l-school .wp-block-table table td {
    font-size: 1.5rem;
    line-height: 1.5;
    border: none;
    padding: 10px 8px;
  }
  .l-school .wp-block-table table td em {
    font-style: normal;
    background: #f1f1f1;
    border-radius: 100px;
    padding: 6px 5px;
  }
  .l-school .wp-block-table table tr {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    border-top: 1px solid #000;
  }
  .l-school .wp-block-table table tr td:nth-child(1) {
    width: 100%;
    font-size: 1.5rem;
    padding-bottom: 5px;
  }
  .l-school .wp-block-table table tr td:nth-child(2) {
    padding-right: 0;
    flex: 0 0 auto;
  }
  .l-school .wp-block-table table tr td:nth-child(3) {
    flex: 0 1 auto;
    padding-left: 5px;
    padding-right: 0;
    margin-right: auto;
  }
  .l-school .wp-block-table table tr td:nth-child(2),
  .l-school .wp-block-table table tr td:nth-child(3) {
    font-size: 1.4rem;
    padding-bottom: 18px;
  }
  .l-school .wp-block-table table a {
    text-decoration: underline;
    color: var(--theme_color);
  }
}
@media (min-width: 768px) {
  .l-school .page_sec2 .wp-block-heading {
    font-size: 1.8rem;
    margin-top: 50px;
  }
  .l-school .page_sec1 .cont2box .tablebox {
    width: 660px;
    margin-left: 0;
  }
  .l-school .page_sec1 .cont2box .tablebox th,
  .l-school .page_sec1 .cont2box .tablebox td {
    padding: 20px 20px;
  }
  .l-school .page_sec1 .cont2box td .s {
    font-size: 1.5rem;
    margin-left: 40px;
  }
  .l-school .wp-block-table table {
    border: 1px solid #000;
  }
  .l-school .wp-block-table table thead {
    background: #000;
    color: #fff;
    border: none;
  }
  .l-school .wp-block-table table thead tr:nth-child(1) {
    display: none;
  }
  .l-school .wp-block-table table th {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.8;
    text-align: left;
    color: #fff;
    background: #000;
    padding: 15px;
    vertical-align: top;
    border-left: 1px solid #000;
  }
  .l-school .wp-block-table table th + th {
    border-left: 1px solid #fff;
  }
  .l-school .wp-block-table table th:last-of-type {
    border-right: 1px solid #000;
  }
  .l-school .wp-block-table table td {
    font-size: 1.5rem;
    line-height: 1.8;
    text-align: left;
    padding: 15px;
    border-bottom: 1px solid #000;
  }
  .l-school .wp-block-table table a {
    text-decoration: underline;
    color: var(--theme_color);
  }
}
@media (min-width: 960px) {
  .l-school .page_sec1 .cont1 {
    max-width: 980px;
    flex-direction: row;
    align-items: center;
    gap: 60px;
  }
  .l-school .page_sec1 .cont1 .imagearea {
    margin: auto;
    flex: 0 0 240px;
  }
  .l-school .page_sec1 .cont2box_wrap {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 50px 70px;
  }
  .l-school .page_sec1 .cont2box {
    flex: 1 1 calc((100% - 70px) / 2);
  }
  .l-school .toc_list {
    margin: 50px auto 60px;
  }
  .l-school .toc_list a {
    font-size: 1.6rem;
    padding: 14px 10px 30px;
  }
  .l-school .wp-block-table th {
    padding: 15px 25px;
  }
  .l-school .wp-block-table td {
    padding: 15px 25px;
  }
}
/*------------------------------*/
/*FSAとは*/
.l-about .sec_lead.u-frame_m {
  max-width: 1340px;
}

.l-about .page_sec2.u-frame_m {
  max-width: 960px;
}

.l-about .sec_lead .secttl_bou {
  font-size: 1.8rem;
  text-align: center;
}
.l-about .sec_lead .secttl_bou .cr {
  color: var(--theme_color);
}

.c-about_set {
  background: #ffd5ef;
  background: linear-gradient(0deg, rgb(255, 213, 239) 0%, rgb(255, 234, 234) 100%);
  padding-top: 40px;
  padding-bottom: 40px;
}

.c-about_set .inner {
  display: flex;
  gap: 40px;
  flex-wrap: wrap;
  justify-content: center;
  padding-left: 15px;
  padding-right: 15px;
  margin: 0 auto;
}

.c-about_set .about_item {
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.8;
  text-align: center;
  flex: 1 1 400px;
  position: relative;
  padding: 20px 10px;
  border-radius: 4px;
  border: 1px solid #ffebeb;
  background: #fff;
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
}
.c-about_set .about_item::before {
  content: "";
  width: 70px;
  height: 46px;
  background: url(../images/common/num_ab1.svg) no-repeat;
  background-size: contain;
  position: absolute;
  top: 0;
  left: 5%;
  transform: translateY(-50%);
}

.c-about_set .about_item:nth-of-type(2)::before {
  background-image: url(../images/common/num_ab2.svg);
}

.c-about_set .about_item:nth-of-type(3)::before {
  background-image: url(../images/common/num_ab3.svg);
}

.c-about_set .about_item:nth-of-type(4)::before {
  background-image: url(../images/common/num_ab4.svg);
}

.l-about .about_cont1,
.l-about .about_cont2,
.l-about .about_cont3 {
  margin: 60px auto;
}

.l-about .sec_cont_ttl {
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.5;
  margin: 0 auto 25px;
}

.l-about .page_sec_cont {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.l-about .page_sec_item .cont {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.l-about .page_sec_item .imagearea.u-bg {
  text-align: center;
  background: var(--theme_color_light);
  padding: 10px;
}

.l-about .page_sec_item .imagearea.u-bg img {
  width: auto;
  height: 165px;
}

.l-about .page_sec_item .textarea .t {
  font-size: 1.6rem;
  line-height: 1.65;
  margin-bottom: 10px;
}

.l-about .page_sec_item .set + .set {
  margin-top: 30px;
}

@media (min-width: 768px) {
  .l-about .sec_lead .secttl_bou {
    font-size: 2.4rem;
  }
  .l-about .sec_lead .m {
    text-align: center;
  }
  .c-about_set .inner {
    padding-left: 40px;
    padding-right: 40px;
  }
  .l-about .about_cont1,
  .l-about .about_cont2,
  .l-about .about_cont3,
  .l-about .about_cont4 {
    margin: 80px auto;
  }
  .l-about .sec_cont_ttl {
    font-size: 2.4rem;
    margin: 0 auto 40px;
  }
  .l-about .page_sec_item .ttl_ribbon_l {
    font-size: 2rem;
  }
  .l-about .page_sec_cont {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 50px;
  }
  .l-about .about_cont2 .page_sec_item {
    flex: 0 1 calc((100% - 50px) / 2);
  }
  .l-about .about_cont3 .page_sec_item {
    flex: 0 1 calc((100% - 50px) / 2);
  }
}
@media (min-width: 960px) {
  .c-about_set {
    margin-top: 60px;
    padding-bottom: 60px;
    background: transparent;
    position: relative;
  }
  .c-about_set::before {
    content: "";
    display: block;
    width: 100vw;
    height: 340px;
    position: absolute;
    bottom: 0;
    left: 0;
    background: #ffd5ef;
    background: linear-gradient(0deg, rgb(255, 213, 239) 0%, rgb(255, 234, 234) 100%);
  }
  .c-about_set .inner {
    max-width: 1060px;
  }
  .c-about_set .about_item {
    padding: 50px 10px;
  }
  .c-about_set .about_item::before {
    width: 85px;
    height: 54px;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
  }
  .l-about .about_cont1,
  .l-about .about_cont2,
  .l-about .about_cont3,
  .l-about .about_cont4 {
    margin: 100px auto;
  }
  .l-about .sec_cont_ttl {
    font-size: 2.8rem;
  }
  .l-about .about_cont1 .page_sec_item .cont,
  .l-about .about_cont4 .page_sec_item .cont {
    flex-direction: row;
    gap: 60px;
  }
  .l-about .page_sec_item .imagearea.u-bg {
    padding: 15px 10px;
    flex: 0 0 40%;
  }
  .l-about .page_sec_item .imagearea.u-bg img {
    width: auto;
    height: auto;
  }
  .l-about .page_sec_item .textarea .t {
    margin-bottom: 18px;
  }
  .l-about .page_sec_item .set + .set {
    margin-top: 45px;
  }
  .l-about .about_cont2 .page_sec_item .cont {
    flex-direction: row;
  }
  .l-about .about_cont3 .page_sec_cont {
    flex-wrap: wrap;
    gap: 40px;
  }
  .l-about .about_cont3 .page_sec_item {
    flex: 0 1 calc((100% - 80px) / 3);
  }
  .l-about .about_cont4 .page_sec_item .imagearea {
    flex: 1 0 510px;
  }
}
/*------------------------------*/
/*教材販売について*/
.l-sales .page_sec1 .cont {
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin: 20px auto;
}

.l-sales .page_sec1 .imagearea {
  padding: 25px;
  background: #f9f9f9;
  border: 1px solid #d8d8d8;
  text-align: center;
}
.l-sales .page_sec1 .imagearea img {
  height: 100%;
  width: auto;
}

.l-sales .page_sec1 table th,
.l-sales .page_sec1 table td {
  width: 100%;
  display: block;
}
.l-sales .page_sec1 table p.s {
  margin-top: 0;
}
.l-sales .page_sec1 table .amount {
  margin-bottom: 0;
}

@media (min-width: 768px) {
  .l-sales .page_sec1 .cont {
    flex-direction: row;
    align-items: flex-start;
    gap: 40px;
  }
  .l-sales .page_sec1 .imagearea {
    flex: 0 0 330px;
  }
  .l-sales .page_sec1 .imagearea img {
    height: auto;
  }
  .l-sales .page_sec1 table th,
  .l-sales .page_sec1 table td {
    display: table-cell;
    vertical-align: top;
  }
  .l-sales .page_sec1 table th {
    width: 20%;
  }
}
@media (min-width: 960px) {
  .l-sales .page_sec1 .cont {
    gap: 60px;
  }
}
/*------------------------------*/
/*お知らせ*/
.category-select select:focus,
.category-select select:focus-visible {
  outline: none;
}

.category-buttons {
  display: none;
}

.category-select select {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
}

.category-select {
  position: relative;
  margin-bottom: 30px;
}
.category-select::before {
  content: "";
  display: block;
  width: 24px;
  height: 24px;
  background: url(../images/common/arr_min_color.svg) no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%) rotate(90deg);
}

.category-select select {
  font-size: 1.5rem;
  color: var(--theme_color);
  width: 100%;
  padding: 18px;
  border: 1px solid var(--theme_color);
  border-radius: 100px;
  background: #fff;
}

@media (min-width: 768px) {
  .category-select {
    display: none;
  }
  .category-buttons {
    display: block grid;
    grid-template-columns: repeat(auto-fit, 20%);
    gap: 15px;
    margin-bottom: 100px;
    justify-content: center;
  }
  .category-buttons a {
    font-size: 1.6rem;
    text-align: center;
    line-height: 1.2;
    background: #f4f4f4;
    border-radius: 100px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #f4f4f4;
  }
  .category-buttons a.is-active {
    background: #fff;
    border: 1px solid var(--theme_color);
    color: var(--theme_color);
  }
  .category-buttons a:hover {
    color: var(--theme_color);
  }
}
/*------------------------------*/
/*Styling Map活用事例*/
.l-case .m {
  text-align: center;
}

.l-case .u-frame_m {
  max-width: 1320px;
}

/*---------------------------
YouTube Responsive Embed
---------------------------*/
.youtube-container {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 Aspect Ratio */
  overflow: hidden;
  margin: 20px 0;
}
.youtube-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/*------------------------------*/
/*カバー画像*/
.p-header::before {
  background-size: cover;
  background-repeat: no-repeat;
}

.l-stylingmap .p-header::before {
  background-image: url(../images/cover/mv_stylingmap_mob.webp);
}

.l-examination .p-header::before,
.l-apply_flow .p-header::before {
  background-image: url(../images/cover/mv_examination_mob.webp);
}

.l-case .p-header::before {
  background-image: url(../images/cover/mv_case_mob.webp);
}

.l-school .p-header::before {
  background-image: url(../images/cover/mv_school_mob.webp);
}

.l-news .p-header::before {
  background-image: url(../images/cover/mv_news_mob.webp);
}

.l-about .p-header::before,
.l-sales .p-header::before,
.l-personal .p-header::before {
  background-image: url(../images/cover/mv_about_mob.webp);
}

.l-case_lp.l-case_stuff .p-header::before {
  background-image: url(../images/cover/mv_case_stuff_mob.webp);
}

.l-case_lp.l-case_teacher .p-header::before {
  background-image: url(../images/cover/mv_case_teacher_mob.webp);
}

.l-case_lp.l-case_student .p-header::before {
  background-image: url(../images/cover/mv_case_student_mob.webp);
}

.l-case_lp.l-case_personalstylist .p-header::before {
  background-image: url(../images/cover/mv_case_personalstylist_mob.webp);
}

.l-case_lp.l-case_orner .p-header::before {
  background-image: url(../images/cover/mv_case_orner_mob.webp);
}

@media (min-width: 960px) {
  .l-stylingmap .p-header {
    background-image: url(../images/cover/mv_stylingmap_pc.webp);
  }
  .l-examination .p-header,
  .l-apply_flow .p-header {
    background-image: url(../images/cover/mv_examination_pc.webp);
  }
  .l-case .p-header {
    background-image: url(../images/cover/mv_case_pc.webp);
  }
  .l-school .p-header {
    background-image: url(../images/cover/mv_school_pc.webp);
  }
  .l-news .p-header {
    background-image: url(../images/cover/mv_news_pc.webp);
  }
  .l-about .p-header,
  .l-sales .p-header,
  .l-personal .p-header {
    background-image: url(../images/cover/mv_about_pc.webp);
  }
  .l-case_lp.l-case_stuff .p-header {
    background-image: url(../images/cover/mv_case_stuff_pc.webp);
  }
  .l-case_lp.l-case_teacher .p-header {
    background-image: url(../images/cover/mv_case_teacher_pc.webp);
  }
  .l-case_lp.l-case_student .p-header {
    background-image: url(../images/cover/mv_case_student_pc.webp);
  }
  .l-case_lp.l-case_personalstylist .p-header {
    background-image: url(../images/cover/mv_case_personalstylist_pc.webp);
  }
  .l-case_lp.l-case_orner .p-header {
    background-image: url(../images/cover/mv_case_orner_pc.webp);
  }
}
/*------------------------------*/
/* 関連記事カルーセル (Slick) */
/*------------------------------*/
.related-posts-section {
  margin-top: 60px;
  margin-bottom: 60px;
}

.related-posts_ttl {
  font-size: 2.6rem;
  margin: 0 auto 35px;
  text-align: center;
}

.related-posts-carousel {
  padding: 0 10px;
  position: relative;
  justify-content: center;
}
.related-posts-carousel .slick-slide {
  padding: 0 10px;
}
.related-posts-carousel .related-post-item {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.2s;
}
.related-posts-carousel .related-post-item:hover {
  opacity: 0.7;
}
.related-posts-carousel .related-post-thumbnail img {
  width: 100%;
  height: auto;
  aspect-ratio: 4/3;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 4px;
}
.related-posts-carousel .related-post-title {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.5;
  margin-top: 12px;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

/* --- 基本レイアウト --- */
.case-archive-container {
  display: flex;
  gap: 40px;
  margin-top: 40px;
}

.filters {
  width: 250px;
  flex-shrink: 0;
}

.results {
  flex-grow: 1;
}

/* --- フィルターグループ --- */
#case-filter-form {
  overflow: auto;
  padding-right: 20px;
  height: calc(100vh - 140px);
  padding-bottom: 20px;
}

.filter-group {
  margin-top: 30px;
}

.filter-group h3 {
  font-size: 1.6rem;
  font-weight: 600;
  margin: 0 0 12px;
}

.filter-group label {
  font-size: 1.5rem;
  line-height: 1.2;
  display: block;
  margin-bottom: 8px;
  padding-left: 28px;
  position: relative;
  cursor: pointer;
}

.filter-group input[type=checkbox] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: url(../images/common/chk_off.svg) no-repeat;
  background-size: 20px;
  background-size: contain;
  width: 24px;
  height: 24px;
  position: absolute;
  top: -2px;
  left: 0;
}
.filter-group input[type=checkbox]:checked {
  background-image: url(../images/common/chk_on.svg);
}

.clear-selected-filters-link {
  display: block;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 1.4rem;
  text-decoration: underline;
  margin-top: 2px;
  cursor: pointer;
}
.clear-selected-filters-link:hover {
  text-decoration: none;
}

/* --- 選択中のフィルター項目 --- */
#selected-filters-container > div {
  background: #f4f4f4;
  padding: 20px 8px;
  border-radius: 4px;
  margin-bottom: 40px;
}

.selected-filter-item {
  font-size: 1.3rem;
  line-height: 1.2;
  display: inline-block;
  background: #fff;
  border-radius: 4px;
  border: 1px solid #000;
  padding: 5px 12px 5px 16px;
  margin: 0 4px 4px 0;
}

.selected-filter-item label {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
}

.selected-filter-item input[type=checkbox] {
  margin-right: 5px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: url(../images/common/chk_on.svg) no-repeat;
  background-size: contain;
  width: 24px;
  height: 24px;
}

/* --- 結果アイテム --- */
.case-item {
  border: 1px solid #eee;
  padding: 15px;
  margin-bottom: 10px;
  border-radius: 5px;
}

.case-item h4 {
  margin-top: 0;
}

#results-count-container {
  display: none;
}

/* --- PC用 全て解除ボタン --- */
/* --- スマホ用のボタン類（PCでは非表示） --- */
.filter-open-btn,
.filter-close-btn,
.filter-actions,
.filter-overlay {
  display: none;
}

/* --- スマホ表示 (767px以下) --- */
@media (max-width: 767px) {
  .btn-clear-pc {
    display: none; /* PC用の解除ボタンはスマホで非表示 */
  }
  .case-archive-container {
    display: block; /* 横並びを解除 */
  }
  /* --- フィルターを開くボタン --- */
  .filter-open-btn {
    font-size: 1.6rem;
    font-weight: 600;
    line-height: 1.2;
    color: var(--theme_color);
    display: block;
    width: 80%;
    margin: 0 auto 30px;
    padding: 8px;
    border-radius: 100px;
    border: 1px solid var(--theme_color);
    background: #fff;
    box-shadow: 0 2px 0 var(--theme_color);
    cursor: pointer;
  }
  .filter-open-btn span {
    padding-right: 28px;
    position: relative;
    right: -8px;
  }
  .filter-open-btn span::after {
    content: "";
    display: block;
    width: 24px;
    height: 24px;
    background: url(../images/icon/icon_search_color.svg) no-repeat;
    background-size: contain;
    position: absolute;
    top: 0;
    right: 0;
  }
  /* --- スライドインパネル --- */
  .filters {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: white;
    z-index: 1001;
    transform: translateX(-100%);
    transition: transform 0.3s ease-in-out;
    padding: 20px;
    padding-bottom: 80px; /* 固定フッター分を確保 */
  }
  .filters.is-open {
    transform: translateX(0);
  }
  /* --- パネル内の閉じるボタン --- */
  .filter-close-btn {
    display: block;
    position: absolute;
    top: 10px;
    right: 15px;
    color: #000;
    font-size: 28px;
    background: none;
    border: none;
    cursor: pointer;
  }
  /* --- パネル内の操作ボタンエリア --- */
  .filter-actions {
    display: flex;
    position: fixed; /* パネル内で下部に固定 */
    bottom: 0;
    left: 0;
    width: 100%;
    background: #fff;
    padding: 15px;
    gap: 10px;
    box-sizing: border-box;
  }
  .filter-actions button {
    font-size: 1.8rem;
    font-weight: 600;
    color: #8e8e8e;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 56px;
    border-radius: 4px;
    background: #fff;
    border: 1px solid #4f4f4f;
    flex-grow: 1;
    cursor: pointer;
  }
  .filter-actions button.btn-apply {
    background: #000;
    color: white;
    position: relative;
  }
  .filter-actions button.btn-apply::after {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    background: url(../images/common/arr_min_white.svg) no-repeat;
    background-size: contain;
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
  }
  /* --- 背景オーバーレイ --- */
  .filter-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.4);
    z-index: 1000;
  }
  /* is-openクラスがないときは非表示 */
  .filters:not(.is-open) + .results + .filter-overlay {
    display: none;
  }
}
@media (min-width: 768px) {
  .case-archive-container {
    margin-top: 60px;
  }
  .filters h2 {
    font-size: 1.6rem;
    background: #f4f4f4;
    border-left: 2px solid var(--theme_color);
    padding: 5px 12px;
    margin-bottom: 8px;
    border-radius: 0 4px 4px 0;
  }
  #selected-filters-container > div {
    padding: 20px 25px 20px;
  }
}
/*------------------------------*/
/*活用事例LP*/
.l-case_lp .sec {
  padding-top: 40px;
  padding-bottom: 40px;
}

.l-case_lp .secttl {
  font-size: 2rem;
  text-align: center;
  margin-bottom: 10px;
}

.l-case_lp .ttl_bg {
  text-align: center;
}

/*お悩み*/
.l-case_lp .sec_onayami {
  margin-top: 80px;
}

.l-case_lp .onayami_area {
  background: #7c828a;
  position: relative;
  padding-bottom: 10px;
}

.l-case_lp .onayami_area .deco_top {
  width: 100vw;
  height: 40px;
  background: url(../images/lp/bg_onayami_top.svg) no-repeat;
  background-size: cover;
  background-position: center top;
  position: absolute;
  top: 0;
  transform: translateY(-100%);
}

.onayami_area::after {
  content: "";
  display: block;
  width: 100vw;
  height: 9.56vw;
  background: url(../images/lp/bg_onayami_bottom.svg) no-repeat;
  background-size: cover;
  background-position: center bottom;
  position: absolute;
  top: calc(100% - 2px);
}

.l-case_lp .onayami_area .deco_model {
  position: absolute;
  width: 136px;
  left: 58vw;
  bottom: -58px;
  bottom: -78px;
  z-index: 2;
}

.l-case_lp .ttl_onayami {
  font-size: 2rem;
  text-align: center;
  letter-spacing: 0.06em;
  color: #fff;
  margin: 0 auto 30px;
}
.l-case_lp .ttl_onayami b {
  font-size: 120%;
}
.l-case_lp .ttl_onayami span {
  position: relative;
  padding: 0 40px;
}
.l-case_lp .ttl_onayami span::before, .l-case_lp .ttl_onayami span::after {
  content: "";
  display: block;
  width: 26px;
  height: 26px;
  background: url(../images/lp/deco_nayami_bou.svg) no-repeat;
  background-size: contain;
  position: absolute;
  top: 2px;
}
.l-case_lp .ttl_onayami span::before {
  left: 0;
}
.l-case_lp .ttl_onayami span::after {
  right: 0;
  transform: scale(-1, 1);
}

.l-case_lp .onayami_area .inner {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 90%;
  max-width: 600px;
  margin: 0 auto;
}

.l-case_lp .onayami_item {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.5;
  color: #02233e;
  padding: 8px 25px 20px 30px;
  background: #fff;
  border-radius: 8px;
  position: relative;
  background: url(../images/common/bg_str.png) repeat;
  background-size: 7px;
  border-radius: 8px;
  position: relative;
  display: flex;
  align-items: center;
}
.l-case_lp .onayami_item span {
  z-index: 1;
  position: relative;
}
.l-case_lp .onayami_item::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: -6px;
  left: -6px;
  background: #fff;
  border-radius: 10px;
  z-index: 0;
}

.l-case_lp .onayami_item:nth-of-type(1)::before {
  content: "";
  display: block;
  width: 46px;
  height: 46px;
  background: url(../images/lp/deco_nayami_guru.svg) no-repeat;
  background-size: contain;
  position: absolute;
  top: -20px;
  left: -20px;
  z-index: 2;
}

/*提案*/
.l-case_lp .sugg_area {
  padding-top: 10vw;
  background: #ffffff;
  background: radial-gradient(circle, rgb(255, 255, 255) 0%, rgb(255, 244, 244) 80%);
  padding-bottom: 40px;
}

.l-case_lp .sugg_bgmaru {
  background: url(../images/lp/bg_maru_stuff_mob.png) no-repeat;
  background-size: contain;
  background-position: center top;
}

.l-case_lp .sugg_area .deco_bou {
  width: 11px;
  margin: 10px auto 30px;
  display: block;
}

.l-case_lp.l-case_stuff .sugg_area .inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.l-case_lp.l-case_stuff .sugg_item {
  width: 80%;
  max-width: 380px;
}

.l-case_lp.l-case_stuff .sugg_item p {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.65;
  text-align: center;
}

.l-case_lp.l-case_stuff .sugg_item + .sugg_item {
  border-top: 1px dashed #cccccc;
  padding-top: 20px;
  margin-top: 20px;
}

.l-case_lp.l-case_stuff .sugg_item .num {
  display: block;
  text-align: center;
  margin-bottom: 10px;
}

.l-case_lp.l-case_stuff .sugg_item .num img {
  width: auto;
  height: 28px;
}

.l-case_lp.l-case_teacher .sugg_area .secttl,
.l-case_lp.l-case_student .sugg_area .secttl {
  margin-bottom: 0;
}

.l-case_lp.l-case_teacher .sugg_area .ttl_bg,
.l-case_lp.l-case_student .sugg_area .ttl_bg {
  text-align: center;
}

.l-case_lp .sugg_cont {
  display: flex;
  flex-direction: column;
  gap: 30px;
  width: 90%;
  max-width: 600px;
  margin: 20px auto 0;
}

/*プログラム・教材*/
.l-case_lp .sec_about {
  padding-top: 60px;
  padding-bottom: 60px;
}

.l-case_lp .c-kyouzaiset .inner {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-bottom: 40px;
}

.l-case_lp .c-kyouzaiset .kyouzai_item {
  flex: 1 1 100%;
  border: 1px solid #000;
  border-radius: 4px;
  padding: 5px 5px 15px;
  display: flex;
  flex-direction: column;
}

.l-case_lp .c-kyouzaiset .imagearea {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 115px;
}

.l-case_lp .c-kyouzaiset .kyouzai_name {
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  margin-top: auto;
  min-height: 2em;
}

.l-case_lp .c-kyouzaiset .kyouzai_item:nth-of-type(1) .imagearea img {
  height: 50px;
  width: auto;
}

.l-case_lp .c-kyouzaiset .kyouzai_item:nth-of-type(2) .imagearea img {
  height: 115px;
  width: auto;
}

.l-case_lp .c-kyouzaiset .kyouzai_item:nth-of-type(3) .imagearea img {
  height: 50px;
  width: auto;
}

.l-case_lp .c-kyouzaiset .kyouzai_item:nth-of-type(3) .imagearea {
  height: 100px;
  width: auto;
}

.l-case_lp .sec.sec_master {
  padding-top: 0;
}

.l-case_lp .sec_master .u-frame_m {
  max-width: 1360px;
}

.l-case_lp .sec_master .masterstep {
  background: #f4f4f4;
  border-radius: 20px;
  padding: 40px 25px 25px;
  margin-top: 20px;
  margin-bottom: 40px;
}

.l-case_lp .sec_master .masterstep .inner {
  overflow-x: scroll;
  padding-bottom: 20px;
}

.l-case_lp .sec_master .masterstep img {
  height: 410px;
  width: auto;
}

.l-case_lp .sec_master .masterstep_arr {
  width: 68px;
  margin: 30px auto;
}

/*導入事例紹介*/
.l-case_lp .sec_intro {
  background: #ffdcdc;
  background: linear-gradient(0deg, rgb(255, 220, 220) 0%, rgb(255, 242, 242) 100%);
}

.l-case_lp.l-case_lp.l-case_teacher .sec_intro {
  margin-top: 40px;
}

.l-case_lp .sec_intro .secttl {
  margin-bottom: 20px;
}

.intro_btn_wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 8px;
  margin: 0 auto 40px;
}

.l-case_lp .intro_btn {
  color: #000;
  display: flex;
  align-items: center;
  gap: 5px;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: none;
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1;
  background: #fff;
  border-radius: 4px;
  padding: 10px;
  height: 42px;
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  transition: opacity 0.3s ease;
}
.l-case_lp .intro_btn span {
  width: 20px;
  height: 20px;
  display: inline-block;
  background-size: contain;
  background-repeat: no-repeat;
}
.l-case_lp .intro_btn .icon_apparel {
  background-image: url(../images/lp/icon_apparel_black.svg);
}
.l-case_lp .intro_btn .icon_makeup {
  background-image: url(../images/lp/icon_makeup_black.svg);
}
.l-case_lp .intro_btn .icon_bridal {
  background-image: url(../images/lp/icon_bridal_black.svg);
}
.l-case_lp .intro_btn .icon_book {
  background-image: url(../images/lp/icon_book_black.svg);
}
.l-case_lp .intro_btn .icon_voice {
  background-image: url(../images/lp/icon_voice_black.svg);
}

.l-case_lp .intro_btn.is-active {
  background: var(--theme_color);
  color: #fff;
  box-shadow: none;
}
.l-case_lp .intro_btn.is-active .icon_apparel {
  background-image: url(../images/lp/icon_apparel_white.svg);
}
.l-case_lp .intro_btn.is-active .icon_makeup {
  background-image: url(../images/lp/icon_makeup_white.svg);
}
.l-case_lp .intro_btn.is-active .icon_bridal {
  background-image: url(../images/lp/icon_bridal_white.svg);
}
.l-case_lp .intro_btn.is-active .icon_book {
  background-image: url(../images/lp/icon_book_white.svg);
}
.l-case_lp .intro_btn.is-active .icon_voice {
  background-image: url(../images/lp/icon_voice_white.svg);
}

.case_postbox {
  max-width: 600px;
  margin: 0 auto;
}

.case_postbox {
  display: none;
  opacity: 0;
  transition: opacity 0.4s ease-in-out;
  flex-direction: column;
  width: calc(100% - 20px);
}

.case_postbox.is-active {
  display: flex;
  opacity: 1;
}

.case_postbox .imagearea {
  border-radius: 4px 20px 4px 20px;
  overflow: hidden;
  position: relative;
  left: -10px;
  overflow: hidden;
  aspect-ratio: 3/2;
  background: #fff2f2;
}

.case_postbox .imagearea img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.case_postbox .textarea {
  background: #fff;
  padding: 20px 25px 20px;
  border-radius: 4px 20px 4px 20px;
  box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.1);
  position: relative;
  top: -30px;
  left: 10px;
}

.case_postbox .organization {
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.5;
  color: var(--theme_color);
  margin-bottom: 12px;
}

.case_postbox .p-ttl {
  font-size: 1.6rem;
  font-weight: 600;
  line-height: 1.5;
  margin-bottom: 12px;
}

.case_postbox .waku {
  border: 1px solid #dedede;
  border-radius: 4px;
  padding: 15px 15px;
}
.case_postbox .waku p {
  margin-bottom: 0.5em;
}

.case_postbox .organization_img {
  margin-top: 15px;
}
.case_postbox .organization_img img {
  height: 40px;
  width: auto;
}

.case_postbox .tlink {
  font-size: 1.4rem;
  text-align: right;
  margin: 10px 0 0 auto;
  width: -moz-fit-content;
  width: fit-content;
  display: block;
}

.l-case_student .case_postbox {
  max-width: 820px;
}

.l-case_student .case_postbox .textarea {
  top: initial;
  left: initial;
  flex: 1 1 100%;
}

.l-case_student .case_postbox .model {
  width: 70px;
  float: left;
  margin-right: 15px;
  position: relative;
  top: -2px;
}

.l-case_student .case_postbox .organization {
  float: right;
  width: calc(100% - 85px);
}

.l-case_student .case_postbox .p-ttl {
  float: right;
  width: calc(100% - 85px);
}

.l-case_student .case_postbox .waku {
  clear: both;
}

/*Styling Map 活用事例　記事一覧*/
.l-case_lp .c-postlist_card {
  margin-top: 30px;
  gap: 50px 30px;
}

@media (min-width: 768px) {
  .l-case_lp .ttl_bg {
    text-align: center;
  }
  .l-case_lp .sec {
    padding-top: 100px;
    padding-bottom: 100px;
  }
  .l-case_lp .secttl {
    font-size: 3rem;
  }
  .l-case_lp .ttl_bg span {
    font-size: 3rem;
  }
  .l-case_lp p.l {
    font-size: 1.8rem;
  }
  /*お悩み*/
  .l-case_lp .sec_onayami {
    margin-top: 120px;
  }
  .l-case_lp .onayami_area {
    padding-top: 40px;
  }
  .l-case_lp .onayami_area .deco_model {
    width: 160px;
    left: 75vw;
  }
  .l-case_lp .ttl_onayami {
    font-size: 3rem;
    margin: 0 auto 40px;
  }
  .l-case_lp .ttl_onayami span::before, .l-case_lp .ttl_onayami span::after {
    width: 30px;
    height: 30px;
    top: 8px;
  }
  .l-case_lp .onayami_item {
    font-size: 1.8rem;
  }
  /*提案*/
  .l-case_lp .sugg_area {
    padding-top: 12vw;
    padding-bottom: 100px;
  }
  .l-case_lp .sugg_bgmaru {
    max-width: 1160px;
    margin: auto;
    background-image: url(../images/lp/bg_maru_stuff_pc.png);
  }
  .l-case_lp.l-case_stuff .sugg_item p {
    font-size: 1.8rem;
  }
  .l-case_lp.l-case_stuff .sugg_item .num img {
    height: 32px;
  }
  .l-case_lp .sugg_cont {
    margin: 50px auto 0;
  }
  /*プログラム・教材*/
  .l-case_lp .c-kyouzaiset .inner {
    gap: 15px;
    margin: 40px auto;
  }
  .l-case_lp .c-kyouzaiset .kyouzai_item {
    gap: 5px;
    flex: 0 1 280px;
  }
  .l-case_lp .c-kyouzaiset .kyouzai_name {
    font-size: 1.5rem;
    min-height: initial;
  }
  .l-case_lp .c-kyouzaiset .kyouzai_item:nth-of-type(1) .imagearea img {
    height: 100px;
  }
  .l-case_lp .c-kyouzaiset .kyouzai_item:nth-of-type(2) .imagearea img {
    height: 120px;
  }
  .l-case_lp .c-kyouzaiset .kyouzai_item:nth-of-type(3) .imagearea img {
    height: 90px;
  }
  .l-case_lp .sec_master .masterstep {
    padding: 50px 20px;
    margin-top: 30px;
    margin-bottom: 60px;
  }
  .l-case_lp .sec_master .masterstep .imagearea {
    text-align: center;
  }
  .l-case_lp .sec_master .masterstep img {
    width: auto;
    height: 100%;
  }
  .l-case_lp .sec_master .masterstep_arr {
    width: 106px;
    margin: 30px auto 0px;
  }
  /*導入事例紹介*/
  .l-case_lp.l-case_lp.l-case_teacher .sec_intro {
    margin-top: 100px;
  }
  .l-case_lp .sec_intro .secttl {
    margin-bottom: 40px;
  }
  .intro_btn_wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 20px;
    margin: 0 auto 60px;
  }
  .l-case_lp .intro_btn {
    height: 76px;
    width: -moz-fit-content;
    width: fit-content;
    min-width: 230px;
    justify-content: center;
    flex-direction: column;
    gap: 8px;
  }
  .case_postbox .textarea {
    padding: 30px;
  }
  .case_postbox .organization {
    font-size: 1.7rem;
  }
  .case_postbox .p-ttl {
    font-size: 2rem;
  }
  .l-case_student .case_postbox .textarea {
    padding: 30px 30px 40px 50px;
    display: flex;
    gap: 35px;
  }
  .l-case_student .case_postbox .model {
    width: 90px;
    flex: 0 0 90px;
    float: initial;
    margin: 0;
  }
  .l-case_student .case_postbox .organization {
    float: initial;
    width: initial;
  }
  .l-case_student .case_postbox .p-ttl {
    float: initial;
    width: initial;
  }
  .l-case_student .case_postbox .waku {
    clear: both;
  }
}
@media (min-width: 960px) {
  .l-case_lp .ttl_bg {
    text-align: center;
  }
  .l-case_lp .ttl_bg span {
    font-size: 2.8rem;
  }
  .l-case_lp p.m {
    font-size: 1.8rem;
  }
  /*お悩み*/
  .l-case_lp .onayami_area .inner {
    flex-direction: row;
    gap: 30px;
    max-width: 1040px;
  }
  .l-case_lp .onayami_item {
    flex: 1 1 100%;
    padding: 10px 30px 25px 30px;
  }
  .l-case_lp .onayami_item:nth-of-type(1)::before,
  .l-case_lp .onayami_item:nth-of-type(2)::before,
  .l-case_lp .onayami_item:nth-of-type(3)::before {
    content: "";
    display: block;
    width: 46px;
    height: 46px;
    background: url(../images/lp/deco_nayami_guru.svg) no-repeat;
    background-size: contain;
    position: absolute;
    top: -20px;
    left: -20px;
    z-index: 2;
  }
  .l-case_lp .onayami_area .deco_model {
    left: 50vw;
    transform: translateX(-50%);
    bottom: -170px;
  }
  .onayami_area::after {
    height: 170px;
  }
  /*提案*/
  .l-case_lp .sugg_area {
    padding-top: 180px;
  }
  .l-case_lp .sugg_area .ttl_bg span {
    font-size: 3.8rem;
  }
  .l-case_lp.l-case_stuff .sugg_area .inner {
    flex-direction: row;
    margin-top: 60px;
  }
  .l-case_lp.l-case_stuff .sugg_item {
    position: relative;
  }
  .l-case_lp.l-case_stuff .sugg_item + .sugg_item {
    border: none;
    padding-top: 0;
    margin-top: 0;
  }
  .l-case_lp.l-case_stuff .sugg_item + .sugg_item::before {
    content: "";
    display: block;
    width: 1px;
    height: 90px;
    border-left: 1px dashed #cccccc;
    position: absolute;
    bottom: 0;
  }
  .l-case_lp.l-case_stuff .sugg_item .num {
    margin-bottom: 30px;
  }
  .l-case_lp.l-case_stuff .sugg_item .num img {
    height: 36px;
  }
  .l-case_lp .sugg_cont {
    flex-direction: row;
    gap: 40px;
    max-width: none;
  }
  .l-case_lp .sugg_cont .imagearea {
    flex: 1 1 50%;
  }
  .l-case_lp .sugg_cont .textarea {
    flex: 1 1 50%;
  }
  .l-case_lp.l-case_teacher .sugg_area .secttl,
  .l-case_lp.l-case_student .sugg_area .secttl {
    margin-bottom: 10px;
  }
  /*Styling Map 活用事例　記事一覧*/
  .l-case_lp .c-postlist_card {
    gap: 50px 30px;
  }
  /*導入事例紹介*/
  .case_postbox {
    max-width: 1150px;
    flex-direction: row;
    align-items: flex-start;
  }
  .case_postbox .imagearea {
    top: 0;
    left: 10px;
    flex: 0 0 45%;
  }
  .case_postbox .textarea {
    flex: 0 0 55%;
    top: 20px;
    left: -10px;
  }
}
/*------------------------------*/
/*お問い合わせ*/
.contactarea {
  background: #fff5ea;
  padding: 40px 0 60px;
}

.contact .telbox {
  text-align: center;
  padding: 15px 10px 5px;
  border: 1px solid #dedede;
  max-width: 640px;
  margin: 20px auto 60px;
}
.contact .telbox p {
  font-size: 1.4rem;
  margin: 0;
}
.contact .telbox .font_en {
  font-size: 2.8rem;
  color: var(--theme_color);
}
.contact .telbox a {
  color: var(--theme_color);
}

.mw_wp_form {
  background: #fff;
  padding: 30px 20px;
  width: 90%;
  max-width: 1200px;
  margin: 0 auto;
  font-size: 1.6rem;
}

.contact_confirm .mw_wp_form_complete {
  padding: 0;
  height: 0;
}

.ttl_form {
  font-size: 2rem;
  font-weight: 400;
  letter-spacing: 0.04em;
  margin: 0 auto 30px;
  text-align: center;
}

.contact_ul > li {
  margin-bottom: 30px;
}

.contactarea .contact_dl {
  font-size: 1.6rem;
  line-height: 1.4;
}

.contactarea .text_red {
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1;
  text-align: center;
  color: #fff;
  width: 36px;
  display: inline-block;
  border-radius: 1px;
  background: #c32c2c;
  padding: 3px 2px 4px;
  margin-left: 0.5em;
}

.contact .contact_dl dt {
  margin-bottom: 0.8em;
}

.contact .mwform-checkbox-field {
  display: block;
  margin-left: 0 !important;
  margin-bottom: 0.5em;
}

.contact .waku,
.contact_check .waku {
  padding: 30px 20px;
  height: 260px;
  overflow: auto;
  border: 1px solid #cccccc;
}

.contact .waku p,
.contact_check .waku p {
  margin-bottom: 0.5em;
}

input[type=text],
input[type=tel],
textarea {
  font-size: 1.6rem;
  padding: 10px;
  border: 1px solid #cccccc;
  width: 100%;
}

input[type=submit] {
  background: #000;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 100px;
  width: 240px;
  height: 68px;
  margin: 40px auto 0;
  cursor: pointer;
}

.contact .mwform-checkbox-field input[type=checkbox] {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: url(../images/common/chk_off.svg) no-repeat;
  background-size: 20px;
  background-size: contain;
  width: 24px;
  height: 24px;
  position: absolute;
  top: -2px;
  left: 0;
}
.contact .mwform-checkbox-field input[type=checkbox]:checked {
  background-image: url(../images/common/chk_on.svg);
}

.mwform-checkbox-field {
  font-size: 1.6rem;
  line-height: 1.2;
  display: block;
  padding-left: 28px;
  position: relative;
  cursor: pointer;
}

.personalchk {
  width: -moz-fit-content;
  width: fit-content;
  margin: 30px auto;
  font-weight: 600;
}

.personalchk .mwform-checkbox-field-text {
  font-weight: 600;
}

.contact_check .personalchk {
  position: relative;
  padding-left: 24px;
}
.contact_check .personalchk::before {
  content: "";
  display: block;
  background: url(../images/common/chk_on.svg) no-repeat;
  background-size: contain;
  width: 24px;
  height: 24px;
  position: absolute;
  top: 0px;
  left: 0;
}

.contact_check dd {
  font-weight: 600;
}

.contact_check dt {
  margin-bottom: 0.5em;
}

input[name=submitBack] {
  font-size: 1.6rem;
  font-weight: 400;
  color: #000;
  background: transparent;
  text-decoration: underline;
  padding: 10px 0 0;
  margin: 0;
  text-align: center;
  width: -moz-fit-content;
  width: fit-content;
  height: auto;
  border-radius: 0;
  border: none;
  margin: 10px auto 0;
}

.ttl_form_confirm {
  font-size: 1.8rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 20px;
}

.confirmimg {
  width: 113px;
  height: auto;
  display: block;
  margin: 0 auto 25px;
}

.forminfo {
  border: 1px solid #000;
  border-radius: 4px;
  margin: 30px auto 0;
}

.forminfo h3 {
  font-size: 1.8rem;
  font-weight: 600;
  text-align: center;
  color: #fff;
  padding: 6px 10px;
  background: #000;
  border-radius: 3px 3px 0 0;
}

.forminfo p {
  font-size: 1.6rem;
  line-height: 1.65;
}

.forminfo .cont {
  padding: 20px 5%;
}

.form_casearea {
  margin: 50px auto 0;
}

.form_casearea > .ttl {
  font-size: 1.8rem;
  font-weight: 600;
  text-align: center;
  margin: 0 auto 30px;
}

@media (min-width: 768px) {
  .contactarea {
    padding: 70px 0 120px;
  }
  .contact .telbox {
    padding: 25px 10px 15px;
    margin: 40px auto 70px;
  }
  .contact .telbox p {
    font-size: 1.4rem;
  }
  .contact .telbox .font_en {
    font-size: 3.3rem;
  }
  .mw_wp_form {
    padding: 70px 5% 60px;
  }
  .ttl_form {
    font-size: 2.8rem;
    margin: 0 auto 50px;
  }
  .contact_ul > li {
    margin-bottom: 25px;
    padding-bottom: 25px;
    border-bottom: 1px solid #dedede;
  }
  .contact_ul > li:last-of-type {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
  }
  .contact_dl {
    display: flex;
    align-items: flex-start;
    gap: 30px;
  }
  .contact .contact_dl.noflex,
  .contact_check .contact_dl.noflex {
    display: block;
  }
  .contact .contact_dl.noflex dt,
  .contact_check .contact_dl.noflex dt {
    margin-bottom: 0.8em;
  }
  .contact .contact_dl dt {
    margin-top: 0.5em;
    margin-bottom: 0;
    flex: 0 0 280px;
  }
  .contact .mwform-checkbox-field {
    margin-bottom: 1em;
  }
  .contact .waku {
    padding: 30px 40px;
    height: 280px;
  }
  .personalchk {
    width: -moz-fit-content;
    width: fit-content;
    margin: 30px auto;
    font-weight: 600;
  }
  .personalchk .mwform-checkbox-field-text {
    font-weight: 600;
  }
  .ttl_form_confirm {
    font-size: 2.4rem;
    margin-bottom: 30px;
  }
  .confirmimg {
    width: 159px;
    margin: 0 auto 30px;
  }
  .forminfo {
    max-width: 700px;
  }
  .forminfo .cont {
    padding: 25px 40px;
  }
  .form_casearea {
    margin: 80px auto 0;
  }
  .form_casearea > .ttl {
    font-size: 2.6rem;
    font-weight: 600;
    text-align: center;
    margin: 0 auto 30px;
  }
}
@media (min-width: 960px) {
  .contact .contact_dl {
    gap: 40px;
  }
  .contact .contact_dl dt {
    flex: 0 0 300px;
  }
  .form_casearea .c-postlist_card {
    gap: 50px 30px;
  }
}
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  cursor: pointer;
}

.modal-content {
  position: relative;
  max-width: 90vw;
  max-height: 90vh;
}

.modal-content img {
  max-width: 100%;
  max-height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.modal-close-btn {
  position: absolute;
  top: -60px;
  right: -10px;
  width: 40px;
  height: 40px;
  background-image: url("../images/common/modal_closebtn.svg");
  background-color: transparent;
  background-repeat: no-repeat;
  background-size: contain;
  border: none;
  cursor: pointer;
  z-index: 1001;
}

.splide {
  visibility: visible !important;
}

@media (max-width: 959px) {
  .c-postlist_card.splide__list {
    gap: 30px 0;
  }
}
@media (min-width: 960px) {
  .c-postlist_card.splide__list {
    display: grid !important;
  }
}
.related-posts-section .splide__arrow {
  background: transparent;
  width: 25px;
  height: 62px;
  background: url(../images/common/slide_arrow.png) no-repeat;
  background-size: contain;
}

.related-posts-section .splide__arrow.splide__arrow--prev {
  left: 0;
}

.related-posts-section .splide__arrow.splide__arrow--next {
  transform: scale(-1, 1) translateY(-32px);
  right: 0;
}

.splide__arrow svg {
  display: none;
}

/*教材スライダー*/
#js-modal-body .thumbnails {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(80px, 100%), 1fr));
  gap: 10px;
  justify-content: center;
  margin: 10px auto 0;
  padding: 0;
}

#js-modal-body .thumbnail {
  overflow: hidden;
  list-style: none;
  cursor: pointer;
  filter: brightness(60%);
  transition: 0.2s ease;
}

#js-modal-body .thumbnail.is-active {
  opacity: 1;
  filter: brightness(100%);
}

#js-modal-body .thumbnail img {
  width: 100%;
  height: auto;
}

.c-modal .splide__arrow {
  background: transparent;
  width: 44px;
  height: 44px;
  background: url(../images/common/modal_arr.svg) no-repeat;
  background-size: contain;
}

.c-modal .splide__arrow.splide__arrow--prev {
  left: 0;
  transform: scale(-1, 1) translateY(0);
}

.c-modal .splide__arrow.splide__arrow--next {
  right: 0;
  transform: translateY(0);
}

.splide__arrow svg {
  display: none;
}

.modal_title {
  margin-bottom: 10px;
}

.modal_title b {
  font-size: 2rem;
  font-weight: 600;
  display: block;
  margin-bottom: 10px;
}

.modal_title p {
  font-size: 1.5rem;
  display: inline-block;
}

#js-modal .c-modal_content {
  padding: 40px 20px;
}

@media (min-width: 768px) {
  .modal_title b {
    font-size: 2.4rem;
    display: inline-block;
    margin-right: 1em;
    margin-bottom: 0;
  }
  #js-modal .c-modal_content {
    padding: 50px 80px;
  }
  #js-modal-body .thumbnails {
    grid-template-columns: repeat(auto-fill, minmax(min(125px, 100%), 1fr));
    margin-top: 20px;
  }
}
/*テキストモーダル*/
.tab-panel {
  display: none;
}

.tab-panel.is-active {
  display: block;
}

#js-modal-body .tab-container {
  display: flex;
  flex-direction: column;
}

#js-modal-body .tab-panels {
  margin-bottom: 20px;
}

#js-modal-body .tab-buttons {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(120px, 100%), 1fr));
  gap: 8px;
}

#js-modal-body .tab-button {
  font-size: 1.4rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 45px;
  border-radius: 4px;
  border: 1px solid #d4d4d4;
  cursor: pointer;
}

#js-modal-body .tab-button.is-active {
  background: #000;
  border: 1px solid #000;
  color: #fff;
}

@media (min-width: 960px) {
  #js-modal-body .tab-container {
    display: flex;
    flex-direction: row-reverse;
    gap: 30px;
    align-items: center;
  }
  #js-modal-body .tab-buttons {
    flex: 0 0 240px;
    display: block;
  }
  #js-modal-body .tab-button {
    font-size: 1.6rem;
    margin: 5px 0;
    height: 60px;
    position: relative;
  }
  #js-modal-body .tab-button.is-active::after {
    content: "";
    display: block;
    position: absolute;
    top: 50%;
    left: 100%;
    transform: translateY(-50%);
    clip-path: polygon(0 0, 100% 50%, 0 100%);
    height: 18px;
    width: 10px;
    background: #000;
  }
}/*# sourceMappingURL=master.css.map */