.programs-page {
  --program-ink: #17252e;
  --program-muted: #596672;
  --program-line: #dce2e7;
}

.cw-programs-intro { padding: 48px 0 36px; }
.cw-programs-eyebrow { margin: 0 0 12px; color: #23695d; font-size: 12px; font-weight: 700; letter-spacing: 0; }
body.v2 main .cw-programs-intro h1 { margin: 0; color: var(--program-ink); font-size: 42px; font-weight: 750; line-height: 1.3; }
.cw-programs-lead { max-width: 940px; margin: 18px 0 0; color: var(--program-muted); font-size: 17px; font-weight: 400; line-height: 1.8; }
.cw-programs-catalog { padding: 0 0 56px; }
.cw-catalog-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 20px 0; border-top: 1px solid var(--program-line); }
body.v2 main .cw-catalog-heading h2 { margin: 0; font-size: 18px; font-weight: 650; line-height: 1.5; }
.cw-catalog-heading > span { flex-shrink: 0; color: var(--program-muted); font-size: 13px; }
.cw-program-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.cw-program-card { display: flex; min-width: 0; flex-direction: column; padding: 24px; border: 1px solid var(--program-line); border-radius: 8px; background: #fff; }
.cw-program-card-top { display: flex; min-height: 88px; align-items: center; justify-content: space-between; gap: 12px; margin: -8px -8px 14px; }
.cw-program-art { display: block; width: 88px; height: 88px; flex: 0 0 88px; background-image: url('../img/programs-illustrations-korean-20260914.png'); background-repeat: no-repeat; background-size: 300% 200%; }
.cw-art-autofit { width: 140px; flex-basis: 140px; background-image: url('../img/autofit-usage-screen-20260914.png'); background-position: center; background-size: contain; cursor: zoom-in; }
.cw-art-autofit:focus-visible { outline: 3px solid #7cb5fa; outline-offset: 3px; }
.cw-art-repair { background-position: 50% 0; }
.cw-art-school { background-position: 100% 0; }
.cw-art-portrait { width: 140px; flex-basis: 140px; background-image: url('../img/cw-portrait-usage-screen-20260918.png'); background-position: center; background-size: contain; cursor: zoom-in; }
.cw-art-portrait:focus-visible { outline: 3px solid #7cb5fa; outline-offset: 3px; }
.cw-art-studio { background-position: 50% 100%; }
.cw-art-album { background-position: 100% 100%; }
.cw-art-booth { background-image: url('../img/photokiosk-app-icon.png'); background-position: center; background-size: contain; }
.cw-program-category { margin: 0 8px 0 0; color: var(--program-muted); font-size: 12px; font-weight: 400; }
.cw-program-category > span { margin-right: 6px; color: #23695d; font-weight: 700; }
#photo-repair .cw-program-category > span { color: #117d83; }
#school-photo .cw-program-category > span { color: #9a6700; }
#cw-portrait .cw-program-category > span { color: #b84b4b; }
#album-editor .cw-program-category > span { color: #a74245; }
.cw-program-brand { margin: 0 0 6px; color: var(--program-muted); font-size: 12px; font-weight: 400; }
body.v2 main .cw-program-card h2 { margin: 0; color: var(--program-ink); font-size: 21px; font-weight: 700; line-height: 1.5; }
.cw-program-description { margin: 16px 0 18px; color: var(--program-muted); font-size: 15px; font-weight: 400; line-height: 1.8; }
.cw-program-card .cw-program-description > p { margin: 0 0 12px; font: inherit; }
.cw-program-card .cw-program-description > p:last-child { margin-bottom: 0; }
.cw-program-card .cw-program-description > .cw-program-included { color: #14734e; }
#autofit .cw-autofit-description .cw-autofit-note { padding-top: 12px; border-top: 1px solid var(--program-line); font-size: 13px; line-height: 1.8; }
.cw-program-features { display: grid; gap: 6px; margin: auto 0 24px; padding: 0 0 0 17px; color: #394854; font-size: 14px; font-weight: 400; line-height: 1.7; }
.cw-program-features li::marker { color: #7f939a; }
.cw-program-price { display: grid; margin: 0 0 18px; border-top: 1px solid #d8e2dc; border-bottom: 1px solid #d8e2dc; }
.cw-program-price > div { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 4px 16px; padding: 12px 0; }
.cw-program-price > div + div { border-top: 1px solid #e7ece9; }
.cw-program-price dt { flex: 1 0 8em; color: #263b48; font-size: 14px; font-weight: 600; }
.cw-program-price dd { max-width: 100%; margin: 0; color: #183f35; font-size: 18px; font-weight: 750; line-height: 1.4; text-align: right; white-space: normal; }
.cw-program-price small { color: var(--program-muted); font-size: 12px; font-weight: 500; }
.cw-program-card-bottom { display: flex; min-height: 42px; flex-wrap: wrap; align-items: center; gap: 12px; padding-top: 18px; border-top: 1px solid #edf0f2; }
.programs-page .cw-program-action { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; padding: 9px 14px; border: 1px solid #cdd6dd; border-radius: 6px; color: #233746; background: #fff; font-size: 14px; font-weight: 600; line-height: 1.5; text-align: center; cursor: pointer; }
.programs-page .cw-program-action.primary { border-color: #245bc6; color: #fff; background: #245bc6; }
.programs-page .cw-program-action:hover { background: #f1f5f7; border-color: #91a4b3; }
.programs-page .cw-program-action.primary:hover { background: #1949a8; border-color: #1949a8; }
.programs-page .cw-program-guide-link { color: #315b83; font-size: 13px; font-weight: 500; text-decoration: underline; text-underline-offset: 4px; }
.programs-page :is(.cw-program-action, .cw-program-guide-link):focus-visible { outline: 3px solid #7cb5fa; outline-offset: 3px; }
.cw-programs-guides { padding: 38px 0 48px; border-top: 1px solid var(--program-line); background: #f7f9fa; }
body.v2 main .cw-programs-guides h2 { margin: 0 0 20px; font-size: 22px; font-weight: 650; }
.cw-program-guide-anchor { scroll-margin-top: 104px; }
.cw-program-guide { border-top: 1px solid var(--program-line); }
.cw-program-guide > summary { padding: 18px 0; color: var(--program-ink); font-size: 15px; font-weight: 600; cursor: pointer; }
.cw-program-guide > summary:focus-visible { outline: 2px solid #245bc6; outline-offset: 3px; }
.cw-program-guide-content { padding: 0 0 20px 18px; color: var(--program-muted); font-size: 14px; font-weight: 400; line-height: 1.85; }
.cw-program-guide-content p { margin: 0 0 12px; }
.cw-program-guide-content ul { margin: 0 0 14px; padding-left: 18px; }
.cw-programs-closing { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 36px; padding-top: 30px; border-top: 1px solid var(--program-line); }
body.v2 main .cw-programs-closing h2 { margin: 0 0 10px; font-size: 20px; }
.cw-programs-closing p { max-width: 780px; margin: 0; color: var(--program-muted); font-size: 14px; font-weight: 400; line-height: 1.8; }
.cw-programs-closing > a { flex-shrink: 0; }

@media (max-width: 1000px) {
  .cw-program-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .cw-programs-intro { padding: 32px 0 26px; }
  body.v2 main .cw-programs-intro h1 { font-size: 30px; }
  .cw-programs-lead { font-size: 15px; }
  .cw-desktop-break { display: none; }
  .cw-catalog-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  body.v2 main .cw-catalog-heading h2 { font-size: 17px; }
  .cw-program-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .cw-program-card { padding: 22px; }
  .cw-program-card-top { margin-bottom: 10px; }
  body.v2 main .cw-program-card h2 { font-size: 22px; }
  .cw-program-description { margin-top: 14px; }
  .cw-programs-closing { flex-direction: column; align-items: flex-start; gap: 18px; }
}
@media (max-width: 360px) {
  body.v2 main .cw-programs-intro h1 { font-size: 26px; }
  .cw-program-card { padding: 18px; }
  body.v2 main .cw-program-card h2 { font-size: 20px; }
  .cw-program-price > div { align-items: flex-start; flex-direction: column; gap: 3px; }
  .cw-program-price dt { flex: 0 1 auto; }
  .cw-program-price dd { text-align: left; }
  .cw-program-card-bottom { gap: 10px; }
}
