/* Search */
.search-intro { background: #fff; border-bottom: 1px solid var(--line); }
.search-shell { width: min(980px, calc(100% - 40px)); margin-inline: auto; }
.search-intro .search-shell { padding: 34px 0 26px; }
.search-title-row {
  margin-bottom: 22px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
}
.search-title-row h1 { margin: 0; font-size: clamp(1.75rem, 3vw, 2.3rem); line-height: 1.22; letter-spacing: -.035em; }
.search-title-row p { margin: 7px 0 0; color: var(--ink-600); font-size: .94rem; }
.emergency-shortcut { margin-top: 5px; color: var(--danger); font-size: .82rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.emergency-shortcut:hover { text-decoration: underline; text-underline-offset: 3px; }
.search-form { padding: 18px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--canvas); }
.search-row { display: grid; grid-template-columns: 220px minmax(280px, 1fr) 104px; gap: 12px; align-items: end; }
.search-submit { min-height: 46px; }
.advanced-search { margin-top: 13px; }
.advanced-search summary { width: max-content; color: var(--blue); font-size: .8rem; font-weight: 700; cursor: pointer; list-style: none; }
.advanced-search summary::-webkit-details-marker { display: none; }
.advanced-search summary::after { content: "＋"; margin-left: 6px; }
.advanced-search[open] summary::after { content: "－"; }
.advanced-grid {
  margin-top: 14px;
  padding-top: 14px;
  display: grid;
  grid-template-columns: 1fr 1fr auto auto;
  gap: 12px 18px;
  align-items: end;
  border-top: 1px solid var(--line);
}
.search-disclaimer { margin: 12px 0 0; color: var(--ink-600); font-size: .76rem; }
.results-section { padding: 24px 0 8px; }
.result-toolbar {
  margin-bottom: 10px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}
.result-toolbar h2 { margin: 0; font-size: 1rem; }
.result-toolbar p { margin: 3px 0 0; color: var(--ink-600); font-size: .78rem; }
.result-count { color: var(--ink-600); font-size: .8rem; }
.result-count strong { color: var(--ink-950); font-size: 1rem; }
.result-list { border: 1px solid var(--line); border-radius: var(--radius-md); background: #fff; overflow: hidden; }
.institution-card {
  padding: 17px 18px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  border-bottom: 1px solid var(--line);
  background: #fff;
  animation: row-in .18s var(--ease) both;
}
.institution-card:last-child { border-bottom: 0; }
.institution-card h3 { margin: 6px 0 5px; font-size: 1rem; line-height: 1.35; }
.institution-meta { display: flex; flex-wrap: wrap; gap: 6px 11px; color: var(--ink-600); font-size: .75rem; }
.status-pill { color: var(--ink-700); font-weight: 700; }
.status-pill.open { color: var(--accent); }
.status-pill.closed { color: var(--danger); }
.institution-address { margin: 0; color: var(--ink-700); font-size: .84rem; }
.institution-contact { margin: 4px 0 0; color: var(--ink-600); font-size: .78rem; }
.institution-actions { display: flex; align-items: center; gap: 7px; }
.empty-state { padding: 44px 24px; text-align: center; }
.empty-state strong { display: block; font-size: .96rem; }
.empty-state p { margin: 6px auto 0; max-width: 520px; color: var(--ink-600); font-size: .82rem; }
.loading { padding: 16px; display: grid; gap: 9px; }
.skeleton { height: 68px; border-radius: 8px; background: linear-gradient(90deg, #eef2f4 25%, #f8fafb 45%, #eef2f4 65%); background-size: 220% 100%; animation: shimmer 1.2s linear infinite; }

/* Content pages */
.page-hero { background: #fff; border-bottom: 1px solid var(--line); }
.page-hero .container { padding: 40px 0 28px; }
.page-title { margin: 0; max-width: 760px; font-size: clamp(1.8rem, 3vw, 2.35rem); line-height: 1.22; letter-spacing: -.035em; }
.page-lead { margin: 10px 0 0; max-width: 720px; color: var(--ink-600); font-size: .93rem; }
.content-section { padding: 30px 0 10px; }
.article-shell { max-width: 800px; }
.article-card, .contact-grid, .faq-list, .emergency-layout { background: transparent; }
.article-card { padding: 0; border: 0; box-shadow: none; }
.article-intro { margin: 0 0 24px; color: var(--ink-700); }
.article-section { padding: 0 0 24px; }
.article-section + .article-section { padding-top: 24px; border-top: 1px solid var(--line); }
.article-section h2 { margin: 0 0 8px; font-size: 1.05rem; letter-spacing: -.02em; }
.article-section h3 { margin: 18px 0 6px; font-size: .95rem; }
.article-section p, .article-section li { color: var(--ink-700); font-size: .88rem; }
.article-section p { margin: 0 0 9px; }
.article-section ul, .article-section ol { margin: 8px 0 0; padding-left: 1.2rem; }
.article-section a { color: var(--blue); text-underline-offset: 3px; }
.article-meta { margin-top: 22px; color: var(--ink-500); font-size: .74rem; }
.info-grid { margin: 0 0 26px; display: grid; grid-template-columns: repeat(3, 1fr); border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden; }
.info-card { padding: 15px 16px; border-right: 1px solid var(--line); background: #fff; }
.info-card:last-child { border-right: 0; }
.info-card strong { display: block; margin-bottom: 4px; font-size: .8rem; }
.info-card p { margin: 0; color: var(--ink-600); font-size: .78rem; }
.notice { padding: 13px 15px; border-left: 3px solid var(--accent); background: var(--accent-soft); color: var(--ink-800); font-size: .84rem; }
.notice.warning { border-color: var(--warning); background: var(--warning-soft); }
.notice.danger { border-color: var(--danger); background: var(--danger-soft); }
.contact-grid { display: grid; gap: 0; border-top: 1px solid var(--line); }
.contact-card { padding: 22px 0; border-bottom: 1px solid var(--line); }
.contact-card h2 { margin: 0 0 6px; font-size: 1rem; }
.contact-card p { margin: 0 0 14px; color: var(--ink-700); font-size: .86rem; }
.copy-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.faq-list { border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { padding: 17px 0; display: flex; align-items: center; justify-content: space-between; gap: 18px; cursor: pointer; list-style: none; font-size: .9rem; font-weight: 720; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "＋"; color: var(--ink-500); }
.faq-item[open] summary::after { content: "－"; }
.faq-item p { margin: 0; padding: 0 0 17px; color: var(--ink-700); font-size: .86rem; }
.emergency-page .page-hero { background: #fffafa; }
.emergency-actions { margin-top: 20px; display: flex; gap: 9px; flex-wrap: wrap; }
.emergency-layout { display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 28px; }
.emergency-list { border-top: 1px solid var(--line); }
.emergency-step { padding: 19px 0; border-bottom: 1px solid var(--line); }
.emergency-step h2 { margin: 0 0 5px; font-size: .98rem; }
.emergency-step p { margin: 0; color: var(--ink-700); font-size: .85rem; }
.call-card { align-self: start; padding: 20px; border: 1px solid #ead2cf; border-radius: var(--radius-md); background: #fff; }
.call-card strong { display: block; font-size: .82rem; }
.call-number { margin: 10px 0 14px; color: var(--danger); font-size: 2.7rem; font-weight: 800; line-height: 1; letter-spacing: -.05em; }
@keyframes row-in { from { opacity: 0; transform: translateY(3px); } to { opacity: 1; transform: none; } }
@keyframes shimmer { to { background-position: -220% 0; } }
