/* 사주챗 디자인 시스템 — 색 3개: 종이 #F2EDE3 · 먹 #2B2722 · 인주 #9A3B24 (DESIGN.md) */
@font-face{
  font-family:"Saju Serif";
  src:url("fonts/saju-serif.woff2") format("woff2");
  font-weight:400;font-style:normal;font-display:swap;
}
:root{
  --paper:#F2EDE3;
  --ink:#2B2722;
  --seal:#9A3B24;
  --serif:"Saju Serif","Noto Serif KR","Noto Serif CJK KR","Nanum Myeongjo","AppleMyungjo","Batang",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR","Noto Sans CJK KR","Malgun Gothic",sans-serif;
  --s1:.5rem;--s2:1rem;--s3:1.5rem;--s4:2rem;--s5:3rem;--s6:4.5rem;--s7:6rem;
  --wrap:72rem;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.75;
     word-break:keep-all;overflow-wrap:anywhere;-webkit-font-smoothing:antialiased}
a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.22em}
a:hover{color:var(--seal)}
a:focus-visible,button:focus-visible{outline:2px solid var(--seal);outline-offset:3px}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.35;margin:0;letter-spacing:-.01em}
p{margin:0 0 var(--s2)}
.skip{position:absolute;left:-999px;top:0;background:var(--paper);padding:var(--s1) var(--s2);z-index:2}
.skip:focus{left:var(--s2)}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 1.25rem}

/* 라벨: 작은 대문자풍 */
.label{font-family:var(--sans);font-size:.75rem;line-height:1.5;letter-spacing:.16em;text-transform:uppercase;margin:0}
.label .n{color:var(--seal);margin-right:.6em}
.seal{color:var(--seal)}
.rule{border:0;border-top:1px solid var(--ink);margin:0}

/* 머리 */
.top{border-bottom:1px solid var(--ink)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);min-height:3.75rem}
.brand{font-family:var(--serif);font-size:1.25rem;text-decoration:none;letter-spacing:.02em}
.brand span{font-size:.8rem;margin-left:.5em;letter-spacing:.12em}
.nav{display:none;gap:var(--s3);font-size:.875rem}
.nav a{text-decoration:none}
.nav a:hover{text-decoration:underline}

/* 첫 화면 */
.hero{padding:var(--s6) 0 var(--s6)}
.hero .wrap{display:grid;gap:var(--s4)}
.hero h1{font-size:2.125rem;line-height:1.4;margin:var(--s3) 0 var(--s3)}
.hero .lead{font-size:1.0625rem;max-width:34rem}
.hero .vert{display:none}
br.wide{display:none}
.hanja-line{font-family:var(--serif);font-size:1rem;letter-spacing:.4em}

/* 버튼 */
.cta{display:flex;flex-direction:column;gap:.75rem;margin-top:var(--s4)}
.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--s2);min-height:3.25rem;
     padding:0 1.25rem;border:1px solid var(--ink);text-decoration:none;font-size:1rem;background:transparent;color:var(--ink)}
.btn:hover{color:var(--paper);background:var(--ink)}
.btn.primary{background:var(--seal);border-color:var(--seal);color:var(--paper)}
.btn.primary:hover{background:var(--ink);border-color:var(--ink)}
.btn .arr{font-family:var(--serif)}
.note{font-size:.8125rem;line-height:1.65}

/* 섹션 */
.sec{border-top:1px solid var(--ink);padding:var(--s5) 0 var(--s6)}
.sec .wrap{display:grid;gap:var(--s3)}
.sec h2{font-size:1.625rem}
.sec-head{display:grid;gap:var(--s2);align-content:start}
.body{max-width:42rem}

/* 세 갈래 목록 */
.cols{display:grid;gap:0;margin-top:var(--s2);border-top:1px solid var(--ink)}
.col{padding:var(--s3) 0;border-bottom:1px solid var(--ink)}
.col h3{font-size:1.1875rem;margin:.35rem 0 .6rem}
.col p:last-child{margin-bottom:0}
.col .label{font-size:.6875rem}
ul.plain{list-style:none;margin:0;padding:0}
ul.plain li{padding-left:1em;text-indent:-1em}
ul.plain li::before{content:"— ";}

/* 명식 표(타이포그래피용 한자) */
.chart{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);
       text-align:center;margin:var(--s2) 0 0}
.chart div{padding:.75rem 0 .9rem;border-left:1px solid var(--ink)}
.chart div:first-child{border-left:0}
.chart .k{font-size:.6875rem;letter-spacing:.16em;display:block}
.chart .g{font-family:var(--serif);font-size:1.375rem;line-height:1.3;display:block;margin-top:.25rem}
.elem{display:flex;justify-content:space-between;margin:var(--s2) 0 0;font-family:var(--serif);font-size:1.125rem}
.elem span small{font-family:var(--sans);font-size:.75rem;margin-left:.3em}

/* 단계 */
ol.steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--ink);counter-reset:s}
ol.steps li{display:grid;grid-template-columns:2.5rem 1fr;gap:var(--s2);padding:var(--s3) 0;border-bottom:1px solid var(--ink)}
ol.steps .no{font-family:var(--serif);font-size:1.5rem;line-height:1.2;color:var(--seal)}
ol.steps h3{font-size:1.125rem;margin:0 0 .4rem}
ol.steps p{margin:0}

/* 상품 */
.products{display:grid;border-top:1px solid var(--ink)}
.product{padding:var(--s3) 0;border-bottom:1px solid var(--ink);display:grid;gap:.5rem}
.product h3{font-size:1.375rem}
.price{font-family:var(--serif);font-size:1.5rem;letter-spacing:.01em}
.price small{font-family:var(--sans);font-size:.8125rem;margin-left:.2em}

/* 대화 예시 */
.chat{border:1px solid var(--ink);padding:var(--s3) 1rem;display:grid;gap:var(--s3);max-width:40rem}
.msg{max-width:88%}
.msg .who{font-size:.6875rem;letter-spacing:.16em;margin-bottom:.35rem}
.msg .txt{font-size:.9375rem;line-height:1.75}
.msg.me{justify-self:end;text-align:left}
.msg.me .txt{border:1px solid var(--ink);padding:.7rem .9rem}
.msg.me .who{text-align:right}
.msg.bot .txt{border-left:1px solid var(--seal);padding:.1rem 0 .1rem .9rem}
.msg.bot .gz{font-family:var(--serif);font-size:1.0625rem;letter-spacing:.06em}
.msg.bot .ai{display:block;margin-top:.5rem;font-size:.8125rem}
.chat-cap{font-size:.8125rem;margin-top:var(--s2)}

/* 안내 정의 목록 */
dl.facts{margin:0;border-top:1px solid var(--ink)}
dl.facts div{padding:var(--s2) 0;border-bottom:1px solid var(--ink);display:grid;gap:.25rem}
dl.facts dt{font-weight:700;font-size:.9375rem}
dl.facts dd{margin:0;font-size:.9375rem}
.en{font-size:.875rem;line-height:1.7;border-top:1px solid var(--ink);padding-top:var(--s2);margin-top:var(--s2)}

/* 바닥 */
.foot{border-top:1px solid var(--ink);padding:var(--s5) 0 var(--s6);font-size:.8125rem;line-height:1.8}
.foot .wrap{display:grid;gap:var(--s3)}
.foot .legal-links{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;font-size:.875rem}
.foot .legal-links strong a{font-weight:700}
.foot dl{margin:0;display:grid;gap:.1rem}
.foot dl div{display:flex;gap:.6em;flex-wrap:wrap}
.foot dt{font-weight:700}
.foot dd{margin:0}
.foot .mark{font-family:var(--serif);font-size:1.125rem}

@media (min-width:48rem){
  .wrap{padding:0 2.5rem}
  .nav{display:flex}
  .hero{padding:var(--s7) 0}
  .hero .wrap{grid-template-columns:1fr auto;align-items:start}
  .hero h1{font-size:3rem}
  br.wide{display:inline}
  .chart .g{font-size:1.75rem}
  .hero .vert{display:block;writing-mode:vertical-rl;font-family:var(--serif);font-size:4.5rem;line-height:1.1;
              letter-spacing:.25em;border-left:1px solid var(--ink);padding-left:var(--s3);margin:0}
  .cta{flex-direction:row}
  .cta .btn{min-width:16rem}
  .sec{padding:var(--s6) 0 var(--s7)}
  .sec .wrap{grid-template-columns:16rem 1fr;gap:var(--s5)}
  .sec h2{font-size:2rem}
  .cols{grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}
  .col{padding:var(--s3) var(--s3) var(--s3) 0;border-bottom:0}
  .col+.col{border-left:1px solid var(--ink);padding-left:var(--s3)}
  .products{grid-template-columns:1fr 1fr}
  .product{padding:var(--s3) var(--s3) var(--s3) 0}
  .product+.product{border-left:1px solid var(--ink);padding-left:var(--s3)}
  .chat{padding:var(--s4) var(--s4)}
  .foot .wrap{grid-template-columns:16rem 1fr;gap:var(--s5)}
}
@media (prefers-reduced-motion:no-preference){a,.btn{transition:color .15s,background-color .15s}}
