.page-header{margin-top:94px;background:linear-gradient(135deg,#e8f4ff 0%,#ebf9f5 60%,#fff8ec 100%);padding:2.5rem 0 2rem;position:relative;overflow:hidden}
.page-header::before{content:'';position:absolute;top:-60px;right:-60px;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(27,142,240,.1) 0%,transparent 70%)}
.page-header::after{content:'';position:absolute;bottom:-40px;left:-40px;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(0,201,160,.1) 0%,transparent 70%)}
.breadcrumb{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:var(--text2);margin-bottom:1rem;position:relative;z-index:1}
.breadcrumb a:hover{color:var(--blue)}
.breadcrumb-sep{color:#9aa7ba;font-weight:800}
.breadcrumb-cur{color:var(--blue);font-weight:700}
.page-header-inner{display:flex;align-items:flex-end;justify-content:space-between;position:relative;z-index:1;flex-wrap:wrap;gap:1rem}
.page-title-wrap h1{font-family:'Nunito',sans-serif;font-size:2rem;font-weight:900;color:var(--text);letter-spacing:-.02em;margin-bottom:.3rem}
.page-title-wrap p{font-size:.88rem;color:var(--text2);line-height:1.6}
.course-breadcrumb{grid-column:1/-1;display:flex;align-items:center;gap:.45rem;color:#7a879a;font-size:.78rem;font-weight:800}
.course-breadcrumb a{color:#5b6a80}
.course-breadcrumb i{font-size:.62rem;color:#b7c4d7}
.filter-bar{background:white;border-bottom:1px solid var(--border)}
.filter-bar-scroll{display:flex;align-items:center;gap:0;overflow-x:auto}
.filter-bar::-webkit-scrollbar{display:none}
.filter-bar-scroll::-webkit-scrollbar{display:none}
.filter-tab{display:block;flex-shrink:0;font-size:.85rem;font-weight:700;color:var(--text2);padding:1rem 1.1rem;border:0;border-bottom:2.5px solid transparent;cursor:pointer;transition:all .15s;white-space:nowrap;background:none}
.filter-tab:hover,.filter-tab.active{color:var(--blue)}
.filter-tab.active{border-bottom-color:var(--blue)}
.course-list-section{padding:2.5rem 0 3.5rem}
.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.course-card{display:flex;flex-direction:column;overflow:hidden;border:1.5px solid var(--border);border-radius:var(--radius);background:white;box-shadow:0 8px 24px rgba(27,142,240,.05);transition:transform .18s,box-shadow .18s}
.course-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(27,142,240,.12)}
.course-card-image{position:relative;display:block;aspect-ratio:16/9;background:var(--sky);background-size:cover;background-position:center}
.course-card-region{position:absolute;left:12px;top:12px;display:inline-flex;align-items:center;max-width:calc(100% - 24px);height:28px;padding:0 .75rem;border-radius:999px;background:rgba(255,255,255,.94);color:var(--blue);font-size:.72rem;font-weight:900;box-shadow:0 6px 16px rgba(26,34,51,.12)}
.course-card-body{display:flex;flex-direction:column;gap:.55rem;min-height:226px;padding:1rem}
.course-card-title{display:block;color:var(--text);font-size:1.02rem;font-weight:900;line-height:1.42;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.course-card-summary{display:-webkit-box;min-height:3.2em;color:var(--text2);font-size:.78rem;font-weight:600;line-height:1.6;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.course-card-route{display:flex;align-items:center;gap:.35rem;margin-top:.1rem;padding:.6rem .7rem;border-radius:12px;background:#f6faff;color:var(--text);font-size:.74rem;font-weight:900}
.course-card-route span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.course-card-route i{color:var(--blue);font-size:.62rem}
.course-card-meta{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:auto;padding-top:.55rem;border-top:1px solid var(--border);color:#7a879a;font-size:.74rem;font-weight:800}
.course-card-like{display:inline-flex;align-items:center;gap:.25rem;cursor:pointer}
.course-card-like.is-liked{color:var(--coral)}
.course-card-tags{display:flex;flex-wrap:wrap;gap:.35rem;min-width:0;max-height:2.05em;overflow:hidden}
.course-card-tags em{font-style:normal;padding:.24rem .55rem;border-radius:999px;background:var(--sky);color:var(--blue);font-size:.7rem;font-weight:800}
.course-more-wrap{display:flex;justify-content:center;margin-top:2rem}
.course-more-button{min-width:180px;height:48px;border:1.5px solid var(--blue);border-radius:999px;background:white;color:var(--blue);font-size:.88rem;font-weight:900;cursor:pointer;transition:all .15s}
.course-more-button:hover{background:var(--blue);color:white}
.course-more-button.is-loading{opacity:.55;pointer-events:none}
.course-empty{padding:3rem 1rem;border:1.5px dashed var(--border);border-radius:var(--radius);background:white;text-align:center}
.course-empty strong{display:block;color:var(--text);font-size:1.1rem;font-weight:900}
.course-empty p{margin-top:.4rem;color:var(--text2);font-size:.85rem;font-weight:600}
.course-empty.compact{padding:1.5rem}

.course-detail-empty{margin:140px auto 4rem;max-width:520px;padding:2rem;border:1.5px solid var(--border);border-radius:var(--radius);background:white;text-align:center}
.course-detail-empty strong{display:block;font-size:1.25rem;font-weight:900}
.course-detail-empty p{margin:.55rem 0 1.25rem;color:var(--text2);font-weight:600}
.course-detail-empty a{display:inline-flex;padding:.7rem 1.2rem;border-radius:999px;background:var(--blue);color:white;font-weight:900}
.course-detail-page{background:var(--bg)}
.course-detail-hero{position:relative;margin-top:94px;overflow:hidden;padding:3rem 0}
.course-detail-hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(26,34,51,.74),rgba(26,34,51,.38)),var(--course-hero-image);background-size:cover;background-position:center;filter:saturate(1.05)}
.course-detail-hero-bg::after{content:'';position:absolute;inset:0;backdrop-filter:blur(18px);background:rgba(26,34,51,.18)}
.course-detail-hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(360px,.85fr);gap:2rem;max-width:1100px;align-items:stretch}
.course-detail-visual{height:100%;min-height:320px;border-radius:22px;overflow:hidden;background:rgba(255,255,255,.15);box-shadow:0 24px 70px rgba(0,0,0,.22)}
.course-detail-main-image{display:block;width:100%;height:100%;background:var(--course-hero-image),var(--sky);background-size:cover;background-position:center}
.course-detail-summary-card{position:relative;display:flex;flex-direction:column;overflow:hidden;border:0;border-radius:22px;background:#fff;box-shadow:0 24px 60px rgba(16,47,78,.18);padding:1.65rem;color:var(--text)}
.course-detail-summary-card::before{display:none}
.course-detail-summary-card>*{position:relative;z-index:1}
.course-detail-eyebrow{display:flex;align-items:center;gap:.55rem;margin-bottom:.8rem}
.course-detail-category{display:inline-flex;align-items:center;width:fit-content;padding:.34rem .7rem;border-radius:7px;background:#e5f3ff;color:#128ce8;font-size:.7rem;font-weight:900}
.course-detail-location{display:flex;align-items:center;gap:.35rem;min-width:0;color:#64798d;font-size:.72rem;font-weight:850}
.course-detail-location i{flex:0 0 auto;color:#f05b91;font-size:.68rem}
.course-detail-summary-card h1{margin-bottom:.5rem;color:#182b3f;font-size:1.65rem;font-weight:950;line-height:1.2;letter-spacing:-.045em}
.course-detail-summary{display:-webkit-box;overflow:hidden;margin-bottom:1rem;color:#687d91;font-size:.8rem;font-weight:700;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.course-detail-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}
.course-detail-fact{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:82px;padding:.75rem .55rem;border:0;border-radius:12px;background:#f4f7fb;box-shadow:none;text-align:center}
.course-detail-fact strong{display:block;max-width:100%;overflow:hidden;color:#238fea;font-size:1.2rem;font-weight:950;line-height:1.1;white-space:nowrap;text-overflow:ellipsis}
.course-detail-fact span{display:block;margin-top:.4rem;color:#65788c;font-size:.68rem;font-weight:900}
.course-detail-fact.is-start strong{font-size:.88rem}
.course-detail-themes{display:flex;flex-wrap:wrap;gap:.38rem;margin-top:auto;padding-top:.9rem}
.course-detail-themes span{display:inline-flex;padding:.36rem .65rem;border-radius:7px;background:#f0f3f7;color:#637487;font-size:.66rem;font-weight:850}
.course-detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.8rem;padding-top:.8rem;border-top:1px solid #dce8f2}
.course-save-button,.course-share-button{height:44px;border:1px solid #238fea;border-radius:10px;font-size:.8rem;font-weight:900;cursor:pointer;transition:transform .16s,border-color .16s,background .16s}
.course-save-button{background:#238fea;color:#fff}
.course-share-button{background:#fff;color:#238fea}
.course-save-button:hover,.course-share-button:hover{transform:translateY(-1px);border-color:#147dce}
.course-save-button.is-liked{border-color:#238fea;background:#238fea;color:#fff}
.course-detail-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.5rem;max-width:1100px;padding-top:2rem;padding-bottom:4rem;align-items:start}
.course-detail-main{display:flex;flex-direction:column;gap:1.5rem;min-width:0}
.course-detail-tags{display:flex;flex-wrap:wrap;gap:.45rem}
.course-detail-tags span{display:inline-flex;padding:.34rem .75rem;border-radius:999px;background:#e8f4ff;color:var(--blue);font-size:.74rem;font-weight:900}
.course-info-panel,.course-timeline-section,.course-tip-panel,.course-side-card{border:1.5px solid var(--border);border-radius:var(--radius);background:white;padding:1.4rem}
.course-info-panel h2,.course-tip-panel h2,.course-side-card h2,.course-section-head h2{display:flex;align-items:center;gap:.45rem;font-size:1.05rem;font-weight:900;color:var(--text)}
.course-info-panel h2 i,.course-tip-panel h2 i,.course-side-card h2 i,.course-section-head h2 i{color:var(--blue)}
.course-info-description{margin-top:.75rem;color:#62758a;font-size:.82rem;font-weight:700;line-height:1.65}
.course-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:1rem}
.course-info-grid div{padding:.85rem;border-radius:12px;background:#f7faff}
.course-info-grid strong{display:block;margin-bottom:.28rem;color:#7a879a;font-size:.72rem;font-weight:900}
.course-info-grid span{display:block;color:var(--text);font-size:.9rem;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.course-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.course-section-head > span{color:var(--blue);font-size:.78rem;font-weight:900}
.course-timeline{position:relative;display:flex;flex-direction:column;gap:.8rem}
.course-stop{display:grid;grid-template-columns:44px minmax(0,1fr);gap:1rem;align-items:start;padding:1rem;border:1.5px solid var(--border);border-radius:14px;background:white}
.course-stop-number{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--blue);color:white;font-family:'Nunito',sans-serif;font-weight:900}
.course-stop-body{min-width:0}
.course-stop-body > span{display:block;margin-bottom:.28rem;color:var(--mint-dark);font-size:.72rem;font-weight:900}
.course-stop-body h3{margin-bottom:.35rem;color:var(--text);font-size:1.05rem;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.course-stop-body p{color:var(--text2);font-size:.8rem;font-weight:600;line-height:1.65}
.course-stop-address{margin-bottom:.25rem;color:#68778d!important}
.course-stop-link{display:inline-flex;margin-top:.7rem;padding:.42rem .75rem;border-radius:999px;background:var(--sky);color:var(--blue);font-size:.74rem;font-weight:900}
.course-stop-gallery-box{margin-top:.85rem;padding:.7rem;border:1px solid var(--border);border-radius:12px;background:#f8fbff}
.course-stop-gallery-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem;color:var(--text2)}
.course-stop-gallery-head span{display:inline-flex;align-items:center;gap:.35rem;color:var(--text);font-size:.76rem;font-weight:900}
.course-stop-gallery-head span i{color:var(--blue)}
.course-stop-gallery-head small{font-size:.7rem;font-weight:900;color:#7a879a}
.course-stop-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}
.course-stop-gallery button{position:relative;display:block;width:100%;aspect-ratio:1/1;border:0;border-radius:9px;background-color:var(--sky);background-size:cover;background-position:center;cursor:pointer;overflow:hidden}
.course-stop-gallery button:hover{box-shadow:0 0 0 3px rgba(27,142,240,.16)}
.course-stop-gallery button.is-hidden{display:none}
.course-stop-gallery button.is-more::after{content:attr(data-more-count);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(18,34,51,.48);color:#fff;font-family:'Nunito',sans-serif;font-size:.9rem;font-weight:900}
.course-move-card{display:inline-flex;align-items:center;align-self:flex-start;gap:.5rem;margin-left:16px;padding:.45rem .7rem;border:1px solid var(--border);border-radius:999px;background:#fff;color:#7a879a;font-size:.74rem;font-weight:900}
.course-move-card i{color:var(--blue)}
.course-move-duration{display:inline-flex;align-items:center;gap:.28rem;color:var(--text)}
.course-move-duration i{font-size:.72rem;color:var(--mint-dark)}
.course-tip-panel p{margin-top:.75rem;color:var(--text2);font-size:.85rem;font-weight:600;line-height:1.75}
.course-detail-side{position:sticky;top:112px;display:flex;flex-direction:column;gap:1rem}
.course-mini-map{position:relative;height:260px;margin:1rem 0;border-radius:16px;background:linear-gradient(135deg,#dff2ff,#e9fbf6);overflow:hidden}
.course-map-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:1rem;color:var(--text2);font-size:.78rem;font-weight:800;text-align:center}
.course-mini-map .gm-style{font-family:'Noto Sans KR',sans-serif}
.course-map-marker{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:3px solid #fff;border-radius:999px;background:var(--blue);color:#fff;font-size:.78rem;font-weight:900;box-shadow:0 8px 18px rgba(18,34,51,.22)}
.course-side-card p{color:var(--text2);font-size:.78rem;font-weight:600;line-height:1.6}
.course-side-list{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}
.course-side-list a{display:grid;grid-template-columns:64px minmax(0,1fr);gap:.75rem;align-items:center;padding-bottom:.75rem;border-bottom:1px solid var(--border)}
.course-side-list a:last-child{padding-bottom:0;border-bottom:0}
.course-side-list span{display:block;width:64px;aspect-ratio:1/1;border-radius:10px;background:var(--sky);background-size:cover;background-position:center}
.course-side-list strong{display:block;min-width:0;color:var(--text);font-size:.86rem;font-weight:900;line-height:1.35}
.course-side-list small{display:block;margin-top:.25rem;color:var(--text2);font-size:.7rem;font-weight:800}

@media(max-width:1100px){
  .course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .course-card-body{min-height:190px}
  .course-detail-hero-inner{grid-template-columns:1fr}
  .course-detail-visual{height:auto;min-height:0}
  .course-detail-main-image{height:auto;aspect-ratio:16/9}
  .course-detail-body{grid-template-columns:1fr}
  .course-detail-side{position:static}
  .course-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .page-header,.course-detail-hero{margin-top:60px}
}
@media(max-width:700px){
  .page-header{padding:2rem 0 1.5rem}
  .page-title-wrap h1{font-size:1.5rem}
  .course-grid{grid-template-columns:1fr;gap:.75rem}
  .course-card{display:flex;flex-direction:column;min-height:0}
  .course-card-image{height:auto;aspect-ratio:16/9}
  .course-card-region{left:8px;top:8px;height:24px;padding:0 .55rem;font-size:.66rem}
  .course-card-body{min-height:0;padding:.9rem;gap:.45rem}
  .course-card-title{font-size:.96rem}
  .course-card-summary{min-height:2.9em;font-size:.74rem;line-height:1.5}
  .course-card-route{padding:.5rem .6rem;font-size:.68rem;gap:.25rem}
  .course-card-meta{padding-top:.45rem;font-size:.7rem}
  .course-card-tags{display:flex;max-height:2.05em}
  .course-detail-hero{padding:0;background:#111827}
  .course-detail-hero-inner{padding-left:0;padding-right:0;gap:0}
  .course-detail-visual{border-radius:0;box-shadow:none}
  .course-detail-main-image{aspect-ratio:4/3}
  .course-detail-summary-card{border-radius:0;border:0;box-shadow:none;padding:1.2rem 1rem}
  .course-detail-summary-card h1{font-size:1.45rem}
  .course-detail-body{padding-top:1rem;padding-bottom:2.5rem}
  .course-info-panel,.course-timeline-section,.course-tip-panel,.course-side-card{padding:1rem;border-radius:14px}
  .course-info-grid{grid-template-columns:1fr 1fr;gap:.5rem}
  .course-stop{grid-template-columns:34px minmax(0,1fr);gap:.65rem;padding:.75rem}
  .course-stop-number{width:30px;height:30px;font-size:.78rem}
  .course-stop-body h3{font-size:.9rem}
  .course-stop-body p{font-size:.72rem;line-height:1.5}
  .course-stop-address{display:none}
  .course-stop-gallery-box{margin-top:.6rem;padding:.55rem}
  .course-stop-gallery{grid-template-columns:repeat(4,minmax(0,1fr));gap:.36rem}
  .course-move-card{margin-left:12px;font-size:.68rem;padding:.38rem .6rem}
  .course-stop-link{margin-top:.45rem;font-size:.68rem}
  .course-mini-map{height:210px}
}
