/* ==========================================================
   2단지(/2danji) 전용 스타일 - 공용 styles.css 위에 추가 적용
   화이트 베이스 + 레드(#CB2435) 포인트 + 다크그레이(#344040) 텍스트
   ========================================================== */

:root{
  --d2-red:#CB2435;
  --d2-red-hover:#a81d2b;
  --d2-text:#344040;
  --d2-dark-btn:#363E41;
  --d2-dark-btn-hover:#252b2d;
  --d2-bg:#FFFFFF;
  --d2-bg-alt:#F5F6F6;
  --d2-line:#E4E7E7;
}

/* 헤더 - 화이트 베이스 (메인 허브의 다크네이비 헤더와 다름) */
.d2-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:rgba(255,255,255,.97);backdrop-filter:blur(6px);
  box-shadow:0 1px 0 rgba(0,0,0,.06);
}
.d2-header .nav-wrap{
  max-width:1200px;margin:0 auto;padding:0 24px;
  display:flex;align-items:center;justify-content:space-between;height:76px;
}
.d2-header .logo-full{height:22px;}
.d2-header .tel-icon-btn{
  width:38px;height:38px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:var(--d2-bg-alt);color:var(--d2-text);
}
.d2-header .menu-toggle{color:var(--d2-text);background:none;border:0;font-size:1.5rem;cursor:pointer;}
.d2-header .header-tel-number{color:var(--d2-text);font-weight:700;font-size:.92rem;letter-spacing:.01em;white-space:nowrap;}
.d2-header .header-tel-number:hover{color:var(--d2-red);}
@media (max-width:480px){
  .d2-header .header-tel-number{display:none;}
}
@media (max-width:420px){
  .d2-logo-sub{display:none;}
}

/* 히어로 */
.d2-hero{
  position:relative;min-height:100vh;padding-top:76px;
  display:flex;flex-direction:column;justify-content:flex-start;align-items:center;
  text-align:center;overflow:hidden;
}
.d2-hero-bg{
  position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,#B5DAD3 0%,#C8DED2 55%,#EFEEE4 100%);
}
.d2-hero-bg::after{
  content:attr(data-placeholder);position:absolute;bottom:40px;left:0;right:0;
  text-align:center;color:rgba(52,64,64,.5);font-size:.8rem;
}
.d2-hero-bg:not(:empty)::after{content:none;}
.d2-hero-bg img{width:100%;height:100%;object-fit:cover;object-position:bottom;}
.d2-hero-eyebrow{font-size:1.15rem;color:var(--d2-text);margin-bottom:8px;font-weight:500;}
.d2-hero-title{font-size:clamp(2rem,5vw,3rem);font-weight:800;color:var(--d2-text);line-height:1.3;margin-bottom:28px;}
.d2-hero-en{
  font-family:'Poppins','Pretendard',sans-serif;font-weight:500;
  font-size:1.15rem;letter-spacing:.12em;color:var(--d2-text);margin-bottom:6px;
}
.d2-hero-danji{font-size:1.15rem;font-weight:700;color:var(--d2-text);}
.d2-hero-disclaimer{font-size:.72rem;color:var(--gray);margin-top:24px;}

.d2-hero-actions{
  display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:340px;
  padding:0 20px;
}
.d2-pill{
  display:inline-flex;align-items:center;gap:6px;
  padding:12px 20px;border-radius:999px;font-size:.88rem;font-weight:700;
  white-space:nowrap;
}
.d2-pill-outline{background:var(--d2-bg);border:1px solid var(--d2-line);color:var(--d2-text);}
.d2-pill-dark{background:var(--d2-dark-btn);color:#fff;}
.d2-pill-dark:hover{background:var(--d2-dark-btn-hover);}
.d2-pill-red{background:var(--d2-red);color:#fff;}
.d2-pill-red:hover{background:var(--d2-red-hover);}

/* 상태 배지 (공용 컴포넌트 - 다른 단지에도 재사용) */
.d2-status-badge{
  display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:10px 18px;border-radius:999px;background:var(--d2-bg);
  border:1px solid var(--d2-text);font-size:.74rem;font-weight:700;color:var(--d2-text);
  box-shadow:0 6px 18px rgba(0,0,0,.1);white-space:nowrap;line-height:1.4;text-align:center;
}

/* 섹션 공통 */
.d2-section{padding:88px 0;}
.d2-section-alt{background:var(--d2-bg-alt);}
.d2-eyebrow{
  font-family:'Poppins','Pretendard',sans-serif;font-size:.85rem;font-weight:700;
  letter-spacing:.1em;color:var(--d2-red);text-transform:uppercase;margin-bottom:16px;display:block;
}
.d2-h2{font-size:clamp(1.5rem,3vw,2.1rem);font-weight:800;color:var(--d2-text);line-height:1.4;}

/* OVERVIEW 표 (기존 overview-table 재사용, 컬러만 오버라이드) */
.d2-section .overview-table th{color:var(--gray);}
.d2-section .overview-table td{color:var(--d2-text);}
.d2-section .overview-table th,
.d2-section .overview-table td{border-bottom-color:var(--d2-line);}

/* LOCATION 4항목 (split-row 패턴 재사용, 아이콘 슬롯 추가) */
.d2-loc-icon{
  width:64px;height:64px;border-radius:50%;background:var(--d2-bg-alt);
  display:flex;align-items:center;justify-content:center;margin-bottom:20px;
  color:var(--d2-red);
}
.d2-loc-label{font-family:'Poppins','Pretendard',sans-serif;font-weight:700;font-size:.85rem;color:var(--d2-red);letter-spacing:.06em;margin-bottom:10px;}
.d2-loc-lead{font-size:1rem;color:var(--gray);margin-bottom:6px;}
.d2-loc-title{font-size:1.35rem;font-weight:800;color:var(--d2-text);margin-bottom:16px;}
.d2-loc-desc{font-size:.92rem;color:var(--gray);line-height:1.8;}

/* 커뮤니티 페이지(product/community.html) */
.d2c-diagram{border-radius:12px;}
.d2c-diagram:empty{
  min-height:420px;border:1px solid var(--d2-line);
  background:repeating-linear-gradient(45deg,var(--d2-bg-alt),var(--d2-bg-alt) 12px,#fff 12px,#fff 24px);
  display:flex;align-items:center;justify-content:center;text-align:center;
  color:var(--gray);font-size:.82rem;padding:24px;
}
.d2c-diagram:empty::after{content:attr(data-placeholder);}
.d2c-diagram img{width:100%;height:auto;border-radius:12px;display:block;}
.d2c-gallery{display:grid;grid-template-columns:1fr 1fr;gap:48px 40px;margin-top:80px;}
.d2c-title{font-size:1.1rem;font-weight:800;color:var(--d2-text);margin-bottom:10px;}
.d2c-desc{font-size:.88rem;color:var(--gray);line-height:1.7;}
.d2c-photo{margin-top:20px;border-radius:10px;}
.d2c-photo:empty{
  min-height:220px;
  background:repeating-linear-gradient(45deg,var(--d2-bg-alt),var(--d2-bg-alt) 12px,#fff 12px,#fff 24px);
  display:flex;align-items:center;justify-content:center;text-align:center;
  color:var(--gray);font-size:.78rem;padding:20px;
}
.d2c-photo:empty::after{content:attr(data-placeholder);}
.d2c-photo img{width:100%;height:100%;object-fit:cover;border-radius:10px;}
.d2c-photo-wide:empty{min-height:340px;}
@media (max-width:900px){
  .d2c-gallery{grid-template-columns:1fr;}
}

/* 프리미엄 페이지(product/premium.html) */
.d2p-item-intro{
  display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;
}
.d2p-brand-word{
  font-family:'Poppins',sans-serif;font-weight:800;font-size:2.2rem;
  color:var(--d2-text);margin:16px 0 24px;
}
.d2p-brand-icons{display:flex;flex-wrap:wrap;gap:16px;color:var(--gray);}
.d2p-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:56px 40px;margin-top:64px;
}
.d2p-item{text-align:center;}
.d2p-imgwrap{
  position:relative;border-radius:48% 52% 55% 45% / 45% 48% 52% 55%;
  overflow:hidden;aspect-ratio:1/0.82;display:flex;align-items:center;justify-content:center;
}
.d2p-imgwrap img{width:100%;height:100%;object-fit:cover;}
.d2p-blob-blue{background:#DCEEF0;}
.d2p-blob-yellow{background:#F6EAD2;}
.d2p-blob-green{background:#DCEEDD;}
.d2p-num{
  display:block;font-family:'Poppins',sans-serif;font-weight:700;
  color:var(--gray);margin-top:20px;font-size:.95rem;
}
.d2p-title{font-size:1.15rem;font-weight:800;color:var(--d2-text);margin-top:8px;}
.d2p-desc{font-size:.88rem;color:var(--gray);line-height:1.7;margin-top:10px;}
@media (max-width:900px){
  .d2p-item-intro{grid-template-columns:1fr;}
  .d2p-grid{grid-template-columns:1fr;}
}

/* 사업개요(danjae/overview.html) 2단 정보 그리드 */
.overview-grid-2col{
  display:grid;grid-template-columns:1fr 1fr;gap:0 60px;
}
.overview-cell{
  padding:24px 0;border-bottom:1px solid var(--d2-line);
}
.overview-label{display:block;font-size:.85rem;color:var(--gray);margin-bottom:8px;}
.overview-value{font-size:1.1rem;font-weight:700;color:var(--d2-text);}
@media (max-width:680px){
  .overview-grid-2col{grid-template-columns:1fr;gap:0;}
}

/* LOCATION 4항목 - 이미지 없이 2x2 그리드로 정리 */
.d2-loc-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:56px 48px;margin-top:56px;
}
.d2-loc-item{padding:32px;background:var(--d2-bg);border-radius:12px;border:1px solid var(--d2-line);}
@media (max-width:900px){
  .d2-loc-grid{grid-template-columns:1fr;gap:24px;}
}

/* PREMIUM 그리드 (이미지 없이 넘버+캡션 카드) */
.d2-premium-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:56px;
}
.d2-premium-item{
  padding:36px 20px;background:var(--d2-bg-alt);border-radius:12px;
  text-align:center;transition:transform .2s ease;
}
.d2-premium-item:hover{transform:translateY(-4px);}
.d2-premium-num-lg{
  display:flex;align-items:center;justify-content:center;
  width:52px;height:52px;border-radius:50%;margin:0 auto 16px;
  background:var(--d2-red);color:#fff;font-family:'Poppins',sans-serif;
  font-weight:700;font-size:1.2rem;
}
.d2-premium-caption{font-size:.92rem;color:var(--d2-text);font-weight:700;}
@media (max-width:900px){
  .d2-premium-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:480px){
  .d2-premium-grid{grid-template-columns:1fr 1fr;gap:12px;}
  .d2-premium-item{padding:24px 12px;}
}

/* 셀링포인트 7가지 (EXTERIOR 리스트 패턴 재사용) */
.d2-point-list{border-top:1px solid var(--d2-line);}
.d2-point-item{
  display:flex;gap:28px;padding:32px 0;border-bottom:1px solid var(--d2-line);align-items:flex-start;
}
.d2-point-num{
  flex-shrink:0;width:48px;height:48px;border-radius:50%;background:var(--d2-red);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:'Poppins',sans-serif;font-weight:700;font-size:1.15rem;
}
.d2-point-title{font-size:1.1rem;font-weight:800;color:var(--d2-text);margin-bottom:8px;}
.d2-point-desc{font-size:.9rem;color:var(--gray);line-height:1.75;}

/* CONTACT */
.d2-contact-box{background:var(--d2-bg-alt);border-radius:12px;padding:40px;}
.d2-contact-map{
  border-radius:8px;overflow:hidden;aspect-ratio:4/3;margin-bottom:20px;
  background:var(--d2-line);
}
.d2-contact-map img{width:100%;height:100%;object-fit:cover;display:block;}
.d2-contact-addr{font-size:1rem;font-weight:700;color:var(--d2-text);margin-bottom:16px;}
.d2-contact-links{display:flex;gap:12px;}
.d2-contact-links a{
  width:44px;height:44px;border-radius:50%;background:var(--d2-bg);border:1px solid var(--d2-line);
  display:flex;align-items:center;justify-content:center;color:var(--d2-text);
}

/* 하위 메뉴 카드 내비게이션 */
.d2-nav-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.d2-nav-card{
  padding:28px 20px;border-radius:10px;background:var(--d2-bg);border:1px solid var(--d2-line);
  text-align:center;font-weight:700;color:var(--d2-text);transition:all .2s ease;
}
.d2-nav-card:hover{border-color:var(--d2-red);color:var(--d2-red);transform:translateY(-3px);}

/* 스크롤해도 항상 떠있는 플로팅 CTA (우측 하단 고정) */
.d2-float-cta{
  position:fixed;right:24px;bottom:24px;z-index:900;
  display:flex;flex-direction:column;gap:10px;align-items:center;
  width:150px;
}
.d2-float-cta .d2-status-badge,
.d2-float-cta .d2-pill{width:100%;box-sizing:border-box;justify-content:center;}
.d2-float-cta .d2-pill{
  box-shadow:0 6px 18px rgba(0,0,0,.15);white-space:nowrap;
  padding:10px 18px;font-size:.74rem;
}
.d2-float-cta .d2-pill-red{
  flex-direction:column;line-height:1.4;text-align:center;padding:10px 18px;
  font-size:.74rem;
}
@media (max-width:680px){
  .d2-float-cta{right:14px;bottom:14px;gap:8px;}
  .d2-float-cta .d2-pill,
  .d2-float-cta .d2-status-badge{padding:9px 14px;font-size:.7rem;}
}

@media (max-width:900px){
  .d2-nav-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:680px){
  .d2-hero-actions{margin-top:220px;}
  .d2-point-item{gap:16px;}
  .d2-point-num{width:40px;height:40px;font-size:1rem;}
}

/* 시스템 페이지(product/system.html) */
.d2s-tabbar{
  display:flex;background:var(--d2-bg-alt);border-radius:8px;padding:4px;margin-top:56px;max-width:520px;
}
.d2s-tabbar button{
  flex:1;padding:14px 20px;border:0;background:none;border-radius:6px;
  font-size:.95rem;font-weight:700;color:var(--gray);cursor:pointer;transition:all .2s ease;
}
.d2s-tabbar button.active{background:var(--d2-dark-btn);color:#fff;}
.d2s-panel{display:none;}
.d2s-panel.active{display:block;}
.d2s-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px 40px;margin-top:56px;}
.d2s-imgwrap{border-radius:12px;overflow:hidden;aspect-ratio:16/9;}
.d2s-imgwrap img{width:100%;height:100%;object-fit:cover;display:block;}
.d2s-label{
  font-family:'Poppins','Pretendard',sans-serif;font-weight:800;font-size:1.8rem;
  color:var(--d2-line);margin-top:32px;
}
.d2s-heading{font-size:1.25rem;font-weight:800;color:var(--d2-text);margin-top:8px;margin-bottom:28px;}
.d2s-feature-list{display:flex;flex-direction:column;gap:22px;}
.d2s-feature-title{font-size:1rem;font-weight:800;color:var(--d2-text);margin-bottom:8px;}
.d2s-feature-desc{font-size:.88rem;color:var(--gray);line-height:1.7;}
.d2s-block{margin-top:96px;}
.d2s-block:first-child{margin-top:0;}
.d2s-note{padding:60px 0;text-align:center;color:var(--gray);font-size:.92rem;}
@media (max-width:900px){
  .d2s-grid{grid-template-columns:1fr;gap:48px;}
  .d2s-block{margin-top:64px;}
}

/* 단지정보 페이지(danjae/complex.html) */
.d2cx-toptab{
  background:none;border:0;cursor:pointer;font-size:1rem;font-family:inherit;
  color:var(--gray);padding-bottom:8px;border-bottom:2px solid transparent;
}
.d2cx-toptab.active{font-weight:700;color:var(--d2-text);border-bottom-color:var(--d2-red);}
.d2cx-planwrap{margin-top:40px;border-radius:12px;overflow:hidden;}
.d2cx-planwrap img{width:100%;display:block;}
.d2cx-legend{display:flex;flex-wrap:wrap;gap:32px 40px;margin-top:32px;padding-top:32px;border-top:1px solid var(--d2-line);}
.d2cx-legend-item{display:flex;align-items:center;gap:12px;font-size:.9rem;color:var(--d2-text);}
.d2cx-legend-item b{margin-right:2px;}
.d2cx-legend-swatch{width:36px;height:24px;border-radius:4px;flex-shrink:0;}
.d2cx-legend-total{width:100%;text-align:center;font-weight:700;color:var(--d2-text);font-size:.95rem;margin-top:8px;}
.d2cx-subtabs{display:flex;gap:56px;border-bottom:1px solid var(--d2-line);margin-top:80px;}
.d2cx-subtabs button{
  background:none;border:0;padding:0 0 18px;margin-bottom:-1px;cursor:pointer;
  font-family:'Poppins','Pretendard',sans-serif;font-weight:700;font-size:.85rem;
  letter-spacing:.06em;color:var(--gray);border-bottom:2px solid transparent;
}
.d2cx-subtabs button.active{color:var(--d2-text);border-bottom-color:var(--d2-text);}
.d2cx-photo-block{margin-top:56px;}
.d2cx-photo-block img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px;display:block;}
.d2cx-caption{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px 24px;margin-top:24px;}
.d2cx-caption-title{font-size:1.15rem;font-weight:800;color:var(--d2-text);white-space:nowrap;}
.d2cx-caption-desc{font-size:.9rem;color:var(--gray);line-height:1.7;text-align:right;}
@media (max-width:900px){
  .d2cx-caption-title,.d2cx-caption-desc{width:100%;}
  .d2cx-caption-desc{text-align:left;}
  .d2cx-legend{gap:20px 28px;}
}

/* 동호배치 */
.d2cx-donghowrap{margin-top:40px;}
.d2cx-donghowrap img{width:100%;display:block;}

/* 세대정보 페이지(danjae/unit.html) */
.d2u-typebar{display:flex;margin-top:40px;border-radius:8px;overflow:hidden;}
.d2u-typebar button{
  flex:1;padding:18px;background:var(--d2-bg-alt);color:var(--d2-text);
  font-weight:700;font-size:1rem;border:0;cursor:pointer;border-right:1px solid #fff;
}
.d2u-typebar button:last-child{border-right:0;}
.d2u-typebar button.active{background:var(--d2-dark-btn);color:#fff;}
.d2u-titlebar{
  display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px 32px;
  margin-top:48px;padding-bottom:24px;border-bottom:1px solid var(--d2-line);
}
.d2u-type-num{font-family:'Poppins',sans-serif;font-weight:800;font-size:2.6rem;color:var(--d2-text);}
.d2u-type-sub{font-size:1rem;color:var(--d2-text);margin-left:16px;}
.d2u-type-sub b{font-weight:700;}
.d2u-specs{display:flex;flex-wrap:wrap;gap:20px 48px;margin-top:24px;}
.d2u-spec-item{font-size:.92rem;color:var(--gray);}
.d2u-spec-item b{color:var(--d2-text);font-weight:700;margin-left:8px;}
.d2u-section{margin-top:64px;}
.d2u-section-title{font-size:1.3rem;font-weight:800;color:var(--d2-text);margin-bottom:12px;}
.d2u-section-desc{color:var(--gray);font-size:.95rem;}
.d2u-imgcard{background:var(--d2-bg);border:1px solid var(--d2-line);border-radius:12px;padding:32px;margin-top:32px;}
.d2u-imgcard img{width:100%;display:block;}
.d2u-danjiwrap{margin-top:32px;}
.d2u-danjiwrap img{width:100%;display:block;max-width:640px;margin:0 auto;}
.d2u-int-hero{margin-top:32px;border-radius:12px;overflow:hidden;}
.d2u-int-hero img{width:100%;display:block;}
.d2u-int-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px;}
.d2u-int-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;margin-top:24px;}
.d2u-int-row img,.d2u-int-row-3 img{width:100%;height:100%;object-fit:cover;border-radius:12px;display:block;}
@media (max-width:900px){
  .d2u-int-row{grid-template-columns:1fr;}
  .d2u-int-row-3{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .d2u-int-row-3{grid-template-columns:1fr;}
}
@media (max-width:680px){
  .d2u-typebar{flex-wrap:wrap;}
  .d2u-typebar button{flex:1 1 50%;}
}

/* 페이지 상단 서브내비게이션(사업개요/단지정보/세대정보/상품특징 등 공통) */
.d2-subnav{flex-wrap:wrap;}
@media (max-width:560px){
  .d2-subnav{gap:16px 24px;}
}

/* ==========================================================
   관심고객등록 - 개인정보 수집·이용 동의 모달
   ========================================================== */
.d2-modal-overlay{
  display:none;position:fixed;inset:0;z-index:2000;
  background:rgba(20,24,24,.55);
  align-items:center;justify-content:center;padding:20px;
}
.d2-modal-overlay.active{display:flex;}
.d2-modal-box{
  background:#fff;border-radius:16px;max-width:480px;width:100%;
  max-height:88vh;overflow-y:auto;padding:32px;position:relative;
}
.d2-modal-close{
  position:absolute;top:20px;right:20px;background:none;border:0;
  font-size:1.4rem;line-height:1;color:var(--gray);cursor:pointer;padding:4px;
}
.d2-modal-title{font-size:1.25rem;font-weight:800;color:var(--d2-text);margin-bottom:20px;}
.d2-modal-notice{
  background:var(--d2-bg-alt);border-radius:10px;padding:20px;
  font-size:.88rem;color:var(--d2-text);line-height:1.9;
}
.d2-modal-notice dl{display:grid;grid-template-columns:88px 1fr;gap:8px 12px;margin:0;}
.d2-modal-notice dt{font-weight:700;color:var(--d2-text);}
.d2-modal-notice dd{margin:0;color:var(--gray);}
.d2-modal-check-row{
  display:flex;align-items:center;gap:8px;margin-top:20px;font-size:.92rem;color:var(--d2-text);
}
.d2-modal-check-row input{width:17px;height:17px;accent-color:var(--d2-red);cursor:pointer;}
.d2-modal-check-row label{cursor:pointer;}
.d2-modal-field{margin-top:16px;}
.d2-modal-field label{display:block;font-size:.88rem;color:var(--gray);margin-bottom:6px;}
.d2-modal-field input{
  width:100%;border:1px solid var(--d2-line);border-radius:8px;padding:12px 14px;
  font-size:.95rem;color:var(--d2-text);font-family:inherit;
}
.d2-modal-actions{display:flex;gap:12px;margin-top:24px;}
.d2-modal-actions button{
  flex:1;padding:14px;border-radius:8px;border:0;font-weight:700;font-size:.95rem;cursor:pointer;
}
.d2-modal-btn-cancel{background:var(--d2-bg-alt);color:var(--d2-text);}
.d2-modal-btn-submit{background:var(--d2-red);color:#fff;}
.d2-modal-btn-submit:disabled{background:#D8DADA;color:#9AA1A1;cursor:not-allowed;}
.d2-modal-step{display:none;}
.d2-modal-step.active{display:block;}
.d2-modal-done{text-align:center;padding:20px 0;}
.d2-modal-done-icon{font-size:2.4rem;color:var(--d2-red);margin-bottom:12px;}
.d2-modal-done p{color:var(--gray);font-size:.92rem;margin-top:8px;}
