:root{
  --primary:#2C4A35;
  --accent:#5A8B5C;
  --ink:#1A1A1A;
  --sub:#5C6660;
  --line:#DDDFD6;
}
html{scroll-behavior:smooth;}
body{
  font-family:'Pretendard',sans-serif;
  color:var(--ink);
  background:#FFFFFF;
  word-break:keep-all;
  overflow-wrap:break-word;
}
.brand-font, h1, h2, .serif{
  font-family:'Nanum Myeongjo', serif;
}
.prose-body{max-width:68ch;}
.eyebrow{
  font-size:.72rem;
  letter-spacing:.24em;
  color:var(--accent);
  font-weight:700;
  text-transform:uppercase;
}
.hairline{border-color:var(--line);}
.hairline-t{border-top:1px solid var(--line);}
.hairline-b{border-bottom:1px solid var(--line);}

/* 히어로: 단일 이미지 + 얇은 그림자 텍스트 */
.hero-photo{position:relative;overflow:hidden;}
.hero-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.hero-photo::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to top, rgba(10,14,10,.40) 0%, rgba(10,14,10,.12) 40%, rgba(10,14,10,0) 60%);
}
.hero-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;z-index:1;}
.hero-text-shadow{text-shadow:0 2px 10px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.4);}

.gallery-bleed{border-radius:2px;border:none;overflow:hidden;background:#F7F7F4;}
@media (min-width:768px){
  .gallery-bleed{border:1px solid var(--line);border-radius:2px;transition:transform .25s ease;}
  .gallery-bleed:hover{transform:translateY(-3px);}
}
.gallery-caption{border-top:1px solid var(--line);}

/* 가로형 카드: 사진 왼쪽 + 글자 오른쪽 */
.service-row{
  display:flex;align-items:stretch;
  background:#FFFFFF;
  overflow:hidden;
  transition:transform .25s ease;
  border-bottom:1px solid var(--line);
}
.service-row:last-child{border-bottom:none;}
@media (min-width:768px){
  .service-row{border:1px solid var(--line);border-radius:2px;}
  .service-row:hover{transform:translateY(-3px);}
}
.service-row-photo{flex-shrink:0;width:8.5rem;align-self:stretch;}
@media (min-width:768px){
  .service-row-photo{width:9rem;}
}
.service-row-text{padding:1rem 1.1rem;}
@media (min-width:768px){
  .service-row-text{padding:1.1rem 1.3rem;}
}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  gap:.35em;
  padding:.85rem 1.6rem;
  border-radius:2px;
  font-weight:700;
  font-size:.95rem;
  transition:opacity .2s ease, transform .15s ease;
}
.btn:hover{opacity:.88;}
.btn-primary{background:var(--primary);color:#fff;}
.btn-outline{border:1px solid #fff;color:#fff;}
.btn-outline-dark{border:1px solid var(--primary);color:var(--primary);}
header.site-header{
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.faq-item{border-bottom:1px solid var(--line);}
.faq-q{
  cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;
  padding:1.1rem 0;
  font-weight:700;
}
.faq-a{
  max-height:0;overflow:hidden;
  transition:max-height .3s ease, padding .3s ease;
  color:var(--sub);
  font-size:.92rem;
  line-height:1.7;
}
.faq-item.open .faq-a{max-height:400px;padding-bottom:1.1rem;}
.faq-plus{transition:transform .25s ease;color:var(--accent);font-size:1.1rem;}
.faq-item.open .faq-plus{transform:rotate(45deg);}
.floating-wrap{
  position:fixed;right:1.1rem;z-index:50;display:flex;flex-direction:column;gap:.6rem;
  bottom:calc(1.1rem + env(safe-area-inset-bottom));
}
.floating-btn{
  width:52px;height:52px;border-radius:2px;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 6px 18px rgba(0,0,0,.16);
  font-size:.68rem;font-weight:700;color:#fff;background:var(--primary);
  opacity:0;transform:translateY(10px);pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;
}
.floating-btn.show{opacity:1;transform:translateY(0);pointer-events:auto;}
.floating-btn.consult{opacity:1;transform:none;pointer-events:auto;}
.lightbox{
  position:fixed;inset:0;background:rgba(15,15,12,.92);
  display:none;align-items:center;justify-content:center;z-index:100;padding:2rem;
}
.lightbox.open{display:flex;}
.lightbox img{max-width:92vw;max-height:88vh;border-radius:2px;}
.lightbox-close{
  position:absolute;top:.8rem;right:.8rem;
  width:44px;height:44px;
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:2rem;cursor:pointer;line-height:1;
}
.num-label{font-weight:800;font-size:.95rem;color:var(--accent);font-family:'Nanum Myeongjo',serif;}
.ba-tag{
  position:absolute;top:.5rem;left:.5rem;z-index:2;
  background:rgba(26,26,26,.72);color:#fff;
  font-size:.68rem;font-weight:700;letter-spacing:.03em;
  padding:.3rem .6rem;border-radius:2px;
}
.ba-tag-after{background:var(--primary);}
table.compare-table{width:100%;border-collapse:collapse;font-size:.88rem;}
table.compare-table th,table.compare-table td{
  border:1px solid var(--line);padding:.75rem .9rem;text-align:left;vertical-align:top;
}
table.compare-table th{background:#F1F3EE;font-weight:700;}
.reason-box{border:1px solid var(--line);border-radius:2px;}
@media (max-width:767px){
  .grid-3{grid-template-columns:repeat(2,minmax(0,1fr));}
}
