.concern-catalog { margin: 28px 0 48px; }
.concern-catalog h2, .home-concerns h2 { font-size: 26px; margin: 0 0 12px; }
.concern-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 24px; }
.concern-filters .filter { min-height: 44px; }
.concern-group { margin: 0 0 24px; }
.concern-group h3 { font-size: 18px; margin: 0 0 12px; }
.concern-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.concern-link { display: flex; flex-direction: column; gap: 8px; padding: 18px; border: 1px solid var(--line, #dfd9ce); border-radius: 8px; color: inherit; text-decoration: none; background: var(--paper, #fffdf8); min-width: 0; }
.concern-link strong { font-size: 16px; }
.concern-link span { color: var(--muted, #6e695f); font-size: 13px; line-height: 1.65; overflow-wrap: anywhere; }
.concern-link:hover { border-color: #817454; background: #f4f0e6; }
.concern-link:active { transform: translateY(1px); }
.concern-link:focus-visible { outline: 2px solid #796747; outline-offset: 3px; }
.concern-home-grid { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.concern-home-grid a { min-height: 44px; }
.keyword-service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px 22px; }
.keyword-service-card { min-width: 0; display: block; color: inherit; text-decoration: none; }
.keyword-service-art { aspect-ratio: 4 / 5; overflow: hidden; border-radius: 9px; background: #e8e0d6; }
.keyword-service-art img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; transition: transform .2s ease; }
.keyword-service-copy { padding: 17px 2px 0; }
.keyword-service-copy h3 { margin: 0 0 7px; font-size: 23px; line-height: 1.35; letter-spacing: -.04em; }
.keyword-service-copy p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; word-break: keep-all; }
.keyword-service-action { display: flex; align-items: center; justify-content: space-between; margin-top: 14px; padding-top: 11px; border-top: 1px solid var(--line); font-size: 13px; color: #79624d; }
.keyword-service-action > span { font-size: 17px; }
.keyword-service-card:hover .keyword-service-art img { transform: scale(1.025); }
.keyword-service-card:focus-visible { outline: 2px solid #796747; outline-offset: 5px; border-radius: 9px; }
.keyword-more { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 27px 0 0; padding-top: 20px; border-top: 1px solid var(--line); }
.keyword-more > span { font-size: 13px; color: var(--muted); margin-right: 7px; }
.keyword-more a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 14px; border: 1px solid var(--line); border-radius: 8px; text-decoration: none; font-size: 13px; }
.keyword-more a:hover { background: #f0e9df; }
.keyword-catalog-page .concern-catalog { margin-top: 25px; }
.concern-change { margin-bottom: 22px; border-bottom: 1px solid var(--line); }
.concern-change > summary { cursor: pointer; min-height: 44px; padding: 10px 0; color: var(--muted); font-size: 13px; }
.concern-change[open] .concern-picker { margin-top: 12px; }
.concern-picker, .concern-context { margin: 0 0 24px; min-width: 0; }
.concern-context textarea, .concern-picker select { width: 100%; min-width: 0; }
.concern-partner-choice { padding: 16px 0; margin-bottom: 12px; }
.concern-partner-choice p { font-size: 13px; line-height: 1.6; color: var(--muted, #6e695f); margin: 8px 0 0; }
.concern-question { margin: 8px 0 24px; }
.concern-question > label { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
.concern-question-optional { font-size: 13px; font-weight: 400; color: var(--muted, #6e695f); }
.field.concern-question textarea { min-height: 124px; padding: 13px 14px; border-color: #dfcdbf; border-radius: 8px; background: var(--surface); font-size: 16px; }
.field.concern-question textarea::placeholder { font-size: 14px; }
.concern-question-foot { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; }
.concern-question-foot > :last-child { margin-left: auto; white-space: nowrap; font-variant-numeric: tabular-nums; }
.concern-summary { padding: 8px 0; margin: 24px 0; overflow-wrap: anywhere; }
.concern-summary h2 { font-size: 17px; margin: 0 0 12px; }
.concern-summary dl { margin: 0; }
.concern-summary dt { font-size: 13px; color: var(--muted, #6e695f); margin-top: 12px; }
.concern-summary dd { margin: 4px 0 0; white-space: pre-wrap; line-height: 1.7; }
.library-concern { font-size: 13px; color: #756747; }
.concern-library-filter { display: flex; gap: 8px; flex-wrap: wrap; }
.concern-library-filter select { min-width: 0; max-width: 100%; flex: 1 1 170px; }
@media (max-width: 800px) { .concern-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 960px) { .keyword-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .keyword-service-grid { gap: 26px 14px; }
  .keyword-service-copy { padding-top: 12px; }
  .keyword-service-copy h3 { font-size: 21px; }
  .keyword-service-copy p { font-size: 13px; }
  .keyword-service-action { margin-top: 10px; font-size: 13px; }
  .home-concerns .section-heading { gap: 10px; align-items: baseline; }
  .home-concerns .section-heading p { font-size: 13px; }
  .home-concerns .section-heading .text-link { font-size: 13px; white-space: nowrap; }
  .keyword-more { gap: 6px; }
  .keyword-more > span { width: 100%; margin-bottom: 4px; }
  .keyword-more a { font-size: 13px; padding: 8px 12px; }
}
@media (max-width: 420px) { .concern-link { padding: 14px 12px; } .concern-grid { gap: 8px; } .concern-catalog h2, .home-concerns h2 { font-size: 22px; } }
@media (prefers-reduced-motion: reduce) { .concern-link:active { transform: none; } .keyword-service-art img { transition: none; } }
