/* ==========================================================================
   메인 '2027학년도 선정 예정 교과서' 모달 (.modal_teacherLibrary2027)
   과목 필터칩 + 표지 그리드. 공용 .modal / .modal_wrap / .modal_contents(common.css) 위에 얹는다.
   표지 원본 비율 299:401.
   ========================================================================== */
.tlm27{
    --tlm27-brand:#44a5f8;      /* 사이트 주 버튼색(main.css .more.info-cookie-more) */
    --tlm27-brand-ink:#5a97fa;  /* 흰 배경 위 브랜드 글씨 */
    --tlm27-ink:#16232B;
    --tlm27-gray-1:#5B6B75;
    --tlm27-gray-2:#8A99A3;
    --tlm27-line:#E4E9EC;
    --tlm27-r-pill:999px;
}
/* 사이트 헤더 h1 이 z-index:10010 을 쓰므로 그 위로 올린다.
   이 파일은 common.css 보다 먼저 로드되므로 .modal 단독 선택자로는 이기지 못한다. */
.modal.tlm27{z-index:10020;}
.tlm27 *{box-sizing:border-box;}
.tlm27 button{margin:0;border:0;background:none;font-family:inherit;cursor:pointer;}
.tlm27 a{text-decoration:none;color:inherit;}
.tlm27 .modal_wrap{align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto;}

.tlm27_box{
    width:100%;max-width:900px;margin:auto;border-radius:24px;color:var(--tlm27-ink);
    box-shadow:0 24px 64px rgba(0,22,33,.28),0 4px 12px rgba(0,22,33,.10);
    animation:tlm27pop .32s cubic-bezier(.16,1,.3,1);
}
@keyframes tlm27pop{from{opacity:0;transform:translateY(14px) scale(.985);}}

/* ── 헤더 ─────────────────────────────────────────────────── */
.tlm27_head{
    position:relative;display:flex;align-items:center;gap:14px;height:64px;padding:0 28px;
    /* 사이트 헤더(main.css #gilbut .gilbut_header)와 같은 그라데이션 */
    background:linear-gradient(-45deg,#4ba9f8 0%,#698dfd 100%);
}
.tlm27_chip{
    padding:9px 14px;border-radius:var(--tlm27-r-pill);background-color:#fff;
    font-size:13.5px;font-weight:700;color:var(--tlm27-brand-ink);letter-spacing:-.03em;
    line-height:1;white-space:nowrap;
}
.tlm27_title{font-size:18.5px;font-weight:700;color:#fff;letter-spacing:-.035em;line-height:1.3;}
.tlm27_sub{
    padding-left:12px;border-left:1px solid rgba(255,255,255,.35);
    font-size:12.5px;font-weight:500;color:rgba(255,255,255,.88);line-height:1.3;
}
.tlm27_x{margin-left:auto;padding:6px;font-size:19px;line-height:1;color:rgba(255,255,255,.8);transition:color .16s ease;}
.tlm27_x:hover{color:#fff;}

/* ── 푸터 ─────────────────────────────────────────────────── */
.tlm27_foot{
    display:flex;align-items:center;justify-content:space-between;
    height:50px;padding:0 28px;border-top:1px solid var(--tlm27-line);background-color:#FCFDFD;
}
.tlm27_hide{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--tlm27-gray-1);cursor:pointer;}
/* common.css 가 input[type=checkbox]{display:none} 로 전역 차단하므로 여기서 되살린다 */
.tlm27 .tlm27_hide_chk{display:inline-block;flex:none;width:15px;height:15px;margin:0;accent-color:var(--tlm27-brand);}
.tlm27_close{font-size:12.5px;font-weight:500;color:var(--tlm27-gray-1);line-height:1;transition:color .16s ease;}
.tlm27_close:hover{color:var(--tlm27-ink);}

/* ── 본문: 필터칩 + 표지 그리드 ─────────────────────────────── */
.tlm27_body{padding:24px 32px 28px;}
.tlm27_filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px;}
.tlm27_f{
    display:inline-flex;align-items:center;gap:7px;padding:10px 16px;
    border:1px solid var(--tlm27-line);border-radius:var(--tlm27-r-pill);background-color:#fff;
    font-size:13.5px;font-weight:600;color:var(--tlm27-gray-1);letter-spacing:-.03em;line-height:1;
    transition:border-color .16s ease,background-color .16s ease,color .16s ease;
}
.tlm27_f em{font-style:normal;font-size:11px;font-weight:700;color:var(--tlm27-gray-2);}
.tlm27_f:hover{border-color:#C7D1D7;background-color:#FAFCFC;}
.tlm27_f.on{background-color:var(--tlm27-accent);border-color:var(--tlm27-accent);color:#fff;}
.tlm27_f.on em{color:rgba(255,255,255,.62);}

.tlm27_grid{
    display:grid;grid-template-columns:repeat(5,1fr);gap:20px 15px;
    max-height:62vh;overflow-y:auto;margin:0 -4px;padding:0 4px 2px;
}
.tlm27_card{display:flex;flex-direction:column;transition:transform .2s cubic-bezier(.16,1,.3,1);}
.tlm27_fig{
    position:relative;display:block;border-radius:9px;overflow:hidden;
    box-shadow:0 3px 10px rgba(0,22,33,.13);transition:box-shadow .2s cubic-bezier(.16,1,.3,1);
}
.tlm27_card img{display:block;width:100%;aspect-ratio:299/401;object-fit:cover;}
.tlm27_fig::after{
    content:'바로 가기';position:absolute;inset:auto 0 0 0;padding:24px 0 10px;
    background:linear-gradient(transparent,rgba(0,22,33,.85));
    font-size:11.5px;font-weight:700;color:#fff;letter-spacing:-.02em;text-align:center;
    opacity:0;transition:opacity .2s ease;
}
.tlm27_card:hover{transform:translateY(-5px);}
.tlm27_card:hover .tlm27_fig{box-shadow:0 16px 28px rgba(0,22,33,.24);}
.tlm27_card:hover .tlm27_fig::after,
.tlm27_card:focus-visible .tlm27_fig::after{opacity:1;}
.tlm27_card_t{margin-top:9px;font-size:13.5px;font-weight:700;letter-spacing:-.04em;line-height:1.3;}
.tlm27_card_s{margin-top:4px;font-size:11px;font-weight:500;color:var(--tlm27-gray-2);line-height:1.4;}
.tlm27_card_s i{font-style:normal;font-weight:700;color:var(--tlm27-accent-strong,var(--tlm27-accent));}
.tlm27_card.hide{display:none;}

/* ── 반응형 ───────────────────────────────────────────────── */
@media (max-width:1040px){
    .tlm27_grid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:640px){
    .tlm27 .modal_wrap{padding:20px 12px;}
    .tlm27_head{gap:10px;height:auto;padding:16px 18px;flex-wrap:wrap;}
    .tlm27_title{font-size:17px;}
    .tlm27_x{position:absolute;top:12px;right:12px;}
    .tlm27_body{padding:18px 18px 20px;}
    .tlm27_foot{padding:0 18px;}
    .tlm27_grid{grid-template-columns:repeat(2,1fr);gap:16px 12px;}
}
