@charset "utf-8";

:root {
    --font-main: "zen-maru-gothic", sans-serif;
    --main-color: #FFB8D1;
    --sub-color: #E2C4F0;
    --point-color: #B8DD85;
    --point-text-color: #8C3AB2;
}

body {
    font-family: var(--font-main);
    font-style: normal;
    font-weight: 700;
    font-size: 18px;
    line-height: 2rem;
    position: relative;
}

h1 {
    font-size: 48px;
    font-weight: 900;
}

h2 {
    font-size: 40px;
    font-weight: 700;
}

h4 {
    font-size: 30px;
    font-weight: 700;
}

.small {
    font-size: 16px;
    line-height: 1.5rem;
}

.max_img {
    max-width: 100%;
}

a {
    text-decoration: none;
    color: inherit;
}

@media screen and (max-width: 1024px) {
    body {
        padding-top: 80px !important; 
    }
}

@media screen and (max-width: 768px) {
    h1 {
        font-size: 38px;
    }

    h2 {
        font-size: 30px;
    }
}

@media screen and (max-width: 480px) {
    body {
        font-size: 14px;
        line-height: 1.8rem;
    }

    h1 {
        font-size: 28px;
    }

    h2 {
        font-size: 20px;
        margin: 0 0 20px;
    }

    h4 {
    font-size: 20px;
    }

    p {
        font-size: 14px;
        line-height: 1.5rem;
    }

    .title_text {
        margin: 0 0 20px;
        line-height: 1;
    }

    .small {
        font-size: 12px;
        line-height: 1.2rem;
    }
}

.pink {
    color: #E9448F;
}

.purple {
    color: var(--point-text-color);
}

/* タブデザイン */
.support_pre_set_list_area {
    position: relative;
    max-width: 660px;
    width: 100%;
    margin: 0 auto;
}

.tab-container {
    width: 100%;
    position: relative;
    margin-top: 20px;
}

.tab-header {
    width: 615px;
    margin: 0 auto;
    padding: 0 0px;
    position: relative;
    z-index: 10;
    margin-bottom: -2px;
    transition: all 0.3s ease;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    gap: 6px;
    overflow-x: hidden;
}

.tab-header list-tag-header-component {
    display: block;
    /* width: 100%; */
}

.tab-button {
    background-color: #f0f0f0;
    border: 2px solid #ddd;
    border-bottom: none;
    border-radius: 10px 10px 0 0;
    padding: 10px 20px;
    cursor: pointer;
    font-size: 18px;
    font-weight: 700;
    color: #666;
    transition: all 0.3s ease;
    position: relative;
    z-index: 1;
    margin-right: 10px;
    margin-left: 10px;
    min-width: 60px;
    text-align: center;
    box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);
    flex-shrink: 0;
}

.tab-button:first-child {
    margin-left: 0;
}

.tab-button:last-child {
    margin-right: 0;
}

.tab-button.active {
    background-color: #fff;
    color: #333;
    border-color: #FFB8D1;
    z-index: 2;
    transform: translateY(-2px);
    box-shadow: 0 -2px 10px rgba(255, 184, 209, 0.3);
}

.tab-button:hover:not(.active) {
    background-color: #e8e8e8;
    color: #444;
}

.tab-content {
    background-color: #fff;
    position: relative;
    z-index: 1;
}

.tab-panel {
    display: none;
}

.tab-panel.active {
    display: block;
}

@media screen and (max-width:1400px) {
    .tab-header {
        padding: 0 20px;
    }
}

@media screen and (max-width:1024px) {
    .tab-header {
        padding: 0;
    }
}

/* タブデザインここまで */

/* ヘッダー */

/* header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 0;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: nowrap;
} */

.body_container {
    width: 100%;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 100px;
    overflow: hidden;
}

@media screen and (max-width: 1024px) {
    .body_container {
        gap: 0px;
    }
}

.header_left {
    max-width: 257px;
    width: 100%;
    height: auto;
    margin: 37px 0px 0px 171px;
}

.header_nav {
    font-size: 24px;
    max-width: 230px;
    color: var(--point-text-color);
    margin-left: 32px;
}

.header_nav a {
    color: var(--point-text-color);
    text-decoration: none;
}

ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

ul li a {
    text-decoration: none;
}

ul>li {
    margin: 0;
}

.header_nav li,
.header_nav a {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    width: 100%;
    height: auto;
    gap: 20px;
    text-decoration: none;
}

/* ナビゲーション全体のコンテナ */
.nav_container {
    position: relative;
    /* SNSアイコンを絶対配置するための基準 */
    width: 100%;
    height: 100%;
    /* 全画面に広げる場合 */
    min-height: 100vh;
    /* 最低でも画面の高さを確保 */
    padding: 120px 0;
    box-sizing: border-box;
    overflow-y: auto;
    /* 縦スクロール可能に */
}

.sp_nav ul {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: center;
    width: 100%;
    display: flex;
    flex-direction: column;
}

/* 各リストアイテムの基本設定 */
.sp_nav ul li {
    display: flex;
    justify-content: center;
    /* 中身（nav_content）を画面中央に寄せる */
    margin-bottom: 20px;
    /* 余白調整 */
    width: 100%;
    padding-left: 70px;
}

/* 【重要】中央位置・左揃えのキモ
  リンクとSummaryに固定幅を持たせ、その中で左寄せにする 
*/
.nav_content {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    /* アイコンと文字を左揃え */
    width: 260px;
    /* ここでメニューの「幅」を決めます。文字数に合わせて調整してください */
    text-decoration: none;
    color: #fff;
    font-size: 24px;
    gap: 20px;
    cursor: pointer;
}

/* 画像サイズ */
.nav_content img {
    display: block;
    width: 20px;
    height: auto;
}

/* アコーディオン（詳細）設定 */
details {
    width: 260px;
    /* nav_contentと同じ幅にして揃える */
    transition: .6s;
}

summary {
    list-style: none;
    outline: none;
}

summary::-webkit-details-marker {
    display: none;
}

/* 矢印アイコン */
summary::after {
    content: '';
    transform: translateY(-25%) rotate(45deg);
    width: 10px;
    height: 10px;
    margin-left: auto;
    /* 右端に寄せる */
    border-bottom: 3px solid #fff;
    border-right: 3px solid #fff;
    transition: transform .3s;
    display: block;
}

details[open] summary::after {
    transform: rotate(225deg);
}

/* サブメニュー */
.submenu {
    width: 100%;
    margin-top: 10px;
    padding-left: 40px;
    /* アイコン分インデント */
    box-sizing: border-box;
}

.submenu .submenu_item {
    display: flex;
    justify-content: flex-start;
    /* サブメニューは左寄せ */
    margin: 5px 0;
    font-size: 18px;
    padding-left: 40px !important;
}

.submenu .submenu_item a {
    color: #fff;
    text-decoration: none;
}

/* SNSアイコンの右下配置
  position: absolute でコンテナの右下に固定
*/
.sp_nav li.insta {
    position: static;
    display: flex;
    justify-content: flex-end;
    margin-top: auto;
    margin-bottom: 20px;
    padding-right: 20px;
    box-sizing: border-box;
    z-index: 10;
}

.insta img {
    width: 40px;
    /* アイコンサイズ調整（必要に応じて） */
    height: auto;
    display: block;
}

.sp_nav button-default-component {
    /* 縮小の基準点を「中央」にする（これで位置がズレません） */
    transform-origin: center;
    display: block;
    padding-right: 100px;
}

/* ボタンコンポーネント周り */
.btn_wrapper {
    /* 必要であればここでボタン周りの微調整 */
    margin-bottom: 20px;
}

.menu-item {
    display: flex;
    justify-content: flex-start;
    /* ← 左寄せ */
    align-items: center;
    font-size: 24px;
    color: #fff;
    text-align: left;
    /* テキスト左揃え */
    width: 161px;
    /* ← 中央位置を保ちつつ横幅を固定（任意） */
}

.menu-item img {
    display: block;
    width: 20px;
    height: auto;
}

.menu-item a {
    color: #fff;
    text-decoration: none;
}


.btn_contact,
.btn_access {
    display: inline-block;
    margin-top: 20px;
    padding: 10px 30px;
    border-radius: 30px;
    background: #fff;
    color: #a0208c;
    text-decoration: none;
    font-weight: bold;
}

.parent {
    display: flex;
    justify-content: flex-end;
    /* 右寄せ */
    align-items: flex-end;
    /* ← 下寄せ（必要に応じて） */
    height: auto;
    padding: 0 40px 0px 0;
    /* 下・右の余白を確保（自然な見た目に） */
    box-sizing: border-box;
    /* 位置確認用（不要なら削除） */
    width: 100%;
}

.insta img {
    width: 80px;
    height: auto;
}

.content_right {
    width: 100%;
    height: auto;
}

.content_r_wrap {
    border: 5px solid var(--main-color);
    border-radius: 50px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 50px;
}

.content_r_notice {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    text-align: center;
    font-size: 24px;
    line-height: 1.5rem;
    margin: 15px 0;
    width: 100%;
    padding-bottom: 15px;
    border-bottom: 4px dotted var(--main-color);
    /* 点線を丸くする */
}

.content_r_contact {
    background-color: var(--sub-color);
    border-radius: 40px;
}

.content_r_contact {
    display: flex;
    flex-direction: column;
    width: 280px;
    height: auto;
    align-items: center;
    gap: 20px;
    padding: 20px 7px;
    position: relative;
    background-color: var(--sub-color);
    border-radius: 40px;
    margin: 10px auto;
}

.r_contact_wrap {
    color: #fff;
    font-size: 20px;
    text-align: center;
    line-height: 20px;
    white-space: nowrap;
    padding: 0 25px 20px 25px;
    border-bottom: 2px solid #fff;
}

.r_contact_tel {
    font-size: 34px;
    max-width: 250px;
}

.r_contact_tel a {
    color: #fff;
    display: flex;
    gap: 5px;
}

.r_contact_mail {
    font-size: 28px;
    max-width: 250px;
    letter-spacing: -0.2rem;
}

.r_contact_mail a {
    color: #fff;
    display: flex;
    gap: 5px;
}

.recruit_banner {
    border: 5px solid var(--sub-color);
    border-radius: 40px;
}

/* ハンバーガーメニュー */
.sp_nav {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: #FFB8D1;
    /* ピンク背景 */
    overflow-y: auto;
    /* ← ★スクロールを有効にする */
    overscroll-behavior: contain;
    /* iOSでの引っ張りスクロール防止 */
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    transition: all 0.5s ease;
    z-index: 999;
}

.nav_logo {
    position: absolute;
    top: 15px;
    left: 20px;
}

#contact-btn.hide {
    display: none !important;
}

.mobile_menu a {
    border-bottom: 3px #fff solid;
    border-left: 3px #fff solid;
    border-right: 3px #fff solid;
    border-radius: 0px 0px 60px 60px;
    transition: all 0.3s ease;
}

/* Drawer (open state) */
.sp_nav.open {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
}

.sp_nav_inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    height: 100%;
    background-color: #FFB8D1;
}

.sp_nav a {
    color: #fff;
}

.sp_summary::after {
    content: '';
    transform: translateY(-25%) rotate(45deg);
    width: 10px;
    height: 10px;
    margin-left: 10px;
    border-bottom: 3px solid #fff;
    border-right: 3px solid #fff;
    transition: transform .3s;
    display: inline-block;
}

.mobile_menu {
    display: flex;
    position: fixed;
    top: -1px;
    right: 0;
    z-index: 1100;
    flex-wrap: nowrap;
    width: 100%;
    height: 80px;
    padding: 0 20px;
    background: #FFF;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: stretch;
}

.mobile_menu_logo {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.mobile_menu_wrap {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    flex-wrap: nowrap;
    height: auto;
    gap: 10px;
}

.mobile_menu_wrap > a ,
.toggle_area {
    display: block;
    vertical-align: top;
    width: 90px;
    height: 115px;
    padding: 0;
    margin: 0;
    appearance: none;
    background: transparent;
    border: none;
    flex-shrink: 0;
    line-height: 1;
}

/* Toggle inner bars */
.toggle {
    /* keep class name used in HTML */
    display: block;
    position: relative;
    width: 56px;
    height: 50px;
    margin-top: 10px;
}

.toggle_open,
.toggle_close {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.toggle_open span,
.toggle_close span {
    display: block;
    position: absolute;
    width: 55px;
    height: 4px;
    background: #fff;
    border-radius: 4px;
    transition: transform .25s ease, opacity .25s ease;
}

.toggle_open .bar-1 {
    transform: translateY(-6px);
}

.toggle_open .bar-2 {
    transform: translateY(6px);
}

.toggle_close .bar-1 {
    transform: rotate(30deg);
}

.toggle_close .bar-2 {
    transform: rotate(-30deg);
}

/* show open or close state */
.toggle_close {
    opacity: 0;
    pointer-events: none;
}

.sp_toggle.open .toggle_open {
    opacity: 0;
    pointer-events: none;
}

.sp_toggle.open .toggle_close {
    opacity: 1;
    pointer-events: auto;
}

.sp_toggle_mail img {
    display: block;
    width: 65px;
    height: auto;
    margin-top: 8px;
}

.sp_toggle_mail {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    padding-top: 15px;
    background-color: var(--sub-color);
    color: #fff;
    border-bottom: 3px #fff solid;
    border-left: 3px #fff solid;
    border-right: 3px #fff solid;
    border-radius: 0 0 60px 60px;
    line-height: 1.2;
    font-size: 14px;
}

.sp_toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    width: 90px;
    height: 115px;
    padding-top: 15px;
    background-color: var(--point-color);
    color: #fff;
    border-bottom: 3px #fff solid;
    border-left: 3px #fff solid;
    border-right: 3px #fff solid;
    border-radius: 0 0 60px 60px;
    font-size: 14px;
}

/* basic mobile-first visibility (optional: can refine with media queries) */
@media (min-width: 1025px) {
    .mobile_menu {
        display: none;
    }

    .sp_nav {
        display: none !important;
    }
}

.main_container {
    max-width: 760px;
    width: 100%;
    margin: 0 auto;
}

@media screen and (max-width: 1400px) {
    .main_container {
        max-width: 550px;
    }
}

@media screen and (max-width: 1024px) {
    .main_container {
        max-width: 760px;
    }
}

@media screen and (max-width: 480px) {
    .mobile_menu_wrap {
        gap: 5px;
    }
    
    .toggle_area{
        display: block; 
        width: 70px;
        height: 100px;
        padding: 0;
        margin: 0;
        background: transparent;
        line-height: 1;
        vertical-align: top;
    }
    .sp_toggle_mail {
        width: 70px;
        height: 100px;
        padding-top: 25px;
        font-size: 11px;
        border-radius: 0 0 35px 35px;
    }
    .sp_toggle{
        width: 70px;
        height: 100px;
        border-radius: 0 0 35px 35px;
        padding-top: 25px;
        font-size: 11px;
    }

    .mobile_menu_wrap > a {
        width: 70px;
    }

    .toggle {
        width: 40px;
        height: 30px;
        margin-top: 15px;
    }
    .toggle_open span,
    .toggle_close span { 
        width: 38px;
        height: 3px;
        border-radius: 3px;
    }
    .sp_toggle_mail img {
        width: 50px;
        height: auto;
    }

    .toggle_open .bar-1 { transform: translateY(-5px); }
    .toggle_open .bar-2 { transform: translateY(5px); }

    .mobile_menu_logo img {
        height: auto;
        width: auto;
        max-width: 180px;
        object-fit: contain; 
    }
}


/* TOP部分 */
.title_sec_pink {
    background-color: var(--main-color);
    max-width: 760px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

@media screen and (max-width: 1400px) {
    .title_sec_pink {
        padding: 0 20px;
    }
}

.title_sec_fuji {
    max-width: 760px;
}

.content_sec_w {
    max-width: 760px;
}

.title_area {
    margin: 100px auto;
}

/* .title {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 2.0rem;
    color: #fff;
} */

/* .title_text {
    margin: 100px 0 40px;
    line-height: 1;
} */

.title h2 {
    margin: 40px 0;
    line-height: 1;
}

.title p {
    margin: 40px 0 100px;
    line-height: 2;
}

/* Slider behavior */
.slideshow_area {
    max-width: 700px;
    width: 100%;
    height: auto;
    margin: 90px auto 0;
    position: relative;
    overflow: hidden;
}

.slideshow_area img {
    width: 100%;
    height: auto;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    transition: opacity .8s ease;
}

.slideshow_area img.is-active {
    position: relative;
    /* keep active image in normal flow to preserve height */
    z-index: 2;
    opacity: 1;
}

@media screen and (max-width: 1024px) {
    .slideshow_area {
        margin: 90px auto 0;
    }
}

@media screen and (max-width: 480px) {
    .title_area {
        margin: 70px auto;
    }
}

.about_wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 760px;
    margin: 100px auto;
}

.about_title {
    color: var(--point-text-color);
    padding: 0px 5px 10px 5px;
    border-bottom: 2px solid var(--point-text-color);
    line-height: 1;
}

.about_menu {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    margin: 40px auto 0px;
    gap: 35px;
}

@media screen and (max-width: 480px) {
    .about_wrap {
        margin: 70px auto;
    }

    .about_menu {
        margin: 10px auto 0px;
    }
}

/* .sub_title {
    display: flex;
    justify-content: center;
    gap: 20px;
    margin: 0px 0 40px;
} */

/*mobile版TOPお問い合わせコンテンツ*/
.kosodatesupport_sp {
    display: none;
    width: 100%;
    box-sizing: border-box;
    margin-top: 100px;
}

.kosodatesupport_sp_wrap {
    max-width: 750px;
    /* 必要に応じて調整してください */
    margin: 0 20px;
}

.kosodatesupport_sp_section {
    /* margin-bottom: 25px; */
    border: 5px solid #FFB8D1;
    border-radius: 50px;
    padding: 20px
}

.kosodatesupport_sp_inner {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 5px;
    margin-bottom: 20px;
}

.kosodatesupport_sp_inner img {
    height: 30px;
    width: auto;
}

.kosodatesupport_sp_inner .support_title {
    text-align: center;
    font-weight: bold;
    color: #000;
    line-height: 0;
    padding: 0;
}

.kosodatesupport_sp_border {
    border-bottom: 3px dashed #FFB8D1;
    width: 100%;
    margin: 0 auto;
}

.kosodatesupport_sp_info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    /* 上下中央揃え */
    gap: 20px;
    margin-top: 20px;
}

.kosodatesupport_sp_description {
    font-size: 16px;
    font-weight: bold;
    line-height: 2;
    text-align: center;
    flex: 1;
    /* 幅を自動調整 */
}

.kosodatesupport_sp_box {
    flex: 1;
    background: #E2C4F0;
    border-radius: 40px;
    padding: 30px 20px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}

.kosodatesupport_sp_contact_info {
    width: 100%;
    text-align: center;
}

.kosodatesupport_sp_contact_info a {
    text-decoration: none;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    transition: opacity 0.3s;
}

.kosodatesupport_sp_contact_item {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-left: 10px;
}

.kosodatesupport_sp_contact_item00 {
    margin-bottom: 25px;
}

.kosodatesupport_sp_contact_info img {
    width: 35px;
    height: auto;
    vertical-align: middle;
}

.kosodatesupport_sp_phone_number {
    font-size: 26px;
    font-weight: bold;
    letter-spacing: 1px;
}

.kosodatesupport_sp_mail_form {
    font-size: 24px;
    font-weight: bold;
}

.kosodatesupport_sp_recruit img {
    width: 100%;
    height: auto;
    margin-top: 30px;
    display: block;
    border-radius: 30px;
    border: #E2C4F0 5px solid;
}

@media screen and (max-width: 1024px) {
    .kosodatesupport_sp {
        display: block;
    }
}

@media screen and (max-width: 768px) {
    .kosodatesupport_sp_inner .support_title {
        margin: 0;
    }
}

@media screen and (max-width: 480px) {
    .kosodatesupport_sp_inner .support_title {
        font-size: 18px;
    }

    .kosodatesupport_sp_description{
        font-size: 11px;
        line-height: 1.2rem;
        letter-spacing: -0.05rem;   
    }

    .kosodatesupport_sp {
        margin-top: 70px;
    }

    .kosodatesupport_sp_inner {
        margin-bottom: 10px;
        gap: 2px;
    }

    .kosodatesupport_sp_info {
        margin: 10px 0;
        gap: 5px;
    }

    .kosodatesupport_sp_box {
        padding: 10px 5px;
        border-radius: 20px;
    }

    .kosodatesupport_sp_contact_info a {
        gap: 5px;
    }

    .kosodatesupport_sp_contact_item {
        margin-left: 0;
    }

    .kosodatesupport_sp_contact_item00 {
        margin-bottom: 10px;
        border-radius: 40px;
    }

    .kosodatesupport_sp_section {
        padding: 10px;
    }

    .kosodatesupport_sp_phone_number {
        font-size: 18px;
        letter-spacing: 0;
    }

    .kosodatesupport_sp_contact_info img {
        width: 25px;
    }

    .kosodatesupport_sp_mail_form {
        font-size: 18px;
    }
}

.contact-item a {
    text-decoration: none;
    color: inherit;
    display: flex;
    align-items: center;
    gap: 20px;
}

.contact-item00 a {
    text-decoration: none;
    color: inherit;
    display: flex;
    align-items: center;
    gap: 12px;
}

.contact-item a:link,
.contact-item a:visited,
.contact-item a:hover,
.contact-item a:active {
    text-decoration: none;
    color: inherit;
}

.contents_btn_area {
    max-width: 615px;
    gap: 80px;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 50px auto;
}

.photo_gallery {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 50px;
}

.bus_photo {
    display: flex;
    flex-direction: row;
    gap: 40px;
}

/* about_greetingここから */
.about_greeting_area {
    margin: 100px 0 100px 0;
}

.about_greeting_detail {
    max-width: 635px;
    width: 100%;
    margin: 0 auto;
}

.about_greeting_detail_name {
    float: right;
}

@media screen and (max-width:1400px) {
    .about_greeting_detail {
        padding: 0 20px;
    }
}

/* about_greetingここまで */

/* about_philosophyここから */
.about_philosophy_area {
    background-color: var(--main-color);
    margin: 0 0 100px 0;
    padding: 0 20px 20px;
    border-radius: 0 0 40px 40px;
}

.about_philosophy_title {
    margin-bottom: 50px;
}

.about_philosophy_main_area {
    max-width: 720px;
    width: 100%;
    font-weight: bold;
    background-color: #fff;
    border-radius: 40px;
    margin: 0 auto;
    padding: 30px 20px 80px;
}

.about_philosophy_main_detail_text {
    max-width: 615px;
    margin: 0px auto;
}

.about_philosophy_main_detail_card_area_big {
    max-width: 680px;
    width: 100%;
    margin: 30px auto 80px;
}

.about_philosophy_main_detail_card_area_big span {
    color: var(--sub-color);
}

.about_philosophy_main_detail_card_area_big2 {
    max-width: 615px;
    width: 100%;
    margin: 0 auto;
}

.about_philosophy_main_detail_card_area_big2_textarea {
    margin: 0 0 80px 0;
}

.about_philosophy_main_detail_card_area_big2 p {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
}

.about_philosophy_main_detail_card_area_title {
    margin: 0 0 5px 0;
    font-size: 18px;
    font-weight: bold;
    line-height: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.about_philosophy_main_detail_card_area {
    /* display: flex;
    flex-direction: row;
    flex-wrap: wrap; */
    justify-content: space-between;
    align-items: stretch;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    /* 2列固定 */
    gap: 20px;
}

.about_philosophy_main_detail_card_area>philosophy-card {
    display: block;
    /* Litコンポーネント自体をブロック化 */
    height: 100%;
    /* グリッドの高さに追従 */
}

.about_philosophy_main_detail_card_area>philosophy-card .about_philosophy_main_detail_card {
    height: 100%;
    display: flex;
    flex-direction: column;
}

/* 最後の1枚だけ幅を2列分にする */
.about_philosophy_main_detail_card_area> :nth-last-child(1):nth-child(odd) {
    grid-column: span 2;
}

/* .about_philosophy_main_detail_card {
    max-width: 330px;
    width: 100%;
    background-color: #fff;
    border: 1px dashed var(--point-text-color);
    border-radius: 20px;
    padding: 5px 20px 10px;
} */

@media screen and (max-width: 768px) {
    .about_philosophy_main_detail_card_area {
        display: flex;
        flex-direction: column;
    }
    
    .about_philosophy_main_detail_card_area_big2_textarea p {
        align-items: flex-start;
    }

    .about_philosophy_main_detail_card_area_big2_textarea img {
        padding-top: 10px;
    }
}

@media screen and (max-width: 480px) {
    .about_philosophy_main_detail_card_area_big {
        margin: 30px auto 50px;
    }

    .about_philosophy_main_detail_card_area_big2_textarea {
        margin: 0 0 50px 0;
    }

    .about_philosophy_main_detail_card_area_big2_textarea p {
        align-items: center;
    }

    .about_philosophy_main_detail_card_area_big2_textarea img {
        padding-top: 0;
    }
}

/* about_philosophyここまで */

/* about_overviewここから */
.about_overview_area {
    margin: 100px 0 100px 0;
    padding: 0 30px;
}

.about_overview_area_overlist {
    margin-bottom: 30px;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    align-items: stretch;
    justify-content: center;
}

.about_overview_area_overlist_ul {
    display: flex;
    font-weight: bold;
    border-bottom: 3px dashed #FFB8D1;
    padding: 20px 0 15px;
}

.about_overview_area_overlist .about_greeting_area_overlist_ul:first-child {
    padding-top: 0;
}

.about_overview_area_overlist_ul_title {
    width: 130px;
    padding: 0 0 0 10px;
}

.about_overview_area_overlist_ul_text {
    display: flex;
    align-items: center;
    gap: 15px;
}

.notice-box {
    max-width: 700px;
    width: 100%;
    /* margin: 0 0 50px 0; */
    margin: 0 auto;
    padding: 20px 0;
    border: 3px solid var(--sub-color);
    border-radius: 30px;
}

.notice-box_inner {
    max-width: 505px;
    width: 100%;
    margin: 0 auto;
    font-weight: bold;
}

.notice-box_inner_title {
    color: var(--point-text-color);
}

.notice-box_inner_detail {
    padding: 0 0 15px 18px;
}

.about_overview_area_imgarea {
    margin: 0 0 82px 0;
}

.access_map {
    overflow: hidden;
    position: relative;
    max-width: 700px;
    height: 500px;
    margin: 0 auto 40px;
    border-radius: 50px;
}

.access_map iframe {
    position: absolute;
    inset: -150px;
    width: calc(100% + 300px);
    height: calc(100% + 300px);
}

@media screen and (max-width: 1400px) {
    .notice-box_inner_title {
        padding: 10px;
    }
}

@media screen and (max-width: 620px) {
    .about_overview_area_overlist_ul {
        flex-direction: column;
        padding: 10px 0;
    }

    .about_overview_area_overlist_ul_text {
        padding-left: 1.5rem;
    }


}

@media screen and (max-width: 480px) {
    .notice-box_inner_title {
        font-size: 16px;
    }
}

/* about_overviewここまで */

/* about_schoolbusここから */
.about_schoolbus_area {
    margin: 100px 0 100px;
    padding: 0 20px;
}

.about_schoolbus_area_big1 {
    margin: 0 0 80px 0;
}

.about_schoolbus_area_big1_text {
    margin: 0 0 30px 0;
}

/* .about_schoolbus_area_big2 {
    margin: 0 0 80px 0;
} */

.about_schoolbus_area_big2_text {
    margin: 0 0 30px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 10px;
}

.about_schoolbus_area_big2_item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    align-content: center;
    flex-wrap: nowrap;
}

@media screen and (max-width:480px) {
    .about_schoolbus_area {
        margin: 70px 0;
    }

    .about_schoolbus_area_big2_text {
        flex-direction: column;
        gap: 20px;
    }

    .about_schoolbus_area_big2_item {
        flex-direction: column
    }
}

/* about_schoolbusここまで */

/* scheduleここから */
.schedule_area {
    padding: 0 20px;
}

.schedule_area_timeline {
    margin: 100px 0 0 0;
}

.timeline_content_area {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: stretch;
    gap: 50px;
}

.timeline_box {
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    /* flex-wrap: nowrap; */
    flex-wrap: wrap;
    flex-direction: row;
    gap: 90px;
}

.timeline {
    width: 315px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: baseline;
    /* gap: 30px; */
}

.timeline_title {
    margin: 0 0 10px 0;
    color: var(--point-text-color);
}

.timeline_item {
    padding: 0 0 30px 0;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: baseline;
    gap: 12px;
}

.timeline :last-child.timeline_item {
    padding: 0 0 0 0;
}

.timeline_time {
    width: 55px;
    text-align: right;
}

.timeline_dot01 {
    width: 16px;
    color: var(--main-color);
    position: relative;
}

.timeline_dot02 {
    width: 16px;
    color: var(--sub-color);
    position: relative;
}

.timeline_dot01.dot_top01::before {
    content: "";
    width: 1px;
    height: 850px;
    background-color: var(--main-color);
    position: absolute;
    top: 16px;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}

.timeline_dot02.dot_top02::before {
    content: "";
    width: 1px;
    height: 825px;
    background-color: var(--sub-color);
    position: absolute;
    top: 16px;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}

.timeline_content {
    width: 220px;
}

.timeline_content span {
    font-size: 13px;
}

.timeline_detail_box {
    width: 100%;
    max-width: 555px;
    margin: 0 auto;
    padding: 30px;
    border: 2px solid var(--main-color);
    border-radius: 40px;
}

.timeline_detail_box_title {
    color: var(--point-text-color);
    margin: 0 0 10px 0;
}

.timeline_img_box {
    display: flex;
    justify-content: space-around;
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 20px;
}

.schedule_area_list {
    margin: 80px 0 0 0;
}

.schedule_list {
    width: 100%;
    max-width: 700px;
    margin: 0 auto;
    /* padding: 0 10px; */
    box-sizing: border-box;
    font-weight: bold;
}

/* .schedule_item {
    margin: 0 0 20px 0;
    padding: 0 0 12px 0;
    display: flex;
    align-items: baseline;
    justify-content: flex-start;
    gap: 40px;
    border-bottom: 3px dotted var(--main-color);
}

.schedule_day {
    width: 50px;
    text-align: right;
}

.schedule_day .num {
    font-size: 30px;
}

.schedule_day .month {
    font-size: 20px;
} */

.schedule_item_note {
    margin: 0 15px;
}

.schedule_slider_area {
    margin: 50px 0 100px 0;
    height: 255px;
    position: relative;
    overflow-x: hidden;
}

.schedule_slider_area_box {
    display: flex;
    gap: 50px;
    position: absolute;
    left: 0;
    top: 0;
    will-change: transform;
    cursor: grab;
}

.schedule_slider_area.is-dragging .schedule_slider_area_box,
.schedule_slider_area_box:active {
    cursor: grabbing;
}

@media screen and (max-width:768px) {
    .timeline_box {
        flex-direction: column;
        align-items: center;
    }

    .timeline_detail_box {
        box-sizing: border-box;
        max-width: 555px;
        width: 100%;
    }

    .timeline_img_box {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }

    .schedule_item_note {
        font-size: 12px;
        line-height: 1.5;
    }

}

@media screen and (max-width:480px) {
    .schedule_area_timeline {
    margin: 70px 0 0 0;
    }

    .timeline_title {
        font-size: 16px;
    }
    
    .timeline_detail_box {
        padding: 20px;
        border-radius: 20px;
    }

    .timeline_item {
        padding: 0 0 20px 0;
        font-size: 14px;
        line-height: 1.5rem;
    }

    .timeline_dot01.dot_top01::before {
        height: 590px;
    }

    .timeline_dot02.dot_top02::before {
        height: 570px;
    }
}

/* scheduleここまで */


/* privacy-policy */

.privacy-policy {
    background-color: var(--point-color);
    /* 全体の淡いグリーン */
    padding: 60px 0;
}

.privacy-inner {
    background-color: #ffffff;
    border-radius: 30px;
    max-width: 710px;
    width: 90%;
    margin: 0 auto;
    padding: 30px 30px 5px;
}

.privacy-title {
    color: #ffffff;
    text-align: center;
    font-size: 40px;
    font-weight: bold;
    width: 100%;
    margin-bottom: 50px;
}

.privacy-content p {
    line-height: 36px;
    font-size: 18px;
    color: #333;
    font-weight: bold;
    margin-bottom: 30px;
}

.privacy-inner-inner {
    width: 100%;
    max-width: 650px;
    height: auto;
    margin: 0 auto;
}

.text_indent01 {
    /* margin-left: 45px; */
}

@media screen and (max-width: 1024px) {
    .privacy_page_wrap .privacy-policy {
        padding-bottom: 230px;
        position: relative;
        z-index: 1;
    }

    .privacy_page_wrap footer-component { 
        display: block;
        margin-top: -130px;
        position: relative;
        z-index: 10;
    }
}

@media screen and (max-width: 768px) {
    .privacy-title {
        font-size: 30px;
    }
}

@media screen and (max-width: 480px) {
    .privacy_page_wrap .privacy-policy {
        padding-bottom: 200px;
    }

    .privacy-title {
        font-size: 20px;
        margin-bottom: 20px
    }

    .privacy-content p {
        font-size: 14px;
        line-height: 1.5rem;
    }
    
    /* .text_indent01 {
        margin-left: 0;
    } */
}

/* privacy-policy */

/* supportここから */
.support_area {
    margin: 100px 0 100px 0;
    font-weight: bold;
}

.support_care {
    margin: 100px 0 0 0;
    padding: 0 20px;
    font-weight: bold;
}

.support_care_detail_text {
    width: 100%;
    max-width: 710px;
    margin: 0 auto 40px;
}

.support_care_box {
    width: 100%;
    max-width: 700px;
    margin: 0 auto;
    padding: 30px;
    border: 3px solid var(--main-color);
    border-radius: 30px;
}

.support_care_box_title {
    color: #E9448F;
}

.support_care_box_detail {
    padding: 0 0 0 18px;
    margin: 0 0 20px 0;
}

.support_care_box_detail01 {
    padding: 0 0 0 18px;
}

.support_care_box_detail_small {
    padding: 0 0 0 18px;
    font-size: 16px;
    line-height: 1.5rem;
    margin: 0 0 20px 0;
}

.support_care_box_detail_small01 {
    padding: 0 0 0 18px;
    font-size: 16px;
    line-height: 1.5rem;
}

.support_pre {
    margin: 80px 0 0 0;
    padding: 0 20px;
}

.support_pre_detail_text {
    width: 100%;
    max-width: 710px;
    margin: 0 auto 40px;
    padding: 0 20px;
}

.support_pre_emp_area {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 15px 0px;
}

.support_pre_emp_item {
    width: 230px;
    height: 150px;
    background-color: var(--main-color);
    border-radius: 30px;
    font-size: 24px;
    line-height: 45px;
    color: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
}

#pre .sub_title img {
    position: relative;
    top: 3px;
    left: 13px;
}

.support_pre_emp_item.reverse {
    background-color: #fff;
    color: #E9448F;
    height: auto;
}

.support_pre_set_area {
    width: 100%;
    max-width: 700px;
    margin: 40px auto;
    padding: 20px;
    border: 3px solid var(--main-color);
    border-radius: 30px;
}

.support_pre_set_list_area {
    display: flex;
    overflow-x: hidden;
}

.support_pre_emp_right {
    gap: 5px;
}

.youchienkaihou_title {
    font-size: 24px;
    text-align: center;
}

.youchienkaihou_subtitle {
    background: #FFD5E4;
    padding: 5px 20px;
    text-align: center;
    margin: 10px auto 20px;
    width: fit-content;
}

@media screen and (max-width:480px) {
    .support_care_box {
        padding: 20px;
    }
}

/* supportここまで */

/* contactここから */

/* ===========================
   お問い合せセクション
=========================== */
.title_sec_fuji {
    max-width: 720px;
    width: 100%;
    margin: 0 auto;
    padding: 0 20px;
    font-family: var(--font-main);
    line-height: 1.8;
}

/* 上部の案内文 */
.title_sec_fuji>div:first-child {
    font-size: 18px;
    margin: 100px auto;
    font-weight: bold;
}

.title_sec_fuji span {
    font-weight: 700;
    color: #000;
}

/* ====== フォーム全体 ====== */
.contact_form_block {
    display: flex;
    flex-direction: row;
    margin-bottom: 30px;
    gap: 90px;
}

/* ラベル */
.contact_label {
    font-weight: bold;
    font-size: 18px;
    margin-bottom: 5px;
    color: #8C3AB2;
    white-space: nowrap;
}

/* セレクト */
.contact_select_wrap {
    position: relative;
}

.contact_select {
    width: 450px;
    height: 40px;
    border: 1px solid #ccc;
    border-radius: 10px;
    font-size: 18px;
    appearance: none;
    background: #fff url('data:image/svg+xml;utf8,<svg fill="%23999" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"/></svg>') no-repeat right 12px center;
    background-size: 30px;
    padding-left: 26px;
}

.contact_input01 {
    width: 450px;
    height: 40px;
    border: 1px solid #ccc;
    border-radius: 10px;
    font-size: 15px;
    background-color: #fff;
    box-sizing: border-box;
    margin-left: 90px;
}

.contact_input02 {
    width: 450px;
    height: 40px;
    border: 1px solid #ccc;
    border-radius: 10px;
    font-size: 15px;
    background-color: #fff;
    box-sizing: border-box;
    margin-left: 72px;
}

.contact_input03 {
    width: 450px;
    height: 40px;
    border: 1px solid #ccc;
    border-radius: 10px;
    font-size: 15px;
    background-color: #fff;
    box-sizing: border-box;
    margin-left: 20px;
}

.contact_textarea {
    width: 450px;
    height: 250px;
    border: 1px solid #ccc;
    border-radius: 10px;
    font-size: 15px;
    background-color: #fff;
    box-sizing: border-box;
    resize: vertical;
    margin-left: 4px;
}

/* 下部注意文 */
.title_sec_fuji>div:nth-of-type(3) {
    font-size: 16px;
    margin-top: 100px;
    margin-bottom: 40px;
    line-height: 26px;
    font-weight: bold;
}

/* ====== ボタン ====== */
.contact_action {
    text-align: center;
}

.contact_button {
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 100px;
    width: 240px;
    height: 80px;
    background-color: #8C3AB2;
    color: #fff;
    font-size: 30px;
    font-weight: bold;
    border: 2px solid transparent;
    border-radius: 100px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.contact_button:hover {
    background-color: #FFF;
    border: 2px solid var(--point-text-color);
    color: var(--point-text-color);
}

/* 電話リンク */
.contact_tel {
    position: relative;
    font-weight: bold;
    text-decoration: none;
    /* 通常の下線は無効化 */
    display: inline-block;
    padding-bottom: 2px;
    /* 線との間に余白 */
}

.contact_tel::after {
    content: "";
    position: absolute;
    left: 20px;
    bottom: 6px;
    width: 100%;
    height: 0.5px;
    transform: scaleX(0.7);
    transform-origin: left;
    transition: transform 0.3s
}

.contact_tel_text {
    font-size: 24px;
}

/* パープルのボタン */
.privacy-btn {
    display: inline-block;
    /* 薄い紫 */
    padding: 10px 30px;
    margin: 0 auto;
    border-radius: 30px;
    /* まるい pill ボタン */
    background: #e5c9fa;
    color: #000;
    text-decoration: none;
    font-weight: 600;
    transition: 0.2s;
}

.privacy-btn:hover {
    opacity: 0.8;
}

/* チェックボックスのラベル */
.privacy-check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 16px;
    margin-top: 30px;
    margin-bottom: 30px;
    justify-content: center;
}

.privacy-link-wrap {
    margin: 30px auto;
    text-align: center;
}

/* ====== レスポンシブ ====== */
@media screen and (max-width: 1400px) {
    .contact_textarea {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
    }

    .contact_select {
        width: 100% !important;
        max-width: 100% !important;
    }

    .contact_form_block {
        flex-direction: column;
        gap: 0;
    }

    .contact_input01 ,
    .contact_input02 ,
    .contact_input03 {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0;
    }

}

@media screen and (max-width: 600px) {
    .title_sec_fuji {
        padding: 0 15px;
    }
}

@media screen and (max-width: 480px) {
    .title_sec_fuji>div:first-child {
        margin: 70px auto;
        font-size: 14px;
    }

    .contact_tel_text {
        font-size: 16px;
    }

    .contact_label {
        font-size: 16px;
    }

    .contact_select {
        font-size: 14px;
    }

    .privacy-btn{
        font-size: 14px;
    }

    .privacy-check {
        font-size: 12px;
    }

    .contact_button {
        display: block !important;
        margin-left: auto !important;
        margin-right: auto !important;
        width: 180px !important;
        height: 54px !important;
        font-size: 16px !important;
        margin-bottom: 50px !important;
        padding: 0 !important;
    }
}

/* contactここまで */

/* newsここから */

.body_container {
    font-family: var(--font-main);
}

.news_list {
    width: 100%;
    max-width: 700px;
    margin: 100px auto;
}

.news_item {
    border-bottom: 3px dashed #FFB8D1;
    padding-bottom: 20px;
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 80px;
    padding: 0 20px;
}

.news_title {
    font-weight: bold;
    font-size: 30px;
    color: #8C3AB2;
    margin-top: 50px;
    margin-bottom: 30px;
}

.news_meta {
    display: flex;
    align-items: center;
    gap: 15px;
    font-size: 0.75rem;
    margin-bottom: 12px;
}

.news_tag {
    padding: 0px 14px;
    border-radius: 40px;
    color: #fff;
    font-size: 18px;
    font-weight: bold;
    width: 100px;
    height: 30px;
    line-height: 1.6;
}

.news_tag.pink {
    background-color: #FFB8D1;
}

.news_tag.green {
    background-color: #B8DD85;
    color: #fff;
}

.news_tag.purple {
    background-color: #E2C4F0;
    color: #fff;
}

time {
    font-size: 18px;
    font-weight: bold;
}

.news_content {
    display: flex;
    align-items: flex-start;
    gap: 30px;
    margin: 20px 0;
}

.news_thumb {
    width: 300px;
    height: 200px;
    border-radius: 50px;
    background-color: #ddd;
    object-fit: cover;
    flex-shrink: 0;
}

.news_text {
    flex: 1;
    font-size: 18px;
    line-height: 26px;
}

.back_link {
    margin: 50px 0 30px;
}

@media screen and (max-width: 1024px) {
    .news_list {
        margin: 100px auto;
        padding: 0 20px;
    }
}

@media screen and (max-width: 480px) {
    .news_list {
        margin: 70px auto;
    }
}

/* ---------- Pagination ---------- */
.pagination {
    text-align: center;
    margin: 0 auto 70px;
    width: 559px;
    height: auto;
}

.pagination .page {
    display: inline-block;
    border: 1px solid #8C3AB2;
    color: #8C3AB2;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    line-height: 40px;
    text-decoration: none;
    font-size: 30px;
    margin: 0 4px;
}

.pagination .page_prev {
    display: inline-block;
    color: #8C3AB2;
    width: 50px;
    height: 50px;
    line-height: 28px;
    text-decoration: none;
    font-size: 30px;
}

.pagination .active {
    background-color: #8C3AB2;
    font-weight: bold;
    color: #fff;
    font-size: 30px;
}

.pagination ul {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 15px;
}

.pagination ul li {
    width: 50px;
    height: 50px;
}

.pagination ul li>* {
    width: 50px;
    height: 50px;
    color: #8C3AB2;
    font-size: 30px;
    line-height: 1;
    border: 1px solid #8C3AB2;
    border-radius: 10em;
    background-color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: row;
    align-content: center;
}

.pagination ul li>*.current {
    color: #fff;
    border: 1px solid #8C3AB2;
    background-color: #8C3AB2;
}

/* ---------- Category ---------- */
.category_box,
.archive_box {
    border: 1px solid #e3caff;
    border-radius: 30px;
    padding: 12px 16px;
    margin-bottom: 20px;
    background: #fff;
    max-width: 700px;
    width: 100%;
    /* height: 80px; */
}

.news_list h3 {
    background: #E2C4F0;
    color: #fff;
    border-radius: 30px 30px 0px 0px;
    padding: 14px 55px;
    font-size: 24px;
    width: 230px;
    height: 60px;
    margin-left: 31px;
}

.category_list,
.archive_list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 20px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 75px;
    font-weight: bold;
    line-height: 50px;
}

.category_list li,
.archive_list li {
    margin-bottom: 6px;
}

.dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 6px;
}

.dot.purple {
    background-color: #E2C4F0;
}

.dot.pink {
    background-color: #E2C4F0;
}

.dot.green {
    background-color: #E2C4F0;
}

/* ---------- Responsive ---------- */
@media (max-width: 600px) {
    .pagination {
        width: 100%;
        max-width: 560px;
    }
}

@media (max-width: 480px) {
    .news_content {
        flex-direction: column;
    }

    .news_thumb {
        width: 100%;
        height: 180px;
    }

    .news_list h3 {
        max-width: 155px;
        width: 100%;
        height: 50px;
        font-size: 18px;
        padding: 10px 30px;
    }
    
}

.pagination .dots {
    display: inline-block;
    width: 50px;
    height: 50px;
    line-height: 28px;
    margin: 0 4px;
    border: 1px solid transparent;
    color: #8C3AB2;
    font-size: 30px;
    text-align: center;
    position: relative;
    top: 15px;
}

/* newsここまで */

/* 入園案内ここから */

.page_annai {
    max-width: 720px;
    margin: 70px 20px;
}

/* 見出し */
.page-title {
    text-align: center;
    color: #8C3AB2;
    font-weight: 700;
    font-size: 30px;
    margin-bottom: 41px;
}

.annai_title {
    position: relative;
    top: 34px;
    left: 196px;
}

.kengaku_title {
    /* position: relative;
    top: 27px;
    left: -23px; */
    margin-right: 10px;
}

.sec_heading {
    margin-bottom: 0;
    color: #8C3AB2;
    font-weight: 700;
    font-size: 18px;
}

/* テーブル風 */

.table .row {
    display: flex;
    justify-content: flex-start;
    border-bottom: 3px dashed #FFB8D1;
    padding: 6px 12px;
    font-size: 18px;
    font-weight: 700;
    gap: 50px;
}

.table .row_etc1 {
    display: flex;
    justify-content: flex-start;
    padding: 0px 0px 0px 12px;
    font-size: 18px;
    font-weight: 700;
    gap: 50px;
}

.table .row_etc2 {
    display: flex;
    justify-content: flex-start;
    border-bottom: 3px dashed #FFB8D1;
    padding: 0px 0px 10px 127px;
    font-size: 18px;
    font-weight: 700;
    gap: 50px;
}

.row_age {
    width: 100%;
    max-width: 70px;
}

.table .row:last-child {
    border-bottom: none;
}

.table .row:first-child {
    border-bottom: none;
}

@media screen and (max-width:1400px) {

    .table .row,
    .table .row_etc1,
    .table .row_etc2 {
        gap: 30px;
        font-size: 14px;
        line-height: 1.5rem;
    }


}

/* セクション */
.section {
    margin-bottom: 40px;
}

.heading_container {
    display: flex;
    align-items: center;
    width: 100%;
    max-width: 700px;
    margin: 0 auto 20px;
}

.section01 {
    margin-bottom: 30px;
}

.section01_waku {
    border: 3px solid #FFB8D1;
    /* 任意の色や太さに変更可 */
    padding: 20px;
    border-radius: 40px;
}

.info_table {
    width: 100%;
    max-width: 700px;
    margin: 0 auto;
}

.info_row {
    display: flex;
    align-items: baseline;
    /* テキストのベースラインで揃える */
    width: 100%;
    padding: 20px 0;
    border-bottom: 3px dashed #FFB8D1;
    /* 行の区切り線 */
}

.info_row:last-child {
    border-bottom: none;
}

.info_label {
    flex-shrink: 0;
    width: 160px;
    padding-right: 20px;
    margin-left: 20px;
    font-size: 18px;
    font-weight: 700;
    color: #333;
}

.info_content {
    flex-grow: 1;
    font-size: 18px;
    line-height: 1.6;
}

@media screen and (max-width: 768px) {
    .info_row {
        display: block;
        /* 縦積みに変更 */
        padding: 10px 0;
    }

    .info_label {
        width: 100%;
        /* 横幅いっぱいに */
        margin-left: 0;
        margin-bottom: 10px;
        padding-right: 0;
    }

    .info_content {
        width: 100%;
        padding-left: 0;
    }
}

@media screen and (max-width: 480px) {
    .heading_container {
        margin: 0 auto;
    }

    .info_label {
        margin-bottom: 0;
        font-size: 14px;
    }

    .info_content {
        font-size: 14px;
    }
}


/* 注釈 */
.note {
    color: #000;
    margin: 15px 0px 0px 37px;
}

@media screen and (max-width: 480px) {
    .note {
        margin: 10px 0px 0px 35px;
    }
}

/* ドットリスト */
.dot-list {
    list-style: disc;
    margin: 10px 0 0 20px;
    padding: 0;
}

.dot-list.small li {
    font-size: 0.9rem;
    color: #555;
}

/* 番号カード */
.card {
    display: flex;
    border: 1px solid #e3d4ef;
    border-radius: 10px;
    padding: 10px;
    margin-bottom: 12px;
    background: #fdf9ff;
}

.num {
    background: #8C3AB2;
    color: #fff;
    font-weight: bold;
    border-radius: 50%;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 10px;
}

.card-body h3 {
    font-size: 0.95rem;
    margin: 0 0 6px;
    color: #333;
}

.card-body ul {
    margin: 0;
    padding-left: 1em;
    list-style: disc;
    font-size: 0.9rem;
}

/* お問い合せ */
.contact {
    background: #EAD8F6;
    text-align: center;
    padding: 20px;
    border-radius: 15px;
    margin: 40px 0;
}

.contact p {
    margin: 0 0 5px;
    color: #555;
}

.tel {
    font-size: 1.2rem;
    font-weight: bold;
    color: #8C3AB2;
    margin-bottom: 10px;
}

.mail-btn {
    display: inline-block;
    background: #fff;
    color: #8C3AB2;
    border: 2px solid #8C3AB2;
    border-radius: 30px;
    padding: 8px 20px;
    font-weight: 700;
    transition: 0.3s;
}

.mail-btn:hover {
    background: #8C3AB2;
    color: #fff;
}

/* ベース設定：パディングを含めたサイズ計算にする（突き出し防止の基本） */
.nyuen_wrapper *,
.nyuen_wrapper *::before,
.nyuen_wrapper *::after {
    box-sizing: border-box;
}

/* ヘッダー部分 */
.nyuen_header {
    display: block;
    width: 246px;
    height: 60px;
    margin: 50px auto 0px;
    padding: 15px 20px;
    background: var(--main-color);
    border-radius: 40px 40px 0px 0px;
    color: #fff;
    text-align: center;
    font-size: 18px;
    font-weight: bold;
}

.nyuen_wrapper {
    display: block;
    max-width: 720px;
    width: 100%;
    margin: 0px auto;
    padding: 30px 48px;
    background: #fff;
    border: 3px solid var(--main-color);
    border-radius: 40px;
    /* box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    font-family: "Hiragino Sans", "Noto Sans JP", sans-serif; */
    color: #000;
    line-height: 1.8;
    font-family: var(--font-main);
}

/* 各ブロック */
.nyuen_block_01,
.nyuen_block_02 {
    display: flex;
    gap: 10px;
    margin-bottom: 50px;
}

.nyuen_block_03 {
    display: flex;
    gap: 10px;
    margin-bottom: 0;
}

.nyuen_block02 {
    display: flex;
    gap: 10px;
}

.nyuen_number {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    background: var(--main-color);
    border-radius: 50%;
    color: #fff;
    font-size: 30px;
    font-weight: bold;
    text-align: center;
    line-height: 40px;
}

.nyuen_content {
    flex: 1;
    min-width: 0;
}

.nyuen_date {
    font-weight: bold;
    color: #000;
    margin-bottom: 5px;
    padding-top: 10px;
}

.nyuen_date02 {
    font-weight: bold;
    color: #000;
    margin-bottom: 5px;
    padding-top: 10px;
    margin-left: 15px;
}

.nyuen_block_line,
.nyuen_block_line02,
.nyuen_block_line03,
.nyuen_block_line04,
.nyuen_block_line05 {
    display: block;
    width: 100%;
    margin-top: 10px;
    margin-bottom: 20px;
    border-bottom: 3px dashed var(--main-color);
}

.nyuen_subtitle {
    color: var(--point-text-color);
    font-size: 18px;
    font-weight: bold;
    margin: 5px 0 0 0;
}

.nyuen_list {
    list-style: none;
    margin: 0 0 10px 0;
    padding: 0;
    color: #000;
}

.nyuen_list li {
    padding-left: 1em;
    text-indent: -1em;
}

.nyuen_note {
    font-size: 18px;
    color: #000;
    margin-bottom: 20px;
    font-weight: bold;
}

.nyuen_desc {
    list-style: none;
    margin: 10px 0 0 20px;
    padding: 0;
    color: #000;
    font-size: 18px;
    font-weight: bold;
    line-height: 30px;
}

.nyuen_desc li {
    margin-bottom: 5px;
}

.nyuen_desc02 {
    list-style: none;
    margin: 10px 0 0 33px;
    padding: 0;
    font-size: 18px;
    font-weight: bold;
    line-height: 30px;
}
    /* 全体ボックス */
    .nyuhi_wrapper {
        max-width: 700px;
        margin: 40px auto 0px;
        padding: 25px 30px;
        background: #fff;
        /* border-radius: 20px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    font-family: "Hiragino Sans", "Noto Sans JP", sans-serif; */
        color: #000;
        line-height: 1.8;
        font-family: var(--font-main);
    }

    /* タイトル部分 */
    .nyuhi_title {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        flex-direction: row;
        justify-content: flex-start;
        width: 100%;
        max-width: 700px;
        margin: 0 auto 20px;
        color: var(--point-text-color);
    }

    .nyuhi_icon {
        color: #9c5dc0;
        margin-right: 5px;
    }

    .nyuhi_note {
        font-size: 16px;
        font-weight: bold;
        color: #000;
        margin-left: 20px;
    }

    /* 各項目 */
    .nyuhi_section {}

    .nyuhi_section01 {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .nyuhi_label {
        font-weight: bold;
        margin-bottom: 5px;
    }

    /* .nyuhi-text {
    margin-left: 1.5em;
    margin-bottom: 10px;
} */

    /* 色付き強調部分 */
    .nyuhi_highlight {
        color: #a74f7f;
        font-weight: bold;
    }

    .nyuhi_highlight_pink {
        color: #d66ea2;
        font-weight: bold;
    }

    .nyuhi_highlight_blue {
        color: #5a88c5;
        font-weight: bold;
    }

    .nyuhi_highlight_green {
        color: #58a664;
        font-weight: bold;
    }

    /* 区切り線（点線） */
    .nyuhi_line {
        border-bottom: 3px dashed #f9c6dc;
        width: 100%;
        margin: 10px 0;
    }

    /* 小文字説明 */
    /* .nyuhi-small {
    font-size: 18px;
    font-weight: bold;
    color: #000;
} */

    /* .nyuhi-wrapper {
    max-width: 750px;
    margin: 0px auto;
    padding: 25px 30px 0px;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
    font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
    color: #333;
    line-height: 1.8;
    font-family: var(--font-main);
} */
    /* 各セクション */
    .nyuhi_section {}

    /* 横並び設定 */
    .nyuhi_flex {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-start;
        gap: 25px;
        margin-top: 10px;
    }

    .nyuhi_left {
        flex: 0 0 174px;
    }

    .nyuhi_right {
        flex: 1;
    }

    /* ラベル */
    .nyuhi_label {
        font-weight: bold;
        font-size: 18px;
    }

    /* 各項目ブロック */
    .nyuhi_item {
        display: flex;
        flex-wrap: wrap;
        margin-bottom: 10px;
    }

        .nyuhi_item_02 {
        display: flex;
        flex-wrap: wrap
    }

    .nyuhi_item_03 {
        display: flex;
        flex-wrap: wrap;
        margin-bottom: -10px;
    }

    .nyuhi_heading {
        font-weight: bold;
        margin-bottom: 3px;
        font-size: 1rem;
    }

    /* 色別見出し */
    .nyuhi_heading.purple {
        color: #8C3AB2;
        font-size: 18px;
        font-weight: bold;
    }

    /* .nyuhi_heading.pink {
        color: #8C3AB2;
        font-size: 18px;
        font-weight: bold;
    }

    .nyuhi_heading.blue {
        color: #8C3AB2;
        font-size: 18px;
        font-weight: bold;
    }

    .nyuhi_heading.green {
        color: #8C3AB2;
        font-size: 18px;
        font-weight: bold;
    } */

    /* テキスト */
    .nyuhi_text {
        font-size: 18px;
        margin-bottom: 10px;
        margin-left: 25px;
    }

    .nyuhi_text02 {
        font-size: 18px;
        margin-left: 25px;
    }

    .nyuhi_text01 {
        font-size: 18px;
    }

    .nyuhi_small {
        font-size: 18px;
        font-weight: bold;
        color: #000;
        margin-left: 20px;
    }

    /* 区切り線 */
    .nyuhi_line {
        border-bottom: 3px dashed #f9c6dc;
        width: 100%;
        margin: 10px 0;
    }

    /* スマホ対応 */
    @media screen and (max-width: 768px) {
        .nyuhi_flex {
            flex-direction: column;
            gap: 0;
        }

        .nyuhi_left {
            flex: none;
        }

        .nyuhi_item ,
        .nyuhi_item_03 {
            margin-left: 5%;
        }
    }

    @media screen and (max-width: 600px) {
        .nyuhi_wrapper {
            padding: 20px;
        }

        .nyuhi_text {
            margin-left: 0.8em;
        }
    }

    @media screen and (max-width: 480px) {
        .nyuhi_title {
            margin: 0 auto;
        }

        .nyuen_subtitle {
            font-size: 14px;
        }

        .nyuen_number {
            margin-bottom: 10px;
        }

        .nyuen_wrapper {
            padding: 20px;
        }

        .nyuen_desc {
            margin-left: 0;
            font-size: 14px;
            line-height: 1.5rem;
        }

        .nyuen_desc02 {
            font-size: 14px;
        }

        .nyuen_date {
            padding-top: 0;
        }

        .nyuen_list ,
        .nyuhi_label {
            font-size: 14px;
            margin: 0;
        }

        .nyuen_note ,
        .nyuhi_note {
            font-size: 12px;
            margin-bottom: 10px;
        }

        .nyuen_block_line,
        .nyuen_block_line02,
        .nyuen_block_line03,
        .nyuen_block_line04,
        .nyuen_block_line05 {
            margin-bottom: 10px;
        }

        .nyuen_block_01, 
        .nyuen_block_02 {
            margin-bottom: 30px;
        }
        .nyuen_block_03 {
            margin-bottom: 0;
        }

        .nyuhi_heading_txt {
            font-size: 14px;
        }
        
        .nyuhi_text ,
        .nyuhi_text01,
        .nyuhi_text02 {
            margin-bottom: 0;
            font-size: 14px;
            line-height: 1.5rem;
        }

        .nyuhi_small {
            font-size: 12px;
        }

        .nyuhi_heading.purple {
            font-size: 14px;
        }
    }


    /* 入園案内ここまで */