/* =========================================
   Page: Manuals (School, Company, Coordinator)
   ========================================= */
/* .manual-container はラッパースタイルを .page-content-card に統合済み（HTML側で併用） */

.manual-container h2 {
    font-size: 1.3rem;
    margin-top: 40px;
    padding: 15px;
    border-radius: 10px;
}

.manual-container p,
.manual-container li {
    line-height: 1.8;
    color: #555;
    margin-bottom: 10px;
}

/* Specific H2 Colors */
.h2-school {
    background: #e0f7fa;
    color: #006064;
}

.h2-company {
    background: #ffebee;
    color: #c62828;
}

.h2-coordinator {
    background: #f3e5f5;
    color: #6a1b9a;
}

/* Company Manual QA Section */
.qa-item {
    margin-bottom: 20px;
    border-bottom: 1px solid #eee;
    padding-bottom: 20px;
}

.qa-q {
    font-weight: bold;
    color: var(--primary);
    margin-bottom: 5px;
    display: flex;
    gap: 10px;
    align-items: baseline;
}

.qa-q::before {
    content: "Q.";
    font-size: 1.2rem;
}


/* Coordinator Flow */
.coordinator-flow {
    margin-top: 20px;
}

.coordinator-flow-step {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    margin-bottom: 8px;
    position: relative;
}

.coordinator-flow-step:not(:last-child)::after {
    content: "";
    position: absolute;
    left: 19px;
    top: 40px;
    bottom: -8px;
    width: 2px;
    background: #ce93d8;
}

.coordinator-flow-num {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #ba68c8;
    color: #fff;
    font-weight: bold;
    font-size: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.coordinator-flow-step--highlight .coordinator-flow-num {
    background: #7b1fa2;
    font-size: 0.9rem;
}

.coordinator-flow-body {
    background: #fff;
    border: 1px solid #e1bee7;
    border-radius: 10px;
    padding: 12px 16px;
    flex: 1;
    line-height: 1.7;
    color: #444;
}

.coordinator-flow-body strong {
    color: #6a1b9a;
}

.coordinator-flow-note {
    background: #fce4ec;
    border-left: 3px solid #f06292;
    border-radius: 6px;
    padding: 8px 14px;
    margin-top: 8px;
    font-size: 0.9rem;
    color: #555;
}


/* =========================================
   Manual Pages: Common
   ========================================= */
.section-group-block--lg {
    margin-bottom: 70px;
}

.section-heading-left-border {
    font-size: 1.5rem;
    color: var(--primary);
    border-left: 6px solid var(--primary);
    padding-left: 16px;
    margin-bottom: 35px;
}

.section-heading-left-border--sm {
    margin-bottom: 20px;
}

.manual-intro-box {
    background: #fff8e1;
    border: 2px solid #ffd54f;
    border-radius: 16px;
    padding: 28px 32px;
    margin-bottom: 60px;
    text-align: center;
}

.manual-intro-lead {
    margin: 0 0 10px;
    font-size: 0.95rem;
    color: #555;
}

.manual-intro-headline {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 900;
    color: #d32f2f;
    line-height: 1.5;
}

.manual-intro-sub {
    margin: 10px 0 0;
    font-size: 1.1rem;
    font-weight: bold;
    color: #333;
}

.manual-intro-p {
    font-size: 1.1rem;
    font-weight: bold;
}

.subsection-heading-blue {
    font-size: 1.2rem;
    color: #333;
    background: #f0f9ff;
    padding: 12px 20px;
    border-radius: 10px;
    margin-bottom: 18px;
}

.subsection-heading-blue .heading-note {
    font-size: 0.85rem;
    font-weight: normal;
    color: #666;
    margin-left: 10px;
}

.numbered-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.numbered-list-item {
    display: flex;
    gap: 14px;
    background: #f9f9f9;
    padding: 14px 18px;
    border-radius: 8px;
    align-items: flex-start;
}

.item-badge {
    background: var(--primary);
    color: #fff;
    border-radius: 50%;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8rem;
    font-weight: bold;
    flex-shrink: 0;
}

.supporter-list {
    list-style: none;
    padding: 0;
    margin: 14px 0 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 10px;
}

.supporter-list li {
    background: #f9f9f9;
    padding: 12px 16px;
    border-radius: 8px;
    border: 1px solid #eee;
    font-size: 0.95rem;
    color: #333;
}

.content-ol {
    padding-left: 22px;
    margin: 0;
    line-height: 2;
    color: #444;
    font-size: 0.97rem;
}

.content-ol li {
    margin-bottom: 6px;
}

.content-note {
    font-size: 0.9rem;
    color: #666;
}

.warning-note {
    color: #d32f2f;
    font-weight: bold;
    margin: 0 0 14px;
}

.steps-flex-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.step-flex-item {
    background: #f9f9f9;
    border-radius: 8px;
    padding: 14px 18px;
}

.step-flex-title {
    margin: 0 0 6px;
    font-weight: bold;
    color: #333;
}

.step-flex-body {
    margin: 0;
    font-size: 0.93rem;
    color: #555;
    padding-left: 12px;
}

.section-heading-grey {
    font-size: 1.1rem;
    color: #fff;
    background: #78909c;
    padding: 10px 18px;
    border-radius: 8px 8px 0 0;
    margin: 0;
}

.section-heading-body {
    border: 1px solid #cfd8dc;
    border-top: none;
    border-radius: 0 0 10px 10px;
    padding: 18px 20px;
    margin-bottom: 24px;
}

.warning-text {
    margin: 14px 0 0;
    color: #d32f2f;
    font-size: 0.93rem;
    font-weight: bold;
}

.highlight-box-yellow {
    background: #fff8e1;
    border-left: 5px solid #ffd54f;
    padding: 16px 20px;
    border-radius: 0 10px 10px 0;
    margin-bottom: 24px;
}

.highlight-box-yellow p {
    margin: 0;
}

.highlight-box-yellow p + p {
    margin-top: 6px;
    font-size: 0.95rem;
    color: #555;
}

.role-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.role-list-item {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    background: #f9f9f9;
    padding: 13px 18px;
    border-radius: 8px;
}

.role-list-icon {
    color: var(--primary);
    font-weight: bold;
    flex-shrink: 0;
}

.table-scroll-wrap {
    overflow-x: auto;
}

.flow-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.92rem;
}

.flow-table th,
.flow-table td {
    padding: 12px;
    border: 1px solid #e0e0e0;
    vertical-align: top;
}

.flow-table thead th {
    text-align: center;
    border-color: #ccc;
    font-weight: bold;
    width: 33%;
}

.flow-table thead th:nth-child(2) {
    width: 34%;
}

.flow-table-header--company { background: #f5c518; }
.flow-table-header--center  { background: #a8d5a2; }
.flow-table-header--school  { background: #87ceeb; }

.flow-table-cell--company { background: #fffde7; }
.flow-table-cell--center  { background: #f1f8f0; }
.flow-table-cell--school  { background: #f0f7ff; }

.flow-table .highlight-cell {
    text-align: center;
    font-weight: bold;
    font-size: 1.1rem;
    color: #d32f2f;
}

.pdf-download-box {
    background: #f0f9ff;
    padding: 20px 24px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    gap: 16px;
}

.pdf-icon {
    font-size: 2rem;
    color: #d32f2f;
}

.pdf-icon--word {
    color: #2b579a;
}

.pdf-download-title {
    font-weight: bold;
    color: #333;
    margin-bottom: 4px;
}

.link-underline {
    color: var(--primary);
    font-weight: bold;
    text-decoration: underline;
}

.manual-cta-section {
    text-align: center;
    padding-top: 20px;
    border-top: 1px solid #eee;
}

.manual-cta-section p {
    color: #555;
    margin-bottom: 20px;
}

/* .btn-cta / .btn-cta--sm / .btn-purple / .btn-purple--sm は components.css へ移動済み */

.text-center-block {
    text-align: center;
    margin-top: 50px;
}

.text-center-block--sm {
    margin-top: 15px;
}

.text-bold {
    font-weight: bold;
}

