.sp-hero { padding:80px 24px 56px; text-align:center; background:#f5f8ff; border-bottom:1px solid var(--line); }
.sp-hero h1 { margin:0 0 28px; font-size:clamp(2rem,4.5vw,3.25rem); letter-spacing:-.02em; }
.sp-search { max-width:560px; margin:0 auto; }
.sp-search input { width:100%; padding:15px 20px; border:1px solid #cfd7e3; border-radius:999px; font:400 16px var(--font); color:var(--ink); background:#fff; }
.sp-search input:focus { outline:2px solid rgba(43,106,253,.35); border-color:var(--blue); }
.sp-list { max-width:1100px; margin:0 auto; padding:56px 32px 40px; }
.sp-list h2 { margin:0 0 24px; font-size:1.4rem; }
.sp-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.sp-card { display:block; padding:24px; border:1px solid var(--line); border-radius:16px; background:#fff; transition:border-color .2s, box-shadow .2s, transform .2s; }
.sp-card:hover { border-color:var(--blue); box-shadow:0 12px 28px rgba(43,106,253,.1); transform:translateY(-2px); }
.sp-card[hidden] { display:none; }
.sp-card h3 { margin:0 0 8px; font-size:16px; }
.sp-card p { margin:0; font-size:14px; line-height:1.6; color:var(--muted); }
.sp-empty { color:var(--muted); }

.sp-contact { padding:64px 24px 88px; background:#f8fafd; border-top:1px solid var(--line); }
.sp-contact > h2 { max-width:640px; margin:0 auto 28px; font-size:clamp(1.5rem,3vw,2.25rem); letter-spacing:-.02em; }
.sp-form { max-width:640px; margin:0 auto; background:#fff; }
.sp-form h3 { margin:0; font-size:1.2rem; }
.sp-form small { font-weight:400; font-size:13px; line-height:1.5; color:var(--muted); }
.sp-form select { padding:11px 12px; border:1px solid #cfd7e3; border-radius:10px; font:400 15px var(--font); color:var(--ink); background:#fff; }
.sp-form select:focus { outline:2px solid rgba(43,106,253,.35); border-color:var(--blue); }
.sp-form textarea { resize:vertical; }
.sp-opt { font-weight:400; color:var(--muted); }
.sp-attach { display:flex; flex-direction:column; gap:6px; }
.sp-attach__label { font-size:13px; font-weight:600; }
.sp-drop { display:flex; flex-direction:column; align-items:center; gap:6px; padding:24px; border:1.5px dashed #aebbd0; border-radius:12px; background:#f8fafd; font-size:13px; font-weight:400; color:var(--muted); cursor:pointer; text-align:center; }
.sp-drop strong { color:var(--blue); font-size:14px; }
.sp-drop:hover, .sp-drop.is-over { border-color:var(--blue); background:#f0f5ff; }
@media (max-width:760px) { .sp-grid { grid-template-columns:1fr; } .sp-list { padding:40px 20px 32px; } .sp-contact { padding:48px 16px 64px; } }
