:root {
    --color-primary: #1f4e5f;
    --color-primary-dark: #16374300;
    --color-accent: #c0392b;
    --color-bg: #f7f8fa;
    --color-card: #ffffff;
    --color-border: #e0e3e7;
    --color-text: #2a2e33;
    --color-text-light: #6b7280;
    --radius: 6px;
    --max-width: 1080px;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;
    background: var(--color-bg);
    color: var(--color-text);
    line-height: 1.75;
}

a { color: var(--color-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

.wrap {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 20px;
}

/* Header */
.site-header {
    background: var(--color-primary);
    color: #fff;
}
.site-header .wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    padding-top: 14px;
    padding-bottom: 14px;
}
.site-header .logo {
    color: #fff;
    font-size: 1.3rem;
    font-weight: 700;
}
.main-nav a {
    color: #eef4f6;
    margin-left: 18px;
    font-size: 0.95rem;
}
.main-nav a:first-child { margin-left: 0; }

/* Main content */
.main-content {
    padding: 30px 20px 60px;
    min-height: 60vh;
}

h1 { font-size: 1.6rem; margin-top: 0; }
h2 { font-size: 1.3rem; border-left: 5px solid var(--color-primary); padding-left: 10px; }
h3 { font-size: 1.1rem; }

/* Cards */
.card {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 20px;
    margin-bottom: 20px;
}

.case-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.case-list li {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 16px 18px;
    margin-bottom: 12px;
}
.case-list .case-meta {
    font-size: 0.85rem;
    color: var(--color-text-light);
    margin-bottom: 4px;
}
.case-list .case-title a {
    font-size: 1.05rem;
    font-weight: 700;
}
.case-list .case-excerpt {
    margin: 6px 0 0;
    color: var(--color-text);
}
.badge {
    display: inline-block;
    background: #eef4f6;
    color: var(--color-primary);
    border-radius: 3px;
    padding: 2px 8px;
    font-size: 0.78rem;
    margin-right: 6px;
}

/* Category grid on top page */
.category-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
    list-style: none;
    padding: 0;
}
.category-grid li {
    background: var(--color-card);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    text-align: center;
}
.category-grid a {
    display: block;
    padding: 16px 10px;
    font-weight: 600;
}

/* Search box */
.search-box {
    display: flex;
    gap: 8px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}
.search-box input[type="text"] {
    flex: 1;
    min-width: 200px;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 1rem;
}
.search-box select {
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
}

/* Forms */
form.form-card { max-width: 780px; }
fieldset {
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 16px 18px;
    margin-bottom: 20px;
}
legend { font-weight: 700; padding: 0 8px; color: var(--color-primary); }
.form-row { margin-bottom: 14px; }
.form-row label {
    display: block;
    font-weight: 600;
    margin-bottom: 4px;
    font-size: 0.92rem;
}
.form-row .hint {
    display: block;
    font-weight: 400;
    color: var(--color-text-light);
    font-size: 0.8rem;
    margin-top: 2px;
}
input[type="text"], input[type="email"], input[type="password"], input[type="file"],
textarea, select {
    width: 100%;
    padding: 9px 10px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 0.98rem;
    font-family: inherit;
    background: #fff;
}
textarea { resize: vertical; }
.inline-fields { display: flex; gap: 14px; flex-wrap: wrap; }
.inline-fields > div { flex: 1; min-width: 220px; }
.checkbox-row { display: flex; align-items: center; gap: 8px; }
.checkbox-row input { width: auto; }

button, .btn {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: var(--radius);
    padding: 11px 22px;
    font-size: 1rem;
    cursor: pointer;
}
button:hover, .btn:hover { opacity: 0.9; text-decoration: none; }
.btn-danger { background: var(--color-accent); }
.btn-secondary { background: #6b7280; }

/* Alerts */
.alert {
    padding: 12px 16px;
    border-radius: var(--radius);
    margin-bottom: 18px;
}
.alert-success { background: #e6f4ea; color: #256029; border: 1px solid #b7e1c1; }
.alert-error { background: #fdecea; color: #9c2b1f; border: 1px solid #f5c2bd; }

/* Case detail */
.detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin: 20px 0;
}
@media (max-width: 640px) {
    .detail-grid { grid-template-columns: 1fr; }
}
.detail-block h3 {
    margin-bottom: 6px;
    color: var(--color-primary);
}
.detail-block dl { margin: 0; }
.detail-block dt { font-size: 0.82rem; color: var(--color-text-light); margin-top: 8px; }
.detail-block dd { margin: 2px 0 0; }

.image-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 10px;
    margin: 16px 0;
}
.image-gallery a img {
    width: 100%;
    height: 130px;
    object-fit: cover;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
}

.pdf-link {
    display: inline-block;
    background: #fdecea;
    color: var(--color-accent);
    border: 1px solid #f5c2bd;
    padding: 10px 16px;
    border-radius: var(--radius);
    margin: 10px 0;
    font-weight: 600;
}

/* Pagination */
.pagination { margin-top: 24px; text-align: center; }
.pagination a, .pagination span {
    display: inline-block;
    padding: 6px 12px;
    margin: 0 2px;
    border-radius: var(--radius);
    border: 1px solid var(--color-border);
    background: #fff;
}
.pagination .current { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.pagination .ellipsis { border: none; background: none; }

/* Footer */
.site-footer {
    background: #eef1f4;
    border-top: 1px solid var(--color-border);
    padding: 24px 0;
    font-size: 0.85rem;
    color: var(--color-text-light);
}
.site-footer a { color: var(--color-text-light); }
.footer-links { margin: 6px 0; }
.disclaimer { font-size: 0.78rem; line-height: 1.6; }

.text-block { white-space: pre-wrap; word-wrap: break-word; }

.category-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
}
.category-tabs a {
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    padding: 6px 14px;
    font-size: 0.85rem;
}
.category-tabs a.active {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

.breadcrumb {
    font-size: 0.85rem;
    color: var(--color-text-light);
    margin-bottom: 14px;
}


.card dt{
    font-weight:bold;
    color:#b7b7b7;
}

.card dd{
    margin-left:0px
}

.card .text-block{
    line-height:110%;
}