/* EP.2 only; loaded after the existing desktop/mobile styles. */
.blacklabel-episode2:not(#blacklabel-episode2-mobile) #section__complex .ep2-carousel,
.blacklabel-episode2:not(#blacklabel-episode2-mobile) #section__complex .ep2-story-action,
.blacklabel-episode2:not(#blacklabel-episode2-mobile) #section__how .ep2-carousel { width: calc(100% - 120px); max-width: 1200px; margin-left: auto; margin-right: auto; }
.blacklabel-episode2:not(#blacklabel-episode2-mobile) #section__how .how__txt { max-width: 1200px; margin-left: auto; margin-right: auto; }
.blacklabel-episode2:not(#blacklabel-episode2-mobile) #section__how .how__txt .--point { font-size: 32px; line-height: 1.65; }
.blacklabel-episode2:not(#blacklabel-episode2-mobile) #section__how .how__caption { margin-top: 36px; }
.blacklabel-episode2 #section__complex .ep2-story-pair { flex: 0 0 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; scroll-snap-stop: always; }
.blacklabel-episode2 #section__complex .ep2-story-pair img { min-width: 0; width: 100%; height: auto; }
#blacklabel-episode2-mobile #section__complex .ep2-story-pair { grid-template-columns: minmax(0, 1fr); gap: 10px; }
#quick .--help strong, #quick .--help em { font-family: var(--gimpo), sans-serif; line-height: 1.4; overflow: visible; flex-shrink: 0; }
.blacklabel-episode2 .ep2-story-action { display: flex; justify-content: flex-end; margin-top: 20px; }
.blacklabel-episode2 .ep2-story-action button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 0 20px; border: 1px solid #d8bfd5; border-radius: 8px; background: #faf6fa; color: #924088; font-family: inherit; font-size: 16px; font-weight: 500; line-height: 1.4; white-space: nowrap; cursor: pointer; transition: background-color .18s, border-color .18s, color .18s; }
.blacklabel-episode2 .ep2-story-action button:hover { background: #924088; border-color: #924088; color: #fff; }
.blacklabel-episode2 .ep2-story-action button:focus-visible { outline: 2px solid #924088; outline-offset: 3px; }
.blacklabel-episode2 .ep2-story-action button > span { position: relative; display: block; flex: 0 0 18px; width: 18px; height: 18px; margin: 0; padding: 0; background: none; border: 0; transform: none; }
.blacklabel-episode2 .ep2-story-action button > span::before { content: ''; position: absolute; left: 1px; top: 8px; width: 14px; height: 2px; background: currentColor; }
.blacklabel-episode2 .ep2-story-action button > span::after { content: ''; position: absolute; right: 2px; top: 6px; width: 6px; height: 6px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); box-sizing: border-box; }
.blacklabel-episode2 .ep2-solution-link { flex-direction: column; gap: 5px; height: 82px; }
.blacklabel-episode2 .ep2-solution-link small { display: block; font-size: 16px; font-weight: 400; }
.blacklabel-episode2 .ep2-solution-link > .--01 { padding-top: 0; }
.blacklabel-episode2 #section__solution .solution__info .--point { margin-top: 46px; }
.blacklabel-episode2 .ep2-notice { font-size: 13px; line-height: 1.8; color: #888; }
.blacklabel-episode2 #section__review .review__content { padding: 90px 0; }
.blacklabel-episode2 #section__review .review__content > .review__wrapper { max-width: 1100px; width: 86%; }
.blacklabel-episode2 #section__review .review__content .review__txt h3 { font-size: 54px; }
.blacklabel-episode2 #section__review .ep2-review-days .item__inner > p { font-size: 48px; }
.blacklabel-episode2 #section__review .ep2-review-days .item__inner > p span { font-size: 15px; }
.blacklabel-episode2 .ep2-review-days .img__inner { position: relative; }
.blacklabel-episode2 .ep2-review-days .ep2-play-mark { position: absolute; left: 50%; top: 50%; width: 36px; height: 36px; border: 1px solid #fff; border-radius: 50%; background: rgba(0,0,0,.2); transform: translate(-50%,-50%); pointer-events: none; transition: opacity .15s; box-sizing: border-box; }
.blacklabel-episode2 .ep2-review-days .ep2-play-mark::after { content: ''; position: absolute; top: 50%; left: 53%; transform: translate(-50%,-50%); border-left: 9px solid #fff; border-top: 6px solid transparent; border-bottom: 6px solid transparent; }
.blacklabel-episode2 .ep2-review-days video[aria-pressed="true"] + .ep2-play-mark { opacity: 0; }
.blacklabel-episode2 #section__progress { width: 90%; max-width: 1000px; margin-top: 90px; padding: 0 0 90px; }
.blacklabel-episode2 #section__progress .review__txt { margin-bottom: 30px; }
.blacklabel-episode2 #section__progress .review__txt h3 { font-size: 50px; }
.blacklabel-episode2 #section__progress .ep2-progress-row { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; width: 690px; max-width: 100%; margin: 0 auto; }
.blacklabel-episode2 #section__progress .ep2-progress-row .item__inner { width: 100%; min-width: 0; }
.blacklabel-episode2 #section__progress .ep2-progress-row .img__inner img { width: 100%; height: auto; aspect-ratio: 458/503; object-fit: cover; }
.blacklabel-episode2 #section__progress .review__item + .review__item { margin-top: 24px; }
.blacklabel-episode2 #section__progress .ep2-progress-caption { margin-top: 8px; font-size: 16px; }
.blacklabel-episode2 #section__progress .ep2-progress-row .balstyle__nav { width: 30px; height: 30px; }
.blacklabel-episode2 #section__progress .ep2-selfies { margin-top: 48px; }
/* Original PSD artwork remains; the five explanations are now selectable text. */
.blacklabel-episode2 #section__makeover { background-image: url('../img/episode2/makeover-textless.webp'); aspect-ratio: 2000/1340; }
.blacklabel-episode2 #section__makeover .makeover__wrapper { padding: 0; max-width: none; }
.blacklabel-episode2 #section__makeover .makeover__txt { position: absolute; top: 5%; left: 0; width: 100%; }
.blacklabel-episode2 #section__makeover .makeover__txt h2 { font-size: min(3vw,60px); }
.blacklabel-episode2 #section__makeover .makeover__txt p { font-size: min(1.3vw,26px); }
.blacklabel-episode2:not(#blacklabel-episode2-mobile) #section__makeover .makeover__txt h2 { line-height: 1.25; }
.blacklabel-episode2:not(#blacklabel-episode2-mobile) #section__makeover .makeover__txt p { margin-top: min(1vw,20px); line-height: 1.5; }
.blacklabel-episode2 #section__makeover .makeover__visual, .blacklabel-episode2 #section__makeover .visual__inner { position: absolute; inset: 0; width: 100%; height: 100%; }
.blacklabel-episode2 #section__makeover .visual__inner .point__card { clip: auto; overflow: visible; margin: 0; padding: 1% .5%; white-space: normal; border: 0; box-sizing: border-box; width: 21.25%; height: 12.24%; display: flex; flex-direction: column; justify-content: center; text-align: center; }
.blacklabel-episode2 #section__makeover .point__card strong { color: #924088; font-size: clamp(15px,1.3vw,26px); line-height: 1.5; margin-bottom: .6em; }
.blacklabel-episode2 #section__makeover .point__card p { color: #888; font-size: clamp(12px,1vw,20px); line-height: 1.65; }
.blacklabel-episode2 #section__makeover .point__card.--pos01 { left: 10.3%; top: 33.43%; }
.blacklabel-episode2 #section__makeover .point__card.--pos02 { left: 67.75%; top: 32.54%; }
.blacklabel-episode2 #section__makeover .point__card.--pos03 { left: 14.45%; top: 53.73%; height: 9.7%; }
.blacklabel-episode2 #section__makeover .point__card.--pos04 { left: 68.2%; top: 61.19%; }
.blacklabel-episode2 #section__makeover .point__card.--pos05 { left: 28.8%; top: 72.61%; }
.blacklabel-episode2 #section__makeover .makeover__info { width: min(1400px,90%); padding: 40px; bottom: -77px; }
.blacklabel-episode2 #section__makeover .makeover__info p { font-size: 26px; }
.ep2-video-dialog { position: fixed; inset: 0; z-index: 100000; margin: auto; padding: 50px 16px 16px; width: min(1000px,92vw); max-width: 92vw; border: 0; background: #111; color: #fff; }
.ep2-video-dialog::backdrop { background: rgba(0,0,0,.8); }
.ep2-video-dialog iframe { display: block; width: 100%; aspect-ratio: 16/9; border: 0; }
.ep2-video-dialog .ep2-video-close { position: absolute; right: 16px; top: 8px; color: #fff; background: none; border: 0; padding: 4px; min-height: 36px; min-width: 44px; font: 16px sans-serif; cursor: pointer; }
#blacklabel-episode2-mobile .ep2-story-action { margin: 12px 0 0; }
#blacklabel-episode2-mobile .ep2-story-action button { min-height: 44px; padding: 0 15px; gap: 10px; font-size: 14px; border-radius: 6px; }
#blacklabel-episode2-mobile .ep2-solution-link { height: auto; min-height: 52px; padding: 8px 14px; gap: 3px; }
#blacklabel-episode2-mobile .ep2-solution-link small { font-size: 10px; }
#blacklabel-episode2-mobile #section__solution .solution__info .--point { margin-top: 24px; }
#blacklabel-episode2-mobile .ep2-notice { font-size: 10px; line-height: 1.8; }
#blacklabel-episode2-mobile #section__review .review__content { padding: 50px 0; }
#blacklabel-episode2-mobile #section__review .review__content > .review__wrapper { width: 90%; }
#blacklabel-episode2-mobile #section__review .review__content .review__txt h3 { font-size: 28px; }
#blacklabel-episode2-mobile #section__review .ep2-review-days .item__inner > p { font-size: 24px; }
#blacklabel-episode2-mobile #section__review .ep2-review-days .item__inner > p span { font-size: 10px; }
#blacklabel-episode2-mobile .ep2-review-days .ep2-play-mark { width: 28px; height: 28px; }
#blacklabel-episode2-mobile #section__progress { max-width: none; width: 90.9375%; padding: 0 0 50px; margin: 55px auto 0; }
#blacklabel-episode2-mobile #section__progress .review__txt h3 { font-size: calc(var(--unit) * 8.125); }
#blacklabel-episode2-mobile #section__progress .ep2-progress-caption { font-size: calc(var(--unit) * 3.4375); margin-top: calc(var(--unit) * 1.25); line-height: 1; }
#blacklabel-episode2-mobile #section__progress .review__txt { margin-bottom: calc(var(--unit) * 5.9375); }
#blacklabel-episode2-mobile #section__progress .ep2-progress-row { width: 100%; column-gap: calc(var(--unit) * 1.40625); }
#blacklabel-episode2-mobile #section__progress .ep2-selfies { margin-top: calc(var(--unit) * 10.78125); }
#blacklabel-episode2-mobile #section__progress .ep2-progress-row .img__inner img { aspect-ratio: 188/233; }
#blacklabel-episode2-mobile #section__progress .ep2-progress-row .balstyle__nav { width: 22px; height: 22px; }
#blacklabel-episode2-mobile #section__makeover { aspect-ratio: auto; background: #dfdfe3; }
#blacklabel-episode2-mobile #section__makeover .makeover__wrapper { position: relative; padding-top: calc(var(--unit) * 18.75); }
#blacklabel-episode2-mobile #section__makeover .makeover__txt { position: relative; top: auto; }
#blacklabel-episode2-mobile #section__makeover .makeover__txt h2 { font-size: calc(var(--unit) * 7.8125); }
#blacklabel-episode2-mobile #section__makeover .makeover__txt p { font-size: 14px; }
#blacklabel-episode2-mobile #section__makeover .makeover__visual { position: relative; aspect-ratio: 640/505; }
#blacklabel-episode2-mobile #section__makeover .ep2-map-label { position: absolute; display: flex; align-items: center; justify-content: center; color: #924088; font-size: calc(18 * 100vw / 640); line-height: 1.2; font-weight: 700; white-space: nowrap; }
#blacklabel-episode2-mobile #section__makeover .makeover__info { position: relative; width: 90%; left: auto; bottom: auto; padding: 24px 12px; }
#blacklabel-episode2-mobile #section__makeover .makeover__info p { font-size: 12px; }

/* Gimpo glyphs sit above the line-box center; align the visible lettering. */
.blacklabel-episode2 .ep2-story-action .ep2-story-label { display: block; position: relative; top: 4px; margin: 0; padding: 0; font: inherit; color: inherit; }
#blacklabel-episode2-mobile .ep2-story-action .ep2-story-label { top: 1px; }

/* EP.2 diagnosis: reuse the original separate photos and align the chin level. */
.ep2-diagnosis.ep2-diagnosis-aligned { position:relative; display:flex; overflow:hidden; border-radius:5.5%; width:100%; container-type:inline-size; }
.ep2-diagnosis-aligned .ep2-diagnosis-photo { width:50%; overflow:hidden; }
.ep2-diagnosis-aligned .ep2-diagnosis-photo img { display:block; width:100%; height:auto; margin:0; }
.ep2-diagnosis-aligned .ep2-diagnosis-oblique img { transform:scale(1.10); transform-origin:50% 0; }
.ep2-diagnosis-aligned .ep2-diagnosis-label { position:absolute; left:50%; bottom:10.3%; transform:translateX(-50%); display:flex; align-items:center; justify-content:center; width:21.6%; height:8.9%; border-radius:999px; color:#fff; background:#924088; font-size:clamp(10px,3.3cqw,30px); font-weight:700; line-height:1; }
#blacklabel-episode2-mobile .ep2-diagnosis-aligned { aspect-ratio:583/323; }
#blacklabel-episode2-mobile .ep2-diagnosis-aligned .ep2-diagnosis-label { bottom:3%; height:10%; }

/* Round only the combined frame; keep the shared photo edge square. */
#section__keypoint .keypoint__top .keypoint__left .ep2-diagnosis-aligned { gap:0; }
#section__keypoint .keypoint__top .keypoint__left .ep2-diagnosis-aligned .ep2-diagnosis-photo img { border-radius:0; }

/* Overlap the source-image edges to cover the hairline seam. */
.ep2-diagnosis-aligned .ep2-diagnosis-photo { width:calc(50% + 1px); flex:0 0 calc(50% + 1px); }
.ep2-diagnosis-aligned .ep2-diagnosis-oblique { margin-left:-2px; }

.ep2-diagnosis-aligned .ep2-diagnosis-label > span { display:block; transform:translateY(.18em); }
