.seoul-start{background:#eaf0eb;color:#18392f}.seoul-start-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}.seoul-start-grid article{min-width:0}.seoul-start-grid article>span{font-size:1.25rem;color:#a43d2d}.seoul-start h3{font-size:1.35rem}.seoul-start p,.seoul-map-section p{font-size:1rem;line-height:1.7}.seoul-start a{color:#18392f;text-underline-offset:.25em}.seoul-map-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.seoul-map-filters button{min-height:44px;padding:.55rem 1rem;font:inherit;border:1px solid #718477;border-radius:3px;background:white;color:#18392f;cursor:pointer}.seoul-map-filters button[aria-pressed=true]{background:#18392f;color:white}#seoul-map{height:420px;width:100%;background:#e5ebe7;border:1px solid #bdcbbf;z-index:0}.seoul-map-places{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem 1rem}.seoul-map-places>div{display:flex;align-items:center;gap:.6rem;min-height:44px}.seoul-map-places a{font-size:.95rem;line-height:1.5}.seoul-map-places button{width:32px;min-height:32px;flex-shrink:0;background:#18392f;color:white;border:0;border-radius:50%;cursor:pointer}.seoul-pin span{display:grid;place-items:center;width:32px;height:32px;background:#18392f;color:#fff;border:2px solid white;border-radius:50%;font:600 14px/1 system-ui;box-shadow:0 2px 6px #0005}.seoul-pin.food span{background:#a43d2d}.seoul-pin.stays span{background:#69468b}.seoul-pin.transport span{background:#246197}.seoul-photo-card figure{margin:0 0 1rem}.seoul-photo-card figure>a{position:relative;display:block}.seoul-photo-card img{width:100%;height:210px;object-fit:cover;display:block}.seoul-photo-card figure>a>span{position:absolute;bottom:.5rem;right:.5rem;background:#18392fee;color:#fff;padding:.3rem .55rem;font-size:.875rem}.seoul-photo-card figcaption{font-size:.875rem;line-height:1.55;margin-top:.5rem;color:inherit}.seoul-photo-card details{margin-top:.4rem}.seoul-photo-card summary{cursor:pointer}.seoul-start a:focus-visible,.seoul-map-section :is(a,button):focus-visible{outline:3px solid #a43d2d;outline-offset:3px}.seoul-map-places [hidden]{display:none!important}@media(max-width:760px){.seoul-start-grid{grid-template-columns:1fr;gap:1rem}.seoul-map-places{grid-template-columns:repeat(2,minmax(0,1fr))}#seoul-map{height:340px}.seoul-photo-card img{height:220px}}@media(max-width:440px){.seoul-map-places{grid-template-columns:1fr}}

.seoul-map-filters{position:sticky;top:4.5rem;z-index:450;gap:.55rem;padding:.7rem;background:#f7f4ecf2;border:1px solid #d2d9d3;box-shadow:0 8px 24px #18392f14}.seoul-map-filters button{display:flex;align-items:center;gap:.55rem;padding:.55rem .85rem;font:600 .92rem/1.2 system-ui;border-radius:999px}.seoul-map-filters button span{display:grid;place-items:center;min-width:1.65rem;height:1.65rem;padding:0 .35rem;border-radius:999px;background:#e7ece8;font-size:.78rem}.seoul-map-filters button[aria-pressed=true] span{background:#ffffff24}.seoul-map-shell{position:relative}#seoul-map{height:560px}.seoul-map-legend{position:absolute;z-index:440;left:1rem;bottom:1rem;display:flex;flex-wrap:wrap;gap:.4rem;max-width:calc(100% - 2rem);padding:.55rem;background:#fffef8eb;box-shadow:0 4px 20px #0002}.seoul-map-legend span{display:flex;align-items:center;gap:.35rem;font:600 .78rem/1.2 system-ui;color:#18392f}.seoul-map-legend b,.seoul-category-heading>span{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:#18392f;color:#fff;font-style:normal}.seoul-map-legend .food b,.seoul-category-heading>.food{background:#a43d2d}.seoul-map-legend .photo b,.seoul-category-heading>.photo{background:#ad6d00}.seoul-map-legend .stays b,.seoul-category-heading>.stays{background:#69468b}.seoul-map-legend .parking b,.seoul-category-heading>.parking{background:#246197}.seoul-pin.photo span{background:#ad6d00}.seoul-pin.parking span{background:#246197}.seoul-map-preview{display:grid;gap:.35rem;font-family:system-ui;line-height:1.3}.seoul-map-preview img{width:100%;height:145px;object-fit:cover;border-radius:4px}.seoul-map-preview span{font-size:.75rem;font-weight:700;color:#59645e;text-transform:uppercase;letter-spacing:.04em}.seoul-map-preview strong{font-size:1rem}.seoul-map-preview a{display:inline-block!important;margin-right:.75rem;color:#245447;font-weight:650}.seoul-card-catalog{margin-top:3rem}.seoul-card-category{scroll-margin-top:9rem;margin:0 0 4rem}.seoul-category-heading{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:2px solid #18392f}.seoul-category-heading>span{flex:0 0 2.4rem;width:2.4rem;height:2.4rem;font:700 1rem/1 system-ui}.seoul-category-heading h3{margin:0;font-size:clamp(1.6rem,3vw,2.5rem)}.seoul-category-heading h3 small{display:inline-grid;place-items:center;min-width:2rem;height:2rem;border-radius:50%;background:#e4e9e4;font:700 .85rem/1 system-ui;vertical-align:middle}.seoul-category-heading p{margin:.35rem 0 0;color:#4b5a54}.seoul-place-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.seoul-place-card{display:flex;flex-direction:column;min-width:0;background:#fff;border:1px solid #cbd4cd;box-shadow:0 8px 24px #18392f0d;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.seoul-place-card:hover{transform:translateY(-3px);box-shadow:0 13px 30px #18392f1c}.seoul-card-map{display:block;width:100%;padding:0;border:0;background:transparent;color:#172d27;text-align:left;cursor:pointer}.seoul-card-photo{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:#dfe6e1}.seoul-card-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.seoul-place-card:hover img{transform:scale(1.035)}.seoul-card-photo b{position:absolute;left:.75rem;top:.75rem;display:grid;place-items:center;width:2.15rem;height:2.15rem;border-radius:50%;background:#18392fee;color:#fff;border:2px solid #fff;font:700 .9rem/1 system-ui}.seoul-place-card[data-seoul-place-category=food] .seoul-card-photo b{background:#a43d2dee}.seoul-place-card[data-seoul-place-category=photo] .seoul-card-photo b{background:#ad6d00ee}.seoul-place-card[data-seoul-place-category=stays] .seoul-card-photo b{background:#69468bee}.seoul-place-card[data-seoul-place-category=parking] .seoul-card-photo b{background:#246197ee}.seoul-card-copy{display:flex;flex-direction:column;gap:.55rem;padding:1rem 1rem .8rem}.seoul-card-meta{display:flex;align-items:center;gap:.5rem;color:#617169;font:700 .75rem/1 system-ui;text-transform:uppercase;letter-spacing:.05em}.seoul-card-meta em{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;background:#e8eee9;color:#18392f;font-style:normal;letter-spacing:0}.seoul-card-copy strong{font-size:1.12rem;line-height:1.3}.seoul-card-copy small{min-height:3.7em;color:#4e5b56;font-size:.86rem;line-height:1.45}.seoul-show-map{color:#255347;font-size:.85rem;font-weight:700}.seoul-card-links{display:flex;gap:.5rem;margin-top:auto;padding:0 1rem 1rem}.seoul-card-links a{flex:1;padding:.55rem .4rem;border:1px solid #9caaa0;color:#18392f;text-align:center;text-decoration:none;font:650 .82rem/1.2 system-ui}.seoul-card-links a:hover{background:#edf2ee}.seoul-map-section [hidden]{display:none!important}
@media(max-width:900px){.seoul-place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.seoul-map-filters{position:static}#seoul-map{height:430px}.seoul-map-legend{position:static;margin-top:.5rem}.seoul-place-grid{gap:.9rem}}
.seoul-place-card.is-map-target{outline:4px solid #d8aa4c;outline-offset:4px;box-shadow:0 18px 36px #18392f30;animation:seoul-card-focus .8s ease-out 2}@keyframes seoul-card-focus{50%{transform:translateY(-4px) scale(1.012)}}
@media(max-width:520px){.seoul-place-grid{grid-template-columns:1fr}.seoul-card-copy small{min-height:0}#seoul-map{height:390px}}
@media(prefers-reduced-motion:reduce){.seoul-place-card.is-map-target{animation:none}}
.seoul-place-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}
@media(max-width:1200px){.seoul-place-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.seoul-place-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.seoul-place-grid{grid-template-columns:1fr}}
.seoul-map-legend .kpop b,.seoul-category-heading>.kpop,.seoul-pin.kpop span,.seoul-place-card[data-seoul-place-category=kpop] .seoul-card-photo b{background:#c24577}
.seoul-card-ai{position:absolute;right:.6rem;bottom:.6rem;padding:.32rem .48rem;background:#101c18e8;color:#fff;border:1px solid #ffffffaa;font:700 .68rem/1 system-ui;font-style:normal;letter-spacing:.04em;text-transform:uppercase}
.destination-guide .managed-section .hub-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}
.destination-guide .managed-section .hub-grid article{padding:1rem}
@media(max-width:1200px){.destination-guide .managed-section .hub-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.destination-guide .managed-section .hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.destination-guide .managed-section .hub-grid{grid-template-columns:1fr}}
.seoul-card-meta>b{display:grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%;background:#e8eee9;color:#18392f;font-style:normal;letter-spacing:0}
.seoul-verified-credit{padding:0 1rem;font-size:12px!important;line-height:1.5!important;color:#4e5b56}.seoul-place-grid{align-items:start}

.seoul-pin.hiking span,.seoul-map-legend .hiking b,.seoul-category-heading>.hiking{background:#38712c}

.seoul-map-legend .transport b,.seoul-category-heading>.transport{background:#246197}
