/*
Theme Name: Neve Child - 도안상떼빌센트럴시티
Template: neve
Version: 1.0
Text Domain: neve-child-doan
*/

/* ==========================================================================
   디자인 토큰 (도안 상떼빌 센트럴시티 브랜드 컬러)
   로고 컬러(초록~하늘 그라디언트) 참고, 보조색은 딥네이비, 뉴트럴은 웜그레이
   ========================================================================== */
:root {
  --dst-primary: #1f8a5f;      /* 브랜드 그린 */
  --dst-primary-dark: #146b47;
  --dst-accent: #0f2a4a;       /* 딥 네이비 (강조/배지) */
  --dst-gold: #c9a15a;         /* 포인트 골드 (프리미엄 느낌) */
  --dst-bg: #faf9f6;           /* 웜 뉴트럴 배경 */
  --dst-ink: #1c1c1c;
  --dst-ink-soft: #5a5a5a;
  --dst-line: #e7e3da;
  --dst-radius: 18px;
}

body {
  font-family: 'Pretendard', -apple-system, BlinkMacSystemFont, 'Malgun Gothic', sans-serif;
  color: var(--dst-ink);
  background: #fff;
}

h1, h2, h3, h4, .premium-hero h1 {
  font-family: 'Pretendard', sans-serif;
  font-weight: 800;
  letter-spacing: -0.02em;
}

/* ==========================================================================
   premium-hero : 히어로 섹션 (Ken Burns 배경 + 레이어드 타이포)
   ========================================================================== */
.premium-hero {
  position: relative;
  min-height: 92vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #10130f;
}
.premium-hero .wp-block-cover__image-background,
.premium-hero img.wp-block-cover__image-background {
  animation: dstHeroKenburns 7s linear infinite alternate;
  transform-origin: center;
}
@keyframes dstHeroKenburns {
  0%   { transform: scale(1); }
  100% { transform: scale(1.2); }
}
@media (prefers-reduced-motion: reduce) {
  .premium-hero .wp-block-cover__image-background { animation: none; }
}
.premium-hero .wp-block-cover__background {
  background: linear-gradient(180deg, rgba(10,14,10,.55) 0%, rgba(10,14,10,.35) 40%, rgba(10,14,10,.82) 100%) !important;
}
.premium-hero .hero-kicker {
  display: inline-block;
  font-size: 13px;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: #cfe8db;
  margin-bottom: 18px;
  opacity: 0;
  animation: dstFadeUp .7s ease forwards;
  animation-delay: .05s;
}
.premium-hero h1 {
  color: #fff;
  font-size: clamp(2.2rem, 5vw, 4rem);
  line-height: 1.15;
  margin: 0 0 20px;
  opacity: 0;
  animation: dstFadeUp .7s ease forwards;
  animation-delay: .2s;
}
.premium-hero h1 .accent {
  display: block;
  width: 64px;
  height: 4px;
  background: var(--dst-gold);
  margin-top: 22px;
  border-radius: 2px;
}
.premium-hero .hero-tagline {
  display: inline-block;
  color: #fff;
  font-size: 15px;
  padding: 10px 20px;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.28);
  margin-bottom: 34px;
  opacity: 0;
  animation: dstFadeUp .7s ease forwards;
  animation-delay: .35s;
}
.premium-hero .wp-block-buttons {
  opacity: 0;
  animation: dstFadeUp .7s ease forwards;
  animation-delay: .5s;
}
@keyframes dstFadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ==========================================================================
   premium-section / premium-dark : 공용 섹션
   ========================================================================== */
.premium-section {
  padding: 100px 24px;
  max-width: 1180px;
  margin: 0 auto;
}
.premium-section.is-narrow { max-width: 880px; }
.premium-dark {
  background: var(--dst-accent);
  color: #fff;
  padding: 100px 24px;
}
.premium-dark h2, .premium-dark h3 { color: #fff; }
.premium-kicker {
  display: inline-block;
  font-size: 13px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--dst-primary);
  font-weight: 700;
  margin-bottom: 12px;
}
.premium-dark .premium-kicker { color: var(--dst-gold); }
.premium-section h2, .premium-dark h2 {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  margin: 0 0 16px;
}
.premium-lead {
  color: var(--dst-ink-soft);
  font-size: 17px;
  line-height: 1.7;
  max-width: 640px;
}
.premium-dark .premium-lead { color: #cfd6dc; }

/* ==========================================================================
   premium-cards : 카드 그리드 (입지환경/프리미엄6 등)
   ========================================================================== */
.premium-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
  margin-top: 48px;
}
.premium-cards > .wp-block-group__inner-container,
.premium-gallery > .wp-block-group__inner-container,
.premium-stats > .wp-block-group__inner-container {
  display: contents;
}
.premium-card {
  background: #fff;
  border: 1px solid var(--dst-line);
  border-radius: var(--dst-radius);
  overflow: hidden;
  transition: transform .25s ease, box-shadow .25s ease;
}
.premium-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(15,42,74,.12);
}
.premium-card img { display: block; width: 100%; height: 200px; object-fit: cover; }
.premium-card .premium-card-body { padding: 22px; }
.premium-card h3 { font-size: 18px; margin: 0 0 8px; }
.premium-card p { color: var(--dst-ink-soft); font-size: 14px; line-height: 1.6; margin: 0; }

/* 2열 카드 (사업개요 등에서 사용) */
.premium-cards.cols-2 { grid-template-columns: repeat(2, 1fr); }
.premium-cards.cols-4 { grid-template-columns: repeat(4, 1fr); }

@media (max-width: 900px) {
  .premium-cards, .premium-cards.cols-2, .premium-cards.cols-4 {
    grid-template-columns: 1fr !important;
  }
}

/* ==========================================================================
   premium-gallery : 이미지 갤러리 그리드
   ========================================================================== */
.premium-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 40px;
}
.premium-gallery figure { margin: 0; border-radius: 14px; overflow: hidden; }
.premium-gallery img { display: block; width: 100%; height: 260px; object-fit: cover; transition: transform .4s ease; }
.premium-gallery figure:hover img { transform: scale(1.06); }
.premium-gallery figcaption {
  padding: 10px 4px 0;
  font-size: 13px;
  color: var(--dst-ink-soft);
  text-align: center;
}
@media (max-width: 900px) {
  .premium-gallery { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .premium-gallery { grid-template-columns: 1fr; }
}

/* ==========================================================================
   premium-stats : 숫자 강조 (세대수/면적 등)
   ========================================================================== */
.premium-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-top: 40px;
}
.premium-stat {
  text-align: center;
  padding: 28px 16px;
  border-radius: var(--dst-radius);
  background: var(--dst-bg);
  border: 1px solid var(--dst-line);
}
.premium-stat .num { display: block; font-size: 30px; font-weight: 800; color: var(--dst-primary); margin-bottom: 6px; }
.premium-stat .label { font-size: 13px; color: var(--dst-ink-soft); }
@media (max-width: 900px) {
  .premium-stats { grid-template-columns: repeat(2, 1fr); }
}

/* ==========================================================================
   fixed-call-button : 하단 고정 전화 버튼 (모바일 중심)
   ========================================================================== */
.fixed-call-button {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 9999;
  margin: 0 !important;
  padding: 0 !important;
}
.fixed-call-button .wp-block-button__link,
.fixed-call-button .elementor-button {
  display: block;
  width: 100%;
  text-align: center;
  border-radius: 0 !important;
  background: var(--dst-primary) !important;
  color: #fff !important;
  font-size: 16px;
  font-weight: 700;
  padding: 16px !important;
  letter-spacing: .02em;
  animation: dstCallButtonNudge 3s ease-in-out infinite;
  transform-origin: center;
}
.fixed-call-button .wp-block-button__link:hover,
.fixed-call-button .elementor-button:hover {
  animation-play-state: paused;
}
@keyframes dstCallButtonNudge {
  0%, 75%, 100% { transform: scale(1); }
  80% { transform: scale(1.06); }
  85% { transform: scale(0.99); }
  90% { transform: scale(1.03); }
}
@media (prefers-reduced-motion: reduce) {
  .fixed-call-button .wp-block-button__link { animation: none; }
}
@media (min-width: 901px) {
  /* 데스크톱에서는 화면 폭이 넓어 지나치게 크게 보이지 않도록 축소 */
  .fixed-call-button .wp-block-button__link { max-width: 420px; margin: 0 auto; border-radius: 999px 999px 0 0 !important; }
}
body { padding-bottom: 60px; } /* 하단 고정 버튼에 콘텐츠 가리지 않게 */

/* ==========================================================================
   상단 메뉴 고정 (Neve 기본 sticky header 옵션과 별개로 강제 보강)
   ========================================================================== */
.header--row {
  position: sticky;
  top: 0;
  z-index: 999;
  background: #fff;
}

/* ==========================================================================
   버튼 공통
   ========================================================================== */
.wp-block-button__link {
  border-radius: 999px !important;
  padding: 14px 32px !important;
  font-weight: 700 !important;
  transition: transform .2s ease, box-shadow .2s ease;
}
.wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-button.is-style-outline .wp-block-button__link {
  border: 2px solid #fff !important;
  background: transparent !important;
}

/* 모바일 히어로 여백 보정 */
@media (max-width: 600px) {
  .premium-hero { min-height: 88vh; padding: 0 20px; }
  .premium-section, .premium-dark { padding: 64px 20px; }
}

/* ==========================================================================
   메인 메뉴 - 전화연결 버튼 (2026-07-03)
   ========================================================================== */
#nv-primary-navigation-main .menu-item.call-menu-btn {
  margin-left: 8px;
}
#nv-primary-navigation-main .menu-item.call-menu-btn > .wrap > a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--dst-primary);
  color: #fff !important;
  padding: 10px 20px;
  border-radius: 999px;
  font-weight: 700;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  box-shadow: 0 4px 14px rgba(31,138,95,.35);
}
#nv-primary-navigation-main .menu-item.call-menu-btn > .wrap > a:hover {
  background: var(--dst-primary-dark);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(31,138,95,.45);
}

/* ==========================================================================
   푸터 메뉴 - 버튼형 표기 (2026-07-03)
   ========================================================================== */
.footer-menu.nav-ul {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.footer-menu.nav-ul li { list-style: none; }
.footer-menu .wrap a {
  display: inline-block;
  padding: 10px 22px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.24);
  color: #fff !important;
  font-weight: 600;
  font-size: 14px;
  transition: background .2s ease, transform .2s ease, border-color .2s ease;
  animation: dstFooterMenuNudge 3.4s ease-in-out infinite;
  animation-delay: calc(var(--nudge-i, 0) * .15s);
}
.footer-menu li:nth-child(1) .wrap a { --nudge-i: 0; }
.footer-menu li:nth-child(2) .wrap a { --nudge-i: 1; }
.footer-menu li:nth-child(3) .wrap a { --nudge-i: 2; }
.footer-menu li:nth-child(4) .wrap a { --nudge-i: 3; }
.footer-menu li:nth-child(5) .wrap a { --nudge-i: 4; }
.footer-menu .wrap a:hover {
  background: var(--dst-primary);
  border-color: var(--dst-primary);
  transform: translateY(-2px);
  animation-play-state: paused;
}
@keyframes dstFooterMenuNudge {
  0%, 82%, 100% { transform: translateY(0); }
  86% { transform: translateY(-4px); }
  90% { transform: translateY(1px); }
  94% { transform: translateY(-2px); }
}
@media (prefers-reduced-motion: reduce) {
  .footer-menu .wrap a { animation: none; }
}

/* 관련 페이지 안내(본문 내부 링크 버튼) 및 사이드바 링크 리스트도 동일 톤으로 */
.related-links .wp-block-button__link.is-style-outline {
  border-color: var(--dst-primary) !important;
  color: var(--dst-primary) !important;
  font-weight: 700 !important;
}
.related-links .wp-block-button__link.is-style-outline:hover {
  background: var(--dst-primary) !important;
  color: #fff !important;
}

/* ==========================================================================
   푸터 - 관리자/연락처 정보 (2026-07-03)
   ========================================================================== */
.footer-contact-info {
  font-size: 15px;
  line-height: 1.9;
}
.footer-contact-info a {
  color: var(--dst-gold);
  font-weight: 700;
  text-decoration: none;
}
.footer-contact-info a:hover { text-decoration: underline; }

/* 하단 위젯 영역 내 일반 링크 목록도 버튼형으로 통일 */
#footer-two-widgets .wp-block-list,
[class*="footer"] .wp-block-list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
[class*="footer"] .wp-block-list li a {
  display: inline-block;
  padding: 8px 18px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.24);
  color: #fff !important;
  font-size: 14px;
  transition: background .2s ease, transform .2s ease;
}
[class*="footer"] .wp-block-list li a:hover {
  background: var(--dst-primary);
  transform: translateX(4px);
}

/* ==========================================================================
   모바일 메뉴 버튼 - 흔들림 애니메이션 + "메뉴" 라벨 (2026-07-03)
   ========================================================================== */
.navbar-toggle {
  position: relative;
  animation: dstMenuWiggle 2.6s ease-in-out infinite;
  transform-origin: center;
}
.navbar-toggle::after {
  content: "메뉴";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 2px;
  font-size: 11px;
  font-weight: 700;
  color: var(--dst-primary);
  white-space: nowrap;
  pointer-events: none;
}
@keyframes dstMenuWiggle {
  0%, 100% { transform: rotate(0deg); }
  5%  { transform: rotate(-12deg); }
  10% { transform: rotate(10deg); }
  15% { transform: rotate(-8deg); }
  20% { transform: rotate(6deg); }
  25% { transform: rotate(0deg); }
  /* 이후 정지 구간 - 너무 산만하지 않도록 주기적으로만 반복 */
}
@media (prefers-reduced-motion: reduce) {
  .navbar-toggle { animation: none; }
}
