:root{color:#151a17;background:#f4f6f3;font-family:Pretendard,Noto Sans KR,system-ui,sans-serif;font-synthesis:none;line-height:1.6;--ink: #151a17;--muted: #68716b;--line: #e2e7e2;--surface: rgba(255, 255, 255, .9);--accent: #126b4b;--accent-bright: #41d493}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow-x:hidden;background:radial-gradient(circle at 8% 20%,rgba(116,231,174,.12),transparent 25rem),#f4f6f3}a{color:inherit}main{min-height:calc(100vh - 76px)}.hero,.detail-hero{width:calc(100% - 48px);max-width:1180px;margin:18px auto 0;padding:84px 64px 96px}.hero{position:relative;overflow:hidden;padding:44px 64px 48px;border:1px solid rgba(255,255,255,.1);border-radius:36px;color:#f7fff9;background:radial-gradient(circle at 82% 15%,rgba(75,234,160,.28),transparent 28%),linear-gradient(135deg,#11271e,#0b4734);box-shadow:0 24px 70px #0f3a2a26}.hero:after{position:absolute;right:-70px;bottom:-110px;width:340px;height:340px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 52px #ffffff09,0 0 0 104px #ffffff06;content:""}.eyebrow{margin:0 0 12px;color:#69e2aa;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.hero .eyebrow{font-size:16px;letter-spacing:.08em}h1,h2,h3,p{overflow-wrap:anywhere}.hero h1,.detail-hero h1{max-width:720px;margin:0;font-size:clamp(44px,6vw,76px);font-weight:800;line-height:1.08;letter-spacing:-.07em}.hero h1{line-height:1.18}.hero>p:last-child,.detail-hero>p{max-width:620px;margin:22px 0 0;color:#aebeb5;font-size:18px}.hero>p:last-child{font-size:22px;line-height:1.65}.filters{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:calc(100% - 48px);max-width:1180px;margin:24px auto 0;padding:18px;border:1px solid rgba(226,231,226,.9);border-radius:26px;background:#ffffffe0;box-shadow:0 24px 70px #192c2221;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.filters label{min-width:0;padding:11px 14px 9px;border:1px solid transparent;border-radius:16px;background:#f3f6f3;transition:border-color .2s,background .2s,box-shadow .2s}.filters label:focus-within{border-color:#126b4b59;background:#fff;box-shadow:0 0 0 4px #126b4b14}.filters label span{display:block;margin:0 0 1px;color:#8b948e;font-size:11px;font-weight:800;letter-spacing:.04em}input,select,button{width:100%;min-height:42px;border:0;font:inherit}input,select{min-width:0;padding:0;color:var(--ink);outline:0;background:transparent;font-weight:700}button{grid-column:1 / -1;width:100%;min-height:56px;border-radius:16px;color:#fff;background:linear-gradient(135deg,#157451,#0c5b40);box-shadow:0 10px 24px #126b4b33;cursor:pointer;font-weight:800;transition:transform .2s,box-shadow .2s}button:hover{transform:translateY(-1px);box-shadow:0 14px 28px #126b4b42}button:active{transform:translateY(0)}button:disabled{cursor:wait;opacity:.72;transform:none;box-shadow:none}.course-section,.itinerary{width:calc(100% - 48px);max-width:1180px;margin:auto;padding:56px 0 120px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:22px}.section-heading h2,.itinerary>h2{margin:0;font-size:28px;letter-spacing:-.045em}.section-heading span{padding:4px 10px;border-radius:999px;color:#516059;background:#e7ede8;font-size:12px;font-weight:800}.map-section{padding-bottom:96px}.ad-banner{width:100vw;max-width:100vw;margin:28px 0 0 calc(50% - 50vw)}.ad-banner-label{width:calc(100% - 48px);max-width:1180px;margin:0 auto 8px;color:#7b857e;font-size:12px;font-weight:700;letter-spacing:-.01em}.ad-banner-inner{display:flex;width:100%;height:90px;align-items:center;justify-content:center;overflow:hidden;background:#fff}.ad-banner iframe{display:block;width:728px;height:90px;flex:0 0 728px;border:0}.map-shell{position:relative;overflow:hidden;height:clamp(560px,72vh,760px);border:1px solid rgba(210,220,213,.9);border-radius:28px;background:#e8eee9;box-shadow:0 22px 56px #1d34271f}.naver-map{width:100%;height:100%}.map-status{position:absolute;z-index:2;inset:0;display:grid;place-content:center;gap:4px;padding:30px;color:#53625a;background:#f3f7f4e6;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-status strong{color:var(--ink);font-size:18px}.map-status span{color:var(--muted);font-size:13px}.map-config-error{background:#fffaeff0}.map-empty{display:grid;min-height:360px;place-content:center;padding:30px;border:1px solid var(--line);border-radius:28px;color:var(--muted);background:#ffffffc2;text-align:center}.map-empty strong{color:var(--ink);font-size:20px}.map-empty p{margin:4px 0 0}.map-marker{grid-column:auto;display:grid;width:32px;min-width:32px;height:35px;min-height:35px;margin:0;padding:0 0 4px;place-items:center;border:3px solid #fff;border-radius:20px 20px 20px 5px;color:#fff;background:linear-gradient(145deg,#22a06b,#096342);box-shadow:0 8px 18px #053e284d;cursor:pointer;font-size:12px;font-weight:900;transform:rotate(-45deg);transition:transform .18s,box-shadow .18s}.map-marker:after{width:8px;height:8px;border-radius:50%;background:#fff;content:""}.map-marker:hover{z-index:1;box-shadow:0 12px 24px #053e2861;transform:rotate(-45deg) translate(2px,-2px) scale(1.08)}.location-button{position:absolute;z-index:2;top:14px;right:14px;grid-column:auto;display:flex;width:auto;min-height:40px;padding:0 14px;align-items:center;gap:6px;border:1px solid rgba(194,205,197,.9);border-radius:12px;color:#294d3b;background:#fffffff5;box-shadow:0 5px 16px #1c332624;font-size:12px}.location-button:hover{transform:translateY(-1px)}.location-button span{color:#16895c;font-size:20px;line-height:1}.location-error{position:absolute;z-index:2;top:62px;right:14px;margin:0;padding:8px 10px;border-radius:9px;color:#7c3d30;background:#fff2edf5;box-shadow:0 4px 12px #3e221c1f;font-size:11px}.current-location-marker{display:block;width:20px;height:20px;border:4px solid #fff;border-radius:50%;background:#1677ff;box-shadow:0 0 0 2px #1677ff,0 4px 14px #0d53b566}.map-popup{position:relative;width:min(300px,calc(100vw - 48px));max-height:390px;overflow:auto;padding:22px 20px 18px;border:1px solid rgba(216,224,218,.9);border-radius:20px;color:var(--ink);background:#fffffffa;box-shadow:0 18px 50px #142b1e33;font-family:Pretendard,Noto Sans KR,system-ui,sans-serif}.map-popup-close{position:absolute;top:9px;right:9px;grid-column:auto;width:28px;min-width:28px;min-height:28px;padding:0;border:0;border-radius:50%;color:#6d7770;background:#edf2ee;box-shadow:none;font-size:20px;line-height:1}.map-popup-close:hover{color:var(--ink);background:#e1e9e3;transform:none}.map-popup-badges{display:flex;flex-wrap:wrap;gap:5px;padding-right:32px}.map-popup-badges span{padding:4px 8px;border-radius:999px;color:#176144;background:#e8f6ee;font-size:10px;font-weight:800}.map-popup h3{margin:14px 34px 8px 0;font-size:20px;letter-spacing:-.04em;line-height:1.3}.map-popup address{font-size:12px;line-height:1.5}.map-popup-stamp{margin:12px 0 0;padding:7px 9px;border-radius:9px;color:#72531b;background:#fff4ce;font-size:11px;font-weight:800}.map-popup-description{display:-webkit-box;overflow:hidden;margin:13px 0;color:#5d6861;font-size:12px;line-height:1.6;-webkit-box-orient:vertical;-webkit-line-clamp:6}.map-popup-link{display:block;margin-top:16px;color:var(--accent);font-size:12px;font-weight:850;text-align:right;text-decoration:none}.course-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.course-card{position:relative;overflow:hidden;display:flex;min-height:330px;flex-direction:column;padding:32px;border:1px solid rgba(220,227,221,.85);border-radius:28px;background:radial-gradient(circle at 100% 0,rgba(82,218,151,.11),transparent 15rem),#ffffffe6;transition:transform .2s,box-shadow .2s}.course-card:hover{transform:translateY(-5px);box-shadow:0 22px 50px #1e34281a}.card-meta{display:flex;flex-wrap:wrap;gap:7px}.card-meta span{padding:5px 11px;border-radius:999px;color:#176144;background:#e8f6ee;font-size:11px;font-weight:800}.course-card h3{margin:26px 0 10px;font-size:28px;letter-spacing:-.05em;line-height:1.25}.course-card h3 a{text-decoration:none}.course-card>p{margin:0;color:#657069}.course-card dl,.detail-stats{display:flex;flex-wrap:wrap;gap:24px;margin:26px 0}.course-card dl div,.detail-stats div{display:flex;gap:7px}dt{color:#818a83}dd{margin:0;font-weight:800}.card-link{margin-top:auto;color:var(--accent);font-size:14px;font-weight:800;text-decoration:none}.card-link span{margin-left:5px}.detail-hero{padding-bottom:82px;border-radius:36px;color:#f7fff9;background:radial-gradient(circle at 85% 10%,rgba(65,212,147,.25),transparent 25%),#103c2d;box-shadow:0 24px 70px #0f3a2a24}.detail-hero>p{color:#b8c8bf}.back-link{display:inline-block;margin-bottom:56px;color:#b9d1c4;font-weight:700;text-decoration:none}.detail-hero .card-meta{margin-bottom:18px}.detail-stats{margin-top:34px}.detail-stats dt{color:#9eb5a8}.itinerary{padding-top:30px}.itinerary ol{margin:38px 0 0;padding:0;list-style:none}.itinerary li{position:relative;display:grid;grid-template-columns:54px 1fr;gap:20px;padding-bottom:28px}.itinerary li:not(:last-child):before{position:absolute;top:44px;bottom:-8px;left:26px;width:2px;background:#d5ddd7;content:""}.stop-number{z-index:1;display:grid;width:54px;height:54px;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(145deg,#1a805b,#0e5c41);box-shadow:0 8px 20px #126b4b2e;font-weight:800}.itinerary article{padding:28px 30px;border:1px solid var(--line);border-radius:24px;background:#ffffffe0}.itinerary article h3{margin:2px 0 6px;font-size:23px}.itinerary article p{color:#5d6860}.itinerary article a{color:var(--accent);font-weight:800}.site-category{margin:0;color:#19704f!important;font-size:11px;font-weight:800;letter-spacing:.05em}address{color:#7a837c;font-style:normal}.site-detail-body{width:calc(100% - 48px);max-width:860px;margin:0 auto;padding:54px 0 100px}.site-detail-hero address{margin-top:20px;color:#c7d6ce;font-size:16px;letter-spacing:-.015em;line-height:1.7}.site-detail-body h2{margin:0 0 32px;font-size:30px;letter-spacing:-.04em;line-height:1.35}.site-detail-body>img{width:100%;max-height:480px;margin-bottom:28px;border-radius:24px;object-fit:cover}.site-detail-stamp{display:flex;margin-bottom:24px;padding:18px 20px;align-items:center;justify-content:space-between;gap:16px;border-radius:16px;color:#72531b;background:#fff4ce;line-height:1.6}.site-detail-description{margin:0;color:#536159;font-size:16px;letter-spacing:-.012em;line-height:2;word-break:keep-all;white-space:pre-line}.official-link{display:block;width:fit-content;margin:20px 0 0 auto;color:var(--accent);font-weight:850}.stamp-info{display:inline-block;margin:12px 0 0;padding:6px 11px;border-radius:999px;color:#72531b!important;background:#fff4ce;font-size:12px;font-weight:800}.updated-at{margin:14px 4px 0;color:#7b857e;text-align:right;font-size:13px}.empty-state{padding:80px 24px;border:1px solid var(--line);border-radius:28px;background:#ffffffbf;text-align:center}.empty-state a{color:var(--accent);font-weight:800}.error-state{max-width:800px;margin:70px auto}footer{padding:32px;color:#77817b;border-top:1px solid var(--line);background:#eef1ed;text-align:center;font-size:12px}@media(max-width:720px){.hero,.detail-hero{width:calc(100% - 36px);margin:12px auto 0;padding:58px 24px 72px;border-radius:28px}.hero{padding:32px 24px 36px}.hero h1,.detail-hero h1{font-size:42px}.filters{grid-template-columns:1fr;width:calc(100% - 36px);margin-top:16px;padding:12px;border-radius:22px}button{width:100%}.course-section,.itinerary{width:calc(100% - 36px);padding:56px 0 80px}.ad-banner-label{width:calc(100% - 36px)}.map-shell{height:64vh;min-height:460px;border-radius:22px}.map-popup{width:min(290px,calc(100vw - 32px));padding:18px 16px 16px}.course-grid{grid-template-columns:1fr}.course-card{min-height:0;padding:24px}.detail-hero{padding-bottom:50px}.itinerary li{grid-template-columns:42px 1fr;gap:12px}.stop-number{width:42px;height:42px}.itinerary li:not(:last-child):before{top:36px;left:20px}.itinerary article{padding:20px}.site-detail-body{width:calc(100% - 48px);padding:44px 0 76px}.site-detail-stamp{align-items:flex-start;flex-direction:column}}@media(min-width:721px)and (max-width:980px){.hero,.detail-hero{padding-inline:44px}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.filters button{width:100%}}
