/* Policy Pages Shared Styles */

/* Main container wrapper */
.doc-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 48px 24px 80px;
  gap: 48px;
}

@media (min-width: 768px) {
  .doc-page {
    padding: 90px 183px 120px;
    gap: 80px;
  }
}

/* Page title (h1) */
.doc-title {
  width: 100%;
  color: #464646;
  font-family: 'Noto Sans JP', -apple-system, Roboto, Helvetica, sans-serif;
  font-size: 32px;
  font-weight: 700;
  line-height: 150%;
  text-align: left;
}

@media (min-width: 768px) {
  .doc-title {
    font-size: 48px;
  }
}

/* Content wrapper (sections container) */
.doc-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  gap: 48px;
}

@media (min-width: 768px) {
  .doc-content {
    max-width: 1000px;
  }
}

/* Introduction paragraph */
.doc-intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  gap: 24px;
}

/* Individual section */
.doc-section {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  gap: 24px;
}

/* Section heading (h2) */
.doc-heading {
  width: 100%;
  color: #464646;
  font-family: 'Noto Sans JP', -apple-system, Roboto, Helvetica, sans-serif;
  font-size: 24px;
  font-weight: 700;
  line-height: 150%;
  text-align: left;
}

@media (min-width: 768px) {
  .doc-heading {
    font-size: 32px;
  }
}

/* Body text paragraph */
.doc-text {
  width: 100%;
  color: #000;
  font-family: 'Noto Sans JP', -apple-system, Roboto, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 200%;
  text-align: left;
}

@media (min-width: 768px) {
  .doc-text {
    font-size: 18px;
  }
}

.doc-text-small {
  font-size: 14px;
  line-height: 150%;
}

.doc-underline {
  text-decoration: underline;
  text-decoration-color: #F08300;
  text-underline-offset: 4px;
  text-decoration-thickness: 2px;
  font-weight: bold;
}

/* Ordered list wrapper */
.doc-list {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  gap: 12px;
  list-style: disc;
  padding: 0 0 0 26px;
  margin: 0;
}

.doc-list-decimal {
  list-style-type: decimal !important;
}

/* List item */
.doc-list-item {
  width: 100%;
  color: #464646;
  font-family: 'Noto Sans JP', -apple-system, Roboto, Helvetica, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 200%;
  text-align: left;
}

@media (min-width: 768px) {
  .doc-list-item {
    font-size: 18px;
    line-height: 160%;
  }
}

/* Signature block (right-aligned footer) */
.doc-signature {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  margin-top: 24px;
}

.doc-signature p {
  color: #000;
  font-family: 'Noto Sans JP', -apple-system, Roboto, Helvetica, sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 180%;
  text-align: right;
  margin: 0;
}

@media (min-width: 768px) {
  .doc-signature p {
    font-size: 14px;
    line-height: 200%;
  }
}

/* Table Styles */
.doc-section.table-section {
    display: block;
}
.table-wrapper {
    overflow-x: auto;
    margin-top: 24px;
    border-radius: 4px;
}

.otokai-flow-table {
    width: 100%;
    min-width: 740px;
    border-collapse: collapse;
    background: #FFF;
    font-family: 'Noto Sans JP', -apple-system, Roboto, Helvetica, sans-serif;
}

/* Header Row */
.table-header-row {
    background: #464646;
}

.table-header-cell {
    color: #FFF;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    padding: 8px 24px;
    border-right: 1px solid #FFF;
    font-family: Inter, -apple-system, Roboto, Helvetica, sans-serif;
    line-height: 150%;
}

.table-header-cell:last-child {
    border-right: none;
}

.table-header-cell.no-column {
    width: 60px;
}

.table-header-cell.flow-column {
    width: 320px;
}

.table-header-cell.phase-column {
    width: 360px;
}

.table-header-cell.process-column {
    flex: 1;
    min-width: 200px;
}

/* Data Cells */
.table-cell {
    color: #464646;
    font-size: 16px;
    border: 1px solid rgba(70, 70, 70, 0.25);
    vertical-align: middle;
    line-height: 160%;
}

.table-cell.no-cell {
    width: 60px;
    padding: 16px;
    text-align: center;
    font-family: 'Funnel Sans', -apple-system, Roboto, Helvetica, sans-serif;
    font-weight: 400;
}

.table-cell.flow-cell {
    width: 320px;
    padding: 16px;
    text-align: left;
    font-family: 'Noto Sans JP', -apple-system, Roboto, Helvetica, sans-serif;
    word-break: break-word;
}

.table-cell.phase-cell {
    width: 360px;
    padding: 16px 24px;
    font-family: 'Noto Sans JP', -apple-system, Roboto, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 150%;
    word-break: break-word;
    white-space: pre-wrap;
}

.table-cell.process-cell {
    padding: 16px 24px;
    text-align: center;
    font-family: 'Noto Sans JP', -apple-system, Roboto, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 150%;
    word-break: break-word;
    white-space: pre-wrap;
}

/* Responsive - Small Screens (< md breakpoint) */
@media (max-width: 767px) {
    .otokai-flow-table {
        min-width: 740px;
    }

    .table-header-cell {
        font-size: 12px;
        padding: 8px 16px;
    }

    .table-header-cell.no-column {
        width: 52px;
    }

    .table-header-cell.flow-column {
        width: 260px;
    }

    .table-header-cell.phase-column {
        width: 220px;
    }

    .table-cell {
        font-size: 14px;
    }

    .table-cell.no-cell {
        width: 52px;
        padding: 8px;
        font-size: 14px;
    }

    .table-cell.flow-cell {
        width: 260px;
        padding: 8px;
    }

    .table-cell.phase-cell {
        width: 220px;
        padding: 8px 16px;
        font-size: 12px;
    }

    .table-cell.process-cell {
        padding: 8px 16px;
        font-size: 12px;
    }
}
