/* 풍년제사 공유 디자인 토큰 — 제사(index) 기준 · 전 페이지 공통 (2026-10)
   각 페이지 인라인 <style> 뒤(</head> 직전)에 로드되어 공통값이 우선한다.
   글씨체 = 제목 명조(Noto Serif KR) + 본문 고딕(Pretendard) — 하이엔드 목업 기준.
   배경 = 흰 지배 + 한지(--bg-2) 미묘 교차 + 먹(--onggi) 강조 밴드. 색은 브랜드(딥그린·놋·한지·먹). */
:root{
  /* 폰트 — 제목 명조 / 본문 고딕 */
  --sans:"Pretendard Variable","Pretendard","Noto Sans KR","Apple SD Gothic Neo",system-ui,sans-serif;
  --serif:"Noto Serif KR","Gowun Batang","Nanum Myeongjo",serif;
  --serif-deco:"Gowun Batang","Nanum Myeongjo",serif;
  /* 색 — 포인트(빨강) 단일 톤 유지 + 브랜드 보조색 */
  --red:#c0582a; --red-d:#a8481f; --red-ink:#a8481f;
  --green:#2e4a3c; --brass:#a9792e; --hanji:#f4efe4; --meok:#1f1d18;
  /* 배경 — 흰 지배 + 한지 미묘 교차 + 먹 강조 밴드(황토 '싼티' 제거, 브랜드 한지로) */
  --bg:#ffffff; --bg-2:#f4efe4; --paper:#ffffff; --paper-2:#faf7f1; --onggi:#1f1d18;
  /* 타입 스케일(제목 크기 통일 — clamp 단일 체계) */
  --fs-h1:clamp(30px,6.4vw,60px);
  --fs-h2:clamp(21px,2.4vw,29px);
  --fs-h3:clamp(17px,1.5vw,20px);
  --fw-title:700; --fw-strong:700; --fw-num:700;
}

/* ── 제목 크기·굵기 통일 (인라인 <style> 뒤 로드라 공통값이 이긴다)
   명조 제목은 자간을 살짝만 좁히고, text-wrap:balance로 줄 길이를 자동 균형(고아줄 방지) ── */
header.hero h1{font-size:var(--fs-h1);font-weight:var(--fw-title);line-height:1.3;letter-spacing:-.01em;text-wrap:balance}
.sec-title,.band-lead{font-size:var(--fs-h2);font-weight:var(--fw-title);line-height:1.35;letter-spacing:-.005em;text-wrap:balance}
/* 읽는 본문: 마지막 줄 외톨이 단어 방지(단어는 keep-all로 안 쪼갬) */
p{text-wrap:pretty}

/* ── 예약 '다음' 단계 버튼 — 투명+점선이라 안 보이던 것을 채운 버튼으로 ── */
.next-step{background:var(--paper-2);border:2px solid var(--red);color:var(--red);font-weight:800;box-shadow:0 5px 16px rgba(152,36,29,.14)}
.next-step:hover{background:var(--red);color:#fff}

/* ── 챗봇 퀵·답변 버튼 — 중립 pill로 정돈(알약형·진회색 글자·얇은 선). 터치 타깃 ↑.
   챗봇 CSS가 body 안 <style>이라 head base보다 뒤 로드되므로 #chatPanel로 구체화해 이긴다 ── */
#chatPanel .chat-quick{gap:8px;padding:12px 14px 4px}
#chatPanel .chat-quick .cq{background:#fff;border:1px solid #e7e4dd;color:#33302b;font-weight:600;border-radius:999px;padding:12px 15px;font-size:13px;letter-spacing:-.01em;transition:.15s}
#chatPanel .chat-quick .cq:hover{background:#f6f5f2;border-color:#d7d3ca}
#chatPanel .cq-row{gap:8px}
#chatPanel .cq-row .cb{background:#fff;border:1px solid #e7e4dd;color:#33302b;font-weight:600;border-radius:999px;padding:13px 14px;font-size:13.5px;transition:.15s}
#chatPanel .cq-row .cb:hover{background:#f6f5f2;border-color:#d7d3ca}

/* ── 챗봇 FAB — 한복 인사 캐릭터(이미지) + 말풍선 넛지(캐릭터 위, 캐릭터가 말하는 형태).
   head 인라인 .chat-fab보다 구체적(.chat-nudge .chat-fab)이라 뒤 로드 없이도 이긴다 ── */
.chat-nudge{position:fixed;right:16px;bottom:14px;z-index:45;display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.sticky-on .chat-nudge{bottom:84px}
.chat-nudge .chat-fab{position:relative;inset:auto;width:78px;height:78px;background:none;border:none;border-radius:0;box-shadow:none;padding:0;line-height:0;cursor:pointer;flex:0 0 auto;-webkit-tap-highlight-color:transparent;animation:fabIn .5s cubic-bezier(.2,1.4,.4,1) both;transition:transform .18s ease}
/* 옛 '.sticky-on .chat-fab{bottom:84px}'·'.chat-fab{bottom:14px}'가 relative FAB을 위로 밀어 중간에 뜨던 것 차단 */
.sticky-on .chat-nudge .chat-fab{inset:auto}
.chat-nudge .chat-fab:hover{transform:translateY(-3px) scale(1.04)}
.chat-nudge .chat-fab:active{transform:scale(.97)}
.chat-nudge .chat-fab .fab-img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;pointer-events:none;filter:drop-shadow(0 7px 11px rgba(40,25,10,.32))}
.chat-nudge .chat-fab .dot{position:absolute;top:10px;right:13px;width:10px;height:10px;background:#e4553a;border:2px solid #fff;border-radius:50%;animation:sealPulse 2.4s ease-out infinite}
.chat-bubble{position:relative;align-self:flex-end;margin-right:6px;background:#fff;border:1px solid #e7e0d2;border-radius:16px 16px 16px 5px;padding:10px 28px 10px 14px;font-size:13px;line-height:1.45;color:#22201c;box-shadow:0 7px 18px rgba(40,30,10,.16);max-width:215px;font-family:var(--sans);white-space:nowrap;animation:fabIn .5s .3s both}
.chat-bubble-x{position:absolute;top:4px;right:7px;border:none;background:none;font-size:15px;color:#b1a894;cursor:pointer;line-height:1}
.chat-bubble.hide{display:none}
@media (max-width:520px){ .chat-nudge .chat-fab{width:70px;height:70px} .chat-bubble{font-size:12px;padding:9px 26px 9px 12px} }
@media (prefers-reduced-motion:reduce){ .chat-nudge .chat-fab,.chat-bubble,.chat-nudge .chat-fab .dot{animation:none} }

/* ── 애니메이션 정돈 — 상시 모션은 끄지 않고 '더 느리고 은은하게'(산만함만 완화).
   인라인 뒤 로드라 duration만 덮어써 효과는 유지하되 호흡을 길게 ── */
.hero-cta{animation-duration:4.4s}
.hero-scroll .chev{animation-duration:2.9s}
.seal::after{animation-duration:5.4s}

/* ── 문장·줄 간격 고르게 — 과하게 뜬 것(1.9~2.15)만 1.8로 통일(1.5~1.85대는 거의 그대로).
   인라인 뒤 로드라 데스크톱·모바일 값을 하나로 수렴 → 섹션 간 들쑥날쑥 완화 ── */
.posit p,.philo p,.closing p,.pw-plain,.promise .pw,.tldr-a,.quote-note,.menu-all,
.faq .faq-a,.faq .fa,.info-card p,.sol-item .sd,.rv-body,.readcard .rans,.hero-kinds{line-height:1.8}
header.hero p{line-height:1.74}

/* ── 버튼 그룹 간격 미세 통일(8~12px 난립 → 9~10px) ── */
.sitenav{gap:9px}
.hero-ctas{gap:10px}
.stickycta .st-contact{gap:9px}

/* ── '문의상담/문자예약' 버튼 색: PC·모바일 모두 딥그린으로 통일(대표님 지시) ── */
.af-kakao.is-consult,.st-kakao.is-consult,.kakao-alt.is-consult,
.af-kakao.is-sms,.st-kakao.is-sms,.kakao-alt.is-sms{background:linear-gradient(150deg,#356b4a,#284d37)!important;color:#fff!important;box-shadow:0 6px 16px rgba(47,85,64,.26)!important}
