@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;600;700&family=Noto+Serif+JP:wght@400;500;600;700&family=Roboto:wght@300;400;500;600;700&display=swap");
/* -------------- 画面幅設定--------------  */
.contents-wrap {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}
.contents100-wrap {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
}
.contents110-wrap {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
}
@media (max-width: 1199px) {
    .contents-wrap {
        width: 100%;
        padding: 0 3%;
    }
    .contents100-wrap {
        width: 100%;
        padding: 3%;
    }
    .contents110-wrap {
        width: 100%;
        padding: 3%;
    }
}


/* -------------- 共通の設定 --------------  */
main {
    margin-top: 150px;
}
/* 文字設定 */
.red {
    color: #FA4242;
}
.blue {
    color: #153C96;
}
p {
    font-size: 1.6rem;
    line-height: 2.8rem;
}
small {
    font-size: 1.4rem;
    line-height: 2.2rem;
}
/* 線のボックス */
  .line-box {
    border: 1px solid #153C96;
    border-radius: 20px;
    padding: 50px;
    box-sizing: border-box;
  }
  /* 文頭に飾り線のある見出し */
  .b-line {
    color: #1840A0;
    font-size: 1.8rem;
    padding-left: 20px;
    position: relative;
    padding-bottom: 15px;
    font-weight: 600;
  }
  .b-line::before {
    content: "";
    position: absolute;
    left: 0;
    top: 33%;
    transform: translateY(-50%);
    width: 8px;
    height: 1.2em;
    background-color: #88A1DB;
    border-radius: 4px;
  }
  .opa {
    opacity: 0;
  }
  .pconly {
    display: block;
  }
  .sponly {
    display: none;
  }
  .en-ttl {
    font-weight: 700;
    font-size: 2rem;
    padding-bottom: 15px;
  }
  .ja-ttl {
    font-weight: 700;
    font-size: 2.4rem;
    line-height: 3.6rem;
  }
  @media (max-width: 779px) {
    main {
        margin-top: 80px;
    } 
    p, li, a {
        font-size: 1.4rem;
    }
    small {
        font-size: 1.1rem;
    }
    .pconly {
        display: none;
    }
    .sponly {
      display: block;
    }
    .b-line {
        font-size: 1.6rem;
        padding-left: 15px;
    }
    .b-line::before {
        width: 5px;
    }
    .en-ttl {
        font-size: 1.4rem;
        line-height: 2rem;
        padding-bottom: 5px;
      }
    .ja-ttl {
        font-size: 1.8rem;
        line-height: 3rem;
    }
  }
/* -------------- 共通のボタンの装飾 --------------  */

/* ホバーで線がのびる */
.underline {
    display: inline-block;
    position: relative;
  }
.underline::after {
    background-color: #88A1DB;
    bottom: -15px;
    content: '';
    display: block;
    height: 4px;
    left: 0;
    position: absolute;
    transition: .5s all;
    width: 0;
    border-radius: 10px;
}
.underline:hover::after {
    width: 100%;
}
/* 矢印が少し動く */
.arrow {
    position: relative;
}
.arrow::before {
    display: inline-block;
    position: absolute;
    top: 43%;
    right: 30px;
    content: '';
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24.936' height='11' viewBox='0 0 24.936 11'%3E%3Cg id='グループ_91' transform='translate(-739.5 -157.5)'%3E%3Cpath d='M5.5,0,11,9H0Z' transform='translate(764.436 157.5) rotate(90)' fill='%231840a0'/%3E%3Cpath d='M19.436,1H0V-1H19.436Z' transform='translate(739.5 163)' fill='%231840a0'/%3E%3C/g%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    width: 1.2em;
    height: 0.8em;
    transition: right .3s;
  }
.arrow:hover::before {
    right: 20px;
}
/* 電話ボタン */
.tel-btn{

        display: flex;
        align-items: center;
        justify-content: center;
        text-decoration: none;
        
    background-color: #1740A0;
    overflow: hidden;
    color: #ffffff;
    padding: 10px 20px;
    border-radius: 15px;
    border: 3px solid #ffffff;
    transition: 0.5s;
    position: relative;
    cursor: pointer;
}
.tel-btn:before {
    content: "";
    position: absolute;
    top: 5px;  /* 内側ボーダーのオフセット */
    left: 5px;
    right: 5px;
    bottom: 5px;
    border: 1px solid #fff; /* 内側の白ボーダー */
    border-radius: 10px; /* 外枠より少し小さく */
    pointer-events: none; /* クリックを妨げない */
}
.tel-btn:hover {
    background-color: #ffffff;
    color: #1740A0;
    border: 3px solid #1740A0;
    /* box-sizing: border-box; */
}
.tel-btn .tel-icon svg path {
    fill: #ffffff;
    transition: fill 0.5s;
}
.tel-btn:hover .tel-icon svg path {
    fill: #1740A0;
}
.tel-btn a{
    display: flex;
    align-items: center;
    justify-content: center;
}
.tel-btn .text {
    text-align: center;
    padding-left: 10px;
}
.tel-btn span {
    font-weight: 500;
    font-size: 1.6rem;
}
.tel-btn p {
    font-weight: 600;
    font-size: 3rem;
    padding-top: 5px;
}
.tel-small {
    display: block;
    text-align: center;
    padding-top: 5px;
}
/* 採用ボタン */
.recruit-btn {
    background-color: #E1F2F8;
    overflow: hidden;
    color: #1740A0;
    padding: 10px 20px;
    border-radius: 15px;
    border: 3px solid #E1F2F8;
    transition: 0.5s;
    position: relative;
    cursor: pointer;
    margin-right: 5px;
}
.recruit-btn p {
    font-size: 2.2rem;
    font-weight: 600;
    padding-top: 10px;
}
.recruit-btn:hover {
    border: 3px solid #1740A0;
    /* box-sizing: border-box; */
}
@media (max-width: 779px) {
    .tel-small {
        padding: 0;
    }
    .tel-btn span {
      font-size: 1.7rem;
    }
}
/* -------------- アコーディオン --------------  */

.box-inner {
    display: none;
    box-sizing: border-box;
    text-align: left;
    width: 100%;
    font-weight: 500;
}
.js-accordion-title.active .box-inner{
    display: block;
}
.ac {
    position: relative;
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}
.ac::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 10px;
    width: 15px;
    height: 2px;
    /*縦線に*/
    transform: rotate(90deg);
    background: #1840A0;
    transition: all .3s ease-in-out;
}
.ac::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 10px;
    /*横線*/
    width: 15px;
    height: 2px;
    background: #1840A0;
    transition: all .2s ease-in-out;
}
.ac.active::before {
    transform: rotate(180deg);
}
.ac.active::after {
    opacity: 0;
}


/* ------------------ ヘッダー ------------------ */
.pcnav {
    display: block;
}
.spnav  {
    display: none;
}
body {
    overflow-y: auto;
  }
.header {
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    transition: transform 0.3s ease;
    background-color: #ffffff;
    padding: 15px 0 25px;
}
.header.is-hidden {
    transform: translateY(-120%);
}
.header .pcnav {
    max-width: 1450px;
    margin: 0 auto;
    padding: 0 3%;
}

.nav-list {
    display: flex;
    align-items: center;
}
/* PC　上段 */
.upper_nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.sitelogo {
    display: block;
    width: 18em;
}
.upper_nav .nav {
    display: flex;
}
.upper_nav .nav-list {
    color: #1840A0;
    font-size: 1.6rem;
}
.upper_nav .nav-list .item:not(:first-child) {
    padding: 0 15px;
    border-left: 1px solid #CBEAF5;
}
.upper_nav .nav-list .item:first-child {
    padding-right: 15px;
}
.upper_nav .tel-btn {
    border: 3px solid #1740A0;
}
.upper_nav .tel-btn:hover {
    border: 3px solid #1740A0;
}
.upper_nav .tel-btn:before {
    content: none;
}
/* PC　下段 */
.lower_nav .nav-list{
    display: flex;
    justify-content: space-between;
    margin-top: 20px;
    font-size: 1.7rem;
    font-weight: 500;
}
.lower_nav .open {
    position: relative;
    display: inline-block;
}
.lower_nav .open:hover .subnav {
    visibility: visible;
    opacity: 1;
}
.subnav {
    background-color: #ffffff;
    position: absolute;
    left: 50%;
    margin: 0 auto;
    top: 100%;
    opacity: 0;
    visibility: hidden;
    width: 280px;
    z-index: 100;
    padding: 30px;
    border-radius: 0 0 15px 15px;
    transform: translateX(-50%);
    transition: opacity .4s ease, transform .4s ease, visibility .4s;
}
.subnav .ttl {
    color: #1840A0;
    font-size: 2rem;
    padding-left: 20px;
    position: relative;
    padding-bottom: 15px;
    font-weight: 500;
}
.subnav .ttl::before {
    content: "";
    position: absolute;
    left: 0;
    top: 33%;
    transform: translateY(-50%);
    width: 8px;
    height: 1.2em;
    background-color: #88A1DB;
    border-radius: 4px;
}
.subnav .item {
    border-bottom: 1px solid #90CDE3;
    padding: 15px 0 15px 10px;
    width: 100%;
}
.subnav .item a {
    display: block;
    width: 100%;
}
/* スマホヘッダー */
@media (max-width: 779px) {
    .pcnav {
        display: none;
    }
    .spnav  {
        display: block;
    }
    /* 開く前のヘッダー */
    .header {
        width: 100%;
        margin: 0;
        padding: 3%;
    }
    .sp-head {
        position: relative;
    }
    .spnav .sp-head {
        display: flex;
        align-items: center;
        width: 100%;
        justify-content: space-between;
    }
    .sitelogo {
        width: 70%;
    }
    .spnav .btns {
        display: flex;
    }
    /* スクエア　電話ボタン */
    .spnav .sp-tel-btn {
        border: 2px solid #1740A0;
        background-color: #ffffff;
        color: #1740A0;
        text-align: center;
        width: 12vw;
        height: 12vw;
        margin-right: 10px;
        border-radius: 5px;
        text-align: center;
    }
    .spnav .sp-tel-btn .tel-icon svg {
        fill: #1740A0;
        display: block;
        width: 1.25em;
        height: auto;
        margin: 0 auto;
        padding: 3px 0;
    }
    .spnav .sp-tel-btn span {
        font-size: 9px;
        font-weight: 500;
    }
    /* トグルボタン */
    .nav-toggle {
        display: block;
        z-index: 1000000;
        width: 12vw;
        height: 12vw;
        background-color: #1740A0;
        cursor: pointer;
        position: relative;
        border-radius: 5px;
    }
    .nav-toggle.is-active {
        background-color: #fff;
    }
    .nav-toggle span {
        -webkit-transform: translate(-50%, -50%);
        -webkit-transition: all 0.3s ease;
        position: absolute;
        top: calc(50% - 4px);
        left: 50%;
        width: 50%;
        height: 2px;
        transform: translate(-50%, -50%);
        background-color: #fff;
        transition: all 0.3s ease;
    }
    .nav-toggle span:nth-child(1) {
        top: calc(50% - 11px);
    }
    .nav-toggle span:nth-child(3) {
        top: calc(50% + 4px);
    }
    .nav-toggle.is-active span {
         background-color: #1740A0;
    }
    .nav-toggle.is-active span:nth-child(1) {
        -webkit-transform: translate(-50%, -50%) rotate(45deg);
        top: calc(50% - 3px);
        transform: translate(-50%, -50%) rotate(45deg);
    }
    .nav-toggle.is-active span:nth-child(2) {
        display: none;
    }
    .nav-toggle.is-active span:nth-child(3) {
        -webkit-transform: translate(-50%, -50%) rotate(-45deg);
        top: calc(50% - 3px);
        transform: translate(-50%, -50%) rotate(-45deg);
    }
    .nav-toggle p {
        color: #ffffff;
        font-size: 9px;
        font-weight: 500;
        position: absolute;
        bottom: -5px;
        left: 50%;
        transform: translateX(-50%);
        width: 80%;
    }
    .nav-toggle.is-active p {
        color: #1740A0;
    }
    /* ハンバーガーメニューの中身 */
    .is-bg-fixed {
        z-index: -1;
        position: fixed;
        left: 0;
        width: 100%;
        height: 100%;
    }
    .nav-innner {
        -webkit-transition: 300ms;
        visibility: hidden;
        z-index: -1;
        position: absolute;
        top: 65px;
        left: 0;
        width: 100%;
        height: 100vh;
        overflow: scroll;
        background-color: #E1F2F8;
        opacity: 0;
        pointer-events: none;
        transition: 300ms;
        padding-top: 20px;
    }
    .nav-innner.is-active {
        visibility: visible;
        z-index: 9999;
        opacity: 1;
        pointer-events: all;
    }
    .nav-innner .menu-list {
        background-color: #ffffff;
        border-radius: 10px;
        width: 90%;
        margin: 0 auto;
    }
    .spnav_item {
        display: block;
        width: 100%;
        padding: 20px 0 20px 20px;
    }
    .spnav_item a {
        display: block;
        width: 100%;
    }
    .spnav_item:not(:last-child) {
        border-bottom: 1px solid #90CDE3;
    }
    .spnav_item .js-accordion-title ,
    .spnav_item .spnav_link {
        color: #1840A0;
        font-size: 1.8rem;
        font-weight: 500;
    }
    .nav-innner .arrow::before{
        top: 45%;
    }
    /* SPナビ　アコーディオン */
    .spnav_item.ac-box {
        padding-right: 20px;
    }
    .spnav_item .box-inner {
        padding-top: 15px;
        box-sizing: border-box;
    }
    .spnav_item .box-inner li {
        background-color: #EDF1F8;
        padding: 15px 20px;
        border-radius: 5px;
        margin: 10px 0;
        color: #000000;
        font-size: 1.6rem;
        font-weight: 400;
    }
    /* SPナビ　電話ボタン */
    .spnav .tel-btn {
        width: 80%;
        margin: 20px auto 0;
    }
    .spnav .tel-btn p {
        font-size: 2.4rem;
        padding-bottom: 8px;
    }
    .spnav .tel-btn span {
        font-size: 1.8rem;
    }
    /* SPナビ　リクルートバナー*/
    .spnav .recruit-banner{
        width: 90%;
        margin: 20px auto 150px;
    }
}
@media (max-width: 400px) {
    .spnav .tel-btn p {
        font-size: 2rem;
        padding-bottom: 4px;
    }
    .spnav .tel-btn span {
        font-size: 1.6rem;
    }
    .spnav .tel-btn .text {
        padding-bottom: 8px;
    }
    .spnav_item .js-accordion-title ,
    .spnav_item .spnav_link {
        font-size: 1.6rem;
    }
    .spnav_item .box-inner li {
        font-size: 1.5rem;
    }
}
@media (max-width: 380px) {
    .nav-toggle p {
        font-size: 8px;
    }
}

/* ------------------ アクセス周りの設定------------------ */
  /* 外来受付時間のテーブル */
  .gairai table {
    width: 100%;
  }
  .gairai .head-line {
    background-color: #E1F2F8;
    padding: 5px 0;
  }
  .gairai .ampm,
  .gairai .time {
    padding: 10px;
    line-height: 2.6rem;
  }
  .gairai .mark {
    width: 8%;
    color: #1840A0;
  }
  .gairai th,
  .gairai td {
    text-align: center;
    vertical-align: middle;
  }
  .gairai tbody tr {
    border-bottom: 1px solid #90CDE3;
  }
  .gairai tbody tr.b-none {
    border-bottom: none;
  }
  .gairai small {
    text-align: right;
    display: block;
  }
    /* 休日・夜間の電話窓口のテーブル */
  .yakan table {
    width: 100%;
  }
  .yakan tr:first-child {
    border-top: 1px solid #90CDE3;
  }
  .yakan tr {
    border-bottom: 1px solid #90CDE3;
  }
  .yakan th,
  .yakan td {
    padding: 10px;
    text-align: center;
  }
  @media (max-width: 779px) {
    .gairai tbody {
        border-bottom: 1px solid #90CDE3;
    }
    .gairai .ampm, .gairai .time {
        padding: 6px;
    }
    .gairai .ampm {
        padding-bottom: 0;
    }
    .gairai .time {
        padding-top: 0;
    }
  }
  /* -------------- 「access.php」のcss --------------  */
.access-area {
    border-top: solid 1px #035B7B;
    border-bottom: solid 1px #035B7B;
    width: 100%;
    padding: 50px 0;
}
.access-area .logo {
    max-width: 314px;
    padding-bottom: 15px;
}
.access-area .access-box {
    display: flex;
    justify-content: space-between;
}
.access-area .address,
.access-area .access {
    padding-bottom: 25px;
}
.access-area .times {
    display: flex;
    justify-content: space-between;
    padding: 30px 0 40px;
}
.access-area .times table.pconly {
    display: revert;
}
.access-area .times .gairai {
    width: 58%;
}
.access-area .times .yakan {
    width: 35%;
}
.access-area .tel-btn {
    width: 500px;
    margin: 0 auto;
    text-align: center;
    padding: 15px 20px;
}
@media (max-width: 779px) {
    .access-area .contents-wrap {
        text-align: center;
        padding: 0 6%;
    }
    .access-area .logo {
        width: 70%;
        margin: 0 auto;
    }
    .access-area .access-box  {
        display: block;
        text-align: left;
    }
    .access-area .access-box p {
        line-height: 2.2rem;
    }
    .access-area .times {
        display: block;
    }
    .access-area .times table.pconly {
        display: none;
    }
    .access-area .times table.sponly {
        display: revert;
    }
    .access-area iframe {
        height: 150px;
        width: 100%;
    }
    .access-area .times .gairai,
    .access-area .times .yakan {
        width: 100%;
        text-align: left;
    }
    .access-area .times .yakan {
        padding-top: 30px;
    }
    .access-area .tel-btn {
        width: 86%;
        padding: 10px 20px;
    }
    .access-area .tel-btn span {
        font-size: 1.7rem;
    }
    .access-area .tel-btn .text {
        padding-top: 8px;
    }
    .access-area .tel-btn p {
        font-size: 1.5rem;
        padding-top: 3px;
    }
}
/* -------------- フッター --------------  */
.footer {
    display: flex;
    justify-content: center;
    padding: 60px 0;
    max-width: 1300px;
    margin: 0 auto;
    width: 100%;
}
.footer .recruit {
    width: 37%;
}
.footer .recruit a {
    transition: .3s;
}
.footer .recruit a:hover {
    opacity: .8;
}
.footer .sitemap {
    width: 60%;
    padding-left: 3%;
}
.footer .maps {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
}
.footer .maps .row {
    padding-right: 8%;
}
.footer .maps .row p {
    padding-bottom: 5px;
}
.footer .maps ul {
    border-left: solid 1px #818181;
}
.footer .maps ul li {
    padding-left: 10px;
    line-height: 3.2rem;
}
.copyright p {
    text-align: center;
    font-size: 1.6rem;
    color: #808080;
}
@media (max-width: 779px) {
    .footer {
        padding: 50px 3%;
        display: block;
    }
    .footer .recruit {
        width: 100%;
    }
    .footer .sitemap {
        width: 95%;
        padding: 30px 0 0;
        margin: 0 0 0 auto;
    }
    .footer .maps {
        flex-wrap: wrap;
    }
    .footer .maps .row {
        width: 50%;
        padding: 0 5% 15px 0;
    }
    .copyright p {
        font-size: 1.2rem;
    }
}
/* -------------- TOPに戻るボタン --------------  */
#page-top a {
    position: fixed;
    right: 50px;
    bottom: 50px;
    z-index: 8888;
}
@media (max-width: 779px) {
    #page-top a {
        position: fixed;
        right: 3%;
        bottom: 20px;
    }
    #page-top a img {
        width: 45px;
    }
}

/* -------------- 下層ページ共通 --------------  */
.page-under {
    padding-bottom: 100px;
}

/* 本文フォントサイズ */
.page-under section {
    font-size: 17px;
    line-height: 1.8;
    letter-spacing: 0.03em;
}

/* メインビュー */
.page-under .mainv {
    width: 100%;
    position: relative;
    padding: 20px 3% 90px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.page-under .mainv::after {
    content: '';
    width: 70%;
    padding-top: 207px;
    display: block;
    border-radius: 26px;
    overflow: hidden;
}
.page-under .mainv .page-title {
    color: #1840A0;
    font-size: 1.875vw;
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-weight: 600;
    margin-left: 6%;
}
.page-under .mainv .page-title .en {
    color: #889CCE;
    display: block;
    font-size: 58%;
    font-family: "Noto Sans JP", sans-serif;
    margin-bottom: 18px;
}

/* コンテンツタイトル */
.page-under .sec-ttl {
    color: #1840A0;
    font-size: 24px;
    font-weight: 600;
    text-align: center;
    margin-bottom: 60px;
    line-height: 1;
}
.page-under .sec-ttl .en {
    color: #889CCE;
    font-size: 20px;
    display: block;
    margin-bottom: 20px;
}

/* アンカーボタン */
.anchorbtn-area {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 60px;
}
.anchorbtn-area .btn-item {
    width: calc(100% / 3.2);
    max-width: 270px;
}
.anchorbtn-area .btn-item a {
    display: block;
    background: #fff;
    color: #1840A0;
    font-size: 19px;
    text-align: center;
    border-radius: 10vw;
    border: 2px solid #1840A0;
    position: relative;
    padding: 18px;
    transition: .3s;
}
.anchorbtn-area .btn-item a::after {
    content: '';
    width: 25px;
    height: 11px;
    background: url(../images/common/arrow.svg) no-repeat center center /cover;
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    transition: .3s;
}
.anchorbtn-area .btn-item a:hover {
    opacity: .8;
}
.anchorbtn-area .btn-item a:hover::after {
    right: 12px;
}
.anchorbtn-area .btn-item:nth-of-type(2) {
    margin: 0 60px;
}

/* コンタクトボタン */
.contact-btn-area {
    display: flex;
    justify-content: center;
    margin-top: 60px;
}
.contact-btn-area .btn-item {
    width: 34%;
    text-align: center;
    margin: 0 20px;
    transition: .3s;
}
.contact-btn-area .btn-item a {
    display: block;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px;
    border-radius: 18px;
    transition: .3s;
}
.contact-btn-area .btn-item .icon {
    margin-right: 18px;
}
.contact-btn-area .btn-item .subtxt {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 10px;
}
.contact-btn-area .btn-item .schedule {
    margin-top: 10px;
}
/* コンタクトボタン：電話ボタン */
.contact-btn-area .btn-item.tel a {
    color: #fff;
    background: #1840A0;
    font-size: 36px;
    border: 2px solid #1840A0;
}
.contact-btn-area .btn-item a svg path {
    fill: #fff;
    transition: .3s;
}
.contact-btn-area .btn-item.tel:hover a{
    color: #1840A0;
    background: #fff;
}
.contact-btn-area .btn-item.tel:hover a svg path {
    fill: #1840A0;
}
.contact-btn-area .btn-item.tel .subtxt {
    color: #1840A0;
}
/* コンタクトボタン：メールボタン */
.contact-btn-area .btn-item.mail a {
    color: #fff;
    background: #1C73BE;
    font-size: 20px;
    border: 2px solid #1C73BE;
    padding: 22px 14px;
    transition: .3s;
}
.contact-btn-area .btn-item.mail .subtxt {
    color: #1C73BE;
}
.contact-btn-area .btn-item.mail:hover a {
    background: #fff;
    color: #1C73BE;
}
.contact-btn-area .btn-item.mail:hover a svg path {
    fill: #1C73BE;
}
/* ページ内ナビゲーション */
.page-nav {
    display: flex;
    justify-content: space-between;
    margin-bottom: 70px;
}
.page-nav li {
    width: calc(100% / 4.2);
    display: flex;
}
.page-nav li a {
    flex: 1;
    color: #1840A0;
    border: 1px solid #707070;
    font-size: 20px;
    font-weight: 600;
    text-align: center;
    padding: 29px 20px;
    position: relative;
    border-radius: 15px;
    line-height: 1;
    transition: .3s;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    /* height: 100%; */
}
.page-nav li a::after {
    content: '';
    width: 30px;
    height: 30px;
    background: url(../images/common/arrow2.png) no-repeat center center /cover;
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
}
.page-nav li a:hover {
    opacity: .8;
}

/* タブレット */
@media (max-width: 1024px) {
    /* メインビュー */
    .page-under .mainv {
        padding: 20px 3% 10vw;
    }
    .page-under .mainv::after {
        width: 65%;
        border-radius: 16px;
    }
    .page-under .mainv .page-title {
        font-size: 3.5vw;
        margin-left: 0;
    }
    .page-under .mainv .page-title .en {
        margin-bottom: 1vw;
    }

    /* コンテンツタイトル */
    .page-under .sec-ttl {
        margin-bottom: 6vw;
    }

    /* アンカーボタン */
    .anchorbtn-area {
        margin-top: 6vw;
    }
    .anchorbtn-area .btn-item:nth-of-type(2) {
        margin: 0 2vw;
    }
    .anchorbtn-area .btn-item a {
        padding: 2vw;
        font-size: 16px;
    }

    /* コンタクトボタン */
    .contact-btn-area {
        margin-top: 10vw;
    }
    .contact-btn-area .btn-item {
        width: 46%;
    }
    .contact-btn-area .btn-item a {
        padding: 1vw;
    }
    .contact-btn-area .btn-item .schedule {
        font-size: 14px;
    }
    /* コンタクトボタン：電話ボタン */
    .contact-btn-area .btn-item.tel a {
        font-size: 3.6vw;
    }
    /* コンタクトボタン：メールボタン */
    .contact-btn-area .btn-item.mail a {
        padding: 17px 14px;
    }

    /* ページ内ナビゲーション */
    .page-nav {
        flex-flow: wrap;
        margin-bottom: 7vw;
    }
    .page-nav li {
        width: 49%;
    }
    .page-nav li:nth-last-child(-n+2) {
        margin-top: 2vw;
    }
    .page-nav li a {
        padding: 3vw;
        text-align: left;
    }
}
/* スマートフォン */
@media (max-width: 750px) {
    .page-under {
        padding-bottom: 18vw;
    }

    /* 本文フォントサイズ */
    .page-under section {
        font-size: 14px;
    }

    /* メインビュー */
    .page-under .mainv::after {
        padding-top: 112px;
        width: 62%;
        border-radius: 13px;
    }
    .page-under .mainv .page-title {
        font-size: 4.533333333333333vw;
    }
    .page-under .mainv .page-title .en {
        font-size: 70%;
        margin-bottom: 3vw;
    }

    /* コンテンツタイトル */
    .page-under .sec-ttl {
        font-size: 4.533333333333333vw;
        margin-bottom: 8vw;
    }
    .page-under .sec-ttl .en {
        font-size: 70%;
        margin-bottom: 4vw;
    }

    /* アンカーボタン */
    .anchorbtn-area {
        display: block;
        margin-top: 14vw;
    }
    .anchorbtn-area .btn-item {
        width: 74%;
        margin: 0 auto;
    }
    .anchorbtn-area .btn-item:nth-of-type(2) {
        margin: 6vw auto;
    }
    .anchorbtn-area .btn-item a {
        font-size: 14px;
        border-width: 1px;
        padding: 3vw;
    }
    .anchorbtn-area .btn-item a::after {
        width: 16px;
        height: 6px;
    }

    /* コンタクトボタン */
    .contact-btn-area .btn-item {
        width: 49%;
        margin: 0 1vw;
    }
    .contact-btn-area .btn-item a {
        display: block;
        text-align: center;
        border-radius: 10px;
    }
    .contact-btn-area .btn-item .icon {
        margin: 0 auto 2vw;
    }
    .contact-btn-area .btn-item.w-100 {
        width: 100%;
        margin: 0;
    }
    .contact-btn-area .btn-item.w-100 .icon {
        margin: 0 2vw 0 0;
    }
    .contact-btn-area .btn-item.w-100 a {
        display: flex;
    }
    .contact-btn-area .btn-item .subtxt {
        font-size: 12px;
    }
    /* コンタクトボタン：電話ボタン */
    .contact-btn-area .btn-item.tel a {
        font-size: 18px;
    }
    /* コンタクトボタン：メールボタン */
    .contact-btn-area .btn-item.mail a {
        font-size: 12px;
    }

    /* ページ内ナビゲーション */
    .page-nav {
        margin-bottom: 10vw;
    }
    .page-nav li a {
        font-size: 14px;
        text-align: left;
        border-radius: 8px;
        padding: 3.6vw;
        line-height: 2rem;
    }
    .page-nav li a::after {
        width: 18px;
        height: 18px;
    }
}


/* 各共通コンテンツパーツ設定 */
.common-container:not(:last-of-type) {
    margin-bottom: 100px;
}
/* 共通タイトル */
.common-container .content-ttl {
    color: #1840A0;
    font-size: 24px;
    font-weight: 600;
    background: #E1F2F8;
    padding: 4px 30px;
    margin-bottom: 40px;
}
.common-container .content-ttl .small {
    font-size: 75%;
}
.common-container .content-ttl .furigana {
    font-weight: 400;
    margin-left: 18px;
}
.common-container .content-txt p:not(:last-of-type) {
    margin-bottom: 40px;
}
/* 共通タイトル：装飾付き */
.common-container .content-ttl.circle {
    position: relative;
    padding-left: 50px;   
}
.common-container .content-ttl.circle::before {
    content: '';
    width: 23px;
    height: 23px;
    background: #fff;
    border-radius: 10vw;
    position: absolute;
    top: 50%;
    left: 16px;
    transform: translateY(-50%);
}
/* 共通タイトル：注意 */
.common-container .content-ttl.caution {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10vw;
    position: relative;
    padding: 6px 30px;
}
.common-container .content-ttl.caution span.c-icon {
    margin-right: 14px;
}
.common-container .common-container-wrap {
    padding: 0 3%;
}

/* フレックスコンテンツ */
.flex-area {
    display: flex;
    justify-content: space-between;
    flex-flow: wrap;
}
.flex-area:not(:last-of-type) {
    margin-bottom: 60px;
}
.flex-area.reverse {
    flex-direction: row-reverse;
}
.flex-area .flex-right {
    width: 49%;
    text-align: center;
}
.flex-area .flex-left {
    width: 49%;
}
.flex-area .flex-item {
    width: 49%;
}
.flex-area .img {
    text-align: center;
    margin-bottom: 20px;
}

/* 枠内コンテンツ */
.border-wrap {
    border: 1px solid #153C96;
    border-radius: 20px;
    padding: 30px 40px;
    margin-bottom: 20px;
}
.qual-list {
    display: flex;
    flex-flow: wrap;
}
.qual-list li {
    width: 50%;
}
.qual-list li.w-100 {
    width: 100%;
}
/* オレンジ枠内コンテンツ */
.border-wrap.orange {
    border-color: #F7A970;
    padding: 0;
    overflow: hidden;
}
.border-wrap.orange .border-ttl {
    color: #fff;
    font-size: 20px;
    font-weight: 600;
    background: #F7A970;
    text-align: center;
    padding: 12px;
}
.border-wrap.orange .border-content {
    padding: 30px 34px;
}

/* 丸リストスタイル */
.list-style li {
    position: relative;
    padding-left: 24px;
    margin-bottom: 10px;
}
.list-style li::before {
    content: '';
    width: 13px;
    height: 13px;
    background: #88A1DB;
    border-radius: 10vw;
    position: absolute;
    left: 0;
    top: 9px;
}
/* 背景リストスタイル */
.list-bg {
    display: flex;
    flex-flow: wrap;
    justify-content: space-between;
}
.list-bg li {
    width: 49%;
    background: #FFF7E0;
    padding: 10px 4px 10px 30px;
    position: relative;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}
.list-bg li::before {
    content: '';
    width: 13px;
    height: 13px;
    background: #fff;
    border-radius: 10vw;
    position: absolute;
    top: 50%;
    left: 10px;
    transform: translateY(-50%);
}
.list-bg li.w-3 {
    width: calc(100% / 3.2);
}
.list-bg li.bg-none {
    background: none;
    padding-left: 0;
}
.list-bg li.bg-none::before {
    content: none;
}
/* ステップリストスタイル */
.list-step li:not(:last-child) {
    margin-bottom: 30px;
}
.list-step .step-ttl {
    color: #1840A0;
    font-size: 20px;
    font-weight: 600;
    padding-bottom: 8px;
    margin-bottom: 16px;
    border-bottom: 1px solid #90CDE3;
}
/* テーブル */
.scroll_hint .program-table {
    width: 100%;
}
/* 概要テーブル */
.resp-table {
    display: flex;
    flex-flow: wrap;
}
.resp-table dt {
    width: 20%;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}
.resp-table dd {
    width: 80%;
}
.resp-table dt, .resp-table dd {
    padding: 20px 10px;
    border-bottom: 1px solid #90CDE3;
}
/* 404ページ */
#error404 .mainv::after {
    background: url(../images/news/mainv_pc.jpg) no-repeat center center /cover;
}


/* タブレット */
@media (max-width: 1024px) {
    .common-container:not(:last-of-type) {
        margin-bottom: 10vw;
    }
    /* 共通タイトル */
    .common-container .content-ttl {
        margin-bottom: 4vw;
    }
    /* フレックスコンテンツ */
    .flex-area {
        display: block;
    }
    .flex-area:not(:last-of-type) {
        margin-bottom: 6vw;
    }
    .flex-area .flex-right {
        width: 100%;
        text-align: center;
        margin: 0 auto 4vw;
    }
    .flex-area .flex-left {
        width: 100%;
    }
    .flex-area .flex-item {
        width: 100%;
        margin: 0 auto 3vw;
    }
    /* テーブル */
    .scroll_hint .program-table {
        width: 130%;
    }
    /* 概要テーブル */
    .resp-table dt, .resp-table dd {
        padding: 3vw 0;
    }

}
/* スマートフォン */
@media (max-width: 750px) {
    .common-container:not(:last-of-type) {
        margin-bottom: 14vw;
    }
    /* 共通タイトル */
    .common-container .content-ttl {
        font-size: 18px;
        padding: 1vw 4vw;
    }
    /* 共通タイトル：装飾付き */
    .common-container .content-ttl.circle {
        padding-left: 10vw;
    }
    .common-container .content-ttl.circle::before {
        width: 18px;
        height: 18px;
        left: 10px;
    }
    .common-container .content-txt p:not(:last-of-type) {
        margin-bottom: 10vw;
    }
    /* 共通タイトル：注意 */
    .common-container .content-ttl.caution span.c-icon {
        display: inline-block;
        width: 12%;
    }
    
    /* 枠内コンテンツ */
    .border-wrap {
        padding: 4vw;
        border-radius: 8px;
    }
    /* オレンジ枠内コンテンツ */
    .border-wrap.orange .border-ttl {
        font-size: 16px;
        padding: 2vw;
    }
    .border-wrap.orange .border-content {
        padding: 4vw;
    }

    /* 丸リストスタイル */
    .list-style li {
        margin-bottom: 4px;
    }
    .list-style li::before {
        width: 12px;
        height: 12px;
        top: 6px;
    }
    /* 背景リストスタイル */
    .list-bg li {
        padding: 2vw 2vw 2vw 7vw;
        margin-bottom: 8px;
    }
    .list-bg li::before {
        width: 12px;
        height: 12px;
    }
    .list-bg li.w-3 {
        width: 49%;
    }
    /* ステップリストスタイル */
    .list-step .step-ttl {
        font-size: 16px;
        padding-bottom: 6px;
        margin-bottom: 12px;
    }
    .list-step li:not(:last-child) {
        margin-bottom: 8vw;
    }

    /* テーブル */
    .scroll_hint .program-table {
        width: 250%;
        font-size: 13px;
    }
    /* 概要テーブル */
    .resp-table dt {
        width: 30%;
    }
    .resp-table dd {
        width: 70%;
    }
    .resp-table dt, .resp-table dd {
        padding: 3vw 0;
    }
    .resp-table dd {
        padding-left: 4vw;
    }
    .resp-table.display {
        display: block;
    }
    .resp-table.display dt, .resp-table.display dd {
        width: 100%;
    }
    .resp-table.display dt {
        border-bottom: none;
        justify-content: flex-start;
    }
    .resp-table.display dd {
        padding-top: 0;
        padding-left: 0;
    }
}

/* よくある質問 */
.faq-area {
    margin-top: 70px;
    background: #F5FBFD;
    border-radius: 30px;
    padding: 70px 8% 90px;
}
.faq-area .accordion-wrap:not(:last-of-type) {
    margin-bottom: 30px;
}
.faq-area .js-accordion-title {
    background: #fff;
    border: 2px solid #254BA5;
    font-size: 20px;
    padding: 18px 30px 18px 56px;
    position: relative;
    border-radius: 10vw;
    line-height: 1.4;
}
.faq-area .js-accordion-title:hover {
    cursor: pointer;
}
.faq-area .js-accordion-title::before {
    content: 'Q.';
    color: #1840A0;
    font-weight: 600;
    position: absolute;
    top: 50%;
    left: 24px;
    transform: translateY(-50%);
}
.faq-area .js-accordion-title span {
    display: block;
    width: 18px;
    height: 18px;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
}
.faq-area .js-accordion-title span::before,
.faq-area .js-accordion-title span::after {
    content: '';
    width: 100%;
    height: 2px;
    background: #1840A0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    transition: .3s;
}
.faq-area .js-accordion-title span::after {
    transform: translate(-50%, -50%) rotate(90deg);
}
.faq-area .js-accordion-title.active span::after {
    transform: translate(-50%, -50%) rotate(0deg);
}
.faq-area .accordion-answer {
    padding: 20px 5% 0;
    display: none;
}
/* タブレット */
@media (max-width: 1024px) {
    .faq-area {
        padding: 6vw 4vw;
    }
    .faq-area .accordion-wrap:not(:last-of-type) {
        margin-bottom: 2vw;
    }
    .faq-area .js-accordion-title {
        font-size: 16px;
        padding: 2vw 6vw;
    }
    .faq-area .js-accordion-title span {
        right: 16px;
    }
    .faq-area .accordion-answer {
        padding: 2vw;
    }
}
/* スマートフォン */
@media (max-width: 750px) {
    .faq-area {
        border-radius: 15px;
        margin-top: 14vw;
        padding: 8vw 4vw;
    }
    .faq-area .accordion-wrap:not(:last-of-type) {
        margin-bottom: 3vw;
    }
    .faq-area .js-accordion-title {
        font-size: 14px;
        padding: 2vw 6vw 2vw 8vw;
        border-width: 1px;
    }
    .faq-area .js-accordion-title span {
        width: 12px;
        height: 12px;
        right: 8px;
    }
    .faq-area .js-accordion-title::before {
        left: 12px;
    }
    .faq-area .accordion-answer {
        padding: 3vw 0 0;
    }
}