/* ── VAMOS 차량진입로공사업체 — style.css ─────────────────── */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;700&family=Manrope:wght@600;700;800&display=swap');

/* ── CSS 변수 ────────────────────────────────────────────── */
:root {
  --primary:       #FFFFFF;
  --primary-dark:  #E0E0DC;
  --primary-light: #FFFFFF;
  --secondary:     #3D4652;
  --accent:        #4E7B8A;
  --accent-dark:   #376070;
  --accent-light:  #6A9BAA;
  --bg-cream:      #F1F0EC;
  --bg-sand:       #E5E3DC;
  --bg-beige:      #D8D5CD;
  --text-dark:     #2A3038;
  --text-body:     #3A4048;
  --text-light:    #60676F;
  --border:        rgba(0,0,0,.08);
  --radius:        0px;
  --shadow-sm:     0 2px 8px rgba(0,0,0,.05);
  --shadow:        0 4px 24px rgba(0,0,0,.06);
  --shadow-lg:     0 8px 40px rgba(0,0,0,.10);
  --transition:    all .35s cubic-bezier(.4,0,.2,1);
  --font-display:  'Manrope', sans-serif;
  --header-h:      64px;
}

/* ── 리셋 & 기본 ─────────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body {
  font-family:'Noto Sans KR',sans-serif;
  font-size:16px;
  line-height:1.75;
  color:var(--text-body);
  background:#fff;
  overflow-x:hidden;
}
img { display:block; max-width:100%; height:auto; }
a { color:inherit; text-decoration:none; }
ul,ol { list-style:none; }
address { font-style:normal; }
button { cursor:pointer; border:none; background:none; font:inherit; }

/* ── 타이포그래피 ─────────────────────────────────────────── */
h1,h2,h3,h4,h5 {
  font-family:var(--font-display);
  font-weight:700;
  line-height:1.3;
  color:var(--text-dark);
}
h1 { font-size:clamp(1.8rem,4vw,2.8rem); }
h2 { font-size:clamp(1.5rem,3vw,2.2rem); }
h3 { font-size:clamp(1.2rem,2.5vw,1.6rem); }
h4 { font-size:clamp(1rem,2vw,1.2rem); }
p  { font-size:clamp(0.95rem,1.5vw,1rem); }

/* ── 공용 레이아웃 ───────────────────────────────────────── */
.container {
  max-width:1160px;
  margin:0 auto;
  padding:0 24px;
}
.section {
  padding:clamp(60px,8vw,100px) 0;
}
.section-header {
  text-align:center;
  margin-bottom:clamp(36px,5vw,56px);
}
.section-header h2 { margin-bottom:.5rem; }
.section-header p  { color:var(--text-light); max-width:560px; margin:0 auto; }

/* ── .kicker (eyebrow 라벨) ─────────────────────────────── */
.kicker {
  display:inline-block;
  font-family:var(--font-display);
  font-size:.7rem;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent);
  border-left:3px solid var(--accent);
  padding-left:.6em;
  margin-bottom:.8rem;
}

/* ── 버튼 ────────────────────────────────────────────────── */
.btn-primary {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  background:var(--accent);
  color:#fff;
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(.9rem,1.5vw,1rem);
  padding:.85em 2em;
  min-height:44px;
  border:2px solid var(--accent);
  transition:var(--transition);
}
.btn-primary:hover {
  background:var(--accent-dark);
  border-color:var(--accent-dark);
  transform:translateY(-2px);
  box-shadow:var(--shadow);
}
.btn-outline {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  background:transparent;
  color:var(--secondary);
  font-family:var(--font-display);
  font-weight:700;
  font-size:clamp(.9rem,1.5vw,1rem);
  padding:.85em 2em;
  min-height:44px;
  border:2px solid var(--secondary);
  transition:var(--transition);
}
.btn-outline:hover {
  background:var(--secondary);
  color:#fff;
  transform:translateY(-2px);
}
.btn-outline.light {
  color:#fff;
  border-color:#fff;
}
.btn-outline.light:hover {
  background:#fff;
  color:var(--secondary);
}

/* ── 헤더 ────────────────────────────────────────────────── */
#site-header {
  position:fixed;
  top:0; left:0; right:0;
  z-index:900;
  height:var(--header-h);
  padding:0 clamp(16px,3vw,40px);
  display:flex;
  align-items:center;
  justify-content:space-between;
  transition:var(--transition);
}
#site-header.scrolled {
  background:#fff;
  box-shadow:0 2px 16px rgba(0,0,0,.08);
}

/* 로고 */
.logo-link {
  display:flex;
  align-items:center;
  gap:.55rem;
  text-decoration:none;
}
.logo-text-wrap {
  display:flex;
  flex-direction:column;
  gap:0;
}
.logo-text {
  font-family:var(--font-display);
  font-weight:800;
  font-size:1.05rem;
  letter-spacing:.06em;
  color:#fff;
  transition:color .3s;
  line-height:1.15;
}
.logo-sub {
  font-size:.62rem;
  font-weight:500;
  letter-spacing:.02em;
  color:rgba(255,255,255,.75);
  transition:color .3s;
  line-height:1.2;
}
#site-header.scrolled .logo-text { color:var(--text-dark); }
#site-header.scrolled .logo-sub  { color:var(--text-light); }

.logo-svg .logo-stroke {
  stroke:#fff;
  transition:stroke .3s;
}
#site-header.scrolled .logo-svg .logo-stroke { stroke:var(--accent); }

/* 네비 */
.nav-links {
  display:flex;
  align-items:center;
  gap:2rem;
}
.nav-links a {
  font-size:.92rem;
  font-weight:500;
  color:#fff;
  transition:color .3s;
}
#site-header.scrolled .nav-links a { color:var(--text-dark); }
.nav-links a:hover { color:var(--accent); }
.btn-nav-cta {
  background:var(--accent) !important;
  color:#fff !important;
  padding:.45em 1.2em;
  font-weight:700;
  font-family:var(--font-display);
  font-size:.88rem;
  border:none;
  transition:var(--transition);
}
.btn-nav-cta:hover { background:var(--accent-dark) !important; }

/* 햄버거 */
.hamburger {
  display:none;
  flex-direction:column;
  gap:5px;
  width:28px;
  padding:4px 0;
}
.hamburger span {
  display:block;
  width:100%;
  height:2px;
  background:#fff;
  transition:var(--transition);
}
#site-header.scrolled .hamburger span { background:var(--text-dark); }
.hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* 모바일 메뉴 */
#mobile-menu {
  display:none;
  position:fixed;
  top:var(--header-h);
  left:0; right:0;
  background:#fff;
  z-index:899;
  box-shadow:var(--shadow-lg);
  padding:1.5rem 24px 2rem;
}
#mobile-menu.open { display:block; }
#mobile-menu nav {
  display:flex;
  flex-direction:column;
  gap:1rem;
}
#mobile-menu nav a {
  font-size:1rem;
  font-weight:500;
  color:var(--text-dark);
  padding:.5rem 0;
  border-bottom:1px solid var(--border);
}
#mobile-menu nav a:last-child {
  margin-top:.5rem;
  border:none;
  text-align:center;
}

/* ── HERO (풀스크린) ────────────────────────────────────── */
.hero {
  position:relative;
  min-height:100svh;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
}

/* 풀스크린 이미지 */
.hero-media {
  position:absolute;
  inset:0;
  z-index:0;
  background:#1a2430;
}
.hero-media::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.0) 38%, rgba(0,0,0,.62) 100%);
  z-index:1;
}
.hero-slides {
  position:absolute;
  inset:0;
}
.hero-slide {
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity 1s ease;
}
.hero-slide.active { opacity:1; }
.hero-slide img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  animation:kenburns 14s ease-in-out infinite alternate;
}
@keyframes kenburns {
  from { transform:scale(1); }
  to   { transform:scale(1.07); }
}

/* 텍스트 영역 */
.hero-body {
  position:relative;
  z-index:2;
  width:100%;
}
.hero-body > .container {
  padding-top:2.5rem;
  padding-bottom:0;
  max-width:none;
  padding-left:clamp(1.5rem,6vw,7rem);
  padding-right:clamp(1.5rem,6vw,7rem);
}
.hero-eyebrow {
  display:flex;
  align-items:center;
  gap:.75rem;
  font-size:.7rem;
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(255,255,255,.75);
  margin-bottom:1.2rem;
  text-shadow:0 1px 6px rgba(0,0,0,.5);
}
.hero-eyebrow::before {
  content:"";
  display:inline-block;
  width:26px;
  height:1px;
  background:rgba(255,255,255,.5);
  flex-shrink:0;
}
.hero-h1 {
  font-family:var(--font-display);
  font-size:clamp(3rem,8.5vw,7.5rem);
  font-weight:900;
  line-height:.92;
  letter-spacing:-.025em;
  color:#fff;
  margin-bottom:.55rem;
  text-shadow:0 2px 12px rgba(0,0,0,.55), 0 4px 32px rgba(0,0,0,.4);
}
.hero-display-en {
  font-size:clamp(.82rem,1.7vw,1.25rem);
  font-weight:700;
  letter-spacing:.13em;
  color:rgba(255,255,255,.35);
  text-transform:uppercase;
  margin-bottom:1.8rem;
}
.hero-sub {
  color:rgba(255,255,255,.9);
  font-size:clamp(.9rem,1.4vw,1.05rem);
  line-height:1.75;
  margin-bottom:.9rem;
  max-width:520px;
  text-shadow:0 1px 6px rgba(0,0,0,.5);
}
.hero-notice {
  border-left:3px solid var(--accent-light);
  padding:.6rem 1rem;
  margin-bottom:2rem;
  color:rgba(255,255,255,.65);
  font-size:.82rem;
  line-height:1.65;
  max-width:480px;
  text-shadow:0 1px 5px rgba(0,0,0,.45);
}
.hero-cta-group {
  display:flex;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:2.5rem;
}
.btn-outline.light {
  border-color:rgba(255,255,255,.5);
  color:#fff;
}
.btn-outline.light:hover {
  background:rgba(255,255,255,.12);
  border-color:#fff;
  color:#fff;
}

/* 메타 바 */
.hero-meta {
  background:rgba(0,0,0,.38);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-top:1px solid rgba(255,255,255,.1);
}
.hero-meta > .container {
  max-width:none;
  padding-left:clamp(1.5rem,6vw,7rem);
  padding-right:clamp(1.5rem,6vw,7rem);
  padding-top:0;
  padding-bottom:0;
}
.hero-meta-list {
  display:flex;
  margin:0;
}
.hero-meta-list > div {
  padding:.85rem clamp(1rem,2.5vw,2.5rem) .85rem 0;
  margin-right:clamp(1.5rem,3vw,3rem);
  border-right:1px solid rgba(255,255,255,.12);
  padding-right:clamp(1.5rem,3vw,3rem);
}
.hero-meta-list > div:last-child {
  border-right:none;
  margin-right:0;
}
.hero-meta-list dt {
  font-size:.58rem;
  font-weight:700;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:rgba(255,255,255,.42);
  margin-bottom:.22rem;
}
.hero-meta-list dd {
  font-size:.82rem;
  font-weight:600;
  color:rgba(255,255,255,.88);
}

/* 도트 */
.hero-dots {
  position:absolute;
  bottom:5rem;
  right:clamp(1.5rem,4vw,4rem);
  z-index:4;
  display:flex;
  gap:.5rem;
}
.hero-dot {
  width:7px;
  height:7px;
  border-radius:50%;
  background:rgba(255,255,255,.35);
  cursor:pointer;
  transition:background .3s;
  border:none;
  padding:0;
}
.hero-dot.active { background:#fff; }

/* ── 시공사례 갤러리 ─────────────────────────────────────── */
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(320px,1fr));
  gap:2px;
}
.gallery-card {
  position:relative;
  overflow:hidden;
  background:var(--bg-cream);
}
.gallery-card-imgs {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2px;
  aspect-ratio:2/1;
}
.gallery-card-imgs img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
.gallery-card:hover .gallery-card-imgs img { transform:scale(1.05); }
.gallery-card-info {
  padding:1rem 1.2rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.gallery-card-info h3 {
  font-size:.95rem;
  font-weight:700;
}
.gallery-card-meta {
  font-size:.78rem;
  color:var(--text-light);
  margin-top:.15rem;
}
.gallery-card-link {
  font-size:.8rem;
  font-weight:700;
  color:var(--accent);
  white-space:nowrap;
}
.img-label {
  position:absolute;
  top:.5rem;
  font-size:.7rem;
  font-weight:700;
  background:rgba(0,0,0,.55);
  color:#fff;
  padding:.15em .5em;
  backdrop-filter:blur(3px);
}
.img-label.before-label { left:.5rem; }
.img-label.after-label  { left:calc(50% + .7rem); }

/* ── 서비스 카드 ─────────────────────────────────────────── */
.service-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(200px,1fr));
  gap:1.5rem;
}
.service-card {
  background:var(--bg-cream);
  padding:2rem 1.5rem;
  border-bottom:3px solid transparent;
  transition:var(--transition);
}
.service-card:hover {
  border-bottom-color:var(--accent);
  transform:translateY(-4px);
  box-shadow:var(--shadow);
}
.service-card .svc-icon {
  width:48px;
  height:48px;
  background:var(--accent);
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:1rem;
}
.service-card .svc-icon svg { stroke:#fff; }
.service-card h3 {
  font-size:1rem;
  margin-bottom:.5rem;
}
.service-card p {
  font-size:.85rem;
  color:var(--text-light);
  line-height:1.6;
  margin-bottom:1rem;
}
.service-card .svc-link {
  font-size:.82rem;
  font-weight:700;
  color:var(--accent);
}

/* ── 신뢰 통계 ───────────────────────────────────────────── */
.stats-section {
  background:linear-gradient(135deg, var(--secondary) 0%, #2a2a2a 100%);
  color:#fff;
  padding:clamp(60px,8vw,100px) 0;
}
.stats-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px,1fr));
  gap:2rem;
  text-align:center;
}
.stat-item .stat-num {
  font-family:var(--font-display);
  font-size:clamp(2rem,4vw,3rem);
  font-weight:800;
  color:var(--accent);
  line-height:1;
  display:block;
}
.stat-item .stat-label {
  font-size:.88rem;
  color:rgba(255,255,255,.7);
  margin-top:.4rem;
}

/* ── FAQ ─────────────────────────────────────────────────── */
.faq-list { max-width:760px; margin:0 auto; }
.cc-faq-item {
  border-bottom:1px solid var(--border);
}
.cc-faq-item:first-child { border-top:1px solid var(--border); }
.cc-faq-q {
  width:100%;
  text-align:left;
  padding:1.25rem 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  font-size:clamp(.95rem,1.5vw,1rem);
  font-weight:700;
  color:var(--text-dark);
  background:none;
  border:none;
  cursor:pointer;
}
.cc-faq-icon {
  flex-shrink:0;
  width:20px;
  height:20px;
  position:relative;
}
.cc-faq-icon::before,
.cc-faq-icon::after {
  content:'';
  position:absolute;
  background:var(--accent);
  transition:transform .3s;
}
.cc-faq-icon::before { width:100%; height:2px; top:9px; left:0; }
.cc-faq-icon::after  { width:2px; height:100%; top:0; left:9px; }
.cc-faq-item.open .cc-faq-icon::after { transform:rotate(90deg); }
.cc-faq-a {
  max-height:0;
  overflow:hidden;
  transition:max-height .4s ease;
}
.cc-faq-item.open .cc-faq-a { max-height:400px; }
.cc-faq-a p {
  padding-bottom:1.25rem;
  color:var(--text-light);
  line-height:1.8;
}

/* ── 지역 카드 ───────────────────────────────────────────── */
.region-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(140px,1fr));
  gap:.75rem;
}
.region-card {
  display:block;
  padding:1rem;
  background:var(--bg-cream);
  text-align:center;
  font-size:.88rem;
  font-weight:600;
  color:var(--text-dark);
  border:1px solid var(--border);
  transition:var(--transition);
}
.region-card:hover {
  background:var(--accent);
  color:#fff;
  border-color:var(--accent);
  transform:translateY(-2px);
}

/* ── CTA 섹션 ────────────────────────────────────────────── */
.cta-section {
  background:var(--bg-sand);
  text-align:center;
  padding:clamp(60px,8vw,100px) 0;
}
.cta-section h2 { margin-bottom:1rem; }
.cta-section p  { color:var(--text-light); margin-bottom:2rem; }
.cta-btns {
  display:flex;
  gap:1rem;
  justify-content:center;
  flex-wrap:wrap;
}

/* ── 서비스 페이지 전용 ──────────────────────────────────── */
/* .feat-card */
.feat-cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.5rem;
}
.feat-card {
  background:#fff;
  border:1px solid var(--border);
  padding:2rem 1.5rem;
  position:relative;
  transition:var(--transition);
}
.feat-card:hover {
  box-shadow:var(--shadow);
  transform:translateY(-4px);
}
.feat-num {
  font-family:var(--font-display);
  font-size:3rem;
  font-weight:800;
  color:var(--accent);
  opacity:.15;
  line-height:1;
  margin-bottom:.5rem;
}
.feat-card h3 { font-size:1rem; margin-bottom:.5rem; }
.feat-card p  { font-size:.88rem; color:var(--text-light); }

/* .symp-card */
.symp-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px,1fr));
  gap:1.25rem;
}
.symp-card {
  display:flex;
  gap:1rem;
  align-items:flex-start;
  padding:1.5rem;
  background:var(--bg-cream);
  border-left:4px solid transparent;
  transition:border-color .3s;
}
.symp-card:hover { border-left-color:var(--accent); }
.symp-card .num {
  flex-shrink:0;
  width:32px;
  height:32px;
  background:var(--accent);
  color:#fff;
  font-family:var(--font-display);
  font-weight:800;
  font-size:.8rem;
  display:flex;
  align-items:center;
  justify-content:center;
}
.symp-card h4 { font-size:.95rem; margin-bottom:.3rem; }
.symp-card p  { font-size:.83rem; color:var(--text-light); }

/* .proc-steps */
.proc-steps {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:0;
  position:relative;
}
.proc-steps::before {
  content:'';
  position:absolute;
  top:32px;
  left:10%;
  right:10%;
  height:2px;
  background:var(--border);
}
.proc-step {
  text-align:center;
  padding:0 .5rem;
  position:relative;
}
.proc-step::before {
  content:counter(proc-count,decimal-leading-zero);
  counter-increment:proc-count;
  display:flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  background:var(--accent);
  color:#fff;
  font-family:var(--font-display);
  font-weight:800;
  font-size:.9rem;
  margin:0 auto 1rem;
  position:relative;
  z-index:1;
}
.proc-steps { counter-reset:proc-count; }
.proc-step h4  { font-size:.88rem; margin-bottom:.3rem; }
.proc-step p   { font-size:.78rem; color:var(--text-light); }

/* .method-card */
.method-cards {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(260px,1fr));
  gap:1.5rem;
}
.method-card {
  border:1px solid var(--border);
  padding:2rem;
}
.method-card h3 { font-size:1.05rem; margin-bottom:1rem; }
.method-card .pros,
.method-card .cons { list-style:none; margin-bottom:.5rem; }
.method-card .pros li::before { content:"+ "; color:var(--accent); font-weight:700; }
.method-card .cons li::before { content:"- "; color:var(--text-light); }
.method-card .pros li,
.method-card .cons li { font-size:.88rem; padding:.2rem 0; }

/* .svc-gallery */
.svc-gallery {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.5rem;
}
.svc-gallery-item {
  position:relative;
  overflow:hidden;
  aspect-ratio:4/3;
}
.svc-gallery-item img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s;
}
.svc-gallery-item:hover img { transform:scale(1.05); }
.svc-gallery-caption {
  position:absolute;
  bottom:0; left:0; right:0;
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(4px);
  color:#fff;
  font-size:.78rem;
  padding:.4rem .7rem;
}

/* ── 갤러리 페이지 ───────────────────────────────────────── */
.case-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(320px,1fr));
  gap:2rem;
}
.case-card {
  background:#fff;
  border:1px solid var(--border);
  overflow:hidden;
  transition:var(--transition);
}
.case-card:hover {
  box-shadow:var(--shadow-lg);
  transform:translateY(-4px);
}
.case-card-thumb {
  aspect-ratio:4/3;
  overflow:hidden;
}
.case-card-thumb img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s;
}
.case-card:hover .case-card-thumb img { transform:scale(1.05); }
.case-card-body { padding:1.2rem; }
.case-card-cat {
  font-size:.72rem;
  font-weight:700;
  color:var(--accent);
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:.3rem;
}
.case-card-body h3 { font-size:1rem; margin-bottom:.4rem; }
.case-card-meta {
  font-size:.8rem;
  color:var(--text-light);
  margin-bottom:.8rem;
}
.case-card-link {
  font-size:.82rem;
  font-weight:700;
  color:var(--accent);
}

/* ── 포트폴리오 상세 ─────────────────────────────────────── */
.pd-hero {
  width:100%;
  max-height:600px;
  object-fit:cover;
}
.ba-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1rem;
}
.ba-item { position:relative; aspect-ratio:4/3; overflow:hidden; }
.ba-item img {
  width:100%; height:100%;
  object-fit:cover;
}
.ba-label {
  position:absolute;
  bottom:.5rem; left:.5rem;
  background:rgba(0,0,0,.6);
  backdrop-filter:blur(4px);
  color:#fff;
  font-size:.75rem;
  font-weight:700;
  padding:.25em .6em;
}
.info-cards {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1rem;
  margin:2rem 0;
}
.info-card {
  background:var(--bg-cream);
  padding:1.2rem 1rem;
  text-align:center;
}
.info-card .ic-label {
  font-size:.72rem;
  color:var(--text-light);
  font-weight:700;
  letter-spacing:.06em;
  margin-bottom:.3rem;
}
.info-card .ic-val {
  font-size:.95rem;
  font-weight:700;
  color:var(--text-dark);
}
.process-list { margin:1.5rem 0; }
.process-list li {
  display:flex;
  gap:1rem;
  padding:.8rem 0;
  border-bottom:1px solid var(--border);
  font-size:.9rem;
  counter-increment:proc;
}
.process-list li::before {
  content:counter(proc,decimal-leading-zero) ".";
  color:var(--accent);
  font-weight:700;
  font-family:var(--font-display);
  flex-shrink:0;
  width:2.2rem;
}
.process-list { counter-reset:proc; }
.pd-nav {
  display:flex;
  justify-content:space-between;
  padding:2rem 0;
  border-top:1px solid var(--border);
  margin-top:2rem;
}
.pd-nav a { font-size:.9rem; font-weight:700; color:var(--text-dark); }
.pd-nav a:hover { color:var(--accent); }

/* ── Floating CTA ────────────────────────────────────────── */
.floating-cta {
  position:fixed;
  bottom:2rem;
  right:1.5rem;
  z-index:800;
  width:60px;
  height:60px;
  background:var(--accent);
  color:#fff;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  box-shadow:var(--shadow-lg);
  transition:var(--transition);
}
.floating-cta:hover { background:var(--accent-dark); transform:scale(1.08); }
.floating-cta::before {
  content:'';
  position:absolute;
  inset:-4px;
  border:2px solid var(--accent);
  animation:pulse 2s infinite;
}
@keyframes pulse {
  0%   { transform:scale(1);   opacity:.8; }
  70%  { transform:scale(1.25); opacity:0;  }
  100% { opacity:0; }
}
.floating-cta span {
  font-size:.62rem;
  font-weight:700;
  font-family:var(--font-display);
  letter-spacing:.04em;
}

/* ── Back to top ─────────────────────────────────────────── */
#back-top {
  position:fixed;
  bottom:6rem;
  right:1.5rem;
  z-index:799;
  width:44px;
  height:44px;
  background:var(--secondary);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  pointer-events:none;
  transition:var(--transition);
}
#back-top.show {
  opacity:1;
  pointer-events:all;
}
#back-top:hover { background:var(--accent); }

/* ── 푸터 ────────────────────────────────────────────────── */
#site-footer {
  background:var(--secondary);
  color:rgba(255,255,255,.75);
  padding:clamp(48px,6vw,80px) 0 0;
}
.footer-inner {
  max-width:1160px;
  margin:0 auto;
  padding:0 24px;
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:3rem;
}
.footer-brand strong {
  display:block;
  font-family:var(--font-display);
  font-size:1.2rem;
  color:#fff;
  margin-bottom:.5rem;
}
.footer-brand p { font-size:.85rem; margin-bottom:1rem; }
.footer-brand address { font-size:.82rem; line-height:2; }
.footer-brand address span { display:block; }
.footer-services strong,
.footer-links strong {
  display:block;
  font-family:var(--font-display);
  font-size:.88rem;
  color:#fff;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:1rem;
}
.footer-services ul,
.footer-links ul { display:flex; flex-direction:column; gap:.5rem; }
.footer-services a,
.footer-links a { font-size:.84rem; transition:color .2s; }
.footer-services a:hover,
.footer-links a:hover { color:#fff; }
.footer-copy {
  text-align:center;
  padding:1.5rem 24px;
  margin-top:3rem;
  border-top:1px solid rgba(255,255,255,.08);
  font-size:.78rem;
}

/* ── 스크롤 리빌 ─────────────────────────────────────────── */
.rv {
  opacity:0;
  transform:translateY(24px);
  transition:opacity .6s ease, transform .6s ease;
}
.rv.in {
  opacity:1;
  transform:none;
}
@media (prefers-reduced-motion:reduce) {
  .rv { opacity:1; transform:none; transition:none; }
}

/* ── 상담 페이지 ─────────────────────────────────────────── */
.consult-cards {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2rem;
  max-width:640px;
  margin:0 auto 3rem;
}
.consult-card {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1rem;
  padding:2.5rem 2rem;
  border:2px solid var(--border);
  text-align:center;
  transition:var(--transition);
}
.consult-card:hover {
  border-color:var(--accent);
  box-shadow:var(--shadow);
}
.consult-card svg { stroke:var(--accent); }
.consult-card h3 { font-size:1.1rem; }
.consult-card p  { font-size:.85rem; color:var(--text-light); }
.consult-card .btn-primary { margin-top:.5rem; width:100%; justify-content:center; }

/* ── 사이트맵 페이지 ─────────────────────────────────────── */
.sitemap-filters {
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
  margin-bottom:1.5rem;
}
.sitemap-filter-btn {
  padding:.4em 1em;
  font-size:.82rem;
  font-weight:600;
  border:1px solid var(--border);
  background:#fff;
  color:var(--text-dark);
  cursor:pointer;
  transition:var(--transition);
}
.sitemap-filter-btn.active,
.sitemap-filter-btn:hover {
  background:var(--accent);
  border-color:var(--accent);
  color:#fff;
}
.sitemap-search {
  width:100%;
  max-width:340px;
  padding:.6em 1em;
  border:1px solid var(--border);
  font:inherit;
  font-size:.9rem;
  margin-bottom:1.5rem;
  outline:none;
}
.sitemap-search:focus { border-color:var(--accent); }
.sitemap-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(200px,1fr));
  gap:1rem;
}
.sitemap-item {
  display:flex;
  gap:.8rem;
  align-items:flex-start;
  padding:.8rem;
  background:var(--bg-cream);
  transition:var(--transition);
}
.sitemap-item:hover { background:var(--bg-sand); }
.sitemap-item .si-cat {
  font-size:.7rem;
  font-weight:700;
  color:var(--accent);
  margin-bottom:.15rem;
  text-transform:uppercase;
}
.sitemap-item .si-title {
  font-size:.88rem;
  font-weight:600;
  color:var(--text-dark);
}

/* ── 404 ─────────────────────────────────────────────────── */
.not-found {
  min-height:80vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:4rem 24px;
}
.not-found .err-code {
  font-family:var(--font-display);
  font-size:clamp(5rem,12vw,9rem);
  font-weight:800;
  color:var(--accent);
  line-height:1;
  margin-bottom:.5rem;
}
.not-found h1 { font-size:clamp(1.4rem,3vw,2rem); margin-bottom:1rem; }
.not-found p  { color:var(--text-light); margin-bottom:2rem; }
.not-found-btns { display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; }

/* ── 관리자 ──────────────────────────────────────────────── */
.admin-wrap {
  max-width:1000px;
  margin:0 auto;
  padding:2rem 24px;
}
.admin-login {
  max-width:360px;
  margin:10vh auto 0;
  padding:2.5rem;
  border:1px solid var(--border);
}
.admin-login h1 { font-size:1.4rem; margin-bottom:1.5rem; text-align:center; }
.admin-field { margin-bottom:1rem; }
.admin-field label { display:block; font-size:.85rem; font-weight:600; margin-bottom:.4rem; }
.admin-field input {
  width:100%;
  padding:.65em .9em;
  border:1px solid var(--border);
  font:inherit;
  font-size:.9rem;
  outline:none;
}
.admin-field input:focus { border-color:var(--accent); }
.admin-submit {
  width:100%;
  padding:.8em;
  background:var(--accent);
  color:#fff;
  font:inherit;
  font-weight:700;
  font-size:.95rem;
  border:none;
  cursor:pointer;
  margin-top:.5rem;
  transition:background .3s;
}
.admin-submit:hover { background:var(--accent-dark); }
.admin-table {
  width:100%;
  border-collapse:collapse;
  font-size:.88rem;
  margin-bottom:2rem;
}
.admin-table th,
.admin-table td {
  padding:.6rem .8rem;
  border-bottom:1px solid var(--border);
  text-align:left;
}
.admin-table th { background:var(--bg-cream); font-weight:700; }
.badge {
  display:inline-block;
  padding:.15em .55em;
  font-size:.72rem;
  font-weight:700;
}
.badge-ok  { background:#e6f4ea; color:#137333; }
.badge-no  { background:#fce8e6; color:#c5221f; }
.badge-idx { background:#e8eaf6; color:#3949ab; }

/* ── 반응형 ──────────────────────────────────────────────── */
/* ── 1024px ──────────────────────────────────────────────── */
@media (max-width:1024px) {
  .feat-cards   { grid-template-columns:1fr 1fr; }
  .proc-steps   { grid-template-columns:repeat(3,1fr); gap:1.5rem; }
  .proc-steps::before { display:none; }
  .info-cards   { grid-template-columns:repeat(2,1fr); }
}

/* ── 768px ───────────────────────────────────────────────── */
@media (max-width:768px) {
  /* 헤더 */
  .nav-links  { display:none; }
  .hamburger  { display:flex; }

  /* 히어로 */
  .hero-h1    { font-size:clamp(2.6rem,11vw,4.5rem); }
  .hero-body > .container { padding-left:1.5rem; padding-right:1.5rem; }
  .hero-meta > .container { padding-left:1.5rem; padding-right:1.5rem; }
  .hero-meta-list > div   { padding:.7rem 1.2rem .7rem 0; margin-right:1.2rem; }
  .hero-dots  { bottom:5.5rem; right:1.5rem; }

  /* 서비스 */
  .service-grid  { grid-template-columns:repeat(2,1fr); gap:1rem; }
  .feat-cards    { grid-template-columns:1fr; }
  .stats-grid    { grid-template-columns:repeat(2,1fr); }
  .consult-cards { grid-template-columns:1fr; }
  .svc-gallery   { grid-template-columns:1fr 1fr; }

  /* 포트폴리오 */
  .ba-grid    { grid-template-columns:1fr; }

  /* 푸터 */
  .footer-inner { grid-template-columns:1fr; gap:2rem; }
}

/* ── 560px ───────────────────────────────────────────────── */
@media (max-width:560px) {
  /* 히어로 */
  .hero-h1        { font-size:clamp(2.2rem,13vw,3.6rem); line-height:.92; }
  .hero-display-en { display:none; }
  .hero-notice    { display:none; }
  .hero-sub       { font-size:.9rem; margin-bottom:1.2rem; }
  .hero-cta-group {
    flex-direction:column;
    gap:.65rem;
    margin-bottom:1.2rem;
  }
  .hero-cta-group .btn-primary,
  .hero-cta-group .btn-outline { width:100%; }

  /* 히어로 메타 — 가로 3열 유지하되 초압축 */
  .hero-meta-list           { gap:0; }
  .hero-meta-list > div     {
    flex:1;
    padding:.55rem .6rem;
    margin-right:0;
    border-right:1px solid rgba(255,255,255,.12);
    border-bottom:none;
  }
  .hero-meta-list > div:last-child { border-right:none; }
  .hero-meta-list dt        { font-size:.5rem; letter-spacing:.08em; }
  .hero-meta-list dd        { font-size:.72rem; }
  .hero-dots                { bottom:4.5rem; right:1rem; }

  /* 서비스 */
  .service-grid     { grid-template-columns:repeat(2,1fr); gap:.75rem; }
  .service-card     { padding:1.4rem 1rem; }
  .proc-steps       { grid-template-columns:1fr 1fr; }
  .info-cards       { grid-template-columns:1fr 1fr; }
  .svc-gallery      { grid-template-columns:1fr; }

  /* 갤러리 */
  .gallery-grid     { grid-template-columns:1fr; }

  /* 지역 카드 */
  .region-grid      { grid-template-columns:repeat(3,1fr); }

  /* CTA 섹션 */
  .cta-btns         { flex-direction:column; }
  .cta-btns .btn-primary,
  .cta-btns .btn-outline { width:100%; }

  /* 포트폴리오 */
  .info-cards       { grid-template-columns:1fr 1fr; }

  /* 섹션 여백 줄이기 */
  .section { padding:clamp(48px,8vw,100px) 0; }
  .container { padding:0 16px; }
}
