/*
Theme Name: Child Hello Elementor
Theme URI: https://elementor.com/hello-theme/
Description: Child theme for Hello Elementor
Author: Your Name
Author URI: https://yourwebsite.com/
Template: hello-elementor
Version: 1.1.0
*/

@import url('../hello-elementor/style.css');

/* column layout fix */
#content.site-main.column {
    display: grid !important;
    grid-template-columns: 1fr 300px;
    column-gap: 60px;
    row-gap: 0;
    align-items: start;
}

#content.site-main.column > *:not(.column-sidebar) {
    grid-column: 1;
}

#content.site-main.column > .column-sidebar {
    grid-column: 2;
    grid-row: 1 / span 100;
}

@media screen and (max-width: 768px) {
    #content.site-main.column {
        display: block !important;
    }
}

/* h1/h2/h3 font-size fix */
#content.site-main.column > h1.column-detail-title {
    font-size: 2.5rem !important;
    margin-top: 64px !important;
    margin-bottom: 64px !important;
}

#content.site-main.column > h2 {
    font-size: 2rem !important;
}

#content.site-main.column .column-detail-body h2 {
    font-size: 2rem !important;
}

#content.site-main.column h3 {
    font-size: 1.5rem !important;
}

@media screen and (max-width: 768px) {
    #content.site-main.column > h1.column-detail-title {
        font-size: 1.5rem !important;
    }
    #content.site-main.column > h2 {
        font-size: 1.5rem !important;
    }
    #content.site-main.column .column-detail-body h2 {
        font-size: 1.5rem !important;
    }
    #content.site-main.column h3 {
        font-size: 1.25rem !important;
    }
}

/* related posts: restore grid layout */
#content.site-main.column .post-list {
    padding: 1rem;
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 40px;
}

#content.site-main.column .post-list .post-list-card {
    border: 1px solid #000;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    background-color: #FFFFFF;
}

#content.site-main.column .post-list .post-list-card a {
    text-decoration: none;
    color: inherit;
}

#content.site-main.column .post-list .post-list-card .post-thumbnail img {
    width: 100%;
    height: auto;
    aspect-ratio: 4/3;
    object-fit: cover;
}

#content.site-main.column .post-list .post-list-card .card-content {
    padding: 1rem;
    padding-bottom: 0;
    display: block;
}

#content.site-main.column .post-list .post-list-card .card-content .card-title {
    font-size: 1.25rem;
    margin-bottom: 0.5rem;
}

#content.site-main.column .post-list .post-list-card .card-content .card-excerpt {
    font-size: 1rem;
    color: #666;
}

#content.site-main.column .post-list .post-list-card .info {
    padding: 1rem;
    padding-top: 0;
}

#content.site-main.column .post-list .post-list-card .info .category {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
}

#content.site-main.column .post-list .post-list-card .info .category a {
    font-size: 0.875rem;
    background-color: #D6EAA9;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
}

@media screen and (max-width: 768px) {
    #content.site-main.column .post-list {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
        gap: 20px;
        padding: 0;
    }
}
/* article body images: fix selector (column.css uses .page-content parent which doesn't exist in DOM) */
#content.site-main.column .column-detail-body img {
    width: 100%;
    height: auto;
    object-fit: cover;
    margin-bottom: 1rem;
}
/* article top category badges */
#content.site-main.column .page-content .category a {
    display: inline-block;
    font-size: 0.875rem;
    background-color: #D6EAA9;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    text-decoration: none;
    color: inherit;
}
/* table of contents: fix selector (column.css uses .page-content parent which doesn't exist in DOM) */
#content.site-main.column .column-detail-body .table-of-contents {
    padding: 2rem;
    margin: 2rem 0;
    background: rgb(226, 241, 215);
}

#content.site-main.column .column-detail-body .table-of-contents h2 {
    font-size: 1.5rem !important;
    margin-top: 0 !important;
    margin-bottom: 1rem !important;
    border-bottom: none;
}

#content.site-main.column .column-detail-body .table-of-contents > ul > li > a {
    font-weight: bold;
}

#content.site-main.column .column-detail-body .table-of-contents ul {
    margin: 0 !important;
    padding-left: 1.5rem;
    list-style-type: none;
}

#content.site-main.column .column-detail-body .table-of-contents ul li {
    margin-bottom: 0.5rem !important;
    line-height: 1.6 !important;
}

#content.site-main.column .column-detail-body .table-of-contents ul li a {
    text-decoration: none;
    color: rgb(0, 0, 0);
}

#content.site-main.column .column-detail-body .table-of-contents ul li a:hover {
    text-decoration: underline;
    color: var(--e-global-color-accent);
}
/* related posts bottom margin */
#content.site-main.column .related-posts {
    margin-bottom: 3rem;
}
/* column-detail-body: white background to cover body's column-bg.png pattern */
#content.site-main.column .column-detail-body {
    background-color: #FFFFFF !important;
    background-image: none !important;
}
/* sidebar side-card h3: override global h3 size (sidebar cards are narrow) */
#content.site-main.column .column-sidebar .side-card h3 {
    font-size: 0.875rem !important;
}

/* article body text spacing */
#content.site-main.column .column-detail-body p {
    line-height: 1.8 !important;
    margin-bottom: 1.5rem !important;
}

#content.site-main.column .column-detail-body h2 {
    margin-top: 3rem !important;
    margin-bottom: 1rem !important;
}

#content.site-main.column .column-detail-body h3 {
    margin-top: 2rem !important;
    margin-bottom: 0.75rem !important;
}

#content.site-main.column .column-detail-body ul,
#content.site-main.column .column-detail-body ol {
    margin-bottom: 1.5rem !important;
}

#content.site-main.column .column-detail-body li {
    margin-bottom: 0.5rem !important;
    line-height: 1.8 !important;
}

/* category badge hover: unify with site link hover color */
#content.site-main.column .page-content .category a:hover,
#content.site-main.column .post-list .post-list-card .info .category a:hover {
    color: var(--e-global-color-accent) !important;
}

/* 公開日・更新日アイコン */
#content.site-main.column .page-content .column-detail-info {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

#content.site-main.column .page-content .date,
#content.site-main.column .page-content .date-updated {
    font-size: 0.875rem;
    color: #555;
    display: flex;
    align-items: center;
    gap: 0.3rem;
}

#content.site-main.column .page-content .date i,
#content.site-main.column .page-content .date-updated i {
    font-size: 0.875rem;
    color: #888;
}


/* FAQ Q/A アイコン */
#content.site-main.column .column-detail-body .faq-item {
    padding: 1.25rem 0;
    border-bottom: 1px solid #e5e5e5;
}
#content.site-main.column .column-detail-body .faq-item:last-child {
    border-bottom: none;
}
#content.site-main.column .column-detail-body .faq-item h3.faq-question {
    display: flex !important;
    align-items: flex-start !important;
    gap: 1rem !important;
    font-size: 1rem !important;
    margin-top: 0 !important;
    margin-bottom: 0.75rem !important;
    font-weight: 700;
    line-height: 1.6 !important;
}
#content.site-main.column .column-detail-body .faq-item h3.faq-question::before {
    content: "Q";
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    width: 2rem;
    height: 2rem;
    background-color: #2c3e50;
    color: #fff;
    font-weight: 700;
    font-size: 0.9rem;
    flex-shrink: 0;
    margin-top: 0.15rem;
    border-radius: 2px;
}
#content.site-main.column .column-detail-body .faq-item .faq-answer {
    display: flex !important;
    align-items: flex-start !important;
    gap: 1rem !important;
    margin-top: 0 !important;
}
#content.site-main.column .column-detail-body .faq-item .faq-answer::before {
    content: "A";
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    width: 2rem;
    height: 2rem;
    background-color: #fff;
    color: #2c3e50;
    font-weight: 700;
    font-size: 0.9rem;
    border: 2px solid #2c3e50;
    flex-shrink: 0;
    margin-top: 0.15rem;
    border-radius: 2px;
}
#content.site-main.column .column-detail-body .faq-item .faq-answer p {
    margin-bottom: 0 !important;
    line-height: 1.8 !important;
}

/* この記事でわかること（.point-box）アイコン・背景 */
#content.site-main.column .column-detail-body .point-box {
    background: #eefcfa !important;
    border-left: 4px solid #1BEACD !important;
    padding: 1.25rem 1.5rem !important;
    margin: 1.5rem 0 !important;
    border-radius: 0 6px 6px 0 !important;
}
#content.site-main.column .column-detail-body .point-box .point-box-title {
    font-weight: 700 !important;
    font-size: 1rem !important;
    margin-bottom: 0.75rem !important;
    margin-top: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    color: #1a1a2e !important;
}
#content.site-main.column .column-detail-body .point-box .point-box-title::before {
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    content: "\f08d";
    color: #1BEACD;
    font-size: 1rem;
    transform: rotate(-45deg);
    display: inline-block;
    flex-shrink: 0;
}
#content.site-main.column .column-detail-body .point-box ul {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0 !important;
}
#content.site-main.column .column-detail-body .point-box ul li {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.5rem !important;
    line-height: 1.7 !important;
    margin-bottom: 0.3rem !important;
    padding: 0 !important;
}
#content.site-main.column .column-detail-body .point-box ul li::before {
    content: "●";
    color: #1BEACD;
    font-size: 0.55rem;
    margin-top: 0.5rem;
    flex-shrink: 0;
}