:root { --ink:#14213d; --muted:#657188; --line:#e5eaf1; --blue:#165dff; --blue-soft:#edf3ff; --paper:#f7f9fc; --white:#fff; }
* { box-sizing:border-box; }
html { font-family: Inter, Pretendard, "Noto Sans KR", system-ui, sans-serif; color:var(--ink); background:var(--paper); }
body { margin:0; min-width:320px; line-height:1.65; }
a { color:inherit; }
.wrap { width:min(1120px, calc(100% - 40px)); margin:0 auto; }
.site-header { height:72px; display:flex; align-items:center; justify-content:space-between; padding:0 max(20px, calc((100vw - 1120px) / 2)); background:rgba(255,255,255,.92); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5; backdrop-filter:blur(12px); }
.brand { display:inline-flex; gap:9px; align-items:center; text-decoration:none; font-size:1.18rem; font-weight:800; letter-spacing:-.04em; }
.brand-mark { width:30px; height:30px; display:grid; place-items:center; color:#fff; background:var(--blue); border-radius:10px 10px 10px 2px; font-size:1.3rem; line-height:1; }
.site-nav { display:flex; gap:22px; font-size:.92rem; color:var(--muted); }
.site-nav a, .site-footer a { text-decoration:none; }
.site-nav a:hover, .site-footer a:hover, .text-link:hover { color:var(--blue); }
.intro { padding:74px 0 48px; }
.eyebrow { margin:0 0 10px; color:var(--blue); font-size:.72rem; font-weight:800; letter-spacing:.14em; }
h1,h2,h3,p { margin-top:0; }
h1 { margin-bottom:18px; font-size:clamp(2.2rem, 5vw, 4.3rem); line-height:1.13; letter-spacing:-.075em; }
h1 span { color:var(--blue); }
h2 { margin-bottom:12px; font-size:clamp(1.5rem, 3vw, 2.1rem); line-height:1.25; letter-spacing:-.055em; }
h3 { margin-bottom:7px; font-size:1.1rem; line-height:1.35; letter-spacing:-.03em; }
.intro-copy { max-width:600px; color:var(--muted); font-size:1.05rem; }
.search-panel { display:flex; gap:10px; max-width:740px; margin-top:29px; padding:8px; background:var(--white); border:1px solid var(--line); border-radius:17px; box-shadow:0 12px 30px rgba(29,63,117,.08); }
.search-panel input { flex:1; min-width:0; border:0; outline:0; padding:10px 14px; background:transparent; color:var(--ink); font:inherit; font-size:1rem; }
button, select { font:inherit; }
.search-panel button { border:0; border-radius:11px; padding:10px 22px; color:#fff; background:var(--blue); font-weight:700; cursor:pointer; }
.filter-row { display:flex; flex-wrap:wrap; gap:9px; margin-top:14px; }
.select-wrap select, .filter-btn { min-height:40px; padding:7px 13px; border:1px solid var(--line); border-radius:999px; background:var(--white); color:var(--muted); cursor:pointer; }
.filter-btn.active { color:var(--blue); border-color:#a9c1ff; background:var(--blue-soft); }
.nearby-btn { color:var(--blue); border-color:#a9c1ff; }
.nearby-btn:disabled { opacity:.6; cursor:wait; }
.nearby-status { min-height:1.4em; margin:9px 0 0; color:var(--muted); font-size:.82rem; }
.results-section { padding:20px 0 70px; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:18px; }
.result-count { margin:0 0 8px; color:var(--muted); font-size:.9rem; }
.status-card, .empty-card { padding:30px; border:1px dashed #cbd5e5; border-radius:16px; color:var(--muted); background:#fff; text-align:center; }
.result-list { display:grid; gap:12px; }
.result-card { display:flex; justify-content:space-between; gap:22px; padding:22px; background:var(--white); border:1px solid var(--line); border-radius:16px; }
.result-type { margin:0 0 5px; color:var(--blue); font-size:.77rem; font-weight:700; }
.address { margin-bottom:12px; color:var(--muted); font-size:.94rem; }
.details { display:flex; flex-wrap:wrap; gap:13px 26px; margin:0; }
.details div { display:flex; gap:8px; }
.details dt { color:#8a95a8; font-size:.78rem; }
.details dd { margin:0; font-size:.87rem; font-weight:600; }
.tags { display:flex; flex-wrap:wrap; gap:6px; margin-top:13px; }
.tag { padding:3px 9px; border-radius:999px; color:#315eaa; background:var(--blue-soft); font-size:.75rem; }
.result-actions { display:flex; flex-direction:column; align-items:flex-end; justify-content:center; gap:9px; min-width:190px; }
.map-link { padding:9px 12px; border-radius:10px; color:#fff; background:var(--blue); text-decoration:none; font-size:.82rem; font-weight:700; text-align:center; }
.phone-link { color:var(--muted); font-size:.82rem; }
.load-more { display:block; margin:20px auto 0; padding:10px 22px; border:1px solid var(--line); border-radius:999px; background:#fff; color:var(--ink); cursor:pointer; }
.content-section { padding:25px 0 85px; }
.page-meta { margin:-4px 0 28px; color:var(--muted); font-size:.84rem; }
.content-grid { display:grid; grid-template-columns:1.5fr 1fr; gap:24px; }
.content-grid article, .source-card { padding:30px; border-radius:18px; background:#fff; border:1px solid var(--line); }
.content-grid article p { color:var(--muted); }
.text-link { color:var(--blue); font-weight:700; text-decoration:none; }
.source-card { background:#14213d; color:#fff; border-color:#14213d; }
.source-card .eyebrow { color:#9dbaff; }
.source-card p { color:#d1d9e8; }
.source-card a { color:#fff; font-weight:700; }
.site-footer { padding:32px 0 22px; color:var(--muted); background:#eef2f7; font-size:.86rem; }
.footer-inner { display:flex; justify-content:space-between; gap:25px; }
.footer-inner strong { color:var(--ink); }
.footer-inner p { margin:4px 0 0; }
.footer-inner nav { display:flex; flex-wrap:wrap; gap:15px; }
.footer-note { margin-top:25px; padding-top:18px; border-top:1px solid #dbe2ec; font-size:.78rem; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
[hidden] { display:none !important; }
@media (max-width:700px) {
  .wrap { width:min(100% - 28px, 560px); }
  .site-header { height:62px; padding:0 14px; }
  .site-nav { gap:10px; font-size:.8rem; }
  .site-nav a:nth-child(2) { display:none; }
  .intro { padding:48px 0 32px; }
  h1 { font-size:2.45rem; }
  .intro-copy { font-size:.95rem; }
  .search-panel { margin-top:22px; }
  .search-panel button { padding:9px 15px; }
  .result-card { flex-direction:column; gap:17px; padding:18px; }
  .result-actions { align-items:stretch; min-width:0; }
  .map-link { width:100%; }
  .section-heading { align-items:start; flex-direction:column; gap:0; }
  .content-grid { grid-template-columns:1fr; }
  .content-grid article, .source-card { padding:23px; }
  .footer-inner { flex-direction:column; }
}
