/* =========================================================
   /curtain-counselor 専用CSS 完成版
   ---------------------------------------------------------
   ・標準 style.css / _style1.css より後に読み込む
   ・旧CMS対策として #main .content-block 配下でスコープ
   ・可読性優先：本文14〜16px
   ========================================================= */


/* =========================================================
   BASE
   ========================================================= */

#main .content-block .cc-page,
#main .content-block .cc-page * {
    box-sizing: border-box;
}#main .content-block .cc-page {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    float: none !important;
    clear: both !important;

    color: #27323a !important;
    background: #ffffff !important;
}#main .content-block .cc-page a {
    text-decoration: none !important;
}#main .content-block .cc-page img {
    display: block !important;

    width: auto !important;
    max-width: 100% !important;
    height: auto !important;

    margin: 0 !important;
    padding: 0 !important;

    border: none !important;
}#main .content-block .cc-page ul {
    list-style-type: disc !important;
}#main .content-block .cc-role-grid > br,
#main .content-block .cc-problem-grid > br,
#main .content-block .cc-relation-grid > br,
#main .content-block .cc-trust-grid > br,
#main .content-block .cc-consult-grid > br,
#main .content-block .cc-final-actions > br,
#main .content-block .cc-hero-actions > br {
    display: none !important;
}/* =========================================================
   HERO
   ========================================================= */

#main .content-block .cc-hero {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 0 0 52px !important;
    padding: 0 !important;

    float: none !important;
    clear: both !important;

    overflow: hidden !important;

    background:
        linear-gradient(
            135deg,
            #edf5f2 0%,
            #ffffff 58%,
            #f7f1e8 100%
        ) !important;

    border: 1px solid #dce6e1 !important;
    border-radius: 19px !important;
}#main .content-block .cc-hero-inner {
    display: block !important;
    width: 100% !important;
    padding: 38px 28px 34px !important;
}#main .content-block .cc-eyebrow,
#main .content-block .cc-kicker {
    display: block !important;

    margin: 0 0 6px !important;
    padding: 0 !important;

    color: #52786b !important;

    font-size: 11px !important;
    font-weight: bold !important;
    line-height: 1.5 !important;
    letter-spacing: .13em !important;
}#main .content-block h1:where(:not(.as-h2)).cc-hero-title {
    display: block !important;

    width: 100% !important;

    margin: 0 0 16px !important;
    padding: 0 !important;

    background: none !important;
    border: none !important;
    border-radius: 0 !important;

    color: #27323a !important;

    font-size: 32px !important;
    font-weight: bold !important;
    line-height: 1.45 !important;

    text-align: left !important;
}#main .content-block h1:where(:not(.as-h2)).cc-hero-title span {
    color: #3f6b5b !important;
}#main .content-block .cc-hero-lead {
    display: block !important;

    max-width: 665px !important;

    margin: 0 0 19px !important;
    padding: 0 !important;

    color: #56646b !important;

    font-size: 16px !important;
    line-height: 1.9 !important;
}#main .content-block .cc-hero-lead strong {
    color: #365e50 !important;
}#main .content-block .cc-hero-message {
    display: block !important;

    margin: 0 0 20px !important;
    padding: 15px 17px !important;

    background: rgba(255,255,255,.92) !important;

    border: 1px solid #dce5e1 !important;
    border-radius: 12px !important;
}#main .content-block .cc-hero-message > strong {
    display: block !important;

    margin: 0 0 5px !important;

    color: #365e50 !important;

    font-size: 17px !important;
    line-height: 1.6 !important;
}#main .content-block .cc-hero-message p {
    margin: 0 !important;

    color: #5f6c72 !important;

    font-size: 14px !important;
    line-height: 1.8 !important;
}/* =========================================================
   BUTTON
   ========================================================= */

#main .content-block .cc-hero-actions,
#main .content-block .cc-final-actions {
    display: flex !important;

    flex-wrap: wrap !important;
    gap: 10px !important;

    width: 100% !important;
}#main .content-block .cc-btn {
    display: inline-flex !important;

    align-items: center !important;
    justify-content: center !important;

    min-height: 47px !important;

    padding: 12px 18px !important;

    border-radius: 9px !important;

    font-size: 14px !important;
    font-weight: bold !important;
    line-height: 1.5 !important;

    text-align: center !important;
}#main .content-block .cc-btn:hover,
#main .content-block .cc-school-btn:hover {
    opacity: .88 !important;
}#main .content-block .cc-btn-primary {
    background: #3f6b5b !important;
    border: 1px solid #3f6b5b !important;
    color: #ffffff !important;
}#main .content-block .cc-btn-secondary {
    background: #ffffff !important;
    border: 1px solid #c6d4ce !important;
    color: #365e50 !important;
}/* =========================================================
   SECTION
   ========================================================= */

#main .content-block .cc-section {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 52px 0 !important;
    padding: 0 !important;

    float: none !important;
    clear: both !important;
}#main .content-block h2.cc-section-title,
#main .content-block h1.as-h2.cc-section-title {
    display: block !important;

    width: 100% !important;

    margin: 0 0 18px !important;
    padding: 0 0 10px !important;

    background: none !important;

    border: none !important;
    border-bottom: 3px solid #567a6d !important;
    border-radius: 0 !important;

    color: #27323a !important;

    font-size: 24px !important;
    font-weight: bold !important;
    line-height: 1.5 !important;

    text-align: left !important;
}#main .content-block .cc-section-lead {
    margin: 0 0 20px !important;

    color: #5e6a70 !important;

    font-size: 15px !important;
    line-height: 1.9 !important;
}#main .content-block .cc-section-lead strong {
    color: #365e50 !important;
}#main .content-block .cc-card-title {
    display: block !important;

    margin: 0 0 6px !important;

    color: #27323a !important;

    font-size: 17px !important;
    font-weight: bold !important;
    line-height: 1.5 !important;
}/* =========================================================
   INTRO IMAGE / DEFINITION
   ========================================================= */

#main .content-block .cc-intro-image,
#main .content-block .cc-five-image {
    display: block !important;

    width: 100% !important;

    margin: 0 0 18px !important;

    overflow: hidden !important;

    background: #f5f7f6 !important;

    border: 1px solid #dfe6e3 !important;
    border-radius: 15px !important;
}#main .content-block .cc-intro-image img,
#main .content-block .cc-five-image img {
    width: 100% !important;
    height: auto !important;
}#main .content-block .cc-definition {
    display: block !important;

    padding: 20px !important;

    background: #f5f9f7 !important;

    border: 1px solid #dce7e2 !important;
    border-radius: 15px !important;
}#main .content-block .cc-definition-title {
    display: block !important;

    margin: 0 0 9px !important;

    color: #365e50 !important;

    font-size: 20px !important;
    font-weight: bold !important;
    line-height: 1.55 !important;
}#main .content-block .cc-definition p {
    margin: 0 0 9px !important;

    color: #5f6c72 !important;

    font-size: 14px !important;
    line-height: 1.85 !important;
}#main .content-block .cc-definition p:last-child {
    margin-bottom: 0 !important;
}#main .content-block .cc-definition strong {
    color: #365e50 !important;
}/* =========================================================
   RELATION
   ========================================================= */

#main .content-block .cc-relation-grid {
    display: grid !important;

    grid-template-columns: minmax(0,1fr) 45px minmax(0,1fr) !important;
    gap: 10px !important;

    align-items: center !important;
}#main .content-block .cc-relation-card {
    display: block !important;

    min-width: 0 !important;

    padding: 18px !important;

    background: #ffffff !important;

    border: 1px solid #dfe6e3 !important;
    border-radius: 13px !important;
}#main .content-block .cc-relation-card-accent {
    background: #f5f9f7 !important;
    border-color: #cfddd7 !important;
}#main .content-block .cc-relation-label {
    display: inline-block !important;

    margin: 0 0 7px !important;
    padding: 3px 8px !important;

    background: #edf4f1 !important;

    border-radius: 999px !important;

    color: #52786b !important;

    font-size: 10px !important;
    font-weight: bold !important;
    letter-spacing: .08em !important;
}#main .content-block .cc-relation-card p {
    margin: 0 !important;

    color: #637078 !important;

    font-size: 13px !important;
    line-height: 1.8 !important;
}#main .content-block .cc-relation-card a {
    display: inline-block !important;

    margin: 9px 0 0 !important;

    color: #356452 !important;

    font-size: 12px !important;
    font-weight: bold !important;

    text-decoration: underline !important;
}#main .content-block .cc-relation-arrow {
    color: #6d897e !important;

    font-size: 27px !important;
    font-weight: bold !important;

    text-align: center !important;
}/* =========================================================
   ROLE
   ========================================================= */

#main .content-block .cc-role-grid {
    display: grid !important;

    grid-template-columns: repeat(3, minmax(0,1fr)) !important;
    gap: 10px !important;
}#main .content-block .cc-role-card {
    display: block !important;

    min-width: 0 !important;

    padding: 16px !important;

    background: #ffffff !important;

    border: 1px solid #dfe6e3 !important;
    border-radius: 13px !important;
}#main .content-block .cc-role-no {
    display: inline-flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 36px !important;
    height: 36px !important;

    margin: 0 0 8px !important;

    background: #eaf3ef !important;

    border-radius: 50% !important;

    color: #3f6b5b !important;

    font-size: 11px !important;
    font-weight: bold !important;
}#main .content-block .cc-role-card p {
    margin: 0 !important;

    color: #657178 !important;

    font-size: 13px !important;
    line-height: 1.8 !important;
}/* =========================================================
   PROBLEMS
   ========================================================= */

#main .content-block .cc-problem-grid {
    display: grid !important;

    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    gap: 10px !important;
}#main .content-block .cc-problem-card {
    display: grid !important;

    grid-template-columns: 43px minmax(0,1fr) !important;
    gap: 11px !important;

    min-width: 0 !important;

    padding: 15px !important;

    background: #ffffff !important;

    border: 1px solid #dfe6e3 !important;
    border-radius: 12px !important;
}#main .content-block .cc-problem-icon {
    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 39px !important;
    height: 39px !important;

    background: #eaf3ef !important;

    border-radius: 50% !important;

    color: #3f6b5b !important;

    font-size: 14px !important;
    font-weight: bold !important;
}#main .content-block .cc-problem-card p {
    margin: 0 !important;

    color: #657178 !important;

    font-size: 13px !important;
    line-height: 1.75 !important;
}#main .content-block .cc-problem-card a {
    display: inline-block !important;

    margin: 8px 0 0 !important;

    color: #356452 !important;

    font-size: 12px !important;
    font-weight: bold !important;

    text-decoration: underline !important;
}/* =========================================================
   FLOW
   ========================================================= */

#main .content-block .cc-flow {
    display: grid !important;
    gap: 9px !important;
}#main .content-block .cc-flow-item {
    display: grid !important;

    grid-template-columns: 42px minmax(0,1fr) !important;
    gap: 11px !important;

    padding: 14px 15px !important;

    background: #ffffff !important;

    border: 1px solid #dfe6e3 !important;
    border-radius: 11px !important;
}#main .content-block .cc-flow-no {
    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 36px !important;
    height: 36px !important;

    background: #3f6b5b !important;

    border-radius: 50% !important;

    color: #ffffff !important;

    font-size: 13px !important;
    font-weight: bold !important;
}#main .content-block .cc-flow-item p {
    margin: 0 !important;

    color: #657178 !important;

    font-size: 13px !important;
    line-height: 1.8 !important;
}/* =========================================================
   EXPERIENCE
   ========================================================= */

#main .content-block .cc-experience {
    display: grid !important;

    grid-template-columns: 185px minmax(0,1fr) !important;
    gap: 18px !important;

    align-items: center !important;

    padding: 19px !important;

    background: #f5f9f7 !important;

    border: 1px solid #dce7e2 !important;
    border-radius: 15px !important;
}#main .content-block .cc-experience-main {
    display: block !important;

    padding: 17px 10px !important;

    background: #ffffff !important;

    border: 1px solid #dce5e1 !important;
    border-radius: 12px !important;

    text-align: center !important;
}#main .content-block .cc-experience-main strong {
    display: block !important;

    color: #3f6b5b !important;

    font-size: 28px !important;
    line-height: 1.35 !important;
}#main .content-block .cc-experience-main span {
    display: block !important;

    margin: 4px 0 0 !important;

    color: #66736e !important;

    font-size: 11px !important;
    line-height: 1.55 !important;
}#main .content-block .cc-experience-copy p {
    margin: 0 0 8px !important;

    color: #5f6c72 !important;

    font-size: 14px !important;
    line-height: 1.8 !important;
}#main .content-block .cc-experience-copy p:last-child {
    margin-bottom: 0 !important;
}#main .content-block .cc-trust-grid {
    display: grid !important;

    grid-template-columns: repeat(3, minmax(0,1fr)) !important;
    gap: 9px !important;

    margin: 12px 0 0 !important;
}#main .content-block .cc-trust-card {
    display: block !important;

    min-width: 0 !important;

    padding: 13px !important;

    background: #ffffff !important;

    border: 1px solid #dfe6e3 !important;
    border-radius: 10px !important;
}#main .content-block .cc-trust-card strong {
    display: block !important;

    margin: 0 0 4px !important;

    color: #365e50 !important;

    font-size: 14px !important;
}#main .content-block .cc-trust-card p {
    margin: 0 !important;

    color: #657178 !important;

    font-size: 12px !important;
    line-height: 1.7 !important;
}/* =========================================================
   FIVE ELEMENTS
   ========================================================= */

#main .content-block .cc-five-box {
    display: block !important;

    padding: 19px !important;

    background: #f7f7fa !important;

    border: 1px solid #e0e1e7 !important;
    border-radius: 14px !important;
}#main .content-block .cc-five-title {
    display: block !important;

    margin: 0 0 8px !important;

    color: #48535d !important;

    font-size: 19px !important;
    font-weight: bold !important;
}#main .content-block .cc-five-box p {
    margin: 0 0 9px !important;

    color: #626c74 !important;

    font-size: 14px !important;
    line-height: 1.85 !important;
}#main .content-block .cc-five-box p:last-child {
    margin-bottom: 0 !important;
}#main .content-block .cc-five-box strong {
    color: #3d5960 !important;
}#main .content-block .cc-caution {
    display: block !important;

    margin: 13px 0 0 !important;
    padding: 13px 15px !important;

    background: #fff8ea !important;

    border-left: 5px solid #b98542 !important;
    border-radius: 0 10px 10px 0 !important;

    color: #655f56 !important;

    font-size: 13px !important;
    line-height: 1.75 !important;
}/* =========================================================
   CONSULT
   ========================================================= */

#main .content-block .cc-consult-grid {
    display: grid !important;

    grid-template-columns: repeat(3, minmax(0,1fr)) !important;
    gap: 10px !important;
}#main .content-block .cc-consult-card {
    display: block !important;

    min-width: 0 !important;

    padding: 15px !important;

    background: #ffffff !important;

    border: 1px solid #dfe6e3 !important;
    border-radius: 12px !important;
}#main .content-block .cc-consult-letter {
    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    width: 35px !important;
    height: 35px !important;

    margin: 0 0 8px !important;

    background: #eaf3ef !important;

    border-radius: 50% !important;

    color: #3f6b5b !important;

    font-size: 13px !important;
    font-weight: bold !important;
}#main .content-block .cc-consult-card p {
    margin: 0 !important;

    color: #657178 !important;

    font-size: 13px !important;
    line-height: 1.8 !important;
}#main .content-block .cc-consult-note {
    display: block !important;

    margin: 14px 0 0 !important;
    padding: 14px 16px !important;

    background: #f5f8f6 !important;

    border: 1px solid #dce6e1 !important;
    border-radius: 10px !important;
}#main .content-block .cc-consult-note > strong {
    display: block !important;

    margin: 0 0 4px !important;

    color: #365e50 !important;

    font-size: 14px !important;
}#main .content-block .cc-consult-note p {
    margin: 0 !important;

    color: #5f6c72 !important;

    font-size: 13px !important;
    line-height: 1.75 !important;
}/* =========================================================
   SCHOOL
   ========================================================= */

#main .content-block .cc-school-box {
    display: block !important;

    padding: 20px !important;

    background: #fbf7ef !important;

    border: 1px solid #eadfca !important;
    border-radius: 14px !important;
}#main .content-block .cc-school-title {
    display: block !important;

    margin: 0 0 8px !important;

    color: #604b2d !important;

    font-size: 18px !important;
    font-weight: bold !important;
    line-height: 1.55 !important;
}#main .content-block .cc-school-image {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 0 0 18px !important;
    padding: 0 !important;

    overflow: hidden !important;

    background: #f6f7f5 !important;

    border: 1px solid #e0e4df !important;
    border-radius: 14px !important;

    float: none !important;
    clear: both !important;
}#main .content-block .cc-school-image img {
    display: block !important;

    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
}#main .content-block .cc-school-box p {
    margin: 0 0 9px !important;

    color: #655f57 !important;

    font-size: 14px !important;
    line-height: 1.8 !important;
}#main .content-block .cc-school-btn {
    display: inline-flex !important;

    align-items: center !important;
    justify-content: center !important;

    min-height: 45px !important;

    margin: 7px 0 0 !important;
    padding: 11px 17px !important;

    background: #765d37 !important;

    border-radius: 9px !important;

    color: #ffffff !important;

    font-size: 14px !important;
    font-weight: bold !important;
}/* =========================================================
   FINAL
   ========================================================= */

#main .content-block .cc-final {
    display: block !important;

    width: 100% !important;

    margin: 55px 0 0 !important;
    padding: 30px 23px !important;

    background: #345b4e !important;

    border-radius: 17px !important;

    color: #ffffff !important;

    text-align: center !important;
}#main .content-block .cc-final-inner {
    display: block !important;

    max-width: 630px !important;

    margin: 0 auto !important;
}#main .content-block .cc-final-kicker {
    display: block !important;

    margin: 0 0 6px !important;

    color: #cfe0da !important;

    font-size: 11px !important;
    font-weight: bold !important;
    letter-spacing: .13em !important;
}#main .content-block .cc-final-title {
    display: block !important;

    margin: 0 0 9px !important;

    color: #ffffff !important;

    font-size: 25px !important;
    font-weight: bold !important;
    line-height: 1.55 !important;
}#main .content-block .cc-final p {
    margin: 0 0 18px !important;

    color: #e3ece8 !important;

    font-size: 14px !important;
    line-height: 1.85 !important;
}#main .content-block .cc-final-actions {
    justify-content: center !important;
}#main .content-block .cc-btn-white {
    background: #ffffff !important;
    border: 1px solid #ffffff !important;
    color: #345b4e !important;
}#main .content-block .cc-btn-outline {
    background: transparent !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    color: #ffffff !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media screen and (max-width: 900px) {#main .content-block .cc-role-grid {
        grid-template-columns: 1fr !important;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media screen and (max-width: 787px) {#main .content-block .cc-page {
        width: 100% !important;
    }#main .content-block .cc-hero {
        width: 94% !important;

        margin: 0 auto 38px !important;

        border-radius: 14px !important;
    }#main .content-block .cc-hero-inner {
        padding: 27px 16px 26px !important;
    }#main .content-block h1:where(:not(.as-h2)).cc-hero-title {
        font-size: 25px !important;
        line-height: 1.5 !important;
    }#main .content-block .cc-hero-lead {
        font-size: 14px !important;
        line-height: 1.85 !important;
    }#main .content-block .cc-hero-message > strong {
        font-size: 15px !important;
    }#main .content-block .cc-hero-actions,
#main .content-block .cc-final-actions {
        display: block !important;
    }#main .content-block .cc-btn {
        display: flex !important;

        width: 100% !important;

        margin: 0 0 9px !important;
    }#main .content-block .cc-btn:last-child {
        margin-bottom: 0 !important;
    }#main .content-block .cc-section {
        width: 94% !important;

        margin: 38px auto !important;
    }#main .content-block h2.cc-section-title,
#main .content-block h1.as-h2.cc-section-title {
        font-size: 21px !important;
        line-height: 1.55 !important;
    }#main .content-block .cc-section-lead {
        font-size: 14px !important;
        line-height: 1.85 !important;
    }#main .content-block .cc-relation-grid {
        display: block !important;
    }#main .content-block .cc-relation-card {
        width: 100% !important;
        margin: 0 0 10px !important;
    }#main .content-block .cc-relation-arrow {
        margin: 2px 0 10px !important;
        transform: rotate(90deg) !important;
    }#main .content-block .cc-role-grid,
#main .content-block .cc-problem-grid,
#main .content-block .cc-trust-grid,
#main .content-block .cc-consult-grid {
        display: block !important;
        width: 100% !important;
    }#main .content-block .cc-role-card,
#main .content-block .cc-problem-card,
#main .content-block .cc-trust-card,
#main .content-block .cc-consult-card {
        width: 100% !important;
        max-width: 100% !important;

        margin: 0 0 10px !important;

        float: none !important;
        clear: both !important;
    }#main .content-block .cc-experience {
        display: block !important;
        padding: 16px !important;
    }#main .content-block .cc-experience-main {
        width: 100% !important;
        margin: 0 0 13px !important;
    }#main .content-block .cc-definition,
#main .content-block .cc-five-box,
#main .content-block .cc-school-box {
        padding: 16px 15px !important;
    }#main .content-block .cc-final {
        width: 94% !important;

        margin: 42px auto 0 !important;
        padding: 26px 16px !important;

        border-radius: 14px !important;
    }#main .content-block .cc-final-title {
        font-size: 21px !important;
    }#main .content-block .cc-school-btn {
        display: flex !important;
        width: 100% !important;
    }#main .content-block .cc-school-image {
        margin-bottom: 15px !important;
        border-radius: 11px !important;
    }

}


/* =========================================================
   SMALL MOBILE
   ========================================================= */

@media screen and (max-width: 480px) {#main .content-block h1:where(:not(.as-h2)).cc-hero-title {
        font-size: 23px !important;
    }#main .content-block h2.cc-section-title,
#main .content-block h1.as-h2.cc-section-title {
        font-size: 20px !important;
    }#main .content-block .cc-problem-card {
        grid-template-columns: 39px minmax(0,1fr) !important;
        gap: 9px !important;
        padding: 13px !important;
    }#main .content-block .cc-problem-icon {
        width: 35px !important;
        height: 35px !important;
        font-size: 12px !important;
    }

}
