:root{
  --primary:#2C4A35;
  --accent:#5A8B5C;
  --ink:#1A1A1A;
  --muted:#6B7280;
  --border:#E5E5E5;
}
html{scroll-behavior:smooth;}
body{
  font-family:'Pretendard',-apple-system,sans-serif;
  color:var(--ink);
  background:#fff;
}
h1,h2,h3,.font-serif-kr{font-family:'Nanum Myeongjo',serif;}
.prose-kr{word-break:keep-all;overflow-wrap:break-word;}
.max-w-prose-kr{max-width:68ch;}
.eyebrow{
  font-size:.72rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--accent);
  font-weight:600;
}
.hairline-t{border-top:1px solid var(--border);}
.hairline-b{border-bottom:1px solid var(--border);}
.hairline{border:1px solid var(--border);}
.text-shadow-strong{text-shadow:0 2px 10px rgba(0,0,0,.55),0 1px 3px rgba(0,0,0,.5);}
.text-shadow-soft{text-shadow:0 2px 8px rgba(0,0,0,.35);}

/* 카드 그리드 — 항상 6개: 모바일 2열 / PC 3열, auto-fit 사용 금지 */
.grid-6{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1rem;
}
@media(min-width:768px){
  .grid-6{grid-template-columns:repeat(3,1fr);gap:1.5rem;}
}

/* 카드 그리드 — 4개: 모바일 2열 / PC 4열 */
.grid-4{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1rem;
}
@media(min-width:768px){
  .grid-4{grid-template-columns:repeat(4,1fr);gap:1.5rem;}
}

/* 3개 그리드 — 모바일 반드시 1열(세로) */
.grid-3{
  display:grid;
  grid-template-columns:1fr;
  gap:1rem;
}
@media(min-width:768px){
  .grid-3{grid-template-columns:repeat(3,1fr);gap:1.5rem;}
}

.card-photo{aspect-ratio:4/3;object-fit:cover;}

/* FAQ — 네이티브 details/summary, JS 불필요 */
.faq-item summary{
  cursor:pointer;
  list-style:none;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item .faq-chevron{transition:transform .2s;}
.faq-item[open] .faq-chevron{transform:rotate(45deg);}

/* 라이트박스 */
#lightbox{
  position:fixed;inset:0;background:rgba(20,20,20,.92);
  display:none;align-items:center;justify-content:center;
  z-index:100;padding:2rem;cursor:zoom-out;
}
#lightbox.active{display:flex;}
#lightbox img{max-width:100%;max-height:100%;object-fit:contain;border-radius:2px;}

/* 헤더 */
#site-header{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

/* 플로팅 버튼 */
#float-top{
  opacity:0;pointer-events:none;transition:opacity .2s;
}
#float-top.show{opacity:1;pointer-events:auto;}

@media(max-width:767px){
  .mobile-menu{display:none;}
  .mobile-menu.open{display:block;}
}
