:root{
  --paper:#EAE0C6;
  --paper-2:#DFD2AC;
  --paper-deep:#D5C494;
  --ink:#221E19;
  --ink-soft:#54493A;
  --ink-faint:#8B7F6B;
  --red:#9E2B34;
  --red-deep:#7C2028;
  --gold:#A9822F;
  --blue:#2B4A73;
  --line: rgba(34,30,25,0.18);
  --line-strong: rgba(34,30,25,0.32);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background-color:var(--paper);
  background-image:
    radial-gradient(ellipse at 15% 20%, rgba(255,255,255,0.10), transparent 55%),
    radial-gradient(ellipse at 85% 75%, rgba(0,0,0,0.05), transparent 55%),
    repeating-linear-gradient(0deg, rgba(0,0,0,0.012) 0px, rgba(0,0,0,0.012) 1px, transparent 1px, transparent 3px);
  color:var(--ink);
  font-family:'Noto Sans KR', sans-serif;
  font-weight:400;
  line-height:1.8;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3{
  font-family:'Noto Serif KR', serif;
  margin:0;
  color:var(--ink);
  font-weight:600;
}

a{color:inherit;}
img,svg{display:block;max-width:100%;}

:focus-visible{
  outline:2px solid var(--red);
  outline-offset:3px;
}

.wrap{
  max-width:920px;
  margin:0 auto;
  padding:0 28px;
}

/* ---------- Nav ---------- */
header.nav{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(234,224,198,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  max-width:920px;
  margin:0 auto;
  padding:14px 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
}
.brand-mark{
  width:30px;height:30px;
  background:var(--red);
  border-radius:3px;
  position:relative;
  flex:none;
}
.brand-mark svg{position:absolute;inset:0;}
.brand-name{
  font-family:'Noto Serif KR', serif;
  font-size:17px;
  font-weight:600;
  letter-spacing:0.02em;
}
nav.links{
  display:flex;
  gap:26px;
  font-size:14.5px;
}
nav.links a{
  text-decoration:none;
  color:var(--ink-soft);
  position:relative;
  padding-bottom:3px;
}
nav.links a::after{
  content:"";
  position:absolute;
  left:0;right:100%;
  bottom:0;
  height:1px;
  background:var(--red);
  transition:right .25s ease;
}
nav.links a:hover{color:var(--ink);}
nav.links a:hover::after{right:0;}
.nav-phone{
  font-size:13.5px;
  color:var(--ink-soft);
  white-space:nowrap;
  display:none;
}
@media(min-width:760px){ .nav-phone{display:block;} }
@media(max-width:640px){
  nav.links{gap:14px;font-size:13px;}
  .brand-name{font-size:14.5px;}
}

/* ---------- Divider ---------- */
.divider{
  width:100%;
  max-width:340px;
  margin:0 auto;
  opacity:0.75;
}
.divider path{
  stroke:var(--ink);
  stroke-width:2;
  fill:none;
  stroke-linecap:round;
}

/* ---------- Hero ---------- */
.hero{
  padding:96px 0 84px;
  position:relative;
  overflow:hidden;
}
.hero-inner{
  text-align:center;
  max-width:640px;
  margin:0 auto;
  opacity:0;
  transform:translateY(14px);
  animation:rise .9s ease forwards;
}
@keyframes rise{ to{opacity:1; transform:translateY(0);} }
@media(prefers-reduced-motion:reduce){
  .hero-inner{animation:none;opacity:1;transform:none;}
}
.hero-eyebrow{
  font-size:14.5px;
  color:var(--red-deep);
  margin-bottom:18px;
  font-weight:500;
}
.hero h1{
  font-size:clamp(2.1rem, 4.6vw, 3.05rem);
  line-height:1.42;
  letter-spacing:-0.005em;
}
.hero-sub{
  margin:26px auto 0;
  max-width:480px;
  color:var(--ink-soft);
  font-size:16px;
}
.hero-actions{
  margin-top:38px;
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
}
.btn{
  display:inline-block;
  padding:13px 30px;
  font-family:'Noto Sans KR', sans-serif;
  font-size:15px;
  font-weight:500;
  text-decoration:none;
  border-radius:2px;
  cursor:pointer;
  border:1px solid var(--ink);
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn:active{transform:translateY(1px);}
.btn-primary{
  background:var(--red);
  color:#F3E9D4;
  border-color:var(--red);
}
.btn-primary:hover{background:var(--red-deep); border-color:var(--red-deep);}
.btn-ghost{
  background:transparent;
  color:var(--ink);
}
.btn-ghost:hover{background:rgba(34,30,25,0.06);}

.seal{
  position:absolute;
  width:104px;height:104px;
  opacity:0.92;
}
.seal.s1{ top:34px; right:6%; transform:rotate(9deg); }
.seal.s2{ display:none; }
@media(max-width:700px){
  .seal.s1{ width:70px;height:70px; top:14px; right:4%; }
}

/* ---------- Sections generic ---------- */
section{
  padding:78px 0;
  border-bottom:1px solid var(--line);
}
section:last-of-type{border-bottom:none;}
.section-head{
  margin-bottom:46px;
}
.section-kicker{
  font-size:14px;
  color:var(--red-deep);
  margin-bottom:10px;
  font-weight:500;
}
.section-head h2{
  font-size:clamp(1.5rem, 2.8vw, 1.95rem);
}

/* ---------- About ---------- */
.about-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:40px;
  align-items:center;
}
@media(min-width:760px){
  .about-grid{grid-template-columns:1.15fr 0.85fr;}
}
.about-text p{
  color:var(--ink-soft);
  font-size:15.5px;
  max-width:56ch;
}
.about-text p + p{margin-top:16px;}
.about-name{
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid var(--line);
  font-size:14.5px;
  color:var(--ink-soft);
}
.about-name strong{
  color:var(--ink);
  font-family:'Noto Serif KR', serif;
  font-weight:600;
}
.fan{
  justify-self:center;
  width:210px;
}

/* ---------- Services ---------- */
.service-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.service-item{
  background:var(--paper);
  padding:30px 26px;
  display:flex;
  gap:18px;
}
.service-mark{
  flex:none;
  width:42px;height:42px;
  border:1px solid var(--ink);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family:'Noto Serif KR', serif;
  font-size:19px;
  color:var(--red-deep);
}
.service-item h3{
  font-size:17px;
  margin-bottom:8px;
}
.service-item p{
  color:var(--ink-soft);
  font-size:14.5px;
  margin:0;
}

/* ---------- Booking ---------- */
.booking-card{
  background:var(--paper-2);
  border:1px solid var(--line-strong);
  padding:44px clamp(22px, 4vw, 48px);
  position:relative;
}
.booking-lede{
  color:var(--ink-soft);
  font-size:15px;
  margin:-8px 0 32px;
  max-width:52ch;
}
form.booking{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px 26px;
}
.field{display:flex; flex-direction:column; gap:8px;}
.field.full{grid-column:1 / -1;}
@media(max-width:640px){
  form.booking{grid-template-columns:1fr;}
}
.field label{
  font-size:13.5px;
  color:var(--ink-soft);
  font-weight:500;
}
.field input[type="text"],
.field input[type="tel"],
.field input[type="date"],
.field input[type="time"],
.field select,
.field textarea{
  font-family:'Noto Sans KR', sans-serif;
  font-size:15px;
  padding:11px 13px;
  border:1px solid var(--line-strong);
  background:#F4ECD6;
  color:var(--ink);
  border-radius:1px;
}
.field input:focus,
.field select:focus,
.field textarea:focus{
  border-color:var(--red);
}
.field textarea{resize:vertical; min-height:96px; font-family:'Noto Sans KR', sans-serif;}
.radio-row{
  display:flex;
  gap:18px;
  padding-top:4px;
  flex-wrap:wrap;
}
.radio-row label{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:14.5px;
  color:var(--ink);
  font-weight:400;
}
.radio-row input{accent-color:var(--red);}
.booking-submit{
  grid-column:1 / -1;
  margin-top:6px;
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
}
.booking-note{
  font-size:13px;
  color:var(--ink-faint);
}
.booking-confirm{
  display:none;
  text-align:center;
  padding:30px 10px;
}
.booking-confirm.show{display:block;}
form.booking.hide{display:none;}
.confirm-seal{
  width:64px;height:64px;
  margin:0 auto 20px;
}
.booking-confirm h3{font-size:19px; margin-bottom:10px;}
.booking-confirm p{color:var(--ink-soft); font-size:14.5px;}
.field-error{
  font-size:12.5px;
  color:var(--red-deep);
  display:none;
}
.field-error.show{display:block;}
.field.error input,
.field.error select{
  border-color:var(--red-deep);
}

/* ---------- Reviews ---------- */
.review-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(250px,1fr));
  gap:26px;
}
.review-card{
  background:var(--paper);
  border:1px solid var(--line);
  padding:28px 26px;
  position:relative;
}
.review-card::before{
  content:"";
  position:absolute;
  top:18px; right:18px;
  width:26px;height:26px;
  background:var(--red);
  opacity:0.85;
  clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
}
.review-quote{
  font-size:14.8px;
  color:var(--ink-soft);
  margin:0 0 20px;
  max-width:44ch;
}
.review-who{
  font-size:13px;
  color:var(--ink-faint);
  border-top:1px solid var(--line);
  padding-top:12px;
}

/* ---------- Footer ---------- */
footer{
  padding:56px 0 44px;
  background:var(--ink);
  color:#DCD2B8;
}
.footer-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:30px;
}
@media(min-width:700px){
  .footer-grid{grid-template-columns:1.2fr 1fr;}
}
footer h4{
  font-family:'Noto Serif KR', serif;
  font-size:16px;
  color:#F1E7CC;
  margin:0 0 14px;
  font-weight:600;
}
footer p, footer li{
  font-size:13.8px;
  color:#B9AD8F;
  margin:0 0 6px;
  line-height:1.85;
}
footer ul{list-style:none; padding:0; margin:0;}
.footer-bottom{
  margin-top:40px;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,0.12);
  font-size:12.5px;
  color:#8B7F60;
  text-align:center;
}

/* ---------- 만세력 ---------- */
.manse-card{background:var(--paper-2);border:1px solid var(--line-strong);padding:28px clamp(18px,4vw,36px) 22px;max-width:720px;}
.mf-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 0;border-bottom:1px dashed var(--line);}
.mf-row:last-of-type{border-bottom:none;}
.mf-label{flex:0 0 96px;font-size:14px;font-weight:500;color:var(--ink);}
.mf-hint{font-size:12.5px;color:var(--ink-faint);}
.seg{display:inline-flex;border:1px solid var(--line-strong);background:#F4ECD6;}
.seg label{position:relative;}
.seg input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;}
.seg span{display:block;padding:8px 18px;font-size:14.5px;color:var(--ink-soft);cursor:pointer;}
.seg label + label span{border-left:1px solid var(--line-strong);}
.seg input:checked + span{background:var(--red);color:#F3E9D4;}
.seg input:focus-visible + span{outline:2px solid var(--red);outline-offset:2px;}
.mf-check{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--ink);}
.mf-check input{accent-color:var(--red);}
.mf-date,.mf-time{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.mf-date input{width:64px;padding:9px 10px;font-size:16px;border:1px solid var(--line-strong);background:#F4ECD6;color:var(--ink);text-align:center;font-family:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;}
.mf-date input#mY{width:78px;}
.mf-date span{font-size:14px;color:var(--ink-soft);margin-right:6px;}
.manse-card select{padding:9px 10px;font-size:15px;border:1px solid var(--line-strong);background:#F4ECD6;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;}
.mf-adv{margin-top:6px;border-top:1px solid var(--line);padding-top:6px;}
.mf-adv summary{cursor:pointer;font-size:14px;color:var(--ink-soft);padding:8px 0;}
.mf-opts{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--ink);}
.mf-opts input{accent-color:var(--red);margin-right:6px;}
.mf-opts small{color:var(--ink-faint);}
.mf-error{color:var(--red-deep);font-size:14px;margin:12px 0 0;}
.mf-submit{margin-top:18px;width:100%;font-size:16px;padding:14px;}
.mf-privacy{font-size:12.5px;color:var(--ink-faint);text-align:center;margin:10px 0 0;}
@media(max-width:560px){.mf-label{flex-basis:100%;}}
.manse-result{max-width:720px;margin-top:28px;scroll-margin-top:84px;}
.mr-summary{margin-bottom:16px;}
.mr-dates{font-family:'Noto Serif KR',serif;font-weight:600;font-size:18px;color:var(--ink);margin:0 0 4px;}
.mr-dates span{font-family:'Noto Sans KR',sans-serif;font-weight:400;font-size:14.5px;color:var(--ink-soft);}
.mr-meta{font-size:14px;color:var(--ink-soft);margin:0;}
.mr-meta span{color:var(--ink-faint);}
.mr-table{border:1px solid var(--line-strong);background:var(--paper);}
.mr-row{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;}
.mr-row > div{padding:8px 4px;border-left:1px solid var(--line);min-width:0;}
.mr-row > div:first-child{border-left:none;}
.mr-head{background:var(--paper-2);font-size:13.5px;font-weight:500;color:var(--ink);}
.mr-god{font-size:12.5px;color:var(--ink-faint);}
.mr-stem > div,.mr-branch > div{padding:10px 4px;}
.mr-jj{font-family:'Noto Serif KR',serif;font-size:13px;color:var(--ink-soft);border-top:1px dashed var(--line);}
.mr-char{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:6px;font-family:'Noto Serif KR',serif;font-size:30px;color:#F7F0DE;}
.mr-char.sm{width:34px;height:34px;font-size:18px;border-radius:4px;}
.mr-char.is-me{box-shadow:0 0 0 3px var(--paper),0 0 0 5px var(--red);}
.mr-ko{display:block;margin-top:6px;font-size:12.5px;color:var(--ink-soft);}
.mr-empty{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border:1px dashed var(--line-strong);border-radius:6px;color:var(--ink-faint);font-size:20px;}
.el-wood{background:#4F7A4A;}.el-fire{background:#9E2B34;}.el-earth{background:#A9822F;}.el-metal{background:#6E6A63;}.el-water{background:#2B4A73;}
.el-wood-text{color:#4F7A4A;}.el-fire-text{color:#9E2B34;}.el-earth-text{color:#8a6a24;}.el-metal-text{color:#55524c;}.el-water-text{color:#2B4A73;}
.mr-legend{font-size:12.5px;color:var(--ink-faint);margin:8px 0 0;}
.mr-block{margin-top:26px;padding-top:20px;border-top:1px solid var(--line);}
.mr-block h3{font-size:17px;margin:0 0 10px;}
.mr-block h3 span{font-family:'Noto Sans KR',sans-serif;font-weight:400;font-size:13.5px;color:var(--ink-faint);}
.mr-block p{margin:0 0 8px;font-size:15px;color:var(--ink-soft);}
.mr-block strong{font-family:'Noto Serif KR',serif;font-weight:600;}
.mr-sub{font-size:13px !important;color:var(--ink-faint) !important;}
.mr-bars{display:grid;gap:8px;margin:6px 0 10px;}
.mr-bar{display:grid;grid-template-columns:56px 1fr 24px;align-items:center;gap:10px;font-size:14px;}
.mr-bar-label{font-family:'Noto Serif KR',serif;color:var(--ink);}
.mr-bar-track{height:14px;background:var(--paper-2);border:1px solid var(--line);}
.mr-bar-fill{display:block;height:100%;}
.mr-bar-n{text-align:right;color:var(--ink-soft);}
.mr-daeun{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(64px,1fr);gap:6px;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch;}
.mr-dy{display:flex;flex-direction:column;align-items:center;gap:4px;border:1px solid var(--line);background:var(--paper);padding:8px 4px;}
.mr-dy-age{font-size:13px;font-weight:500;color:var(--ink);}
.mr-dy-god{font-size:11.5px;color:var(--ink-faint);}
.mr-notes{margin:22px 0 0;padding:14px 18px 14px 34px;background:var(--paper-2);border:1px solid var(--line);font-size:14px;color:var(--ink-soft);}
.mr-notes li{margin:4px 0;}
.mr-notes strong{color:var(--red-deep);font-weight:500;}
.mr-cta{margin-top:24px;padding:22px;border:1px solid var(--line-strong);text-align:center;}
.mr-cta p{margin:0 0 14px;font-size:15px;color:var(--ink-soft);}
@media(max-width:480px){
  .mr-char{width:46px;height:46px;font-size:25px;}
  .mr-empty{width:46px;height:46px;}
  .mr-god{font-size:11.5px;}
}
/* ---------- 블로그 연결 ---------- */
.blog-card{display:flex;gap:14px;align-items:center;padding:16px 18px;margin-top:12px;border:1px solid var(--line-strong);background:var(--paper-2);text-decoration:none;color:inherit;transition:background .15s;}
.blog-card:hover{background:var(--paper-deep);}
.blog-card .bc-seals{flex:none;display:flex;gap:4px;}
.blog-card strong{display:block;font-family:'Noto Serif KR',serif;font-weight:600;font-size:15.5px;color:var(--ink);}
.blog-card span{font-size:13px;color:var(--ink-faint);}

/* ---------- 2027 띠 카드 ---------- */
.zgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px;}
@media(max-width:640px){.zgrid{grid-template-columns:1fr;}}
.zcard{border:1px solid var(--line);background:var(--paper);padding:16px 18px;scroll-margin-top:84px;}
.zcard header{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.zseal{flex:none;width:38px;height:38px;border-radius:4px;background:var(--red);color:#F3E9D4;display:flex;align-items:center;justify-content:center;font-family:'Noto Serif KR',serif;font-size:20px;}
.zcard h3{font-size:17px;margin:0;}
.zcard h3 small{font-family:'Noto Sans KR',sans-serif;font-weight:400;font-size:13px;color:var(--ink-faint);}
.zbadges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;}
.zbadge{font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid var(--line-strong);color:var(--ink-soft);}
.zbadge.b-good{border-color:#4F7A4A;color:#3d6239;}
.zbadge.b-warn{border-color:var(--red);color:var(--red-deep);}
.zbadge.b-samjae{background:var(--red);border-color:var(--red);color:#F3E9D4;}
.zbadge.b-self{border-color:var(--gold);color:#7d6022;}
.zcard p{font-size:14.5px;color:var(--ink-soft);margin:0 0 10px;}
.zyears{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:0;font-size:13px;}
.zyears dt{color:var(--ink-faint);}
.zyears dd{margin:0;color:var(--ink-soft);}

.ij-find{max-width:720px;}
.ij-find-h{margin:0 0 14px;font-size:15.5px;color:var(--ink-soft);}
.ij-find-h strong{color:var(--ink);font-weight:500;}
.ij-opts{flex-wrap:wrap;gap:6px 18px;}
.ijr{margin-top:20px;padding:22px 20px 18px;border:1px solid var(--line-strong);background:#F4ECD6;text-align:center;}
.ijr-seal{display:flex;justify-content:center;gap:8px;margin-bottom:12px;}
.ijr-seal .mr-char{width:68px;height:68px;font-size:36px;}
.ijr-kicker{margin:0;font-size:13px;letter-spacing:.08em;color:var(--red-deep);}
.ijr-title{font-size:30px;margin:4px 0 6px;}
.ijr-sub{margin:0 0 14px;font-size:14.5px;color:var(--ink-soft);}
.ijr-facts{list-style:none;margin:0 auto 14px;padding:0;max-width:520px;text-align:left;border-top:1px solid var(--line);}
.ijr-facts li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;padding:9px 2px;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--ink-soft);}
.ijr-facts li span{flex:0 0 92px;font-size:12.5px;color:var(--ink-faint);}
.ijr-facts li strong{font-weight:500;color:var(--ink);}
.ijr-facts li small{font-size:12.5px;color:var(--ink-faint);}
.ijr .blog-card{text-align:left;max-width:520px;margin:0 auto 12px;}
.ijr-soon{font-size:14px;color:var(--ink-faint);margin:0 0 12px;}
.ijr-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;}
.ijr-msg{min-height:1em;margin:10px 0 0;font-size:13.5px;color:var(--ink-soft);}
@media(max-width:480px){.ijr-title{font-size:26px;}.ijr-facts li span{flex-basis:100%;}.ijr-actions .btn{flex:1 1 100%;}}
.ij-nick{font-size:12px;color:var(--ink-soft);margin-top:-4px;}
.ij-tile.is-me{opacity:1;border-color:var(--red);box-shadow:0 0 0 2px rgba(158,43,52,.25);}
.ij-tile.is-me .mr-char.sm{filter:none;}
.ij-obang td:first-child{font-family:'Noto Serif KR',serif;white-space:nowrap;}
.ob{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:6px;vertical-align:-1px;border:1px solid rgba(0,0,0,.15);}
.ob-0{background:#2E5E9E;}.ob-1{background:#B3322F;}.ob-2{background:#D9A425;}.ob-3{background:#F7F3EA;}.ob-4{background:#1E1B18;}
/* ---------- 블로그 카드 (일주 도장 썸네일) ---------- */
.blog-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.blog-lede{color:var(--ink-soft);font-size:15px;margin:-22px 0 26px;max-width:58ch;}
.blog-lede a{color:var(--red-deep);}
.blog-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
@media(max-width:760px){.blog-list{grid-template-columns:1fr;}}
.blog-item{display:flex;flex-direction:column;border:1px solid var(--line-strong);background:var(--paper);text-decoration:none;color:inherit;transition:transform .15s ease, box-shadow .15s ease;padding:0;gap:0;}
.blog-item:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(34,30,25,.08);background:var(--paper);}
.bi-thumb{display:flex;align-items:center;justify-content:center;gap:8px;height:120px;background:
  radial-gradient(circle at 30% 30%, rgba(255,255,255,.18), transparent 60%),
  repeating-linear-gradient(45deg, rgba(34,30,25,.035) 0 2px, transparent 2px 9px), var(--paper-2);border-bottom:1px solid var(--line);}
.bi-thumb .mr-char{width:52px;height:52px;font-size:28px;box-shadow:0 2px 0 rgba(0,0,0,.12);}
.bi-body{display:flex;flex-direction:column;gap:8px;padding:18px 20px 16px;flex:1;}
.bi-tag{align-self:flex-start;font-size:12px;color:var(--red-deep);border:1px solid var(--red);border-radius:999px;padding:1px 9px;}
.bi-body strong{font-family:'Noto Serif KR',serif;font-weight:600;font-size:16.5px;color:var(--ink);line-height:1.45;}
.bi-sum{font-size:14px;color:var(--ink-soft);line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.bi-foot{margin-top:auto;padding-top:10px;border-top:1px dashed var(--line);display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-faint);}
.bi-foot em{font-style:normal;color:var(--red-deep);}
/* ---------- 60일주 페이지 ---------- */
.ij-progress{margin:22px 0 4px;max-width:420px;}
.ij-bar{height:8px;background:var(--paper-2);border:1px solid var(--line);}
.ij-bar span{display:block;height:100%;background:var(--red);}
.ij-progress p{font-size:13.5px;color:var(--ink-soft);margin:8px 0 0;}
.ij-progress strong{font-family:'Noto Serif KR',serif;color:var(--red-deep);font-size:16px;}
.ij-jump{display:flex;flex-wrap:wrap;gap:8px;padding:14px 0 26px;position:sticky;top:57px;z-index:5;background:rgba(234,224,198,.94);backdrop-filter:blur(4px);border-bottom:1px solid var(--line);margin-bottom:26px;}
.ij-jump a{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:var(--ink-soft);text-decoration:none;border:1px solid var(--line-strong);padding:4px 10px;background:var(--paper);}
.ij-jump a:hover{color:var(--ink);border-color:var(--ink);}
.ij-jump .dot{width:9px;height:9px;border-radius:50%;}
@media(max-width:760px){.ij-jump{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:10px 0 12px;margin:0 -24px 22px;padding-left:24px;padding-right:24px;}.ij-jump::-webkit-scrollbar{display:none;}.ij-jump a{flex:none;}.ij-group{scroll-margin-top:110px;}}
.ij-groups{display:grid;gap:30px;padding-bottom:30px;}
.ij-group{scroll-margin-top:130px;padding:0;border:none;}
.ij-head{display:flex;align-items:center;gap:14px;margin-bottom:12px;}
.ij-head .mr-char{width:46px;height:46px;font-size:24px;}
.ij-head h2{font-size:18px;margin:0;}
.ij-head h2 small{font-family:'Noto Sans KR',sans-serif;font-weight:400;font-size:13px;color:var(--ink-faint);margin-left:4px;}
.ij-head p{margin:2px 0 0;font-size:12.5px;color:var(--ink-faint);}
.ij-tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;}
@media(max-width:760px){.ij-tiles{grid-template-columns:repeat(3,minmax(0,1fr));}}
.ij-tile{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 6px 12px;border:1px solid var(--line);background:var(--paper);text-decoration:none;color:inherit;opacity:.55;}
.ij-tile .ij-seal{display:flex;gap:4px;}
.ij-tile .mr-char.sm{filter:saturate(.35);}
.ij-name{font-size:14px;color:var(--ink);font-weight:500;}
.ij-state{font-size:12px;color:var(--ink-faint);}
.ij-tile.is-on{opacity:1;border-color:var(--line-strong);transition:transform .15s ease, box-shadow .15s ease;}
.ij-tile.is-on .mr-char.sm{filter:none;}
.ij-tile.is-on .ij-state{color:var(--red-deep);}
.ij-tile.is-on:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(34,30,25,.08);}

/* ---------- 달력: 오늘 일진과 나 ---------- */
.my-ilj{max-width:720px;margin-top:16px;}
.my-form,.my-res{border:1px solid var(--line-strong);background:var(--paper);padding:16px 18px;}
.my-h{margin:0 0 12px;font-size:14.5px;color:var(--ink-soft);line-height:1.7;}
.my-h strong{display:block;font-family:'Noto Serif KR',serif;font-size:17px;font-weight:600;color:var(--ink);}
.my-form .mf-row{margin-bottom:10px;}
.my-opts{flex-wrap:wrap;gap:6px 18px;}
.my-who{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-size:13.5px;color:var(--ink-soft);}
.my-seal{display:flex;gap:3px;}
.my-main{margin:0;font-family:'Noto Serif KR',serif;font-size:20px;color:var(--ink);line-height:1.5;}
.my-main strong{font-weight:600;}
.my-god{color:var(--red-deep);}
.my-keys{margin:4px 0 8px;font-size:14px;color:var(--red-deep);}
.my-text{margin:0 0 8px;font-size:14.5px;line-height:1.75;color:var(--ink-soft);}
.my-sub{margin:0 0 14px;font-size:13.5px;color:var(--ink-faint);}
.my-sub strong{color:var(--ink);font-weight:500;}
.my-wk-h{margin:0 0 6px;font-size:12.5px;color:var(--ink-faint);}
.my-week{list-style:none;margin:0 0 6px;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;}
.my-week li{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 2px;border:1px solid var(--line);background:#F4ECD6;font-size:11.5px;color:var(--ink-faint);}
.my-week b{font-family:'Noto Serif KR',serif;font-weight:400;font-size:15px;color:var(--ink);}
.my-week em{font-style:normal;font-size:12px;color:var(--red-deep);}
.my-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
@media(max-width:480px){.my-main{font-size:18px;}.my-week{grid-template-columns:repeat(4,minmax(0,1fr));}}

/* ---------- 음력 생일 ---------- */
#cvForm .seg span{padding:8px 14px;}
@media(max-width:420px){#cvForm .seg span{padding:8px 9px;font-size:13.5px;}}
.cv-y{display:inline-flex;align-items:center;gap:inherit;}
.bd-next{margin:4px 0 10px;font-size:15.5px;color:var(--ink-soft);}
.bd-next strong{font-family:'Noto Serif KR',serif;font-weight:600;color:var(--red-deep);}
.bd-res{display:block;}
.bd-list{list-style:none;margin:0 0 10px;padding:0;border-top:1px dashed var(--line-strong);}
.bd-list li{display:grid;grid-template-columns:minmax(150px,auto) 1fr;gap:2px 12px;padding:7px 0;border-bottom:1px dashed var(--line);font-size:14.5px;align-items:baseline;}
.bd-list b{font-weight:500;color:var(--ink);}
.bd-list b small{font-weight:400;font-size:12.5px;}
.bd-list span{font-size:12.5px;color:var(--ink-faint);}
.bd-list em{grid-column:1/-1;font-style:normal;font-size:12.5px;color:var(--red-deep);}

/* ---------- 궁합 ---------- */
.mt-people{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;}
@media(max-width:860px){.mt-people{grid-template-columns:1fr;}}
.mt-form{max-width:960px;}
.mt-person{border:none;margin:0;padding:0;min-width:0;}
.mt-person legend{font-family:'Noto Serif KR',serif;font-weight:600;font-size:17px;color:var(--red-deep);padding:0 0 6px;}
.mt-person + .mt-person{border-top:none;}
@media(max-width:860px){.mt-person + .mt-person{border-top:1px solid var(--line-strong);padding-top:14px;margin-top:6px;}}
.mt-result{max-width:960px;}
.mt-two{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:640px){.mt-two{grid-template-columns:1fr;}}
.mt-card{border:1px solid var(--line-strong);background:var(--paper);padding:14px 16px;}
.mt-who{font-family:'Noto Serif KR',serif;font-weight:600;font-size:16px;margin:0 0 10px;color:var(--ink);}
.mt-who span{font-family:'Noto Sans KR',sans-serif;font-weight:400;font-size:13px;color:var(--ink-faint);}
.mt-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;text-align:center;}
.mt-col{display:flex;flex-direction:column;align-items:center;gap:5px;}
.mt-lab{font-size:12px;color:var(--ink-faint);}
.mr-char.is-spouse{box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--gold);}
.mr-empty.sm{width:34px;height:34px;font-size:15px;border-radius:4px;}
.mt-pair{display:flex;align-items:center;gap:8px;margin:2px 0 10px;}
.mt-x{color:var(--ink-faint);}
.mt-gods{margin:10px 0 0;padding-left:18px;font-size:14.5px;color:var(--ink-soft);}
.mt-gods li{margin:4px 0;}
.mt-els{display:grid;gap:8px;margin:6px 0 10px;}
.mt-el{display:grid;grid-template-columns:56px 1fr 46px;align-items:center;gap:10px;font-size:14px;}
.mt-bars{display:grid;gap:3px;}
.mt-bar{display:block;height:10px;background:var(--paper-2);border:1px solid var(--line);}
.mt-bar > span{display:block;height:100%;}
.mt-bar.b > span{opacity:.6;}
.mt-n{text-align:right;color:var(--ink-soft);font-size:13px;}
.mt-comp{margin:6px 0 8px;padding-left:18px;font-size:14.5px;color:var(--ink-soft);}
.mt-note{margin:22px 0 0;font-size:13.5px;color:var(--ink-faint);padding:12px 16px;border:1px dashed var(--line-strong);}
/* ---------- 만세력 공유 ---------- */
.mr-share{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:22px;}
.mr-share .btn{padding:10px 20px;font-size:14.5px;}
.mr-share-msg{font-size:13px;color:var(--ink-faint);}
/* ---------- 오늘의 일진 · 달력 ---------- */
.today-card{max-width:720px;border:1px solid var(--line-strong);background:var(--paper-2);padding:22px clamp(18px,4vw,30px);}
.td-main{display:flex;gap:18px;align-items:center;flex-wrap:wrap;}
.td-seal{display:flex;gap:6px;flex:none;}
.td-date{font-family:'Noto Serif KR',serif;font-weight:600;font-size:19px;margin:0;color:var(--ink);}
.td-ilj{margin:4px 0 2px;font-size:15.5px;color:var(--ink);}
.td-ilj strong{font-family:'Noto Serif KR',serif;font-weight:600;color:var(--red-deep);font-size:18px;}
.td-sub{margin:2px 0 6px;font-size:14px;color:var(--ink-soft);}
.td-list{list-style:none;margin:16px 0 0;padding:14px 0 0;border-top:1px dashed var(--line-strong);display:grid;gap:6px;font-size:14.5px;color:var(--ink-soft);}
.td-list span{display:inline-block;width:76px;color:var(--ink-faint);font-size:13px;}
.td-list strong{color:var(--ink);font-weight:500;margin-right:6px;}
#todayBlog .blog-card{margin-top:12px;}
.cal-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px;}
.cal-bar select{padding:8px 10px;font-size:15px;border:1px solid var(--line-strong);background:#F4ECD6;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;}
.cal-bar .btn{padding:8px 16px;font-size:14px;}
.cal-nav{font-size:20px !important;line-height:1;padding:6px 14px !important;}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line-strong);border-left:1px solid var(--line-strong);}
.cal-wd{padding:8px 0;text-align:center;font-size:13px;font-weight:500;background:var(--paper-2);border-right:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);color:var(--ink);}
.cal-wd.sun,.cal-cell.sun .cd{color:var(--red-deep);}
.cal-wd.sat,.cal-cell.sat .cd{color:var(--blue);}
.cal-cell{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-height:92px;padding:6px 8px;background:var(--paper);border:none;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left;font-family:inherit;cursor:pointer;color:var(--ink);}
.cal-cell.empty{background:rgba(223,210,172,.35);cursor:default;}
.cal-cell:hover{background:#efe6cf;}
.cal-cell.sel{outline:2px solid var(--red);outline-offset:-2px;}
.cal-cell.today{background:#F4ECD6;}
.cal-cell.today .cd{background:var(--red);color:#F3E9D4 !important;border-radius:999px;padding:0 7px;}
.cd{font-size:15px;font-weight:500;display:flex;align-items:center;gap:4px;}
.cl{font-size:11.5px;color:var(--ink-faint);}
.cal-cell.l1 .cl{color:var(--red-deep);font-weight:500;}
.cg{font-family:'Noto Serif KR',serif;font-size:12px;color:var(--ink-soft);}
.ct{display:inline-block;font-size:10.5px;line-height:1.5;padding:0 5px;border-radius:3px;margin-top:2px;font-style:normal;font-weight:400;}
.ct.term{background:var(--gold);color:#fff;}
.ct.fest{background:var(--red);color:#F3E9D4;}
i.son{display:inline-block;width:7px;height:7px;border-radius:50%;background:#4F7A4A;}
.cal-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 0;font-size:12.5px;color:var(--ink-faint);align-items:center;}
.cal-legend span{display:inline-flex;align-items:center;gap:5px;}
.cal-legend .lg-l b{color:var(--red-deep);font-weight:500;}
.cal-detail{display:flex;gap:14px;align-items:center;margin-top:16px;padding:14px 18px;border:1px solid var(--line-strong);background:var(--paper-2);max-width:720px;}
.cal-detail p{margin:0;}
.cal-side{margin-top:16px;max-width:720px;}
.cal-son{font-size:14.5px;color:var(--ink-soft);margin:0 0 8px;}
.cal-son strong{color:var(--ink);font-weight:500;margin-right:6px;}
.cal-terms{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px;color:var(--ink-soft);}
.cal-terms strong{color:var(--ink);font-weight:500;}
@media(max-width:640px){
  .cal-cell{min-height:70px;padding:4px 3px;}
  .cd{font-size:13.5px;}
  .cg{font-size:10.5px;}
  .cl{font-size:10.5px;}
  .ct{font-size:9.5px;padding:0 3px;}
  .cal-grid{margin:0 -12px;}
}
.cv-res{display:flex;gap:16px;align-items:center;margin-top:18px;padding:16px 18px;border:1px solid var(--line-strong);background:var(--paper);}
.cv-main{margin:0 0 4px;font-size:15.5px;color:var(--ink-soft);}
.cv-main strong{font-family:'Noto Serif KR',serif;font-weight:600;color:var(--ink);}
.cv-link{display:inline-block;margin-top:6px;font-size:14px;color:var(--red-deep);}
#cvForm{max-width:720px;}

/* ---------- 손 없는 날 ---------- */
.son-today .td-ilj strong{font-size:19px;}
.son-sum{max-width:720px;margin:0 0 14px;font-size:15.5px;color:var(--ink-soft);}
.son-sum strong{color:var(--ink);font-weight:500;}
.son-jump{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px;}
.son-jump a{font-size:13.5px;padding:4px 11px;border:1px solid var(--line-strong);color:var(--ink-soft);text-decoration:none;background:var(--paper);}
.son-jump a:hover{border-color:var(--red);color:var(--red-deep);}
.son-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
@media(max-width:960px){.son-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.son-grid{grid-template-columns:1fr;}}
.son-month{border:1px solid var(--line-strong);background:var(--paper);padding:14px 16px 12px;scroll-margin-top:90px;}
.son-month h3{margin:0 0 8px;font-family:'Noto Serif KR',serif;font-weight:600;font-size:18px;color:var(--ink);display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:8px;}
.son-month h3 span{font-family:'Noto Sans KR',sans-serif;font-weight:400;font-size:13px;color:var(--ink-faint);}
.son-month ul{list-style:none;margin:0;padding:0;}
.sd{display:grid;grid-template-columns:78px 72px 1fr;align-items:center;gap:6px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:14.5px;}
.sd:last-child{border-bottom:none;}
.sd b{font-weight:500;color:var(--ink);}
.sd b small{font-size:12.5px;font-weight:400;margin-left:1px;}
.sd span{font-size:12.5px;color:var(--ink-faint);}
.sd em{font-style:normal;font-size:11.5px;line-height:1.5;padding:1px 6px;border-radius:3px;background:var(--red);color:#F3E9D4;justify-self:start;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sd em.we{background:transparent;color:var(--ink-faint);border:1px solid var(--line-strong);}
.sd.off b{color:var(--red-deep);}
.sd.sat b{color:var(--blue);}
.son-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:14px 0 0;font-size:12.5px;color:var(--ink-faint);align-items:center;}
.son-legend span{display:inline-flex;align-items:center;gap:5px;}
.son-legend i.lg{display:inline-block;width:10px;height:10px;border-radius:2px;background:var(--ink);}
.son-legend i.lg.off{background:var(--red-deep);}
.son-legend i.lg.sat{background:var(--blue);}
.son-note{max-width:720px;margin:14px 0 0;font-size:13.5px;color:var(--ink-faint);padding:12px 16px;border:1px dashed var(--line-strong);}
.son-dir{max-width:720px;border:1px solid var(--line-strong);background:var(--paper);}
.son-dir > div{display:grid;grid-template-columns:1.1fr .8fr 1.6fr;border-bottom:1px solid var(--line);}
.son-dir > div:last-child{border-bottom:none;}
.son-dir span{padding:10px 14px;font-size:14.5px;color:var(--ink-soft);}
.son-dir b{font-family:'Noto Serif KR',serif;font-weight:600;color:var(--ink);}
.son-dir .sd-h span{background:var(--paper-2);font-size:13px;font-weight:500;color:var(--ink);}
.son-dir .sd-none{background:#F4ECD6;}
.son-dir .sd-none b{color:var(--red-deep);}
@media(max-width:600px){.son-dir span{padding:9px 10px;font-size:13.5px;}.son-dir > div{grid-template-columns:.9fr .7fr 1.6fr;}}
.son-cta{max-width:720px;margin-top:22px;padding:18px 20px;border:1px solid var(--line-strong);background:var(--paper-2);}
.son-cta p{margin:0 0 14px;font-size:15px;color:var(--ink-soft);}
.son-cta strong{color:var(--ink);font-weight:500;}

/* ---------- 24절기 ---------- */
.jg-month ul{display:grid;gap:0;}
.jg{display:grid;grid-template-columns:76px 1fr;gap:2px 10px;padding:9px 0;border-bottom:1px dashed var(--line);align-items:baseline;}
.jg:last-child{border-bottom:none;}
.jg-n{grid-row:span 2;display:flex;flex-direction:column;}
.jg-n b{font-family:'Noto Serif KR',serif;font-weight:600;font-size:16.5px;color:var(--ink);}
.jg-n span{font-family:'Noto Serif KR',serif;font-size:12.5px;color:var(--ink-faint);}
.jg.jie .jg-n b{color:var(--red-deep);}
.jg-t{font-size:14.5px;color:var(--ink);}
.jg-t strong{font-weight:500;}
.jg-t time{color:var(--ink-soft);margin-left:2px;}
.jg-d{grid-column:2;margin:0;font-size:13px;color:var(--ink-faint);line-height:1.5;}
.jg-m{grid-column:2;justify-self:start;font-style:normal;font-size:11.5px;line-height:1.5;padding:1px 7px;border-radius:3px;background:var(--red);color:#F3E9D4;margin-top:4px;}
.jg-key{color:var(--red-deep);font-weight:500;}
.jg-cur{font-family:'Noto Serif KR',serif;font-weight:600;color:var(--red-deep);}
.jg-explain{max-width:720px;}
.jg-explain p{font-size:15.5px;color:var(--ink-soft);margin:0 0 14px;}
.jg-explain strong{color:var(--ink);font-weight:500;}

/* ---------- 나이·띠·삼재 ---------- */
#agForm{max-width:720px;}
.age-res{margin-top:18px;padding:18px;border:1px solid var(--line-strong);background:var(--paper);}
.age-who{margin:0 0 12px;font-size:14px;color:var(--ink-soft);}
.age-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.age-box{border:1px solid var(--line);background:var(--paper-2);padding:12px 10px;text-align:center;display:flex;flex-direction:column;gap:2px;}
.age-box span{font-size:13px;color:var(--ink-soft);}
.age-box strong{font-family:'Noto Serif KR',serif;font-weight:600;font-size:26px;color:var(--ink);line-height:1.3;}
.age-box em{font-style:normal;font-size:11.5px;color:var(--ink-faint);}
.age-box.main{background:var(--red);border-color:var(--red);}
.age-box.main span,.age-box.main strong,.age-box.main em{color:#F3E9D4;}
.age-next{margin:14px 0 4px;font-size:15px;color:var(--ink-soft);}
.age-next strong{color:var(--ink);font-weight:500;}
.age-tti{display:flex;gap:14px;align-items:flex-start;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line-strong);}
.age-tti .mr-char{flex:none;}
.age-tti-main{margin:2px 0 2px;font-size:15.5px;color:var(--ink-soft);}
.age-tti-main strong{font-family:'Noto Serif KR',serif;font-weight:600;font-size:18px;color:var(--red-deep);}
.age-sam{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line-strong);}
.age-sam-h{margin:0 0 8px;font-size:14.5px;font-weight:500;color:var(--ink);}
.age-sam ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.age-sam li{border:1px solid var(--line);padding:8px 10px;display:flex;flex-direction:column;gap:2px;background:var(--paper-2);}
.age-sam li b{font-weight:500;font-size:14px;color:var(--ink);}
.age-sam li b small{font-weight:400;font-size:12px;color:var(--ink-faint);margin-left:2px;}
.age-sam li span{font-size:13px;color:var(--ink-faint);}
.age-sam li.on{border-color:var(--red);background:#F4ECD6;}
.age-sam li.on span{color:var(--red-deep);font-weight:500;}
.age-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin:14px 0 0;font-size:14px;}
.age-links a{color:var(--red-deep);}
@media(max-width:480px){.age-box strong{font-size:22px;}.age-sam li{padding:7px 8px;}.age-res{padding:14px;}}
.age-explain{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
@media(max-width:760px){.age-explain{grid-template-columns:1fr;}}
.age-explain > div{border:1px solid var(--line-strong);background:var(--paper);padding:16px 18px;}
.age-explain h3{margin:0 0 6px;font-family:'Noto Serif KR',serif;font-weight:600;font-size:17px;color:var(--ink);}
.age-explain h3 small{font-family:'Noto Sans KR',sans-serif;font-weight:400;font-size:12.5px;color:var(--red-deep);margin-left:4px;}
.age-explain p{margin:0;font-size:14.5px;color:var(--ink-soft);}
.age-table-wrap{max-width:720px;}
.age-scroll{max-height:520px;overflow:auto;border:1px solid var(--line-strong);}
.age-scroll .age-table{border:0;}
.age-scroll thead th{position:sticky;top:0;z-index:1;}
.age-year-table tr{scroll-margin-top:44px;}
.age-year-table td small{font-size:12px;color:var(--ink-faint);}
.age-year-table td strong{font-weight:500;color:var(--ink);}
.age-table{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line-strong);font-size:14.5px;}
.age-table th,.age-table td{padding:10px 14px;border-bottom:1px solid var(--line);text-align:left;color:var(--ink-soft);vertical-align:top;}
.age-table thead th{background:var(--paper-2);font-size:13px;font-weight:500;color:var(--ink);}
.age-table tbody th{font-weight:500;color:var(--ink);white-space:nowrap;}
.age-table tbody th small{display:block;font-family:'Noto Serif KR',serif;font-weight:400;font-size:12.5px;color:var(--ink-faint);}
@media(max-width:600px){.age-table th,.age-table td{padding:9px 8px;font-size:13.5px;}.age-table tbody th{white-space:normal;}}

/* ---------- 공휴일 ---------- */
.hol-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-width:920px;margin-bottom:14px;}
@media(max-width:760px){.hol-stats{grid-template-columns:repeat(2,minmax(0,1fr));}}
.hol-stats > div{border:1px solid var(--line-strong);background:var(--paper);padding:14px 12px;text-align:center;display:flex;flex-direction:column;gap:2px;}
.hol-stats span{font-size:13px;color:var(--ink-soft);}
.hol-stats strong{font-family:'Noto Serif KR',serif;font-weight:600;font-size:26px;color:var(--red-deep);line-height:1.3;}
.hol-stats em{font-style:normal;font-size:11.5px;color:var(--ink-faint);}
.hr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
@media(max-width:960px){.hr-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.hr-grid{grid-template-columns:1fr;}}
.hr{border:1px solid var(--line-strong);background:var(--paper);padding:14px 16px;display:flex;flex-direction:column;gap:2px;}
.hr.long{border-top:3px solid var(--red);}
.hr-name{margin:0;font-family:'Noto Serif KR',serif;font-weight:600;font-size:16.5px;color:var(--ink);}
.hr-date{margin:0;font-size:14.5px;color:var(--ink);}
.hr-date strong{font-weight:500;}
.hr-n{margin:0;font-size:13px;color:var(--red-deep);font-weight:500;}
.hr-tip{margin:8px 0 0;padding-top:8px;border-top:1px dashed var(--line);font-size:13px;color:var(--ink-soft);}
.hr-tip span{display:inline-block;font-size:11.5px;padding:0 6px;border-radius:3px;background:var(--gold);color:#fff;margin-right:4px;}
.hr-tip strong{color:var(--ink);font-weight:500;}
.hm-wrap{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
@media(max-width:960px){.hm-wrap{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.hm-wrap{grid-template-columns:1fr;}}
.hm{border:1px solid var(--line-strong);background:var(--paper);padding:12px 14px;scroll-margin-top:90px;}
.hm h3{margin:0 0 8px;font-family:'Noto Serif KR',serif;font-weight:600;font-size:17px;color:var(--ink);}
.hm-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center;font-size:13px;}
.hm-grid i{font-style:normal;font-size:11.5px;color:var(--ink-faint);padding-bottom:3px;}
.hm-grid i:first-child{color:var(--red-deep);}
.hm-grid i:last-of-type{color:var(--blue);}
.hm-grid span{position:relative;padding:4px 0;color:var(--ink);border-radius:3px;}
.hm-grid span.sun{color:var(--red-deep);}
.hm-grid span.sat{color:var(--blue);}
.hm-grid span.h{background:var(--red);color:#F3E9D4;font-weight:500;}
.hm-grid span.son::after{content:"";position:absolute;left:50%;bottom:1px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:#4F7A4A;}
.hm-grid span.h.son::after{background:#F3E9D4;}
.hm-list{list-style:none;margin:8px 0 0;padding:8px 0 0;border-top:1px dashed var(--line);font-size:12.5px;color:var(--ink-soft);display:grid;gap:2px;}
.hm-list b{font-weight:500;color:var(--red-deep);}
.hm-none{margin:8px 0 0;padding-top:8px;border-top:1px dashed var(--line);font-size:12.5px;color:var(--ink-faint);}
i.hm-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#4F7A4A;}
.hol-table tr.we td{color:var(--ink-faint);}
.hol-table td:first-child{white-space:nowrap;color:var(--ink);font-weight:500;}

/* ---------- 띠 궁합 ---------- */
.tt-form{max-width:820px;}
.tt-form fieldset{border:none;margin:0 0 14px;padding:0;min-width:0;}
.tt-form legend{font-family:'Noto Serif KR',serif;font-weight:600;font-size:16px;color:var(--ink);padding:0 0 8px;}
.tt-chips{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;}
@media(max-width:600px){.tt-chips{grid-template-columns:repeat(4,minmax(0,1fr));}}
.tt-chips label{position:relative;}
.tt-chips input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;}
.tt-chips span{display:flex;flex-direction:column;align-items:center;gap:1px;padding:8px 2px;border:1px solid var(--line-strong);background:#F4ECD6;font-size:13.5px;color:var(--ink-soft);cursor:pointer;transition:background .15s;}
.tt-chips span em{font-style:normal;font-family:'Noto Serif KR',serif;font-size:18px;color:var(--ink);line-height:1.2;}
.tt-chips span:hover{background:#efe6cf;}
.tt-chips input:checked + span{background:var(--red);border-color:var(--red);color:#F3E9D4;}
.tt-chips input:checked + span em{color:#F3E9D4;}
.tt-chips input:focus-visible + span{outline:2px solid var(--red);outline-offset:2px;}
.tt-help{margin:2px 0 0;font-size:13px;color:var(--ink-faint);}
.tt-help a{color:var(--red-deep);}
.tt-wait{margin:14px 0 0;font-size:14.5px;color:var(--ink-faint);}
.tt-res{margin-top:16px;padding:16px 18px;border:1px solid var(--line-strong);background:var(--paper);border-left:4px solid var(--ink-faint);}
.tt-res.good{border-left-color:#4F7A4A;}
.tt-res.hard{border-left-color:var(--red);}
.tt-res.mix{border-left-color:var(--gold);}
.tt-pair{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;font-family:'Noto Serif KR',serif;font-weight:600;font-size:17px;color:var(--ink);}
.tt-pair em{font-style:normal;font-family:'Noto Sans KR',sans-serif;font-weight:500;font-size:12.5px;padding:2px 8px;border-radius:999px;background:var(--paper-2);color:var(--ink-soft);margin-left:4px;}
.tt-res.good .tt-pair em{background:#4F7A4A;color:#F3E9D4;}
.tt-res.hard .tt-pair em{background:var(--red);color:#F3E9D4;}
.tt-res.mix .tt-pair em{background:var(--gold);color:#fff;}
.tt-seal{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:4px;background:var(--red);color:#F3E9D4;font-family:'Noto Serif KR',serif;font-weight:400;font-size:16px;flex:none;}
.tt-rel{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14.5px;color:var(--ink-soft);}
.tt-rel b{font-weight:500;padding:1px 7px;border-radius:3px;font-size:13px;margin-right:2px;}
.tt-rel b.k-g{background:#4F7A4A;color:#F3E9D4;}
.tt-rel b.k-h{background:var(--red);color:#F3E9D4;}
.tt-rel b.k-s{background:var(--paper-2);color:var(--ink);}
.tt-plain{margin:0;font-size:14.5px;color:var(--ink-soft);}
.tt-more{margin:12px 0 0;padding-top:10px;border-top:1px dashed var(--line);font-size:14px;}
.tt-more a{color:var(--red-deep);}
.tt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
@media(max-width:960px){.tt-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.tt-grid{grid-template-columns:1fr;}}
.tt-card{border:1px solid var(--line-strong);background:var(--paper);padding:14px 16px;}
.tt-card h3{display:flex;align-items:center;gap:8px;margin:0 0 4px;font-family:'Noto Serif KR',serif;font-weight:600;font-size:17px;color:var(--ink);}
.tt-years{margin:0 0 8px;font-size:12px;color:var(--ink-faint);}
.tt-card p{margin:0 0 6px;font-size:14px;color:var(--ink-soft);line-height:1.6;}
.tt-card b{display:inline-block;font-weight:500;font-size:12px;padding:0 6px;border-radius:3px;margin-right:4px;}
.tt-card b.g{background:#4F7A4A;color:#F3E9D4;}
.tt-card b.h{background:var(--red);color:#F3E9D4;}
.tt-note{font-size:12.5px !important;color:var(--ink-faint) !important;}

/* ---------- 용어 사전 ---------- */
.page-hero .dc-jump{grid-column:1 / -1;margin:-6px 0 0;}
.dc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
@media(max-width:700px){.dc-grid{grid-template-columns:1fr;}}
.dc{border:1px solid var(--line-strong);background:var(--paper);padding:14px 16px;scroll-margin-top:90px;}
.dc h3{margin:0 0 6px;font-family:'Noto Serif KR',serif;font-weight:600;font-size:18px;color:var(--ink);}
.dc h3 small{font-weight:400;font-size:14px;color:var(--ink-faint);margin-left:2px;}
.dc p{margin:0;font-size:14.5px;color:var(--ink-soft);line-height:1.7;}
.dc .dc-rule{font-size:13px;color:var(--red-deep);margin-bottom:6px;line-height:1.6;}
.dc .dc-rule span{color:var(--ink-faint);margin-left:6px;}
.dc-th{margin:28px 0 6px;font-family:'Noto Serif KR',serif;font-weight:600;font-size:17px;color:var(--ink);}
.dc-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line-strong);background:var(--paper);max-width:100%;}
.dc-table{border-collapse:collapse;width:100%;min-width:560px;font-size:13.5px;text-align:center;}
.dc-table-12{min-width:680px;}
.dc-table th,.dc-table td{padding:7px 6px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);color:var(--ink-soft);white-space:nowrap;}
.dc-table thead th{background:var(--paper-2);font-family:'Noto Serif KR',serif;font-weight:600;color:var(--ink);}
.dc-table tbody th{background:var(--paper-2);font-weight:500;color:var(--ink);position:sticky;left:0;}
.dc-stages{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
@media(max-width:860px){.dc-stages{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:480px){.dc-stages{grid-template-columns:1fr;}}
.dc-stages li{border:1px solid var(--line-strong);background:var(--paper);padding:12px 14px;display:flex;flex-direction:column;gap:2px;scroll-margin-top:90px;}
.dc-stages b{font-family:'Noto Serif KR',serif;font-weight:600;font-size:16.5px;color:var(--ink);}
.dc-stages b small{font-weight:400;font-size:13px;color:var(--ink-faint);margin-left:4px;}
.dc-stages .dc-k{font-size:12.5px;color:var(--red-deep);font-weight:500;}
.dc-stages span{font-size:13.5px;color:var(--ink-soft);line-height:1.6;}

/* ---------- 세시 명절 ---------- */
.ss-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
@media(max-width:960px){.ss-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:600px){.ss-grid{grid-template-columns:1fr;}}
.ss{border:1px solid var(--line-strong);background:var(--paper);padding:14px 16px;display:flex;flex-direction:column;gap:3px;scroll-margin-top:90px;}
.ss-name{margin:0;font-family:'Noto Serif KR',serif;font-weight:600;font-size:17px;color:var(--ink);display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 6px;}
.ss-name small{font-weight:400;font-size:13px;color:var(--ink-faint);}
.ss-tag{font-family:'Noto Sans KR',sans-serif;font-size:11.5px;font-weight:500;padding:1px 7px;border-radius:3px;background:var(--red);color:#F3E9D4;align-self:center;}
.ss-tag.soft{background:var(--gold);color:#fff;}
.ss-date{margin:0;font-size:15px;color:var(--ink);}
.ss-date strong{font-weight:500;color:var(--red-deep);}
.ss-date span{font-size:13px;color:var(--ink-faint);margin-left:4px;}
.ss-rule{margin:0;font-size:12.5px;color:var(--ink-faint);}
.ss-txt{margin:6px 0 0;padding-top:7px;border-top:1px dashed var(--line);font-size:13.8px;color:var(--ink-soft);}
.ss-txt a{color:var(--red-deep);white-space:nowrap;}
.ss-table td{white-space:nowrap;}
@media(max-width:480px){.ss-table th,.ss-table td{padding:8px 6px;font-size:12.8px;}}

/* ---------- 환갑·칠순 ---------- */
#hwForm{max-width:720px;}
.hw-list{list-style:none;margin:0 0 8px;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
@media(max-width:520px){.hw-list{grid-template-columns:1fr;}}
.hw-list li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;border:1px solid var(--line);background:var(--paper-2);padding:8px 12px;}
.hw-list b{font-family:'Noto Serif KR',serif;font-weight:600;font-size:15.5px;color:var(--ink);flex:none;}
.hw-list span{text-align:right;font-size:14px;color:var(--ink-soft);}
.hw-list span strong{font-weight:500;color:var(--ink);}
.hw-list em{display:block;font-style:normal;font-size:12px;color:var(--ink-faint);}
.hw-list li.on{border-color:var(--red);background:#F4ECD6;}
.hw-list li.on b,.hw-list li.on strong{color:var(--red-deep);}
.hw-list li.past{opacity:.6;}
.hw-table td strong{display:block;font-weight:500;color:var(--ink);}
.hw-table td small{display:block;font-size:12.5px;color:var(--ink-faint);}
.hw-src{font-size:12px;color:var(--ink-faint);white-space:nowrap;}

/* ---------- 윤달 ---------- */
.yd-gj{font-size:13px;font-weight:400;color:var(--ink-faint);}
.yd-chart{max-width:720px;margin-top:18px;border:1px solid var(--line-strong);background:var(--paper);padding:16px 18px;}
.yd-chart-h{margin:0 0 10px;font-size:14.5px;font-weight:500;color:var(--ink);}
.yd-bars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;height:130px;align-items:end;}
.yd-bar{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;}
.yd-bar span{display:block;width:70%;max-width:26px;min-height:2px;background:var(--red);border-radius:2px 2px 0 0;order:1;}
.yd-bar b{order:0;font-weight:500;font-size:12px;color:var(--ink-soft);margin-bottom:2px;}
.yd-bar i{order:2;font-style:normal;font-size:11.5px;color:var(--ink-faint);margin-top:4px;white-space:nowrap;}
@media(max-width:420px){.yd-bar i{font-size:10.5px;}.yd-bar b{font-size:11px;}}
.yd-table td small{font-size:12.5px;color:var(--ink-faint);}
.yd-table td strong{font-weight:500;color:var(--ink);}
.yd-table tr.cur td{background:#F4ECD6;}
.yd-table tr.cur td strong{color:var(--red-deep);}

/* ---------- 개인정보 처리방침 ---------- */
.pv-doc{max-width:760px;}
.pv-doc h2{font-size:19px;margin:30px 0 10px;}
.pv-doc p{margin:10px 0;line-height:1.8;color:var(--ink-soft);}
.pv-table td small{font-size:12.5px;color:var(--ink-faint);}
.pv-table td:first-child{white-space:nowrap;}
footer .footer-bottom a{color:inherit;text-decoration:underline;text-underline-offset:3px;}
footer .footer-bottom a:hover{color:#F1E7CC;}
.booking-note a{color:inherit;text-decoration:underline;text-underline-offset:3px;}

/* ---------- 토정비결 ---------- */
.tj-sel{font:inherit;font-size:15px;padding:7px 10px;border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);}
.tjr{margin-top:20px;padding:22px 20px 16px;border:1px solid var(--line-strong);background:#F4ECD6;text-align:center;}
.tjr-k{margin:0 0 12px;font-size:13.5px;color:var(--ink-faint);}
.tjr-gua{display:flex;justify-content:center;gap:10px;margin:0 0 8px;}
.tjr-gua span{display:flex;align-items:center;justify-content:center;width:64px;height:64px;background:var(--red);color:#F7F0DE;font-family:'Noto Serif KR',serif;font-size:36px;border-radius:4px;}
.tjr-name{margin:0 0 14px;font-size:16px;color:var(--ink-soft);}
.tjr-name strong{font-family:'Noto Serif KR',serif;font-size:22px;color:var(--ink);font-weight:600;}
.tjr-steps{list-style:none;margin:0 auto 10px;padding:0;max-width:560px;text-align:left;border-top:1px solid var(--line);}
.tjr-steps li{display:flex;gap:10px;align-items:baseline;padding:9px 2px;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink-soft);line-height:1.7;}
.tjr-steps b{flex:none;min-width:58px;font-weight:500;color:var(--red-deep);}
.tjr-more{margin:12px auto 0;max-width:560px;font-size:14px;color:var(--ink-soft);line-height:1.75;}
.tjr-more a{color:var(--red-deep);}
.tj-nums td:first-child,.tj-table td:first-child{white-space:nowrap;}
.tj-nums td:last-child{font-family:'Noto Serif KR',serif;}
@media(max-width:480px){.tjr-gua span{width:54px;height:54px;font-size:30px;}}

/* ---------- 이미지 만들기 도구 (2027 달력 · SNS 카드 공용) ---------- */
.tool-card{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);background:var(--paper-2);border:1px solid var(--line-strong);}
.tool-ctrl{padding:26px clamp(18px,3vw,32px) 24px;border-right:1px solid var(--line-strong);}
.tool-step{display:flex;align-items:center;gap:10px;margin:22px 0 12px;font-size:15px;font-weight:500;color:var(--ink);}
.tool-step:first-child{margin-top:0;}
.tool-step span{width:24px;height:24px;flex:none;display:inline-flex;align-items:center;justify-content:center;background:var(--ink);color:#F3E9D4;font-family:'Noto Serif KR',serif;font-size:13px;border-radius:50%;}
.pick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}
.pick{position:relative;display:block;cursor:pointer;}
.pick input,.swatch input,.chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0;}
.pick{height:100%;}
.pick-box{height:100%;box-sizing:border-box;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:12px 14px;background:#F4ECD6;border:1px solid var(--line-strong);transition:border-color .15s,background .15s;}
.pick-box b{font-weight:500;font-size:15px;color:var(--ink);}
.pick-box small{grid-column:2;font-size:12.5px;color:var(--ink-faint);}
.pk-ico{grid-row:1 / span 2;justify-self:center;display:block;border:2px solid var(--ink-faint);border-radius:3px;background:var(--paper);}
.pk-phone{width:16px;height:30px;border-radius:4px;}
.pk-desk{width:32px;height:20px;}
.pk-a4{width:21px;height:29px;border-radius:1px;}
.pk-year{width:21px;height:29px;border-radius:1px;background:repeating-linear-gradient(90deg,transparent 0 4px,rgba(139,127,107,.45) 4px 5px),var(--paper);}
.pick:hover .pick-box{border-color:var(--ink-faint);}
.pick input:checked + .pick-box{border-color:var(--red);background:#F7EFDB;box-shadow:inset 0 0 0 1px var(--red);}
.pick input:checked + .pick-box .pk-ico{border-color:var(--red);}
.pick input:focus-visible + .pick-box,.swatch input:focus-visible + span,.chip input:focus-visible + span{outline:2px solid var(--red);outline-offset:2px;}
.c27-month{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.c27-month select,#stDate{padding:9px 10px;font-size:15px;border:1px solid var(--line-strong);background:#F4ECD6;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;}
.c27-nav{width:40px;height:40px;border:1px solid var(--line-strong);background:#F4ECD6;color:var(--ink);font-size:20px;line-height:1;cursor:pointer;}
.c27-nav:hover:not(:disabled){background:#EADFC2;}
.c27-nav:disabled{opacity:.35;cursor:default;}
.swatches{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.swatch{position:relative;cursor:pointer;}
.swatch span{display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 8px;border:1px solid var(--line-strong);background:#F4ECD6;font-size:14px;color:var(--ink-soft);border-radius:999px;}
.swatch input:checked + span{border-color:var(--red);color:var(--ink);box-shadow:inset 0 0 0 1px var(--red);}
.sw{width:20px;height:20px;border-radius:50%;border:1px solid rgba(34,30,25,.3);}
.sw-hanji{background:#EAE0C6;}.sw-meok{background:#1D1B18;}.sw-white{background:#fff;}
.sw-story{width:12px;height:20px;border-radius:2px;background:var(--paper);}.sw-feed{width:16px;height:20px;border-radius:2px;background:var(--paper);}.sw-square{width:18px;height:18px;border-radius:2px;background:var(--paper);}
.chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.chips + .chips{margin-top:10px;}
.chips-lab{font-size:13.5px;color:var(--ink-faint);margin-right:2px;}
.chip{position:relative;cursor:pointer;}
.chip span{display:inline-block;padding:6px 13px;border:1px solid var(--line-strong);border-radius:999px;font-size:13.5px;color:var(--ink-soft);background:#F4ECD6;}
.chip input[type=checkbox] + span::before{content:"+ ";color:var(--ink-faint);}
.chip input:checked + span{background:var(--ink);border-color:var(--ink);color:#F3E9D4;}
.chip input[type=checkbox]:checked + span::before{content:"✓ ";color:#F3E9D4;}
.tool-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;padding-top:20px;border-top:1px dashed var(--line);}
.tool-actions .btn{padding:12px 22px;}
.tool-actions .btn-primary{flex:1 1 160px;text-align:center;}
.tool-view{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:26px clamp(14px,3vw,30px) 18px;background:var(--paper-deep);background-image:radial-gradient(rgba(34,30,25,.07) 1px,transparent 1px);background-size:14px 14px;}
.tool-stage{position:sticky;top:90px;display:flex;flex-direction:column;align-items:center;width:100%;}
.tool-stage canvas{display:block;max-width:100%;max-height:min(70vh,640px);width:auto;height:auto;box-shadow:0 14px 34px rgba(34,30,25,.28),0 2px 6px rgba(34,30,25,.18);}
.tool-cap{margin:14px 0 0;font-size:12.5px;color:var(--ink-soft);letter-spacing:.02em;text-align:center;}
#c27PrintArea{display:none;}
/* 달마다 한눈에 */
.c27-months{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.c27-mc{border:1px solid var(--line-strong);background:var(--paper);padding:14px 16px 12px;display:flex;flex-direction:column;}
.c27-mc h3{margin:0 0 8px;padding-bottom:8px;border-bottom:1px solid var(--line);font-family:'Noto Serif KR',serif;font-weight:600;font-size:19px;color:var(--ink);}
.c27-mc ul{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:3px;font-size:13.5px;color:var(--ink-soft);flex:1;}
.c27-mc li{display:flex;align-items:baseline;gap:8px;}
.c27-mc li b{flex:none;min-width:50px;font-weight:500;}
.c27-mc li b i{font-style:normal;font-weight:400;font-size:12px;color:var(--ink-faint);margin-left:3px;}
.c27-mc li small{color:var(--ink-faint);font-size:12px;}
.mc-hol b{color:var(--red);} .mc-hol{color:var(--ink);}
.mc-term b{color:#2B4A73;}
.mc-sesi b{color:var(--gold, #A9822F);}
.mc-son{padding-top:8px;border-top:1px dashed var(--line);}
.mc-son p{margin:4px 0 0;display:flex;flex-wrap:wrap;gap:2px 9px;font-size:14px;color:var(--ink-soft);font-variant-numeric:tabular-nums;}
.mc-lab{display:block;font-size:12px;color:#8a6a1f;}
.c27-legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 14px;font-size:13px;color:var(--ink-soft);}
.c27-legend i{display:inline-block;width:10px;height:10px;margin-right:6px;vertical-align:-1px;}
.c27-legend em{font-style:normal;color:var(--red);font-weight:500;}
.lg-hol{background:var(--red);}.lg-term{background:#2B4A73;}.lg-sesi{background:#A9822F;}.lg-son{background:#A9822F;border-radius:50%;}
.mc-lab::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#A9822F;margin-right:5px;vertical-align:1px;}
.mc-son .we{color:var(--red);font-weight:500;}
@media (max-width:980px){.c27-months{grid-template-columns:repeat(3,minmax(0,1fr));}}
@media (max-width:860px){
  .tool-card{grid-template-columns:1fr;}
  .tool-ctrl{border-right:0;border-top:1px solid var(--line-strong);order:2;}
  .tool-view{order:1;padding:18px 12px 12px;}
  .tool-stage{position:static;}
  .tool-stage canvas{max-height:44vh;}
  .tool-cap{margin-top:10px;}
}
@media (max-width:480px){
  .pick-box{grid-template-columns:1fr;justify-items:center;text-align:center;row-gap:4px;padding:12px 8px 10px;}
  .pk-ico,.pk-seal{grid-row:auto;margin-bottom:4px;}
  .pick-box small{grid-column:auto;}
  .tool-actions .btn{flex:1 1 100%;text-align:center;}
}
@media (max-width:640px){.c27-months{grid-template-columns:repeat(2,minmax(0,1fr));}.c27-mc{padding:12px;}}
@media (max-width:380px){.c27-months{grid-template-columns:1fr;}}
@media print{
  @page{size:A4 portrait;margin:0;}
  body.c27-printing > *{display:none !important;}
  body.c27-printing #c27PrintArea{display:block !important;}
  #c27PrintArea img{display:block;width:210mm;height:297mm;page-break-after:always;break-after:page;}
  #c27PrintArea img:last-child{page-break-after:auto;break-after:auto;}
}

/* ---------- SNS 카드 만들기 (운영자용) ---------- */
.pick-grid > .pick:last-child:nth-child(odd){grid-column:1 / -1;}
.pk-seal{grid-row:1 / span 2;justify-self:center;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--ink-faint);color:#F3E9D4;font-style:normal;font-family:'Noto Serif KR',serif;font-size:18px;border-radius:3px;}
.pick input:checked + .pick-box .pk-seal{background:var(--red);}
.tool-opt{font-style:normal;font-size:12px;font-weight:400;color:var(--ink-faint);border:1px solid var(--line-strong);padding:1px 7px;border-radius:999px;}
.chip-btn{padding:8px 14px;border:1px solid var(--line-strong);border-radius:999px;background:#F4ECD6;color:var(--ink);font-size:14px;cursor:pointer;font-family:inherit;}
.chip-btn:hover{background:#EADFC2;}
.st-note{display:flex;flex-direction:column;gap:4px;}
.st-note-bar{display:flex;justify-content:space-between;align-items:center;gap:8px;}
.st-note-help{margin:2px 0 0;}
.st-note textarea,.st-cap textarea{width:100%;box-sizing:border-box;padding:10px 12px;font-size:15px;line-height:1.6;border:1px solid var(--line-strong);background:#F4ECD6;color:var(--ink);resize:vertical;font-family:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;}
.st-bottom{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:16px;margin-top:16px;}
.st-cap,.st-tips{border:1px solid var(--line-strong);background:var(--paper-2);padding:18px 20px;}
.st-cap-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.st-cap-head .btn{padding:8px 16px;font-size:14px;}
.st-cap-h{margin:0;font-size:15px;font-weight:500;color:var(--ink);}
.st-tips ul{margin:10px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:7px;font-size:14px;color:var(--ink-soft);line-height:1.7;}
@media (max-width:860px){.st-bottom{grid-template-columns:1fr;}}

/* ---------- 한눈에 보기 (AI 검색·바쁜 방문자용 요약) ---------- */
.qa-box{margin-top:22px;max-width:680px;background:#F4ECD6;border:1px solid var(--line-strong);border-left:4px solid var(--red);padding:14px 18px 12px;}
.qa-h{font-size:13px;font-weight:500;letter-spacing:.08em;color:var(--red);margin:0 0 6px;}
.qa-box ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px;font-size:14.5px;line-height:1.7;color:var(--ink);}
.qa-basis{margin:8px 0 0;font-size:12px;color:var(--ink-faint);}
.mt-share{margin-top:22px;display:flex;align-items:center;gap:18px;padding:16px 20px;background:var(--paper-2);border:1px solid var(--line-strong);flex-wrap:wrap;}
.mt-share-thumb{flex:none;width:72px;height:90px;object-fit:cover;box-shadow:0 6px 16px rgba(34,30,25,.22);transform:rotate(-3deg);background:var(--paper);}
.mt-share-txt{flex:1 1 240px;min-width:0;}
.mt-share-k{margin:0;font-size:12.5px;letter-spacing:.06em;color:var(--red);}
.mt-share-t{margin:2px 0 4px;font-family:'Noto Serif KR',serif;font-weight:600;font-size:20px;color:var(--ink);}
.mt-share-t span{color:var(--gold, #A9822F);font-weight:400;margin:0 4px;}
.mt-share-s{margin:0;font-size:13px;color:var(--ink-faint);line-height:1.6;}
.mt-share .btn{flex:none;padding:11px 22px;}
.mt-share .ijr-msg{flex-basis:100%;margin:0;}
.mt-share .ijr-msg:empty,.tool-ctrl .ijr-msg:empty{display:none;}
@media(max-width:560px){.mt-share{gap:12px 14px;}.mt-share .btn{flex:1 1 100%;text-align:center;}}

/* ---------- Self-hosted subset fonts (make_fonts.py) ---------- */
@font-face{font-family:'Noto Sans KR';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/noto-sans-kr-400.woff2) format('woff2');}
@font-face{font-family:'Noto Sans KR';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/noto-sans-kr-500.woff2) format('woff2');}
@font-face{font-family:'Noto Serif KR';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/noto-serif-kr-400.woff2) format('woff2');}
@font-face{font-family:'Noto Serif KR';font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/noto-serif-kr-600.woff2) format('woff2');}
/* 방문자가 직접 입력하는 칸은 어떤 글자든 나오도록 기기 기본 글꼴 */
.field input, .field select, .field textarea{font-family:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic','맑은 고딕',sans-serif !important;}
/* ---------- Service detail pages ---------- */
.page-hero{padding:84px 0 64px;position:relative;overflow:hidden;}
.page-hero .wrap{display:grid;grid-template-columns:1fr;gap:34px;align-items:center;}
@media(min-width:760px){.page-hero .wrap{grid-template-columns:1fr 150px;}}
.page-hero h1{font-size:clamp(1.9rem,4vw,2.6rem);line-height:1.4;margin-top:10px;}
.page-lede{color:var(--ink-soft);font-size:16px;max-width:54ch;margin:22px 0 0;}
.page-seal{width:150px;height:150px;justify-self:center;}
.breadcrumb{font-size:13.5px;color:var(--ink-faint);}
.breadcrumb a{text-decoration:none;color:var(--ink-faint);}
.breadcrumb a:hover{color:var(--ink);}
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;}
.detail-item{background:var(--paper);border:1px solid var(--line);padding:26px 24px;}
.detail-item h3{font-size:16.5px;margin-bottom:8px;}
.detail-item p{color:var(--ink-soft);font-size:14.5px;margin:0;}
.for-list{list-style:none;padding:0;margin:0;display:grid;gap:14px;}
.for-list li{padding:16px 20px 16px 48px;position:relative;background:var(--paper-2);border:1px solid var(--line);color:var(--ink);font-size:15px;}
.for-list li::before{content:"";position:absolute;left:20px;top:24px;width:10px;height:10px;background:var(--red);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);}
.steps{display:grid;grid-template-columns:1fr;gap:22px;counter-reset:step;}
@media(min-width:700px){.steps{grid-template-columns:repeat(3,1fr);}}
.step{border-top:2px solid var(--ink);padding-top:16px;}
.step-no{font-family:'Noto Serif KR',serif;color:var(--red-deep);font-size:14px;margin-bottom:6px;}
.step h3{font-size:16.5px;margin-bottom:8px;}
.step p{color:var(--ink-soft);font-size:14.5px;margin:0;}
.prep{margin-top:40px;padding:22px 26px;background:var(--paper-2);border:1px solid var(--line-strong);font-size:14.5px;color:var(--ink-soft);}
.prep strong{color:var(--ink);font-weight:500;}
.faq{display:grid;gap:10px;}
.faq details{border:1px solid var(--line);background:var(--paper);padding:0 22px;}
.faq summary{cursor:pointer;padding:16px 0;font-family:'Noto Serif KR',serif;font-weight:600;font-size:15.5px;list-style:none;position:relative;padding-right:28px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:0;top:14px;color:var(--red-deep);font-size:18px;}
.faq details[open] summary::after{content:"−";}
.faq p{margin:0 0 18px;color:var(--ink-soft);font-size:14.5px;}
.cta-band{text-align:center;padding:70px 0;}
.cta-band h2{font-size:clamp(1.4rem,2.6vw,1.8rem);}
.cta-band p{color:var(--ink-soft);margin:14px auto 30px;max-width:46ch;}
.other-services{margin-top:34px;font-size:14px;color:var(--ink-faint);display:flex;gap:8px 18px;flex-wrap:wrap;justify-content:center;}
.other-services a{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--line);}
.other-services a:hover{color:var(--ink);border-color:var(--ink);}
.service-item{text-decoration:none;color:inherit;transition:background .15s ease;}
.service-item:hover{background:var(--paper-2);}
.service-more{display:block;margin-top:10px;font-size:13px;color:var(--red-deep);}
.page-note{font-size:14.5px;color:var(--ink-soft);margin:14px 0 0;padding:10px 14px;border-left:3px solid var(--gold);background:var(--paper-2);max-width:54ch;}
.page-note a{color:var(--red-deep);}
.tool-groups{margin-top:30px;}
.tg-h{margin:0 0 10px;font-size:12.5px;letter-spacing:.08em;color:var(--red-deep);font-weight:500;}
.tool-links + .tg-h{margin-top:22px;}
.tool-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
@media(min-width:861px){.tool-link{flex-direction:column;align-items:center;text-align:center;gap:10px;padding:16px 12px;}.tool-link span{display:block;line-height:1.55;}}
@media(max-width:860px){.tool-links{grid-template-columns:repeat(2,minmax(0,1fr));}}
.tool-link{display:flex;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--line-strong);background:var(--paper-2);text-decoration:none;color:inherit;transition:background .15s;}
.tool-link:hover{background:var(--paper-deep);}
.tool-link .tl-seal{flex:none;width:40px;height:40px;border-radius:4px;background:var(--red);color:#F3E9D4;display:flex;align-items:center;justify-content:center;font-family:'Noto Serif KR',serif;font-size:20px;}
.tool-link strong{display:block;font-family:'Noto Serif KR',serif;font-weight:600;font-size:15.5px;color:var(--ink);}
.tool-link span{font-size:13px;color:var(--ink-soft);}
@media(max-width:520px){
  .tool-link{flex-direction:column;align-items:flex-start;gap:8px;padding:12px;}
  .tool-link .tl-seal{width:34px;height:34px;font-size:17px;}
  .tool-link strong{font-size:14.5px;}
  .tool-link span{display:none;}
}
/* ---------- Footer (묶음 + 가로 흐름: 항목이 늘어도 높이 유지) ---------- */
footer .footer-grid{gap:34px 40px;}
@media(min-width:760px){footer .footer-grid{grid-template-columns:1.1fr 1fr 1.25fr;}}
footer .footer-title{font-family:'Noto Serif KR', serif;font-size:16px;color:#F1E7CC;margin:0 0 14px;font-weight:600;line-height:1.5;}
footer .footer-info li{margin:0 0 4px;}
footer .footer-label{font-size:12px;letter-spacing:.08em;color:#8B7F60;margin:0 0 6px;}
footer .footer-label + .footer-inline{margin-bottom:16px;}
footer .footer-inline{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;padding:0;list-style:none;}
footer .footer-inline li{margin:0;font-size:13.8px;line-height:1.7;}
footer .footer-inline a{color:#C8BC9E;text-decoration:none;}
footer .footer-inline a:hover{color:#F1E7CC;text-decoration:underline;text-underline-offset:3px;}
@media(max-width:759px){footer .footer-grid{grid-template-columns:1fr;gap:26px;}}
/* ---------- 상단 메뉴: 만세력·달력 펼침 ---------- */
nav.links{align-items:center;}
.nav-more{position:static;}
.nav-more summary{list-style:none;cursor:pointer;color:var(--ink-soft);padding-bottom:3px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;}
.nav-more summary::-webkit-details-marker{display:none;}
.nav-more summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s;}
.nav-more[open] summary::after{transform:translateY(1px) rotate(-135deg);}
.nav-more summary:hover,.nav-more[open] summary{color:var(--ink);}
.nav-more summary:focus-visible{outline:2px solid var(--red);outline-offset:3px;}
.nav-panel{position:absolute;top:calc(100% + 1px);left:50%;transform:translateX(-50%);width:min(560px,calc(100vw - 32px));display:grid;grid-template-columns:1fr 1fr;gap:4px 18px;padding:18px 20px;background:#F1E7CC;border:1px solid var(--line-strong);box-shadow:0 14px 30px -18px rgba(34,30,25,.45);z-index:60;white-space:normal;}
.np-group p{margin:0 0 6px;font-size:12px;letter-spacing:.06em;color:var(--red-deep);font-weight:500;}
nav.links .nav-panel a{display:block;padding:8px 10px;margin:0 -10px;border-radius:3px;}
nav.links .nav-panel a::after{display:none;}
nav.links .nav-panel a:hover{background:rgba(158,43,52,.07);}
.nav-panel b{display:block;font-family:'Noto Serif KR',serif;font-weight:600;font-size:15px;color:var(--ink);}
.nav-panel span{display:block;font-size:12.5px;color:var(--ink-faint);margin-top:1px;}
@media(max-width:640px){
  .nav-panel{position:fixed;top:57px;padding:14px 16px;gap:2px 12px;}
  .nav-panel b{font-size:14px;}
  .nav-panel span{display:none;}
  nav.links .nav-panel a{padding:7px 8px;margin:0 -8px;}
}
/* ---------- Global responsive fixes ---------- */
body{word-break:keep-all;overflow-wrap:break-word;}
[hidden]{display:none !important;}
strong,b{font-weight:500;}
@media(max-width:640px){
  .wrap{padding:0 24px;}
  .nav-inner{padding:12px 24px;gap:12px;}
  nav.links{gap:12px;font-size:13px;white-space:nowrap;}
  section{padding:56px 0;}
  .hero{padding:92px 0 56px;}
  .seal.s1{top:16px;right:5%;width:64px;height:64px;}
  .section-head{margin-bottom:30px;}
}
@media(max-width:480px){
  .brand-name{display:none;}
  nav.links{gap:14px;}
}
/* ---------- Service detail pages: mobile ---------- */
@media(max-width:640px){
  .page-hero{padding:48px 0 40px;}
  .page-hero .wrap{gap:24px;}
  .page-seal{width:96px;height:96px;justify-self:start;order:-1;}
  .page-hero h1{font-size:1.7rem;}
  .page-hero h1 br{display:none;}
  .page-lede{font-size:15px;}
  .hero-actions .btn{flex:1 1 100%;text-align:center;}
  .for-list li{font-size:14.5px;padding:14px 16px 14px 42px;}
  .for-list li::before{left:16px;top:21px;}
  .cta-band{padding:56px 0;}
}
/* ---------- Reviews (8개) ---------- */
.review-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.review-card{margin:0;display:flex;flex-direction:column;}
.review-quote{margin:0 0 20px;padding-right:34px;max-width:none;flex:1;font-size:15px;line-height:1.85;}
.review-hint{display:none;font-size:12.5px;color:var(--ink-faint);margin:12px 0 0;}
@media(max-width:700px){
  .review-grid{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:84%;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin:0 -24px;padding:0 24px 6px;scroll-padding:0 24px;scrollbar-width:none;}
  .review-grid::-webkit-scrollbar{display:none;}
  .review-card{scroll-snap-align:start;}
  .review-hint{display:block;}
}
/* ---------- Guide page ---------- */
.guide-toc{display:flex;flex-wrap:wrap;gap:8px 14px;margin:26px 0 0;padding:0;list-style:none;font-size:14px;}
.guide-toc a{color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:1px;}
.guide-toc a:hover{color:var(--ink);border-color:var(--ink);}
.guide-layout{display:grid;grid-template-columns:1fr;gap:40px;padding-top:48px;padding-bottom:20px;}
@media(min-width:900px){.guide-layout{grid-template-columns:200px minmax(0,660px);gap:64px;align-items:start;justify-content:start;}}
.guide-side{display:none;}
@media(min-width:900px){.guide-side{display:block;position:sticky;top:84px;}}
.guide-side .side-title{font-size:12.5px;color:var(--red-deep);font-weight:500;margin-bottom:12px;letter-spacing:.04em;}
.guide-side ol{list-style:none;margin:0;padding:0;border-left:1px solid var(--line);}
.guide-side li a{display:block;padding:7px 0 7px 16px;font-size:13.5px;color:var(--ink-faint);text-decoration:none;margin-left:-1px;border-left:2px solid transparent;line-height:1.5;transition:color .15s,border-color .15s;}
.guide-side li a:hover{color:var(--ink);}
.guide-side li a.active{color:var(--red-deep);border-left-color:var(--red);}
.guide-main{min-width:0;max-width:660px;}
.guide-section{padding:0 0 48px;margin-bottom:48px;border-bottom:1px solid var(--line);scroll-margin-top:84px;}
.guide-section:last-child{border-bottom:none;margin-bottom:0;}
.guide-head{display:flex;gap:16px;align-items:center;margin-bottom:18px;}
.guide-num{flex:none;width:40px;height:40px;border:1px solid var(--ink);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Noto Serif KR',serif;font-size:17px;color:var(--red-deep);}
.guide-section h2{font-size:clamp(1.25rem,2.2vw,1.5rem);margin:0;line-height:1.4;}
.guide-summary{font-size:15px;color:var(--ink);margin:0 0 20px;padding:12px 16px;background:var(--paper-2);border-left:3px solid var(--red);line-height:1.7;}
.guide-section p{color:var(--ink-soft);font-size:15.5px;margin:0 0 14px;}
.guide-section p strong{color:var(--ink);font-weight:500;}
.guide-section ul{color:var(--ink-soft);font-size:15px;padding-left:20px;margin:0 0 14px;}
.guide-section li{margin-bottom:6px;}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:18px 0 6px;}
.guide-table{width:100%;border-collapse:collapse;font-size:14.5px;margin:0;}
.guide-table.cols-3{min-width:420px;}
.guide-table.cols-4{min-width:540px;}
.guide-table th,.guide-table td{border:1px solid var(--line);padding:9px 12px;text-align:left;vertical-align:top;}
.guide-table th{background:var(--paper-2);font-weight:500;color:var(--ink);white-space:nowrap;}
.guide-table td{color:var(--ink-soft);}
.table-hint{display:none;font-size:12.5px;color:var(--ink-faint);margin:6px 0 0;}
@media(max-width:600px){.table-hint{display:block;}}
.guide-note{background:var(--paper-2);border:1px solid var(--line-strong);padding:16px 20px;font-size:14.5px;color:var(--ink-soft);margin-top:16px;}
.guide-note strong{color:var(--ink);font-weight:500;}
.guide-cta{margin-top:10px;font-size:14.5px;}
.guide-cta a{color:var(--red-deep);}
/* 네 기둥 그림 */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0 8px;}
.pillar{text-align:center;min-width:0;}
.pillar-label{font-size:13px;color:var(--ink);margin-bottom:8px;line-height:1.4;}
.pillar-label small{display:block;font-size:12px;color:var(--ink-faint);}
.pillar-box{border:1px solid var(--line-strong);background:var(--paper);}
.pillar-cell{padding:10px 4px;font-family:'Noto Serif KR',serif;font-size:15px;color:var(--ink-soft);line-height:1.3;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.pillar-cell small{display:block;font-family:'Noto Sans KR',sans-serif;font-size:11.5px;margin-top:3px;opacity:.9;}
.pillar-cell + .pillar-cell{border-top:1px dashed var(--line-strong);}
.pillar-cell.me{background:var(--red);color:#F3E9D4;}
.pillar-meaning{font-size:12.5px;color:var(--ink-faint);margin-top:8px;line-height:1.5;}
.pillars-caption{font-size:13px;color:var(--ink-faint);margin:0 0 18px;}
@media(max-width:480px){
  .pillars{gap:6px;}
  .pillar-label{font-size:12px;}
  .pillar-cell{font-size:13.5px;padding:8px 2px;min-height:52px;}
  .pillar-cell small{font-size:10.5px;}
  .pillar-meaning{font-size:11.5px;}
}
/* 오행 카드 */
.ohaeng{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:20px 0 6px;}
.oh{border:1px solid var(--line);background:var(--paper);padding:18px 8px 14px;text-align:center;min-width:0;}
.oh-mark{width:46px;height:46px;margin:0 auto 10px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Noto Serif KR',serif;font-size:22px;color:#F3E9D4;flex:none;}
.oh-name{font-family:'Noto Serif KR',serif;font-weight:600;font-size:15px;color:var(--ink);}
.oh-nature{font-size:12.5px;color:var(--ink-faint);margin:2px 0 8px;}
.oh-trait{font-size:13px;color:var(--ink-soft);line-height:1.55;}
@media(max-width:640px){
  .ohaeng{grid-template-columns:1fr;gap:8px;}
  .oh{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;column-gap:14px;align-items:center;text-align:left;padding:12px 14px;}
  .oh-mark{width:44px;height:44px;margin:0;grid-row:1 / span 2;font-size:20px;}
  .oh-name{display:inline;}
  .oh-nature{display:inline;margin:0 0 0 8px;}
  .oh-trait{grid-column:2;}
}
.ohaeng-cycle{font-size:13.5px;color:var(--ink-soft);margin:12px 0 18px;padding:12px 16px;border:1px dashed var(--line-strong);line-height:1.75;}
.ohaeng-cycle strong{color:var(--ink);font-weight:500;}
.ohaeng-cycle .row + .row{margin-top:4px;}
/* 12시진 타일 */
.sijin{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0 8px;}
@media(min-width:560px){.sijin{grid-template-columns:repeat(4,1fr);}}
@media(min-width:760px){.sijin{grid-template-columns:repeat(6,1fr);}}
.sj{border:1px solid var(--line);background:var(--paper);padding:12px 6px 10px;text-align:center;}
.sj-hanja{font-family:'Noto Serif KR',serif;font-size:20px;color:var(--red-deep);line-height:1.2;}
.sj-name{font-size:13px;color:var(--ink);margin-top:2px;}
.sj-time{font-size:12px;color:var(--ink-faint);margin-top:4px;letter-spacing:-.01em;}
.sijin-caption{font-size:13px;color:var(--ink-faint);margin:0 0 18px;}

/* ---------- 배치 정리: 상자 폭 통일 ---------- */
.manse-card,.manse-result,.ij-find,.my-ilj,.today-card,.cal-detail,.cal-side,#cvForm,
.son-note,.son-dir,.son-cta,.jg-explain,#agForm,.age-table-wrap,#hwForm,.yd-chart,.mt-note{max-width:none;}
.page-hero + section[style*="padding-top:0"]{padding-top:36px !important;}
.page-hero .qa-box{grid-column:1 / -1;max-width:none;margin-top:-6px;}
@media(max-width:759px){.page-hero .qa-box{margin-top:0;}}
/* 글 형식 페이지(2027·사주 알기) 첫 단락도 구분선에서 띄움 */
.page-hero + .wrap .guide-main{padding-top:36px !important;}
/* 오늘 일진과 나: 다른 입력 카드와 같은 모양 */
.my-form{background:var(--paper-2);padding:24px clamp(18px,4vw,32px) 22px;}
.my-form .mf-row{margin-bottom:0;}
.my-form .mf-submit{margin-top:14px;}
/* 상담 페이지 '다루는 것' 5개: 3개 + 2개로 빈칸 없이 */
@media(min-width:760px){
  .detail-grid{grid-template-columns:repeat(6,minmax(0,1fr));}
  .detail-grid > *{grid-column:span 2;}
  .detail-grid > :nth-child(4):nth-last-child(2),.detail-grid > :nth-child(5):last-child{grid-column:span 3;}
}
/* 개인정보 처리방침: 머리말과 같은 왼쪽 선에 맞춤 */
.wrap.pv-doc{max-width:920px;}
.pv-doc p{max-width:720px;}
/* 휴대폰: 2열로 고정된 오행 카드도 한 줄씩, 날짜 입력칸은 한 줄에 */
@media(max-width:640px){.ohaeng[style]{grid-template-columns:1fr !important;}}
@media(max-width:420px){
  .mf-date{gap:4px;flex-wrap:nowrap;}
  .mf-date input{width:52px;padding:9px 6px;}
  .mf-date input#mY,.mf-date input[maxlength="4"]{width:66px;}
  .mf-date span{margin-right:2px;}
}
/* 아주 작은 휴대폰(폭 340 이하): 상단 메뉴 한 줄에 맞춤 */
@media(max-width:340px){
  .nav-inner{padding-left:14px !important;padding-right:14px !important;}
  nav.links{gap:9px !important;font-size:12px !important;}
  .brand-mark{width:26px;height:26px;}
}
/* 표는 화면보다 넓으면 표 안에서만 옆으로 밀리게 (페이지 전체가 흔들리지 않게) */
.age-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
@media(max-width:340px){.age-table th,.age-table td{padding:8px 6px;font-size:12.5px;}}
/* 안내 상자 바로 뒤 표가 붙지 않게 */
.son-note + .age-table-wrap,.son-note + .tj-table,.son-note + table{margin-top:14px;}
/* ---------- 오늘의 띠별 일진 ---------- */
.ttd-sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px;}
.ttd-sum > div{border:1px solid var(--line-strong);background:var(--paper-2);padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0;}
.ttd-sum span{font-size:12.5px;color:var(--ink-faint);}
.ttd-sum strong{font-family:'Noto Serif KR',serif;font-weight:600;font-size:17px;color:var(--ink);}
.ttd-sum em{font-style:normal;font-size:12px;color:var(--ink-faint);}
.ttd-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;}
.ttd{border:1px solid var(--line-strong);border-top-width:3px;background:var(--paper);padding:12px 14px 12px;}
.ttd.good{border-top-color:#4F7A4A;}
.ttd.care{border-top-color:var(--red);}
.ttd-h{display:flex;align-items:center;gap:8px;margin:0;list-style:none;}
.ttd-h::-webkit-details-marker{display:none;}
.ttd[open] .ttd-h{margin-bottom:8px;}
.ttd-grid{align-items:start;}
.ttd-h b{font-family:'Noto Serif KR',serif;font-weight:600;font-size:16px;color:var(--ink);}
.ttd-tag{margin-left:auto;font-style:normal;font-size:12px;padding:2px 9px;border-radius:999px;border:1px solid var(--line-strong);color:var(--ink-soft);white-space:nowrap;}
.ttd.good .ttd-tag{border-color:#4F7A4A;color:#3d6439;}
.ttd.care .ttd-tag{border-color:var(--red);color:var(--red);}
.ttd-t{margin:0 0 6px;font-size:13.5px;line-height:1.65;color:var(--ink-soft);}
.ttd-f{margin:0;font-size:12.5px;line-height:1.6;color:var(--ink-faint);}
@media(max-width:860px){.ttd-sum{grid-template-columns:repeat(2,minmax(0,1fr));}.ttd-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:560px){.ttd-grid{grid-template-columns:1fr;gap:6px;}.ttd{padding:10px 12px;}.ttd-h{cursor:pointer;}.ttd-h::after{content:"+";margin-left:8px;color:var(--ink-faint);font-size:16px;}.ttd[open] .ttd-h::after{content:"−";}}
/* ---------- 지금 시각의 주역 괘 ---------- */
.gua-box{border:1px solid var(--line-strong);background:var(--paper-2);padding:24px clamp(18px,4vw,32px) 20px;}
.gua-top{display:flex;gap:26px;align-items:center;margin-bottom:18px;padding-bottom:18px;border-bottom:1px dashed var(--line);}
.gua-lines{display:flex;flex-direction:column;gap:9px;width:92px;flex:none;}
.gy{display:block;height:13px;border-radius:1px;}
.gy.yang{background:var(--ink);}
.gy.yin{background:linear-gradient(90deg,var(--ink) 0 42%,transparent 42% 58%,var(--ink) 58%);}
.gy.yang.mv{background:var(--red);}
.gy.yin.mv{background:linear-gradient(90deg,var(--red) 0 42%,transparent 42% 58%,var(--red) 58%);}
.gua-k{margin:0 0 4px;font-size:13.5px;color:var(--ink-faint);}
.gua-k select{margin-left:4px;padding:3px 6px;font-size:13.5px;border:1px solid var(--line-strong);background:#F4ECD6;color:var(--ink);}
.gua-name{margin:0;font-family:'Noto Serif KR',serif;font-weight:600;font-size:26px;color:var(--ink);}
.gua-hj{font-family:'AppleMyungjo','Batang','Noto Serif CJK KR','Noto Serif CJK SC','Songti SC',serif;font-weight:400;color:var(--red-deep);}
.gua-gloss{margin:4px 0 2px;font-size:15px;color:var(--ink);}
.gua-comp{margin:0;font-size:13px;color:var(--ink-faint);}
.gua-text{margin:0;display:grid;grid-template-columns:150px 1fr;gap:10px 16px;}
.gua-text dt{font-size:13px;font-weight:500;color:var(--red-deep);padding-top:3px;}
.gua-text dd{margin:0;font-size:15px;color:var(--ink);line-height:1.7;}
.gua-hanja{font-family:'AppleMyungjo','Batang','Noto Serif CJK KR','Noto Serif CJK SC','Songti SC',serif;font-size:17px !important;letter-spacing:.02em;}
.gua-steps{list-style:none;margin:16px 0 0;padding:12px 0 0;border-top:1px dashed var(--line);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,auto);grid-auto-flow:column;gap:4px 18px;font-size:13px;color:var(--ink-soft);}
.gua-steps span{display:inline-block;min-width:44px;color:var(--ink-faint);}
@media(max-width:600px){.gua-top{gap:18px;}.gua-lines{width:70px;gap:7px;}.gy{height:11px;}.gua-name{font-size:22px;}.gua-text{grid-template-columns:1fr;gap:2px;}.gua-text dd{margin-bottom:10px;}.gua-steps{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row;}}
