/* join Section - Custom CSS */
/* 基本的なElementorスタイル再現 */

/* Base section styles */
.join-section {
    position: relative;
    width: 100%;
}

.join-top-section {
    background-color: #00516D;
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    margin-bottom: 0px;
    padding: 4% 0% 3% 0%;
}

/* Container styles */
.join-container {
    display: flex;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    max-width: 1200px;
    width: 100%;
}

/* Column styles */
.join-column {
    display: flex;
    min-height: 1px;
    position: relative;
    flex-direction: column;
}

.join-column.join-col-100 {
    width: 100%;
}

.join-column.join-col-50 {
    width: 50%;
}

.join-column.join-col-35 {
    width: 35%;
}

.join-column.join-col-65 {
    width: 65%;
}

.join-top-column {
    /* Top column styles */
}

.join-inner-column {
    /* Inner column styles */
}

/* Widget wrap styles */
.join-widget-wrap {
    align-content: flex-start;
    flex-wrap: wrap;
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
}

.join-element-populated {
    /* Populated element styles */
}

/* Widget styles */
.join-widget {
    position: relative;
}

.join-element {
    position: relative;
    width: 100%;
}

/* Heading widget styles */
.join-heading-title {
    line-height: 1;
    margin: 0;
    padding: 0;
    position: relative;
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 20px;
    font-weight: 700;
    color: #FFFFFF;
}

.join-heading-title2 {
    line-height: 1;
    margin: 0;
    padding: 0;
    position: relative;
    font-family: "Mulish", Sans-serif;
    font-size: 65px;
    font-weight: 900;
    color: #FFFFFF;
}

.join-heading-title3 {
    line-height: 1;
    margin: 0;
    padding: 0;
    position: relative;
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 40px;
    font-weight: 600;
    color: #FFFFFF;
    text-align: center;
    margin-bottom: 20px;
}

.join-heading-title4 {
    line-height: 1;
    margin: 0;
    padding: 0;
    position: relative;
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 40px;
    font-weight: 600;
    color: #00516D;
    text-align: center;
}

.join-heading-title5 {
    line-height: 1;
    margin: 0;
    padding: 0;
    position: relative;
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 100px;
    font-weight: 600;
    color: #FFFFFF;
    text-align: center;
}

.join-heading-title6 {
    line-height: 1;
    margin: 0;
    padding: 0;
    position: relative;
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 20px;
    font-weight: 500;
    color: #FFFFFF;
}

.join-heading-title7 {
    line-height: 1;
    margin: 0;
    padding: 0;
    position: relative;
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: #FFFFFF;
}

/* Widget container */
.join-widget-container {
    position: relative;
}

/* Inner section styles */
.join-inner-section {
    position: relative;
}

.join-section-boxed {
    /* Boxed section styles */
}

.join-section-height-default {
    /* Default height section */
}

/* Custom class styles */
.join-element-e463b32 {
}

.join-element-e4a0fd0 {
    justify-content: center;
}

.join-element-82da810 .join-heading-title3 {
    font-family: "Mulish", Sans-serif;
    font-size: 14px;
    font-weight: 900;
    color: #ffffff;
    text-align: right;
}

.join-element-b1ec50b {
    margin-bottom: 20px;
}

.join-element-791bbaf {
    background-color: #FFFFFF;
}

.join-element-791bbaf > .join-widget-container {
    padding: 2% 2% 2% 2%;
}

.join-top_store-link {
    /* Top store link styles */
}

/* Link styles */
.join-heading-title a {
    text-decoration: none;
}

.join-heading-title5 a {
    color: #FFFFFF;
    text-decoration: underline;
}

.join-heading-title5 a:hover {
    color: #F8931F;
}

/* Column gap styles */
.join-column-gap-default > .join-column > .join-element-populated {
    padding: 15px;
}

/* タイムスケジュールセクション - 元のElementor CSSから移植 */
.join-schedule-title-section.join-element-e3415a5 {
    padding: 5% 0% 0% 0%;
}

/* 入会までの流れタイトルセクション */
.join-flow-title-section {
    background-color: #E6EDF5;
    padding: 5% 0% 0% 0%;
}

/* 入会までの流れセクション */
.join-flow-section {
    background-color: #E6EDF5;
    padding: 3% 0% 3% 0%;
}

/* 入会までの流れ内部セクション */
.join-flow-inner-section {
    background-color: #ffffff;
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    margin-top: 0%;
    margin-bottom: 2%;
    padding: 2% 4% 2% 4%;
}

/* 入会までの流れセクション内の画像 */
.join-element-5aaa4a05 .join-widget-container,
.join-element-dd997ad .join-widget-container,
.join-element-47c7d05 .join-widget-container,
.join-element-72b34ff .join-widget-container {
    text-align: center;
}

.join-element-5aaa4a05 img,
.join-element-dd997ad img,
.join-element-47c7d05 img,
.join-element-72b34ff img {
    width: 200px;
}

/* 入会までの流れセクション内の見出し */
.join-element-1538593c .join-heading-title {
    color: #00516d;
}

.join-element-5bc5b57c .join-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 25px;
    font-weight: 600;
    line-height: 2em;
    color: #00516d;
    text-decoration: underline;
}

.join-element-2894431 .join-heading-title,
.join-element-9061d66 .join-heading-title,
.join-element-d9cdfa6 .join-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 25px;
    font-weight: 600;
    line-height: 2em;
    color: #00516d;
}

.join-section.join-top-section.join-element-6bb70cf {
    padding: 2% 0% 4% 0%;
}

.join-section.join-schedule-section.join-element-6bb70cf {
    padding: 2% 0% 4% 0%;
}

.join-element-59eece9 > .join-element-populated {
    padding: 0% 3% 0% 3%;
}

.join-element-c362235 > .join-widget-container {
    background-color: #000000;
    margin: 0px 8px 0px 8px;
    padding: 2% 2% 2% 2%;
}

.join-element-c362235 {
    text-align: center;
    margin-bottom: 10px;
}

.join-element-c362235 .join-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-weight: 600;
    color: #FFFFFF;
    font-size: 1.75rem;
}

.join-element-4f72c06 {
    margin-bottom: 20px;
}

/* 体操体幹トレーニングクラス */
.join-element-7be0227 .join-container {
    flex-direction: row;
    flex-wrap: wrap;
}

.join-element-7a96b6f.join-column .join-widget-wrap {
    align-items: center;
}

.join-element-7a96b6f.join-column[data-element_type="column"] > .join-widget-wrap.join-element-populated {
    align-content: center;
    align-items: center;
}

.join-element-d2f2d4e > .join-widget-container {
    background-color: #0a8f20;
    padding: 25px 18px 25px 18px;
}

.join-element-d2f2d4e .join-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 25px;
    font-weight: 600;
    line-height: 1.5em;
    color: #ffffff;
    text-align: center;
}

/* 園児・小学生列 */
.join-element-16a3851 {
    width: 20%;
}

.join-element-16a3851.join-column .join-widget-wrap {
    align-items: center;
}

.join-element-16a3851.join-column[data-element_type="column"] > .join-widget-wrap.join-element-populated {
    align-content: center;
    align-items: center;
}

.join-element-996ce34 {
    margin-bottom: 12px;
}

.join-element-996ce34 > .join-widget-container {
    background-color: #0a8f20;
    padding: 10px 10px 10px 10px;
}

.join-element-996ce34 .join-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 25px;
    font-weight: 600;
    line-height: 1.5em;
    color: #ffffff;
    text-align: center;
}

.join-element-5fdd108 {
    margin-bottom: 0;
}

.join-element-5fdd108 > .join-widget-container {
    background-color: #0a8f20;
    padding: 10px 10px 10px 10px;
}

.join-element-5fdd108 .join-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 25px;
    font-weight: 600;
    line-height: 1.5em;
    color: #ffffff;
    text-align: center;
}

/* 時間列 */
.join-element-b2025b0 {
    width: 46.332%;
}

.join-element-b2025b0.join-column .join-widget-wrap {
    align-items: center;
}

.join-element-b2025b0.join-column[data-element_type="column"] > .join-widget-wrap.join-element-populated {
    align-content: center;
    align-items: center;
}

.join-element-e4b693f > .join-widget-container {
    margin: -7px 0px 0px 0px;
    padding: 10px 10px 10px 10px;
}

.join-element-e4b693f .join-heading-title {
    font-family: "Mulish", Sans-serif;
    font-size: 45px;
    font-weight: 900;
    letter-spacing: 3px;
    color: #000000;
    text-align: center;
}

.join-element-fdaf249 > .join-widget-container {
    padding: 10px 10px 10px 10px;
}

.join-element-fdaf249 .join-heading-title {
    font-family: "Mulish", Sans-serif;
    font-size: 45px;
    font-weight: 900;
    letter-spacing: 3px;
    color: #000000;
    text-align: center;
}

/* モバイル用（園児） */
.join-element-a2cea94 {
    width: 30%;
}

.join-element-b1fd322 .join-heading-title {
    font-size: 14px;
}

.join-element-6efd20f {
    width: 70%;
}

.join-element-6efd20f.join-column .join-widget-wrap {
    align-items: center;
}

.join-element-6efd20f.join-column[data-element_type="column"] > .join-widget-wrap.join-element-populated {
    align-content: center;
    align-items: center;
}

.join-element-05bea0c > .join-widget-container {
    margin: 0px 0px 0px 0px;
}

.join-element-05bea0c .join-heading-title {
    font-size: 26px;
}

/* モバイル用（小学生） */
.join-element-5d9b7c5 {
    width: 30%;
}

.join-element-3b6b896 .join-heading-title {
    font-size: 11px;
}

.join-element-5d57707 {
    width: 70%;
}

.join-element-5d57707.join-column .join-widget-wrap {
    align-items: center;
}

.join-element-5d57707.join-column[data-element_type="column"] > .join-widget-wrap.join-element-populated {
    align-content: center;
    align-items: center;
}

.join-element-6329a80 > .join-widget-container {
    margin: 0px 0px 0px 0px;
}

.join-element-6329a80 .join-heading-title {
    font-size: 26px;
}

/* 体幹トレーニングクラス */
.join-element-3aae282 .join-container {
    flex-direction: row;
    flex-wrap: wrap;
}

.join-element-deee987.join-column .join-widget-wrap {
    align-items: center;
}

.join-element-deee987.join-column[data-element_type="column"] > .join-widget-wrap.join-element-populated {
    align-content: center;
    align-items: center;
}

.join-element-24f0af8 > .join-widget-container {
    background-color: #F5CA44;
    padding: 25px 18px 25px 18px;
}

.join-element-24f0af8 .join-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 25px;
    font-weight: 600;
    line-height: 1.5em;
    color: #000000;
    text-align: center;
}

/* ジュニア・アスリート列 */
.join-element-02c643f {
    width: 20%;
}

.join-element-02c643f.join-column .join-widget-wrap {
    align-items: center;
}

.join-element-02c643f.join-column[data-element_type="column"] > .join-widget-wrap.join-element-populated {
    align-content: center;
    align-items: center;
}

.join-element-ad31491 {
    margin-bottom: 12px;
}

.join-element-ad31491 > .join-widget-container {
    background-color: #F5CA44;
    padding: 10px 10px 10px 10px;
}

.join-element-ad31491 .join-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 25px;
    font-weight: 600;
    line-height: 1.5em;
    color: #000000;
    text-align: center;
}

.join-element-f4bbc6b {
    margin-bottom: 0;
}

.join-element-f4bbc6b > .join-widget-container {
    background-color: #F5CA44;
    padding: 10px 10px 10px 10px;
}

.join-element-f4bbc6b .join-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 25px;
    font-weight: 600;
    line-height: 1.5em;
    color: #000000;
    text-align: center;
}

/* 時間列（体幹トレーニング） */
.join-element-7ddde04 {
    width: 46.332%;
}

.join-element-7ddde04.join-column .join-widget-wrap {
    align-items: center;
}

.join-element-7ddde04.join-column[data-element_type="column"] > .join-widget-wrap.join-element-populated {
    align-content: center;
    align-items: center;
}

.join-element-a229d25 > .join-widget-container {
    margin: -7px 0px 0px 0px;
    padding: 10px 10px 10px 10px;
}

.join-element-a229d25 .join-heading-title {
    font-family: "Mulish", Sans-serif;
    font-size: 45px;
    font-weight: 900;
    letter-spacing: 3px;
    color: #000000;
    text-align: center;
}

.join-element-042d27b > .join-widget-container {
    padding: 10px 10px 10px 10px;
}

.join-element-042d27b .join-heading-title {
    font-family: "Mulish", Sans-serif;
    font-size: 45px;
    font-weight: 900;
    letter-spacing: 3px;
    color: #000000;
    text-align: center;
}

/* モバイル用（ジュニア） */
.join-element-b1fd322 .join-heading-title {
    font-size: 14px;
}

.join-element-ee51b66 > .join-widget-container {
    margin: 0px 0px 0px 0px;
}

.join-element-ee51b66 .join-heading-title {
    font-size: 26px;
}

/* モバイル用（アスリート） */
.join-element-db86654 .join-heading-title {
    font-size: 11px;
}

.join-element-bc95d66 > .join-widget-container {
    margin: 0px 0px 0px 0px;
}

.join-element-bc95d66 .join-heading-title {
    font-size: 26px;
}

/* 大人トレーニングクラス */
.join-element-8bae3b3 {
    margin-top: -20px;
    margin-bottom: 0px;
}

.join-element-8bae3b3 .join-container {
    flex-direction: row;
    flex-wrap: wrap;
}

.join-element-ea23478 {
    width: 54%;
}

.join-element-ea23478.join-column .join-widget-wrap {
    align-items: center;
}

.join-element-ea23478.join-column[data-element_type="column"] > .join-widget-wrap.join-element-populated {
    align-content: center;
    align-items: center;
}

.join-element-e779b30 > .join-widget-container {
    background-color: #199bc8;
    padding: 25px 18px 25px 18px;
}

.join-element-e779b30 .join-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 25px;
    font-weight: 600;
    line-height: 1.5em;
    color: #ffffff;
    text-align: center;
}

.join-element-ef14879 {
    width: 46%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.join-element-ef14879.join-column .join-widget-wrap {
    align-items: center;
}

.join-element-ef14879.join-column[data-element_type="column"] > .join-widget-wrap.join-element-populated {
    align-content: center;
    align-items: center;
}

.join-element-79eae71 > .join-widget-container {
    margin: 0px;
    padding: 10px 10px 10px 10px;
}

.join-element-79eae71 {
    text-align: center;
}

.join-element-79eae71 .join-heading-title {
    font-family: "Mulish", Sans-serif;
    font-size: 45px;
    font-weight: 900;
    letter-spacing: 3px;
    color: #000000;
    text-align: center;
}

/* 注意書き */
.join-element-777e0e9 > .join-widget-container {
    padding: 20px 0px 0px 0px;
}

.join-element-777e0e9 .join-heading-title {
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 14px;
    font-weight: 600;
    color: #000000;
}

/* Icon styles */
.join-widget-icon {
    margin-bottom: 20px;
}

.join-widget-icon .join-widget-container {
    text-align: center;
}

.join-icon {
    color: #00516d;
    display: inline-block;
    font-size: 50px;
    line-height: 1;
    text-align: center;
    transition: all .3s;
    border-color: #00516d;
}

/* Divider styles */
.join-widget-divider {
    position: relative;
    margin-bottom: 10px;
}

.join-divider {
    display: block;
}

.join-divider-separator {
    display: block;
    border-block-start: 1px solid #e2e2e2;
}

/* カラム幅調整 */
.join-col-33 {
    width: 33.333%;
}

/* Responsive styles */
@media (max-width: 767px) {
    .join-top-section {
        margin-bottom: 0px;
        padding: 0% 0% 0% 0%;
    }
    
    .join-container {
        flex-direction: column;
    }
    
    .join-column.join-col-50 {
        width: 100%;
    }
    
    .join-column.join-col-35 {
        width: 100%;
    }
    
    .join-column.join-col-65 {
        width: 100%;
    }
    
    .join-heading-title {
        font-size: 13px;
    }
    
    .join-heading-title2 {
        font-size: 25px;
    }
    
    .join-heading-title3 {
        font-size: 25px;
    }
    
    .join-heading-title4 {
        font-size: 25px;
    }
    
    .join-heading-title5 {
        font-size: 25px;
    }
    
    .join-heading-title6 {
        font-size: 13px;
    }
    
    .join-heading-title7 {
        font-size: 12px;
    }

    /* タイムスケジュールのモバイル対応 */
    .join-col-33 {
        width: 100%;
    }

    /* タイムスケジュールタイトルのモバイル対応 */
    .join-element-c362235 > .join-widget-container {
        padding: 4% 4% 4% 4%;
    }

    .join-element-c362235 .join-heading-title {
        font-size: 15px;
    }

    /* 体操体幹トレーニングクラスのモバイル対応 */
    .join-element-7be0227 .join-container {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .join-element-7a96b6f {
        width: 100%;
    }

    .join-element-d2f2d4e > .join-widget-container {
        padding: 6px 6px 6px 6px;
    }

    .join-element-d2f2d4e .join-heading-title {
        font-size: 14px;
    }

    .join-element-996ce34 {
        margin-bottom: 12px;
    }

    .join-element-996ce34 > .join-widget-container {
        padding: 6px 6px 6px 6px;
    }

    .join-element-996ce34 .join-heading-title {
        font-size: 14px;
    }

    .join-element-5fdd108 {
        margin-bottom: 0;
    }

    .join-element-5fdd108 > .join-widget-container {
        padding: 6px 6px 6px 6px;
    }

    .join-element-5fdd108 .join-heading-title {
        font-size: 14px;
    }

    .join-element-16a3851 {
        width: 30%;
    }

    .join-element-3aae282 .join-container {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .join-element-deee987 {
        width: 100%;
    }

    .join-element-24f0af8 > .join-widget-container {
        background-color: #F5CA44;
        padding: 6px 6px 6px 6px;
    }

    .join-element-24f0af8 .join-heading-title {
        color: #000000;
        font-size: 14px;
    }

    .join-element-02c643f {
        width: 30%;
    }

    .join-element-ad31491 {
        margin-bottom: 12px;
    }

    .join-element-ad31491 > .join-widget-container {
        background-color: #F5CA44;
        padding: 6px 6px 6px 6px;
    }

    .join-element-ad31491 .join-heading-title {
        color: #000000;
        font-size: 14px;
    }

    .join-element-f4bbc6b {
        margin-bottom: 0;
    }

    .join-element-f4bbc6b > .join-widget-container {
        background-color: #F5CA44;
        padding: 6px 6px 6px 6px;
    }

    .join-element-f4bbc6b .join-heading-title {
        color: #000000;
        font-size: 14px;
    }

    .join-element-7ddde04 {
        width: 70%;
    }

    .join-element-a229d25 > .join-widget-container {
        padding-left: 0;
        padding-right: 0;
    }

    .join-element-a229d25 .join-heading-title {
        font-size: 26px;
        text-align: left;
    }

    .join-element-042d27b > .join-widget-container {
        padding-left: 0;
        padding-right: 0;
    }

    .join-element-042d27b .join-heading-title {
        font-size: 26px;
        text-align: left;
    }

    .join-element-8bae3b3 .join-container {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .join-element-ea23478 {
        width: 100%;
    }

    .join-element-e779b30 > .join-widget-container {
        background-color: #199bc8;
        padding: 6px 6px 6px 6px;
    }

    .join-element-e779b30 .join-heading-title {
        color: #ffffff;
        font-size: 14px;
    }

    .join-element-ef14879 {
        width: 100%;
    }

    .join-element-79eae71 > .join-widget-container {
        padding-left: 0;
        padding-right: 0;
    }

    .join-element-79eae71 .join-heading-title {
        font-size: 26px;
        text-align: center;
    }

    .join-element-777e0e9 .join-heading-title {
        font-size: 11px;
    }

    .join-element-b2025b0 {
        width: 70%;
    }

    /* 入会までの流れセクション内の見出し（モバイル） */
    .join-element-5bc5b57c .join-heading-title {
        font-size: 16px;
    }

    .join-element-2894431 .join-heading-title,
    .join-element-9061d66 .join-heading-title,
    .join-element-d9cdfa6 .join-heading-title {
        font-size: 16px;
    }

    .join-element-e4b693f > .join-widget-container {
        padding-left: 0;
        padding-right: 0;
    }

    .join-element-e4b693f .join-heading-title {
        font-size: 26px;
        text-align: left;
    }

    .join-element-fdaf249 > .join-widget-container {
        padding-left: 0;
        padding-right: 0;
    }

    .join-element-fdaf249 .join-heading-title {
        font-size: 26px;
        text-align: left;
    }
    
    .join-column-gap-default > .join-column > .join-element-populated {
        padding: 10px;
    }
}

