/* ============================================================
   AP CLEAN — 디자인 시스템 (블랙 + 메탈릭 골드 + 클린블루)
   설계 워크플로우 수렴 결과 기반. index/pay/admin 공유.
   ============================================================ */

/* ---------- 폰트 ---------- */
@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable.min.css');
@import url('https://fonts.googleapis.com/css2?family=Marcellus&display=swap');

:root{
  /* 블랙 베이스 엘리베이션 */
  --ink-900:#08080A; --ink-800:#0A0A0B; --ink-700:#101012;
  --ink-600:#141416; --ink-500:#1B1B1E; --line-800:#222226;

  /* 메탈릭 골드 */
  --gold-grad:linear-gradient(135deg,#BF953F 0%,#FCF6BA 22%,#B38728 48%,#FBF5B7 74%,#AA771C 100%);
  --gold-grad-line:linear-gradient(135deg,#C9A24B 0%,#F4E6A1 50%,#A9791C 100%);
  --gold:#C9A24B; --gold-dim:#8A7330; --gold-glow:rgba(201,162,75,.45);

  /* 텍스트 */
  --text:#E8E4DA; --text-hi:#F5F2EA; --sub:#9A958A; --muted:#6A675F;

  /* 클린블루 보조 */
  --clean:#BFE3E0; --clean-bright:#DFF4F2; --clean-glow:rgba(191,227,224,.30);

  /* 보더 */
  --border:rgba(201,162,75,.22); --border-hi:rgba(244,230,161,.55);
  --border-glass:rgba(232,228,218,.10);

  /* 상태 */
  --st-new:#C9A24B; --st-survey:#BFE3E0; --st-work:#E0A93C;
  --st-done:#7FB98E; --danger:#D9776B;

  /* 엘리베이션 */
  --elev-1:0 1px 0 rgba(255,255,255,.03) inset,0 8px 24px rgba(0,0,0,.45);
  --elev-2:0 1px 0 rgba(255,255,255,.05) inset,0 16px 48px rgba(0,0,0,.55);
  --elev-gold:0 0 0 1px var(--border-hi),0 8px 40px var(--gold-glow);
  --radius:18px; --radius-sm:12px; --radius-pill:999px;

  /* 타이포 스케일 */
  --fs-hero:clamp(40px,7vw,96px); --fs-h2:clamp(32px,4.5vw,64px);
  --fs-h3:clamp(22px,2.4vw,32px); --fs-lead:clamp(18px,1.6vw,24px);
  --fs-body:clamp(16px,1.2vw,20px); --fs-sm:clamp(13px,1vw,15px);
  --fs-price:clamp(28px,3.2vw,46px); --fs-kpi:clamp(32px,4vw,56px);

  --ff-sans:"Pretendard Variable","Pretendard",-apple-system,system-ui,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;
  --ff-serif:"Marcellus",ui-serif,Georgia,serif;
  --ease:cubic-bezier(.2,.7,.2,1);
  --pad-x:clamp(24px,6vw,120px);
  --sec-y:clamp(80px,12vh,160px);
}

/* ---------- 리셋 ---------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:var(--ff-sans); font-weight:400; font-size:var(--fs-body);
  line-height:1.7; color:var(--text); background:var(--ink-900);
  -webkit-font-smoothing:antialiased; overflow-x:hidden; position:relative;
  word-break:keep-all;
}
/* 전역 노이즈 텍스처 */
body::after{
  content:""; position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:.04; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
h1,h2,h3{font-weight:800;line-height:1.12;letter-spacing:-.015em;color:var(--text-hi);text-wrap:balance}
::selection{background:var(--gold);color:var(--ink-900)}

/* ---------- 레이아웃 ---------- */
.wrap{max-width:1280px;margin:0 auto;padding:0 var(--pad-x);position:relative;z-index:2}
.section{padding:var(--sec-y) 0;position:relative;overflow:hidden}
.section>.wrap{position:relative;z-index:2}
section[id],main[id]{scroll-margin-top:88px}

/* 패턴: 골드 헤어라인 그리드 (가시성 ↑ + 천천히 드리프트) */
.grid-pattern::before{
  content:"";position:absolute;inset:-2px;z-index:0;pointer-events:none;opacity:.13;
  background-image:linear-gradient(var(--gold) 1px,transparent 1px),linear-gradient(90deg,var(--gold) 1px,transparent 1px);
  background-size:clamp(46px,5vw,72px) clamp(46px,5vw,72px);
  -webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 0%,#000 25%,transparent 80%);
  mask-image:radial-gradient(ellipse 90% 70% at 50% 0%,#000 25%,transparent 80%);
  animation:gridDrift 28s linear infinite;
}
@keyframes gridDrift{to{background-position:clamp(46px,5vw,72px) clamp(46px,5vw,72px)}}

/* 패턴: 라디얼 글로우 (가시성 ↑ + 맥동/드리프트) */
.glow-pattern::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:1;
  background:radial-gradient(50% 45% at 78% 12%,var(--gold-glow),transparent 62%),
             radial-gradient(46% 40% at 14% 88%,var(--clean-glow),transparent 66%);
  animation:glowPulse 11s ease-in-out infinite;
}
@keyframes glowPulse{
  0%,100%{opacity:.75;transform:scale(1)}
  50%{opacity:1;transform:scale(1.08)}
}
.glow-clean::after{
  background:radial-gradient(52% 44% at 16% 82%,var(--clean-glow),transparent 64%),
             radial-gradient(42% 36% at 82% 16%,var(--gold-glow),transparent 62%);
}

/* 떠다니는 광원 오브 (배경 이펙트 — 가시성 살리기) */
.fx-orbs{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.fx-orbs span{position:absolute;border-radius:50%;filter:blur(60px);opacity:.5;mix-blend-mode:screen}
.fx-orbs span:nth-child(1){width:380px;height:380px;left:-6%;top:8%;background:radial-gradient(circle,var(--gold-glow),transparent 70%);animation:orbA 19s ease-in-out infinite}
.fx-orbs span:nth-child(2){width:300px;height:300px;right:-4%;top:40%;background:radial-gradient(circle,var(--clean-glow),transparent 70%);animation:orbB 23s ease-in-out infinite}
.fx-orbs span:nth-child(3){width:240px;height:240px;left:30%;bottom:-6%;background:radial-gradient(circle,var(--gold-glow),transparent 70%);animation:orbA 26s ease-in-out infinite reverse}
@keyframes orbA{0%,100%{transform:translate(0,0)}50%{transform:translate(60px,-40px)}}
@keyframes orbB{0%,100%{transform:translate(0,0)}50%{transform:translate(-50px,50px)}}

/* 워터마크 타이포 (가시성 ↑) */
.watermark{
  position:absolute;font-family:var(--ff-serif);font-size:clamp(80px,18vw,260px);
  -webkit-text-stroke:1px var(--gold);color:transparent;letter-spacing:.22em;
  transform:rotate(-4deg);white-space:nowrap;opacity:.1;z-index:0;pointer-events:none;user-select:none;
}

/* ---------- 공통 텍스트 유틸 ---------- */
.eyebrow{font-size:var(--fs-sm);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);display:inline-block;margin-bottom:18px}
.gold-text{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.serif{font-family:var(--ff-serif);font-variant-numeric:tabular-nums}
.sec-title{font-size:var(--fs-h2);font-weight:800;margin-bottom:20px}
.sec-lead{font-size:var(--fs-lead);color:var(--sub);max-width:62ch;margin-bottom:48px;font-weight:500;line-height:1.55}
.divider{height:1px;border:0;background:var(--gold-grad-line);opacity:.4;margin:0}

/* ---------- 버튼 ---------- */
.btn-primary{
  display:inline-flex;align-items:center;gap:10px;position:relative;overflow:hidden;
  font:600 var(--fs-body)/1 var(--ff-sans);letter-spacing:.02em;color:var(--ink-900);
  padding:.95em 1.8em;border-radius:var(--radius-pill);background:var(--gold-grad);border:0;
  box-shadow:0 6px 24px var(--gold-glow),0 1px 0 rgba(255,255,255,.4) inset;
  transition:transform .25s var(--ease),box-shadow .25s,filter .25s;
}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 36px var(--gold-glow);filter:brightness(1.06)}
.btn-primary:active{transform:translateY(0)}
.btn-primary::before{
  content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-18deg);transition:none;
}
.btn-primary:hover::before{animation:sweep .8s var(--ease)}
@keyframes sweep{to{left:130%}}

.btn-ghost{
  display:inline-flex;align-items:center;gap:8px;color:var(--text);background:transparent;
  border:1px solid var(--border);border-radius:var(--radius-pill);padding:.85em 1.6em;
  font:500 var(--fs-body)/1 var(--ff-sans);transition:.3s var(--ease);
}
.btn-ghost:hover{border-color:var(--border-hi);color:var(--text-hi);box-shadow:0 0 0 3px rgba(201,162,75,.08)}
.btn-link{color:var(--sub);border-bottom:1px solid var(--gold-dim);padding-bottom:2px;transition:.3s}
.btn-link:hover{color:var(--text-hi);border-color:var(--gold)}
.demo-pin{font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--clean);border:1px solid var(--clean);border-radius:6px;padding:2px 7px;margin-left:8px;vertical-align:middle}

/* ---------- 카드 ---------- */
.card{
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015)),var(--ink-700);
  border:1px solid var(--border-glass);border-radius:var(--radius);box-shadow:var(--elev-1);
  backdrop-filter:blur(12px) saturate(1.1);
  transition:transform .4s var(--ease),box-shadow .4s,border-color .4s;
}
.card:hover{transform:translateY(-6px);box-shadow:var(--elev-2);border-color:var(--border)}
.card--featured{border:1px solid transparent;border-image:var(--gold-grad-line) 1;box-shadow:var(--elev-gold)}

/* ---------- 헤더 ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:60;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px var(--pad-x);transition:.4s var(--ease);
}
.site-header.solid{background:rgba(8,8,10,.82);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line-800);padding:12px var(--pad-x)}
.site-header .logo img{height:34px;transition:.4s}
.site-header.solid .logo img{height:28px}
.header-cta{display:flex;align-items:center;gap:16px}
.header-tel{color:var(--text-hi);font-weight:600;font-family:var(--ff-serif);letter-spacing:.02em}
@media(max-width:560px){.header-tel{display:none}}

/* ---------- 우측 세로 버튼 바 (페이지 이동 네비) ---------- */
.railnav{position:fixed;right:clamp(14px,1.6vw,28px);top:50%;transform:translateY(-50%);z-index:50;display:flex;flex-direction:column;gap:9px}
.railnav a{
  display:flex;align-items:center;gap:10px;justify-content:flex-end;
  min-width:132px;padding:11px 16px;border-radius:var(--radius-pill);
  background:rgba(16,18,22,.55);border:1px solid var(--border-glass);
  backdrop-filter:blur(10px);
  font:600 13px/1 var(--ff-sans);letter-spacing:.04em;color:var(--sub);
  transition:.3s var(--ease);white-space:nowrap;
}
.railnav a .ic{width:17px;height:17px;flex:none;opacity:.7;transition:.3s}
.railnav a:hover{color:var(--text-hi);border-color:var(--border-hi);background:rgba(20,22,26,.8);transform:translateX(-4px);box-shadow:0 6px 20px rgba(0,0,0,.4)}
.railnav a:hover .ic{opacity:1}
.railnav a.active{
  color:var(--ink-900);background:var(--gold-grad);border-color:transparent;
  box-shadow:0 4px 18px var(--gold-glow);
}
.railnav a.active .ic{opacity:1;filter:brightness(0) saturate(0)}
.railnav .tel{
  margin-top:8px;background:transparent;border:1px solid transparent;border-image:var(--gold-grad-line) 1;
  color:var(--text-hi);font-family:var(--ff-serif);letter-spacing:.02em;justify-content:center;
}
.railnav .tel:hover{background:rgba(201,162,75,.1);transform:none}
@media(max-width:980px){.railnav{display:none}}

/* ---------- 모바일 FAB ---------- */
.fab-wrap{position:fixed;right:18px;bottom:20px;z-index:55;display:none;flex-direction:column-reverse;align-items:flex-end;gap:12px}
@media(max-width:900px){.fab-wrap{display:flex}}
.fab{width:56px;height:56px;border-radius:50%;background:var(--gold-grad);box-shadow:0 8px 28px var(--gold-glow);display:flex;align-items:center;justify-content:center;border:0;color:var(--ink-900);font-size:24px;transition:transform .3s var(--ease)}
.fab.open{transform:rotate(45deg)}
.fab-action{display:flex;align-items:center;gap:10px;background:var(--ink-600);border:1px solid var(--border);color:var(--text-hi);padding:11px 16px;border-radius:var(--radius-pill);box-shadow:var(--elev-1);opacity:0;transform:translateY(12px);pointer-events:none;transition:.3s var(--ease);font-weight:600;font-size:14px}
.fab-wrap.open .fab-action{opacity:1;transform:none;pointer-events:auto}
.fab-wrap.open .fab-action:nth-child(2){transition-delay:.05s}

/* ---------- 스크롤 reveal ---------- */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.07s}.reveal[data-d="2"]{transition-delay:.14s}
.reveal[data-d="3"]{transition-delay:.21s}.reveal[data-d="4"]{transition-delay:.28s}
.reveal[data-d="5"]{transition-delay:.35s}.reveal[data-d="6"]{transition-delay:.42s}

/* ---------- 토스트 ---------- */
.toast{position:fixed;left:50%;bottom:32px;transform:translateX(-50%) translateY(20px);z-index:200;background:var(--ink-600);border:1px solid var(--border-hi);color:var(--text-hi);padding:14px 26px;border-radius:var(--radius-pill);box-shadow:var(--elev-2);opacity:0;pointer-events:none;transition:.4s var(--ease);font-weight:600}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- 모션 가드 ---------- */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* ============================================================
   섹션별 스타일
   ============================================================ */

/* ---------- HERO ---------- */
.hero{min-height:100svh;display:flex;align-items:center;position:relative;padding-top:90px}
.hero-bg{position:absolute;inset:0;z-index:0;background:var(--ink-900) center/cover no-repeat}
.hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.9}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,10,.7) 0%,rgba(8,8,10,.45) 50%,rgba(8,8,10,.9) 100%)}
.hero .wrap{max-width:1280px}
.hero-inner{max-width:880px}
.hero h1{font-size:var(--fs-hero);font-weight:900;line-height:1.08;letter-spacing:-.02em;margin-bottom:26px}
.hero .lead{font-size:var(--fs-lead);color:var(--text);font-weight:500;line-height:1.55;margin-bottom:40px;max-width:60ch}
.hero .lead b{color:var(--gold);font-weight:700}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.hero-calli{display:block;max-width:min(560px,80vw);margin-bottom:8px}
.scroll-hint{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);color:var(--sub);font-size:12px;letter-spacing:.2em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:2}
.scroll-hint span{width:1px;height:40px;background:linear-gradient(var(--gold),transparent);animation:scrolldown 2s var(--ease) infinite}
@keyframes scrolldown{0%{opacity:0;transform:scaleY(.3)}50%{opacity:1}100%{opacity:0;transform:scaleY(1)}}

/* ---------- TRUST + 신뢰스트립 ---------- */
.tri-care{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:64px}
.tri-care .card{padding:38px 30px;text-align:center}
.tri-care .card .ic{width:64px;height:64px;margin:0 auto 18px}
.tri-care .card h3{font-size:var(--fs-h3);margin-bottom:10px}
.tri-care .card p{color:var(--sub);font-size:var(--fs-sm)}
.trust-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;padding:30px;border-radius:var(--radius);border:1px solid var(--border-glass);background:var(--ink-700)}
.trust-strip .ti{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.trust-strip .ti .ic{width:44px;height:44px}
.trust-strip .ti span{font-size:13px;color:var(--text);font-weight:500;line-height:1.4}
@media(max-width:900px){.tri-care{grid-template-columns:1fr;gap:18px}.trust-strip{grid-template-columns:repeat(2,1fr);gap:24px 16px}}

/* ---------- CARE (공정+업종) ---------- */
.steps{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-bottom:72px}
.step{position:relative;padding:30px 18px;border-radius:var(--radius-sm);border:1px solid var(--border-glass);background:var(--ink-700);text-align:center;transition:.4s var(--ease)}
.step:hover{border-color:var(--border);transform:translateY(-4px)}
.step .num{font-family:var(--ff-serif);font-size:38px;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1;margin-bottom:14px;display:block}
.step .ic{width:48px;height:48px;margin:0 auto 12px}
.step h4{font-size:15px;font-weight:700;color:var(--text-hi);margin-bottom:6px}
.step p{font-size:12px;color:var(--muted)}
@media(max-width:900px){.steps{grid-template-columns:repeat(2,1fr)}}

.ind-tabs{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:28px}
.ind-tab{display:flex;align-items:center;gap:10px;padding:12px 20px;border-radius:var(--radius-pill);border:1px solid var(--border-glass);background:var(--ink-700);color:var(--sub);font-weight:600;transition:.3s var(--ease)}
.ind-tab .ic{width:24px;height:24px}
.ind-tab.active{border-color:transparent;border-image:var(--gold-grad-line) 1;color:var(--text-hi);box-shadow:0 0 18px var(--gold-glow)}
.ind-panel{display:none;animation:fadeup .5s var(--ease)}
.ind-panel.active{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:center}
@keyframes fadeup{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.ind-panel .txt h3{font-size:var(--fs-h3);margin-bottom:14px}
.ind-panel .txt p{color:var(--sub);margin-bottom:20px}
.ind-panel .txt ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.ind-panel .txt li{display:flex;gap:10px;align-items:flex-start;color:var(--text);font-size:15px}
.ind-panel .txt li::before{content:"✓";color:var(--gold);font-weight:700;flex:none}
.ind-panel .img{border-radius:var(--radius);overflow:hidden;border:1px solid var(--border-glass);aspect-ratio:4/3;background:var(--ink-600)}
.ind-panel .img img{width:100%;height:100%;object-fit:cover}
@media(max-width:780px){.ind-panel.active{grid-template-columns:1fr}}

/* ---------- EQUIPMENT (KIRBY + 인증) ---------- */
.equip-hero{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;margin-bottom:64px}
.equip-hero .visual{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);aspect-ratio:1/1;background:var(--ink-600)}
.equip-hero .visual img{width:100%;height:100%;object-fit:cover}
.equip-hero .visual .badge{position:absolute;top:18px;left:18px;background:var(--ink-900);border:1px solid var(--gold);color:var(--gold);font-family:var(--ff-serif);letter-spacing:.1em;font-size:13px;padding:6px 14px;border-radius:var(--radius-pill)}
.equip-hero h3{font-size:clamp(26px,3vw,42px);margin-bottom:16px}
.equip-hero .desc{color:var(--sub);margin-bottom:28px}
.perf-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.perf{padding:20px;border-radius:var(--radius-sm);border:1px solid var(--border-glass);background:var(--ink-700)}
.perf .v{font-family:var(--ff-serif);font-size:var(--fs-price);background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1;font-variant-numeric:tabular-nums}
.perf .k{font-size:13px;color:var(--sub);margin-top:6px}
@media(max-width:780px){.equip-hero{grid-template-columns:1fr;gap:28px}}

.cert-head{text-align:center;margin-bottom:36px}
.cert-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.cert{border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-glass);background:#fff;transition:.4s var(--ease);position:relative}
.cert:hover{transform:translateY(-4px);box-shadow:var(--elev-gold);border-color:var(--gold)}
.cert img{width:100%;aspect-ratio:1/1.3;object-fit:cover;background:#fff}
.cert .cap{padding:10px;font-size:12px;color:var(--sub);text-align:center;background:var(--ink-700);font-weight:500}
.cert-note{text-align:center;color:var(--muted);font-size:13px;margin-top:24px}

/* ---------- PROOF (비포애프터 + 갤러리) ---------- */
.ba-slider{position:relative;max-width:880px;margin:0 auto 64px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);aspect-ratio:4/3;user-select:none;touch-action:none;background:var(--ink-600)}
.ba-slider img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba-after{clip-path:inset(0 0 0 50%)}
.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:var(--gold);box-shadow:0 0 16px var(--gold-glow);z-index:3;transform:translateX(-50%)}
.ba-handle .knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:var(--gold-grad);display:flex;align-items:center;justify-content:center;color:var(--ink-900);font-size:18px;box-shadow:0 4px 18px var(--gold-glow)}
.ba-label{position:absolute;top:14px;z-index:4;font-size:12px;font-weight:700;letter-spacing:.1em;padding:5px 12px;border-radius:var(--radius-pill);background:rgba(8,8,10,.7);border:1px solid var(--border)}
.ba-label.before{left:14px;color:var(--sub)}
.ba-label.after{right:14px;color:var(--clean)}
.ba-cap{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:4;font-size:13px;color:var(--text);background:rgba(8,8,10,.7);border:1px solid var(--border-glass);padding:6px 16px;border-radius:var(--radius-pill);white-space:nowrap}
.ba-thumbs{display:flex;gap:10px;justify-content:center;margin-bottom:64px;flex-wrap:wrap}
.ba-thumb{width:64px;height:48px;border-radius:8px;overflow:hidden;border:1px solid var(--border-glass);cursor:pointer;opacity:.5;transition:.3s}
.ba-thumb.active{opacity:1;border-color:var(--gold)}
.ba-thumb img{width:100%;height:100%;object-fit:cover}

.gallery{columns:4;column-gap:14px}
.gallery img{width:100%;margin-bottom:14px;border-radius:var(--radius-sm);border:1px solid var(--border-glass);cursor:zoom-in;transition:.3s var(--ease)}
.gallery img:hover{transform:scale(1.02);border-color:var(--gold)}
@media(max-width:1000px){.gallery{columns:3}}
@media(max-width:680px){.gallery{columns:2}}
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(8,8,10,.94);display:none;align-items:center;justify-content:center;padding:30px;cursor:zoom-out}
.lightbox.show{display:flex}
.lightbox img{max-width:92vw;max-height:88vh;border-radius:var(--radius);border:1px solid var(--border)}

/* ---------- PRICING ---------- */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:40px}
.plan{padding:40px 32px;position:relative;display:flex;flex-direction:column}
.plan .pic{width:56px;height:56px;margin-bottom:20px}
.plan .badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--gold-grad);color:var(--ink-900);font-size:12px;font-weight:700;letter-spacing:.08em;padding:5px 16px;border-radius:var(--radius-pill)}
.plan h3{font-size:var(--fs-h3);margin-bottom:6px}
.plan .for{color:var(--sub);font-size:14px;margin-bottom:22px}
.plan .price{font-family:var(--ff-serif);font-size:var(--fs-price);color:var(--text-hi);line-height:1.1;margin-bottom:6px;font-variant-numeric:tabular-nums}
.plan .price small{font-size:15px;color:var(--sub);font-family:var(--ff-sans)}
.plan .price-sub{font-size:13px;color:var(--muted);margin-bottom:26px}
.plan ul{list-style:none;display:flex;flex-direction:column;gap:12px;margin-bottom:30px;flex:1}
.plan li{display:flex;gap:10px;color:var(--text);font-size:14px}
.plan li::before{content:"✓";color:var(--gold);font-weight:700}
.plan .btn-ghost,.plan .btn-primary{width:100%;justify-content:center}
@media(max-width:900px){.plans{grid-template-columns:1fr}}

.range-toggle{text-align:center;margin-bottom:18px}
.range-table{max-width:760px;margin:0 auto;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border-glass);display:none}
.range-table.open{display:block}
.range-table table{width:100%;border-collapse:collapse}
.range-table th,.range-table td{padding:14px 18px;text-align:left;font-size:14px;border-bottom:1px solid var(--line-800)}
.range-table th{background:var(--ink-700);color:var(--gold);font-weight:600;letter-spacing:.04em}
.range-table td{color:var(--text)}
.range-table tr:last-child td{border-bottom:0}
.price-note{text-align:center;color:var(--sub);font-size:14px;margin-top:30px;max-width:70ch;margin-left:auto;margin-right:auto}
.pricing-cta{display:flex;gap:14px;justify-content:center;margin-top:30px;flex-wrap:wrap}

/* ---------- BOOKING / CALENDAR ---------- */
.cal-wrap{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:start}
@media(max-width:880px){.cal-wrap{grid-template-columns:1fr}}
.calendar{padding:28px;border-radius:var(--radius);border:1px solid var(--border-glass);background:var(--ink-700)}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.cal-head h3{font-size:20px;font-family:var(--ff-serif);letter-spacing:.02em}
.cal-nav{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text);font-size:18px;transition:.3s}
.cal-nav:hover{border-color:var(--gold);color:var(--gold)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-dow{text-align:center;font-size:12px;color:var(--muted);padding:8px 0;font-weight:600}
.cal-cell{aspect-ratio:1;border-radius:10px;border:1px solid transparent;background:var(--ink-600);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;transition:.2s var(--ease);font-size:14px;color:var(--text);position:relative}
.cal-cell:hover{border-color:var(--border);background:var(--ink-500)}
.cal-cell.empty{background:transparent;cursor:default}
.cal-cell.past{color:var(--muted);cursor:not-allowed;opacity:.4}
.cal-cell.today{box-shadow:0 0 0 1px var(--gold) inset}
.cal-cell.sel{border-color:transparent;border-image:var(--gold-grad-line) 1;box-shadow:0 0 16px var(--gold-glow);color:var(--text-hi);font-weight:700}
.cal-cell.weekend:not(.past){color:var(--clean)}
.cal-dots{display:flex;gap:3px;height:5px}
.cal-dots i{width:5px;height:5px;border-radius:50%;background:var(--gold)}
.cal-cell.full .cal-dots i{background:var(--danger)}

.day-panel{padding:28px;border-radius:var(--radius);border:1px solid var(--border-glass);background:var(--ink-700);min-height:300px}
.day-panel h3{font-size:20px;margin-bottom:6px}
.day-underline{height:2px;width:60px;background:var(--gold-grad);transform-origin:left;animation:slidein .4s var(--ease);margin-bottom:22px}
@keyframes slidein{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.slot{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--radius-sm);border:1px solid var(--border-glass);background:var(--ink-600);margin-bottom:10px}
.slot .time{font-family:var(--ff-serif);color:var(--gold);font-size:18px;min-width:54px}
.slot .info{flex:1}
.slot .info .co{font-weight:600;color:var(--text-hi);font-size:14px}
.slot .info .it{font-size:12px;color:var(--sub)}
.slot.free{justify-content:space-between;border-style:dashed;border-color:var(--border)}
.slot.free .booknow{font-size:12px;color:var(--gold);font-weight:600;background:none;border:1px solid var(--border);padding:6px 12px;border-radius:var(--radius-pill)}
.slot.free .booknow:hover{border-color:var(--gold)}
.badge-st{font-size:11px;font-weight:700;padding:3px 10px;border-radius:var(--radius-pill);letter-spacing:.04em}
.st-new{color:var(--st-new);border:1px solid var(--st-new)}
.st-survey{color:var(--st-survey);border:1px solid var(--st-survey)}
.st-work{color:var(--st-work);border:1px solid var(--st-work)}
.st-done{color:var(--st-done);border:1px solid var(--st-done)}

/* ---------- CONTACT ---------- */
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:start}
@media(max-width:880px){.contact-grid{grid-template-columns:1fr}}
.form-card{padding:40px;border-radius:var(--radius);border:1px solid var(--border-glass);background:var(--ink-700)}
.field{margin-bottom:18px}
.field label{display:block;font-size:13px;color:var(--sub);margin-bottom:8px;font-weight:600;letter-spacing:.04em}
.field input,.field select,.field textarea{width:100%;padding:13px 16px;border-radius:var(--radius-sm);border:1px solid var(--border-glass);background:var(--ink-500);color:var(--text-hi);font-family:inherit;font-size:15px;transition:.3s}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,75,.12)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.contact-side .promise{display:flex;gap:12px;align-items:flex-start;margin-bottom:22px}
.contact-side .promise .ic{width:40px;height:40px;flex:none;border-radius:10px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:20px}
.contact-side .promise b{color:var(--text-hi);display:block;margin-bottom:2px}
.contact-side .promise span{font-size:14px;color:var(--sub)}
.big-tel{font-family:var(--ff-serif);font-size:clamp(28px,4vw,42px);color:var(--text-hi);letter-spacing:.02em;margin:20px 0;display:block}

/* ---------- FOOTER ---------- */
.site-footer{padding:70px var(--pad-x) 40px;border-top:1px solid var(--line-800);position:relative;overflow:hidden}
.footer-inner{display:flex;justify-content:space-between;gap:30px;flex-wrap:wrap;position:relative;z-index:2}
.footer-inner img{height:36px;margin-bottom:16px}
.footer-inner .col p{color:var(--sub);font-size:14px;line-height:1.8}
.footer-inner .col a{color:var(--sub);transition:.3s}
.footer-inner .col a:hover{color:var(--gold)}
.footer-bottom{margin-top:40px;padding-top:24px;border-top:1px solid var(--line-800);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:13px;position:relative;z-index:2}

/* ---------- 캘리그라피 시그니처 ---------- */
.calli-sign{
  width:clamp(200px,28vw,340px);margin:0 auto 6px;
    /* 검정 배경 자연 블렌딩 */
  filter:drop-shadow(0 4px 24px var(--gold-glow));
}

/* ============================================================
   멀티페이지 공통 네비 보강
   ============================================================ */
/* 헤더 가로 메뉴 (데스크탑) */
.topnav{display:flex;gap:6px;align-items:center}
.topnav a{padding:9px 15px;border-radius:var(--radius-pill);font-size:14px;font-weight:600;color:var(--sub);transition:.3s var(--ease);letter-spacing:.02em}
.topnav a:hover{color:var(--text-hi);background:rgba(255,255,255,.05)}
.topnav a.active{color:var(--gold);background:rgba(201,162,75,.1)}
@media(max-width:980px){.topnav{display:none}}
.site-header .logo img{height:40px;width:auto;transition:.4s}
.site-header.solid .logo img{height:34px}

/* 모바일 전체 메뉴 시트 */
.mobile-menu{position:fixed;inset:0;z-index:120;background:rgba(8,8,10,.7);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:.3s var(--ease)}
.mobile-menu.open{opacity:1;pointer-events:auto}
.mm-panel{position:absolute;right:0;top:0;bottom:0;width:min(320px,82vw);background:var(--ink-800);border-left:1px solid var(--border);padding:32px 26px;display:flex;flex-direction:column;gap:8px;transform:translateX(100%);transition:.35s var(--ease);box-shadow:-20px 0 60px rgba(0,0,0,.6)}
.mobile-menu.open .mm-panel{transform:none}
.mm-close{align-self:flex-end;background:none;border:0;color:var(--sub);font-size:22px;margin-bottom:8px}
.mm-logo{height:34px;width:auto;margin-bottom:24px;object-fit:contain;align-self:flex-start}
.mm-panel nav{display:flex;flex-direction:column;gap:2px}
.mm-panel nav a{padding:15px 16px;border-radius:var(--radius-sm);font-size:17px;font-weight:600;color:var(--text);transition:.25s;border:1px solid transparent}
.mm-panel nav a:hover{background:var(--ink-600)}
.mm-panel nav a.active{color:var(--gold);border-color:var(--border);background:rgba(201,162,75,.08)}
.mm-tel{margin-top:auto;padding:15px;text-align:center;border-radius:var(--radius-pill);border:1px solid transparent;border-image:var(--gold-grad-line) 1;color:var(--text-hi);font-family:var(--ff-serif);font-size:18px}

/* 푸터 보강 */
.site-footer .col h4{font-size:14px;color:var(--gold);margin-bottom:14px;letter-spacing:.06em;font-weight:700}
.site-footer .col a{display:inline-block;line-height:2}

/* 페이지 상단 여백(헤더 고정분) + 페이지 히어로 */
.page-top{padding-top:120px}
.page-hero{position:relative;padding:clamp(90px,14vh,170px) 0 clamp(50px,7vh,90px);overflow:hidden;text-align:center}
.page-hero h1{font-size:clamp(36px,6vw,76px);font-weight:900;line-height:1.1;letter-spacing:-.02em;margin-bottom:18px}
.page-hero .lead{font-size:var(--fs-lead);color:var(--sub);max-width:60ch;margin:0 auto;font-weight:500}
.page-hero .crumb{font-size:13px;letter-spacing:.12em;color:var(--gold);text-transform:uppercase;margin-bottom:20px;font-weight:600}

/* 우측 버튼바 자리 확보 (데스크탑 콘텐츠가 안 가리게) */
@media(min-width:981px){ body{padding-right:0} .section .wrap,.page-hero .wrap{padding-right:max(var(--pad-x),170px)} }

/* ============================================================
   전역 사이드/코너 배경 텍스처 (여백 채우기 — 채도 낮춤)
   ============================================================ */
.bg-ambient{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bg-ambient::before{
  /* 우상단 코너 글로우 텍스처 */
  content:"";position:absolute;top:-10%;right:-8%;width:48vw;height:60vh;
  background:url("../images/texture-corner-soft.png") center/cover no-repeat;
  opacity:.4;mix-blend-mode:screen;
  -webkit-mask-image:radial-gradient(ellipse at 70% 30%,#000,transparent 72%);
  mask-image:radial-gradient(ellipse at 70% 30%,#000,transparent 72%);
}
.bg-ambient::after{
  /* 좌측 세로 여백 텍스처 띠 */
  content:"";position:absolute;left:-6%;top:20%;width:30vw;height:70vh;
  background:url("../images/texture-side-soft.png") center/cover no-repeat;
  opacity:.32;mix-blend-mode:screen;
  -webkit-mask-image:radial-gradient(ellipse at 30% 50%,#000,transparent 70%);
  mask-image:radial-gradient(ellipse at 30% 50%,#000,transparent 70%);
}
@media(max-width:768px){.bg-ambient::before{width:80vw;height:40vh}.bg-ambient::after{display:none}}

/* 푸터: 우측 버튼바 안 가리게 패딩 + 페니페이지 크레딧 */
@media(min-width:981px){ .site-footer{padding-right:max(var(--pad-x),180px)} }
.footer-bottom .made-by a{color:var(--gold);font-weight:700;letter-spacing:.06em;transition:.3s}
.footer-bottom .made-by a:hover{color:var(--text-hi);text-decoration:underline}
/* 푸터 상담 컬럼이 버튼바에 안 가리도록 (모바일 외) */
@media(min-width:981px){ .site-footer .footer-inner{padding-right:20px} }

/* ============================================================
   세부페이지 보강 — 에이전트 생성 클래스 정의 (깨짐 복구)
   ============================================================ */
/* 공통: img.ic 기본 크기 (어디서든 폭발 방지) */
img.ic{width:22px;height:22px;flex:none;object-fit:contain}

/* 3분할 카드 그리드 */
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:8px 0 40px}
.cards-3 .card{padding:40px 30px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.cards-3 .card .ic{width:40px;height:40px;margin-bottom:10px}
.cards-3 .stat{font-size:clamp(36px,5vw,60px);font-weight:900;line-height:1;margin:4px 0}
.cards-3 .card p{color:var(--sub);font-size:15px}
@media(max-width:820px){.cards-3{grid-template-columns:1fr;gap:16px}}

/* 통계 숫자 */
.stat{font-family:var(--ff-serif);font-variant-numeric:tabular-nums}

/* 체크 리스트 (혜택/특징) */
.check-list{list-style:none;display:flex;flex-direction:column;gap:13px;margin:0}
.check-list li{display:flex;align-items:flex-start;gap:11px;color:var(--text);font-size:15px;line-height:1.5}
.check-list li .ic{width:20px;height:20px;margin-top:2px}

/* 장비 비주얼/정보 (equipment) */
.equip-visual{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);aspect-ratio:1/1;background:var(--ink-600)}
.equip-visual img{width:100%;height:100%;object-fit:cover}
.equip-visual .badge{position:absolute;top:18px;left:18px;background:var(--ink-900);border:1px solid var(--gold);color:var(--gold);font-family:var(--ff-serif);letter-spacing:.1em;font-size:13px;padding:6px 14px;border-radius:var(--radius-pill)}
.equip-info h3{font-size:var(--fs-h3);margin-bottom:16px}
.equip-info p{color:var(--sub);margin-bottom:28px;line-height:1.7}
.equip-info strong{color:var(--gold)}
.perf-label{font-size:13px;color:var(--sub);margin-top:6px;display:block}
.perf-label em{font-style:normal;color:var(--muted);font-size:11px}
.perf strong{font-family:var(--ff-serif);font-size:var(--fs-price);background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1}
.perf strong span{font-size:.5em}

/* 인증 리스트 (equipment) */
.cert-list{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:8px}
.cert-item{display:flex;align-items:flex-start;gap:14px;padding:20px 22px;border-radius:var(--radius-sm);border:1px solid var(--border-glass);background:var(--ink-700);transition:.3s var(--ease)}
.cert-item:hover{border-color:var(--border);transform:translateY(-3px)}
.cert-item .ic{width:24px;height:24px;margin-top:2px}
.cert-item strong{display:block;color:var(--text-hi);font-size:15px;margin-bottom:5px}
.cert-item span{color:var(--sub);font-size:13px;line-height:1.5}
@media(max-width:760px){.cert-list{grid-template-columns:1fr}}

/* 2단 그리드 */
.grid.cols-2{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
@media(max-width:820px){.grid.cols-2{grid-template-columns:1fr;gap:28px}}

/* CTA 행/밴드 */
.cta-row,.cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:36px}
.cta-band{padding:clamp(40px,6vh,72px) 0;text-align:center}
.cta-wrap{text-align:center}

/* 이모지 아이콘 (contact promise 등) */
.ic-emoji{font-size:22px;line-height:1;flex:none}

/* contact 페이지 보정 — promise 세로 스택 + 캘리 크기 */
.contact-side .promise{display:flex;flex-direction:column;gap:16px;margin-bottom:28px}
.contact-side .promise p{display:flex;align-items:flex-start;gap:10px;color:var(--sub);font-size:15px;line-height:1.55;margin:0}
.contact-side .promise strong{color:var(--text-hi)}
.contact-side .promise .ic-emoji{margin-top:1px}
.form-card .calli-sign{max-width:240px;margin:28px auto 4px;display:block;opacity:.95}

/* 습식추출 단면 원리도 (process) */
.cutaway{margin-top:56px;display:grid;grid-template-columns:1.5fr 1fr;gap:36px;align-items:center}
.cutaway img{width:100%;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--elev-2)}
.cutaway-cap .tag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.04em;padding:5px 13px;border-radius:var(--radius-pill);margin-bottom:8px;border:1px solid currentColor}
.cutaway-cap .tag-dirty{color:var(--muted)}
.cutaway-cap .tag-clean{color:var(--clean);margin-top:18px}
.cutaway-cap p{color:var(--sub);font-size:15px;line-height:1.6;margin:0}
@media(max-width:880px){.cutaway{grid-template-columns:1fr;gap:24px}}

/* ============================================================
   코덱스 교차검토 반영 — 반응형/중복 수정
   ============================================================ */
/* company 3대 케어가 4개일 때 */
.tri-care{grid-template-columns:repeat(3,1fr)}
.tri-care:has(.card:nth-child(4)){grid-template-columns:repeat(4,1fr)}
@media(max-width:1100px){.tri-care:has(.card:nth-child(4)){grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.tri-care,.tri-care:has(.card:nth-child(4)){grid-template-columns:1fr}}
/* 모바일 입력 2열→1열 */
@media(max-width:768px){.field-row{grid-template-columns:1fr}}
/* plan li 체크 중복 방지(img.ic 있으면 ::before 끔) */
.plan li:has(.ic)::before{content:none}
.plan li .ic{width:18px;height:18px;margin-top:2px}
.check-list li:has(.ic)::before{content:none}
/* ba-before 명시 */
.ba-before{clip-path:inset(0 0 0 0)}
