/* Re:Badge — docs/design/README.md 규칙 구현 */
:root{
  --paper:#F7F5F0; --ink:#1A1A18; --ink-soft:#55554F;
  --green:#1E6B4E; --green-deep:#144A36;
  --line:#DEDAD0; --badge-red:#C0392B;
  --radius:12px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Pretendard Variable",Pretendard,-apple-system,sans-serif;
  background:var(--paper); color:var(--ink);
  line-height:1.65; font-size:17px;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
.container{max-width:1080px;margin:0 auto;padding:0 24px}

h1,h2,h3{letter-spacing:-0.02em;line-height:1.25}
h1{font-size:clamp(34px,5vw,56px);font-weight:800}
h2{font-size:clamp(26px,3.4vw,38px);font-weight:700;margin-bottom:20px}
h3{font-size:20px;font-weight:700}
.eyebrow{
  font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:var(--green);margin-bottom:14px;
}
.section-lead{color:var(--ink-soft);max-width:640px;margin-bottom:8px}

/* 버튼 */
.btn{
  display:inline-block;border:0;cursor:pointer;text-decoration:none;
  font-family:inherit;font-size:16px;font-weight:600;
  padding:14px 26px;border-radius:10px;transition:background .15s,color .15s;
}
.btn-sm{padding:9px 18px;font-size:14px}
.btn-primary{background:var(--green);color:#fff}
.btn-primary:hover{background:var(--green-deep)}
.btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}
.btn-ghost:hover{box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn-light{background:#fff;color:var(--green)}
.btn-light:hover{background:var(--paper)}

/* 헤더 */
.site-header{
  position:sticky;top:0;z-index:50;
  background:rgba(247,245,240,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex;align-items:center;gap:32px;height:64px}
.logo{font-weight:800;font-size:20px;color:var(--ink);text-decoration:none;letter-spacing:-0.02em}
.logo-by{font-size:11px;font-weight:500;color:var(--ink-soft);margin-left:8px;letter-spacing:0}
.nav{display:flex;gap:24px;margin-left:auto}
.nav a{color:var(--ink-soft);text-decoration:none;font-size:15px;font-weight:500}
.nav a:hover{color:var(--ink)}
.lang-switch{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600}
.lang-switch a{color:var(--ink-soft);text-decoration:none}
.lang-switch a.active{color:var(--ink)}
.lang-switch a:hover{color:var(--ink)}
.lang-switch span{color:var(--line)}

/* 히어로 */
.hero{padding:96px 0 72px}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero .lead{font-size:19px;color:var(--ink-soft);margin:22px 0 30px;max-width:480px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-stats{
  list-style:none;display:flex;gap:36px;margin-top:44px;
  border-top:1px solid var(--line);padding-top:24px;flex-wrap:wrap;
}
.hero-stats strong{display:block;font-size:26px;font-weight:800}
.hero-stats span{font-size:13px;color:var(--ink-soft)}
.hero-visual img,.how-photos img,.device-photo img,.green-visual img{
  border-radius:var(--radius);border:1px solid var(--line);
  width:100%;object-fit:cover;background:#EDEAE2;
}
.hero-visual img{aspect-ratio:4/4.4}

/* 문제 제기 */
.problem{padding:110px 0;background:var(--ink);color:#F2F0EA}
.problem h2{color:#fff}
.problem .section-lead{color:#B9B7AE;max-width:680px}
.problem-turn{margin-top:28px;font-size:20px;font-weight:600}
.problem-turn em{font-style:normal;color:#7FCBA8}

/* 이용 방법 */
.how{padding:120px 0}
.steps{
  list-style:none;display:grid;grid-template-columns:repeat(4,1fr);
  gap:28px;margin:44px 0 52px;
}
.steps li{border-top:2px solid var(--ink);padding-top:18px}
.step-no{
  display:inline-flex;width:28px;height:28px;border-radius:50%;
  background:var(--green);color:#fff;font-size:14px;font-weight:700;
  align-items:center;justify-content:center;margin-bottom:12px;
}
.steps h3{font-size:17px;margin-bottom:8px}
.steps p{font-size:14.5px;color:var(--ink-soft)}
.how-photos{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.how-photos img{aspect-ratio:3/2}
.how-photos figcaption{font-size:13.5px;color:var(--ink-soft);margin-top:10px}

/* 라인업 */
.lineup{padding:110px 0;background:#FFFFFF;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.device{
  display:grid;grid-template-columns:0.9fr 1.1fr;gap:48px;
  padding:52px 0;border-bottom:1px solid var(--line);align-items:center;
}
.device:nth-of-type(even){grid-template-columns:1.1fr 0.9fr}
.device:nth-of-type(even) .device-photo{order:2}
.device-photo img{aspect-ratio:4/4.6}
.device-tag{
  display:inline-block;font-size:12.5px;font-weight:700;color:var(--green);
  border:1px solid var(--green);border-radius:99px;padding:3px 12px;margin-bottom:14px;
}
.device h3{font-size:26px;margin-bottom:12px}
.device h3 small{font-size:14px;font-weight:500;color:var(--ink-soft);margin-left:8px}
.device-info>p{color:var(--ink-soft);margin-bottom:16px}
.pros{list-style:none;margin-bottom:18px}
.pros li{
  padding-left:24px;position:relative;margin-bottom:8px;font-size:15.5px;
}
.pros li::before{
  content:"";position:absolute;left:2px;top:9px;width:10px;height:6px;
  border-left:2px solid var(--green);border-bottom:2px solid var(--green);
  transform:rotate(-45deg);
}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chips span{
  font-size:12.5px;font-weight:600;color:var(--ink-soft);
  background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:4px 10px;
}
.lineup-note{
  margin-top:64px;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--radius);padding:40px 44px;
}
.lineup-note h3{margin-bottom:10px}
.lineup-note p{color:var(--ink-soft);max-width:620px;margin-bottom:22px}

/* 지속가능성 */
.green{padding:120px 0}
.green-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:start}
.green-copy>p{color:var(--ink-soft);max-width:560px;margin-bottom:28px}
.compare{border-collapse:collapse;width:100%;font-size:15px;margin-bottom:26px}
.compare th,.compare td{padding:11px 14px;border-bottom:1px solid var(--line);text-align:left}
.compare thead th{font-size:13.5px;color:var(--ink-soft)}
.compare tbody th{font-weight:600;font-size:14.5px}
.compare td{color:var(--ink-soft)}
.compare .hl{color:var(--green);font-weight:700}
.compare thead .hl{font-size:14px}
.green-esg{font-size:15.5px;background:#EFF5F1;border-radius:10px;padding:18px 22px;max-width:560px}
.green-visual{position:sticky;top:96px}
.green-visual img{aspect-ratio:4/4.8}
.green-visual figcaption{font-size:13.5px;color:var(--ink-soft);margin-top:10px}

/* 어울리는 행사 */
.fit{padding:0 0 110px}
.fit-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:36px}
.fit-list li{background:#fff;padding:28px 32px;font-size:15.5px;color:var(--ink-soft)}
.fit-list strong{display:block;color:var(--ink);font-size:17px;margin-bottom:6px}

/* FAQ */
.faq{padding:0 0 110px}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-of-type{border-top:1px solid var(--line);margin-top:28px}
.faq summary{
  cursor:pointer;font-weight:600;font-size:17px;padding:20px 36px 20px 4px;
  list-style:none;position:relative;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";position:absolute;right:8px;top:50%;transform:translateY(-50%);
  font-size:22px;font-weight:400;color:var(--ink-soft);
}
.faq details[open] summary::after{content:"−"}
.faq details p{color:var(--ink-soft);padding:0 4px 22px;max-width:760px}

/* 최종 CTA */
.cta-final{background:var(--green);color:#fff;padding:96px 0;text-align:center}
.cta-final h2{color:#fff}
.cta-final p{color:#D4E6DC;margin-bottom:30px}

/* 푸터 */
.site-footer{padding:44px 0;font-size:14px;color:var(--ink-soft)}
.footer-link{color:var(--ink-soft);text-decoration:underline}
.footer-link:hover{color:var(--ink)}
.footer-copyright{margin-top:28px;padding-top:18px;border-top:1px solid var(--line);font-size:12.5px;color:var(--ink-soft)}
.footer-inner{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}

/* 챗봇 */
.chat-launcher{
  position:fixed;right:24px;bottom:24px;z-index:90;
  display:flex;align-items:center;gap:8px;
  background:var(--green);color:#fff;border:0;border-radius:99px;
  padding:14px 22px;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;
  box-shadow:0 6px 20px rgba(20,74,54,.28);
}
.chat-launcher:hover{background:var(--green-deep)}
.chat-panel[hidden]{display:none}
.chat-panel{
  position:fixed;right:24px;bottom:24px;z-index:100;
  width:380px;height:600px;max-height:calc(100vh - 48px);
  background:#fff;border:1px solid var(--line);border-radius:16px;
  display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 12px 40px rgba(26,26,24,.18);
}
.chat-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:16px 20px;background:var(--green);color:#fff;
}
.chat-head strong{display:block;font-size:16px}
.chat-sub{font-size:12.5px;color:#CFE5D9}
.chat-close{
  background:none;border:0;color:#fff;font-size:26px;cursor:pointer;line-height:1;
  padding:2px 6px;
}
.chat-body{flex:1;overflow-y:auto;padding:18px 16px;background:var(--paper)}
.msg{max-width:82%;padding:11px 14px;border-radius:14px;margin-bottom:10px;font-size:14.5px;white-space:pre-line}
.msg-bot{background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px}
.msg-user{background:var(--green);color:#fff;margin-left:auto;border-bottom-right-radius:4px}
.msg-typing{color:var(--ink-soft);font-size:13px;background:#fff;border:1px solid var(--line);width:fit-content;border-radius:14px;border-bottom-left-radius:4px;padding:10px 14px;margin-bottom:10px}
.chat-buttons{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 10px;background:var(--paper)}
.chat-buttons button{
  background:#fff;border:1.5px solid var(--green);color:var(--green);
  border-radius:99px;padding:7px 14px;font-size:13.5px;font-weight:600;
  font-family:inherit;cursor:pointer;
}
.chat-buttons button:hover{background:var(--green);color:#fff}
.chat-input{display:flex;gap:8px;padding:12px 14px;border-top:1px solid var(--line);background:#fff}
.chat-input input{
  flex:1;border:1px solid var(--line);border-radius:10px;padding:10px 14px;
  font-size:14.5px;font-family:inherit;outline:none;
}
.chat-input input:focus{border-color:var(--green)}
.chat-nudge{
  position:fixed;right:24px;bottom:84px;z-index:89;
  display:flex;align-items:flex-start;gap:2px;max-width:280px;
  background:#fff;border:1px solid var(--line);border-radius:14px;border-bottom-right-radius:4px;
  box-shadow:0 10px 30px rgba(26,26,24,.16);
  animation:nudge-in .35s ease-out;
}
.chat-nudge-text{
  background:none;border:0;cursor:pointer;font-family:inherit;text-align:left;
  padding:13px 4px 13px 16px;font-size:14px;font-weight:600;color:var(--ink);line-height:1.5;
}
.chat-nudge-text:hover{color:var(--green)}
.chat-nudge-close{
  background:none;border:0;cursor:pointer;color:var(--ink-soft);
  font-size:18px;line-height:1;padding:8px 10px 0 0;
}
.chat-nudge-close:hover{color:var(--ink)}
@keyframes nudge-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* 반응형 */
@media (max-width:900px){
  body{font-size:16px}
  .hero{padding:56px 0 48px}
  .hero-grid,.green-grid{grid-template-columns:1fr;gap:36px}
  .green-visual{position:static}
  .steps{grid-template-columns:1fr 1fr;gap:22px}
  .how-photos{grid-template-columns:1fr}
  .device,.device:nth-of-type(even){grid-template-columns:1fr;gap:24px;padding:40px 0}
  .device:nth-of-type(even) .device-photo{order:0}
  .device-photo img{aspect-ratio:4/3.4;object-position:50% 62%}
  .fit-list{grid-template-columns:1fr}
  .nav{display:none}
  .problem,.how,.lineup,.green{padding:72px 0}
  .fit,.faq{padding:0 0 72px}
  .hero-stats{gap:24px}
  .lineup-note{padding:28px 24px}
  .chat-panel{right:0;bottom:0;width:100%;height:100%;max-height:100vh;border-radius:0}
  .chat-nudge{right:16px;left:auto;bottom:80px;max-width:calc(100vw - 32px)}
}
