@charset "utf-8";
/* ═══════════════════════════════════════════
   greet.css — greet.php(인사말) 전용 스타일
   공통 영역(reset/root/body/sub-nav/page-title/breadcrumb)은
   style.css + page-common.css 에 있으므로 여기서는 재정의하지 않습니다.
═══════════════════════════════════════════ */

/* ══════════════════════════
   PERSON SECTION
══════════════════════════ */
.person-section {
  max-width:1400px;
  margin: 0 auto;
  padding: 0 48px 30px;
}

.person-intro {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 40px;
  align-items: start;
  margin-bottom: 36px;
}

.person-name-block {
  padding-top: 6px;
  position: relative;    /* 💡 세로선 배치를 위한 기준점 */
  padding-left: 12px;
}

.person-name-block::after {
  content: '';
  position: absolute;
  right: -18px;              /* 이름 블록의 가장 오른쪽에 배치 */
  top: 8px;              /* 세로선 시작 높이 */
  bottom: 8px;           /* 세로선 끝 높이 (글자 높이에 맞춰 자동으로 늘어남) */
  width: 1px;            /* 선 두께 */
  background: #ddd;      /* 세로선 색상 */
}

.person-name {
  font-size: 40px;
  font-weight: 600;
  color: #111;
  letter-spacing: 0.05em;
  line-height: 1.2;
}

.person-name em {
  font-style: normal;
  font-size: 20px;
  font-weight: 500;
  color: #333;
  margin-left: 4px;
}

.person-title {
  font-size: 24px;
  color: #333;
  letter-spacing: 0.04em;
}

.person-desc {
  font-size: 16px;
  line-height: 2.2;
  color: #444;
  padding-left:10px;
}

/* Full-width photo block */
.person-photo {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto 64px;
  padding: 0 48px;
}

.person-photo img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  display: block;
  border-radius: 4px;
}

/* Divider between person blocks */
.person-divider {
  max-width: 900px;
  padding: 0 48px;
  border: none;
}


/* ══════════════════════════
   RESPONSIVE  ≤ 1024px 
══════════════════════════ */
@media (max-width: 1024px){
  .sub-nav { top: 76px; }
  .sub-nav-inner {
    justify-content: flex-start;
    overflow-x: auto;
    padding: 0 16px; 
    scrollbar-width: none;
  }
  .sub-nav-inner::-webkit-scrollbar { display: none; }
  
  .sub-nav-inner a { padding: 0 20px; font-size: 14px; }
  .sub-nav-inner a::before { display: none; } 

  
  .breadcrumb-bar::after {
    margin: 0 auto 30px;  /* 기존 PC용 60px에서 30px로 절반 축소 */
  }
  .person-section {
    padding: 10px 48px 20px; /* 아래쪽 패딩을 52px에서 20px로 줄여 컴팩트하게 배치 */
  }
  .person-name-block::after {right: -10px;}
    
  .person-intro {
    margin-bottom: 20px;  /* 기존 PC용 36px에서 20px로 축소 */
  }
  .person-photo {
    margin: 0 auto 40px;  /* 기존 PC용 100px / 작성하셨던 80px에서 40px로 대폭 축소 */
  }
  /* Footer */
  footer { padding: 36px 24px 20px !important; width: 100% !important; box-sizing: border-box !important; }
  .footer-inner { width: 100% !important; max-width: 100% !important; padding: 0 28px; box-sizing: border-box !important; }
  .footer-top { flex-direction: column; gap: 20px; }
}


/* ══════════════════════════
   PAGE TITLE
══════════════════════════ */
.page-title-block {
  text-align: center;
  padding: 80px 0 0;   /* 💡 위쪽 여백을 넓혀 헤더 아래에 시원하게 배치하고, 하단 패딩은 0으로 만듭니다 */
}

.page-title-block h1 {
  font-size: 48px;       /* 💡 시안의 시각적 밸런스에 맞춰 타이틀 크기를 살짝 키웠습니다 */
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #111;
  line-height: 1.2;
}

/* ⚙ 이 페이지만 breadcrumb 여백이 공통값(page-common.css)과 달라서 오버라이드 */
.breadcrumb { padding-bottom: 70px; }
.breadcrumb-bar::after { margin-bottom: 60px; }

/* ══════════════════════════
   PERSON SECTION
══════════════════════════ */
.person-section {
  max-width:1400px;
  margin: 0 auto;
  padding: 20px 48px 48px;
}

.person-intro {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 40px;
  align-items: start;
  margin-bottom: 36px;
}

.person-name-block {
  padding-top: 6px;
  position: relative;    /* 💡 세로선 배치를 위한 기준점 */
}

.person-name-block::after {
  content: '';
  position: absolute;
  right: -18px;          /* 이름 블록의 가장 오른쪽에 배치 */
  top: 8px;              /* 세로선 시작 높이 */
  bottom: -12px;           /* 세로선 끝 높이 (글자 높이에 맞춰 자동으로 늘어남) */
  width: 1px;            /* 선 두께 */
  background: #ddd;      /* 세로선 색상 */
}

.person-name {
  font-size: 36px;
  font-weight: 600;
  color: #111;
  letter-spacing: 0.05em;
  line-height: 1.2;
}

.eng-name {
    display: block;
    font-size: 18px;
    font-weight: normal;
    color: #999;
    padding-top: 20px;
    letter-spacing: 0.05em;
}

.person-title {
  font-size: 24px;
  color: #333;
  letter-spacing: 0.04em;
}

.person-desc {
  font-size: 16px;
  line-height: 2.2;
  color: #444;
  padding-left: 10px;
  white-space: normal;
  text-align: left;
  word-break: break-all;
  word-wrap: break-word;
}

/* Full-width photo block */
.person-photo {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto 60px;
  padding: 0 48px;
}

.person-photo img {
  width: 100%;
  height: 620px;
  object-fit: cover;
  display: block;
  border-radius: 4px;
}

/* Divider between person blocks */
.person-divider {
  max-width: 900px;
  padding: 0 48px;
  border: none;
}


/* ══════════════════════════
   RESPONSIVE  ≤ 768px
══════════════════════════ */
@media (max-width: 768px) {
  /* Sub-nav: account for shorter mobile header (60px) */
  .sub-nav { top: 60px; }
  .sub-nav-inner {
    justify-content: flex-start;
    overflow-x: auto;
    padding: 0 8px;
    scrollbar-width: none;
  }
  .sub-nav-inner::-webkit-scrollbar { display: none; }
  .sub-nav-inner a { padding: 0 18px; font-size: 14px; }

  /* Page title */
  .page-title-block {padding: 60px 0 0;}
  .page-title-block h1 { font-size: 24px; }

  /* Person section */
  .person-section { padding: 0 20px 14px; }
  .person-intro   { grid-template-columns: 1fr; gap: 16px; }
  .person-name-block { text-align: left; }

  /* Photos */
  .person-photo         { padding: 0 20px; }
  .person-photo img     { height: 220px; }

  .person-intro { 
    grid-template-columns: 1fr; 
    gap: 16px; 
  }
  .person-name-block {
    text-align: left;
    padding-right: 0;
    padding-left: 10px;
  }
  .person-name-block::after { 
    display: none;       /* 모바일 1단 배열 시 세로선 제거 */
  }
  
  /* 가로선 모바일 여백 보정 */
  .breadcrumb-bar::after {
    margin: 0 20px 40px; /* 모바일 좌우 패딩에 맞춰 마진 조절 */
  }

  /* 기존 모바일 스타일 유지 */
  .sub-nav { top: 52px; }
  .sub-nav-inner {
    justify-content: flex-start;
    overflow-x: auto;
    padding: 0 8px;
    scrollbar-width: none;
  }
  .sub-nav-inner::-webkit-scrollbar { display: none; }
  .sub-nav-inner a { padding: 0 18px; font-size: 14px; }
  .page-title-block h1 { font-size: 24px; }
  .person-section { padding: 0 20px 40px; }
  .person-photo { padding: 0 20px; }
  .person-photo img { height: 260px; }

 /* Footer */
  footer { padding: 28px 16px 16px !important; }
  .footer-top { flex-direction: column; gap: 16px; }
  .footer-info {font-size: 16px; color: var(--text); line-height: 2;}
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
  .footer-inner{padding: 0 14px;}
  .footer-family {margin-top: 20px;}
}

/* ═══════════════════════════════════════════
     SMALL MOBILE (≤ 390px)  
═══════════════════════════════════════════ */

@media (max-width: 390px) {
  .footer-links { gap: 10px; }
  .footer-links a { font-size: 11px; }
}
