:root{
  --navy:#132548;
  --blue:#2759d8;
  --orange:#ff7a18;
  --ink:#18243a;
  --muted:#69748a;
  --line:#dfe5ef;
  --bg:#f5f7fb;
  --white:#fff;
  --shadow:0 14px 34px rgba(20,38,74,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Pretendard,"Noto Sans KR",Arial,sans-serif;color:var(--ink);line-height:1.55;background:#fff}
a{text-decoration:none;color:inherit}
.wrap{width:min(1180px,calc(100% - 32px));margin:auto}
.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}

.site-header{border-bottom:1px solid var(--line);background:#fff}
.header-inner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;max-width:245px}
.brand-logo{display:block;width:100%;height:48px;object-fit:contain;object-position:left center}
.header-jump{display:flex;gap:10px;align-items:center;background:var(--orange);color:#fff;padding:10px 12px 10px 17px;border-radius:14px;font-weight:800;white-space:nowrap}
.header-jump strong{background:#fff;color:#d95600;padding:7px 10px;border-radius:9px}

.hero{padding:34px 0 18px;background:linear-gradient(180deg,#f1f5ff,#fff)}
.hero-wrap{display:flex;flex-direction:column;gap:16px}
.hero-copy{text-align:center;max-width:820px;margin:auto}
.eyebrow{display:inline-block;color:var(--blue);font-size:13px;font-weight:900;margin-bottom:8px}
.hero h1{font-size:clamp(32px,4.2vw,48px);line-height:1.15;letter-spacing:-.045em;margin:0 0 12px}
.hero h1 em{font-style:normal;color:var(--orange)}
.hero-copy p{font-size:16px;color:var(--muted);margin:0}

.search-panel{margin:8px auto 0;max-width:860px;padding:20px;border-radius:22px;background:#fff;box-shadow:var(--shadow)}
.search-box{display:flex;align-items:center;gap:10px;border:3px solid var(--blue);border-radius:16px;padding:5px 8px 5px 15px}
.search-box>span{font-size:28px;color:var(--blue)}
.search-box input{flex:1;border:0;outline:0;padding:14px 3px;font-size:17px;min-width:0}
.search-box button{border:0;background:#edf2ff;color:var(--blue);font-weight:900;padding:10px;border-radius:9px;cursor:pointer}
.filter-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:14px}
.filter{border:1px solid var(--line);background:#fff;padding:9px 13px;border-radius:999px;font-weight:800;cursor:pointer}
.filter.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.search-status{text-align:center;min-height:21px;margin-top:9px;color:var(--blue);font-weight:800}
.affiliate-notice{margin:4px 0 0;color:#7a8293;font-size:13px;line-height:1.7}

.courses-section{padding:20px 0 70px;background:var(--bg)}
.content-with-sidebar{display:grid;grid-template-columns:minmax(0,1fr) 255px;gap:24px;align-items:start}
.group-heading{padding:20px 0 14px}
.group-heading.spaced{padding-top:38px}
.group-heading h2{font-size:30px;line-height:1.23;margin:0 0 7px;letter-spacing:-.03em}
.group-heading p{margin:0;color:var(--muted)}
.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.course-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 7px 20px rgba(29,46,82,.07);transition:.18s}
.course-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(29,46,82,.14);border-color:#aec0f2}
.course-card.hidden,.section-hidden{display:none!important}
.course-image{height:188px;background:#f5f7fb;padding:10px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.course-image img{width:100%;height:100%;object-fit:contain;object-position:center;display:block;filter:contrast(1.06) saturate(1.03)}
.course-visual{flex-direction:column;padding:16px;text-align:center;background:#f2f6ff;color:var(--navy)}
.course-visual span{font-size:12px;font-weight:900;color:var(--blue)}
.course-visual strong{margin-top:8px;font-size:20px;line-height:1.3}
.course-visual small{margin-top:6px;color:var(--muted)}
.course-body{display:flex;flex-direction:column;flex:1;padding:17px}
.tag{align-self:flex-start;font-size:12px;font-weight:900;padding:5px 9px;border-radius:999px;background:#eaf1ff;color:var(--blue)}
.course-card.priority .tag{background:#fff0e4;color:#c95700}
.course-card h3{font-size:20px;line-height:1.28;margin:12px 0 7px;letter-spacing:-.02em}
.course-card p{font-size:14px;color:var(--muted);margin:0 0 14px}
.course-card b{margin-top:auto;display:block;background:var(--blue);color:#fff;text-align:center;padding:12px;border-radius:10px;font-size:14px}
.course-card.priority b{background:var(--orange)}
.all-courses.collapsed .course-card:nth-child(n+10){display:none}
.expand-btn{width:100%;margin-top:16px;border:2px solid var(--blue);background:#fff;color:var(--blue);padding:14px;border-radius:12px;font-size:16px;font-weight:900;cursor:pointer}

.faq{margin-top:42px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:13px;margin:9px 0;padding:0 17px}
.faq summary{padding:16px 0;font-weight:900;cursor:pointer}
.faq p{color:var(--muted);margin:0;padding:0 0 16px}

.desktop-sticky{position:sticky;top:6px;align-self:start;padding-top:0}
.sticky-card{display:flex;flex-direction:column;min-height:292px;padding:14px;border-radius:18px;margin-bottom:10px;box-shadow:var(--shadow)}
.sticky-card img,.sticky-thumb{width:100%;height:95px;border-radius:11px;margin-bottom:10px}
.sticky-card img{object-fit:contain;background:#fff;padding:6px}
.sticky-thumb{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#fff3de,#ffe5bc);color:#9c5a00;font-size:16px;font-weight:900;text-align:center;padding:8px}
.sticky-card span{font-size:12px;font-weight:900}
.sticky-card strong{display:block;font-size:17px;line-height:1.34;margin-top:5px;min-height:46px}
.sticky-card p{font-size:14px;margin:7px 0 14px;min-height:42px}
.sticky-card b{margin-top:auto;display:block;text-align:center;padding:11px;border-radius:11px;font-weight:900}
.sticky-cpa{background:#2e59d8;color:#fff}
.sticky-cpa span,.sticky-cpa p{color:#eef4ff}
.sticky-cpa b{background:#fff;color:#2e59d8}
.sticky-book{background:#f8ecd7;color:#1a2640;border:1px solid #f0d5a2}
.sticky-book span{color:#81510e}
.sticky-book p{color:#6c6052}
.sticky-book b{background:var(--orange);color:#fff}

.site-footer{border-top:1px solid var(--line);padding:30px 0 95px;font-size:14px;color:var(--muted)}
.site-footer a{color:var(--navy)}
.mobile-bar{position:fixed;left:0;right:0;bottom:0;display:flex;gap:8px;align-items:stretch;padding:10px 12px;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-top:1px solid var(--line);z-index:40}
.mobile-bar a{flex:1;border-radius:14px;padding:11px 12px;display:flex;flex-direction:column;justify-content:center;min-height:58px}
.mobile-bar strong{font-size:15px;line-height:1.2}
.mobile-bar span{font-size:13px;margin-top:3px}
.mobile-cpa{background:#2e59d8;color:#fff}.mobile-book{background:#f7e8d0;color:#192541}
.bar-close{position:absolute;right:10px;top:-38px;width:32px;height:32px;border:1px solid var(--line);background:#fff;border-radius:50%;font-size:20px;cursor:pointer}
.mobile-bar.closed{display:none}

@media (max-width:980px){
  .content-with-sidebar{grid-template-columns:1fr}
  .desktop-sticky{display:none}
  .course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:720px){
  .header-inner{min-height:68px}
  .brand{max-width:190px}
  .brand-logo{height:40px}
  .header-jump{font-size:14px;padding:9px 10px 9px 12px}
  .header-jump span{display:none}
  .hero{padding:26px 0 16px}
  .hero h1{font-size:34px}
  .hero-copy p{font-size:15px}
  .search-panel{padding:16px;border-radius:18px}
  .search-box{padding-left:12px}
  .search-box input{padding:12px 2px;font-size:16px}
  .group-heading h2{font-size:27px}
}
@media (max-width:560px){
  .wrap{width:min(100% - 24px,1180px)}
  .course-grid{grid-template-columns:1fr}
  .course-image{height:200px}
  .site-footer{padding-bottom:105px}
}
.affiliate-notice{display:none!important}
.affiliate-strip{width:100vw;margin-left:calc(50% - 50vw);background:#fff4cf;border-top:1px solid #f2cf66;border-bottom:1px solid #f2cf66;color:#241f16;font-size:15px;font-weight:800;line-height:1.6;padding:18px 0;margin-top:8px}
.affiliate-strip .wrap{position:relative}
.affiliate-strip .wrap::before{content:'※';color:#ff6f00;font-size:20px;margin-right:7px}
.sticky-book img{object-fit:contain;background:#fff;padding:6px}
@media(max-width:720px){.affiliate-strip{font-size:14px;padding:15px 0}}

/* final visual corrections */
.affiliate-strip{padding:20px 0;font-size:16px;font-weight:800;background:#fff3c9;border-color:#efca59}
.affiliate-strip .wrap{display:flex;align-items:center;gap:8px}
.affiliate-strip .wrap::before{content:'※';flex:0 0 auto;color:#ff6d00;font-size:22px;font-weight:900;line-height:1}
.course-image{height:220px;padding:8px}
.course-image img{max-width:100%;max-height:100%;object-fit:contain}
.sticky-card{min-height:365px;padding:15px}
.sticky-card img,.sticky-thumb{height:145px;margin-bottom:12px}
.sticky-card img{padding:3px}
.sticky-card strong{font-size:18px;min-height:48px}
.sticky-card p{min-height:44px}
.sticky-card b{padding:13px}
@media(max-width:720px){
  .affiliate-strip{font-size:14px;padding:16px 0}
  .course-image{height:205px}
}

/* Mobile fixed bar: mobile/tablet only */
.mobile-bar{display:none}
.site-footer{padding-bottom:30px}
@media (max-width:980px){
  .mobile-bar{display:flex}
  .mobile-bar.closed{display:none}
  .site-footer{padding-bottom:105px}
}

/* Final card consistency adjustments */
.course-card h3{min-height:52px;display:flex;align-items:flex-start}
.course-card p{min-height:66px}
.course-card b{min-height:54px;display:flex;align-items:center;justify-content:center;line-height:1.35;padding:10px 12px}

/* Final CTA button uniformity — no other visual changes */
.course-card b{
  height:58px;
  min-height:58px;
  max-height:58px;
  flex:0 0 58px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.3;
  padding:8px 10px;
  overflow:hidden;
}


/* Mid-page CPS recommendation cards */
.recommendation-section{margin-top:8px}
.recommendation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.recommendation-card .tag{background:#e9f6ff;color:#14658f}
.recommendation-card b{background:var(--navy)}
@media(max-width:560px){.recommendation-grid{grid-template-columns:1fr}}
