@import url("/assets/reviews.css?v=8cc35606edd3");
/* 2028 이해원 교재패스 (/pass/, /pass/books/) 와 2028 N제·모의고사 소개 페이지. 표 기본은 home.css의 .pass-table. */
.pass-page,.ps-intro{--pass:var(--color-editorial-accent);--pass-2:#b79be0;--pass-bg:var(--color-editorial-soft);--night:#000}
.pass-page .rate,.ps-intro .rate{display:inline-block;font-size:var(--type-note);font-weight:650;color:white;background:var(--pass);border-radius:var(--ui-radius-status);padding:5px 12px;line-height:var(--leading-body)}
.pass-page .rate.is-soon,.ps-intro .rate.is-soon{background:white;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.button.is-disabled{background:var(--color-disabled);color:var(--color-on-disabled);cursor:default;pointer-events:none}
.ps-note{font-size:var(--type-note);color:var(--muted);margin-top:12px;line-height:var(--leading-body)}
.ps-subhead{font-size:var(--type-card);letter-spacing:var(--tracking-heading);margin:44px 0 18px;line-height:var(--leading-heading);font-weight:600}
.ps-fine{font-size:var(--type-note);color:var(--muted);line-height:var(--leading-body);margin-top:22px;max-width:820px}
.ps-scope{display:inline-block;align-self:flex-start;font-size:var(--type-note);font-weight:650;color:var(--pass);background:transparent;border-radius:0;padding:0;line-height:var(--leading-body)}
.pass-table .ps-total th,.pass-table .ps-total td{font-weight:700}
.pass-table th small{display:block;font-weight:400;color:var(--muted);font-size:var(--type-note);margin-top:4px;line-height:var(--leading-body)}
.ps-pkg{text-align:right}.ps-pkg th{text-align:left}.ps-pkg thead th:not(:first-child){text-align:right}.pass-table.ps-pkg tbody th,.pass-table.ps-pkg thead th:first-child{padding-left:0}
/* 패키지 표는 이름·교재 수·할인 세 열뿐이라 가로 스크롤 없이, 넓은 화면에서도 열이 멀어지지 않게 */
.pass-table.ps-pkg{min-width:0;max-width:760px}.ps-pkg td,.ps-pkg thead th:not(:first-child){white-space:nowrap}
.ps-localnav .localnav-inner strong{font-size:var(--type-body);line-height:var(--leading-body)}
/* 패스 구매하기: 공식 구매 페이지를 잇기 전에는 비활성. 상단 메뉴는 좁은 화면에서도 오픈 날짜를 버튼 둘째 줄에 보인다. */
.ps-localnav .ps-buy-soon{flex-direction:column;gap:0;padding-top:4px;padding-bottom:4px;line-height:1.25}
.ps-localnav .ps-buy-soon small{font-size:inherit;font-weight:400}
.pass-page #integrate-book-wave .iw-action:disabled{background:var(--color-disabled);color:var(--color-on-disabled);cursor:default}

/* 표지 */
.ps-cover{display:block;width:100%;height:auto;aspect-ratio:248/351;object-fit:cover;border-radius:3px 6px 6px 3px;background:#2c2c2e}
.ps-cover-new{display:flex;flex-direction:column;justify-content:flex-end;padding:12%;color:white;background:linear-gradient(160deg,#9c7bd1 0%,#714d9c 55%,#3e2a5c 100%);box-sizing:border-box}
.ps-cover-new[aria-label*="모의고사"]{background:linear-gradient(160deg,#4a4a4f 0%,#1d1d1f 100%)}
.ps-cover-new b{font-size:clamp(11px,1.3vw,20px);white-space:nowrap;letter-spacing:-.02em;line-height:1}
.ps-cover-new small{font-size:clamp(6px,.6vw,9px);opacity:.75;margin-top:4px}

/* ① 첫 화면 — 검은 배경 위 교재 더미 */
.ps-v2 main{overflow-x:clip}
.ps-hero{position:relative;background:var(--night);color:#f5f5f7;text-align:center;overflow:hidden;padding-top:clamp(56px,8vh,100px)}
.ps-hero::after{content:'';position:absolute;left:50%;bottom:-18%;width:min(1100px,120vw);height:70%;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(151,104,214,.42),rgba(113,77,156,.12) 55%,transparent);pointer-events:none}
.ps-hero-copy{position:relative;z-index:2}
.ps-hero h1{font-size:var(--type-title);font-weight:800;letter-spacing:var(--tracking-heading);color:#f5f5f7;line-height:var(--leading-heading);font-family:var(--font-display);font-weight:800}
.ps-tagline{font-size:var(--type-lead);font-weight:700;letter-spacing:normal;line-height:var(--leading-body);margin-top:10px;
  color:#f5f5f7}
.ps-date{font-size:var(--type-lead);color:#a1a1a6;margin-top:18px;line-height:var(--leading-body)}
.ps-hero .button{margin-top:26px}
.ps-fan{--w:clamp(150px,16.5vw,264px);--step:2.5deg;--origin:300%;position:relative;z-index:1;list-style:none;margin:84px 0 0;padding:0;height:calc(var(--w) * 2.25);touch-action:pan-y;cursor:pointer;
  transform:rotate(var(--sway,0deg));transform-origin:50% calc(var(--w) * 4.245)}
.ps-fan li{--r:calc((var(--i) - (var(--n) - 1) / 2) * var(--step));position:absolute;left:50%;top:0;width:var(--w);margin-left:calc(var(--w) / -2);
  transform-origin:50% var(--origin);transform:rotate(var(--r));animation:ps-fan 1.3s cubic-bezier(.2,.75,.2,1) both;animation-delay:calc(var(--i) * 28ms)}
.ps-fan-book{display:block;position:relative;transform:translateY(calc(var(--lift,0) * -11%)) scale(calc(1 + var(--lift,0) * .04));transition:transform .35s cubic-bezier(.2,.75,.2,1),filter .35s}
.ps-fan li.is-picked{z-index:300!important}
.ps-fan li.is-picked .ps-fan-book{transform:translateY(-15%) scale(1.1)}
.ps-fan li.is-picked .ps-fan-book em,.ps-fan li.is-near .ps-fan-book em{opacity:1}
.ps-fan li.is-near{z-index:200!important}
.ps-fan.has-pick li:not(.is-picked):not(.ps-fan-label) .ps-fan-book{filter:brightness(.5) saturate(.7)}
.ps-fan.has-pick .ps-fan-label:not(.is-on){opacity:.35}
.ps-fan-label{transition:opacity .35s}
.ps-fan-label.is-on span{color:white}
.ps-fan .ps-cover{box-shadow:0 18px 40px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.06)}
.ps-fan-book em{position:absolute;left:50%;top:8%;transform:translateX(-50%);font-style:normal;font-size:var(--type-note);font-weight:600;white-space:nowrap;color:white;background:rgba(29,29,31,.86);border-radius:980px;padding:6px 12px;opacity:0;pointer-events:none;transition:opacity .25s;box-shadow:0 4px 14px rgba(0,0,0,.35);line-height:var(--leading-body)}
@media(hover:hover){.ps-fan:not(.is-live) li:not(.ps-fan-label):hover{z-index:5}.ps-fan:not(.is-live) li:hover .ps-fan-book{transform:translateY(-16%) scale(1.06)}.ps-fan:not(.is-live) li:hover .ps-fan-book em{opacity:1}}
/* 시리즈 이름표: 부채와 같은 축으로 돌려 호 위에 놓고, 글자는 다시 똑바로 세운다 */
.ps-fan-label{height:calc(var(--w) * 1.415);pointer-events:none;z-index:400}
.ps-fan-label span{position:absolute;left:50%;bottom:calc(100% + 20px);display:flex;align-items:baseline;gap:5px;white-space:nowrap;font-size:var(--type-note);font-weight:650;letter-spacing:normal;color:#f5f5f7;
  transform:translateX(-50%) rotate(calc(-1 * var(--r)));line-height:var(--leading-body)}
.ps-fan-label small{font-size:var(--type-note);font-weight:500;color:#a1a1a6;line-height:var(--leading-body)}
.ps-fan-label.is-plus span{color:var(--pass-2)}
/* 아래 부채: 부록 */
.ps-fan-caption{position:relative;z-index:2;font-size:var(--type-note);font-weight:600;color:#a1a1a6;margin-top:8px;line-height:var(--leading-body)}
.ps-fan.ps-fan-sub{--w:clamp(96px,9.4vw,150px);--step:5.6deg;margin-top:64px;height:calc(var(--w) * 2.3)}
.ps-fan-sub .ps-fan-label span{font-size:var(--type-note);bottom:calc(100% + 12px);line-height:var(--leading-body)}
.ps-fan-sub .ps-fan-book em{font-size:var(--type-note);padding:5px 10px;top:-10%;line-height:var(--leading-body)}
.ps-cover-app{display:flex;flex-direction:column;gap:.35em;padding:13% 11%;box-sizing:border-box;text-align:left;font-size:calc(var(--w) * .09);line-height:1.2;
  background:linear-gradient(165deg,#25314f 0%,#101626 100%);color:white}
.ps-cover-app b{font-size:.78em;letter-spacing:.14em;font-weight:700;color:#8fb3ff}
.ps-cover-app strong{font-size:1.3em;letter-spacing:-.03em;margin-top:.5em;white-space:nowrap}
.ps-cover-app small{font-size:.82em;opacity:.75;margin-top:auto}
.ps-cover-app.is-official{background:linear-gradient(165deg,#ffffff 0%,#e9e6ef 100%);color:#1d1d1f}
.ps-cover-app.is-official b{color:var(--pass)}
.ps-cover-app.is-mock6{background:linear-gradient(165deg,#5b3f8f 0%,#2a1d45 100%)}
.ps-cover-app.is-mock6 b{color:#d9c8f5;letter-spacing:0}
@keyframes ps-fan{from{transform:rotate(0deg) translateY(28%);opacity:0}40%{opacity:1}to{transform:rotate(var(--r));opacity:1}}

/* PDF-inspired connected purchase benefits and compact appendix wave */
.ps-numbers{background:var(--night);padding:36px 0 70px;position:relative;z-index:2}
.ps-benefit-chain{display:grid;grid-template-columns:132px 1fr 1.65fr 1.5fr;align-items:center;max-width:1100px;margin:0 auto;padding:28px;background:radial-gradient(ellipse at 35% 50%,#30213c66,transparent 75%);border-radius:28px;color:#ede6f5;text-align:center}
.ps-benefit-chain h2{display:flex;align-items:center;justify-content:center;width:132px;height:132px;border-radius:50%;background:linear-gradient(145deg,#76519b,#3c2858);box-shadow:inset 0 0 0 1px #b695d655,0 0 32px #8150b322;color:#f5edff;font-size:var(--type-body);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);position:relative;z-index:2;margin:0;font-weight:600}
.ps-benefit-pill{min-height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:7px solid #3f2e53;border-radius:100px;margin-left:-7px;padding:16px 18px;background:linear-gradient(150deg,#1c1525,#100d16)}
.ps-benefit-pill p{font-size:var(--type-body);line-height:var(--leading-body);letter-spacing:normal;margin:0;word-break:keep-all}
.ps-benefit-pill strong{font-size:var(--type-metric);color:var(--color-editorial-on-dark);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);vertical-align:baseline;font-family:var(--font-display);font-weight:700}.ps-benefit-pill strong small{font-size:var(--type-note);line-height:var(--leading-body)}
.ps-benefit-pill:first-of-type p{display:flex;align-items:baseline;justify-content:center;gap:7px;white-space:nowrap}
.ps-benefit-pill .ps-benefit-ten{font-size:var(--type-card);margin-top:4px;line-height:var(--leading-heading);font-weight:600}
.ps-bonus-wave{margin:36px auto 0;max-width:1100px;color:#e6def3}
.ps-wave-caption{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:2px}.ps-wave-caption p{font-size:var(--type-card);font-weight:600;margin:0;line-height:var(--leading-heading);font-weight:600}

.ps-wave-window{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);padding:30px 0 38px}
.ps-wave-belt{display:flex;width:max-content;animation:ps-bonus-drift 50s linear infinite}
.ps-wave-belt ul{display:flex;align-items:center;gap:18px;list-style:none;padding:0 18px 0 0;margin:0}
.ps-wave-belt li{width:82px;flex:none;animation:ps-bonus-bob 5s ease-in-out infinite;animation-delay:calc(var(--i)*-.38s)}
.ps-wave-belt a{display:block;border-radius:3px}.ps-wave-belt img.ps-cover-art{width:100%;box-shadow:3px 3px 0 #8c8593,7px 12px 16px #0008;border-radius:2px}
.ps-wave-belt a:focus-visible{outline:var(--ui-focus-width) solid var(--color-focus);outline-offset:var(--ui-focus-offset)}
.ps-wave-summary{font-size:var(--type-lead);font-weight:600;line-height:var(--leading-body);color:#e6def3;text-align:center;margin:0;padding:0 10px;word-break:keep-all}.ps-wave-hint{font-size:var(--type-note);line-height:var(--leading-body);color:#b7adc6;text-align:center;margin:10px 0 0}.ps-wave-note{font-size:var(--type-note);line-height:var(--leading-body);color:#a99dbb;text-align:center;margin:7px 0 0}

@keyframes ps-bonus-drift{to{transform:translateX(-50%)}}
@keyframes ps-bonus-bob{0%,100%{transform:translateY(8px) rotate(-3deg)}50%{transform:translateY(-8px) rotate(3deg)}}
@media(max-width:800px){.ps-numbers{padding:24px 0 50px}}
/* 혜택 원 줄: 999px 이하는 원 110px·문구 한 단계 작게, 759px 이하는 세로로 쌓는다(태블릿·화면 확대에서 칸이 3~4줄로 부풀지 않게). */
@media(max-width:999px){.ps-benefit-chain{grid-template-columns:110px 1fr 1.6fr 1.5fr;padding:18px 14px}.ps-benefit-chain h2{width:110px;height:110px}.ps-benefit-pill{min-height:110px;border-width:5px;margin-left:-5px;padding:10px 14px}.ps-benefit-pill p{font-size:var(--type-note)}}
@media(max-width:759px){.ps-benefit-chain{grid-template-columns:1fr;justify-items:center;padding:22px;border-radius:24px}.ps-benefit-chain h2{width:100px;height:100px}.ps-benefit-pill{width:100%;max-width:320px;min-height:90px;margin:-5px 0 0;padding:14px}.ps-benefit-pill p{font-size:var(--type-body)}}
@media(max-width:600px){.ps-wave-belt li{width:64px}.ps-wave-belt ul{gap:14px;padding-right:14px}.ps-bonus-wave{margin-top:26px}.ps-wave-note{font-size:var(--type-note);padding:0 14px;line-height:var(--leading-body)}}
@media(prefers-reduced-motion:reduce){.ps-wave-belt,.ps-wave-belt li{animation:none}.ps-wave-belt ul[aria-hidden]{display:none}.ps-wave-window{overflow-x:auto;mask-image:none}}
/* ③ 패스 고르기 */
.ps-choose{padding:var(--section-space) 0;text-align:center}
.ps-choose h2,.ps-plus h2,.ps-section>.viewport>h2,.ps-closing h2{font-size:var(--type-section);letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);font-family:var(--font-display);font-weight:700}
.ps-sub{font-size:var(--type-lead);color:var(--muted);margin-top:var(--heading-gap);line-height:var(--leading-body)}
.ps-toggle{display:inline-flex;margin-top:40px;padding:4px;border-radius:var(--ui-radius-card);background:#e8e8ed}
.ps-toggle button{min-width:120px;min-height:var(--ui-control-height);padding:0 22px;border:0;border-radius:var(--ui-radius-selection);background:transparent;font:inherit;font-size:var(--type-button);font-weight:600;color:var(--ink);cursor:pointer;transition:background .25s,box-shadow .25s,color .25s;line-height:1.4;font-weight:600}
.ps-toggle button[aria-checked=true]{background:var(--color-selection-surface);box-shadow:var(--ui-shadow-selection);color:var(--color-selection-text)}
.ps-toggle button:focus-visible{outline:var(--ui-focus-width) solid var(--color-focus);outline-offset:var(--ui-focus-offset)}
.ps-toggle-note{font-size:var(--type-note);color:var(--muted);margin-top:12px;line-height:var(--leading-body)}
.is-plus .ps-toggle-note{color:var(--pass);font-weight:600}
.ps-cards{display:grid;gap:var(--card-gap);margin:var(--content-gap) auto 0;max-width:1080px}
.ps-cards.is-2{grid-template-columns:repeat(2,1fr)}.ps-cards.is-3{grid-template-columns:repeat(3,1fr)}
.ps-card{background:var(--color-surface);border-radius:var(--ui-radius-comparison);padding:var(--card-padding);display:flex;flex-direction:column;align-items:center;transition:box-shadow .3s;color:var(--color-text-primary)}
.ps-card.is-current{box-shadow:inset 0 0 0 2px var(--color-selected)}
.ps-start{font-size:var(--type-body);font-weight:650;color:var(--pass);line-height:var(--leading-body)}
.ps-card h3{font-size:var(--type-section);letter-spacing:var(--tracking-heading);margin-top:6px;line-height:var(--leading-heading);font-family:var(--font-display);font-weight:700;color:var(--color-text-primary)}
.ps-plus-mark{color:inherit}
.ps-kicker{font-size:var(--type-body);color:#4c4c52;margin-top:6px;line-height:var(--leading-body)}
/* 표지 너비 --w, 겹침 --o: 좁은 화면에서는 함께 줄어 카드 밖으로 넘치지 않는다 */
.ps-deck{--w:min(84px,15vw);--o:min(46px,8.2vw);list-style:none;padding:0;margin:38px 0 6px;display:flex;justify-content:center;height:calc(var(--w)*1.9);align-items:flex-end}
.ps-deck li{width:var(--w);flex:none;margin-left:calc(var(--o)*-1);transition:margin .5s cubic-bezier(.2,.75,.2,1),opacity .4s,width .5s cubic-bezier(.2,.75,.2,1),transform .5s}
.ps-deck li:first-child{margin-left:0}
.ps-deck li{position:relative}
.ps-deck a{display:block;transition:transform .2s}
.ps-deck li:hover,.ps-deck li:focus-within{z-index:2}
.ps-deck a:hover,.ps-deck a:focus-visible{transform:translateY(-8px)}
.ps-deck a:focus-visible{outline:var(--ui-focus-width) solid var(--color-focus);outline-offset:var(--ui-focus-offset)}
.ps-deck li:nth-child(odd){transform:rotate(-3deg)}.ps-deck li:nth-child(even){transform:rotate(2.5deg) translateY(-4px)}
.ps-deck .ps-cover{box-shadow:6px 10px 18px rgba(0,0,0,.18)}
.ps-deck li.is-exam{width:calc(var(--w)*1.31)}.ps-deck li.is-exam .ps-cover{aspect-ratio:1000/1349}
.ps-bonus{display:inline-flex;align-items:center;gap:8px;margin-top:20px;padding:6px 16px 6px 6px;border-radius:980px;background:var(--pass-bg);color:var(--ink);font-size:var(--type-body);font-weight:600;text-decoration:none;line-height:var(--leading-body)}
.ps-bonus:hover{box-shadow:inset 0 0 0 1px var(--pass);text-decoration:none}
.ps-bonus-tag{background:var(--pass);color:#fff;border-radius:var(--ui-radius-status);padding:3px 10px;font-size:var(--type-note);font-weight:700;line-height:var(--leading-body)}
.ps-bonus b{color:var(--pass)}
.ps-bonus-note{font-size:var(--type-note);color:var(--muted);margin-top:8px;line-height:var(--leading-body)}
.ps-bonus-covers{--w:min(52px,11vw);display:flex;justify-content:center;list-style:none;padding:0;margin:24px 0 18px}
.ps-bonus-covers li{width:var(--w);margin-left:calc(var(--w)*-.5);position:relative}
.ps-bonus-covers li:first-child{margin-left:0}
.ps-bonus-covers a{display:block;transition:transform .2s}
.ps-bonus-covers li:hover,.ps-bonus-covers li:focus-within{z-index:2}
.ps-bonus-covers a:hover,.ps-bonus-covers a:focus-visible{transform:translateY(-8px)}
.ps-bonus-covers .ps-cover-app,.ps-bonus-mock .ps-cover-app{width:var(--w);aspect-ratio:367/520;padding:13% 11%;border-radius:2px;box-shadow:3px 5px 9px #0002}
.ps-bonus-covers a:focus-visible,.ps-bonus-mock:focus-visible{outline:var(--ui-focus-width) solid var(--color-focus);outline-offset:var(--ui-focus-offset)}
.ps-bonus-mock{--w:48px;display:flex;align-items:center;justify-content:center;gap:16px;width:100%;padding-top:18px;border-top:1px solid #dedee5;color:var(--ink);text-align:left;text-decoration:none}
.ps-bonus-mock .ps-cover-app{flex-shrink:0;padding:6px 5px;transform:rotate(-4deg)}
.ps-bonus-mock>span:last-child{display:flex;flex-direction:column;gap:4px}
.ps-bonus-mock>span>small{font-size:var(--type-note);color:var(--pass);font-weight:650;line-height:var(--leading-body)}
.ps-bonus-mock>span>strong{font-size:var(--type-body);letter-spacing:normal;line-height:var(--leading-body)}
.ps-bonus-mock>span>span{font-size:var(--type-note);color:var(--muted);line-height:var(--leading-body)}
.ps-bonus-mock>span>.ps-bonus-mock-count{font-size:var(--type-metric);font-weight:700;line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);color:var(--pass);margin-top:5px;font-family:var(--font-display);font-weight:700}
.ps-bonus-mock-count small{font-size:var(--type-note);letter-spacing:normal;margin-left:4px;line-height:var(--leading-body)}
.ps-bonus-preview-note{font-size:var(--type-note);color:var(--muted);margin-top:14px;line-height:var(--leading-body)}
.ps-bonus-block{width:100%;margin-top:26px;padding:24px 0 0;border-top:1px solid #d9d5e2}
.ps-bonus-label{font-size:var(--type-note);font-weight:650;color:var(--pass);letter-spacing:normal;line-height:var(--leading-body)}
.ps-bonus-total{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:10px;font-size:var(--type-body);font-weight:650;line-height:var(--leading-body)}
.ps-bonus-total strong{font-size:var(--type-metric);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);color:var(--pass);font-variant-numeric:tabular-nums;font-family:var(--font-display);font-weight:700}
.ps-bonus-total strong small{font-size:var(--type-note);letter-spacing:normal;margin-left:3px;line-height:var(--leading-body)}
.ps-bonus-difference{font-size:var(--type-note);line-height:var(--leading-body);color:var(--muted);margin-top:10px}
.ps-bonus-details{display:flex;align-items:center;justify-content:center;gap:8px;width:fit-content;max-width:100%;min-height:var(--ui-control-height);margin:18px auto 0;padding:8px 12px;border:0;border-radius:var(--ui-radius-button);background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--type-button);font-weight:600;cursor:pointer;line-height:1.4;transition:background .2s,color .2s}
.ps-bonus-details:hover{background:var(--color-control-hover);color:var(--color-text-primary)}
.ps-bonus-details:focus-visible{outline:var(--ui-focus-width) solid var(--color-focus);outline-offset:var(--ui-focus-offset)}
.ps-bonus-dialog{width:min(680px,calc(100% - 28px));max-height:85vh;max-height:85dvh;margin:auto;padding:0;border:0;border-radius:var(--ui-radius-container);background:#fff;color:var(--ink);overflow:auto;overscroll-behavior:contain;box-shadow:var(--ui-shadow-overlay)}
.ps-bonus-dialog::backdrop{background:#15102099;backdrop-filter:blur(5px)}
html.ps-dialog-open{overflow:hidden}
.ps-dialog-top{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background:#fff;border-bottom:1px solid #eee}
.ps-dialog-top p{font-size:var(--type-note);color:var(--pass);font-weight:650;line-height:var(--leading-body)}
.ps-dialog-top button{width:var(--ui-control-height);height:var(--ui-control-height);border:0;border-radius:var(--ui-radius-round);background:#f0eef4;font-size:26px;cursor:pointer;color:var(--ink)}
.ps-dialog-body{padding:26px 28px 30px}
.ps-dialog-body h2{font-size:var(--type-section);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);font-family:var(--font-display);font-weight:700}.ps-dialog-body h2 span{color:var(--pass);white-space:nowrap}
.ps-dialog-sub{font-size:var(--type-note);color:var(--muted);margin-top:10px;line-height:var(--leading-body)}
.ps-dialog-comparison{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.ps-dialog-comparison>div{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:#f5f5f7;border-radius:var(--ui-radius-card);border:2px solid transparent;font-size:var(--type-note);line-height:var(--leading-body)}
.ps-dialog-comparison>div.is-selected{border-color:var(--color-selected);background:var(--color-surface);color:var(--color-text-primary)}
.ps-dialog-comparison strong{font-size:var(--type-metric);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);font-family:var(--font-display);font-weight:700}.ps-dialog-comparison small{font-size:var(--type-note);margin-left:2px;line-height:var(--leading-body)}
.ps-dialog-difference,.ps-dialog-extra{font-size:var(--type-note);line-height:var(--leading-body);margin-top:16px;color:#55515d}
.ps-dialog-group{margin-top:26px}.ps-dialog-group h3{font-size:var(--type-card);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);font-weight:600}.ps-dialog-group h3>small{font-size:var(--type-note);color:var(--pass);margin-left:5px;line-height:var(--leading-body)}
.ps-dialog-group ul{list-style:none;padding:0;margin:10px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ps-dialog-group a{display:flex;align-items:center;gap:12px;min-height:94px;padding:12px;background:#f7f7f9;border-radius:var(--ui-radius-book);color:var(--ink);text-decoration:none}
.ps-dialog-group a:hover{background:var(--pass-bg)}
.ps-dialog-group .ps-cover-app{--w:44px;width:var(--w);flex-shrink:0;padding:6px 5px;box-shadow:2px 3px 7px #0002}
.ps-dialog-group a>span:last-child{font-size:var(--type-body);line-height:var(--leading-body);word-break:keep-all}.ps-dialog-group a>span>small{display:block;font-size:var(--type-note);color:var(--muted);margin-top:5px;line-height:var(--leading-body)}
.ps-dialog-extra{padding:16px;background:var(--pass-bg);border-radius:var(--ui-radius-card)}
img.ps-cover.ps-cover-art{display:block;height:auto;aspect-ratio:auto;padding:0;object-fit:contain;background:transparent}
.ps-appendix-art-preview{margin:0 0 28px}
.ps-appendix-art-preview .ps-cover-art{width:min(100%,300px);box-shadow:5px 10px 24px #0002}
.ps-appendix-art-preview figcaption{font-size:var(--type-note);color:var(--muted);margin-top:14px;line-height:var(--leading-body)}
.ps-cover.ps-welcome-art{height:auto;aspect-ratio:auto;object-fit:contain}
.ps-welcome-preview{display:flex;gap:24px;margin:0 0 18px}.ps-welcome-preview figure{width:min(40%,180px);margin:0}.ps-welcome-preview img{width:100%;box-shadow:4px 8px 18px #0002}.ps-welcome-preview figcaption{font-size:var(--type-note);color:var(--muted);margin-top:12px;text-align:center;line-height:var(--leading-body)}
@media(max-width:540px){.ps-dialog-body{padding:22px 18px}.ps-dialog-top{padding:10px 18px}.ps-dialog-body h2{font-size:var(--type-section);line-height:var(--leading-heading);font-family:var(--font-display);font-weight:700}.ps-dialog-comparison>div{padding:12px 10px;font-size:var(--type-note);line-height:var(--leading-body);border-radius:var(--ui-radius-card)}.ps-dialog-group ul{grid-template-columns:1fr}.ps-dialog-group a{min-height:84px;border-radius:var(--ui-radius-book)}}
@media(prefers-reduced-motion:reduce){.ps-bonus-covers a{transition:none}}
.ps-deck li[data-plus-only]{width:0;margin-left:0;opacity:0}
.is-plus .ps-deck li[data-plus-only]{width:var(--w);margin-left:calc(var(--o)*-1);opacity:1}
.ps-count{font-size:var(--type-metric);font-weight:700;letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);margin-top:28px;font-variant-numeric:tabular-nums;font-family:var(--font-display);font-weight:700;color:var(--color-text-primary)}
.ps-count span{font-variant-numeric:tabular-nums}
.ps-card-actions{display:flex;align-items:center;gap:22px;margin-top:28px;flex-wrap:wrap;justify-content:center}

/* +형 */
.ps-plus{padding:0 0 var(--section-space);text-align:center}
.ps-plus-equations{width:fit-content;max-width:100%;margin:32px auto 0;border-top:1px solid #d2d2d7;border-bottom:1px solid #d2d2d7;padding:18px 0;display:grid;gap:14px}
.ps-plus-equations p{display:flex;align-items:baseline;justify-content:center;gap:12px;font-size:var(--type-lead);line-height:var(--leading-body)}
.ps-plus-equations b{font-size:var(--type-body);color:var(--muted);font-weight:500;line-height:var(--leading-body)}
.ps-plus-equations strong{color:var(--pass)}
@media(max-width:600px){.ps-plus-equations p{flex-wrap:wrap;justify-content:center;font-size:var(--type-lead);gap:4px 12px;line-height:var(--leading-body)}.ps-plus-equations p>span:last-child{flex-basis:100%}.ps-toggle button{min-width:0;padding:0 15px;font-size:var(--type-button);line-height:1.4;font-weight:600;border-radius:var(--ui-radius-selection);min-height:var(--ui-control-height)}.ps-toggle-note{line-height:1.6}}
.ps-eyebrow{font-size:var(--type-note);font-weight:650;color:var(--pass);margin-bottom:10px;line-height:var(--leading-body)}
.ps-plus-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--card-gap);max-width:1080px;margin:var(--content-gap) auto 0;text-align:left}
.ps-plus-tile{display:grid;grid-template-columns:132px 1fr;grid-template-rows:auto auto auto auto 1fr;column-gap:28px;row-gap:6px;background:var(--color-surface);border-radius:var(--ui-radius-book);padding:var(--card-padding);color:var(--color-text-primary);align-items:start}
.ps-plus-tile:hover{text-decoration:none}
.ps-plus-tile .ps-plus-cover{grid-row:1/-1;width:132px;box-shadow:8px 14px 24px rgba(0,0,0,.18)}
.ps-plus-tile strong{font-size:var(--type-card);letter-spacing:var(--tracking-heading);margin-top:6px;line-height:var(--leading-heading);font-weight:600}
.ps-plus-tile strong i,.ps-shelf-card strong i,.ps-intro h1 i{font-style:normal;font-size:var(--type-note);font-weight:600;color:white;background:var(--ink);border-radius:var(--ui-radius-status);padding:2px 7px;margin-left:8px;vertical-align:4px;line-height:var(--leading-heading);font-weight:600}
.ps-plus-tile p{font-size:var(--type-body);color:#4c4c52;line-height:var(--leading-body)}
.ps-plus-tile small{font-size:var(--type-note);color:var(--muted);line-height:var(--leading-body)}
.ps-plus-tile .text-link{align-self:end;margin-top:10px}
.ps-plus-symbol{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin:0 auto var(--space-3);border-radius:50%;background:var(--color-editorial-soft);color:var(--color-editorial-accent);font-family:var(--font-body);font-size:var(--type-section);font-weight:600;line-height:1}

/* 공통 섹션 */
.ps-section{padding:var(--section-space) 0 0}
.ps-section>.viewport>h2{margin-bottom:var(--content-gap)}
.ps-section>.viewport>h2+.ps-sub{margin:var(--heading-gap) 0 var(--content-gap)}
.ps-compare-table td{font-size:var(--type-body);line-height:var(--leading-body)}
.ps-compare-table .yes{color:var(--pass);font-size:var(--type-body);line-height:var(--leading-body)}
.ps-compare-table .ps-pluscell{color:var(--pass);font-weight:650;font-size:var(--type-body);line-height:var(--leading-body)}
.ps-compare-table .ps-group th{font-size:var(--type-note);font-weight:650;color:var(--muted);text-align:left;padding:30px 0 8px;letter-spacing:normal;line-height:var(--leading-body)}
.ps-compare-table tbody th a{color:inherit}

/* 교재 선반 */
.ps-shelf{list-style:none;padding:0 0 18px;margin:0;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}
.ps-shelf li{scroll-snap-align:start;display:flex}
.ps-shelf-card{display:flex;flex-direction:column;gap:6px;width:100%;background:var(--color-surface);border-radius:var(--ui-radius-book);padding:28px 24px 24px;color:var(--color-text-primary)}
.ps-shelf-card:hover{text-decoration:none;box-shadow:inset 0 0 0 1px var(--color-border-strong)}
.ps-shelf-cover{width:96px;margin-bottom:16px;box-shadow:6px 10px 18px rgba(0,0,0,.16)}
.ps-shelf-card strong{font-size:var(--type-card);letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);margin-top:6px;font-weight:600}
.ps-shelf-card small{font-size:var(--type-note);color:var(--muted);line-height:var(--leading-body)}
.ps-when{margin-top:auto;padding-top:14px;display:grid;gap:2px;font-size:var(--type-note);color:var(--muted);line-height:var(--leading-body)}
.ps-when b{color:var(--ink)}
.ps-shelf-card .text-link{font-size:var(--type-button);margin-top:10px;line-height:1.4;font-weight:600}

/* 사은품 */

/* 마무리 */
.ps-closing{margin-top:140px;background:var(--night);color:#f5f5f7;text-align:center;padding:var(--section-space) 0}
.ps-closing .ps-dates{list-style:none;padding:0;margin:36px auto 0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:900px}
.ps-dates li{border-radius:var(--ui-radius-small);padding:10px 18px;background:#1d1d1f;font-size:var(--type-lead);color:#d2d2d7;line-height:var(--leading-body)}
.ps-dates span{color:var(--pass-2);font-weight:650;margin-right:8px}
.ps-closing .actions{margin-top:40px;justify-content:center}
.ps-closing .text-link{color:var(--color-link)}
.ps-closing .ps-fine{margin:30px auto 0;color:#86868b}
.ps-faq{max-width:none}
.ps-faq .viewport{max-width:980px}
.ps-faq{padding-bottom:100px}

/* 부록 선반·부록 페이지 */
.ps-appendix-shelf{margin-top:56px}
.ps-shelf-cover.ps-cover-app{--w:96px;overflow:hidden}.ps-shelf-cover.ps-cover-app strong{white-space:normal;word-break:keep-all}
.ps-detail-hero{display:grid;grid-template-columns:1fr 200px;gap:48px;align-items:center}
.ps-detail-cover{--w:200px;width:200px;height:auto;box-shadow:12px 20px 36px rgba(0,0,0,.22);transform:rotate(3deg)}
@media(max-width:800px){.ps-detail-hero{grid-template-columns:1fr}.ps-detail-cover{--w:150px;width:150px}}
/* 교재·특별부록 상세 공용(detail_page.py): 표지 미리보기, 실제 지면, 봉투 구성 */
.ps-detail-figure{margin:0 0 28px}
.ps-detail-figure img{display:block;width:min(100%,300px);height:auto;box-shadow:5px 10px 24px #0002}
.ps-detail-figure figcaption,.ps-detail-pages figcaption{font-size:var(--type-note);color:var(--muted);margin-top:12px;line-height:var(--leading-body)}
.ps-detail-pages{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:8px 0 0}
@media(max-width:800px){.ps-detail-pages{grid-template-columns:repeat(2,1fr)}}
.ps-detail .ps-block>div>p+p{margin-top:12px}
.ps-detail-pages figure{margin:0}
.ps-detail-pages img{display:block;width:100%;height:auto;border-radius:var(--ui-radius-book);box-shadow:0 0 0 1px var(--line),4px 8px 20px #0001}
.ps-detail-pages.is-two{grid-template-columns:repeat(2,1fr);max-width:620px}
.ps-detail-books{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:8px 0 0;max-width:560px}
.ps-detail-books a{display:block;color:inherit;border-radius:var(--ui-radius-book)}
.ps-detail-books a:hover{text-decoration:none}
.ps-detail-books img{display:block;width:100%;height:auto;box-shadow:4px 8px 18px #0002;transition:transform .25s ease}
.ps-detail-books a:hover img{transform:translateY(-3px)}
.ps-detail-books b{display:block;margin-top:12px;font-size:var(--type-note);line-height:var(--leading-body)}
.ps-detail-books .text-link{display:inline-block;margin-top:4px;font-size:var(--type-note)}
@media(max-width:800px){.ps-detail-books{gap:12px}}
.ps-spec.ps-detail-spec{margin-top:22px}
.ps-detail-notes{margin:16px 0 0;padding-left:1.2em;display:grid;gap:6px;font-size:var(--type-note);color:var(--color-text-secondary);line-height:var(--leading-body)}

/* /pass/books/ */
.ps-books-page .ps-section{padding-bottom:40px}

/* 교재 소개 페이지 */
.ps-intro-hero{padding:72px 0 56px;border-bottom:1px solid var(--line)}
.ps-intro-hero .eyebrow{color:var(--pass);font-size:var(--type-note);font-weight:650;line-height:var(--leading-body)}
.ps-intro-hero h1{font-size:var(--type-title);letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);margin-top:10px;font-family:var(--font-display);font-weight:800}
.ps-intro-line{font-size:var(--type-lead);font-weight:600;letter-spacing:normal;margin-top:18px;line-height:var(--leading-body)}
.ps-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.ps-block{display:grid;grid-template-columns:280px 1fr;gap:40px;padding:64px 0;border-bottom:1px solid var(--line)}
.ps-block>*{min-width:0}
.ps-block h2{font-size:var(--type-section);letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);font-family:var(--font-display);font-weight:700}
.ps-block h2 small{display:block;font-size:var(--type-note);color:var(--pass);margin-bottom:6px;line-height:var(--leading-body)}
.ps-block>div>p{font-size:var(--type-body);line-height:var(--leading-body)}
.ps-who{list-style:none;padding:0;margin:20px 0 0;display:grid;gap:10px}
.ps-who li{background:var(--pass-bg);border-radius:var(--ui-radius-small);padding:14px 18px;font-size:var(--type-body);font-weight:600;line-height:var(--leading-body)}
.ps-who li::before{content:'✓ ';color:var(--pass)}
.ps-flow{margin-top:22px;padding:18px 22px;border:0;border-radius:var(--ui-radius-comparison);background:var(--gray);font-size:var(--type-body)!important;color:#4c4c52;line-height:var(--leading-body)}
.ps-flow b{color:var(--ink)}
.ps-spec{margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.ps-spec div{background:var(--gray);border-radius:0;padding:18px 20px;box-shadow:none}
.ps-spec dt{font-size:var(--type-note);color:var(--muted);line-height:var(--leading-body)}
.ps-spec dd{margin:4px 0 0;font-size:var(--type-body);font-weight:650;line-height:var(--leading-body)}
.ps-spec.is-rows{grid-template-columns:1fr}
.ps-spec.is-rows div{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:baseline}
.ps-spec.is-rows dd{margin:0;font-size:var(--type-body);line-height:var(--leading-body)}
.ps-intro .bk-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ps-intro .bk-slot{margin:0}.ps-intro .bk-slot-frame{aspect-ratio:auto;min-height:150px;height:auto}
.ps-compare{margin-top:28px;background:var(--pass-bg);border-radius:var(--ui-radius-container);padding:26px}
.ps-compare h3{font-size:var(--type-card);letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);font-weight:600}
.ps-compare p{font-size:var(--type-body);color:#4c4c52;margin-top:6px;line-height:var(--leading-body)}
.ps-compare>div{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.ps-passes{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.ps-passes div{border-radius:var(--ui-radius-card);padding:16px 18px;box-shadow:inset 0 0 0 1px var(--line);color:var(--color-text-secondary)}
.ps-passes div b{display:block;font-size:var(--type-body);line-height:var(--leading-body)}
.ps-passes div span{font-size:var(--type-note);line-height:var(--leading-body)}
.ps-passes .is-in{background:var(--pass-bg);box-shadow:inset 0 0 0 2px var(--pass);color:var(--ink)}
.ps-passes .is-in span{color:var(--pass);font-weight:650}
.ps-intro .ps-block .button{margin-top:22px}
.ps-return{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;background:#111;color:#f5f5f7;border-radius:var(--ui-radius-container);padding:40px 44px;margin:64px 0 100px}
.ps-return h2{font-size:var(--type-section);letter-spacing:var(--tracking-heading);line-height:var(--leading-heading);font-family:var(--font-display);font-weight:700}
.ps-return p{color:#a1a1a6;font-size:var(--type-body);margin-top:6px;line-height:var(--leading-body)}
.ps-return p b{color:white}
.ps-return nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.ps-return nav a{font-size:var(--type-note);border-radius:var(--ui-radius-button);padding:6px 14px;color:#f5f5f7;box-shadow:inset 0 0 0 1px #424245;line-height:var(--leading-body)}
.ps-return nav a:hover{text-decoration:none;background:#2c2c2e}
.ps-return nav a[aria-current]{background:white;color:#111}

@media(max-width:1000px){.ps-cards.is-3{grid-template-columns:1fr;max-width:520px}.ps-plus-grid{grid-template-columns:1fr;max-width:620px}}
@media(max-width:800px){
  .ps-hero{min-height:0}
  .ps-fan{--w:26vw;--step:1.75deg;margin-top:64px}.ps-fan.ps-fan-sub{--w:19vw;--step:4.2deg;margin-top:52px;height:calc(var(--w) * 2.9)}.ps-fan-label small{display:none}.ps-fan-label[data-g="1"] span,.ps-fan-label[data-g="3"] span,.ps-fan-label[data-g="5"] span{bottom:calc(100% + 30px)}.ps-fan-book em{font-size:var(--type-note);padding:4px 9px;line-height:var(--leading-body)}.ps-fan-label span{font-size:var(--type-note);bottom:calc(100% + 10px);line-height:var(--leading-body)}


  .ps-choose{padding:var(--section-space) 0}
  .ps-cards.is-2{grid-template-columns:1fr;max-width:520px}
  .ps-card{padding:var(--card-padding);background:var(--color-surface);color:var(--color-text-primary);border-radius:var(--ui-radius-comparison)}
  .ps-plus{padding-bottom:80px}
  .ps-plus-tile{grid-template-columns:96px 1fr;padding:var(--card-padding);column-gap:20px;background:var(--color-surface);color:var(--color-text-primary);border-radius:var(--ui-radius-book)}
  .ps-plus-tile .ps-plus-cover{width:96px}
  .ps-section{padding-top:80px}
  .ps-closing{margin-top:96px;padding:var(--section-space) 0}
  .ps-block{grid-template-columns:1fr;gap:18px;padding:44px 0}
  .ps-intro-line{font-size:var(--type-lead);line-height:var(--leading-body)}
  .ps-intro .bk-slots{grid-template-columns:1fr}
  .ps-return{padding:30px 24px;border-radius:var(--ui-radius-container)}
}
@media(max-width:520px){.ps-spec{grid-template-columns:1fr}.ps-passes{grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){.ps-fan li{animation:none}.ps-deck li{transition:none}}
/* 2028 campaign: readable title, curriculum and separate benefit counts. */
.ps-brand{font-size:var(--type-body);letter-spacing:normal;color:#cbb9e7;margin-bottom:22px;line-height:var(--leading-body)}
.ps-hero h1{font-size:var(--type-title);font-weight:800;line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);font-family:var(--font-display);font-weight:800}
.ps-hero h1 small{display:block;font-size:var(--type-note);font-weight:600;letter-spacing:normal;margin-bottom:12px;color:#cbb9e7;line-height:var(--leading-body)}
.ps-hero h1 span{white-space:nowrap}
.ps-tagline{font-size:var(--type-lead);line-height:var(--leading-body);letter-spacing:normal;margin:22px 16px 0}
.ps-fan-caption{max-width:90%;margin:8px auto 0;line-height:1.5}
.ps-brand,.ps-hero h1,.ps-tagline{padding-inline:12px}
.ps-curriculum{background:#f6f3fa}
#curriculum .ps-curriculum-list article{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--content-gap);padding:var(--space-8) 0;align-items:center}
#curriculum .ps-course-stage{font-size:var(--type-note);font-weight:600;color:var(--color-text-secondary);margin:0 0 var(--space-2)}
#curriculum .ps-course-books{grid-column:auto;gap:var(--space-6);padding:0}
#curriculum .ps-course-books figure{flex:0 1 112px;max-width:112px}
#pass-books .ps-shelf-stage{margin-top:var(--section-related)}
#pass-books .ps-shelf-stage h3{font-family:var(--font-display);font-size:var(--type-card);font-weight:700;line-height:var(--leading-heading);margin:0 0 var(--space-6)}
#pass-books .ps-shelf{grid-auto-flow:row;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;gap:var(--card-gap)}
@media(max-width:700px){
 #curriculum .ps-curriculum-list article{grid-template-columns:minmax(0,1fr);gap:var(--space-6)}
 #curriculum .ps-course-books{grid-column:1}
 #pass-books .ps-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}
 #pass-books .ps-shelf-card{padding:var(--space-4);min-width:0}
}
@media(max-width:380px){#pass-books .ps-shelf{grid-template-columns:minmax(0,1fr)}}
.ps-curriculum-list{margin-top:56px}
.ps-curriculum-list article{display:grid;grid-template-columns:50px minmax(0,1.7fr) minmax(0,1fr);gap:28px;padding:36px 0;border-top:1px solid #d9d2e4}
.ps-editorial-number{font-size:var(--type-body);color:var(--pass);font-weight:650;line-height:var(--leading-body)}
.ps-curriculum h3,.ps-benefit-intro h3{font-size:var(--type-card);letter-spacing:var(--tracking-heading);margin:0 0 14px;line-height:var(--leading-heading);font-weight:600}
.ps-curriculum h3 a{color:inherit;text-decoration:none}
.ps-curriculum h3 a:hover{text-decoration:underline}
.ps-curriculum article p,.ps-benefit-intro p{font-size:var(--type-body);line-height:var(--leading-body);word-break:keep-all}
.ps-curriculum .ps-eyebrow{font-size:var(--type-note);color:var(--pass);margin-bottom:10px;line-height:var(--leading-body)}
.ps-recommended{font-size:var(--type-body);line-height:var(--leading-body);color:var(--muted)}
.ps-recommended strong{color:var(--ink);font-size:var(--type-note);line-height:var(--leading-body)}
.ps-recommended ul{padding-left:18px;margin-top:12px}
.ps-curriculum-detail{margin-top:14px;color:var(--muted)}
.ps-benefit-intro{margin:48px 0}
.ps-benefit-intro article{display:grid;grid-template-columns:50px 1fr;gap:28px;border-top:1px solid var(--line);padding:30px 0}
.ps-benefit-intro p{max-width:850px;color:var(--muted)}
.ps-package-benefit{background:var(--pass-bg);border:0;border-radius:var(--ui-radius-comparison);padding:24px 28px;margin-bottom:48px;line-height:1.7}
.ps-package-benefit strong{color:var(--pass)}
.ps-package-benefit p{margin:8px 0 12px}
.ps-pkg th small{max-width:420px}
@media(max-width:700px){
 .ps-curriculum-list article{grid-template-columns:28px minmax(0,1fr);gap:16px;padding:28px 0}
 .ps-recommended{grid-column:2}
 .ps-benefit-intro article{grid-template-columns:28px minmax(0,1fr);gap:16px}
 .ps-curriculum h3,.ps-benefit-intro h3{font-size:var(--type-card);line-height:var(--leading-heading);font-weight:600}
 .ps-curriculum article p,.ps-benefit-intro p{font-size:var(--type-body);line-height:var(--leading-body)}
 .ps-package-benefit{padding:20px}
 .ps-localnav .localnav-inner strong{font-size:var(--type-body);line-height:var(--leading-body)}
 .ps-hero h1{font-size:var(--type-title);line-height:var(--leading-heading);font-family:var(--font-display);font-weight:800}
 .ps-fan-caption{font-size:var(--type-note);line-height:var(--leading-body)}
}

/* Compact series overview with concept-grouped mini-fans. */
.ps-hero{padding-top:38px}
.ps-brand{font-size:var(--type-note);margin-bottom:12px;line-height:var(--leading-body)}
.ps-hero h1{font-size:var(--type-title);line-height:var(--leading-heading);font-family:var(--font-display);font-weight:800}
.ps-hero h1 small{font-size:var(--type-note);margin-bottom:7px;line-height:var(--leading-body)}
.ps-tagline{font-size:var(--type-lead);margin-top:14px;line-height:var(--leading-body)}
.ps-date{font-size:var(--type-lead);margin-top:10px;line-height:var(--leading-body)}
.ps-hero .ps-hero-copy>.button{margin-top:16px}
.ps-cover-collection{position:relative;z-index:2;max-width:1180px;margin:32px auto 48px;padding:0 26px;text-align:left}
.ps-collection-note{font-size:var(--type-note);color:#a1a1a6;text-align:center;margin-bottom:20px;line-height:var(--leading-body)}
.ps-cover-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.ps-cover-series{--book-w:clamp(54px,6.8vw,96px);background:linear-gradient(150deg,#17141d,#0e0e11);border:1px solid #ffffff12;border-radius:var(--ui-radius-container);padding:20px 22px 14px;min-width:0}
.ps-series-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:16px}
.ps-series-heading h2{font-size:var(--type-section);font-weight:700;line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);font-family:var(--font-display);font-weight:700}
.ps-series-heading>span{font-size:var(--type-body);line-height:var(--leading-body);color:#a1a1a6;white-space:nowrap}
.ps-series-subgroups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px}
.ps-cover-subgroup{min-width:0;text-align:center}
.ps-cover-subgroup h3{font-size:var(--type-card);line-height:var(--leading-heading);font-weight:600;color:#cbb9e7;margin:0 0 14px;font-weight:600}
.ps-series-rail ul{display:flex;align-items:flex-start;justify-content:center;list-style:none;margin:0;padding:9px 8px 4px}
.ps-series-rail li{position:relative;flex:0 0 var(--book-w);width:var(--book-w);padding-top:var(--arc)}
.ps-series-rail li+li{margin-left:calc(var(--book-w) * -.29)}
.ps-series-rail li:hover,.ps-series-rail li:focus-within{z-index:3}
.ps-series-rail a{display:block;color:#d4d2d8;text-decoration:none;border-radius:3px}
.ps-series-book{display:block;transform:rotate(var(--tilt));transform-origin:50% 90%;transition:transform .2s ease}
.ps-series-book .ps-cover{object-fit:contain;background:#27272a;box-shadow:0 8px 18px #0008,0 0 0 1px #ffffff18}
.ps-series-book-name{position:absolute;left:50%;bottom:calc(100% + 3px);transform:translateX(-50%);white-space:nowrap;font-size:var(--type-note);line-height:var(--leading-body);background:#29232f;color:#fff;padding:4px 8px;border-radius:5px;opacity:0;pointer-events:none;z-index:5}.ps-series-rail a:hover .ps-series-book-name,.ps-series-rail a:focus-visible .ps-series-book-name{opacity:1}.ps-mini-subjects{font-size:var(--type-body);color:#a1a1a6;line-height:var(--leading-body);margin:12px 0 0;word-break:keep-all}
.ps-series-rail a:focus-visible{outline:var(--ui-focus-width) solid var(--color-focus);outline-offset:var(--ui-focus-offset)}
.ps-series-rail a:focus-visible .ps-series-book{transform:translateY(-7px) rotate(0deg) scale(1.12)}
.ps-series-book .ps-cover-new b{font-size:calc(var(--book-w) * .14)}
.ps-series-book .ps-cover-new small{font-size:calc(var(--book-w) * .085)}
.ps-mini-plus{display:inline-block;margin-left:6px;color:#e6d5ff;background:#ffffff12;border-radius:var(--ui-radius-status);padding:0 5px;font-size:var(--type-note);line-height:var(--leading-body)}
.ps-cover-series.is-n-series{--book-w:clamp(47px,5.2vw,69px)}
.is-n-series .ps-series-subgroups{row-gap:10px}
.is-n-series .ps-cover-subgroup h3{margin-bottom:7px}

.is-mock .ps-series-subgroups{grid-template-columns:1fr;align-content:center;height:calc(100% - 48px)}
.is-mock .ps-series-rail li+li{margin-left:calc(var(--book-w) * -.18)}
@media(hover:hover){.ps-series-rail a:hover .ps-series-book{transform:translateY(-7px) rotate(0deg) scale(1.12)}.ps-series-rail a:hover .ps-series-book-name{color:#fff}}
@media(min-width:1100px){.ps-cover-series.is-n-series{--book-w:52px}.is-n-series .ps-series-subgroups{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-content:center;height:calc(100% - 48px)}.is-n-series .ps-cover-subgroup h3{font-size:var(--type-card);line-height:var(--leading-heading);font-weight:600}.is-n-series .ps-mini-plus{display:block;width:max-content;margin:3px auto 0}.is-n-series .ps-cover-subgroup h3{min-height:34px}.is-n-series .ps-mini-subjects{font-size:var(--type-body);line-height:var(--leading-body)}}
@media(max-width:760px){
 .ps-cover-collection{padding:0 16px;margin-top:26px}
 .ps-cover-grid{grid-template-columns:1fr;gap:12px}
 .ps-cover-series{--book-w:clamp(52px,17vw,86px);padding:18px 18px 12px;border-radius:var(--ui-radius-container)}
 .ps-series-heading{margin-bottom:13px}
 .ps-series-heading h2{font-size:var(--type-section);line-height:var(--leading-heading);font-family:var(--font-display);font-weight:700}
 .ps-series-subgroups{column-gap:12px}
 .ps-cover-series.is-n-series{--book-w:clamp(50px,14vw,68px)}
 .ps-series-book-name{font-size:var(--type-note);line-height:var(--leading-body)}
 .is-mock{--book-w:clamp(47px,14vw,72px)}
 .is-mock .ps-series-rail li+li{margin-left:calc(var(--book-w) * -.2)}
 .is-mock .ps-series-subgroups{height:auto}
 .ps-hero{padding-top:30px}
}
@media(prefers-reduced-motion:reduce){.ps-series-book{transition:none}}

/* Readable text on the existing light surfaces. */
.pass-page .pass-table .no{color:var(--muted)}
.ps-card .button.is-disabled{color:var(--color-on-disabled);background:var(--color-disabled)}
/* Equal reading columns and aligned actions after the type-scale increase. */
.ps-plus-tile{grid-template-rows:auto auto auto auto auto 1fr;row-gap:var(--space-2);background:var(--color-surface);color:var(--color-text-primary);border-radius:var(--ui-radius-book)}
.ps-plus-tile .text-link{grid-column:2;grid-row:6;white-space:nowrap}

/* Availability is a status label, not an enabled action. */
.ps-card span.button.is-disabled{min-height:0;padding:6px 12px;border-radius:var(--ui-radius-status);box-shadow:none}

/* REQ009: 선택 카드의 공통 혜택을 앞에 모으고 자연 높이를 줄인다. */
#choose .ps-choose-common{max-width:1080px;margin:var(--card-gap) auto 0;padding:var(--card-padding);border:0;border-radius:var(--ui-radius-comparison);background:var(--color-editorial-soft);color:var(--color-text-primary)}
#choose .ps-choose-common .ps-bonus-mock{--w:120px;display:grid;grid-template-columns:var(--w) minmax(0,680px);width:fit-content;max-width:100%;margin:0 auto;padding:0;border:0;gap:var(--card-padding);color:inherit;text-decoration:none;align-items:center;text-align:left}
#choose .ps-choose-common .ps-cover-art{width:var(--w);padding:0;transform:rotate(-2deg);box-shadow:0 3px 6px #0001,0 12px 24px #0002}
#choose .ps-choose-common .ps-common-copy{display:flex;flex-direction:column;gap:var(--space-3);min-width:0;align-items:flex-start}
#choose .ps-choose-common .ps-common-copy>strong{font-size:var(--type-section);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);color:inherit;word-break:keep-all;text-wrap:wrap}
#choose .ps-choose-common .ps-mock-highlight{color:var(--color-editorial-accent);white-space:nowrap}
@media(max-width:1000px){#choose .ps-cards.is-3~.ps-choose-common{max-width:520px}}
@media(max-width:800px){#choose .ps-choose-common{max-width:520px}#choose .ps-choose-common .ps-bonus-mock{--w:112px;grid-template-columns:minmax(0,1fr);justify-items:center;gap:var(--space-6);text-align:center}#choose .ps-choose-common .ps-common-copy{align-items:flex-start;text-align:left}}
#choose .ps-deck{margin-top:var(--space-5)}
#choose .ps-count{margin-top:var(--space-4)}
#choose .ps-bonus-block{margin-top:var(--space-4);padding-top:var(--space-4)}
#choose .ps-bonus-total{margin-top:var(--space-2)}
#choose .ps-bonus-total strong{font-size:var(--type-section)}
#choose .ps-bonus-difference{margin-top:var(--space-2)}
#choose .ps-bonus-covers{margin:var(--space-3) 0 var(--space-2)}
#choose .ps-bonus-preview-note{margin-top:var(--space-2)}
#choose .ps-bonus-details{margin-top:var(--space-3)}
#choose .ps-card-actions{margin-top:var(--space-4)}

.ps-included-series{margin-top:var(--space-2);font-size:var(--type-note);line-height:var(--leading-body);color:var(--color-text-secondary);word-break:keep-all;text-align:center}
.ps-plus-series{display:none;margin-top:var(--space-2);font-size:var(--type-note);line-height:var(--leading-body);font-weight:700;color:var(--color-editorial-accent);text-align:center}
.is-plus .ps-plus-series{display:block}

.ps-plus-tile .ps-note{font-size:var(--type-note);line-height:var(--leading-body)}
.ps-plus-tile .ps-plus-release{grid-column:2;grid-row:5;font-size:var(--type-note);line-height:var(--leading-body);color:var(--color-text-secondary)}

#choose .ps-choose-common .ps-mock-description{font-size:var(--type-note);line-height:var(--leading-body);color:var(--color-text-secondary);word-break:keep-all}

#choose .ps-bonus-label,#choose .ps-choose-common .ps-common-title,#gifts .ps-bonus-label{display:inline-block;width:fit-content;margin:0;padding:var(--space-1) var(--space-2);border:1px solid color-mix(in srgb,var(--color-editorial-accent) 28%,white);background:color-mix(in srgb,var(--color-editorial-accent) 12%,white);border-radius:var(--ui-radius-status);font-size:var(--type-note);line-height:var(--leading-body);letter-spacing:normal;color:var(--color-editorial-accent);font-weight:500}

#choose .ps-choose-common .ps-common-copy{margin:0;padding:0;text-indent:0;text-align:left}
#choose .ps-choose-common .ps-common-copy>strong,#choose .ps-choose-common .ps-mock-description{display:block;width:100%;margin:0;padding:0;text-indent:0;text-align:left}

#choose .ps-card-actions{gap:var(--space-2);width:100%;align-items:center;justify-content:center;flex-wrap:wrap}
#choose .ps-card-actions .ps-bonus-details{margin:0;min-height:var(--ui-control-height);white-space:nowrap}
#choose .ps-card-actions [data-buy]{display:inline-flex;align-items:center;justify-content:center;min-height:var(--ui-control-height);white-space:nowrap}



#gifts .ps-benefit-group+ .ps-benefit-group{margin-top:var(--section-related)}
#gifts .ps-benefit-group article{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:center;gap:var(--card-padding);border:0;padding:var(--space-6) 0}
#gifts .ps-benefit-art{display:flex;align-items:center;justify-content:center;flex-wrap:nowrap;gap:var(--space-4) 0;list-style:none;margin:0;padding:var(--space-3);min-width:0}
/* 표지 묶음은 좁으면 줄을 넘기지 않고 함께 작아진다(넘긴 표지가 겹침 여백만큼 박스 밖으로 나가지 않게). */
#gifts .ps-benefit-art li{position:relative;flex:0 1 76px;min-width:0;margin-left:-25px}
#gifts .ps-benefit-art li:first-child{margin-left:0}
#gifts .ps-benefit-art a{display:block;border-radius:2px;transition:transform .2s}
#gifts .ps-benefit-art li:hover,#gifts .ps-benefit-art li:focus-within{z-index:2}
#gifts .ps-benefit-art a:hover,#gifts .ps-benefit-art a:focus-visible{transform:translateY(-6px)}
#gifts .ps-benefit-art a:focus-visible{outline:var(--ui-focus-width) solid var(--color-focus);outline-offset:var(--ui-focus-offset)}
#gifts .ps-benefit-art .ps-cover-art{width:100%;height:auto;box-shadow:0 3px 6px #0001,4px 8px 16px #0002}
#gifts .ps-benefit-art li:only-child{flex-basis:110px}
@media(max-width:800px){#gifts .ps-benefit-group article{grid-template-columns:minmax(0,1fr)}#gifts .ps-benefit-art{justify-content:flex-start;padding-left:0}#gifts .ps-benefit-art li{flex-basis:66px;margin-left:-24px}#gifts .ps-benefit-art li:first-child{margin-left:0}}

#pass-books .ps-shelf-stage>h3{margin-bottom:var(--space-3)}
#pass-books .ps-shelf-intro{margin-bottom:var(--space-6);font-size:var(--type-body);line-height:var(--leading-body);text-align:left}
#pass-books .ps-shelf-intro>p{margin:0}
#pass-books .ps-shelf-intro .ps-recommended{margin-top:var(--space-3);padding:0;border:0}
#pass-books .ps-shelf-intro .ps-recommended ul{margin-top:var(--space-2)}

.pass-page #pass-books,.pass-page #publication,.pass-page #gifts{padding:var(--section-space) 0;border:0}
.pass-page #pass-books,.pass-page #gifts{background:var(--color-background)}
.pass-page #publication{background:var(--color-editorial-soft)}

/* 커리큘럼 단계 구분: 기존 표지 팔레트의 옅은 배경 */
#pass-books .ps-shelf-stage{padding:28px;border-radius:14px;background:#e9f1ff}
#pass-books .ps-shelf-stage[data-curriculum-stage="기출"]{background:#eee9fb}
#pass-books .ps-shelf-stage[data-curriculum-stage="N제"]{background:#dceeed}
#pass-books .ps-shelf-stage[data-curriculum-stage="실모"]{background:#f3eef9}
#pass-books .ps-shelf-card{background:#fff}
#pass-books .ps-curriculum-pair{display:flex;align-items:flex-end;isolation:isolate;width:100%;padding:6px 0 16px}
#pass-books .ps-curriculum-pair .ps-shelf-cover{width:46%;max-width:96px;height:auto;object-fit:contain;margin:0;flex:none}
#pass-books .ps-curriculum-pair .ps-shelf-cover+ .ps-shelf-cover{margin-left:-8%;transform:translateY(-6px);z-index:-1}
@media(max-width:700px){#pass-books .ps-shelf-stage{padding:20px 16px}#pass-books .ps-shelf{grid-template-columns:minmax(0,1fr)}#pass-books .ps-curriculum-pair .ps-shelf-cover{width:96px}#pass-books .ps-curriculum-pair .ps-shelf-cover+ .ps-shelf-cover{margin-left:-14px}}

/* 특별부록 2 모바일 상단 안내: PC 레이아웃은 유지 */
#choose .ps-common-mobile-heading{display:none}
@media(max-width:800px){
#choose .ps-common-mobile-heading{display:flex;flex-direction:column;align-items:center;gap:8px;margin:0 0 24px;text-align:center}
#choose .ps-common-mobile-heading p{margin:0;font-size:var(--type-note);line-height:var(--leading-body);color:var(--color-text-primary);word-break:keep-all}
#choose .ps-choose-common .ps-common-copy>.ps-common-title{display:none}
}

#pass-books #books-title{text-align:center}
#pass-books .ps-curriculum-pair .ps-shelf-cover{width:36%;max-width:96px}
#pass-books .ps-curriculum-pair .ps-shelf-cover+ .ps-shelf-cover{margin-left:-6%;transform:translateY(-6px)}
#pass-books .ps-curriculum-pair .ps-shelf-cover:nth-child(3){transform:translateY(-12px);z-index:-2}
@media(max-width:700px){#pass-books .ps-curriculum-pair .ps-shelf-cover{width:33%;max-width:96px}#pass-books .ps-curriculum-pair .ps-shelf-cover+ .ps-shelf-cover{margin-left:-6%}}

/* 혜택 원 안 문구를 한 덩어리로 중앙 정렬하고 숫자와 단위를 분리한다. */
.ps-benefit-chain #pass-benefits-title{padding:0;text-align:center}
.ps-benefit-chain #pass-benefits-title>span{display:block;transform:translateY(1px)}
.ps-benefit-chain .ps-benefit-pill:first-of-type strong small{display:inline-block;margin-left:.12em;letter-spacing:0}
@media(max-width:800px){
#choose .ps-choose-common .ps-common-copy>strong,#choose .ps-choose-common .ps-mock-description{text-align:center}
}

/* 원본 표지의 자연 비율을 사용해 어두운 배경의 가장자리 노출을 없앤다. */
#pass-books img.ps-shelf-cover{aspect-ratio:auto;background:transparent;object-fit:contain}

/* 한완수는 왼쪽의 큰 ㅎ·ㅇ·ㅅ 문양을 우선 노출한다. */
#pass-books .ps-curriculum-pair.is-hanwansu .ps-shelf-cover{width:calc((100% + 8px)/3);max-width:96px;position:relative;z-index:0}
#pass-books .ps-curriculum-pair.is-hanwansu .ps-shelf-cover+ .ps-shelf-cover{margin-left:-4px;z-index:1}
#pass-books .ps-curriculum-pair.is-hanwansu .ps-shelf-cover:nth-child(3){z-index:2}

/* PDF 원본 지도: SVG의 내부 배치/색/글자를 변경하지 않는다. */
.ps-map-viewer{max-width:min(760px,calc(80vh * .87114));max-width:min(760px,calc(80svh * .87114));margin:32px auto 0}
.ps-map-window{width:100%;max-height:80vh;max-height:80svh;overflow:auto;position:relative;touch-action:pan-y;overscroll-behavior-x:contain;scroll-behavior:auto}
.ps-map-stage{position:relative;width:100%;line-height:0}
.ps-map-stage svg{display:block;width:100%;height:auto;max-width:none;user-select:none;pointer-events:none}
/* 사용자 승인: 두 번째 Trend 대표 표지만 미리보기용 라임 옐로/레몬 변형. */


/* 하단 전용 특별부록: 각 구성 묶음을 배경으로 구분 */
#gifts .ps-benefit-group{padding:28px;border-radius:14px;background:#eee9fb}
#gifts .ps-benefit-group+ .ps-benefit-group{margin-top:24px;background:#e9f1ff}
#gifts .ps-benefit-intro{margin-top:32px}
#gifts .ps-benefit-group article:last-child{padding-bottom:0}
@media(max-width:800px){#gifts .ps-benefit-group{padding:20px}#gifts .ps-benefit-group+ .ps-benefit-group{margin-top:20px}}

/* 원본 로드맵의 흐름을 실제 텍스트·교재 링크로 표현한다. */
.ps-map-viewer{max-width:1080px;margin:32px auto 0}
.ps-map-window{max-height:none}
.ps-map-stage{aspect-ratio:480/551;container-type:inline-size;line-height:1.5}
.ps-map-stage .ps-road-lines{position:absolute;inset:0;width:100%;height:100%}
.ps-road-events{list-style:none;margin:0;padding:0}
.ps-road-event{position:absolute;left:var(--x);top:var(--y);width:0;height:0}
.ps-road-event:before{content:"";position:absolute;width:14px;height:14px;border:3px solid #a3a0d2;border-radius:50%;background:white;transform:translate(-50%,-50%);z-index:1}
.ps-road-month{position:absolute;left:14px;top:-12px;width:max-content;max-width:100px;font-size:16px;line-height:1.35;color:var(--color-text-primary);font-family:var(--font-display);font-weight:700;font-synthesis:none}
.event-0:before,.event-13:before{background:#5b5fc7;border-color:#5b5fc7;width:20px;height:20px}
.event-0 .ps-road-month{left:-45px;top:-62px;text-align:center;color:#5b5fc7;font-weight:700}
.event-1 .ps-road-month{left:-80px;max-width:68px;text-align:right;top:-20px}
.event-5 .ps-road-month{top:0}
.event-6 .ps-road-month{left:-54px}
.event-7 .ps-road-month,.event-10 .ps-road-month{color:#5b5fc7;font-weight:700;max-width:65px}
.event-9 .ps-road-month{left:-52px}
.event-12 .ps-road-month{left:-48px;top:-38px;color:#5b5fc7;font-weight:700}
.event-13 .ps-road-month{left:-48px;top:20px;text-align:center;color:#5b5fc7;font-weight:700}
.ps-road-book{position:absolute;left:var(--book-x);top:var(--book-y);transform:translate(-50%,-50%);width:11.7cqw;min-width:min-content;min-height:13cqw;padding:12px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;border:1px solid #b8b3df;border-radius:var(--ui-radius-book,8px);background:var(--color-surface);color:var(--color-text-primary);text-align:center;text-decoration:none;line-height:1.4}
.ps-road-book small{font-size:14px;color:#5b5fc7;font-weight:600}
.ps-road-book strong{font-size:20px;font-weight:700}
.ps-road-book span{font-size:12px;color:var(--color-text-secondary)}
.ps-road-book:hover{background:#f8f6ff;border-color:#5b5fc7}
.ps-road-book:focus-visible{outline:3px solid var(--color-link);outline-offset:3px}
.ps-appendix-shelf .ps-shelf-card{position:relative}
.ps-appendix-hot{align-self:center;display:inline-block;background:#fde9e9;color:#ad313e;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:700;margin:8px 0 0}
[data-pass-entry]:disabled{cursor:not-allowed;opacity:.48}
@media(min-width:801px){
 .ps-cards.is-2{grid-template-rows:repeat(9,auto)}
 .ps-cards.is-2>.ps-card{display:grid;grid-template-rows:subgrid;grid-row:span 9;row-gap:0;justify-items:center}
 .ps-cards.is-2 .ps-included-series{grid-row:6;align-self:stretch;display:flex;align-items:center;justify-content:center}
 .ps-cards.is-2 .ps-plus-series{grid-row:7}
 .ps-cards.is-2 .ps-bonus-block{grid-row:8;width:100%}
 .ps-cards.is-2 .ps-card-actions{grid-row:9}
}
@media(max-width:767px){
 .ps-map-viewer{margin-top:24px}
 .ps-map-stage{aspect-ratio:auto;padding:12px 8px 12px 0}
 .ps-map-stage .ps-road-lines{display:none}
 .ps-road-events{display:flex;flex-direction:column;gap:0}
 .ps-road-event{position:relative;left:auto;top:auto;width:auto;height:auto;padding:0 0 28px 48px;min-height:70px}
 .ps-road-event:after{content:"";position:absolute;left:19px;top:0;bottom:0;width:18px;border-radius:12px;background:#ebecec;z-index:-1}
 .ps-road-event:nth-child(even):after{left:14px;width:23px}
 .ps-road-event:last-child{padding-bottom:0}
 .ps-road-event:last-child:after{display:none}
 .ps-road-event:before{left:28px;top:12px;width:12px;height:12px}
 .ps-road-event .ps-road-month{position:static;display:block;text-align:left;max-width:none;width:auto;font-size:16px;margin:0 0 12px;color:var(--color-text-primary)}
 .event-0 .ps-road-month,.event-7 .ps-road-month,.event-10 .ps-road-month,.event-13 .ps-road-month{color:#5b5fc7;font-weight:700}
 .ps-road-books{display:flex;gap:10px;flex-wrap:wrap}
 .ps-road-book{position:static;transform:none;flex:1;min-width:100px;width:auto;min-height:108px;padding:14px 8px;gap:5px}
 .ps-road-book strong{font-size:20px}
 .ps-road-book small{font-size:14px}
 .ps-road-book span{font-size:12px}
}

@media(max-width:767px){.ps-road-event{isolation:isolate}.ps-road-event:after{left:20px;width:16px}.ps-road-event:nth-child(even):after{left:20px;width:16px}}


/* 길은 연보라 바탕과 분리하고, 모바일에서도 좌우로 굽는 경로를 유지한다. */
.ps-map-stage .ps-road-lines>path:first-child{stroke:#b5b2d2}
.ps-map-stage .ps-road-mobile{display:none}
@media(max-width:767px){
 .ps-map-stage{padding:12px 0 0}
 .ps-map-stage .ps-road-mobile{display:block;position:absolute;inset:0;width:100%;height:100%;overflow:visible}
 .ps-road-event{isolation:auto;padding:0 16px 80px 56px;min-height:120px}
 .ps-road-event:nth-child(even){padding:0 56px 80px 16px}
 .ps-road-event:after{display:none}
 .ps-road-event:before{left:20px;top:12px}
 .ps-road-event:nth-child(even):before{left:calc(100% - 20px)}
 .ps-road-event:nth-child(even) .ps-road-month{text-align:right}
 .ps-road-event:last-child{min-height:50px;padding-bottom:0}
 .ps-road-books{position:relative}
}

/* 검수 수정: 메뉴·배지의 독립 줄바꿈과 부록 카드 기준선 정리. */
.ps-appendix-shelf .ps-appendix-hot{position:absolute;top:28px;right:20px;margin:0}
.ps-appendix-shelf img.ps-cover-art{height:140px;object-fit:contain;object-position:left bottom}
@media(max-width:767px){
 .ps-detail .localnav-inner{gap:12px}
 .ps-detail .localnav-inner>strong{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .ps-detail .localnav-links{flex:none}
 .ps-detail .localnav-links .button{white-space:nowrap;min-height:44px}
 .ps-review-summary header{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:6px}
 .ps-review-summary header .ps-summary-ai,.ps-review-summary header .ps-summary-beta{white-space:nowrap}
}
.ps-map-stage{transform-origin:top left}

/* 기본 크기 지도: 정보와 길 모두 고정(2026-10-28 대표 지시로 길의 넘실거림·색 순환 삭제). */
.ps-map-window{overflow:visible;max-height:none;touch-action:auto}
@media(max-width:767px){
 .ps-map-stage{height:1980px;aspect-ratio:auto;padding:0;overflow:visible}
 .ps-road-events{display:block}
 .ps-road-event,.ps-road-event:nth-child(even),.ps-road-event:last-child{position:absolute;left:var(--mobile-x);top:var(--mobile-y);width:0;height:0;min-height:0;padding:0}
 .ps-road-event:before,.ps-road-event:nth-child(even):before{left:0;top:0;width:12px;height:12px}
 .ps-road-event .ps-road-month,.ps-road-event:nth-child(even) .ps-road-month{position:absolute;left:14px;top:-10px;margin:0;width:max-content;max-width:105px;text-align:left;font-size:15px;line-height:1.4}
 .ps-road-event.event-0 .ps-road-month{top:-50px;left:-16px;max-width:90px}
 .ps-road-event.event-1 .ps-road-month{left:-70px;max-width:60px;top:-20px;text-align:right}
 .ps-road-event.event-5 .ps-road-month,.ps-road-event.event-9 .ps-road-month,.ps-road-event.event-10 .ps-road-month{left:-70px;top:-12px;max-width:60px;text-align:right}
 .ps-road-event.event-12 .ps-road-month{left:-36px;top:-35px}
 .ps-road-event.event-13 .ps-road-month{left:-66px;top:20px;max-width:150px;text-align:center}
 .ps-road-books{display:contents}
 .ps-road-book{position:absolute;left:var(--mobile-book-x);top:var(--mobile-book-y);transform:translate(-50%,-50%);flex:none;width:clamp(88px,28cqw,116px);min-width:0;min-height:104px;padding:12px 6px;gap:5px}
 .ps-road-book strong{font-size:18px}
 .ps-road-book small{font-size:13px}
 .ps-road-book span{font-size:11px}
}

#gifts .ps-benefit-group>.ps-bonus-label{background:#fff}

/* 출간 지도는 PC에서만 제공하고, 연결선은 점·카드 테두리와 같은 회보라로 길과 어울리게 둔다. */
.ps-map-stage .ps-road-lines>path:not(:first-child){stroke:#a3a0d2;stroke-width:1}
@media(max-width:767px){
 .pass-page #publication,.pass-page a[href="#publication"],.pass-page a[href$="/pass/#publication"]{display:none}
}
/* 한완기 테마(A5): 옆 한완기 카드 표지 높이의 70%로 줄여, 같은 높이의 표지 영역 안에서 세로 가운데에 둔다. */
#pass-books .ps-curriculum-pair.is-theme::before{content:"";flex:none;width:0;padding-top:calc(min(36%,96px)*1.4141)}
#pass-books .ps-curriculum-pair.is-theme{align-items:center}
#pass-books .ps-curriculum-pair.is-theme .ps-shelf-cover{width:25.2%;max-width:67px}
#pass-books .ps-curriculum-pair.is-theme .ps-shelf-cover+ .ps-shelf-cover{margin-left:-4.2%;transform:translateY(-4px)}
#pass-books .ps-curriculum-pair.is-theme .ps-shelf-cover:nth-child(3){transform:translateY(-8px)}
@media(max-width:700px){#pass-books .ps-curriculum-pair.is-theme::before{padding-top:calc(min(33%,96px)*1.4141)}#pass-books .ps-curriculum-pair.is-theme .ps-shelf-cover{width:23.1%}}

/* 스크롤 등장(pass.js): JS가 html.ps-reveal-on을 붙였을 때만 숨긴다. 이동은 translate 속성이라 요소의 기존 transform과 겹치지 않고,
   전환은 등장하는 동안(.ps-reveal-run)에만 붙어 원래 hover 전환을 지우지 않는다.
   값은 Apple 제품 페이지 순차 등장(30px 상승·이동 0.7초·페이드 0.9초·0.15초 간격)을 따른다(C1 실측). */
.ps-reveal-on{--reveal-y:30px}
.ps-reveal-on [data-reveal]:not(.ps-reveal-in){opacity:0;translate:0 var(--reveal-y)}
.ps-reveal-on [data-reveal="fade"]:not(.ps-reveal-in){translate:none}
.ps-reveal-on [data-reveal].ps-reveal-run{will-change:opacity,translate;transition:opacity .9s ease var(--reveal-delay,0ms),translate .7s ease var(--reveal-delay,0ms)!important}
@media(max-width:600px){.ps-reveal-on{--reveal-y:26px}}
@media(prefers-reduced-motion:reduce){.ps-reveal-on [data-reveal]{opacity:1!important;translate:none!important;transition:none!important}}
@media print{.ps-reveal-on [data-reveal]{opacity:1!important;translate:none!important}}

/* 전체 교재 목록의 문서 제목: 기존 섹션 제목 위계. */
.ps-books-page .ps-catalogue-title{font-family:var(--font-display);font-weight:700;font-size:var(--type-section);line-height:var(--leading-heading);letter-spacing:var(--tracking-heading);margin:var(--section-space,64px) 0 0;word-break:keep-all;overflow-wrap:anywhere}
/* 패스 구성 요약 표(#summary)와 가격 정책 한 줄(2026-10-28 SEO·AI 검색 적용안). 표 기본은 home.css .pass-table. */
.ps-summary-sec .viewport{max-width:980px}
.ps-summary-sec h2{margin-bottom:var(--content-gap)}
.pass-table.ps-tier-summary{text-align:left;min-width:680px}
.ps-tier-summary th,.ps-tier-summary td{vertical-align:top;padding:18px 12px}
.ps-tier-summary thead th{font-size:var(--type-body);white-space:nowrap}
.ps-tier-summary tbody th{white-space:nowrap}
.ps-tier-summary tbody td{font-size:var(--type-note);line-height:var(--leading-body)}
.ps-price-policy{margin-top:16px;font-size:var(--type-note);color:var(--muted);line-height:var(--leading-body)}
#packages .ps-price-policy{margin-top:8px}
/* 커리큘럼 카드 폭(사용자 지시 2026-10-28): 가장 긴 교재명 「2028 한완기 교육청·사관·경찰」 한 줄(교재명 글자 크기의 11.78배, 실측) + 좌우 안쪽 여백 24px씩.
   모든 단계가 같은 폭을 쓰고, 카드가 적은 단계도 늘이지 않고 왼쪽부터 놓아 남는 자리는 단계 상자에 둔다. 자리가 모자라면 지금처럼 3등분 폭. 700px 이하 1열은 그대로. */
@media(min-width:701px){
 #pass-books{--curriculum-card:calc(var(--type-card) * 11.9 + 48px)}
 #pass-books .ps-shelf{grid-template-columns:repeat(3,min(var(--curriculum-card),calc((100% - 2 * var(--card-gap)) / 3)))}
}
/* 커리큘럼 카드 모바일 1열(사용자 지시 2026-10-28): 표지는 원래 크기(96px, 테마 67px) 그대로 두고 카드 폭을 데스크톱과 같은 기준
   (가장 긴 교재명 한 줄 + 좌우 24px)으로 고정한다. 다만 묶음 표지(묶음 폭의 33%, 최대 96px)가 줄지 않도록 최소 96 ÷ 0.33 + 48 ≈ 339px.
   화면이 더 좁으면 카드는 전체 폭이고, 표지 자리(안쪽 291px)를 먼저 두고 남는 만큼만 좌우 여백(16~24px)을 준다. 데스크톱처럼 왼쪽부터 놓는다. */
@media(max-width:700px){
 #pass-books .ps-shelf{grid-template-columns:min(100%,max(calc(var(--type-card) * 11.9 + 48px),calc(96px / .33 + 48px)))}
 #pass-books .ps-shelf-card{padding:28px clamp(16px,(100% - 291px) / 2,24px) 24px}
}
/* 특별부록 배송 일정(2026-10-28 대표 목록, build_pass.appendix_schedule): 진열 아래 배송 순서대로 월별 한눈에. 교재 상세의 출간 일정과 같은 ps-spec 행. */
#gifts .ps-ship{max-width:760px;margin-top:56px}
#gifts .ps-ship .ps-subhead{margin-top:0}
#gifts .ps-ship .ps-spec.is-rows div{display:grid;grid-template-columns:3.5em minmax(0,1fr);gap:16px;align-items:baseline}
#gifts .ps-ship dt{font-family:var(--font-display);font-weight:700;font-size:var(--type-body);color:var(--color-text-primary)}
#gifts .ps-ship dd{font-weight:500;word-break:keep-all}
#gifts .ps-ship dd span{white-space:nowrap}
