*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Meiryo', sans-serif; line-height: 1.6; color: #1A1A1A; background: #FAFAFA; }
img { max-width: 100%; height: auto; }
a { color: #2B4C7E; }
.container { max-width: 1200px; margin: 0 auto; padding: 0 16px; }
.site-header, .site-footer { border-bottom: 1px solid #ddd; }
.site-footer { border-top: 1px solid #ddd; border-bottom: 0; margin-top: 48px; }
section { padding: 24px 0; border-bottom: 1px dashed #ccc; }
.card-grid { display: flex; flex-wrap: wrap; gap: 16px; }
.card { border: 1px solid #ddd; background: #fff; padding: 16px; flex: 1 1 280px; }
.btn { display: inline-block; padding: 10px 20px; background: #2B4C7E; color: #fff; text-decoration: none; }
.badge { display: inline-block; padding: 2px 8px; border: 1px solid #C4826E; margin: 2px; font-size: 0.85em; }
table.company-info { border-collapse: collapse; width: 100%; }
table.company-info th, table.company-info td { border: 1px solid #ddd; padding: 8px; text-align: left; }
.header-upper { font-size: 0.8em; text-align: right; }
.header-main { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.footer-cols { display: flex; flex-wrap: wrap; gap: 32px; }
