
.tc-list { display: flex; flex-direction: column; gap: 20px; }
.tc-list .tc-item { display: grid; grid-template-columns: 170px 1fr; align-items: center; }
.tc-item .tc-label { font-size: 2rem; font-weight: 700; color: #111; word-break: keep-all; line-height: 1.5; }

.tc-item .tc-box { background: #edf0f9; border-radius: 14px; padding: 18px 28px; font-size: 2rem; line-height: 1.6; color: #222; text-align: center; word-break: keep-all; }
.tc-item .tc-box.bg-none { padding: 0; background: transparent; }

.tc-box .tc-esg {display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; justify-content: center; }
.tc-esg .tc-esg-item { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 16px; gap: 8px; border-radius: 8px; }
.tc-esg .tc-esg-item.e { border: 1px solid var(--green); }
.tc-esg .tc-esg-item.s { border: 1px solid var(--blue); }
.tc-esg .tc-esg-item.g { border: 1px solid var(--orange); }
.tc-esg-item .esg-key { font-size: 2rem; font-weight: 900; line-height: 1; }
.tc-esg-item.e .esg-key { color: var(--green); }
.tc-esg-item.s .esg-key { color: var(--blue); }
.tc-esg-item.g .esg-key { color: var(--orange); }
.tc-esg-item .esg-desc { font-size:1.7rem; color: #333; line-height: 1.5; font-weight: 400; }

.tc-box .tc-dir { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.tc-dir .tc-dir-item { border-radius: 8px; padding: 16px 12px; font-size: 1.7rem; font-weight: 400; color: #fff; text-align: center; line-height: 1.6; }
.tc-dir .tc-dir-item:nth-child(1) { background: var(--theme); }
.tc-dir .tc-dir-item:nth-child(2) { background: var(--blue); }
.tc-dir .tc-dir-item:nth-child(3) { background: var(--pink); }

.tc-box .svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.svc-grid .svc-cell { border: 1px solid var(--line); border-radius: 8px;}
.svc-grid .svc-cell.type-diag { border-color: var(--orange); }
.svc-cell .svc-head { font-size: 1.7rem; font-weight: 700; text-align: center; padding: 10px; background: var(--orange);  letter-spacing: 3px; color: #fff; }
.svc-cell.type-train { position: relative; border-color: var(--green); } 
.svc-cell.type-train::after { content: ''; position: absolute; bottom: -12px; left: 50%; transform: translateX(-50%); width: 0; height: 0; border-left: 12px solid transparent; border-right: 12px solid transparent; border-top: 12px solid var(--green); }
.svc-cell.type-train .svc-head { background: var(--green); color: #fff; }
.svc-cell.type-sup .svc-head { background: var(--blue); color: #fff; }
.svc-cell.type-sup { border-color: var(--blue); }
.svc-cell .svc-body { padding: 14px 12px; }
.svc-body .svc-main { font-size: 1.6rem; text-align: center; line-height: 1.6; padding: 10px 8px; margin-bottom: 10px; border-radius: 4px; background: #ffefc8; }
.svc-cell.type-train .svc-body .svc-main { background: #e1f1e4; }
.svc-cell.type-sup .svc-body .svc-main { background: #e8eef8; }
.svc-body .svc-list { list-style: none; padding: 0; margin: 0; font-size: 1.6rem; display: flex; flex-direction: column; gap: 4px; text-align: left; padding-left: 15px; }
.svc-list > li { padding-left: 14px; position: relative; line-height: 1.6; }
.svc-list > li::before { content: '■'; position: absolute; left: 0; font-size: 0.8rem; top: 5px; }
.svc-list .svc-sub-list { list-style: none; padding: 0; margin: 4px 0 0 4px; }
.svc-sub-list li { padding-left: 14px; position: relative; font-size: 1.5rem; color: #555; }
.svc-sub-list li::before { content: '-'; position: absolute; left: 4px; }

.tc-box .train-list { display: flex; flex-direction: column; gap: 12px; width: 100%; }
.train-list .train-item { display: flex; gap: 10px; }
.train-list .train-plus { font-size: 1.8rem; font-weight: 700; color: #555; padding-left: 6px; }
.train-item .train-label { flex-shrink: 0; font-size: 1.7rem; font-weight: 700; border: 1px solid var(--green); padding: 10px 14px; border-radius: 4px; text-align: center; word-break: keep-all; line-height: 1.5; color: var(--green); }
.train-item .train-desc { font-size: 1.6rem; line-height: 1.7; background-color: #e1f1e4; padding: 10px 14px; border-radius: 4px; width: 100%; text-align: left; }

@media (max-width: 900px) {
	.tc-esg-item .esg-key { font-size: 1.7rem; }
}
@media (max-width: 768px) {
	.tc-list { gap: 35px; }
	.tc-list .tc-item { grid-template-columns: 90px 1fr; }
	.tc-item .tc-label { font-size: 1.5rem; }
	.tc-item .tc-box { font-size: 1.5rem; padding: 14px 18px; }
	.tc-box .tc-esg { gap: 8px; }
	.tc-esg .tc-esg-item { padding: 20px 10px; }
	.tc-esg-item .esg-key { font-size: 1.5rem; }
	.tc-esg-item .esg-desc { font-size: 1.5rem; }
	.tc-dir .tc-dir-item { font-size: 1.4rem; padding: 12px 8px; }
	.tc-box .svc-grid { grid-template-columns: 1fr; }
    .tc-box .tc-dir { gap: 8px; }
	.svc-cell .svc-body { background: #fff; border-radius: 0 0 8px 8px; }
	.svc-cell .svc-head { border-radius: 8px 8px 0 0; }
	.svc-cell.type-train::after { bottom: -285px; }
	.svc-cell.type-train::before { content: ''; width: 2px; height: 285px; background: var(--green); position: absolute; top: 100%; left: 50%; transform: translateX(-50%); z-index: -1;}
}
@media (max-width: 520px) {
	.tc-section-title { font-size: 1.8rem; }
    .tc-item .tc-label br { display: none; }
	.tc-list .tc-item { grid-template-columns: 1fr; gap: 6px; }
	.tc-item .tc-box { text-align: left; border-radius: 8px; padding: 12px 15px; font-size: 1.4rem; line-height: 1.6; }
	.tc-item .tc-box br { display: none; }
	.tc-box .tc-esg { grid-template-columns: 1fr; }
	.tc-box .tc-dir { grid-template-columns: 1fr; }
    
    .svc-cell .svc-head { font-size: 1.5rem; padding: 5px 10px; }
    .svc-body .svc-main { font-size: 1.4rem; font-weight: 500; }
    .svc-body .svc-list { font-size: 1.4rem; padding-left: 5px; }
    
	.train-list .train-item { flex-direction: column; align-items: flex-start; gap: 0; }
    .train-item .train-label { font-size: 1.5rem; width: 100%; border-radius: 4px 4px 0 0; }
    .train-item .train-desc { border: 1px solid var(--green); font-size: 1.4rem; border-top: 0; border-radius: 0 0 4px 4px; text-align: center; background: #f2f7f3; }
}
