:root{
  --ivory:#FAF8EE;
  --white:#FFFFFF;
  --green:#2E5A38;
  --green-mid:#4A7A54;
  --green-pale:#EDF1E4;
  --gold:#C9A64B;
  --text:#2C332C;
  --muted:#5E685E;
  --line:#E5E1D1;
  --soft:0 2px 4px rgba(46,90,56,.04), 0 12px 30px rgba(46,90,56,.07);
  --soft-lg:0 6px 12px rgba(46,90,56,.05), 0 26px 60px rgba(46,90,56,.10);
  --wrap:1320px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--ivory);color:var(--text);
  font-family:Pretendard,"Pretendard Variable","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  line-height:1.8;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 46px;}
.jp{font-family:"Zen Kaku Gothic New",Pretendard,sans-serif;}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px;}

/* ── 상단 ── */
.top{position:relative;z-index:20;}
.top-in{display:flex;align-items:center;height:104px;}
.logo{display:flex;align-items:center;gap:14px;text-decoration:none;margin-right:auto;}
.logo img{width:56px;height:56px;object-fit:contain;}
.logo b{font-size:1.5rem;font-weight:700;color:var(--green);letter-spacing:.22em;}
.menu{display:flex;gap:40px;}
.menu a{text-decoration:none;font-size:1rem;font-weight:600;color:var(--text);letter-spacing:.06em;padding-bottom:3px;border-bottom:2px solid transparent;transition:border-color .18s,color .18s;}
.menu a:hover,.menu a.on{color:var(--green);border-bottom-color:var(--gold);}

/* ── 히어로 ── */
.hero{position:relative;padding:8px 0 74px;}
/* 텍스트 영역: 왼쪽 55%만 차지, 배경으로 이미지와 완전 분리 */
.hero-in{
  position:relative;z-index:10;
  max-width:52%;
  background:var(--ivory);
  padding-right:48px;
  padding-top:8px;
  padding-bottom:8px;
}
/* 텍스트 뒤로 아이보리 배경을 오른쪽으로 약간 더 넓게 — 이미지와 겹치는 틈 차단 */
.hero-in::after{
  content:'';
  position:absolute;
  inset:0;
  right:-32px;
  background:var(--ivory);
  z-index:-1;
}
.hero h1{margin:0 0 22px;font-size:clamp(2rem,4.3vw,3.3rem);font-weight:800;line-height:1.34;color:var(--green);}
.hero .lead{margin:0 0 34px;font-size:clamp(1rem,1.4vw,1.18rem);color:var(--muted);}
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-bottom:34px;}
.cta{display:inline-block;text-decoration:none;background:var(--green);color:#fff;font-size:1.04rem;font-weight:700;padding:18px 42px;border-radius:10px;transition:background .18s,transform .18s;}
.cta:hover{background:#25482D;transform:translateY(-2px);}
.cta-alt{text-decoration:none;font-size:1rem;font-weight:600;color:var(--green-mid);border-bottom:1.5px solid rgba(74,122,84,.35);padding-bottom:2px;transition:color .18s,border-color .18s;}
.cta-alt:hover{color:var(--green);border-bottom-color:var(--green);}
.pills{display:flex;flex-wrap:wrap;gap:13px;list-style:none;margin:0;padding:0;}
.pills li{display:flex;align-items:center;gap:9px;background:var(--white);border:1px solid var(--line);border-radius:12px;padding:11px 22px;font-size:.95rem;font-weight:500;}
.pills svg{width:17px;height:17px;flex:0 0 17px;color:var(--green-mid);}

.forest{position:absolute;top:0;right:0;width:50%;height:calc(100% + 104px);margin-top:-104px;overflow:hidden;z-index:1;border-radius:44% 0 0 40% / 30% 0 0 34%;}
.forest img{width:100%;height:100%;object-fit:cover;}
.hills{position:absolute;left:0;bottom:-2px;width:60%;max-width:720px;z-index:2;pointer-events:none;opacity:.9;}

/* ── 섹션 ── */
.sec{padding:74px 0;position:relative;}
.sec-pale{background:var(--green-pale);}
.head{text-align:center;max-width:640px;margin:0 auto 40px;position:relative;}
.eye{display:block;font-size:.86rem;font-weight:700;color:var(--gold);letter-spacing:.16em;margin-bottom:12px;}
.head h2{margin:0 0 14px;font-size:clamp(1.7rem,3.2vw,2.4rem);font-weight:800;color:var(--green);line-height:1.42;}
.head p{margin:0;color:var(--muted);}

/* 제목 옆 작은 아이콘 링크 */
.mini{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:50%;text-decoration:none;
  background:var(--white);border:1px solid var(--line);color:var(--green-mid);
  vertical-align:middle;margin-left:12px;
  transition:transform .18s,border-color .18s,color .18s;
}
.mini:hover{transform:translateY(-2px);border-color:var(--gold);color:var(--green);}
.mini svg{width:19px;height:19px;}

.split{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center;max-width:1000px;margin:0 auto;}
.split h3{margin:0 0 14px;font-size:clamp(1.45rem,2.7vw,1.95rem);font-weight:800;color:var(--green);line-height:1.42;}
.split .sub{margin:0 0 26px;color:var(--muted);}
.tags{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0 0 30px;padding:0;}
.tags li{font-size:.92rem;font-weight:500;background:var(--white);border:1px solid var(--line);color:var(--green);padding:9px 18px;border-radius:999px;}
.btns{display:flex;flex-wrap:wrap;gap:13px;}
.b{display:inline-block;text-decoration:none;font-size:.98rem;font-weight:600;padding:15px 30px;border-radius:10px;transition:transform .18s,background .18s;}
.b:hover{transform:translateY(-2px);}
.b-main{background:var(--green);color:#fff;}
.b-main:hover{background:#25482D;}
.b-sub{background:var(--white);color:var(--green);border:1px solid var(--line);}
.b-off{background:#E9E5D8;color:#A29C89;cursor:not-allowed;}
.b-off:hover{transform:none;}

.panel{background:var(--white);border-radius:24px;box-shadow:var(--soft-lg);padding:36px 32px;}
.panel h4{margin:0 0 7px;font-size:1.08rem;font-weight:700;color:var(--green);}
.panel>p{margin:0 0 22px;font-size:.95rem;color:var(--muted);}
.opt{background:var(--ivory);border-radius:14px;padding:18px 20px;margin-bottom:11px;}
.opt:last-child{margin-bottom:0;}
.opt b{display:block;font-size:1rem;font-weight:700;margin-bottom:3px;}
.opt span{font-size:.92rem;color:var(--muted);}
.soon{display:block;width:max-content;margin:0 auto 14px;font-size:.84rem;font-weight:700;color:#8C6E22;background:#F5EEDA;padding:8px 20px;border-radius:999px;}

/* ── 교재 3권 카드 ── */
.books{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1000px;margin:0 auto 34px;}
.book{background:var(--white);border-radius:20px;box-shadow:var(--soft);padding:32px 28px;}
.book .vol{display:inline-block;font-size:.8rem;font-weight:700;color:var(--gold);letter-spacing:.12em;margin-bottom:10px;}
.book h3{margin:0 0 8px;font-size:1.16rem;font-weight:700;color:var(--green);}
.book p{margin:0 0 16px;font-size:.95rem;color:var(--muted);}
.book .meta{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0;}
.book .meta li{font-size:.85rem;font-weight:500;background:var(--ivory);color:var(--green);padding:6px 14px;border-radius:999px;}

/* ── 페이지 이동 (동그란 번호 + 화살표) ── */
.pagenav{padding:30px 0 40px;}
.pager{display:flex;align-items:center;justify-content:center;gap:12px;}
.pg-num{
  display:flex;align-items:center;justify-content:center;
  width:46px;height:46px;border-radius:50%;
  border:1.5px solid var(--line);background:transparent;color:var(--muted);
  font-size:1rem;font-weight:700;text-decoration:none;
  transition:border-color .18s,color .18s,background .18s,transform .18s;
}
.pg-num:hover{border-color:var(--gold);color:var(--green);transform:translateY(-2px);}
.pg-num.on{background:var(--gold);border-color:var(--gold);color:#fff;cursor:default;}
.pg-num.on:hover{transform:none;}
.pg-arrow{
  display:flex;align-items:center;justify-content:center;
  width:40px;height:46px;color:var(--green);text-decoration:none;
  transition:color .18s,transform .18s;
}
.pg-arrow:hover{color:var(--gold);}
.pg-arrow.prev:hover{transform:translateX(-3px);}
.pg-arrow.next:hover{transform:translateX(3px);}
.pg-arrow svg{width:22px;height:22px;}
.pg-arrow.off{color:#C9C4B4;cursor:default;}
.pg-arrow.off:hover{color:#C9C4B4;transform:none;}

/* ── 연락 (절반 높이) ── */
.contact-slim{padding:34px 0 38px;background:var(--green-pale);}
.cs-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px 22px;max-width:900px;margin:0 auto;text-align:center;}
.cs-txt{display:flex;flex-direction:column;align-items:flex-start;line-height:1.55;text-align:left;}
.cs-txt b{font-size:1.06rem;font-weight:700;color:var(--green);}
.cs-txt span{font-size:.86rem;color:var(--muted);}
.kbox{display:inline-flex;flex-wrap:wrap;align-items:center;gap:11px;background:var(--white);border:1px solid var(--line);border-radius:999px;padding:7px 8px 7px 20px;}
.kid{font-size:1rem;font-weight:700;color:var(--green);}
.copy{font-family:inherit;font-size:.85rem;font-weight:700;padding:9px 18px;border-radius:999px;background:var(--green);color:#fff;border:none;cursor:pointer;transition:background .18s;}
.copy:hover{background:#25482D;}

footer{padding:26px 0 38px;color:var(--muted);font-size:.85rem;}
.foot-in{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;}

/* ── 준비 중 페이지 ── */
.solo{padding:52px 0 20px;text-align:center;}
.solo .tags{justify-content:center;}
.solo .btns{justify-content:center;}
.solo-panel{max-width:640px;margin:0 auto;text-align:left;}

@media (max-width:1100px){
  .wrap{padding:0 30px;}
  .forest{width:44%;}
  .books{grid-template-columns:1fr;max-width:560px;}
}
@media (max-width:900px){
  .menu{display:none;}
  .top-in{height:84px;}
  .logo img{width:46px;height:46px;}
  .logo b{font-size:1.24rem;}
  .forest{position:relative;width:100%;height:280px;margin:0 0 30px;border-radius:0 0 40% 40% / 0 0 16% 16%;}
  .hero{padding:0 0 60px;display:flex;flex-direction:column;}
  .hero-in{max-width:none;padding-right:0;}
  .hero-in::after{display:none;}
  .hills{width:100%;opacity:.7;}
  .sec{padding:54px 0;}
  .split{grid-template-columns:1fr;gap:24px;}
  .pager{gap:9px;}
  .pg-num{width:42px;height:42px;font-size:.95rem;}
  .cs-in{flex-direction:column;}
  .cs-txt{align-items:center;text-align:center;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{transition:none!important;animation:none!important;}
}

/* ── 오늘의 속담 (홈 위젯 + 속담 페이지) ── */
.kw-home{padding:0 0 10px;}
.kw-strip{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px 32px;
  max-width:1000px;margin:-18px auto 0;position:relative;z-index:10;
  background:var(--white);border:1px solid var(--line);border-radius:20px;box-shadow:var(--soft);
  padding:22px 30px;
}
.kw-strip .eye{margin:0;white-space:nowrap;}
.kw-strip-body{min-width:0;}
.kw-strip-ja{margin:0;font-size:clamp(1.25rem,2.2vw,1.55rem);font-weight:700;color:var(--green);line-height:1.4;}
.kw-strip-ja small{font-family:Pretendard,sans-serif;font-size:.8rem;font-weight:500;color:var(--muted);margin-left:10px;}
.kw-strip-meaning{margin:4px 0 0;font-size:.95rem;color:var(--muted);}
.kw-strip .b{white-space:nowrap;padding:12px 22px;font-size:.92rem;}

.kw-page{padding:52px 0 60px;}
.kw-date{margin:0 0 26px;font-size:.88rem;color:var(--muted);}
.kw-card{max-width:720px;margin:0 auto;text-align:center;padding:44px 36px 32px;}
.kw-ja{margin:0 0 8px;font-size:clamp(1.9rem,4vw,2.7rem);font-weight:700;color:var(--green);line-height:1.4;letter-spacing:.04em;}
.kw-yomi{margin:0 0 22px;font-size:.98rem;color:var(--muted);letter-spacing:.06em;}
.kw-literal{margin:0 0 6px;font-size:.92rem;color:var(--gold);font-weight:700;}
.kw-literal::before{content:"직역 · ";font-weight:500;color:var(--muted);}
.kw-meaning{margin:0 auto 18px;max-width:30em;font-size:1.06rem;line-height:1.85;}
.kw-note{margin:0 auto 30px;max-width:30em;font-size:.95rem;color:var(--muted);background:var(--ivory);border-radius:14px;padding:14px 18px;}
.kw-btns{justify-content:center;}
.kw-btns .b{font-family:inherit;border:1px solid transparent;cursor:pointer;}
.kw-btns .b-sub{border-color:var(--line);}
.kw-btns .b:disabled{opacity:.5;cursor:default;transform:none;}
.kw-toast{margin:14px 0 0;min-height:1.6em;font-size:.86rem;color:var(--green-mid);}
.kw-foot{margin:36px 0 0;font-size:.95rem;color:var(--muted);}
.kw-foot a{color:var(--green);font-weight:600;text-decoration:none;border-bottom:1.5px solid rgba(74,122,84,.35);}
.kw-card.swap .kw-ja,.kw-card.swap .kw-yomi,.kw-card.swap .kw-literal,.kw-card.swap .kw-meaning,.kw-card.swap .kw-note{animation:kwRise .45s ease-out;}
@keyframes kwRise{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

@media (max-width:900px){
  .kw-strip{grid-template-columns:1fr;gap:10px;margin-top:0;padding:20px 22px;text-align:left;}
  .kw-strip .b{justify-self:start;}
  .kw-strip-ja small{display:block;margin:2px 0 0;}
  .kw-card{padding:34px 22px 26px;}
  .kw-btns .b{padding:13px 20px;font-size:.92rem;}
}
