/* FINERO 피네로 — 철문시공업체 (cmd.techhomecity.com)
   다크 차콜 + 크림슨/앰버 편집형 디자인. GJ "라운드카드+소프트섀도우" 문법을 다크톤으로 변형,
   섹션 순서/레이아웃/악센트 위치는 원 레퍼런스와 다르게 재배치함. */

:root {
  --color-primary:        #A8433D;
  --color-primary-hover:  #C25E52;
  --color-primary-3:      #8F362F;

  --color-accent:         #D97757;
  --color-accent-hover:   #E8967A;

  --color-text:           #F5EDE6;
  --color-text-muted:     #C9B8AE;
  --color-text-subtle:    #8C7266;
  --color-white:          #FFFFFF;

  --color-bg:             #14100D;
  --color-bg-soft:        #1C1714;
  --color-bg-warm:        #241E1A;

  --color-border:         #3A2E27;
  --color-border-light:   #2A211C;

  --color-overlay:        rgba(20, 16, 13, 0.85);
  --shadow-color:         168, 67, 61;

  --font-main: 'Pretendard Variable', 'Apple SD Gothic Neo', sans-serif;
  --font-eng:  'Montserrat', 'Pretendard Variable', sans-serif;

  --radius:    0;
  --shadow:    0 2px 16px rgba(var(--shadow-color), .22);
  --shadow-lg: 0 10px 32px rgba(var(--shadow-color), .32);
  --max-w:     1160px;
  --transition: .22s cubic-bezier(.4,0,.2,1);
  --ease-expo:  cubic-bezier(0.16, 1, 0.3, 1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-main);
  font-size: 1rem;
  line-height: 1.75;
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;
}
body, p, h1, h2, h3, h4, h5, h6, li, td, th, a, span, div, button {
  word-break: keep-all;
  overflow-wrap: break-word;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { font-family: inherit; cursor: pointer; }
h1, h2, h3, h4 { font-weight: 800; letter-spacing: -.02em; }

.container { max-width: var(--max-w); margin-inline: auto; padding-inline: clamp(1rem, 4vw, 2.5rem); }

/* ---------- 그리드 유틸(인라인 고정그리드 금지 규칙 준수) ---------- */
.dp-g2 { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.dp-g3 { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.dp-stat3 { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; text-align:center; align-items:center; }
.dp-stat4 { display:grid; grid-template-columns:repeat(4,1fr); gap:32px; text-align:center; align-items:center; }
@media(max-width:768px) { .dp-g2, .dp-g3 { grid-template-columns:1fr; } .dp-stat4 { grid-template-columns:repeat(2,1fr); } }
@media(max-width:600px) { .dp-stat3, .dp-stat4 { grid-template-columns:1fr; gap:16px; } }

/* ---------- 스크롤 진행바 ---------- */
#scroll-progress { position: fixed; top:0; left:0; width:0%; height:3px; background: var(--color-accent); z-index:9999; transition: width .08s linear; pointer-events:none; }

/* ---------- 헤더 ---------- */
#site-header { position: sticky; top:0; z-index:100; background: rgba(20,16,13,.95); backdrop-filter: blur(12px) saturate(140%); border-bottom:1px solid var(--color-border); box-shadow:0 2px 12px rgba(0,0,0,.35); }
.header-inner { display:flex; align-items:center; justify-content:space-between; height:68px; gap:1rem; }
.site-logo { display:flex; flex-direction:column; line-height:1.3; }
.site-logo__wordmark { font-size:1.3rem; font-weight:900; letter-spacing:-.02em; color:var(--color-text); }
.site-logo__wordmark em { font-style:normal; color: var(--color-accent); font-weight:900; }
.site-logo__tagline { display:block; font-size:.65rem; font-weight:600; letter-spacing:.04em; color: var(--color-text-subtle); }
.main-nav ul { display:flex; gap:1.5rem; }
.main-nav a { color: var(--color-text-muted); font-size:.92rem; font-weight:600; }
.main-nav a:hover, .main-nav a[aria-current="page"] { color: var(--color-accent); }
.header-cta { display:inline-flex; align-items:center; gap:.35rem; background: var(--color-primary); color:#fff; font-size:.88rem; font-weight:800; padding:.55rem 1.2rem; border-radius: var(--radius); transition: var(--transition); }
.header-cta:hover { background: var(--color-primary-hover); transform: translateY(-1px); }
.nav-toggle { display:none; background:none; border:none; color:var(--color-text); }
.nav-toggle svg { width:26px; height:26px; }
@media (max-width: 768px) {
  .nav-toggle { display:block; }
  .header-cta { display:none; }
  .main-nav { display:none; position:absolute; top:68px; left:0; right:0; background: var(--color-bg-soft); padding:1rem 1.25rem 1.5rem; border-top:1px solid var(--color-border); }
  .main-nav.is-open { display:block; }
  .main-nav ul { flex-direction:column; gap:.9rem; }
}

/* ---------- 브레드크럼 ---------- */
.breadcrumb { padding-block:.75rem; background: var(--color-bg-soft); border-bottom:1px solid var(--color-border); }
.breadcrumb__list { display:flex; gap:.5rem; font-size:.82rem; color: var(--color-text-subtle); flex-wrap:wrap; }
.breadcrumb__list li + li::before { content:'>'; margin-right:.5rem; }
.breadcrumb__list a { color: var(--color-accent); }

/* ---------- 히어로(홈): 이미지-좌/텍스트-우 (변형) ---------- */
.hero { background: var(--color-bg); position:relative; overflow:hidden; min-height: clamp(520px, 82vh, 760px); display:flex; align-items:center; padding-block: 6rem 4rem; }
.hero__bg { position:absolute; inset:0; z-index:0; }
.hero__bg img { width:100%; height:100%; object-fit:cover; animation: hero-drift 14s ease-in-out infinite alternate; }
.hero::before { content:''; position:absolute; inset:0; z-index:1; background: linear-gradient(100deg, rgba(20,16,13,.94) 0%, rgba(20,16,13,.82) 38%, rgba(20,16,13,.5) 65%, rgba(20,16,13,.35) 100%); pointer-events:none; }
.hero > .container { max-width: 1240px; position:relative; z-index:2; }
.hero-inner { max-width: 620px; }
.hero__eyebrow { font-size:.78rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color: var(--color-accent); margin-bottom:1rem; }
.hero__title { font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight:900; line-height:1.15; color: var(--color-text); margin-bottom:1.1rem; }
.hero__title em { color: var(--color-accent); font-style:normal; }
.hero__desc { font-size:1.02rem; line-height:1.75; color: var(--color-text-muted); margin-bottom:1.75rem; }
.hero__desc strong { color: var(--color-accent); }
.hero__cta-group { display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:2rem; }

@keyframes hero-drift { from { transform: scale(1); } to { transform: scale(1.08); } }
@media (prefers-reduced-motion: reduce) { .hero__bg img { animation: none; } }

@media (max-width: 960px) {
  .hero { min-height: clamp(420px, 70vh, 600px); align-items:flex-end; padding-block: 3rem 2.5rem; }
  .hero-inner { max-width: 100%; }
  .hero::before { background: linear-gradient(180deg, rgba(20,16,13,.35) 0%, rgba(20,16,13,.75) 55%, rgba(20,16,13,.95) 100%); }
}

/* ---------- 서브페이지 히어로: 중앙정렬 다크 ---------- */
.page-hero { background: var(--color-bg-soft); color: var(--color-text); padding-block: 3.5rem 3rem; text-align:center; }
.page-hero__label { font-size:.75rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color: var(--color-accent); margin-bottom:.75rem; }
.page-hero__title { font-size: clamp(1.8rem, 4vw, 2.7rem); font-weight:900; }
.page-hero__desc { font-size:1.05rem; color: var(--color-text-muted); max-width:640px; margin-inline:auto; }
.page-hero__micro { font-size:.78rem; color: var(--color-text-subtle); margin-top:.65rem; display:block; }

/* ---------- 트러스트바 ---------- */
.trust-bar { background: var(--color-accent); padding-block:.9rem; }
.trust-bar__list { display:flex; justify-content:center; gap:2rem; flex-wrap:wrap; }
.trust-bar__list li { display:flex; align-items:center; gap:.45rem; font-size:.88rem; font-weight:700; color: var(--color-bg); }
.trust-bar__list li::before { content:'✓'; font-weight:900; }

/* ---------- 마퀴 ---------- */
.marquee-wrap { background: var(--color-bg-warm); border-block:1px solid var(--color-border); overflow:hidden; padding-block:.7rem; }
.marquee-track { display:flex; white-space:nowrap; width:max-content; animation: marquee-scroll 46s linear infinite; }
.marquee-track span { font-size:.85rem; font-weight:700; color: var(--color-accent); padding-inline:1.5rem; }
@keyframes marquee-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ---------- 섹션 공통 ---------- */
.section { padding-block: 4.5rem; }
.section--soft { background: var(--color-bg-soft); }
.section__label { display:inline-block; font-size:.75rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color: var(--color-accent); margin-bottom:.75rem; }
.section__title { font-size: clamp(1.6rem, 3.5vw, 2.4rem); font-weight:800; line-height:1.3; color: var(--color-text); margin-bottom:1rem; }
.section__desc { font-size:1.05rem; color: var(--color-text-muted); max-width:640px; margin-bottom:2.5rem; }

/* ---------- 버튼 ---------- */
.btn { display:inline-flex; align-items:center; gap:.55rem; border-radius: var(--radius); font-weight:700; font-size:.85rem; letter-spacing:.04em; border:1px solid transparent; transition: var(--transition); padding:1rem 2.1rem; }
.btn--primary { background: var(--color-primary); color:#fff; border-color: var(--color-primary); box-shadow:0 4px 16px rgba(var(--shadow-color),.3); }
.btn--primary:hover { background: var(--color-primary-hover); transform: translateY(-2px); }
.btn--ghost { background:transparent; color: var(--color-text-muted); border:1px solid var(--color-border); }
.btn--ghost:hover { border-color: var(--color-accent); color: var(--color-accent); }
.btn--outline { background:transparent; color: var(--color-accent); border:1px solid var(--color-accent); }
.btn--outline:hover { background: var(--color-accent); color: var(--color-bg); }
.btn--lg { padding:1.1rem 2.6rem; font-size:.9rem; }

/* ---------- 카드 공식(라운드+소프트섀도우+hover 상승) ---------- */
.service-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap:1.5rem; }
.service-grid.dp-g3 { grid-template-columns: repeat(3,1fr); }
@media(max-width:768px) { .service-grid.dp-g3 { grid-template-columns:1fr; } }
.service-card { background: var(--color-bg-warm); border:1px solid var(--color-border); border-radius: var(--radius); overflow:hidden; transition: var(--transition); }
.service-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); border-color: rgba(217,119,87,.4); }
.service-card__img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.service-card__body { padding:1.25rem; }
.service-card__title { font-size:1.1rem; font-weight:800; color: var(--color-text); margin-bottom:.5rem; }
.service-card__desc { font-size:.9rem; color: var(--color-text-muted); line-height:1.65; margin-bottom:1rem; }
.service-card__link { font-size:.85rem; font-weight:700; color: var(--color-accent); }
.service-card__link::after { content:'→'; margin-left:.3rem; }

.pain-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(240px,1fr)); gap:1.25rem; }
.pain-card { background: var(--color-bg-warm); border:1px solid var(--color-border); border-top:3px solid var(--color-accent); border-radius: var(--radius); padding:1.5rem 1.25rem; display:flex; flex-direction:column; gap:.6rem; transition: var(--transition); }
.pain-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); }
.pain-card__icon { width:38px; height:38px; color: var(--color-accent); }
.pain-card__title { font-weight:800; color: var(--color-text); }
.pain-card__desc { font-size:.88rem; color: var(--color-text-muted); line-height:1.6; }

/* ---------- Why 4단계 ---------- */
.why-steps { display:grid; grid-template-columns: repeat(4,1fr); position:relative; margin-top:3rem; }
.why-steps::before { content:''; position:absolute; top:24px; left:12.5%; right:12.5%; height:1px; border-top:1px dashed var(--color-border); }
.why-step { display:flex; flex-direction:column; align-items:center; text-align:center; position:relative; z-index:1; opacity:0; transform: translateY(24px); transition: opacity .55s ease, transform .55s ease; }
.why-step.visible { opacity:1; transform:none; }
.why-step__num { width:48px; height:48px; border-radius:0; background: var(--color-primary); color:#fff; font-size:.8rem; font-weight:900; font-family: var(--font-eng); display:flex; align-items:center; justify-content:center; margin-bottom:1rem; }
.why-step__title { font-size:.98rem; font-weight:800; color: var(--color-text); margin-bottom:.4rem; }
.why-step__desc { font-size:.85rem; color: var(--color-text-muted); line-height:1.7; }
@media (max-width:720px) { .why-steps { grid-template-columns:repeat(2,1fr); gap:2rem 1rem; } .why-steps::before{display:none;} }
@media (max-width:400px) { .why-steps { grid-template-columns:1fr; } }

/* ---------- 기능 카드(led-feature 계열, 악센트 좌측으로 변형) ---------- */
.feature-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:1.15rem; margin-top:2.25rem; }
.feature-card { position:relative; background: var(--color-bg-warm); border:1px solid var(--color-border); border-radius: var(--radius); padding:1.7rem 1.5rem; box-shadow:0 2px 12px rgba(0,0,0,.18); overflow:hidden; }
.feature-card::before { content:''; position:absolute; top:0; left:0; bottom:0; width:3px; background: linear-gradient(180deg, var(--color-accent), var(--color-primary)); transform: scaleY(0); transform-origin:top; transition: transform .65s var(--ease-expo); }
.feature-card.visible::before { transform: scaleY(1); }
.feature-card:hover { box-shadow: var(--shadow-lg); border-color: rgba(217,119,87,.4); }
.feature-card__num { display:inline-block; font-size:.62rem; font-weight:800; color: var(--color-accent); background: rgba(217,119,87,.14); padding:.16em .55em; border-radius:0; margin-bottom:.75rem; }
.feature-card__icon { width:44px; height:44px; border-radius:0; background: var(--color-primary); color:#fff; display:flex; align-items:center; justify-content:center; margin-bottom:1rem; }
.feature-card__title { font-size:1rem; font-weight:800; color: var(--color-text); margin-bottom:.5rem; }
.feature-card__desc { font-size:.88rem; color: var(--color-text-muted); line-height:1.65; }
@media (max-width:900px) { .feature-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width:640px) { .feature-grid { grid-template-columns: 1fr; } }

/* ---------- 시공사례 Before/After (정적 배치, 슬라이더 금지) ---------- */
.case-ba { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.case-ba__item { position:relative; border-radius: var(--radius); overflow:hidden; border:1px solid var(--color-border); }
.case-ba__item img { aspect-ratio:4/3; object-fit:cover; }
.case-ba__tag { position:absolute; top:.75rem; left:.75rem; background: rgba(20,16,13,.82); color:#fff; font-size:.75rem; font-weight:800; padding:.3rem .75rem; border-radius:0; letter-spacing:.04em; }
.case-ba__item--after .case-ba__tag { background: var(--color-accent); color: var(--color-bg); }
@media (max-width:640px) { .case-ba { grid-template-columns:1fr; } }

.portfolio-card { background: var(--color-bg-warm); border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow); border:1px solid var(--color-border); transition: var(--transition); }
.portfolio-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-4px); }
.portfolio-meta { padding:1.1rem 1.25rem; }
.portfolio-comment { font-size:.88rem; font-weight:600; color: var(--color-text); margin-bottom:.5rem; }
.portfolio-tags span { display:inline-block; font-size:.72rem; font-weight:700; color: var(--color-accent); background: rgba(217,119,87,.12); border:1px solid rgba(217,119,87,.3); padding:.15rem .6rem; border-radius:0; margin-right:.35rem; margin-top:.35rem; }

/* ---------- 작업현장 3열 밀착형 그리드(사진 확대 + 오버레이 캡션) ---------- */
.portfolio-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:2px; background: var(--color-border); }
.portfolio-tile { position:relative; aspect-ratio:1/1; overflow:hidden; display:block; }
.portfolio-tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition: transform .5s ease; }
.portfolio-tile:hover img { transform: scale(1.06); }
.portfolio-tile::after { content:''; position:absolute; inset:0; background: linear-gradient(to top, rgba(10,8,6,.92) 0%, rgba(10,8,6,.45) 40%, transparent 70%); pointer-events:none; }
.portfolio-tile__label { position:absolute; left:0; right:0; bottom:0; z-index:1; padding:1rem 1.1rem; }
.portfolio-tile__title { font-size:.92rem; font-weight:800; color:#fff; margin-bottom:.35rem; }
.portfolio-tile__tags span { display:inline-block; font-size:.68rem; font-weight:700; color: var(--color-accent); background: rgba(20,16,13,.6); padding:.12rem .5rem; margin-right:.3rem; }
@media (max-width:768px) { .portfolio-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width:480px) { .portfolio-grid { grid-template-columns: 1fr; } }

/* ---------- 프로세스 5단계 ---------- */
.process-steps { display:flex; position:relative; margin-top:2.5rem; }
.process-steps::before { content:''; position:absolute; top:23px; left:10%; right:10%; height:2px; background: var(--color-border); }
.process-step { flex:1; padding:4rem .6rem 0; text-align:center; position:relative; opacity:0; transform: translateY(24px); transition: opacity .55s ease, transform .55s ease; }
.process-step.visible { opacity:1; transform:none; }
.step-num { position:absolute; top:0; left:50%; width:46px; height:46px; border-radius:0; background: var(--color-primary); color:#fff; font-weight:900; display:flex; align-items:center; justify-content:center; box-shadow:0 0 0 5px var(--color-bg), 0 4px 14px rgba(0,0,0,.3); transform: translateX(-50%) scale(.45); transition: transform .5s cubic-bezier(.34,1.56,.64,1) .15s; }
.process-step.visible .step-num { transform: translateX(-50%) scale(1); }
.process-step h3 { font-size:1rem; margin-bottom:.5rem; color: var(--color-text); }
.process-step p { font-size:.85rem; color: var(--color-text-muted); line-height:1.65; }
@media (max-width:900px) { .process-steps { flex-wrap:wrap; } .process-steps::before{display:none;} .process-step{flex:1 1 33%;} }
@media (max-width:600px) {
  .process-steps { flex-direction:column; }
  .process-step { flex:1 1 auto; padding:0 0 0 3.5rem; text-align:left; margin-bottom:1.75rem; }
  .step-num { left:0; top:0; transform: translateX(0) scale(.45); }
  .process-step.visible .step-num { transform: translateX(0) scale(1); }
}

/* ---------- 통계 바 ---------- */
.stats-bar { background: var(--color-bg-soft); padding-block:2.5rem; border-block:1px solid var(--color-border); }
.stat-item { text-align:center; }
.stat-item__num { font-size:2rem; font-weight:900; color: var(--color-accent); }
.stat-item__label { font-size:.78rem; font-weight:600; color: var(--color-text-muted); letter-spacing:.04em; margin-top:.3rem; }

/* ---------- FAQ ---------- */
.faq-list { max-width:820px; display:flex; flex-direction:column; gap:.75rem; }
.faq-item { border:1px solid var(--color-border); border-radius: var(--radius); overflow:hidden; background: var(--color-bg-warm); }
.faq-item__q { width:100%; background:transparent; text-align:left; padding:1.1rem 1.5rem; font-size:.98rem; font-weight:700; color: var(--color-text); display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.faq-item__q[aria-expanded="true"] { background: var(--color-primary); color:#fff; }
.faq-item__chevron { width:20px; height:20px; flex-shrink:0; transition: var(--transition); }
.faq-item__q[aria-expanded="true"] .faq-item__chevron { transform: rotate(180deg); }
.faq-item__a { display:none; padding:1rem 1.5rem 1.25rem; font-size:.93rem; color: var(--color-text-muted); line-height:1.75; }
.faq-item__a.is-open { display:block; }

/* ---------- CTA 배너(변형: 각도/글로우) ---------- */
.cta-band { background: linear-gradient(160deg, var(--color-primary) 0%, #5c231f 100%); position:relative; overflow:hidden; color:#fff; padding-block:4.5rem; text-align:center; }
.cta-band::before { content:''; position:absolute; inset:0; background: radial-gradient(circle at 70% 30%, rgba(217,119,87,.35), transparent 60%); pointer-events:none; }
.cta-band__inner { position:relative; z-index:1; }
.cta-band__title { font-size: clamp(1.6rem, 3.5vw, 2.2rem); font-weight:900; margin-bottom:1rem; }
.cta-band__title em { color: var(--color-accent); font-style:normal; }
.cta-band__desc { font-size:1rem; color: rgba(255,255,255,.78); margin-bottom:2rem; }

/* ---------- 마이크로카피 CTA 블록 ---------- */
.cro-cta-block { text-align:center; padding-block:2rem; }
.cro-cta-btn { background: var(--color-accent); color: var(--color-bg); font-weight:800; padding:1rem 2.5rem; border-radius: var(--radius); min-height:52px; display:inline-flex; align-items:center; }
.cro-cta-btn:hover { background: var(--color-accent-hover); transform: translateY(-2px); }
.cro-micro-copy { margin-top:.65rem; font-size:.78rem; color: var(--color-text-subtle); }

/* ---------- 트러스트 뱃지 카드 ---------- */
.trust-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap:1.25rem; }
.trust-card { display:flex; gap:.9rem; background: var(--color-bg-warm); border:1px solid rgba(217,119,87,.25); border-left:4px solid var(--color-accent); border-radius: var(--radius); padding:1.25rem 1.1rem; }
.trust-card__icon { width:42px; height:42px; flex-shrink:0; background: rgba(217,119,87,.14); border-radius:0; display:flex; align-items:center; justify-content:center; color: var(--color-accent); }
.trust-card__title { font-weight:800; color: var(--color-text); margin-bottom:.25rem; font-size:.92rem; }
.trust-card__desc { font-size:.82rem; color: var(--color-text-muted); }

/* ---------- 사이트맵 ---------- */
.sitemap-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(240px,1fr)); gap:2rem; }
.sitemap-group { background: var(--color-bg-warm); border:1px solid var(--color-border); border-top:3px solid var(--color-accent); border-radius: var(--radius); padding:1.5rem 1.25rem; transition: var(--transition); }
.sitemap-group:hover { box-shadow: var(--shadow-lg); transform: translateY(-3px); }
.sitemap-group__icon { width:38px; height:38px; color: var(--color-accent); margin-bottom:.75rem; }
.sitemap-group h3 { color: var(--color-text); font-size:1rem; margin-bottom:.9rem; }
.sitemap-list li { margin-bottom:.55rem; font-size:.9rem; }
.sitemap-list a { color: var(--color-text-muted); }
.sitemap-list a::before { content:'→'; color: var(--color-accent); margin-right:.4rem; }
.sitemap-list a:hover { color: var(--color-accent); }
.sitemap-planned { color: var(--color-text-subtle); font-size:.85rem; }

/* ---------- 상담 페이지 ---------- */
.consult-contact-card { border-radius: var(--radius); padding:2.5rem; text-align:center; margin-bottom:1.25rem; }
.consult-contact-card--primary { background: var(--color-primary); }
.consult-contact-card--sms { background: var(--color-bg-warm); border:1px solid var(--color-border); }
.consult-phone-number { display:block; font-size:2.2rem; font-weight:900; color:#fff; }
.consult-contact-card--sms .consult-phone-number { color: var(--color-accent); }
.consult-info-item { display:flex; gap:.9rem; background: var(--color-bg-warm); border:1px solid var(--color-border); border-radius: var(--radius); padding:1.25rem; align-items:flex-start; }
.consult-info-item__icon { color: var(--color-accent); flex-shrink:0; width:28px; height:28px; }
@media (max-width:600px) { .consult-phone-number { font-size:1.7rem; } }

/* ---------- 푸터(변형: 퀵링크-좌/상호정보-우) ---------- */
#site-footer { background:#0D0A08; color: var(--color-text-subtle); padding-block:3rem 2rem; font-size:.85rem; border-top:2px solid var(--color-primary); }
.footer-inner { display:grid; grid-template-columns: auto 1fr; gap:2.5rem; }
.footer-quicknav ul { display:flex; flex-direction:column; gap:.6rem; }
.footer-quicknav a { color: var(--color-text-muted); }
.footer-quicknav a:hover { color: var(--color-accent); }
.footer-dl { text-align:right; }
.footer-dl p { margin-bottom:.5rem; color: var(--color-text-subtle); }
.footer-dl span { display:inline-block; font-size:.7rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color: var(--color-accent); background: rgba(217,119,87,.12); padding:.15rem .5rem; border-radius:0; min-width:5em; margin-right:.5rem; }
.footer-bottom { margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--color-border-light); text-align:center; font-size:.78rem; }
@media (max-width:768px) { .footer-inner { grid-template-columns:1fr; } .footer-dl { text-align:left; } }

/* ---------- 지역 내부링크 밴드 ---------- */
.region-links { background: var(--color-bg-soft); border-block:1px solid var(--color-border); padding-block:1.25rem; }
.region-links__list { display:flex; flex-wrap:wrap; gap:.6rem .9rem; justify-content:center; font-size:.85rem; }
.region-links__list a { color: var(--color-text-muted); }
.region-links__list a:hover { color: var(--color-accent); }

/* ---------- 플로팅 CTA ---------- */
#floating-cta { position:fixed; bottom:24px; right:20px; z-index:9000; opacity:0; transform: translateY(16px); transition: opacity .35s ease, transform .35s ease; pointer-events:none; }
#floating-cta.is-visible { opacity:1; transform:translateY(0); pointer-events:auto; }
#floating-cta a { display:flex; align-items:center; gap:8px; padding:13px 22px; background: var(--color-accent); color: var(--color-bg); border-radius:0; box-shadow:0 4px 20px rgba(217,119,87,.45); font-weight:800; font-size:.9rem; }
#floating-cta a:hover { background: var(--color-accent-hover); }
@media (max-width:768px) { #floating-cta { display:none; } }

/* ---------- 모바일 스티키 CTA ---------- */
#mob-bar { display:none; }
@media (max-width:768px) {
  body { padding-bottom:64px; }
  #mob-bar { display:flex; position:fixed; bottom:0; left:0; right:0; z-index:9000; background: var(--color-bg-soft); border-top:1px solid var(--color-border); height:64px; }
  #mob-bar a { flex:1; display:flex; align-items:center; justify-content:center; gap:.4rem; font-weight:800; font-size:.92rem; }
  #mob-bar a:first-child { background: var(--color-primary); color:#fff; }
  #mob-bar a:last-child { background: var(--color-accent); color: var(--color-bg); }
}

/* ---------- 표 스크롤 래퍼 ---------- */
.table-scroll { overflow-x:auto; }
table { border-collapse: collapse; width:100%; min-width:480px; }
th, td { padding:.75rem 1rem; border:1px solid var(--color-border); font-size:.9rem; text-align:left; }
th { background: var(--color-bg-warm); color: var(--color-accent); }

/* ---------- 리빌 애니메이션 ---------- */
.fade-up { opacity:0; transform: translateY(40px); transition: opacity .6s ease, transform .6s ease; }
.fade-up.visible { opacity:1; transform:none; }
.fade-up.delay-1 { transition-delay:.1s; }
.fade-up.delay-2 { transition-delay:.2s; }
.fade-up.delay-3 { transition-delay:.3s; }
.fade-up.delay-4 { transition-delay:.4s; }

.reveal-anim { opacity:0; transform: translateY(32px); transition: opacity .75s var(--ease-expo), transform .75s var(--ease-expo); }
body.js-ready .reveal-anim.is-visible { opacity:1; transform:none; }
.reveal-anim.delay-1 { transition-delay:.08s; }
.reveal-anim.delay-2 { transition-delay:.16s; }
.reveal-anim.delay-3 { transition-delay:.24s; }

.reveal-left { opacity:0; transform: translateX(-40px); transition: opacity .75s var(--ease-expo), transform .75s var(--ease-expo); }
body.js-ready .reveal-left.is-visible { opacity:1; transform:none; }

.reveal-pop { opacity:0; transform: scale(.92); transition: opacity .6s var(--ease-expo), transform .6s var(--ease-expo); }
body.js-ready .reveal-pop.is-visible { opacity:1; transform:scale(1); }

/* ---------- 404 ---------- */
.error-page { min-height:70vh; display:flex; align-items:center; justify-content:center; text-align:center; padding:2rem; }
.error-page__code { font-size:5rem; font-weight:900; color: var(--color-accent); }
.error-page__title { font-size:1.4rem; font-weight:800; margin:1rem 0; color: var(--color-text); }
.error-page__desc { color: var(--color-text-muted); margin-bottom:2rem; }
