/* Hallmark · pre-emit critique: P5 H5 E4 S5 R5 V4 */
/* Hallmark · genre: editorial · macrostructure: Long Document · tone: utilitarian · anchor hue: QOL blue
 * contrast: pass · honest: pass · chrome: pass · tokens: pass · icons: pass
 */

:root {
  --osaka-ink: #17324d;
  --osaka-blue: #1769aa;
  --osaka-blue-deep: #0f4f82;
  --osaka-paper: #fff;
  --osaka-soft: #eef7fc;
  --osaka-rule: #bfd8e8;
  --osaka-muted: #536b7b;
  --osaka-open-bg: #e5f4ec;
  --osaka-open-ink: #185c38;
  --osaka-none-bg: #f2f3f5;
  --osaka-none-ink: #3f4a53;
  --osaka-focus: #a55b00;
  --osaka-xs: .5rem;
  --osaka-sm: .75rem;
  --osaka-md: 1rem;
  --osaka-lg: 1.5rem;
  --osaka-radius: .75rem;
}

.osaka-subsidy-page .prefecture-subsidy-hero {
  border-block-end: 1px solid var(--osaka-rule);
  background: var(--osaka-soft);
}

.osaka-subsidy-page .prefecture-subsidy-hero h1,
.osaka-subsidy-page .section-heading {
  color: var(--osaka-ink);
  font-style: normal;
  overflow-wrap: anywhere;
  min-width: 0;
}

.osaka-subsidy-page .osaka-conclusion,
.osaka-subsidy-page .osaka-warning {
  border: 1px solid var(--osaka-rule);
  border-radius: var(--osaka-radius);
  background: var(--osaka-soft);
  padding: var(--osaka-lg);
}

.osaka-subsidy-page .osaka-eyebrow {
  margin: 0 0 var(--osaka-xs);
  color: var(--osaka-blue-deep);
  font-weight: 800;
}

.osaka-subsidy-page .osaka-conclusion .section-heading,
.osaka-subsidy-page .osaka-warning .section-heading {
  margin-block-start: 0;
}

.osaka-subsidy-page .osaka-key-points {
  display: grid;
  gap: var(--osaka-sm);
  margin-block-end: 0;
  padding-inline-start: var(--osaka-lg);
}

.osaka-subsidy-page .answer-target {
  border-inline-start: .35rem solid var(--osaka-blue);
  border-radius: 0 .5rem .5rem 0;
  background: var(--osaka-soft);
  color: var(--osaka-ink);
  padding: var(--osaka-lg);
}

.osaka-subsidy-page .prefecture-equipment-grid {
  grid-template-columns: minmax(0, 1fr);
}

.osaka-subsidy-page .osaka-status {
  display: inline-flex;
  min-height: 2rem;
  max-width: 100%;
  align-items: center;
  border-radius: 999px;
  padding: .3rem var(--osaka-sm);
  font-size: .9rem;
  font-weight: 800;
  line-height: 1.35;
  white-space: normal;
}

.osaka-subsidy-page .osaka-status.is-open {
  background: var(--osaka-open-bg);
  color: var(--osaka-open-ink);
}

.osaka-subsidy-page .osaka-status.is-none,
.osaka-subsidy-page .osaka-status.is-check {
  background: var(--osaka-none-bg);
  color: var(--osaka-none-ink);
}

.osaka-subsidy-page .osaka-facts {
  margin-block: var(--osaka-lg);
}

.osaka-subsidy-page .osaka-facts > div {
  display: grid;
  gap: var(--osaka-xs);
  border-block-start: 1px solid var(--osaka-rule);
  padding-block: var(--osaka-md);
}

.osaka-subsidy-page .osaka-facts dt {
  color: var(--osaka-ink);
  font-weight: 800;
}

.osaka-subsidy-page .osaka-facts dd { margin: 0; }

.osaka-subsidy-page .osaka-municipality-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--osaka-sm);
  padding: 0;
  list-style: none;
}

.osaka-subsidy-page .osaka-municipality-links a {
  display: flex;
  min-height: 44px;
  align-items: center;
  border-block-end: 1px solid var(--osaka-rule);
  color: var(--osaka-blue-deep);
  font-weight: 700;
}

.osaka-subsidy-page .prefecture-official-link {
  color: var(--osaka-blue-deep);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: .1em;
  text-underline-offset: .2em;
  overflow-wrap: anywhere;
}

.osaka-subsidy-page .prefecture-note,
.osaka-subsidy-page .prefecture-source-date {
  color: var(--osaka-muted);
  font-size: .95rem;
}

.osaka-subsidy-page a:focus-visible,
.osaka-subsidy-page summary:focus-visible,
.osaka-subsidy-page .table-scroll:focus-visible,
.osaka-subsidy-page button:focus-visible {
  outline: 3px solid var(--osaka-focus);
  outline-offset: 3px;
}

.osaka-subsidy-page .faq-item summary { color: var(--osaka-ink); }

.osaka-subsidy-page .prefecture-final-cta .btn {
  min-height: 44px;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

.osaka-subsidy-page .table-scroll {
  max-width: 100%;
  overflow: visible;
}

.osaka-subsidy-page .prefecture-program-table,
.osaka-subsidy-page .prefecture-program-table tbody,
.osaka-subsidy-page .prefecture-program-table tr,
.osaka-subsidy-page .prefecture-program-table th,
.osaka-subsidy-page .prefecture-program-table td {
  display: block;
  width: 100%;
}

.osaka-subsidy-page .prefecture-program-table { min-width: 0; }

.osaka-subsidy-page .prefecture-program-table thead {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.osaka-subsidy-page .prefecture-program-table tr {
  margin-block-end: var(--osaka-md);
  border: 1px solid var(--osaka-rule);
  border-radius: var(--osaka-radius);
  background: var(--osaka-paper);
}

.osaka-subsidy-page .prefecture-program-table th,
.osaka-subsidy-page .prefecture-program-table td {
  box-sizing: border-box;
  border: 0;
  border-block-end: 1px solid var(--osaka-rule);
  overflow-wrap: anywhere;
  padding: var(--osaka-sm) var(--osaka-md);
}

.osaka-subsidy-page .prefecture-program-table tr > :last-child { border-block-end: 0; }

.osaka-subsidy-page .prefecture-program-table th[scope="row"] {
  background: var(--osaka-soft);
  color: var(--osaka-ink);
}

.osaka-subsidy-page .prefecture-program-table td::before {
  display: block;
  margin-block-end: var(--osaka-xs);
  color: var(--osaka-muted);
  font-size: .82rem;
  font-weight: 800;
}

.osaka-subsidy-page .prefecture-program-table td:nth-child(2)::before { content: "制度の種類"; }
.osaka-subsidy-page .prefecture-program-table td:nth-child(3)::before { content: "現在の状況"; }
.osaka-subsidy-page .prefecture-program-table td:nth-child(4)::before { content: "対象・確認先"; }
.osaka-subsidy-page .prefecture-program-table td:nth-child(5)::before { content: "確認日"; }

@media (min-width: 40rem) {
  .osaka-subsidy-page .prefecture-equipment-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .osaka-subsidy-page .prefecture-equipment-grid article:last-child { grid-column: 1 / -1; }
  .osaka-subsidy-page .osaka-facts > div { grid-template-columns: minmax(9rem, .35fr) minmax(0, 1fr); }
  .osaka-subsidy-page .osaka-municipality-links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 769px) {
  .osaka-subsidy-page .table-scroll { overflow-x: auto; }
  .osaka-subsidy-page .prefecture-program-table { display: table; min-width: 760px; }
  .osaka-subsidy-page .prefecture-program-table thead {
    position: static;
    display: table-header-group;
    width: auto;
    height: auto;
    overflow: visible;
    clip-path: none;
    white-space: normal;
  }
  .osaka-subsidy-page .prefecture-program-table tbody { display: table-row-group; }
  .osaka-subsidy-page .prefecture-program-table tr { display: table-row; }
  .osaka-subsidy-page .prefecture-program-table th,
  .osaka-subsidy-page .prefecture-program-table td {
    display: table-cell;
    width: auto;
    border: revert;
  }
  .osaka-subsidy-page .prefecture-program-table td::before { display: none; content: none; }
}

@media (prefers-reduced-motion: reduce) {
  .osaka-subsidy-page *,
  .osaka-subsidy-page *::before,
  .osaka-subsidy-page *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}
