/* 
@font-face {
  font-display: swap; 
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/inter-v19-latin-regular.woff2') format('woff2'); 
}

@font-face {
  font-display: swap; 
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  src: url('../fonts/inter-v19-latin-500.woff2') format('woff2');
}

@font-face {
  font-display: swap;
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/inter-v19-latin-700.woff2') format('woff2'); 
}


@font-face {
  font-display: swap; 
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 400;
  src: url('../fonts/noto-sans-jp-v54-japanese_latin-regular.woff2') format('woff2'); 
}

@font-face {
  font-display: swap;
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 500;
  src: url('../fonts/noto-sans-jp-v54-japanese_latin-500.woff2') format('woff2'); 
}

@font-face {
  font-display: swap; 
  font-family: 'Noto Sans JP';
  font-style: normal;
  font-weight: 700;
  src: url('../fonts/noto-sans-jp-v54-japanese_latin-700.woff2') format('woff2');
} */


  body {
    background-color: #faf9f8;
    color: #1c3950;
     /* font-family: 'Noto Sans JP', 'Inter', 'Pretendard', 'SF Pro Display', 'Arial', sans-serif; */
    line-height: 1.8;
    font-size: 16px;
    margin: 0;
    padding: 0;
  }

  .custom-area {
      background-color: #faf9f8;
    color: #1c3950;
    line-height: 1.8;
    font-size: 16px;
    margin: 0;
    padding: 0;
}
  .header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px;
    background-color: #1a2e49;
    color: rgb(0, 0, 0);
    font-weight: bold;
    border-radius: 0 0 10px 10px;
}

.menu-icon {
    font-size: 24px;
    color: rgb(0, 0, 0);
    cursor: pointer;
    margin-right: 10px;
    background: none;
    border: none;
}

.header-title {
    text-align: left;
    margin-left: 10px;
    color: #fff;
}
/* 📌 메뉴 스타일 */
.menu-items {
    position: absolute;
    top: 60px;
    right: 10px;
    background: rgba(30, 30, 30, 0.5);
    /* 어두운 반투명 배경 */
    border-radius: 14px;
    /* 더 둥글게 */
    box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.2);
    /* 더 깊은 그림자 */
    width: 180px;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-10px);
    max-height: 0;
    transition: opacity 0.3s ease, transform 0.3s ease, max-height 0.3s ease-in-out;
    backdrop-filter: blur(15px);
    z-index: 1000;
    /* 유리 같은 블러 효과 추가 */
}

/* 메뉴가 열릴 때 */
.menu-items.show {
    opacity: 1;
    transform: translateY(0);
    max-height: 380px;
}

/* 📌 메뉴 내부 항목 */
.menu-items a {
    padding: 11px 18px;
    /* 더 넓은 패딩 */
    text-decoration: none;
    color: white;
    font-size: 17px;
    text-align: left;
    display: block;
    font-weight: 400;
    /* 굵은 폰트 */
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    transition: background 0.3s ease-in-out, color 0.3s ease-in-out;
}

/* 마지막 항목 테두리 제거 */
.menu-items a:last-child {
    border-bottom: none;
}

/* 📌 호버 효과 */
.menu-items a:hover {
    background: rgba(255, 255, 255, 0.2);
    /* 부드러운 반투명 호버 */
    color: #ffd21e;
    /* 골드 컬러 강조 */
    border-radius: 5px;
}

/* 📌 메뉴 버튼 스타일 */
.menu-icon {
    font-size: 24px;
    color: #fff;
    cursor: pointer;
    margin-right: 10px;
    background: none;
    border: none;
    transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
}

/* 버튼을 누를 때 애니메이션 */
.menu-icon:active {
    transform: scale(0.9);
    opacity: 0.7;
}
/* ✅ 모바일 (767px 이하): 데스크탑 메뉴 숨김 */
@media (max-width: 767px) {
    .desktop-menu {
      display: none !important;
    }
    .select-situation-btn {
        width: 50%;
    }
    .container {
        flex-direction:column;
    }
  }
  
/* ✅ PC에서는 상단 우측에 항상 보이도록 */
@media (min-width: 768px) {
    /* 햄버거 버튼과 드롭다운 메뉴 숨기기 */
    .menu-icon,
    .menu-items {
      display: none !important;
    }

    .select-situation-btn {
        margin-right: 20px !important;
    }
    .container {
        flex-direction:row !important;
    }
  
    /* PC 전용 네비게이션 */
    .desktop-menu {
      display: flex;
      gap: 24px;
      margin-left: auto;
      align-items: center;
    }
  
    .desktop-menu a {
      color: white;
      text-decoration: none;
      font-weight: 500;
      font-size: 16px;
      padding: 10px 12px;
      transition: color 0.2s ease, border-bottom 0.2s ease;
      border-bottom: 2px solid transparent;
    }
  
    .desktop-menu a:hover {
      color: #ffcc00;
      border-bottom: 2px solid #ffcc00;
    }
  }
  .section-top-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 20px;
  max-width: 1080px;
  margin: 0 auto;
  margin-top: 28px;
  color: #777;
  font-size: 14px;
  font-weight: 500;
}

.section-label {
  color: #1c3950;
  font-weight: 400;
  border-bottom: 1px solid #1c3950; /* 밑줄 추가 */
font-size: 15px;  /* 살짝 줄여 정보성 느낌 */
padding-bottom: 4px;
margin-bottom: 12px;
}

.section-labellist {
  position: relative;
  color: #222;
  font-size: 20px;
  font-weight: 800;
  display: inline-block;
  padding-bottom: 8px;
}

.section-labellist::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 4px;
  background-color: #ddd;
  border-radius: 2px;
}

.section-labellist::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 10%; /* 검은색 밑줄 길이 */
  height: 4px;
  background-color: #222;
  border-radius: 2px;
}




.ai-diagnosis-button {
  background-color: #d93025; /* Google 스타일의 빨강 */
  color: #fff;
  padding: 6px 14px;
  border-radius: 14px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.ai-diagnosis-button:hover {
  background-color: #b2221d;
}
.section-label a {
  color: inherit;          /* 부모의 글자색을 그대로 물려받음 */
  text-decoration: none;   /* 밑줄 제거 */
  cursor: pointer;         /* 클릭 가능한 손가락 모양 유지 */
}
.section-label a:visited,
.section-label a:hover,
.section-label a:active {
  color: inherit;
  text-decoration: none;
}


  .custom-area main {
    max-width: 1080px;
    margin: 0 auto;
    padding: 4px 60px;
  }

  .custom-area h1, 
  .custom-area h2,
  .custom-area h3 {
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 1.6em;
    color: #1c3950;
  }

  .custom-area h1 {
    font-size: 1.9rem;
    border-left: 6px solid #1c3950;
    padding-left: 12px;
    margin-top: 20px;
  }

  .custom-area h2 {
    font-size: 1.5rem;
    color: #1c3950;
    margin-top: 32px;
  }

  .custom-area h3 {
    font-size: 1.2rem;
    color: #1c3950;
    margin-top: 50px;
  }

  .custom-area p {
    margin: 0 0 1.4em;
  }

  .custom-area ul {
    padding-left: 1.2em;
    margin-bottom: 1.4em;
  }

  .custom-area li {
    margin-bottom: 0.5em;
  }

  .custom-area strong {
    color: #1c3950;
    font-weight: 700;
  }

  .custom-area em {
    font-style: italic;
    color: #5d5d5d;
  }

  .custom-area blockquote {
    margin: 1.5em 0;
    padding: 1em 1.5em;
    background-color: #e3d7c1;
    border-left: 5px solid #1c3950;
    color: #333;
    font-style: italic;
  }

  /* 링크 스타일 (필요 시) */
  a {
    color: #1c3950;
    text-decoration: underline;
  }

  /* 반응형 */
  @media (max-width: 480px) {
   body {
      font-size: 15px;
    }
     .custom-area  {
      font-size: 15px;
    }
    .custom-area h1 {
      font-size: 1.6rem;
    }
    .custom-area h2 {
      font-size: 1.3rem;
    }
    .custom-area h3 {
      font-size: 1.1rem;
    }
    .custom-area main {
      padding: 4px 24px;
    }
  }
.tpo-image-wrapper {
  text-align: center;
  margin: 24px 0;
}

.tpo-image {
  width: 100%;
  max-width: 720px;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  display: inline-block;
}
.body-wrapper {
  display: flex;
  justify-content: center;
}

   #quiz-container {
      max-width: 600px;
      min-width: 300px;
      margin: 30px 10px;
      padding: 24px;
      background: #fff;
      border-radius: 12px;
      box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    }

    /* 인트로 */
    #quiz-intro {
      text-align: center;
    }

    #quiz-intro h2 {
      color: #1c3950;
      font-size: 22px;
    }

    #start-btn {
      margin-top: 20px;
      padding: 14px 28px;
      font-size: 16px;
      background-color: #1c3950;
      color: white;
      border: none;
      border-radius: 8px;
      cursor: pointer;
      transition: background 0.3s;
    }

    #start-btn:hover {
      background-color: #294e6a;
    }

    /* 퀴즈 박스 */
    .question-box {
      background: linear-gradient(135deg, #1c3950, #1d3a51);
      padding: 24px;
      border-radius: 12px;
      color: #fff;
      font-size: 18px;
      margin-bottom: 20px;
    }

    .progress {
      height: 8px;
      background: #eee;
      border-radius: 4px;
      overflow: hidden;
      margin-bottom: 10px;
    }

    .progress-bar {
      height: 100%;
      background: linear-gradient(to right, #ff9900, #d93025);
      width: 0%;
      transition: width 0.2s;
    }

    #timer {
      text-align: right;
      font-size: 14px;
      color: #666;
      margin-bottom: 16px;
    }

    .options {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .option-btn {
      padding: 14px;
      border-radius: 10px;
      border: 2px solid #ccc;
      cursor: pointer;
      background: #fff;
      font-size: 16px;
      transition: all 0.3s ease;
    }

    .option-btn:hover {
      background: #f1f1f1;
    }

    .option-btn.correct {
      background: #c5f7ec;
      border-color: #00c7a5;
    }

    .option-btn.wrong {
      background: #ffc5c5;
      border-color: #ff4f4f;
    }

    .result {
      font-size: 18px;
      font-weight: bold;
      margin-top: 20px;
      color: #333;
      text-align: center;
    }






  footer {
      text-align: center;
      margin-top: 50px;
      padding: 14px 0;
     
    }
    .footer-links {
      margin-bottom: 8px;
    }
    .footer-links a {
      margin: 0 10px;
      font-size: 0.95rem;
      color: #555;
      text-decoration: none;
    }
    .footer-links a:hover {
      text-decoration: underline;
    }
    .copyright-wrapper {
    display: flex;
    justify-content: center; /* 가운데 정렬 */
    gap: 10px;
    font-size: 12px;
    color: #434242;
    margin-bottom: 10px;
}


/* 각각 링크 스타일 */
.copyright-note {
  color: #434242;
  text-decoration: none;
}

.copyright-note:hover {
  text-decoration: underline;
  color: #666;
}

.header-link {
  text-decoration: none; /* 밑줄 제거 */
}

 /* Custom CSS for Accordion Smoothness */
        .toc-list-container {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease-out;
        }
        .toc-list-container.open {
            max-height: 500px; /* Adjust based on max expected content height */
            transition: max-height 0.3s ease-in;
        }

/* 목차 전용 스타일 */
#table-of-contents {
    background-color: #eff6ff; /* 연한 파란색 배경 */
    padding: 1rem; /* 내부 여백 */
    border-radius: 0.5rem; /* 둥근 모서리 */
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); /* 그림자 */
    margin-bottom: 0.5rem; /* 아래쪽 여백 */
    margin-top: 0.5rem;
    margin-left: 20px;
    margin-right: 20px;
}
#toc-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    padding: 0.5rem; /* 내부 여백 */
    background-color: #dbeafe; /* 더 연한 파란색 배경 */
    border-radius: 0.375rem; /* 둥근 모서리 */
}
#toc-header h3 {
    font-size: 1.125rem; /* 글자 크기 */
    font-weight: 700; /* 굵게 */
    color: #1e40af; /* 진한 파란색 글자 */
    margin: 0; /* 기본 마진 제거 */
}
#toc-arrow {
    width: 1.25rem; /* 너비 */
    height: 1.25rem; /* 높이 */
    color: #2563eb; /* 파란색 화살표 */
    transition: transform 0.3s ease-out; /* 변형 애니메이션 */
    transform: rotate(0deg); /* 초기 상태 (0도) */
}
#toc-arrow.rotate-180 {
    transform: rotate(180deg); /* 회전 상태 (180도) */
}
.toc-list-container {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out; /* 펼쳐짐/접힘 애니메이션 */
}
.toc-list-container.open {
    max-height: 900px; /* 목차 내용에 따라 적절히 조절 (최대 높이) */
    transition: max-height 0.3s ease-in; /* 펼쳐짐 애니메이션 */
}
#toc-list {
    margin-top: 1rem; /* 위쪽 여백 */
    list-style: none; /* 기본 목록 스타일 제거 */
    padding: 0; /* 기본 패딩 제거 */
}
#toc-list li {
    margin-bottom: 0.25rem; /* 목록 항목 사이 여백 */
}
#toc-list a {
    display: block;
    padding: 0.5rem; /* 링크 내부 여백 */
    color: #1d4ed8; /* 파란색 링크 글자 */
    border-radius: 0.375rem; /* 둥근 모서리 */
    transition: background-color 0.2s ease-in-out; /* 배경색 변경 애니메이션 */
    text-decoration: none; /* 밑줄 제거 */
}
#toc-list a:hover {
    background-color: #bfdbfe; /* 호버 시 배경색 */
}
/* 들여쓰기 스타일 */
#toc-list a.indent-level-1 {
    padding-left: 0.5rem; /* 'はじめに', '結論' 등 */
}
#toc-list a.indent-level-2 {
    padding-left: 1.5rem; /* '第1章' 등 */
}
  /* TOC Item Level Styles */
        .toc-item-level-1 {
            padding-left: 0.5rem; /* Less indentation for top-level */
            font-size: 1rem; /* Default size for top-level */
            font-weight: 700; /* Slightly bolder for top-level */
            color: #1e40af; /* Darker blue for main sections */
        }
        .toc-item-level-2 {
            padding-left: 2.5rem; /* More indentation for chapters */
            font-size: 0.9rem; /* Smaller font for chapters */
            color: #2563eb; /* Slightly lighter blue for sub-sections */
        }

/* 공유 플로팅 버튼 스타일 */
#floating-share-btn {
    position: fixed; /* 화면에 고정 */
    bottom: 25px;
    right: 25px;
    width: 60px;
    height: 60px;
    background-color: #d93025;
    color: white;
    border: none;
    border-radius: 50%; /* 원형 버튼 */
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000; /* 다른 요소 위에 표시 */
    transition: transform 0.2s ease-out, background-color 0.2s;
}

#floating-share-btn:hover {
    background-color: #000000;
    transform: scale(1.1); /* 호버 시 약간 확대 */
}

#floating-share-btn svg {
    width: 24px;
    height: 24px;
    fill: #FFFFFF; /* 아이콘 색상 */
}



/* 7type에 쓴거 */

          .styled-table {
            width: 100%;
            border-collapse: collapse;
            margin: 2em 0;
            font-size: 0.95em;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
            border-radius: 8px;
            overflow: hidden; /* 角丸を適用するため */
        }

        .styled-table thead tr {
            background-color: #4a4a4a;
            color: #ffffff;
            text-align: left;
        }

        .styled-table th,
        .styled-table td {
            padding: 14px 6px;
            border: 1px solid #e0e0e0;
        }
        
        /* 診断チェックリストのスタイル */
        .checklist-table tbody tr:nth-of-type(even) {
            background-color: #f9f9f9;
        }

        .checklist-table th,
        .checklist-table td {
            text-align: center;
        }
        .checklist-table td:first-child {
            text-align: left;
            font-weight: bold;
            width: 25%;
        }

        /* 各タイプのスタイルガイドのスタイル */
        .guide-table .best-col {
            background-color: #bfe7fb; /* おすすめの背景色 */
        }
        .guide-table .avoid-col {
            background-color: #f9cac6; /* 非推奨の背景色 */
        }

        .guide-table .avoid-col2 {
            background-color: #2865a6; /* 非推奨の背景色 */
        }
        .guide-table td {
            vertical-align: top;
        }
        .guide-table .category-col {
            font-weight: bold;
            background-color: #f5f5f5;
        }



         /* 각 질문 블록 스타일 */
        .question-block {
            margin-bottom: 30px;
            border-bottom: 1px solid #e0e0e0;
            padding-bottom: 20px;
        }

        .question-block:last-of-type {
            border-bottom: none;
            margin-bottom: 20px;
        }

        /* 질문 텍스트 스타일 */
        .question-text {
            font-weight: 700;
            font-size: 1.2em;
            margin-bottom: 15px;
            color: #34495e;
        }

        /* 선택 옵션 그룹 스타일 */
        .options-group {
            display: flex;
            flex-direction: column;
            gap: 10px;
        }

        /* 라디오 버튼 숨기기 */
        .options-group input[type="radio"] {
            display: none;
        }

        /* 선택 옵션 라벨(버튼처럼 보이게) 스타일 */
        .options-group label {
            display: block;
            padding: 15px 20px;
            border: 2px solid #ddd;
            border-radius: 8px;
            cursor: pointer;
            transition: background-color 0.3s, border-color 0.3s, color 0.3s;
            font-size: 1em;
            font-weight: 500;
        }
        
        /* 옵션에 마우스를 올렸을 때 스타일 */
        .options-group label:hover {
            background-color: #f1f3f5;
        }

        /* 옵션을 선택했을 때 스타일 */
        .options-group input[type="radio"]:checked + label {
            background-color: #3498db;
            border-color: #3498db;
            color: #ffffff;
            font-weight: 700;
        }
  /* 퀴즈 전체 컨테이너 */
        #quiz-container2 {
            background-color: #ffffff;
            width: 100%;
            margin-bottom: 10px;
            max-width: 700px;
            padding: 30px 40px;
            border-radius: 12px;
            box-shadow: 0 4px 25px rgba(0, 0, 0, 0.1);
            overflow: hidden; /* 애니메이션 효과를 위해 추가 */
        }

        /* h1 {
            text-align: center;
            color: #2c3e50;
            margin-bottom: 20px;
            font-size: 1.8em;
        } */

        /* 진행 상태 바 */
        #progress-bar-container {
            width: 100%;
            background-color: #e0e0e0;
            border-radius: 5px;
            height: 10px;
            margin-bottom: 30px;
        }

        #progress-bar2 {
            width: 0%;
            height: 100%;
            background-color: #3498db;
            border-radius: 5px;
            transition: width 0.4s ease-in-out;
        }

        /* 질문 표시 영역 */
        #question-area {
            min-height: 250px; /* 높이를 고정하여 레이아웃 깨짐 방지 */
        }

        .question-block {
            display: none; /* 기본적으로 모든 질문 숨김 */
        }

        .question-block.active {
            display: block; /* 활성화된 질문만 표시 */
        }

        .question-text {
            font-weight: 700;
            font-size: 1.3em;
            margin-bottom: 20px;
            color: #34495e;
            text-align: center;
        }

        .options-group {
            display: flex;
            flex-direction: column;
            gap: 12px;
        }

        .option-btn {
            display: block;
            width: 100%;
            padding: 16px 20px;
            border: 2px solid #ddd;
            border-radius: 8px;
            cursor: pointer;
            transition: all 0.3s;
            font-size: 1.05em;
            font-weight: 500;
            background-color: transparent;
            text-align: left;
        }
        
        .option-btn:hover {
            background-color: #f1f3f5;
            border-color: #bdc3c7;
        }

        /* 결과 표시 영역 */
        #result-container {
            margin-top: 40px;
            padding: 30px;
            border-radius: 8px;
            background-color: #ecf0f1;
            text-align: center;
            display: none; /* 기본적으로 숨김 */
        }
        
        #result-title {
            font-size: 1.6em;
            font-weight: 700;
            color: #e74c3c;
            margin: 0;
        }
        
        #result-description {
            font-size: 1.1em;
            line-height: 1.7;
            margin-top: 15px;
        }

        /* 다시하기 버튼 */
        #retry-btn {
            display: inline-block;
            margin-top: 20px;
            padding: 12px 25px;
            font-size: 1em;
            font-weight: 700;
            color: #fff;
            background-color: #3498db;
            border: none;
            border-radius: 8px;
            cursor: pointer;
            transition: background-color 0.3s;
        }

        #retry-btn:hover {
            background-color: #2980b9;
        }