@import url(../../../css/kurenai.css);

:root {
    --accent: #45b035;
}

body {
    font-feature-settings: "palt" 1;
}

.green-border {border: 2px solid var(--accent);}
.green-url{color: var(--accent); font-weight: 600;}
.green-url:hover {color: #ff8500;}

.contents .date {
    display: inline-block;
    color:var(--accent);
    font-size: 1.2rem;
    font-weight: 500;
    padding: 3px 14px;
    margin: 10px 0 8px;
    letter-spacing: 0.06em;
    border-radius: 999px;
    margin-bottom: 10px;
    text-align: center;
}

/* Section title */
.contents h1.info-section-title {
    background-color: var(--accent) !important;
    color: #fff !important;
    font-size: 2rem !important;
    font-weight: 300 !important;
    padding: 6px 16px !important;
    margin: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
    border-left: none !important;
}



/* Two-column layout */
.info-row {
    display: flex;
    gap: 0;
    align-items: flex-start;
    margin-bottom: 0;
}

.info-col {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.info-col-left {
    flex: 1;
    border-right: 1px dotted #9c9c9c;
    padding: 10px 14px 14px;
}

.info-col-right {
    flex: 1;
    border-left: none;
    padding: 0;
}

.info-col-left h2 {
    margin: 0;
    margin-top: 10px;
    margin-bottom: 10px;
    font-size: 1.7rem;
    line-height: 1.25;
    color: #45b035;
}

.info-col-left p {
    margin: 0;
    margin-bottom: 10px;
    line-height: 1.8;
    font-size: 1.5rem !important;
}

/* Contact box */
.contact-box {
    border: 1px solid #4d4d4d;
    background: #f3f3f3;
    padding: 10px 12px;
    margin-top: 16px;
}

.contact-title {
    color: #000;
    font-size: 1.5rem !important;
    text-align: left !important;
    font-weight: 600;
    margin-bottom: 4px;
    line-height: 1.5 !important;
}

/* TOPICS box */
.topics-box {
    background: #fff;
}

.topics-title {
    background: #fff;
    color: #000 !important;
    font-weight: 700;
    padding: 8px 10px;
    margin: 0 !important;
    margin-top: 12px !important;
    font-size: 1.7rem !important;
    line-height: 1.2;
}

.topics-content {
    padding: 10px 0px 0px;
}

.topics-list {
    list-style: none;
    padding-left: 0;
    margin-bottom: 12px;
}

.topics-list li {
    position: relative;
    padding-left: 1.2em;
    margin-bottom: 8px;
    font-size: 1.55rem;
    line-height: 1.5;
}

.topics-list li::before {
    content: "●";
    color: var(--accent);
    position: absolute;
    left: 0;
    top: 0;
}

.footnote {
    font-size: 0.95rem;
    color: #333;
    line-height: 1.5;
    margin-top: 8px;
}

.topics-img {
    max-width: 100%;
    height: auto;
    display: block;
}

.topics-content p {
    margin: 0 !important;
    margin-left: 10px !important;
    margin-right: 10px !important;
    margin-bottom: 8px;
    line-height: 1.6;
}

.topics-content .green-url {
    font-size: 1.35rem;
    word-break: break-all;
}

@media (max-width: 768px) {
    .info-row {
        flex-direction: column;
    }
    .info-col-left,
    .info-col-right {
        flex: 1 1 100%;
        width: 100%;
        box-sizing: border-box;
    }
    .topics-title {
        font-size: 1.45rem;
    }
    .topics-list li {
        font-size: 1.2rem;
    }

    /* Force mobile layout for TOPICS bullet text even if other CSS interferes */
    .info-col-right .topics-content {
        padding: 10px 12px 12px !important;
    }

    .info-col-right .topics-list {
        margin: 0 0 10px 0 !important;
        padding: 0 !important;
    }

    .info-col-right .topics-list li {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
        font-size: 1.5rem !important;
        line-height: 1.55 !important;
        margin: 0 0 8px 0 !important;
        padding-left: 1.2em !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
    }
}

/* Green divider */
hr.green-hr {
    border: none;
    border-top: 2px solid var(--accent);
    margin: 20px 0;
}

/* Force hr rendering inside info contents regardless of other CSS */
.contents hr {
    display: block !important;
    height: 0 !important;
    border: 0 !important;
    border-top: 1px solid #d7d7d7 !important;
    margin: 18px 0 !important;
    padding: 0 !important;
    background: transparent !important;
    clear: both !important;
}

.contents hr.green-hr {
    border: 0 !important;
    border-top: 1px solid var(--accent) !important;
    margin: 20px 0 !important;
}

.inquiry {width: 96%; background-color: #9e9e9e21; border: 1px solid #9e9e9e21; margin: auto; padding: 1% 0;}
.inquiry .title {color: #ff8500; font-weight: 600;}

@media screen and (max-width: 400px)  {
    .inquiry p{font-size: 12px;}
}

.gallery-row {
    display: flex;
    gap: 12px;
    margin-top: 0;
}

.gallery-col {
    flex: 0 0 calc(50% - 10px);
    width: calc(50% - 10px);
    text-align: center;
}

.gallery-col img {
    width: 100%;
    height: auto;
    display: block;
    border: 1px solid #c7c7c7;
}

.gallery-col .caption {
    margin: 4px 0 0;
    font-size: 1.2rem;
    line-height: 1.35;
    text-align: left;
}

.alumni-row {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 10px;
}

.alumni-main {
    width: 100%;
}

.contents .alumni-main-title {
    margin: 10px 0px 3px 15px !important;
    font-size: 1.7rem !important;
    line-height: 1.25 !important;
    color: var(--accent);
}

.alumni-main-cols {
    display: flex;
    gap: 0;
    align-items: flex-start;
}

.alumni-main-col {
    flex: 1;
    min-width: 0;
    padding: 10px 14px 14px !important;
    margin: 0 !important;
}

.alumni-main-col:first-child {
    border-right: 1px dotted #9c9c9c;
}

.alumni-main-col p {
    margin: 0 0 5px 0 !important;
    line-height: 1.78 !important;
    font-size: 1.5rem !important;
}

.alumni-side {
    display: flex;
    flex-direction: row;
    gap: 20px;
    align-items: flex-start;
    border-top: 1px dotted #9c9c9c;
    padding-top: 14px;
}

.alumni-side-item {
    flex: 1;
    min-width: 0;
    border-top: 2px solid var(--accent);
    padding: 10px 14px 14px;
}

.alumni-side h2 {
    color: var(--accent);
    font-size: 1.85rem;
    margin: 0 !important;
    margin-bottom: 8px !important;
    line-height: 1.3;
}

.alumni-side p {
    margin: 0 0 10px 0 !important;
    line-height: 1.65;
}

.alumni-side .green-hr {
    margin: 10px 0;
}

.photo-small {
    width: 50%;
    height: auto;
    display: block;
    border: 1px solid #c7c7c7;
    margin: 0 auto;
}

.alumni-main p.caption {
    text-align: center !important;
    margin-bottom: 2px !important;
}

@media (max-width: 768px) {
    .alumni-main-cols {
        flex-direction: column;
        gap: 0px;
    }
    .alumni-side {
        flex-direction: column;
        gap: 10px;
    }
    .gallery-row {
        flex-direction: column;
        gap: 10px;
    }
    .gallery-col {
        flex: 1 1 100%;
        max-width: 100%;
        width: 100%;
    }
    .gallery-col .caption {
        text-align: center;
    }
}
