/* ============================================================
   APTFORYOU 아파트포유 — 회사 소개 홈페이지
   공통 스타일 (v1.0.0)
   ============================================================ */

:root {
  --bg: #060a13;
  --bg2: #0a101d;
  --surface: rgba(255,255,255,.04);
  --surface2: rgba(255,255,255,.07);
  --stroke: rgba(255,255,255,.09);
  --text: #eef1f7;
  --muted: #9aa4b8;
  --gold: #d9b678;
  --gold-2: #f2dcae;
  --gold-deep: #b3873f;
  --navy: #101b33;
  --grad-gold: linear-gradient(135deg, #f2dcae 0%, #d9b678 45%, #b3873f 100%);
  --ease: cubic-bezier(.16,1,.3,1);
  --radius: 20px;
  --header-h: 76px;
  --font-kr: 'Pretendard', 'Noto Sans KR', -apple-system, sans-serif;
  --font-en: 'Poppins', 'Pretendard', sans-serif;
  --font-ser: 'Nanum Myeongjo', 'Noto Serif KR', serif;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
html, body { background:var(--bg); }
body {
  font-family:var(--font-kr);
  color:var(--text);
  line-height:1.65;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  letter-spacing:-.01em;
}
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }
button { font-family:inherit; cursor:pointer; }
::selection { background:rgba(217,182,120,.3); color:#fff; }

/* 스크롤바 */
::-webkit-scrollbar { width:10px; }
::-webkit-scrollbar-track { background:var(--bg); }
::-webkit-scrollbar-thumb { background:#1d2740; border-radius:8px; }
::-webkit-scrollbar-thumb:hover { background:var(--gold-deep); }

/* ---------- 스크롤 프로그레스 ---------- */
#progressBar {
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:var(--grad-gold); z-index:1000;
  border-radius:0 3px 3px 0;
}

/* ---------- 프리로더 ---------- */
#preloader {
  position:fixed; inset:0; background:var(--bg); z-index:2000;
  display:flex; align-items:center; justify-content:center; flex-direction:column;
  gap:26px; transition:opacity .7s var(--ease), visibility .7s;
}
#preloader.done { opacity:0; visibility:hidden; pointer-events:none; }
.pl-logo { font-family:var(--font-en); font-weight:600; font-size:clamp(30px,5vw,44px); letter-spacing:.14em; color:#fff; position:relative; }
.pl-logo b { font-weight:800; }
.pl-logo em { font-style:normal; background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.pl-bar { width:190px; height:2px; background:rgba(255,255,255,.1); border-radius:2px; overflow:hidden; }
.pl-bar i { display:block; height:100%; width:0%; background:var(--grad-gold); transition:width .4s var(--ease); }

/* ---------- 헤더 ---------- */
#header {
  position:fixed; top:0; left:0; width:100%; z-index:900;
  height:var(--header-h);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 clamp(20px,4vw,56px);
  transition:background .45s var(--ease), box-shadow .45s var(--ease), height .45s var(--ease), border-color .45s;
  border-bottom:1px solid transparent;
}
#header.scrolled {
  background:rgba(6,10,19,.78);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border-bottom-color:var(--stroke);
  height:62px;
}
.logo { display:flex; align-items:center; gap:12px; }
.logo-mark {
  width:42px; height:42px; border-radius:12px;
  background:var(--grad-gold); display:flex; align-items:center; justify-content:center;
  font-family:var(--font-en); font-weight:800; font-size:19px; color:#0a101d;
  box-shadow:0 6px 22px rgba(217,182,120,.35);
}
.logo-txt { line-height:1.15; }
.logo-txt b { display:block; font-family:var(--font-en); font-weight:700; font-size:17px; letter-spacing:.12em; color:#fff; }
.logo-txt span { display:block; font-size:11px; color:var(--muted); letter-spacing:.28em; margin-top:2px; }
#nav { display:flex; align-items:center; gap:clamp(16px,2.4vw,34px); }
#nav a { font-size:15px; font-weight:500; color:var(--muted); transition:color .3s; position:relative; padding:6px 0; }
#nav a::after {
  content:""; position:absolute; left:0; bottom:0; width:0; height:1.5px;
  background:var(--grad-gold); transition:width .35s var(--ease);
}
#nav a:hover, #nav a.active { color:#fff; }
#nav a:hover::after, #nav a.active::after { width:100%; }
.hdr-cta { display:flex; align-items:center; gap:10px; }
.hdr-phone {
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--font-en); font-weight:700; font-size:16px; letter-spacing:.04em;
  color:var(--gold-2); padding:10px 20px; border:1px solid rgba(217,182,120,.4);
  border-radius:100px; transition:all .35s var(--ease);
}
.hdr-phone:hover { background:rgba(217,182,120,.1); border-color:var(--gold); transform:translateY(-1px); }
.hdr-phone svg { width:15px; height:15px; }

/* 버거 */
#burger { display:none; width:44px; height:44px; border:0; background:transparent; position:relative; z-index:960; }
#burger span {
  display:block; width:24px; height:2px; background:#fff; margin:5px auto;
  transition:transform .4s var(--ease), opacity .3s;
}
#burger.on span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
#burger.on span:nth-child(2) { opacity:0; }
#burger.on span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* 모바일 메뉴 */
#mMenu {
  position:fixed; inset:0; background:rgba(6,10,19,.97); backdrop-filter:blur(20px);
  z-index:950; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  opacity:0; visibility:hidden; transition:opacity .5s var(--ease), visibility .5s;
}
#mMenu.on { opacity:1; visibility:visible; }
#mMenu a {
  font-size:26px; font-weight:600; color:#fff; padding:12px 20px; letter-spacing:.04em;
  opacity:0; transform:translateY(24px); transition:opacity .5s var(--ease), transform .5s var(--ease), color .3s;
}
#mMenu.on a { opacity:1; transform:none; }
#mMenu a:hover { color:var(--gold-2); }
#mMenu .m-phone { margin-top:26px; font-family:var(--font-en); font-size:22px; font-weight:700; color:var(--gold); letter-spacing:.06em; }

/* ---------- 공통 섹션 ---------- */
.sec { position:relative; padding:clamp(90px,11vw,160px) clamp(20px,5vw,72px); overflow:hidden; }
.sec-head { max-width:760px; margin:0 auto 64px; text-align:center; }
.eyebrow {
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-en); font-size:12px; font-weight:600; letter-spacing:.34em;
  color:var(--gold); text-transform:uppercase; margin-bottom:18px;
}
.eyebrow::before, .eyebrow::after { content:""; width:26px; height:1px; background:rgba(217,182,120,.5); }
.sec-head h2 { font-size:clamp(30px,4.4vw,52px); font-weight:800; letter-spacing:-.02em; line-height:1.2; color:#fff; }
.sec-head h2 em { font-style:normal; background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.sec-head p { margin-top:18px; color:var(--muted); font-size:clamp(15px,1.3vw,17px); }

/* 배경 장식 */
.deco-orb { position:absolute; border-radius:50%; filter:blur(90px); pointer-events:none; z-index:0; }
.deco-grid {
  position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.028) 1px, transparent 1px),
                   linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 0%, #000 30%, transparent 75%);
          mask-image:radial-gradient(ellipse 90% 70% at 50% 0%, #000 30%, transparent 75%);
}
.sec > .wrap, .sec > *:not(.deco-orb):not(.deco-grid) { position:relative; z-index:1; }
.wrap { max-width:1240px; margin:0 auto; }

/* 리빌 애니메이션 (GSAP 대상) */
.reveal { opacity:0; transform:translateY(46px); will-change:transform,opacity; }
.reveal.done { opacity:1; transform:none; transition:opacity .9s var(--ease), transform .9s var(--ease); }

/* ---------- 버튼 ---------- */
.btn {
  display:inline-flex; align-items:center; gap:10px;
  padding:16px 32px; border-radius:100px; font-size:15px; font-weight:700; letter-spacing:.02em;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .35s, border-color .35s, color .35s;
  position:relative; overflow:hidden; border:1px solid transparent; white-space:nowrap;
}
.btn svg { width:16px; height:16px; transition:transform .35s var(--ease); }
.btn:hover svg { transform:translateX(4px); }
.btn-gold { background:var(--grad-gold); color:#0a101d; box-shadow:0 10px 34px rgba(217,182,120,.28); }
.btn-gold:hover { transform:translateY(-3px); box-shadow:0 16px 44px rgba(217,182,120,.4); }
.btn-gold::after {
  content:""; position:absolute; top:0; left:-80%; width:50%; height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.55), transparent);
  transform:skewX(-24deg); transition:left .7s var(--ease);
}
.btn-gold:hover::after { left:130%; }
.btn-ghost { border-color:var(--stroke); color:#fff; background:var(--surface); backdrop-filter:blur(8px); }
.btn-ghost:hover { border-color:rgba(217,182,120,.55); color:var(--gold-2); transform:translateY(-3px); background:var(--surface2); }

/* ---------- 히어로 ---------- */
.hero { position:relative; min-height:100svh; display:flex; align-items:center; overflow:hidden; background:var(--bg); }
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-bg img { width:100%; height:100%; object-fit:cover; opacity:.5; }
.hero-bg::after {
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(6,10,19,.92) 0%, rgba(6,10,19,.55) 45%, rgba(6,10,19,.97) 100%),
    radial-gradient(ellipse 70% 55% at 50% 38%, rgba(217,182,120,.14), transparent 70%);
}
.hero-canvas { position:absolute; inset:0; z-index:1; }
.hero-main { position:relative; z-index:2; width:100%; padding:calc(var(--header-h) + 40px) clamp(20px,5vw,72px) 120px; }
.hero-inner { max-width:1240px; margin:0 auto; }
.hero-tag {
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-en); font-size:13px; letter-spacing:.3em; font-weight:600;
  color:var(--gold-2); border:1px solid rgba(217,182,120,.35); border-radius:100px;
  padding:9px 22px; background:rgba(217,182,120,.06); backdrop-filter:blur(6px);
  margin-bottom:34px; opacity:0; animation:heroIn .9s var(--ease) .25s forwards;
}
.hero-tag i { width:7px; height:7px; border-radius:50%; background:var(--gold); box-shadow:0 0 14px var(--gold); animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.35} }
.hero h1 { font-size:clamp(44px,7.6vw,96px); font-weight:900; letter-spacing:-.03em; line-height:1.04; color:#fff; }
.hero h1 .line { display:block; overflow:hidden; }
.hero h1 .line > span { display:inline-block; transform:translateY(110%); animation:heroUp 1s var(--ease) forwards; }
.hero h1 .line:nth-child(2) > span { animation-delay:.15s; }
@keyframes heroUp { to { transform:none; } }
.hero h1 em { font-style:normal; background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.hero-role {
  margin-top:28px; font-size:clamp(19px,2.6vw,28px); font-weight:600; color:#dfe5f0; min-height:1.6em;
  display:flex; align-items:center; gap:2px; opacity:0; animation:heroIn .9s var(--ease) .75s forwards;
}
.hero-role .cr { display:inline-block; width:2px; height:1.05em; background:var(--gold); margin-left:4px; animation:crBlink .85s step-end infinite; }
@keyframes crBlink { 0%,100%{opacity:1} 50%{opacity:0} }
.hero-sub { margin-top:18px; max-width:560px; color:var(--muted); font-size:clamp(15px,1.35vw,17.5px); opacity:0; animation:heroIn .9s var(--ease) 1s forwards; }
.hero-cta { margin-top:44px; display:flex; gap:14px; flex-wrap:wrap; opacity:0; animation:heroIn .9s var(--ease) 1.15s forwards; }
@keyframes heroIn { to { opacity:1; transform:none; } }
.hero-scroll {
  position:absolute; left:50%; bottom:30px; transform:translateX(-50%); z-index:3;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  font-family:var(--font-en); font-size:11px; letter-spacing:.3em; color:var(--muted);
  opacity:0; animation:heroIn 1s var(--ease) 1.7s forwards;
}
.hero-scroll .wheel { width:24px; height:40px; border:1.5px solid rgba(255,255,255,.35); border-radius:14px; position:relative; }
.hero-scroll .wheel::after {
  content:""; position:absolute; top:7px; left:50%; width:3px; height:8px; margin-left:-1.5px;
  border-radius:3px; background:var(--gold); animation:wheel 1.8s var(--ease) infinite;
}
@keyframes wheel { 0%{opacity:1; transform:translateY(0)} 70%{opacity:0; transform:translateY(14px)} 100%{opacity:0} }
.hero-bigtext {
  position:absolute; right:-2%; bottom:6%; z-index:1; pointer-events:none; user-select:none;
  font-family:var(--font-en); font-weight:800; font-size:clamp(90px,17vw,250px); line-height:1;
  letter-spacing:.02em; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.07);
  white-space:nowrap;
}

/* ---------- 통계 ---------- */
.stats { position:relative; border-top:1px solid var(--stroke); border-bottom:1px solid var(--stroke); background:linear-gradient(180deg, rgba(10,16,29,.6), rgba(6,10,19,.25)); }
.stats .wrap { display:grid; grid-template-columns:repeat(4,1fr); }
.stat { text-align:center; padding:clamp(34px,4vw,56px) 16px; position:relative; }
.stat + .stat::before {
  content:""; position:absolute; left:0; top:25%; height:50%; width:1px; background:var(--stroke);
}
.stat b {
  display:block; font-family:var(--font-en); font-weight:800;
  font-size:clamp(40px,5.4vw,64px); letter-spacing:-.02em; line-height:1;
  background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.stat b .unit { font-size:.45em; -webkit-text-fill-color:var(--gold); vertical-align:super; margin-left:3px; }
.stat p { margin-top:12px; font-size:14.5px; color:var(--muted); font-weight:500; }

/* ---------- 서비스 카드 ---------- */
.svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2.4vw,30px); }
.svc-card {
  position:relative; border:1px solid var(--stroke); border-radius:var(--radius);
  background:linear-gradient(170deg, rgba(255,255,255,.055), rgba(255,255,255,.015));
  padding:clamp(30px,3vw,44px); overflow:hidden; transform-style:preserve-3d;
  transition:border-color .45s, box-shadow .45s, transform .45s var(--ease);
}
.svc-card::before {
  content:""; position:absolute; inset:0; opacity:0; transition:opacity .5s;
  background:radial-gradient(ellipse 90% 70% at 50% -10%, rgba(217,182,120,.16), transparent 60%);
}
.svc-card:hover { border-color:rgba(217,182,120,.42); box-shadow:0 30px 70px rgba(0,0,0,.45); }
.svc-card:hover::before { opacity:1; }
.svc-card .shine {
  content:""; position:absolute; top:0; left:-90%; width:55%; height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.09), transparent);
  transform:skewX(-20deg); transition:left .8s var(--ease); pointer-events:none;
}
.svc-card:hover .shine { left:140%; }
.svc-no { font-family:var(--font-en); font-size:13px; font-weight:700; letter-spacing:.24em; color:var(--gold-deep); }
.svc-icon {
  width:64px; height:64px; border-radius:18px; margin:22px 0 20px;
  background:linear-gradient(150deg, rgba(217,182,120,.2), rgba(217,182,120,.05));
  border:1px solid rgba(217,182,120,.3); display:flex; align-items:center; justify-content:center;
  transition:transform .5s var(--ease);
}
.svc-card:hover .svc-icon { transform:translateZ(34px) rotate(-6deg) scale(1.06); }
.svc-icon svg { width:30px; height:30px; stroke:var(--gold); }
.svc-card h3 { font-size:clamp(21px,1.9vw,26px); font-weight:800; color:#fff; letter-spacing:-.01em; }
.svc-card p { margin-top:12px; color:var(--muted); font-size:15px; }
.svc-tags { margin-top:20px; display:flex; flex-wrap:wrap; gap:8px; }
.svc-tags li {
  font-size:12.5px; font-weight:600; color:var(--gold-2);
  border:1px solid rgba(217,182,120,.28); border-radius:100px; padding:5px 13px;
  background:rgba(217,182,120,.06);
}
.svc-more { margin-top:26px; display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:700; color:var(--gold); }
.svc-more svg { width:15px; height:15px; transition:transform .35s var(--ease); }
.svc-card:hover .svc-more svg { transform:translateX(5px); }

/* ---------- 마퀴 ---------- */
.marquee { position:relative; padding:clamp(50px,6vw,80px) 0; border-top:1px solid var(--stroke); border-bottom:1px solid var(--stroke); overflow:hidden; background:rgba(10,16,29,.4); }
.marquee-track { display:flex; width:max-content; animation:marquee 30s linear infinite; }
.marquee-track.rev { animation-direction:reverse; }
.marquee:hover .marquee-track { animation-play-state:paused; }
@keyframes marquee { to { transform:translateX(-50%); } }
.mq-item {
  display:inline-flex; align-items:center; gap:18px; padding:0 34px;
  font-family:var(--font-en); font-weight:700; font-size:clamp(20px,2.6vw,30px); letter-spacing:.1em;
  color:rgba(238,241,247,.82); white-space:nowrap;
}
.mq-item i { font-style:normal; color:var(--gold-deep); font-size:.72em; }

/* ---------- 프로세스 ---------- */
.proc-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(16px,2vw,28px); position:relative; }
.proc-grid::before {
  content:""; position:absolute; top:34px; left:9%; right:9%; height:1.5px;
  background:linear-gradient(90deg, transparent, rgba(217,182,120,.5) 15%, rgba(217,182,120,.5) 85%, transparent);
}
.proc-step { text-align:center; position:relative; padding:0 8px; }
.proc-num {
  width:68px; height:68px; margin:0 auto 22px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; position:relative;
  font-family:var(--font-en); font-weight:800; font-size:22px; color:var(--bg);
  background:var(--grad-gold); box-shadow:0 0 0 6px rgba(6,10,19,1), 0 0 0 7px rgba(217,182,120,.35), 0 12px 30px rgba(217,182,120,.25);
  z-index:1;
}
.proc-step h3 { font-size:19px; font-weight:800; color:#fff; }
.proc-step p { margin-top:10px; font-size:13.8px; color:var(--muted); }

/* ---------- 포트폴리오 ---------- */
.pf-grid { display:grid; grid-template-columns:1.6fr 1fr; gap:clamp(18px,2.4vw,30px); }
.pf-card {
  position:relative; border-radius:var(--radius); overflow:hidden; border:1px solid var(--stroke);
  background:var(--bg2); min-height:380px; display:flex; flex-direction:column;
  transition:border-color .4s, transform .5s var(--ease);
}
.pf-card:hover { border-color:rgba(217,182,120,.45); transform:translateY(-6px); }
.pf-thumb { position:relative; flex:1; min-height:240px; overflow:hidden; }
.pf-thumb img { width:100%; height:100%; object-fit:cover; object-position:top; transition:transform 1.2s var(--ease); }
.pf-card:hover .pf-thumb img { transform:scale(1.05); }
.pf-thumb::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg, transparent 45%, rgba(6,10,19,.92)); }
.pf-badge {
  position:absolute; top:18px; left:18px; z-index:2;
  font-size:12px; font-weight:700; letter-spacing:.12em; color:#0a101d;
  background:var(--grad-gold); padding:7px 15px; border-radius:100px;
}
.pf-body { padding:26px 30px 30px; }
.pf-body h3 { font-size:clamp(19px,1.7vw,23px); font-weight:800; color:#fff; }
.pf-body .pf-sub { margin-top:4px; font-family:var(--font-en); font-size:13px; letter-spacing:.18em; color:var(--gold-deep); text-transform:uppercase; }
.pf-body p { margin-top:12px; color:var(--muted); font-size:14.5px; }
.pf-links { margin-top:20px; display:flex; gap:12px; flex-wrap:wrap; }
.pf-future {
  border-style:dashed; align-items:center; justify-content:center; text-align:center;
  padding:40px; min-height:0;
}
.pf-future .pf-plus {
  width:74px; height:74px; margin:0 auto 22px; border-radius:50%;
  border:1.5px dashed rgba(217,182,120,.5); display:flex; align-items:center; justify-content:center;
  color:var(--gold); font-family:var(--font-en); font-weight:300; font-size:34px;
  animation:spinSlow 14s linear infinite;
}
@keyframes spinSlow { to { transform:rotate(360deg); } }
.pf-future h3 { font-size:22px; color:#fff; }
.pf-future p { margin-top:12px; color:var(--muted); font-size:14.5px; max-width:300px; margin-left:auto; margin-right:auto; }

/* ---------- 밸류 ---------- */
.val-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(16px,2vw,26px); }
.val-card { border:1px solid var(--stroke); border-radius:var(--radius); padding:32px 26px; background:var(--surface); transition:all .4s var(--ease); }
.val-card:hover { background:var(--surface2); border-color:rgba(217,182,120,.4); transform:translateY(-6px); }
.val-card .v-ico { font-size:26px; margin-bottom:16px; display:inline-block; filter:drop-shadow(0 4px 14px rgba(217,182,120,.35)); }
.val-card h3 { font-size:17.5px; font-weight:800; color:#fff; }
.val-card p { margin-top:9px; font-size:13.8px; color:var(--muted); }

/* ---------- 문의 CTA ---------- */
.contact-band { position:relative; text-align:center; background:linear-gradient(180deg, var(--bg) 0%, #0a1220 55%, var(--bg) 100%); }
.cb-phone {
  display:inline-flex; align-items:center; gap:18px; margin:40px 0 14px;
  font-family:var(--font-en); font-weight:800; font-size:clamp(40px,7vw,76px); letter-spacing:.02em;
  color:#fff; transition:color .35s;
}
.cb-phone:hover { color:var(--gold-2); }
.cb-phone svg { width:clamp(26px,4vw,40px); height:auto; color:var(--gold); animation:ring 3.2s var(--ease) infinite; transform-origin:top center; }
@keyframes ring { 0%,84%,100%{transform:rotate(0)} 88%{transform:rotate(-12deg)} 92%{transform:rotate(10deg)} 96%{transform:rotate(-6deg)} }
.cb-note { color:var(--muted); font-size:15px; }
.cb-note b { color:var(--gold-2); font-weight:700; }

/* ---------- 푸터 ---------- */
footer { border-top:1px solid var(--stroke); padding:56px clamp(20px,5vw,72px) 40px; position:relative; background:rgba(8,12,22,.7); }
.foot-inner { max-width:1240px; margin:0 auto; display:flex; justify-content:space-between; align-items:flex-end; gap:30px; flex-wrap:wrap; }
.foot-logo b { font-family:var(--font-en); font-size:20px; letter-spacing:.14em; color:#fff; }
.foot-logo b em { font-style:normal; background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.foot-logo p { margin-top:6px; font-size:12.5px; color:var(--muted); letter-spacing:.06em; }
.foot-right { text-align:right; }
.foot-right .f-phone { font-family:var(--font-en); font-weight:700; font-size:19px; color:var(--gold-2); letter-spacing:.05em; }
.foot-right .f-phone span { display:block; font-family:var(--font-kr); font-weight:400; font-size:12.5px; color:var(--muted); letter-spacing:.14em; margin-top:4px; }
.foot-copy { max-width:1240px; margin:44px auto 0; padding-top:22px; border-top:1px solid var(--stroke); display:flex; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.foot-copy p { font-size:12.5px; color:var(--muted); letter-spacing:.04em; }
.foot-copy .en { font-family:var(--font-en); letter-spacing:.1em; }

/* ---------- 플로팅 전화 ---------- */
.float-call {
  position:fixed; right:22px; bottom:22px; z-index:850; width:60px; height:60px; border-radius:50%;
  background:var(--grad-gold); display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 34px rgba(217,182,120,.4); transition:transform .35s var(--ease);
}
.float-call:hover { transform:scale(1.1); }
.float-call::before {
  content:""; position:absolute; inset:-6px; border-radius:50%; border:1.5px solid rgba(217,182,120,.5);
  animation:ping 2.2s var(--ease) infinite;
}
@keyframes ping { 0%{transform:scale(.7); opacity:1} 100%{transform:scale(1.35); opacity:0} }
.float-call svg { width:24px; height:24px; color:#0a101d; }

/* ---------- 서브페이지 히어로 ---------- */
.page-hero { position:relative; padding:calc(var(--header-h) + clamp(70px,10vw,120px)) clamp(20px,5vw,72px) clamp(60px,8vw,100px); overflow:hidden; }
.page-hero .wrap { position:relative; z-index:1; }
.page-hero h1 { font-size:clamp(38px,5.6vw,68px); font-weight:900; letter-spacing:-.03em; line-height:1.1; color:#fff; }
.page-hero h1 em { font-style:normal; background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.crumb { display:flex; align-items:center; gap:10px; margin-bottom:22px; font-size:13px; letter-spacing:.16em; color:var(--muted); font-family:var(--font-en); }
.crumb b { color:var(--gold); font-weight:600; }
.crumb i { font-style:normal; color:rgba(255,255,255,.2); }
.ph-sub { margin-top:18px; max-width:620px; color:var(--muted); font-size:clamp(15px,1.35vw,17px); }

/* ---------- 컨텐츠 공통 ---------- */
.grid2 { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(26px,4vw,60px); align-items:center; }
.txt-l h2 { font-size:clamp(26px,3.4vw,40px); font-weight:800; letter-spacing:-.02em; line-height:1.25; color:#fff; }
.txt-l h2 em { font-style:normal; background:var(--grad-gold); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.txt-l p { margin-top:18px; color:var(--muted); font-size:15.5px; }
.chk-list { margin-top:26px; display:flex; flex-direction:column; gap:14px; }
.chk-list li { display:flex; gap:12px; align-items:flex-start; font-size:15px; color:#d6dcea; }
.chk-list li b { color:#fff; font-weight:700; }
.chk-list svg { width:19px; height:19px; flex:none; margin-top:2px; stroke:var(--gold); }
.tile {
  position:relative; border-radius:var(--radius); overflow:hidden; border:1px solid var(--stroke);
  background:linear-gradient(165deg, rgba(255,255,255,.05), rgba(255,255,255,.01));
  min-height:300px; display:flex; align-items:center; justify-content:center;
}
.tile .t-deco { position:absolute; inset:0; }
.tile-num { position:relative; z-index:1; font-family:var(--font-en); font-weight:800; font-size:clamp(90px,12vw,150px); color:transparent; -webkit-text-stroke:1.5px rgba(217,182,120,.5); letter-spacing:-.04em; }
.tile-label { position:absolute; bottom:26px; left:30px; font-size:13px; letter-spacing:.28em; color:var(--gold); font-family:var(--font-en); font-weight:600; }

.feat-row { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(14px,1.8vw,22px); }
.feat { border:1px solid var(--stroke); border-radius:16px; padding:26px 22px; background:var(--surface); transition:all .35s var(--ease); }
.feat:hover { border-color:rgba(217,182,120,.45); transform:translateY(-4px); background:var(--surface2); }
.feat .f-ico { font-size:22px; }
.feat h4 { margin-top:12px; font-size:16px; font-weight:800; color:#fff; }
.feat p { margin-top:7px; font-size:13.5px; color:var(--muted); }

/* 값어치 섹션 서브용 */
.block { margin-bottom:clamp(60px,8vw,100px); }

/* ---------- 반응형 ---------- */
@media (max-width: 1024px) {
  .svc-grid { grid-template-columns:repeat(2,1fr); }
  .pf-grid { grid-template-columns:1fr; }
  .val-grid { grid-template-columns:repeat(2,1fr); }
  .proc-grid { grid-template-columns:repeat(2,1fr); row-gap:44px; }
  .proc-grid::before { display:none; }
  .stats .wrap { grid-template-columns:repeat(2,1fr); }
  .stat:nth-child(3)::before { display:none; }
  .feat-row { grid-template-columns:repeat(2,1fr); }
  .grid2 { grid-template-columns:1fr; }
}
@media (max-width: 768px) {
  #nav, .hdr-cta { display:none; }
  #burger { display:block; }
  .svc-grid, .val-grid, .feat-row { grid-template-columns:1fr; }
  .stats .wrap { grid-template-columns:repeat(2,1fr); }
  .stat + .stat::before { display:none; }
  .hero-scroll { display:none; }
  .hero-cta .btn { width:100%; justify-content:center; }
  .foot-inner { flex-direction:column; align-items:flex-start; }
  .foot-right { text-align:left; }
  .foot-copy { flex-direction:column; }
  .proc-grid { grid-template-columns:1fr; }
  .cb-phone { font-size:clamp(34px,11vw,48px); gap:12px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .reveal { opacity:1; transform:none; }
}
