@charset "UTF-8";

/* common
-------------------------------------------- */
:root {
  --color-primary:#308be6;
  --color-secondary:#83b9f0;
  --color-tertiary:#70c0c4;
  --color-accent:#F26A46;
  --color-accent-link:#0058a0;
  --color-warning:#CC3D3D;
  --color-text-primary:#495057;
  --color-gray-100: #f8f9fa;
  --color-gray-200: #e9ecef;
  --color-gray-300: #dee2e6;
  --color-gray-400: #b6bfc8;
  --color-gray-500: #8e99a4;
  --color-gray-600: #6c757d;
  --color-gray-700: #495057;
  --color-grandient-primary: linear-gradient(90deg, rgba(255, 226, 0, 1) 0%, var(--color-tertiary) 20%, var(--color-primary) 100%);
  --color-grandient-secondary:linear-gradient(90deg, var(--color-tertiary) -30%, var(--color-primary) 70%);
  --width-container-lg: min(1200px, 100%);
  --width-container-md: min(1000px, 100%);
  --width-container-sm: min(800px, 100%);
  scroll-behavior: smooth;
  --section-padding: clamp(2.4rem, 4vw, 5rem);
  --en-font: "Expletus Sans", sans-serif;
}
html{
  font-size: 0.625rem;
}
body{
  font-size: clamp(1.4rem, 4vw, 1.5rem);
  font-family: YakuHanJP,"Noto Sans JP",sans-serif;
  color: var(--color-text-primary);
  line-height: 1.6;
  background: #ECF5FD;
}
img {
  height: auto;
  width: auto;
  max-width: 100%;
}
em,
dt,
cite{
  font-style: normal;
  font-weight: normal;
}
em,
b,
strong{
  font-weight: 500;
}
mark {
  font-style: normal;
  font-weight: normal;
  background-color: unset;
  color: inherit;
}
.marker_y{
  background-color: transparent;
  background-image: linear-gradient(transparent 60%, rgba(255, 255, 0, 0.7) 40%);
}
ul.ul-default{
    list-style: none;
    margin-left: 2.4rem;
}
ul.ul-default li {
    position: relative;
}
ul.ul-default li:before {
  content: '';
  border-radius: 100%;
  width: 0.5rem;
  height: 0.5rem;
  background: var(--color-gray-500);
  display: inline-block;
  position: absolute;
  top: 1rem;
  left: -2rem;
}
ul.ul-default li:not(:last-of-type){
  margin-bottom: 0.5rem;
}
.ul-default.ul-row{
    display: flex;
    gap: 0 2rem;
    flex-wrap: wrap;
}
.ul-default.ul-row li{
  width:calc(100% / 2 - 1rem);
}
@media screen and (max-width: 1200px) {
  .ul-default.ul-row li{
    width:100%;
  }
}
ol.ol-default{
  list-style: disc;
  margin-left: 2rem;
}
.ul-checklist-item{
  position: relative;
  padding-left: 2.4rem;
}
.ul-checklist-item:not(:last-child){
  margin-bottom: 1rem;
}
.ul-checklist-item:before{
    content: '';
    display: block;
    width: 1.4rem;
    height: 1.4rem;
    border: 0.1rem solid var(--color-gray-400);
    top: 0.6rem;
    position: absolute;
    left: 0;
}
.ul-schedule-item{
    position: relative;
    padding-inline:6rem 2rem;
    padding-block: 1rem;
    border: 0.1rem solid var(--color-gray-300);
    border-bottom: 0;
}
.ul-schedule-item:not(:last-child):before {
  position: absolute;
    left:4rem;
    top: 3rem;
    display: block;
    content: '';
    width: 0.2rem;
    background: var(--color-gray-300);
    height: 100%;
    z-index: 1;
}
.ul-schedule-ttl{
    padding-block: 0.8rem;
    position: relative;
}
.ul-schedule-ttl:before{
    content: '';
    width: 0.6rem;
    height: 0.6rem;
    display: block;
    background: var(--color-gray-500);
    position: absolute;
    left: -2.2rem;
    top: 1.8rem;
    border-radius: 100%;
    z-index: 2;
}
.ul-schedule-item:last-child {
  background: aliceblue;
    border: 0.1rem solid var(--color-secondary);
}
.ul-schedule-item:last-child .ul-schedule-ttl:before{
    background: var(--color-primary);
    width: 0.8rem;
    height: 0.8rem;
    left: -2.3rem;
    background-color: var(--color-primary);
    box-shadow: 0 0 5px 1px rgb(18 120 226 / 50%);
}
.ul-schedule-content{
    padding-left: 2rem;
}
@media screen and (max-width: 768px) {
  .ul-schedule-item{
    padding-inline:4rem 2rem;
  }
  .ul-schedule-item:not(:last-child):before{
    left: 2rem;
  }
}
.section-links-list__item {
    padding-block: 1rem;
    display: block;
    border-bottom: 0.1rem solid var(--color-gray-200);
}
.section-links-list__item .en-name{
  font-size: 1.2rem;
    display: block;
    color: var(--color-gray-500);
}
table{
  width: 100%;
  table-layout: fixed;
  margin-block: 0.5rem 2rem;
  background: #ffffff;
  border: 0.1rem solid var(--color-gray-400);
}
table.u-w-100 {
  width: 100%;
}
table.u-w-80 {
  width: 80%;
}
table.u-w-50 {
  width: 50%;
}
table.u-w-30 {
  width: 30%;
}
table.u-w-20 {
  width: 20%;
}
table caption{
  font-weight: 500;
  font-size: 1.5rem;
  position: relative;
  margin-bottom: 0.6rem;
}
table tbody tr{
  
}
table thead th{
    padding-inline: max(1rem, 3%);
    color: #ffffff;
    background: #182d5a;
    border-bottom: 0.5rem solid var(--color-secondary);
    font-weight: initial;
    padding-block: 1rem;
    border-inline: 0.1rem solid #182d5a;
    border-top: 0.1rem solid #182d5a;
}
table tbody tr{
  border-top:0.1rem solid var(--color-gray-300);
}
table tbody tr:first-child{
  border-top: none;
}
table tbody tr:last-child{ 
  /*border-bottom:0.1rem solid var(--color-gray-300);*/
}
table tbody th,
table tbody td,
table tfoot th,
table tfoot td{  
  padding-inline: max(1rem, 3%);
  padding-block: 1.2rem;
  font-weight: normal;
  vertical-align: middle;
  padding-block: 1.2rem;
}
table tbody th,
table tfoot th{
  background: var(--color-gray-100);
  color: var(--color-gray-600);
}
table tbody td,
table tfoot td{
  width: auto;
}
@media screen and (max-width: 414px) {
  table *{
    font-size: 1.4rem;
  }
  table tbody th {
      width: 9rem;
  }
  tbody th,
  tbody td{
      padding-inline: 1rem;
  }
}
.c-table_wrap {
  --term-width: min(16rem, 30%);
  border: 0.1rem solid var(--color-gray-400);
  font-size: clamp(1.3rem,3vw,1.5rem);
}
.c-table_row {
    display: grid;
    grid-template-columns: var(--term-width) 1fr;
}
.c-table_row:not(:last-child){
  border-bottom: 0.1rem solid var(--color-gray-400);
}
.c-table_row--col2 {
  grid-template-columns: var(--term-width) 1fr var(--term-width) 1fr;
}
.c-table__term{
    background-color: var(--color-gray-100);
    text-align: center;
    color: var(--color-gray-600);
}
.c-table__term,
.c-table__desc{
    padding: 2rem 1.2rem;
    word-break: break-all;
}

@media (max-width: 1200px) {
  .c-table_row,
  .c-table_row--col2 {
    grid-template-columns: var(--term-width) 1fr;
  }
  .c-table_row--col2 .c-table__term:not(:last-of-type),
  .c-table_row--col2 .c-table__desc:not(:last-of-type){
    border-bottom: 0.1rem solid var(--color-gray-400);
  }
}
@media (max-width: 414px) {
    .c-table_wrap {
      --term-width: min(6rem, 30%);
    }
    .c-table__term,
    .c-table__desc{
        padding-block:1rem;
    }
    .c-table__term{
        padding-inline: 0.6rem;
    }
    .c-table__term{
        font-size: 1.2rem;
    }
}
.c-campus_locations__items{
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    position: relative;
}
.c-campus_locations__item{
    background: #fff;
    width: calc(100% / 2 - 0.5rem);
    padding: clamp(2rem,3vw,3rem);
}
@media screen and (max-width: 768px) {
    .c-campus_locations__items{
        flex-direction: column;
    }
    .c-campus_locations__item{
        width: 100%;
    }
}
@media (hover: hover){
  a:hover{
  }
}
.en{
  font-family: var(--en-font);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: -0.1rem;
}
.c-broder-box{
  padding: 2.4rem 3rem 3rem;
  border:0.2rem solid var(--color-gray-200);
  border-radius: 0.5rem;
}
.c-heading-border {
    display: flex;
    align-items: center;
    font-size: 1.6rem;
    margin-bottom: 2rem;
    text-align: center;
}
.c-heading-border:before,
.c-heading-border:after {
    content: "";
    height: 1px;
    flex-grow: 1;
    background-color: var(--color-gray-300);
}
.c-heading-border:before {
    margin-right: 2rem;
}
.c-heading-border:after {
    margin-left: 2rem;
}
.c-aside{
  padding:2.4rem var(--section-padding);
  margin:0 calc(var(--section-padding) * -1);
  background: #fcf7e0;
  color: var(--color-gray-700);
}
.c-aside .c-aside-ttl{
  font-weight: 500;
  line-height: 1.6;
  margin-bottom: 1.2rem;
  color:var(--color-accent-link);
}
.c-aside .c-aside-content{
  font-size: 1.4rem;
}
.c-aside table thead th{
    background: var(--color-gray-500);
    font-size: 1.4rem;
}
.container-lg{
  width: var(--width-container-lg);
  margin-inline: auto;
}
.container-md{
  width: var(--width-container-md);
  margin-inline: auto;
}
.container-sm{
  width: var(--width-container-sm);
  margin-inline: auto;
}
@media screen and (min-width: 1201px) {
  .is-tab {
    display: none;
  }
}
@media screen and (max-width: 1200px) {
  .is-tab {
    display: block;
  }
}
@media screen and (min-width: 769px) {
  .is-pc {
    display: block;
  }
  .is-sp {
    display: none;
  }
}

@media screen and (max-width: 768px) {
  .is-pc {
    display: none;
  }
  .is-sp {
    display: block;
  }
}

.center{
  text-align: center;
}
.bold{
  font-weight: 500;
}
.red{
  color: var(--color-warning);
}
.text-smaller{
  font-size: 0.8em;
}
.text-larger{
  font-size: 1.4em;
  line-height: 1;
}
.mt-1 {
  margin-top: 6px;
}

.mt-2 {
  margin-top: 12px;
}

.mt-3 {
  margin-top: 24px;
}

.mt-4 {
  margin-top: 36px;
}

.mt-5 {
  margin-top: 48px;
}

.mt-6 {
  margin-top: 60px;
}

.mb-1 {
  margin-bottom: 6px;
}

.mb-2 {
  margin-bottom: 12px;
}

.mb-3 {
  margin-bottom: 24px;
}

.mb-4 {
  margin-bottom: 36px;
}

.mb-5 {
  margin-bottom: 48px;
}

.mb-6 {
  margin-bottom: 60px;
}

.toggle-trigger:hover{
  cursor: pointer;
}
.toggle-content{
  display: none;
}
section + section{
  padding-top: 2rem;
  scroll-margin-top:11.559rem;
}
.section-wrap{
  width: calc(var(--width-container-lg) - 2rem);
  margin-inline: auto;
  margin-bottom: 2.4rem;
}
.section-bg{
  background: #fff;
  padding: var(--section-padding) clamp(2rem, 4vw, 5rem);
  position: relative;
}
.section-heading__sub:has(.deco-osusume) .deco-osusume{
    margin-right: 0.8rem;
    top: -0.2rem;
}
.deco-osusume{
  color: var(--color-accent);
  background: #f26a461f;
  font-size: 1.2rem;
  padding: 0.4rem 0.8rem;
  vertical-align: middle;
  border-radius: 0.2rem;
  position: relative;
}
.icon-externallink{
  position: relative;
}
.icon-externallink:after{
    content: '';
    background: url(../images/icon-external-link.svg) center / contain no-repeat;
    width: 1.2rem;
    height: 1.2rem;
    display: inline-block;
    filter: brightness(0) saturate(100%) invert(69%) sepia(6%) saturate(4145%) hue-rotate(180deg) brightness(85%) contrast(88%);
    margin-left: 0.4rem;
    vertical-align: baseline;
}
.icon-phone:before{
    content: '';
    background: url(../images/icon-phone.svg) center / contain no-repeat;
    width: 1.7rem;
    height: 1.7rem;
    display: inline-block;
    filter: brightness(0) saturate(100%) invert(51%) sepia(56%) saturate(1142%) hue-rotate(140deg) brightness(93%) contrast(91%);
    margin-right: 0.4rem;
    vertical-align: middle;
}
.text-link {
    color: var(--color-primary);
    text-decoration-line: underline;
    text-decoration-thickness: 1px;
    text-decoration-skip-ink: none;
    text-underline-offset: 4px;
    text-decoration-color: var(--color-gray-400);
}
.text-link.has-icon{
    font-weight: 500;
    text-decoration: none;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 1.8rem;
}
.text-link.has-icon:before {
  position: relative;
  top: 1px;
  display: block;
  content: '';
  background: url(/assets/images/icon-arrow.svg) center no-repeat;
  background-size: 1.5rem auto;
  width: 4rem;
  height: 4rem;
  flex: 0 0 4rem;
  filter: brightness(0) saturate(100%) invert(69%) sepia(6%) saturate(4145%) hue-rotate(180deg) brightness(85%) contrast(88%);
  border: 0.1rem solid;
  border-radius: 100%;
}
.has-arrow{
  position: relative;
}
.has-arrow:after{
  position: relative;
    top: 1px;
    display: inline-block;
    content: '';
    background: url(/assets/images/icon-arrow.svg) center no-repeat;
    background-size: 1.5rem auto;
    width: 2rem;
    height: 1rem;
    flex: 0 0 4rem;
    filter: invert(31%) sepia(73%) saturate(3969%) hue-rotate(198deg) brightness(100%) contrast(87%);
}

/* Table
-------------------------------------------- */
.table__default{
    width: 100%;
}
.table__default th,
.table__default td {
    font-weight: normal;
}
.table__default th{  
  width: 14rem;
  padding: 10px 8px;
  color: var(--color-gray-700);
  background: var(--color-gray-100);
  vertical-align: top;
}
.table__default td{
    padding: 10px;
    word-break: break-all;
}

/* News
-------------------------------------------- */
.news__item{
    padding-bottom: 1rem;
}
.news__wrap .news__item:not(:first-child){
  border-top: 0.1rem solid var(--color-gray-200);
}
.news__wrap .toggle-trigger{
    display: flex;
    gap: 2rem;
    padding: 2rem 0.8rem 1rem;
}
.news__wrap .news__date{
  width: 14rem;
}
.news__wrap .news__ttl{
    width: min(95%, 80rem);
    margin-inline: auto 0;
    flex: 1;
    line-height: 1.6;
    color: var(--color-accent-link);
}
.news__wrap .toggle-content{
  width: calc(100% - 16rem);
    font-size: 1.4rem;
    margin-inline: auto 0;
    padding-inline: 0.8rem;
}
@media screen and (max-width: 768px) {
  .news__wrap .toggle-trigger{
      flex-direction: column;
      gap: 0;
      padding: 1rem 0 0;
    }
    .news__wrap .toggle-content{
      width: 100%;
      padding-inline: 0;
    }
    .news__wrap .news__ttl{
      width: 100%;
      margin-inline: 0;
      font-size: 1.4rem;
    }
    .news__wrap .news__date{
      font-size: 1.2rem;
    }
}
/* Btn
-------------------------------------------- */
.c-btn{
    background: var(--color-primary);
    color: #ffffff;
    border-radius: 0.4rem;
    padding: 1.8rem 1.2rem;
    font-size: clamp(1.3rem, 4vw, 1.5rem);
    display: inline-block;
    line-height: 1.4;
    width: min(36rem, 100%);
    text-align: center;
}

/* CTA */
.c-cta{
    padding: 2.4rem var(--section-padding) 3rem;
    position: relative;
    text-align: center;
    background: white;
    z-index: 4;
    border-top: 0.1rem solid var(--color-gray-300);
}

.c-cta .c-cta__heading{
  font-weight: 500;
  margin-bottom: 2.4rem;
}
.c-cta__btn.c-btn{
  background-color: var(--color-accent);
  color: #fff;
  position: relative;
  transition: filter 0.2s ease-in-out;
  z-index: 2;
  font-weight: 500;
  font-size: clamp(1.5rem, 4vw, 1.6rem);
  margin-inline: auto;
  display: block;
}
.c-cta__btn.c-btn:before {
    content: '';
    width: 100%;
    height: 4rem;
    background: #f36a47;
    display: block;
    position: absolute;
    left: 0;
    bottom: -1rem;
    filter: blur(8px);
    border-radius: 100%;
    z-index: -1;
    opacity: 0.3;
}
.c-btn.has-baloon{
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: clamp(1.5rem, 4.8vw, 2rem);
    padding: 0.8rem;
    position: relative;
    height: clamp(6rem,4vw,8rem);
}
.c-btn.has-baloon .baloon {
    position: absolute;
    top: -2rem;
    border: 2px solid;
    font-size: clamp(1.3rem, 3vw, 1.4rem);
    padding: .6rem 2rem 0.8rem;
    line-height: 1;
    background: #fff;
    color: var(--color-accent);
    font-weight: 500;
    border-radius: 0.4rem;
}
.c-btn.has-baloon .baloon:before {
    content: '';
    display: block;
    width: 0;
    height: 0;
    border-left: 0rem solid transparent;
    border-right: 0.8rem solid transparent;
    border-top: 0.8rem solid #fff;
    position: absolute;
    bottom: -0.8rem;
    right: 3rem;
    left: auto;
    margin-inline: auto;
}
@media (hover: hover) {
  .c-cta__btn.c-btn:hover{
    filter: brightness(0.9);
  }
}
/* Heading
-------------------------------------------- */
section:not(:first-child) .section-heading-wrap{
  margin-top: 3rem;
}
.section-heading-wrap{
    margin-bottom: 5rem;
    position: relative;
    padding-left: 3.6rem;
    z-index: 0;
}
.section-heading-wrap:before {
    content: '';
    width: 2rem;
    height: clamp(23rem, 21vw, 21rem);
    position: absolute;
    left: -1rem;
    z-index: -1;
    top: 0;
    display: inline-block;
    background: linear-gradient(-30deg, transparent 10%, var(--color-tertiary) 50%, var(--color-primary) 100%);
}
.section-heading-wrap .en{
  font-size: clamp(3rem, 6vw, 4.5rem);
  color: var(--color-primary);
  line-height: 1.2;
  background: var(--color-grandient-secondary);
  color: transparent;
  -webkit-background-clip: text;
  margin-bottom: 1rem;
}
.section-heading {
    line-height: 1.4;
    color: var(--color-gray-700);
    margin-top: max(0rem, calc(1rem - 2vw));
    font-size: clamp(1.3rem, 3vw, 1.5rem);
    line-height: 1.2;
    font-weight: 500;
}

.section-heading__sub{
  font-size: clamp(1.75rem, 4vw, 2.2rem);
  vertical-align: text-bottom;
  line-height: 1.4;
  margin-bottom: clamp(1.4rem, 4vw, 2.4rem);
  padding-bottom: 0.5rem;
  color: var(--color-gray-700);
  position: relative;
  padding-left: 2.4rem;
}
.section-heading__sub:before {
  content: '';
  width: 0.5rem;
  height: clamp(3rem, 5vw, 5rem);
  position: absolute;
  left: 0;
  top: 0;
  display: inline-block;
  background: linear-gradient(-30deg, transparent 10%, var(--color-tertiary) 50%, var(--color-primary) 100%);
}
.section-heading__sub:not(:first-of-type) {
    margin-top: 3.6rem;
}
.section-heading__border{
  padding-left: clamp(1rem,4vw,2rem);
  font-size: clamp(1em, 4vw, 1.2em);
  margin-block: 3rem 2rem;
  position: relative;
  font-weight: 500;
}
.section-heading__border:before{
  content: "";
  position: absolute;
  top:clamp(1rem,4vw,1.6rem);
  left: 0;
  transform: translateY(-50%);
  width: 0.4rem;
  height: 2.4rem;
  background-color: var(--color-gray-500);
}
.school-headersection-wrap{
    width:100%;
    margin-inline: auto;
    max-width: 196rem;
    margin-bottom:clamp(2.4rem, 4vw, 6rem);
}
.school-headersection-wrap .school-heading{
    width:calc(100% - 2rem);
    margin-inline: auto;
}

/* Header
-------------------------------------------- */
header#js-header {
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 10;
    background-color: #fff;
}
@media screen and (max-width: 1200px) {
  header#js-header{
      height: 6rem;
  }
}
.main-header__nav-wrap{
  height: 100%;
}
.main-header__nav-wrap > .inner{
    display: flex;
    justify-content: space-between;
    flex-direction: row;
    align-items: center;
    gap: 2rem;
    width: 95%;
    height: 7rem;
    margin-inline: auto;
}
.main-header__nav-wrap nav .inner{
    justify-content: center;
    color: #fff;
    width: var(--width-container-md);
    text-align: center;
    margin-inline: auto;
}

.main-header__nav-wrap .logo{
    width:min(30rem,100%);
}
.main-header__nav-wrap a:has(.logo){
    flex:1;
    padding-left:clamp(1rem,2vw,2rem);
}
.main-header__nav-wrap nav{  
    background: linear-gradient(90deg, rgba(255, 226, 0, 1) -2%, var(--color-tertiary) 5%, var(--color-primary) 25%);
}
.main-header__nav-wrap nav .main-list{
    display: flex;
    justify-content: flex-end;
}
.main-header__nav-wrap nav .main-list li a{
    font-size: 1.5rem;
    padding: 1.8rem 1.5rem;
    display: block;
}

/* Header - PC/SP共通
-------------------------------------------- */
.main-header__nav-wrap nav ul.main-list>li {
    position: relative
}
.main-header__nav-wrap nav ul.main-list .main-list-item {
    display: block;
    white-space: nowrap;
    font-weight: 500;
}
.main-header__nav-wrap nav ul.main-list .has-arrow-down{
    padding-left: 3rem;
    position: relative;
}
.main-header__nav-wrap nav ul.main-list>li:hover>ul.dropdown {
    display: block
}
.nav-cta-wrap {
    margin-left: auto;
    padding: 0.8rem 0
}
.nav-cta-wrap a.c-btn {
    background: #e8f0fe;
    color: #1a56db;
    border: 0.1rem solid #c3d4f8;
    border-radius: 0.6rem;
    padding: 0.8rem 1.4rem;
    text-decoration: none;
    font-size: 1.3rem;
    font-weight: 500;
    white-space: nowrap
}
.main-header__nav-wrap nav ul.main-list > li .has-arrow-down:before{
    content: '';
    display: inline-block;
    width: 0.8rem;
    height: 0.8rem;
    border-right: 0.15rem solid #fff;
    border-bottom: 0.15rem solid #fff;
    position: absolute;
    transform: translateY(-70%) rotate(45deg);
    top: 50%;
}
/* Header - PC(Drop Drown Menu)
-------------------------------------------- */
@media (min-width: 1201px) {
    .sp-nav-content{
      display: none;
    }
    .main-header__nav-wrap nav ul.main-list > li .has-arrow-down:before{
        left: 1.6rem;
    }
    .main-header__nav-wrap nav ul.dropdown {
        display: none;
        position: absolute;
        top: 100%;
        left: 0;
        background: #fff;
        border-style:solid;
        border-width: 0 0.1rem 0.1rem 0.1rem;
        border-color: var(--color-gray-200);
        min-width: 36rem;
        z-index: 10;
    }
    .main-header__nav-wrap nav ul.dropdown li a {
        display: block;
        padding: 1.8rem 1.5rem;
        color:#5A6884;
        white-space: nowrap;
        text-align: left;
    }
    .main-header__nav-wrap nav ul.main-list .main-list-item-contact{
      background-color: #fff;
        color: var(--color-primary);
        border-radius: 4rem;
        line-height: 4rem;
        width: 12rem;
        height: 4rem;
        vertical-align: middle;
        position: relative;
        bottom: 0;
        top: -50%;
        padding: 0;
        transform: translateY(100%);
        margin-left: 1rem;
    }

    .main-header__nav-wrap nav ul.dropdown li a:hover {
        background: #f6f6f6
    }

    .main-header__nav-wrap nav ul.main-list .main-list-item:not(.main-list-item-contact):hover,
    .main-header__nav-wrap nav ul.main-list > li:has(> ul.dropdown:hover) .main-list-item{
      background: #fff;
      color: var(--color-text-primary);
    }
    .main-header__nav-wrap nav ul.main-list > li > .has-arrow-down:hover:before,
    .main-header__nav-wrap nav ul.main-list > li:has(> ul.dropdown:hover) a.has-arrow-down:before{
        filter: brightness(0) saturate(100%) invert(32%) sepia(8%) saturate(487%) hue-rotate(169deg) brightness(94%) contrast(89%);
    }
}
/* Header - SP(Toggle)
-------------------------------------------- */
@media (max-width: 1200px) {
    .main-header__nav-wrap nav ul.main-list li:has(.main-list-item-contact){
      display: none;
    }
    .main-header__nav-wrap nav ul.main-list>li{
        text-align: left;
    }
    .main-header__nav-wrap nav ul.main-list > li > .main-list-item{  
      position: relative;
    }
    .main-header__nav-wrap nav ul.main-list > li > .main-list-item:not(.has-arrow-down):after{
      content: '';
      display: inline-block;
      width: 0.8rem;
      height: 0.8rem;
      border-right: 0.15rem solid #fff;
      border-bottom: 0.15rem solid #fff;
      position: absolute;
      transform: translateY(-70%) rotate(-45deg);
      top: 50%;
      right: 1.6rem;
    }
    .main-header__nav-wrap nav ul.main-list > li .has-arrow-down:before{
        right: 1.6rem;
    }
    .main-header__nav-wrap nav ul.dropdown {
        display: none !important;
    }

    .main-header__nav-wrap nav ul.main-list > li:hover > ul.dropdown {
        display: none !important;
    }

    .main-header__nav-wrap nav ul.main-list > li.is-open > ul.dropdown {
        display: block !important;
        margin-block: 0 1rem;
        padding-block: 0.25rem 0.5rem;
        background: #0058a04a;
    }

    .main-header__nav-wrap nav ul.main-list {
        flex-direction: column;
        padding-inline: 2.4rem;
    }

    .main-header__nav-wrap nav ul.main-list > li > .main-list-item:not(.main-list-item-contact) {
        display: block;
        padding: 1.2rem 0;
        cursor: pointer;
    }

    .main-header__nav-wrap nav ul.main-list > li.is-open > .has-arrow-down::before {
        transform: translateY(-30%) rotate(-135deg);
    }

    .main-header__nav-wrap nav ul.dropdown li a {
        padding: 1.2rem 2rem;
        border: none;
    }
    .main-header__nav-wrap nav ul.dropdown li a:before{
        content: '';
        display: inline-block;
        width: 0.8rem;
        height: 0.8rem;
        border-right: 0.15rem solid #fff;
        border-bottom: 0.15rem solid #fff;
        transform: translateY(0%) rotate(-45deg);
        left: -0.8rem;
        position: relative;
    }
    .main-header__nav-wrap nav ul.main-list > li.is-open > ul.dropdown {
        display: block !important;
        margin-block: 0 1rem;
        padding-block: 0.25rem 0.5rem;
        background: #0058a04a;
        animation: fadeDown 0.2s ease;
    }
    @keyframes fadeDown {
        from {
            opacity: 0;
        }
        to {
            opacity: 1;
        }
    }
    .sp-nav-content{
      margin-top: 2.4rem;
    }
    .sp-nav-content .sp-nav-links{
        background-color: #106ECF;
        padding: 2rem 2.4rem;
    }
    .sp-nav-content .sp-nav-links .c-btn{
        font-weight: 500;
    }
    .sp-nav-content .sp-nav-links .c-btn--contact{
        background: #fff;
        color: var(--color-text-primary);
    }
    .sp-nav-content .sp-nav-links .c-btn--event{
        background-color:var(--color-accent);
        color: #fff;
    }
    .sp-nav-content .sp-nav-footer{
        margin-block: 3.6rem;
    }
    .sp-nav-content .sp-nav-footer-copy{
        font-size: 1rem;
    }
}
@media (max-width: 414px) {
  body.t-c.is-nav-open {
    overflow: hidden;
  }
}
/* Header - 問い合わせ
-------------------------------------------- */
.c-contact__list_tel{
    display: flex;
    line-height: 1.6;
    gap:3rem;
}
.c-contact__list_tel .c-contact__item{
    font-size: 1rem;
}
.c-contact__list_tel .c-contact__item dt{
    font-weight: 600;
    line-height: 1;
}
.c-contact__list_tel .c-contact__item dd .en{
    color: var(--color-primary);
    font-size: 1.8rem;
    line-height: 1;
    letter-spacing: 0;
    display: inline-block;
    margin-block: 0.4rem;
}
.c-contact__list_tel .c-contact__item dd img{
    width: 2.4rem;
    vertical-align: text-bottom;
    margin-right: 0.5rem;
}

.c-contact__list_actions{
    display: flex;
    border-inline: 0.1rem solid var(--color-gray-400);
    height: 100%;
}
.c-contact__list_actions .c-contact__list_actions_btn:nth-child(even){
    border-left: 0.1rem solid var(--color-gray-400);
}
.c-contact__list_actions .c-contact__list_actions_btn{
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 9rem;
    justify-content: center;
    font-size: 1.2rem;
    line-height: 1.3;
}
.c-contact__list_actions .c-contact__list_actions_btn:nth-child(1) img{
    margin-bottom: 0.5rem;
    transform: scale(.8);
}
.c-contact__list_actions .c-contact__list_actions_btn:nth-child(2) img{
    transform: scale(.8);
}
.main-header__cta-wrap .c-header-cta-btn{
    background: var(--color-accent);
    color: #ffffff;
    border-radius: 0.4rem;
    padding: 1.2rem;
    font-size: 1.3rem;
    display: inline-block;
    line-height: 1.4;
    width: min(30rem, 100%);
    text-align: center;
    transition: filter 0.2s ease-in-out;
}
@media (hover: hover) {
  .main-header__cta-wrap .c-header-cta-btn:hover{
    filter: brightness(0.9);
  }
}
@media screen and (max-width: 1200px) {
    .c-contact__list_tel,
    .main-header__nav-wrap nav{
        display: none;
    }
    .main-header__nav-wrap nav.active{
        display: block;
        background: var(--color-primary);
        width: min(50rem,100%);
        margin-right: 0;
        height: 100vh;
        margin-left: auto;
    }
    .main-header__nav-wrap nav.active .inner{
        display: block;
        padding: 2rem 0;
        overflow-y: auto;
        max-height: calc(100vh - 6rem);
    }
    .nav-button-wrap {
        display: block;
        width:6rem;
        height: 100%;
        cursor: pointer;
        background-color: var(--color-primary);
        position: relative;
        flex-shrink: 0;
    }
    .main-header__nav-wrap .inner{
      width: 100%;
    }
    .main-header__nav-wrap > .inner{
        height: 100%;
    }
    .nav-button {
        width: 2.5rem;
        height: 2rem;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translateY(-50%) translateX(-50%);
    }
    .nav-button span {
        position: absolute;
        left: 0;
        width: 2.5rem;
        height: 0.3rem;
        background-color: #fff;
    }
    .nav-button span:nth-of-type(1) {
        top: 0;
    }
    .nav-button span:nth-of-type(2) {
        top: 46%;
    }
    .nav-button span:nth-of-type(3) {
        bottom: 0;
    }
    .nav-button-wrap.active span:nth-of-type(1) {
        top: 1rem;
        transform: rotate(45deg);
    }
    .nav-button-wrap.active span:nth-of-type(2) {
        display: none;
    }
    .nav-button-wrap.active span:nth-of-type(3) {
        top: 1rem;
        transform: rotate(-45deg);
    }
    .main-header__nav-wrap nav .main-list li a{
        padding-block: 1rem;
        padding-inline: 0;
        display: block;
    }
    .main-header__nav-wrap .main-list-item{
      padding-block: 1rem;
    }
    .main-header__nav-wrap nav .main-list > li{
        border-bottom: 0.1rem solid #f9fafb4d;
    }
}
@media screen and (max-width: 768px) {
    .c-contact__list_actions,
    .main-header__cta-wrap{
        display: none;
    }
}

/* Header - 下層
-------------------------------------------- */
.content-heading__wrap{
    margin-top: 13rem;
    overflow: hidden;
}
.content-heading__inner{
  width: 100%;
  margin-inline: auto;
  display: flex;
  justify-content: flex-start;
  min-height: clamp(24rem, 35vw, 45rem);
  padding-left: clamp(2rem, 5vw, 20rem);
  margin-bottom: clamp(2rem, 5vw, 9rem);
  position: relative;
}
.content-heading__ja{
  font-size: clamp(1.4rem, 2vw, 1.8rem);
  font-weight: 500;
  line-height: 1.2;
  margin-top: clamp(0rem, 1vw, 1.4rem);
  z-index: 1;
  padding-bottom: 2.4rem;
  opacity: 0.9;
  width: clamp(80%, 8vw + 40%, 50%);
}

.content-heading__en{
  background: linear-gradient(90deg, var(--color-primary) 30%, var(--color-tertiary) 50%);
  color: transparent;
  -webkit-background-clip: text;
  font-size: clamp(3.8rem, 6vw, 8rem);
  line-height: 1.2;
  z-index: 1;
  display: flex;
  flex-direction: column;
  letter-spacing: -0.2rem;
  padding-right: 1em;
  margin-right: -1em;
  width: fit-content;
}
.content-heading__en .text-smaller {
    font-size: clamp(1.4rem,4vw,4rem);
    font-weight: 500;
}
@media screen and (max-width: 1200px) {
  .content-heading__wrap{
    margin-top: 6rem;
  }
  .content-heading__en{
    letter-spacing: -0.1rem;
  }
}
.content-heading__object-wrapper {
    width:min(60%, var(--width-container-sm));
    height: 100%;
    position: absolute;
    bottom: 0;
    right: 0;
    transform: skew(-10deg, 0deg) translateX(clamp(4.25rem, 0.882vw, 6.2rem));
    transform-origin: bottom right;
}

.content-heading__object {
    width: 100%;
    height: 100%;
    border-radius: clamp(2rem,4vw,3rem) 0 0 0;
    overflow: hidden;
    position: relative;
}
.content-heading__object img {
    display: block;
    position: absolute;
    right: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transform: skew(10deg, 0deg);
    transform-origin: bottom right;
}

.content-heading__ttl{  
    width:clamp(65%, 8vw + 40%,50%);
    margin-inline: 0 auto;
    padding-block: clamp(6rem, 8vw, 10rem);
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Intro - 下層
-------------------------------------------- */
.excerpt__wrap:before {
    position: absolute;
    inset: 0;
    border: 1px solid transparent;
    border-image: linear-gradient(90deg, var(--color-primary), var(--color-tertiary)) 1;
    transform: skew(-10deg);
}

.excerpt__wrap {
    position: relative;
    padding: clamp(3rem, 8vw, 8rem) clamp(2rem, 5vw, 20rem) clamp(3rem, 5vw, 5rem);
    display: block;
    margin-inline: auto;
    color: var(--color-gray-500);
    font-size: clamp(1.2rem,3vw,1.4rem);
    margin-top:clamp(-10rem, calc(3rem - 3vw * 4), -4rem);
    z-index: -1;
    margin-bottom: clamp(2rem, 5vw, 9rem);
    background: white;
}

.excerpt__inner {
    display: flex;
    flex-wrap: nowrap;
    gap: clamp(1.2rem,3vw,5rem);
    width: calc(var(--width-container-md) - 4rem);
    margin-inline: auto;
}

.excerpt__inner .en {
    font-size: 1.2em;
    display: inline-block;
    position: relative;
    padding-left: 3rem;
}

.excerpt__inner .en:before {
    content: '';
    width: 0.4rem;
    height: 3rem;
    background: linear-gradient(-30deg, transparent 10%, var(--color-tertiary) 50%, var(--color-primary) 100%);
    display: inline-block;
    position: absolute;
    left: 0;
    top: 0;
}

.excerpt__inner .excerpt__head{
    flex: 1;
}
.excerpt__inner .excerpt__body{  
    flex: 3;
}

@media screen and (max-width: 768px) {
    .excerpt__inner {
        flex-direction: column;
        width: 100%;
    }
}

/* Layout - 下層
-------------------------------------------- */
.l-page-container{
  background: #ECF5FD;
  padding-block: 3.6rem 4.8rem;
}
.content-heading__inner .excerpt{
    margin-top: 3.6rem;
    font-size: clamp(1.2rem, 3vw, 1.3rem);
    color: var(--color-gray-500);
    width: clamp(30rem, 35vw, 40rem);
    padding-bottom: 6rem;
}
.breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  list-style: none;
  font-size: 1rem;
  width: calc(var(--width-container-lg) - 4rem);
  margin-inline: auto;
  padding-block: 1rem;
}
.breadcrumb-list .breadcrumb-item:not(:last-of-type)::after {
  content: "›";
  margin: 0.3rem;
  font-size: 22px;
  line-height: 0;
  opacity: 0.3;
  position: relative;
  top: 0.2rem;
}
.breadcrumb-list .breadcrumb-item{
  color: var(--color-accent-link);
}
.breadcrumb-list .breadcrumb-item a{
    text-underline-offset: 0.2rem;
    text-decoration: underline;
    color: var(--color-accent-link);
}
.breadcrumb-list .breadcrumb-item br{
  display: none;
}

/* Layout - 下層 - sidebarあり
-------------------------------------------- */
.l-page-container:has(.l-sidebar){
    display: grid;
    grid-template-columns: min(100%, 40rem) 1fr;
    gap: 0 2%;
    justify-content: center;
    max-width: var(--width-container-lg);
    margin-inline: auto;
}
.l-page-container:has(.l-sidebar) .content-heading__wrap{
    grid-column: 1/3;
}
.l-page-container:has(.l-sidebar) .pankuzu{
    grid-column: 1/3;
}
.l-sidebar {
  grid-column: 1 / 2;
    width: 100%;
    padding: 0 3rem 3rem;
    margin-inline: auto 0;
}

.l-sidebar + .l-content-area{
  grid-column: 2 / 3;
  width: min(calc(var(--width-container-sm) - 2rem), 100%);
  margin-inline: 0 auto;
}

.toc-list-wrap{
    position: sticky;
    top: 18rem;
    z-index: 1;
}
.toc-items .toc-item{
  position: relative;
  padding-left: 1.8rem;
  margin-bottom: 0.8rem;
}
.toc-items .toc-item:before{  
  content: '';
  width: 0.7rem;
  height: 0.7rem;
  display: inline-block;
  border-radius: 100%;
  background: var(--color-gray-300);
  position: absolute;
  left: 0;
  top: 1rem;
}

.toc-items .toc-item a.active {
  font-weight: 500;
  color: var(--color-primary);
}
.toc-items .toc-item a:not(.active){
  color:var(--color-gray-500);
}
.toc-items .toc-item:hover,
.toc-items .toc-item a:not(.active):hover{
  color: var(--color-primary);
}
.toc-items .toc-item:has(.active):before{
  background-color: var(--color-primary);
  box-shadow: 0 0 5px 1px rgb(18 120 226 / 50%);
}
@media screen and (max-width: 1200px) {
  .toc-list-wrap{
    top: 10rem;
  }
}
@media screen and (max-width: 900px) {
  .l-page-container:has(.l-sidebar){
    display: flex;
    flex-direction: column;
  }
  .l-sidebar + .l-content-area{
    width: 100%;
  }
  .l-sidebar{
    display: none;
  }
}

/* Q&A
-------------------------------------------- */
.qa-wrap{
  position: relative;
}
.qa-wrap li.qa-items{
  background-color: #ffffff;
  border-bottom: 0.1rem solid var(--color-gray-300);
  padding-bottom: 1rem;
}
.qa-wrap li.qa-items:not(:first-child){
  margin-top: 1rem;
}
.qa-wrap li.qa-items:first-child {
    border-top: 0.1rem solid var(--color-gray-300);
    padding-top: 1rem;
}
.qa-wrap .toggle-trigger{
  padding-block: 1.4rem;
  padding-inline: 3rem 3rem;
}
.qa-wrap .toggle-content{
    margin-left: auto;
    font-size: clamp(1.4rem,4vw,1.5rem);
    color: var(--color-gray-700);
    background: #308be630;
    padding-inline: 5rem 3rem;
}
.qa-wrap .toggle-trigger,
.qa-wrap .toggle-content{
  position: relative;
}
.qa-wrap .toggle-trigger:before,
.qa-wrap .toggle-content:before{
  position: absolute;
  font-weight: 500;
  font-size: 1.8rem;
  top: 2rem;
}
.qa-wrap .toggle-trigger:before{
    content: 'Q';
    color: var(--color-gray-500);
    left: 0;
    top: 1rem;
}
.qa-wrap .toggle-content:before{
    content: 'A';
    color: var(--color-primary);
    position: absolute;
    left: 2rem;
}
.qa-wrap .toggle-content a{
  color:var(--color-primary);
}
.qa-wrap .toggle-content ol{
    list-style: auto;
    padding-left: 2rem;
    position: relative;
}
.qa-wrap .toggle-content ul li{
  list-style: none;
  padding-left: 1rem;
  position: relative;
}
.qa-wrap .toggle-content ul li:before{
  content: '';
  position: absolute;
  top: 1.6rem;
  left: 0;
  width: 0.25rem;
  height: 0.25rem;
  background: var(--color-text-primary)
}
.qa-wrap .qa-a{
  padding-block:2.4rem;
}

/* Footer - Outro
-------------------------------------------- */
.outro__contact-info{
    background: #142850;
    color: #F7F7F7;
    padding-block: var(--section-padding);    
}
.outro__contact-info .container-lg{
    width: calc(var(--width-container-lg) - 4rem);
}
.outro__contact-info .c-btn{
    background: #F7F7F7;
    color: initial;
    font-weight: 500;
    width: 100%;
    padding-block: 1.88rem;
    font-size: 1.6rem;
}
.outro__contact-info .outro__block:nth-child(1){
    text-align: center;
    display: grid;
    gap: 2rem;
}
.outro__contact-info .outro__block:nth-child(1) .ttl{
    grid-column: 1 / 3;
    padding-block: 3rem 0;
}
.outro__contact-info .outro__block:nth-child(1) .ttl .en{
    background: var(--color-grandient-primary);
    -webkit-text-fill-color: transparent;
    color: transparent;
    -webkit-background-clip: text;
    font-size: clamp(3.8rem, 6vw, 8rem);
    letter-spacing: -0.05rem;
    display: inline-block;
    line-height: 1.2;
}
.outro__contact-info .outro__block:nth-child(1) .ttl .ja{
    font-size: clamp(1.2rem, 2vw, 1.5rem);
}
.outro__contact-info .outro__block:nth-child(1) .c-btn:nth-child(2){
    grid-column: 1 / 2;
    grid-row: 2/3;
    margin-right: 0;
    margin-left: auto;
}
.outro__contact-info .outro__block:nth-child(1) .c-btn:nth-child(3){
    grid-column: 2 / 3;
    grid-row: 2/3;
}
.outro__contact-info .ttl{
    font-size: 1.8rem;
    font-weight: 500;
}
.outro__contact-info .outro__phone{
    width: 100%;
}
.outro__contact-info .outro__phone .ttl{
    font-size: 1.5rem;
    position: relative;
    display: flex;
    align-items: center;
    font-size: 1.4rem;
    margin-bottom: 0rem;
    text-align: center;
    letter-spacing: 0;
}
.outro__contact-info .outro__phone .ttl:before,
.outro__contact-info .outro__phone .ttl:after{
    content: "";
    height: 1px;
    flex-grow: 1;
    background-color: #ffffff45;
}
.outro__contact-info .outro__phone .ttl:before{
  margin-right: 0.5rem;
}
.outro__contact-info .outro__phone .ttl:after{
  margin-left: 0.5rem;
}
.outro__contact-info .outro__phone .info{
    font-weight: normal;
    font-size: 1.2rem;
    text-align: center;
}
.outro__contact-info .outro__phone dd.phone-num{
    font-size: clamp(3rem,4vw,3.6rem);
    letter-spacing: 0.1rem;
    line-height: 1.6;
}
.outro__contact-info .outro__block{
    width: min(65rem, 100%);
    margin-inline: auto;
    text-align: center;
}
.outro__contact-info .outro__block:nth-child(2){
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3rem;
    padding-block: 3rem;
    letter-spacing: 0.1rem;
}
@media screen and (max-width: 768px) {
    .outro__contact-info .outro__block:nth-child(1){
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    .outro__contact-info .outro__block:nth-child(1) .c-btn:nth-child(2){
        margin-left: initial;
    }
    .outro__contact-info .outro__block:nth-child(2){
        flex-direction: column;
    }
}
/* Footer
-------------------------------------------- */
.main-footer{
    font-size: 1.3rem;
    background: #ffffff;
}
.main-footer .logo{
    width:min(20rem,100%);
}

.main-footer__nav-group-wrap{
    display: flex;
    align-items: flex-start;
    gap: 4rem;
    padding-block: 3rem 3.6rem;
    width: calc(var(--width-container-lg) - 4rem);
}
.main-footer__nav-wrap{
    flex:5;
}
.main-footer__utility-links{
    margin-bottom: 3.6rem;
}
.main-footer__utility-links a {
    font-size: 1.2em;
    font-weight: 500;
    position: relative;
    display: inline-block;
}
.main-footer__utility-links a:after{
    content: '/';
    opacity: 0.2;
    padding-inline: 1rem;
}
.main-footer__nav-ttl {
    font-weight: 500;
    opacity: 0.5;
}

.main-footer__nav-group{
    margin-bottom: 0.8rem;
}

.main-footer__nav-group ul{
    display: flex;
    flex-wrap: wrap;
    gap: 0 2rem;
}
.main-footer__nav-group ul li a{
    text-decoration-line: underline;
    text-decoration-thickness: 1px;
    text-decoration-skip-ink: none;
    text-underline-offset: 1px;
}
.main-footer a:hover{  
  color:var(--color-primary);
}
.main-footer__info{
    background: var(--color-gray-200);
    text-align: center;
    padding-block: 1rem;
}
.main-footer__info a{  
    margin-inline: 0.5rem;
}

.main-footer__copyright {
    padding-block: 2rem 3.6rem;
    width: calc(var(--width-container-sm) - 4rem);
    margin-inline: auto;
}
.main-footer .logo {
    width: min(41rem, 100%);
    margin-inline: auto;
    display: block;
    margin-bottom: 1rem;
}
.main-footer__copyright small {
    display: block;
    color: var(--color-gray-500);
}

@media screen and (max-width: 1200px) {
  .main-footer__nav-group-wrap{
    flex-direction: column;
  }
}