.wpcf7 .screen-reader-response {
position: absolute;
overflow: hidden;
clip: rect(1px, 1px, 1px, 1px);
clip-path: inset(50%);
height: 1px;
width: 1px;
margin: -1px;
padding: 0;
border: 0;
word-wrap: normal !important;
word-break: normal !important;
}
.wpcf7 .hidden-fields-container {
display: none;
}
.wpcf7 form .wpcf7-response-output {
margin: 2em 0.5em 1em;
padding: 0.2em 1em;
border: 2px solid #00a0d2; }
.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
display: none;
}
.wpcf7 form.sent .wpcf7-response-output {
border-color: #46b450; }
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
border-color: #dc3232; }
.wpcf7 form.spam .wpcf7-response-output {
border-color: #f56e28; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
border-color: #ffb900; }
.wpcf7-form-control-wrap {
position: relative;
}
.wpcf7-not-valid-tip {
color: #dc3232; font-size: 1em;
font-weight: normal;
display: block;
}
.use-floating-validation-tip .wpcf7-not-valid-tip {
position: relative;
top: -2ex;
left: 1em;
z-index: 100;
border: 1px solid #dc3232;
background: #fff;
padding: .2em .8em;
width: 24em;
}
.wpcf7-list-item {
display: inline-block;
margin: 0 0 0 1em;
}
.wpcf7-list-item-label::before,
.wpcf7-list-item-label::after {
content: " ";
}
.wpcf7-spinner {
visibility: hidden;
display: inline-block;
background-color: #23282d; opacity: 0.75;
width: 24px;
height: 24px;
border: none;
border-radius: 100%;
padding: 0;
margin: 0 24px;
position: relative;
}
form.submitting .wpcf7-spinner {
visibility: visible;
}
.wpcf7-spinner::before {
content: '';
position: absolute;
background-color: #fbfbfc; top: 4px;
left: 4px;
width: 6px;
height: 6px;
border: none;
border-radius: 100%;
transform-origin: 8px 8px;
animation-name: spin;
animation-duration: 1000ms;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
@media (prefers-reduced-motion: reduce) {
.wpcf7-spinner::before {
animation-name: blink;
animation-duration: 2000ms;
}
}
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes blink {
from {
opacity: 0;
}
50% {
opacity: 1;
}
to {
opacity: 0;
}
}
.wpcf7 [inert] {
opacity: 0.5;
}
.wpcf7 input[type="file"] {
cursor: pointer;
}
.wpcf7 input[type="file"]:disabled {
cursor: default;
}
.wpcf7 .wpcf7-submit:disabled {
cursor: not-allowed;
}
.wpcf7 input[type="url"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"] {
direction: ltr;
}
.wpcf7-reflection > output {
display: list-item;
list-style: none;
}
.wpcf7-reflection > output[hidden] {
display: none;
}*, *::before, *::after {
box-sizing: border-box;
}
html {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
line-height: 1.6;
color: #0f172a;
background-color: #f8fafc;
-webkit-text-size-adjust: 100%;
}
body {
margin: 0;
padding: 0;
min-height: 100vh;
display: flex;
flex-direction: column;
}
a {
color: #1d4ed8;
text-decoration: underline;
text-decoration-thickness: 1px;
text-underline-offset: 2px;
}
a:hover {
color: #1e40af;
text-decoration-thickness: 2px;
}
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
outline: 3px solid #2563eb;
outline-offset: 2px;
}
.kjn-skip-link {
position: absolute;
top: -100px;
left: 10px;
background: #0f172a;
color: #ffffff;
padding: 8px 16px;
z-index: 9999;
text-decoration: none;
font-weight: 600;
border-radius: 4px;
}
.kjn-skip-link:focus {
top: 10px;
} .kjn-container {
width: 100%;
max-width: 1080px;
margin: 0 auto;
padding: 0 16px;
}
@media (min-width: 768px) {
.kjn-container {
padding: 0 24px;
}
}
.kjn-main {
flex: 1 0 auto;
padding: 24px 0 48px;
} .kjn-header {
background: #ffffff;
border-bottom: 2px solid #0284c7;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.kjn-header__inner {
display: flex;
flex-direction: column;
padding-top: 12px;
padding-bottom: 12px;
gap: 12px;
}
@media (min-width: 768px) {
.kjn-header__inner {
flex-direction: row;
justify-content: space-between;
align-items: center;
padding-top: 16px;
padding-bottom: 16px;
}
}
.kjn-header__branding {
display: flex;
flex-direction: column;
}
.kjn-header__logo-link {
font-size: 1.25rem;
font-weight: 800;
color: #0f172a;
text-decoration: none;
letter-spacing: -0.02em;
}
.kjn-header__tagline {
font-size: 0.75rem;
color: #64748b;
margin-top: 2px;
}
.kjn-header__nav {
display: flex;
flex-wrap: wrap;
gap: 8px;
}
.kjn-header__nav-link {
display: inline-flex;
align-items: center;
padding: 6px 12px;
font-size: 0.875rem;
font-weight: 600;
color: #334155;
text-decoration: none;
border-radius: 6px;
background: #f1f5f9;
min-height: 40px;
}
.kjn-header__nav-link:hover {
background: #e2e8f0;
color: #0f172a;
}
.kjn-header__nav-link.is-active {
background: #0284c7;
color: #ffffff;
} .kjn-badge {
display: inline-flex;
align-items: center;
padding: 3px 10px;
font-size: 0.8125rem;
font-weight: 700;
line-height: 1.2;
border-radius: 4px;
border: 1px solid transparent;
letter-spacing: 0.02em;
}
.kjn-badge--open {
background-color: #ecfdf5;
color: #065f46;
border-color: #a7f3d0;
}
.kjn-badge--deadline-soon {
background-color: #fffbeb;
color: #92400e;
border-color: #fde68a;
box-shadow: 0 0 0 1px #f59e0b;
}
.kjn-badge--ongoing {
background-color: #eff6ff;
color: #1e40af;
border-color: #bfdbfe;
}
.kjn-badge--scheduled {
background-color: #faf5ff;
color: #6b21a8;
border-color: #e9d5ff;
}
.kjn-badge--closed {
background-color: #f1f5f9;
color: #64748b;
border-color: #cbd5e1;
}
.kjn-badge--unknown {
background-color: #f8fafc;
color: #475569;
border-color: #e2e8f0;
} .kjn-btn {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 10px 18px;
font-size: 0.9375rem;
font-weight: 600;
line-height: 1.4;
border-radius: 6px;
text-decoration: none;
border: 1px solid transparent;
cursor: pointer;
min-height: 44px;
transition: background 0.15s ease, border-color 0.15s ease;
}
.kjn-btn--primary {
background: #0284c7;
color: #ffffff;
border-color: #0284c7;
}
.kjn-btn--primary:hover {
background: #0369a1;
color: #ffffff;
}
.kjn-btn--secondary {
background: #ffffff;
color: #0284c7;
border-color: #0284c7;
}
.kjn-btn--secondary:hover {
background: #f0f9ff;
color: #0369a1;
}
.kjn-btn--ghost {
background: transparent;
color: #475569;
border-color: #cbd5e1;
}
.kjn-btn--ghost:hover {
background: #f1f5f9;
color: #0f172a;
}
.kjn-btn--outline {
background: #ffffff;
color: #0369a1;
border: 1px solid #bae6fd;
font-size: 0.875rem;
padding: 8px 14px;
font-weight: 600;
}
.kjn-btn--outline:hover {
background: #f0f9ff;
border-color: #0284c7;
color: #0284c7;
text-decoration: none;
}
.kjn-calendar-actions {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 12px;
}
.kjn-tag {
display: inline-block;
padding: 2px 8px;
font-size: 0.75rem;
font-weight: 600;
border-radius: 3px;
background: #e2e8f0;
color: #334155;
}
.kjn-tag--area {
background: #e0f2fe;
color: #0369a1;
}
.kjn-tag--type {
background: #f1f5f9;
color: #475569;
} .kjn-card-list {
display: flex;
flex-direction: column;
gap: 16px;
margin: 20px 0;
}
.kjn-card {
background: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 8px;
padding: 16px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
display: flex;
flex-direction: column;
gap: 12px;
position: relative;
}
@media (min-width: 768px) {
.kjn-card {
padding: 20px 24px;
}
}
.kjn-card.kjn-badge--deadline-soon {
border-left: 5px solid #d97706;
}
.kjn-card.kjn-badge--open {
border-left: 5px solid #059669;
}
.kjn-card.kjn-badge--ongoing {
border-left: 5px solid #2563eb;
}
.kjn-card.kjn-badge--scheduled {
border-left: 5px solid #7c3aed;
}
.kjn-card.kjn-badge--closed {
border-left: 5px solid #94a3b8;
background: #fafafa;
}
.kjn-card__header {
display: flex;
flex-direction: column;
gap: 8px;
}
@media (min-width: 640px) {
.kjn-card__header {
flex-direction: row;
justify-content: space-between;
align-items: center;
}
}
.kjn-card__status-group {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 8px;
}
.kjn-card__deadline {
font-size: 0.9375rem;
color: #0f172a;
}
.kjn-card__deadline-label {
font-size: 0.8125rem;
color: #64748b;
margin-right: 4px;
}
.kjn-card__meta-area {
display: flex;
gap: 6px;
flex-wrap: wrap;
}
.kjn-card__title {
font-size: 1.125rem;
font-weight: 700;
line-height: 1.45;
margin: 0;
word-break: break-word;
}
.kjn-card__title a {
color: #0f172a;
text-decoration: none;
}
.kjn-card__title a:hover {
color: #0284c7;
text-decoration: underline;
}
.kjn-card__dl {
display: grid;
grid-template-columns: 80px 1fr;
gap: 6px 12px;
font-size: 0.875rem;
margin: 0;
background: #f8fafc;
padding: 10px 14px;
border-radius: 6px;
}
.kjn-card__dl dt {
color: #64748b;
font-weight: 600;
}
.kjn-card__dl dd {
margin: 0;
color: #1e293b;
word-break: break-word;
}
.kjn-card__footer {
display: flex;
justify-content: flex-end;
margin-top: 4px;
}
.kjn-card__footer .kjn-btn {
width: 100%;
}
@media (min-width: 640px) {
.kjn-card__footer .kjn-btn {
width: auto;
}
}
.kjn-icon-arrow {
margin-left: 6px;
display: inline-block;
} .kjn-hero {
background: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 8px;
padding: 24px 20px;
margin-bottom: 28px;
}
@media (min-width: 768px) {
.kjn-hero {
padding: 32px 36px;
}
}
.kjn-hero__title {
font-size: 1.5rem;
font-weight: 800;
color: #0f172a;
margin: 0 0 6px 0;
letter-spacing: -0.02em;
}
@media (min-width: 768px) {
.kjn-hero__title {
font-size: 1.75rem;
}
}
.kjn-hero__lead {
font-size: 0.9375rem;
color: #475569;
margin: 0 0 20px 0;
}
.kjn-stats {
display: grid;
grid-template-columns: 1fr;
gap: 12px;
}
@media (min-width: 640px) {
.kjn-stats {
grid-template-columns: repeat(3, 1fr);
}
}
.kjn-stat-box {
background: #f8fafc;
border: 1px solid #e2e8f0;
border-radius: 8px;
padding: 14px 16px;
text-decoration: none;
color: inherit;
display: flex;
flex-direction: column;
justify-content: space-between;
transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.kjn-stat-box:hover {
transform: translateY(-2px);
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.07);
border-color: #cbd5e1;
}
.kjn-stat-box__label {
font-size: 0.8125rem;
font-weight: 600;
color: #64748b;
}
.kjn-stat-box__number {
font-size: 1.75rem;
font-weight: 800;
color: #0f172a;
line-height: 1.2;
margin-top: 4px;
}
.kjn-stat-box--open .kjn-stat-box__number { color: #059669; }
.kjn-stat-box--deadline .kjn-stat-box__number { color: #d97706; }
.kjn-stat-box--scheduled .kjn-stat-box__number { color: #7c3aed; } .kjn-section {
margin-bottom: 36px;
}
.kjn-section__header {
display: flex;
justify-content: space-between;
align-items: baseline;
border-bottom: 2px solid #0f172a;
padding-bottom: 8px;
margin-bottom: 16px;
}
.kjn-section__title {
font-size: 1.25rem;
font-weight: 700;
margin: 0;
color: #0f172a;
}
.kjn-section__link {
font-size: 0.875rem;
font-weight: 600;
}
.kjn-pref-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
gap: 10px;
}
.kjn-pref-btn {
background: #ffffff;
border: 1px solid #cbd5e1;
border-radius: 6px;
padding: 12px 14px;
text-decoration: none;
color: #0f172a;
font-weight: 600;
display: flex;
justify-content: space-between;
align-items: center;
min-height: 48px;
}
.kjn-pref-btn:hover {
background: #f0f9ff;
border-color: #0284c7;
color: #0284c7;
}
.kjn-pref-btn__count {
background: #e2e8f0;
font-size: 0.75rem;
padding: 2px 6px;
border-radius: 10px;
color: #334155;
} .kjn-detail {
background: #ffffff;
border: 1px solid #e2e8f0;
border-radius: 8px;
padding: 20px 16px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
@media (min-width: 768px) {
.kjn-detail {
padding: 32px 40px;
}
}
.kjn-detail__header {
border-bottom: 1px solid #e2e8f0;
padding-bottom: 20px;
margin-bottom: 24px;
}
.kjn-detail__top-meta {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 10px;
margin-bottom: 12px;
}
.kjn-detail__title {
font-size: 1.375rem;
font-weight: 800;
line-height: 1.35;
margin: 0 0 12px 0;
color: #0f172a;
}
@media (min-width: 768px) {
.kjn-detail__title {
font-size: 1.75rem;
}
}
.kjn-detail__org {
font-size: 0.9375rem;
color: #475569;
}
.kjn-detail__org strong {
color: #0f172a;
} .kjn-verified-badge {
display: inline-flex;
align-items: center;
background: #f8fafc;
border: 1px solid #cbd5e1;
border-radius: 4px;
padding: 4px 10px;
font-size: 0.8125rem;
color: #475569;
margin-top: 10px;
} .kjn-detail-block {
margin-bottom: 32px;
}
.kjn-detail-block__title {
font-size: 1.125rem;
font-weight: 700;
color: #0f172a;
border-left: 4px solid #0284c7;
padding-left: 10px;
margin: 0 0 14px 0;
} .kjn-table {
width: 100%;
border-collapse: collapse;
font-size: 0.875rem;
margin-bottom: 16px;
background: #ffffff;
border: 1px solid #e2e8f0;
}
.kjn-table th, .kjn-table td {
padding: 10px 14px;
border-bottom: 1px solid #e2e8f0;
text-align: left;
vertical-align: top;
}
.kjn-table th {
background: #f8fafc;
font-weight: 600;
color: #475569;
width: 28%;
}
.kjn-table td {
color: #0f172a;
} .kjn-methods-grid {
display: grid;
grid-template-columns: 1fr;
gap: 12px;
}
@media (min-width: 640px) {
.kjn-methods-grid {
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
}
.kjn-method-card {
background: #f8fafc;
border: 1px solid #cbd5e1;
border-radius: 6px;
padding: 14px 16px;
display: flex;
flex-direction: column;
gap: 8px;
}
.kjn-method-card__head {
display: flex;
justify-content: space-between;
align-items: center;
}
.kjn-method-card__type {
font-weight: 700;
font-size: 0.9375rem;
color: #0f172a;
}
.kjn-method-card__deadline {
font-size: 0.875rem;
color: #1e293b;
}
.kjn-method-card__deadline strong {
color: #b45309;
}
.kjn-method-card__link {
margin-top: 6px;
} .kjn-table-wrap {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
border: 1px solid #e2e8f0;
border-radius: 6px;
margin-bottom: 16px;
}
.kjn-table-wrap .kjn-table {
border: none;
margin: 0;
}
.kjn-table-wrap th {
white-space: nowrap;
width: auto;
} .kjn-notice {
background: #eff6ff;
border: 1px solid #bfdbfe;
border-radius: 6px;
padding: 14px 16px;
font-size: 0.875rem;
color: #1e3a8a;
margin-bottom: 20px;
}
.kjn-notice--warning {
background: #fffbeb;
border-color: #fde68a;
color: #92400e;
}
.kjn-notice--ended {
background: #fef2f2;
border-color: #fecaca;
color: #991b1b;
} .kjn-official-box {
background: #f0fdf4;
border: 2px solid #86efac;
border-radius: 8px;
padding: 20px;
margin: 28px 0;
}
.kjn-official-box__title {
font-size: 1.0625rem;
font-weight: 700;
color: #166534;
margin: 0 0 8px 0;
}
.kjn-official-box__desc {
font-size: 0.875rem;
color: #15803d;
margin: 0 0 14px 0;
}
.kjn-official-box__links {
display: flex;
flex-wrap: wrap;
gap: 10px;
} .kjn-breadcrumbs {
font-size: 0.8125rem;
color: #64748b;
margin-bottom: 16px;
}
.kjn-breadcrumbs__list {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-wrap: wrap;
align-items: center;
}
.kjn-breadcrumbs__item {
display: inline-flex;
align-items: center;
}
.kjn-breadcrumbs__item::after {
content: ">";
margin: 0 8px;
color: #94a3b8;
font-size: 0.75rem;
}
.kjn-breadcrumbs__item:last-child::after {
display: none;
}
.kjn-breadcrumbs__item a {
color: #475569;
text-decoration: none;
}
.kjn-breadcrumbs__item a:hover {
color: #0284c7;
text-decoration: underline;
}
.kjn-breadcrumbs__item span {
color: #0f172a;
font-weight: 600;
} .kjn-empty-state {
background: #ffffff;
border: 1px dashed #cbd5e1;
border-radius: 8px;
padding: 36px 20px;
text-align: center;
margin: 24px 0;
}
.kjn-empty-state__icon {
font-size: 2rem;
color: #64748b;
margin-bottom: 8px;
}
.kjn-empty-state__title {
font-size: 1.125rem;
font-weight: 700;
color: #0f172a;
margin: 0 0 8px 0;
}
.kjn-empty-state__message {
font-size: 0.9375rem;
color: #64748b;
max-width: 520px;
margin: 0 auto 20px;
line-height: 1.5;
}
.kjn-empty-state__actions {
display: flex;
justify-content: center;
gap: 10px;
flex-wrap: wrap;
} .kjn-footer {
background: #1e293b;
color: #94a3b8;
font-size: 0.8125rem;
padding: 32px 0 24px;
margin-top: auto;
}
.kjn-footer__disclaimer {
background: #0f172a;
border-radius: 6px;
padding: 12px 16px;
margin-bottom: 20px;
color: #cbd5e1;
line-height: 1.5;
}
.kjn-footer__disclaimer strong {
color: #ffffff;
}
.kjn-footer__bottom {
display: flex;
flex-direction: column;
gap: 12px;
border-top: 1px solid #334155;
padding-top: 16px;
}
@media (min-width: 640px) {
.kjn-footer__bottom {
flex-direction: row;
justify-content: space-between;
align-items: center;
}
}
.kjn-footer__copy {
margin: 0;
}
.kjn-footer__nav {
display: flex;
gap: 14px;
list-style: none;
padding: 0;
margin: 0;
}
.kjn-footer__nav a {
color: #cbd5e1;
text-decoration: none;
}
.kjn-footer__nav a:hover {
color: #ffffff;
text-decoration: underline;
}