.competitor-overview { margin: 56px 0; padding: 32px 0; border-top: 1px solid #aaa; }
.competitor-overview > header { max-width: 80ch; }
.competitor-overview h2 { font-size: clamp(1.7rem,3vw,2.6rem); letter-spacing: -.04em; margin: 12px 0; }
.competitor-overview p { line-height: 1.6; }
.competitor-summary { max-width: 90ch; padding: 20px 0; }
.competitor-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 1px solid #bbb; border-left: 1px solid #bbb; }
.competitor-card { min-width: 0; padding: 26px; border-right: 1px solid #bbb; border-bottom: 1px solid #bbb; }
.competitor-card h3 { font-size: 1.35rem; margin: 8px 0 16px; }
.competitor-category { font-size: .75rem; text-transform: uppercase; letter-spacing: .045em; color: #555; }
.competitor-card dl > div { display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding: 12px 0; border-top: 1px solid #ddd; font-size: .9rem; line-height: 1.6; }
.competitor-card dt { font-weight: 700; }
.competitor-card dd { margin: 0; }
.competitor-limit { color: #555; font-size: .85rem; }
.competitor-card summary { min-height: 44px; padding: 12px 0; cursor: pointer; font-size: .85rem; }
.competitor-card summary:focus-visible { outline: 2px solid #111; outline-offset: 3px; }
.competitor-sources { font-size: .8rem; overflow-wrap: anywhere; }
@media(max-width:800px) { .competitor-grid { grid-template-columns: 1fr; } .competitor-card { padding: 20px; } }
@media(max-width:400px) { .competitor-card dl > div { display: block; } .competitor-card dt { margin-bottom: 6px; } }
