/* 指導コンセプトセクション */

/* 基本的なウィジェットスタイル */
.concept-element *,
.concept-element::after,
.concept-element::before {
    box-sizing: border-box;
}

.concept-widget-wrap > .concept-element {
    width: 100%;
}

.concept-element.concept-widget:not(:last-child) {
    margin-block-end: 20px;
    margin-bottom: 20px;
}

.concept-element:where(:not(.e-con)):where(:not(.e-div-block-base)) .concept-widget-container,
.concept-element:where(:not(.e-con)):where(:not(.e-div-block-base)):not(:has(.concept-widget-container)) {
    transition: background .3s, border .3s, border-radius .3s, box-shadow .3s, transform var(--e-transform-transition-duration, .4s);
}

/* メインセクションの背景 */
.concept-section[data-id="43725f02"] {
    background-color: transparent !important;
    padding: 0 0 76px 0 !important;
}

.concept-container {
    max-width: 1140px;
    margin: 0 auto;
    padding: 0;
}

/* PC/タブレット版のみ - 子要素にpadding適用 */
.concept-column-gap-default > .concept-column > .concept-element-populated {
    padding: 0 10px;
}

.concept-column-gap-default {
    gap: 20px;
}

/* タイトル画像 */
.concept-widget-image img {
    max-width: 398px;
    width: 100%;
    height: auto;
    display: block;
    margin: 0 auto;
}

/* 背景パターン画像 */
.concept-element-populated > .concept-element.concept-widget-image {
    text-align: center;
    margin: 20px 0;
}

/* タイトル画像は大きく表示 */
.concept-element[data-id="669a60a5"] img {
    max-width: 398px;
    width: 100%;
    height: auto;
}

/* メインのconceptカラムに相対配置を追加 */
.concept-column[data-id="3f55ae51"] {
    position: relative;
}

/* テキストボックスのセクションに相対配置 */
.concept-section[data-id="1e250cb5"] {
    position: relative;
}

/* 装飾用の背景パターン画像 */
.concept-element[data-id="1309e840"] {
    position: relative;
    z-index: 1;
    text-align: right;
}

.concept-element[data-id="1309e840"] > .concept-widget-container {
    margin: 0px 0px -90px 0px !important; /* 下の要素に突き抜ける */
    transition: background .3s, border .3s, border-radius .3s, box-shadow .3s, transform var(--e-transform-transition-duration, .4s);
}

.concept-element[data-id="1309e840"] img {
    max-width: 127px;
    width: 127px;
    height: auto;
    margin: 0 0 0 auto; /* 右寄せにする */
    display: block;
}

/* 装飾用の背景パターン画像（小） */
.concept-element[data-id="6ab31786"] {
    position: relative;
    z-index: 1;
    text-align: left;
}

.concept-element[data-id="6ab31786"] > .concept-widget-container {
    margin: -90px 0px 0px 0px !important; /* 上の要素に突き抜ける */
    transition: background .3s, border .3s, border-radius .3s, box-shadow .3s, transform var(--e-transform-transition-duration, .4s);
}

.concept-element[data-id="6ab31786"] img {
    max-width: 87px;
    width: 87px;
    height: auto;
    margin: 0 auto 0 0; /* 左寄せにする */
    display: block;
}

/* コンテンツボックス */
.concept-element[data-id="ea3a839"] > .concept-widget-wrap {
    background-color: #E7F9EB;
}

.concept-element[data-id="ea3a839"] > .concept-element-populated {
    transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s;
    padding: 3% 3% 3% 3%;
    border-radius: 25px 25px 25px 25px;
}

.concept-element[data-id="2f2d8328"] {
    text-align: center;
    font-family: "Noto Sans JP", Sans-serif;
    font-size: 1.2em;
    font-weight: 700;
    line-height: 2em;
    color: #000000;
}

.concept-widget-text-editor p {
    margin-bottom: 15px;
}

/* レスポンシブ - タブレット */
@media (max-width: 1100px) {
    .concept-content-box {
        padding: 25px;
    }
    
    .concept-widget-text-editor {
        font-size: 15px;
    }
}

/* レスポンシブ - モバイル */
@media (max-width: 767px) {
    /* モバイルでは子要素のpaddingを削除 */
    .concept-column-gap-default > .concept-column > .concept-element-populated {
        padding: 0;
    }
    
    .concept-section {
        padding-left: 1%;
        padding-right: 1%;
    }
    
    .concept-content-box {
        padding: 20px 5px;
    }
    
    .concept-widget-text-editor {
        font-size: 14px;
        line-height: 1.8em;
    }
    
    .concept-hidden-desktop,
    .concept-hidden-tablet {
        display: none !important;
    }
    
    /* タイトル画像のサイズ調整 */
    .concept-element[data-id="669a60a5"] img {
        width: 200px;
    }
    
    /* タイトル画像要素のmarginを解除 */
    .concept-element[data-id="669a60a5"] {
        margin: 0;
    }
    
    /* 背景パターン画像のサイズ調整 */
    .concept-element[data-id="1309e840"] img {
        width: 15%;
    }
    /* 背景パターン画像（小）のサイズ調整 */
    .concept-element[data-id="6ab31786"] img {
        width: 11%;
        height: auto;
    }

    /* 背景パターン画像（小） 親コンテナのネガティブマージン（本番相当） */
    .concept-element[data-id="6ab31786"] > .concept-widget-container {
        margin: -12% 0% 0% 3% !important;
    }

    /* 背景パターン画像（小）ウィジェット自体に付与される上下マージンを解除 */
    .concept-element[data-id="6ab31786"] {
        margin: 0 !important;
    }
    
    /* モバイル用テキストエディター */
    .concept-element[data-id="92c27d4"] {
        text-align: center;
        font-size: 13px;
        line-height: 1.8em;
    }

    /* 指導コンセプトのコンテンツ余白（本番相当） */
    .concept-element[data-id="ea3a839"] > .concept-element-populated {
        padding: 5% 5% 5% 5%;
    }
    
    /* デスクトップ用テキストエディターのモバイル時上書き */
    .concept-element[data-id="2f2d8328"] {
        font-size: 13px;
        line-height: 1.8em;
    }

    /* メインセクションの上余白を詰める（SP限定） */
    .concept-section[data-id="43725f02"] {
        margin-top: -30px;
        padding: 0 0 10px 0 !important;
    }
}

/* デスクトップ・タブレット */
@media (min-width: 768px) {
    .concept-hidden-phone {
        display: block !important;
    }
    
    .concept-hidden-desktop.concept-hidden-tablet {
        display: none !important;
    }

    /* PCで段落の行間を2emに固定（グローバルp上書き対策） */
    .concept-element[data-id="2f2d8328"] .concept-widget-container p {
        line-height: 2em;
    }
}

/* スマホ限定改行（<br class="mobile-br"> 用） */
.mobile-br {
    display: none;
}

@media (max-width: 767px) {
    .mobile-br {
        display: inline;
    }
}

