:root{
  --paper:#F7F5F0;
  --surface:#FFFFFF;
  --ink:#20241F;
  --ink-soft:#5B6259;
  --line:#DEDACD;
  --accent:#2F5233;
  --accent-soft:rgba(47,82,51,0.08);
  --gold:#A9812E;
  --shadow:rgba(32,36,31,0.08);
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Noto Sans KR', -apple-system, sans-serif;
  line-height:1.7;
}
a{color:var(--accent); text-decoration:none;}
a:hover{text-decoration:underline;}

.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px clamp(20px,5vw,64px);
  border-bottom:1px solid var(--line);
  background:var(--surface);
}
.nav .brand{
  font-family:'Noto Serif KR', serif; font-weight:700; font-size:20px;
  letter-spacing:0.02em;
}
.nav .brand span{color:var(--gold);}
.nav .links{display:flex; gap:24px; font-size:14px; color:var(--ink-soft);}

.wrap{max-width:960px; margin:0 auto; padding:0 clamp(20px,5vw,64px);}

.hero{
  padding:72px 0 56px; text-align:center;
}
.hero .eyebrow{
  font-size:13px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--gold); font-weight:600; margin-bottom:14px;
}
.hero h1{
  font-family:'Noto Serif KR', serif; font-weight:700;
  font-size:clamp(30px,5vw,44px); margin:0 0 18px; line-height:1.35;
}
.hero p{
  color:var(--ink-soft); font-size:16px; max-width:560px; margin:0 auto;
}

.schools{
  display:grid; grid-template-columns:1fr 1fr; gap:20px;
  margin:40px 0 64px;
}
@media (max-width:680px){ .schools{grid-template-columns:1fr;} }
.school-card{
  background:var(--surface); border:1px solid var(--line); border-radius:12px;
  padding:28px; box-shadow:0 4px 16px var(--shadow);
}
.school-card .tag{
  font-size:12px; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--accent); font-weight:700; margin-bottom:8px;
}
.school-card h3{
  font-family:'Noto Serif KR', serif; font-size:22px; margin:0 0 10px;
}
.school-card p{color:var(--ink-soft); font-size:14.5px; margin:0;}

.section-title{
  font-family:'Noto Serif KR', serif; font-size:24px; font-weight:700;
  margin:0 0 24px; padding-bottom:12px; border-bottom:2px solid var(--ink);
  display:inline-block;
}

.books{
  display:grid; grid-template-columns:1fr 1fr; gap:24px;
  margin-bottom:72px;
}
@media (max-width:680px){ .books{grid-template-columns:1fr;} }
.book-card{
  background:var(--surface); border:1px solid var(--line); border-radius:12px;
  overflow:hidden; box-shadow:0 4px 16px var(--shadow);
  display:flex; flex-direction:column;
}
.book-cover{
  background:linear-gradient(160deg, var(--accent), #1c3620);
  color:#F4F1E6; padding:36px 28px; min-height:150px;
  display:flex; flex-direction:column; justify-content:flex-end;
}
.book-cover .kicker{font-size:12px; letter-spacing:0.12em; opacity:0.75; margin-bottom:6px;}
.book-cover h3{font-family:'Noto Serif KR', serif; font-size:22px; margin:0; line-height:1.4;}
.book-body{padding:22px 28px 26px; flex:1; display:flex; flex-direction:column;}
.book-body .author{font-size:13px; color:var(--ink-soft); margin-bottom:12px;}
.book-body .desc{font-size:14.5px; color:var(--ink-soft); flex:1; margin-bottom:18px;}
.book-body .meta{font-size:12.5px; color:var(--ink-soft); margin-bottom:16px;}
.book-footer{
  display:flex; align-items:center; justify-content:space-between;
  padding-top:16px; border-top:1px solid var(--line);
}
.price{font-family:'Noto Serif KR', serif; font-size:20px; font-weight:700;}
.btn{
  display:inline-block; background:var(--accent); color:#fff;
  padding:10px 20px; border-radius:8px; font-size:14px; font-weight:600;
  border:none; cursor:pointer;
}
.btn:hover{opacity:0.9; text-decoration:none;}
.btn.ghost{background:transparent; color:var(--accent); border:1px solid var(--accent);}

.access-note{
  background:var(--accent-soft); border:1px solid var(--line); border-radius:10px;
  padding:16px 20px; font-size:13.5px; color:var(--ink-soft); margin:-8px 0 40px;
}

footer{
  border-top:1px solid var(--line); background:var(--surface);
  margin-top:40px; padding:36px clamp(20px,5vw,64px) 60px;
  font-size:12.5px; color:var(--ink-soft); line-height:1.9;
}
footer .flinks{margin-bottom:14px;}
footer .flinks a{color:var(--ink-soft); margin-right:16px;}
footer .flinks a:hover{color:var(--accent);}

.legal{
  max-width:760px; margin:0 auto; padding:56px clamp(20px,5vw,64px) 80px;
}
.legal h1{font-family:'Noto Serif KR', serif; font-size:30px; margin-bottom:8px;}
.legal .updated{color:var(--ink-soft); font-size:13px; margin-bottom:36px;}
.legal h2{font-size:18px; margin-top:36px; margin-bottom:10px;}
.legal p, .legal li{color:var(--ink-soft); font-size:14.5px;}
.legal table{width:100%; border-collapse:collapse; margin:16px 0; font-size:14px;}
.legal table td, .legal table th{border:1px solid var(--line); padding:8px 12px; text-align:left;}

.book-detail{padding:56px 0 80px;}
.book-detail .cover-lg{
  background:linear-gradient(160deg, var(--accent), #1c3620);
  color:#F4F1E6; padding:56px 40px; border-radius:14px; margin-bottom:32px;
}
.book-detail .cover-lg h1{font-family:'Noto Serif KR', serif; font-size:34px; margin:0 0 10px;}
.book-detail .cover-lg .sub{opacity:0.85; font-size:15px;}
.toc{background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:20px 24px; margin:24px 0;}
.toc h4{margin:0 0 10px; font-size:14px; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.08em;}
.toc ol{margin:0; padding-left:20px; font-size:14px; color:var(--ink-soft); columns:2; column-gap:24px;}
@media (max-width:680px){ .toc ol{columns:1;} }

.photo-hero{
  position:relative; border-radius:14px; overflow:hidden; margin-bottom:32px;
  min-height:340px; display:flex; align-items:flex-end;
  background-size:cover; background-position:center;
}
.photo-hero::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,22,18,0.05) 40%, rgba(20,22,18,0.75) 100%);
}
.photo-hero .content{position:relative; z-index:1; padding:36px 40px; color:#F4F1E6;}
.photo-hero .en{font-family:'Noto Serif KR', serif; font-weight:700; font-size:clamp(28px,4vw,42px); margin:0 0 8px;}
.photo-hero .kr{font-size:clamp(16px,2.2vw,20px); opacity:0.92;}

.manifesto{
  background:var(--surface); border:1px solid var(--line); border-radius:12px;
  padding:32px clamp(20px,4vw,44px); margin:32px 0; box-shadow:0 4px 16px var(--shadow);
}
.manifesto h3{font-family:'Noto Serif KR', serif; font-size:19px; margin:0 0 16px;}
.manifesto .en, .manifesto .kr{font-size:14.5px; line-height:1.9; color:var(--ink-soft);}
.manifesto .en{margin-bottom:24px; padding-bottom:24px; border-bottom:1px dashed var(--line);}
