/* Seoul expansion: additive, private, source-first components. */
.kf-seoul-jump{display:flex;flex-wrap:wrap;gap:12px;margin-top:0;margin-bottom:30px}.kf-seoul-jump a{padding:12px 18px;border:1px solid var(--line);border-radius:3px;font-size:13px;background:#fffefb}.kf-seoul-jump a:hover{border-color:var(--accent);background:var(--wash)}.kf-source-band{padding:25px 30px;border:1px solid var(--line);background:var(--wash);margin-top:20px;margin-bottom:30px}.kf-source-band p{line-height:1.8;margin:8px 0;color:var(--text)}.kf-source-band h2{font-size:32px;margin:0 0 14px}.kf-area-grid,.kf-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.kf-area-grid article,.kf-type-grid article{padding:25px;border:1px solid var(--line);background:#fffefb}.kf-area-grid h3,.kf-type-grid h3{font-size:20px;line-height:1.35;margin:0 0 14px}.kf-area-grid p,.kf-type-grid p{font-size:14px;line-height:1.8}.kf-area-links{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.kf-area-links a{font-size:11px;padding:5px 8px;border:1px solid var(--line);background:var(--paper)}.kf-small{font-size:12px;line-height:1.75;color:var(--muted);overflow-wrap:anywhere}.kf-directory-filters{display:grid;grid-template-columns:2fr 1.2fr 1.2fr 1.2fr auto;gap:13px;padding:22px;background:var(--wash);border:1px solid var(--line);margin:24px 0}.kf-directory-filters label{display:flex;flex-direction:column;gap:9px;font-size:12px;min-width:0}.kf-directory-filters input,.kf-directory-filters select{font:14px var(--sans);width:100%;min-width:0;height:45px;padding:10px;border:1px solid #b4baad;border-radius:2px;background:white;color:var(--ink)}.kf-directory-filters button{align-self:end;height:45px;background:var(--ink);color:white;border:0;padding:12px 18px;border-radius:2px}.kf-results{font-size:14px;margin:18px 0 24px}.kf-location{background:#eeeae0;border:1px solid var(--line);padding:24px;margin:20px 0 35px}.kf-location-head{display:flex;align-items:center;justify-content:space-between;gap:20px}.kf-location-head h2{font-size:34px;margin:7px 0 10px}.kf-location button,.kf-pagination button{font:12px var(--sans);padding:10px 14px;border:1px solid #a9ad9d;border-radius:2px;background:#fffefb;color:var(--ink);cursor:pointer}.kf-map-note{font-size:12px;line-height:1.7;max-width:880px;color:#596254}.kf-map-tools{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:16px 0}.kf-map-tools span{font-size:12px}.kf-location-svg{display:block;width:100%;height:auto;background:#faf8f2;border:1px solid #d7d2c5;max-height:610px}.kf-location-svg .kf-map-pin{cursor:pointer}.kf-location-svg .kf-map-pin:hover circle,.kf-location-svg .kf-map-pin:focus circle{stroke:#2c392e;stroke-width:4}.kf-map-pin:focus{outline:none}.kf-map-status{font-size:13px;line-height:1.8;padding:15px 0 0;margin:0;min-height:50px;overflow-wrap:anywhere}.kf-map-status a{margin-right:15px;text-decoration:underline}.kf-place-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.kf-place-card{padding:23px;border:1px solid var(--line);background:#fffefb;min-width:0;scroll-margin-top:110px}.kf-place-card .kf-card-photo{margin-bottom:16px}.kf-place-card h3{font-size:20px;line-height:1.4;margin:14px 0 6px}.kf-place-card .kf-ko{font-size:13px;color:var(--muted);margin:0 0 16px}.kf-place-card p{font-size:14px;line-height:1.75;overflow-wrap:anywhere}.kf-place-card .kf-card-meta{font-size:11px;letter-spacing:.04em;color:#735b36;display:flex;flex-wrap:wrap;gap:8px}.kf-place-card .kf-address{border-top:1px solid var(--line);padding-top:13px;margin:14px 0}.kf-place-card .kf-address strong{font-size:11px;text-transform:uppercase;letter-spacing:.08em;display:block;margin-bottom:5px}.kf-place-card button{padding:10px 12px;background:var(--wash);border:1px solid var(--line);color:var(--ink);font:12px var(--sans);margin-bottom:12px;cursor:pointer}.kf-place-card button:disabled{opacity:.6;cursor:default}.kf-source-links{display:flex;flex-direction:column;gap:9px;margin-top:15px}.kf-source-links a{font-size:12px;line-height:1.6;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.kf-place-card details,.kf-transport-card details{border-top:1px solid var(--line);padding-top:14px;margin-top:18px;font-size:13px}.kf-place-card summary,.kf-transport-card summary{cursor:pointer;line-height:1.6;font-weight:600}.kf-place-card dl,.kf-transport-card dl{margin:15px 0;font-size:13px;line-height:1.8}.kf-place-card dt,.kf-transport-card dt{font-weight:600;margin-top:15px}.kf-place-card dd,.kf-transport-card dd{margin:4px 0 0;color:var(--text);overflow-wrap:anywhere}.kf-pagination{display:flex;align-items:center;gap:16px;justify-content:center;margin:35px 0}.kf-pagination span{font-size:13px}.kf-pagination button:disabled{opacity:.4;cursor:default}.kf-no-results{padding:30px;border:1px solid var(--line);grid-column:1/-1;background:var(--wash)}.kf-transport-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.kf-transport-card{background:#fffefb;border:1px solid var(--line);padding:30px;min-width:0;scroll-margin-top:110px}.kf-transport-card h2{font-size:34px;line-height:1.18;margin:10px 0 22px}.kf-transport-card>.kf-context-photo{margin-bottom:22px}.kf-transport-card>.kf-context-photo img{height:240px;object-fit:cover}.kf-transport-card p{font-size:14px;line-height:1.8}.kf-bus-colours{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:22px 0}.kf-bus-colours span{padding:13px 12px;font-size:13px;font-weight:600;border-left:7px solid}.bus-blue{background:#e2ecf4;border-color:#24629b!important}.bus-green{background:#e5eee4;border-color:#30784a!important}.bus-yellow{background:#f7f0d7;border-color:#c5991b!important}.bus-red{background:#f4e6e1;border-color:#b44b38!important}.kf-rail-schematic{padding:20px;margin:23px 0;border-left:4px solid #a58b55;background:var(--wash);font-size:14px}.kf-rail-schematic p{margin:7px 0 19px}.kf-rail-schematic small{font-size:11px}.kf-trip-flow{display:grid;gap:10px;margin:22px 0}.kf-trip-flow span{font-size:13px;background:var(--wash);padding:12px 15px;border-left:3px solid var(--gold)}.kf-table-scroll{overflow:auto;max-width:100%;border:1px solid var(--line);margin:25px 0}.kf-grade-table{width:100%;border-collapse:collapse;min-width:650px;background:#fffefb;font-size:14px}.kf-grade-table th,.kf-grade-table td{text-align:left;padding:20px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.7}.kf-grade-table thead{background:var(--wash)}.kf-grade-table a{font-size:12px;text-decoration:underline}.kf-new-planning{border:1px solid var(--line);background:var(--wash);padding:30px}.kf-new-planning h2{font-size:35px;margin:10px 0}.kf-new-planning p{line-height:1.7}.kf-new-planning .kf-seoul-jump{margin:22px 0 0}.kf-selection{outline:2px solid var(--gold);outline-offset:3px}.kf-note-label{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#735b36}.desktop-nav{gap:17px}.desktop-nav a{font-size:12px;white-space:nowrap}
@media(max-width:1100px){.kf-area-grid,.kf-type-grid,.kf-place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kf-directory-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.kf-directory-filters label:first-child{grid-column:1/-1}.kf-directory-filters button{width:max-content}.kf-transport-card{padding:24px}.kf-location-head h2{font-size:29px}}
@media(max-width:760px){.kf-area-grid,.kf-type-grid,.kf-place-grid,.kf-transport-grid{grid-template-columns:1fr}.kf-source-band{padding:22px}.kf-location{padding:16px}.kf-location-head{align-items:flex-start;flex-direction:column;gap:4px}.kf-location-head h2{font-size:28px}.kf-map-note{font-size:11px}.kf-directory-filters{padding:17px;gap:12px}.kf-place-card{padding:22px}.kf-transport-card h2{font-size:30px}.kf-seoul-jump{gap:8px}.kf-seoul-jump a{font-size:12px;padding:11px 13px}.kf-new-planning{padding:23px}.kf-new-planning h2{font-size:30px}.kf-transport-card>.kf-context-photo img{height:220px}}
@media(max-width:420px){.kf-directory-filters{grid-template-columns:1fr}.kf-directory-filters label:first-child{grid-column:auto}.kf-directory-filters button{width:100%}.kf-map-tools{gap:7px}.kf-location-svg{min-height:220px}.kf-map-tools span{width:100%;line-height:1.7}}
