/* ==================== 기본 설정 ==================== */
:root{
  --gold: #c9a15a;
  --gold-light: #e6c78a;
  --dark: #0d0d0f;
  --dark-2: #17171b;
  --dark-3: #1f2025;
  --text-light: #f5f3ee;
  --text-muted: #b7b5b0;
  --radius: 14px;
  --font-serif: 'Noto Serif KR', serif;
  --font-sans: 'Noto Sans KR', sans-serif;
}
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  font-family: var(--font-sans);
  color:#222;
  background:#fff;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ text-decoration:none; color:inherit; }
ul{ list-style:none; }
h1,h2,h3{ font-family: var(--font-serif); letter-spacing:.3px; }

/* 스크롤바 & 선택 영역 (프리미엄 디테일) */
::selection{ background: var(--gold); color:#1a1a1a; }
html{ scrollbar-width: thin; scrollbar-color: var(--gold) #0d0d0f; }
::-webkit-scrollbar{ width:9px; }
::-webkit-scrollbar-track{ background:#0d0d0f; }
::-webkit-scrollbar-thumb{ background: linear-gradient(180deg, var(--gold-light), var(--gold)); border-radius:10px; }

.gold-text{ color: var(--gold); }
.section-inner{ max-width:1180px; margin:0 auto; padding: 90px 24px; }
.section-eyebrow{ letter-spacing:3px; font-weight:600; font-size:.8rem; color:var(--gold); margin-bottom:10px; display:inline-flex; align-items:center; gap:10px; }
.section-eyebrow::before{ content:''; display:inline-block; width:22px; height:1px; background: var(--gold); }
.section-eyebrow.center{ text-align:center; justify-content:center; width:100%; }
.section-title{ font-size:2.1rem; font-weight:700; margin-bottom:16px; position:relative; }
.section-title.center{ text-align:center; }
.section-title.light{ color:#fff; }
.section-title strong, .section-title .gold-text{ position:relative; }
.section-desc{ color:#666; max-width:640px; line-height:1.7; }
.section-desc.center{ margin:0 auto 50px; text-align:center; }
.section-desc.light-desc{ color:#cfcfd4; margin-bottom:30px; }

/* 섹션 구분 골드 디바이더 */
section{ position:relative; }
section + section::before{
  content:''; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:120px; height:1px; z-index:5;
  background: linear-gradient(90deg, transparent, rgba(201,161,90,.55), transparent);
}

/* 버튼 (샤인 스윕 효과 포함) */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 22px; border-radius: 50px; font-weight:600; font-size:.95rem;
  transition: all .25s ease; border:1.5px solid transparent; cursor:pointer;
  white-space:nowrap; position:relative; overflow:hidden; isolation:isolate;
}
.btn::after{
  content:''; position:absolute; top:0; left:-60%; width:40%; height:100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,.55), transparent);
  transform: skewX(-20deg); transition: left .55s ease; z-index:1; pointer-events:none;
}
.btn:hover::after{ left:130%; }
.btn-gold{ background: linear-gradient(135deg, var(--gold-light), var(--gold)); color:#1a1a1a; box-shadow:0 6px 18px rgba(201,161,90,.28); }
.btn-gold:hover{ filter:brightness(1.08); transform:translateY(-2px); box-shadow:0 12px 26px rgba(201,161,90,.4); }
.btn-outline{ border-color: var(--gold); color: var(--gold); }
.btn-outline:hover{ background: var(--gold); color:#1a1a1a; }
.btn-outline-white{ border-color: rgba(255,255,255,.7); color:#fff; }
.btn-outline-white:hover{ background:#fff; color:#1a1a1a; }
.btn-lg{ padding:16px 30px; font-size:1.05rem; }
.btn-block{ width:100%; justify-content:center; }

/* ==================== 로딩 화면 (프리미엄) ==================== */
#loading-screen{
  position:fixed; inset:0; z-index:9999;
  background: radial-gradient(circle at 50% 38%, #1c1c22, #050506 78%);
  display:flex; align-items:center; justify-content:center;
  transition: opacity .8s ease, visibility .8s ease;
  overflow:hidden;
}
#loading-screen.hide{ opacity:0; visibility:hidden; pointer-events:none; }

.loading-rays{
  position:absolute; inset:-20%; z-index:0;
  background: conic-gradient(from 0deg at 50% 50%, rgba(201,161,90,0) 0deg, rgba(201,161,90,.10) 8deg, rgba(201,161,90,0) 20deg, rgba(201,161,90,0) 160deg, rgba(201,161,90,.08) 172deg, rgba(201,161,90,0) 184deg, rgba(201,161,90,0) 340deg, rgba(201,161,90,.10) 352deg, rgba(201,161,90,0) 360deg);
  animation: rays-spin 18s linear infinite;
  opacity:.8;
}
@keyframes rays-spin{ from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }

.loading-particles{ position:absolute; inset:0; z-index:1; pointer-events:none; }
.loading-particles span{
  position:absolute; bottom:-10px; width:3px; height:3px; border-radius:50%;
  background: var(--gold-light); opacity:.7;
  animation: particle-rise linear infinite;
  box-shadow:0 0 6px rgba(230,199,138,.8);
}
@keyframes particle-rise{
  0%{ transform:translateY(0) scale(1); opacity:0; }
  10%{ opacity:.8; }
  90%{ opacity:.4; }
  100%{ transform:translateY(-100vh) scale(.4); opacity:0; }
}

.loading-inner{ position:relative; z-index:2; text-align:center; }

.loading-emblem{ position:relative; width:150px; height:150px; margin:0 auto 28px; display:flex; align-items:center; justify-content:center; }
.loading-ring{
  position:absolute; inset:0; border-radius:50%;
  border:1px solid rgba(201,161,90,.35);
}
.ring-outer{ animation: ring-rotate 6s linear infinite; border-top-color: var(--gold-light); border-right-color: var(--gold-light); }
.ring-inner{ inset:14px; border-style:dashed; animation: ring-rotate 9s linear infinite reverse; }
@keyframes ring-rotate{ from{ transform:rotate(0deg); } to{ transform:rotate(360deg); } }

.loading-logo{
  position:relative; width:96px; height:96px; object-fit:contain;
  animation: pulse-logo 2.2s infinite ease-in-out;
}
@keyframes pulse-logo{ 0%,100%{ transform:scale(1); filter:brightness(1); } 50%{ transform:scale(1.05); filter:brightness(1.08); } }

.loading-text{ display:flex; justify-content:center; gap:2px; margin-bottom:10px; }
.loading-text span{
  color:var(--gold-light); font-family:var(--font-serif); font-size:1.4rem; letter-spacing:2px;
  font-weight:600; opacity:0; transform:translateY(10px);
  animation: letter-in .6s ease forwards;
}
.loading-text span.sp{ width:10px; }
.loading-text span:nth-child(1){ animation-delay:.1s; }
.loading-text span:nth-child(2){ animation-delay:.2s; }
.loading-text span:nth-child(3){ animation-delay:.3s; }
.loading-text span:nth-child(4){ animation-delay:.4s; }
.loading-text span:nth-child(5){ animation-delay:.5s; }
.loading-text span:nth-child(6){ animation-delay:.6s; }
.loading-text span:nth-child(7){ animation-delay:.7s; }
@keyframes letter-in{ to{ opacity:1; transform:translateY(0); } }

.loading-caption{ color:rgba(230,199,138,.55); font-size:.72rem; letter-spacing:3px; margin-bottom:26px; text-transform:uppercase; }

.loading-bar{ width:220px; height:2px; background:rgba(255,255,255,.12); border-radius:4px; overflow:hidden; margin:0 auto; position:relative; }
.loading-bar span{
  display:block; height:100%; width:0%;
  background: linear-gradient(90deg, var(--gold), var(--gold-light), var(--gold));
  box-shadow:0 0 10px rgba(230,199,138,.6);
  animation: loadbar 3s cubic-bezier(.4,0,.2,1) forwards;
}
@keyframes loadbar{ from{ width:0%; } to{ width:100%; } }
.loading-percent{ margin-top:14px; color:rgba(230,199,138,.7); font-size:.75rem; letter-spacing:2px; font-family:var(--font-serif); }

/* ==================== 헤더 ==================== */
#site-header{
  position:fixed; top:0; left:0; right:0; z-index:500;
  background: rgba(10,10,12,0.0);
  transition: background .3s ease, box-shadow .3s ease;
}
#site-header.scrolled{
  background: rgba(10,10,12,.92);
  backdrop-filter: blur(10px);
  box-shadow:0 4px 20px rgba(0,0,0,.25);
  border-bottom:1px solid rgba(201,161,90,.18);
}
.header-inner{
  max-width:1240px; margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; justify-content:space-between; gap:20px;
}
.brand{ display:flex; align-items:center; gap:10px; }
.brand-logo{ width:42px; height:42px; object-fit:contain; background:none; }
.brand-text{ color:#fff; font-family:var(--font-serif); font-weight:600; font-size:1.15rem; }
.brand-text em{ color:var(--gold); font-style:normal; }
#main-nav{ display:flex; gap:28px; }
#main-nav a{ color:#eee; font-size:.95rem; font-weight:500; position:relative; padding:4px 0; }
#main-nav a::after{ content:''; position:absolute; left:0; bottom:-2px; width:0; height:2px; background:var(--gold); transition:width .25s ease; }
#main-nav a:hover::after{ width:100%; }
.header-cta{ display:flex; gap:10px; align-items:center; }
#nav-toggle{ display:none; background:none; border:none; color:#fff; font-size:1.4rem; cursor:pointer; }

.admin-key-btn{
  position:relative; width:42px; height:42px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: rgba(255,255,255,.06); border:1.5px solid rgba(201,161,90,.5); color: var(--gold-light);
  font-size:1.05rem; transition: all .25s ease;
}
.admin-key-btn:hover{ background: var(--gold); color:#1a1a1a; transform: rotate(-15deg) scale(1.05); }

@media (max-width: 960px){
  #main-nav{ position:fixed; top:70px; left:0; right:0; background:rgba(10,10,12,.97); flex-direction:column; padding:20px 24px; gap:16px; transform:translateY(-120%); opacity:0; transition:all .3s ease; }
  #main-nav.open{ transform:translateY(0); opacity:1; }
  .header-cta a.btn{ display:none; }
  .header-cta{ gap:8px; }
  #nav-toggle{ display:block; }
}

/* ==================== 히어로 ==================== */
#hero-section{
  position:relative; min-height:100vh; display:flex; align-items:center; justify-content:center;
  overflow:hidden; padding-top:90px;
}
.hero-bg{
  position:absolute; inset:0;
  background: url('../images/hero-bg.jpg') center/cover no-repeat;
  transform: scale(1.05);
}
.hero-overlay{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(10,10,14,.42), rgba(10,10,14,.58));
}
#bubble-canvas{ position:absolute; inset:0; width:100%; height:100%; }
.hero-content{ position:relative; z-index:2; text-align:center; max-width:820px; padding:0 24px; animation: hero-fade-up 1.1s ease .1s both; }
@keyframes hero-fade-up{ from{ opacity:0; transform:translateY(26px); } to{ opacity:1; transform:translateY(0); } }
.hero-eyebrow{ color:var(--gold-light); letter-spacing:3px; font-weight:600; margin-bottom:18px; font-size:.9rem; text-shadow:0 2px 12px rgba(0,0,0,.6); }
.hero-title{ color:#fff; font-size: clamp(2rem, 5vw, 3.4rem); font-weight:700; line-height:1.35; margin-bottom:22px; text-shadow:0 3px 18px rgba(0,0,0,.55); }
.hero-sub{ color:#f1efe9; font-size:1.05rem; line-height:1.8; margin-bottom:36px; text-shadow:0 2px 10px rgba(0,0,0,.55); }
.hero-buttons{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.scroll-indicator{ position:absolute; bottom:70px; left:50%; transform:translateX(-50%); color:var(--gold-light); animation: bounce 2s infinite; z-index:2; font-size:1.1rem; opacity:.85; }
@keyframes bounce{ 0%,100%{ transform:translate(-50%,0); } 50%{ transform:translate(-50%,10px); } }

/* 히어로 비네트 (프리미엄 톤) */
#hero-section::after{
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background: radial-gradient(ellipse at center, transparent 45%, rgba(0,0,0,.38) 100%);
}

/* 팀 강조 애니메이션 */
.team-emphasis{
  display:inline-block; position:relative; color: var(--gold-light);
  font-weight:900; padding:0 6px;
  background: linear-gradient(90deg, var(--gold), var(--gold-light), var(--gold));
  background-size:200% auto;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
  animation: team-shine 2.4s linear infinite, team-pop 1.6s ease-in-out infinite;
}
@keyframes team-shine{ 0%{ background-position:0% center; } 100%{ background-position:200% center; } }
@keyframes team-pop{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.08); } }

/* ==================== 마퀴 (히어로 하단) ==================== */
.marquee-bar{
  position:absolute; left:0; right:0; bottom:0; z-index:3;
  background: linear-gradient(90deg, rgba(16,16,20,.85), rgba(28,26,18,.85), rgba(16,16,20,.85));
  border-top:1px solid rgba(201,161,90,.35); border-bottom:1px solid rgba(201,161,90,.15);
  overflow:hidden; white-space:nowrap; padding:10px 0;
  backdrop-filter: blur(2px);
}
.marquee-track{ display:inline-flex; gap:50px; animation: marquee 26s linear infinite; }
.marquee-track span{ color: var(--gold-light); font-size:.85rem; letter-spacing:.5px; font-weight:500; }
@keyframes marquee{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ==================== ABOUT ==================== */
#about-section{ background:#fff; }
.about-grid{ display:grid; grid-template-columns: 380px 1fr; gap:60px; align-items:center; }
.about-image{ position:relative; }
.about-image img{ border-radius: var(--radius); box-shadow:0 20px 50px rgba(0,0,0,.18); width:100%; object-fit:cover; transition: transform .4s ease; }
.about-image:hover img{ transform: translateY(-4px); }
.about-badge{
  position:absolute; bottom:-20px; right:-20px; background:linear-gradient(135deg,var(--gold-light),var(--gold));
  color:#1a1a1a; border-radius:12px; padding:14px 20px; text-align:center; box-shadow:0 10px 24px rgba(201,161,90,.4);
}
.about-badge span{ display:block; font-size:1.5rem; font-weight:800; font-family:var(--font-serif); }
.about-badge small{ font-size:.7rem; letter-spacing:1px; }
.specialist-ribbon{
  position:absolute; top:18px; left:-8px; background: linear-gradient(135deg,#1a1a1a,#333);
  color: var(--gold-light); font-size:.78rem; font-weight:700; padding:8px 16px 8px 20px;
  border-radius:0 20px 20px 0; box-shadow:0 8px 16px rgba(0,0,0,.25); display:flex; align-items:center; gap:6px;
}
.specialist-ribbon::before{
  content:''; position:absolute; left:0; bottom:-8px; width:0; height:0;
  border-left:8px solid transparent; border-top:8px solid #0d0d0d;
}
.about-desc{ color:#555; line-height:1.9; margin-bottom:22px; }
.about-list{ margin-bottom:26px; }
.about-list li{ display:flex; align-items:center; gap:10px; margin-bottom:12px; color:#333; font-weight:500; }
.about-list i{ color:var(--gold); }
.blog-link{ color:var(--gold); font-weight:600; display:inline-flex; align-items:center; gap:8px; }
.blog-link i:last-child{ transition:transform .2s; }
.blog-link:hover i:last-child{ transform:translateX(4px); }

@media (max-width: 860px){
  .about-grid{ grid-template-columns:1fr; }
  .about-image{ max-width:320px; margin:0 auto; }
}

/* ==================== SERVICES ==================== */
#services-section{ background:#f7f5f0; }
.service-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:28px; }
.service-card{
  background:#fff; padding:36px 28px; border-radius: var(--radius); text-align:center;
  box-shadow:0 8px 30px rgba(0,0,0,.05); transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
  border: 1px solid #eee;
}
.service-card:hover{ transform:translateY(-10px); box-shadow:0 24px 48px rgba(0,0,0,.12); border-color: var(--gold); }
.service-icon{
  width:64px; height:64px; border-radius:50%; margin:0 auto 18px;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg, #1a1a1a, #333); color: var(--gold-light); font-size:1.5rem;
  box-shadow:0 8px 20px rgba(0,0,0,.18); transition: transform .35s ease;
}
.service-card:hover .service-icon{ transform: scale(1.08) rotate(-4deg); }
.service-card h3{ font-size:1.2rem; margin-bottom:10px; }
.service-card p{ color:#666; font-size:.92rem; line-height:1.7; }

@media (max-width:860px){ .service-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width:560px){ .service-grid{ grid-template-columns: 1fr; } }

/* ==================== STRENGTHS ==================== */
#strengths-section{ background: linear-gradient(160deg, #0d0d0f, #1a1a1e); }
.strength-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:24px; }
.strength-card{
  background: rgba(255,255,255,.04); border:1px solid rgba(201,161,90,.2); border-radius: var(--radius);
  padding:32px 24px; transition: all .35s ease; position:relative; overflow:hidden;
}
.strength-card::before{
  content:''; position:absolute; top:-40%; left:-40%; width:60%; height:180%;
  background: linear-gradient(120deg, transparent, rgba(201,161,90,.12), transparent);
  transform: rotate(20deg) translateX(-120%); transition: transform .7s ease;
}
.strength-card:hover::before{ transform: rotate(20deg) translateX(220%); }
.strength-card:hover{ background: rgba(201,161,90,.08); transform:translateY(-8px); border-color: rgba(201,161,90,.45); box-shadow:0 20px 40px rgba(0,0,0,.25); }
.strength-num{ font-family:var(--font-serif); font-size:2.2rem; font-weight:800; color: var(--gold); opacity:.6; }
.strength-card h3{ color:#fff; font-size:1.1rem; margin:14px 0 10px; }
.strength-card p{ color:#b7b5b0; font-size:.9rem; line-height:1.7; }

@media (max-width:960px){ .strength-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width:560px){ .strength-grid{ grid-template-columns: 1fr; } }

/* ==================== PRICING ==================== */
#pricing-section{ background:#fff; }
.price-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:28px; }
.price-card{
  border:1.5px solid #e8e4da; border-radius: var(--radius); padding:36px 28px; position:relative;
  transition: all .35s ease; background:#fff;
}
.price-card:hover{ box-shadow:0 24px 48px rgba(0,0,0,.1); transform:translateY(-6px); border-color: var(--gold); }
.price-card.featured{ border-color: var(--gold); background: linear-gradient(160deg, #fffdf7, #fbf3e2); box-shadow:0 16px 40px rgba(201,161,90,.18); }
.price-badge{ position:absolute; top:-14px; left:50%; transform:translateX(-50%); background:var(--gold); color:#1a1a1a; font-size:.75rem; font-weight:700; padding:5px 16px; border-radius:20px; }
.price-card h3{ font-size:1.15rem; margin-bottom:16px; display:flex; align-items:center; gap:8px; color:#222; }
.price-card h3 i{ color:var(--gold); }
.price-amount{ font-size:2.2rem; font-weight:800; margin-bottom:6px; color:#1a1a1a; }
.price-amount span{ font-size:1rem; font-weight:500; margin-left:4px; color:#888; }
.price-note{ color:#999; font-size:.82rem; margin-bottom:20px; }
.price-card ul li{ padding:8px 0; border-top:1px dashed #e2ddd0; color:#555; font-size:.9rem; }
.price-card ul li:first-child{ border-top:none; }
.price-service-desc{ color:#666; font-size:.9rem; line-height:1.7; margin-bottom:20px; }
.price-footnote{ text-align:center; color:#999; font-size:.82rem; margin-top:30px; }

@media (max-width:960px){ .price-grid{ grid-template-columns:1fr; } }

/* ==================== 사진 배경 섹션 (인증/집중분야/프로세스) ==================== */
.section-photo-bg{ position:relative; overflow:hidden; background:#0d0d0f; }
.section-photo-bg .bg-image{
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:.55; filter:saturate(0.95) brightness(0.95);
  z-index:0;
}
.section-photo-bg.bg-courtroom .bg-image{ background-image:url('../images/bg-courtroom.jpg'); }
.section-photo-bg.bg-handshake .bg-image{ background-image:url('../images/bg-handshake.jpg'); }
.section-photo-bg.bg-consultroom .bg-image{ background-image:url('../images/bg-consultroom.jpg'); }
.section-photo-bg .bg-overlay{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(160deg, rgba(10,10,12,.62), rgba(15,14,10,.58));
}
.section-photo-bg .section-inner{ position:relative; z-index:2; }

/* 떠다니는 네온 원 애니메이션 (배경 이미지 섹션 전용, 히어로 제외) */
.floating-orbs{ position:absolute; inset:0; z-index:1; overflow:hidden; pointer-events:none; }
.floating-orbs .orb{
  position:absolute; border-radius:50%;
  background: radial-gradient(circle at 35% 32%, rgba(255,255,255,.95), rgba(255,255,255,.35) 55%, rgba(255,255,255,0) 78%);
  filter: blur(1px);
  box-shadow: 0 0 18px 4px rgba(255,255,255,.35), 0 0 40px 10px rgba(255,255,255,.12);
  opacity:.55;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}
.orb-1{ width:22px; height:22px; left:6%;  top:70%; animation-name: orb-float-a; animation-duration:14s;  animation-delay:0s; }
.orb-2{ width:44px; height:44px; left:16%; top:20%; animation-name: orb-float-b; animation-duration:18s;  animation-delay:1.2s; }
.orb-3{ width:14px; height:14px; left:28%; top:78%; animation-name: orb-float-c; animation-duration:11s; animation-delay:.6s; }
.orb-4{ width:60px; height:60px; left:42%; top:14%; animation-name: orb-float-a; animation-duration:22s; animation-delay:2.2s; }
.orb-5{ width:30px; height:30px; left:58%; top:62%; animation-name: orb-float-b; animation-duration:16s;  animation-delay:.8s; }
.orb-6{ width:18px; height:18px; left:72%; top:26%; animation-name: orb-float-c; animation-duration:13s; animation-delay:1.8s; }
.orb-7{ width:50px; height:50px; left:84%; top:70%; animation-name: orb-float-a; animation-duration:20s; animation-delay:.3s; }
.orb-8{ width:26px; height:26px; left:92%; top:22%; animation-name: orb-float-b; animation-duration:15s; animation-delay:2.6s; }

@keyframes orb-float-a{
  0%{   transform: translate(0,0) scale(1); }
  20%{  transform: translate(40px,-60px) scale(1.15); }
  45%{  transform: translate(-30px,-100px) scale(.88); }
  70%{  transform: translate(-55px,-40px) scale(1.1); }
  100%{ transform: translate(0,0) scale(1); }
}
@keyframes orb-float-b{
  0%{   transform: translate(0,0) scale(1); }
  25%{  transform: translate(-45px,-50px) scale(.9); }
  55%{  transform: translate(35px,-90px) scale(1.18); }
  80%{  transform: translate(50px,-20px) scale(.95); }
  100%{ transform: translate(0,0) scale(1); }
}
@keyframes orb-float-c{
  0%{   transform: translate(0,0) scale(1); }
  30%{  transform: translate(30px,-70px) scale(1.2); }
  60%{  transform: translate(-40px,-110px) scale(.85); }
  100%{ transform: translate(0,0) scale(1); }
}

@media (max-width:700px){
  .orb-4, .orb-7{ display:none; }
}

/* 전문분야 인증서 섹션 */
.cert-grid{ display:grid; grid-template-columns: 1fr 360px; gap:60px; align-items:center; }
.cert-list{ margin-top:24px; }
.cert-list li{ display:flex; align-items:center; gap:10px; margin-bottom:14px; color:#e8e6e0; font-weight:500; }
.cert-list i{ color:var(--gold); width:20px; }
.cert-image-wrap{ position:relative; }
.cert-image{
  width:100%; border-radius: var(--radius); border:3px solid rgba(201,161,90,.4);
  box-shadow:0 25px 60px rgba(0,0,0,.5); transition: transform .4s ease, box-shadow .4s ease;
}
.cert-image-wrap:hover .cert-image{ transform:translateY(-6px) scale(1.01); box-shadow:0 35px 70px rgba(0,0,0,.6), 0 0 0 1px rgba(201,161,90,.3); }
.cert-badge{
  position:absolute; bottom:-16px; left:50%; transform:translateX(-50%); white-space:nowrap;
  background: linear-gradient(135deg,var(--gold-light),var(--gold)); color:#1a1a1a; font-size:.8rem; font-weight:700;
  padding:8px 20px; border-radius:20px; box-shadow:0 10px 20px rgba(201,161,90,.4);
}

@media (max-width:860px){
  .cert-grid{ grid-template-columns:1fr; }
  .cert-image-wrap{ max-width:340px; margin:20px auto 0; }
}

/* 형사법 집중 대응 분야 */
.focus-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:22px; }
.focus-card{
  background: rgba(255,255,255,.05); border:1px solid rgba(201,161,90,.25); border-radius: var(--radius);
  padding:32px 20px; text-align:center; transition: all .35s ease; backdrop-filter: blur(2px);
}
.focus-card:hover{ background: rgba(201,161,90,.14); transform:translateY(-8px); border-color: rgba(201,161,90,.55); box-shadow:0 18px 36px rgba(0,0,0,.3); }
.focus-card i{ font-size:1.8rem; color: var(--gold-light); margin-bottom:14px; display:block; transition: transform .35s ease; }
.focus-card:hover i{ transform: scale(1.15); }
.focus-card h3{ color:#fff; font-size:1.02rem; font-weight:600; }

@media (max-width:860px){ .focus-grid{ grid-template-columns: 1fr 1fr; } }
@media (max-width:520px){ .focus-grid{ grid-template-columns: 1fr; } }

/* 상담 프로세스 타임라인 */
.process-timeline{ display:grid; grid-template-columns: repeat(4, 1fr); gap:24px; position:relative; }
.timeline-step{
  background: rgba(255,255,255,.04); border:1px solid rgba(201,161,90,.2); border-radius: var(--radius);
  padding:30px 22px; position:relative; transition: all .35s ease;
}
.timeline-step:hover{ background: rgba(201,161,90,.09); transform:translateY(-6px); border-color: rgba(201,161,90,.5); box-shadow:0 18px 36px rgba(0,0,0,.3); }
.timeline-step:not(:last-child)::after{
  content:''; position:absolute; top:50%; right:-13px; width:0; height:0;
  border-top:6px solid transparent; border-bottom:6px solid transparent; border-left:8px solid rgba(201,161,90,.35);
  display:none;
}
@media (min-width:961px){ .timeline-step:not(:last-child)::after{ display:block; } }
.timeline-num{ font-family:var(--font-serif); font-size:2rem; font-weight:800; color: var(--gold); opacity:.7; }
.timeline-step h3{ color:#fff; font-size:1.05rem; margin:14px 0 10px; }
.timeline-step p{ color:#b7b5b0; font-size:.88rem; line-height:1.7; }

@media (max-width:960px){ .process-timeline{ grid-template-columns: 1fr 1fr; } }
@media (max-width:560px){ .process-timeline{ grid-template-columns: 1fr; } }

/* ==================== LOCATION / CONTACT ==================== */
#location-section{ background: linear-gradient(160deg, #111114, #0a0a0c); }
.contact-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:60px; }
.map-frame{ border-radius: var(--radius); overflow:hidden; margin-bottom:16px; filter:grayscale(0.1) contrast(1.05); }
.kakao-link{
  display:inline-flex; align-items:center; gap:8px; color:var(--gold-light); font-weight:600;
  margin-bottom:24px; border:1px solid rgba(201,161,90,.4); padding:10px 18px; border-radius:50px;
}
.kakao-link:hover{ background: rgba(201,161,90,.1); }
.location-info li{ color:#cfcfd4; margin-bottom:12px; display:flex; gap:10px; align-items:flex-start; font-size:.92rem; line-height:1.6; }
.location-info i{ color:var(--gold); margin-top:3px; }
.location-info a{ color:#e6c78a; }

.contact-form-wrap{ background: rgba(255,255,255,.03); border:1px solid rgba(201,161,90,.2); border-radius: var(--radius); padding:36px; }
.form-row{ margin-bottom:18px; }
.form-row label{ display:block; color:#e6e4de; font-size:.9rem; font-weight:600; margin-bottom:8px; }
.form-row label span{ color:var(--gold); }
.form-row input, .form-row select, .form-row textarea{
  width:100%; padding:12px 14px; border-radius:8px; border:1px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.05); color:#fff; font-family:var(--font-sans); font-size:.95rem;
}
.form-row input:focus, .form-row select:focus, .form-row textarea:focus{ outline:none; border-color: var(--gold); }
.form-row textarea{ resize:vertical; }
#form-status{ margin-top:14px; text-align:center; font-size:.9rem; min-height:20px; color: var(--gold-light); }

@media (max-width:960px){ .contact-grid{ grid-template-columns:1fr; } }

/* ==================== FOOTER ==================== */
#site-footer{ background:#0a0a0c; padding:40px 24px; }
.footer-inner{ max-width:1180px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; gap:20px; flex-wrap:wrap; border-top:1px solid rgba(255,255,255,.08); padding-top:30px; }
.footer-brand{ display:flex; align-items:center; gap:12px; }
.footer-brand img{ width:40px; height:40px; border-radius:8px; }
.footer-brand p{ color:#ccc; font-size:.85rem; line-height:1.4; }
.footer-info p{ color:#888; font-size:.8rem; margin-bottom:4px; text-align:right; }

@media (max-width:700px){
  .footer-inner{ flex-direction:column; text-align:center; }
  .footer-info p{ text-align:center; }
}

/* ==================== 플로팅 버튼 ==================== */
.floating-actions{
  position:fixed; right:24px; bottom:28px; z-index:600;
  display:flex; flex-direction:column; gap:14px;
}
.fab{
  width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:1.3rem; color:#fff; box-shadow:0 8px 20px rgba(0,0,0,.3); position:relative;
  transition: transform .25s ease, box-shadow .25s ease;
}
.fab:hover{ transform: scale(1.1); box-shadow:0 12px 26px rgba(0,0,0,.4); }
.fab-chat{ animation: fab-glow 2.6s ease-in-out infinite; }
@keyframes fab-glow{ 0%,100%{ box-shadow:0 8px 20px rgba(201,161,90,.35); } 50%{ box-shadow:0 8px 28px rgba(201,161,90,.65); } }
.fab-call{ background:#2f9e44; }
.fab-chat{ background: linear-gradient(135deg, var(--gold-light), var(--gold)); color:#1a1a1a; }
.status-dot{
  position:absolute; top:-3px; right:-3px; width:13px; height:13px; border-radius:50%;
  background:#2f9e44; border:2px solid #0a0a0c; transition: background .3s ease;
}
.status-dot.alert{ background:#e03131; animation: blink 1s infinite; }
@keyframes blink{ 0%,100%{ opacity:1; } 50%{ opacity:.4; } }

/* Fade in on scroll */
.reveal{ opacity:0; transform:translateY(24px); transition: all .7s ease; }
.reveal.in-view{ opacity:1; transform:translateY(0); }
