@charset "utf-8";
html { position: relative; min-height: 100%; }
body { margin: 0; padding: 0; background-color: #fafafa; }
.zfkdoc {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Helvetica,
    "Yu Gothic UI", "Hiragino Kaku Gothic ProN", "Noto Sans CJK JP", "Meiryo", sans-serif;
  line-height: 1.7;
  font-size: 1rem;
  color: #454545;
}
.zfkdoc * { box-sizing: border-box; margin: 0; padding: 0; border: 0; font: inherit; vertical-align: baseline; }
.zfkdoc ul,
.zfkdoc li { list-style-type: none; }
.zfkdoc p { margin: 0.75em 0; text-indent: 1em; word-wrap: break-word; }
.zfkdoc h1,
.zfkdoc h2,
.zfkdoc h3,
.zfkdoc h4,
.zfkdoc h5,
.zfkdoc h6,
.zfkdoc h7 { font-weight: 400; display: block; }
.zfkdoc h1,
.zfkdoc h2 { border-bottom: #ebebeb solid 1px; margin-bottom: 10px; }
.zfkdoc em { font-style: italic; }

@media (max-width: 768px) {
  .zfkdoc h1,
  .zfkdoc h2 { padding-top: 22px; }
}

.zfkdoc h1 { padding: 37px 0 10px; font-size: 1.3rem; font-weight: 600; }
.zfkdoc h2 { padding: 15px 0 10px; font-size: 1rem; line-height: 22px; }
.zfkdoc ruby > rt { font-size: 0.5rem; }
.zfkdoc .white-back { background-color: #fff; }
.zfkdoc a { color: #06c; text-decoration: none; cursor: pointer; }
.zfkdoc a:hover { color: #06c; text-decoration: underline; cursor: pointer; }
.zfkdoc sup,
.zfkdoc sub {
  font-size: 0.75em;
  line-height: 0;     /* 行の高さを増やさない */
  position: relative; /* オフセットで微調整 */
}
.zfkdoc sup { top: -0.5em; }  /* -0.45～-0.55em程度で調整 */
.zfkdoc sub { bottom: -0.25em; }
.zfkdoc i { font-style: italic; }
.zfkdoc b { font-weight: bold; }
.zfkdoc a > sup { margin: 0 0.2em; }
.zfkdoc sup > a { margin: 0 0.2em; }

.zfkdoc .document-title { font-size: 1.5rem; line-height: 28px; margin: 0 0 5px; }
.zfkdoc .document-subtitle { font-size: 1rem; margin-bottom: 5px; }
.zfkdoc .authors-name-tags { font-size: 1rem; line-height: 20px; margin-bottom: 5px; }
.zfkdoc .p-small { font-size: 0.8em; margin: 5px 0 10px; line-height: 20px; }
.zfkdoc .row { margin-right:-15px; margin-left:-15px; margin-bottom: 10px; }
.zfkdoc .row .row { margin-top: 10px; margin-bottom: 0; }
.zfkdoc [class*="col-"] { padding-top: 10px; padding-bottom: 10px; }
.zfkdoc .clearfix::after { content: ""; display: block; clear: both; }
.zfkdoc .container { padding-right:15px; padding-left:15px; margin-right:auto; margin-left:auto; }

@media (min-width:768px) {
  .zfkdoc .container { width: 750px; }
}
@media (min-width:992px) {
  .zfkdoc .container { width: 970px; }
}
@media (min-width:1200px) {
  .zfkdoc .container { width:1170px; }
}

.zfkdoc #page-content { position: relative; padding-top: 0; left: 0; }
.zfkdoc #header { background-color: #765c47; }
.zfkdoc #header .page-title { font-size: 2rem; line-height: 30px; padding: 20px; color: #fff; text-align: center; }

@media (max-width: 768px) {
  .zfkdoc #header .page-title { width: 100%; font-size: 1.5rem; line-height: 28px; padding-right: 10px; }
}

.zfkdoc .col-meta { 
  display: inline-block;
	position: relative;
	padding: 10px; 
	width: calc(100% - 274px);
}
.zfkdoc .col-meta-cover { 
  display: inline-block;
	position: relative;
	padding: 10px; 
	width: 252px;
	vertical-align: top;
}
.zfkdoc .col-meta-cover img { 
	object-fit: contain;
	width: 100%;
}

@media (max-width: 576px) {
	.zfkdoc .col-meta { 
    display: block;
		width: 100%;
 	}
	.zfkdoc .col-meta-cover {
    display: block;
		width: 100%;
		max-height: 150px;
		overflow: hidden;
 	}
	.zfkdoc .col-meta-cover img { 
		object-fit: cover;
	}
}

.zfkdoc footer { margin-top: 15px; color: #fff; background-color: #e6c0a1; }
.zfkdoc #footer-strip { text-align: center; color: #454545; font-size: 0.9rem; padding: 10px 0; line-height: 20px; }
.zfkdoc nav#toc-section-links ul { padding: 0.5em 0 1em; }
.zfkdoc nav#toc-section-links ul li { color: #06c; padding: 0 0 10px 10px; font-size: 0.9rem; background: url(img/black-bullet-icn.png) left 8px no-repeat; line-height: 1.25em; }
.zfkdoc nav#toc-section-links ul li.no-bullet { padding-left: 0; background: none; }
.zfkdoc nav#toc-section-links ul li a { color: #06c; text-decoration: none; }
.zfkdoc nav#toc-section-links ul li a:hover { color: #06c; text-decoration: underline; }
.zfkdoc nav#toc-section-links ul li a.active { color: #454545 !important; text-decoration: none; }
.zfkdoc .navToSelect { display: none; }

@media only screen and (max-width: 992px) {
  .zfkdoc nav#toc-section-links ul#toc-section-list { display: none; }
	.zfkdoc .navToSelect {
    display: block; 
    appearance: none; 
    background: #eee url(img/select-open-icon.png) right 8px no-repeat; 
    border: 0; 
    height: 35px; 
    width: 100%; 
    padding: 0 1%; 
    cursor: pointer;
	}
}

.zfkdoc .accordion_container { width: 100%; margin: 10px 0 0; }
.zfkdoc .accordion_head { cursor: pointer; padding: 0 16px 7px 22px; }
.zfkdoc .accordion_body {
  display: block;
  padding: 10px 10px 10px 20px; 
  overflow: hidden;
  height: 0;
  opacity: 0;
  transition: height .5s ease, opacity .5s ease;
}
.zfkdoc .accordion_body p { margin: 0 0 20px; line-height: 20px; }
.zfkdoc .accordion_body.is-open {
  height: var(--acc-height, auto); /* JSで実寸を入れる */
  opacity: 1;
}

@media (prefers-reduced-motion: reduce){
  .zfkdoc .accordion_body { transition: none; }
}

.zfkdoc .auth_accordion_body_style { background: #ebebeb; }
.zfkdoc .auth_accordion_body_style a { color:#0066cc; }
.zfkdoc .accordion_body ul li { margin: 10px 0; }
.zfkdoc ul.accordion_body_ul li {
  border-bottom: 1px solid #e1e1e1;
  padding: 10px 0;
}
.zfkdoc ul.accordion_body_ul li:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}
.zfkdoc ul.accordion_body_ul li:first-child { padding-top: 0; }
.zfkdoc ul.accordion_body_ul li p { margin-bottom: 0; }
.zfkdoc ul.accordion_body_ul li p.accordion_affilinfo > span {
  display: inline-block;
  margin-left: 10px;
  width: 100%;
}
.zfkdoc ul.accordion_body_ul li h5 { margin-bottom: 5px; }
.zfkdoc .plus-icn { background: url(img/accordian-plus-icn.png) left 2px no-repeat; }
.zfkdoc .minus-icn { background: url(img/accordian-minus-icn.png) left 2px no-repeat; }
.zfkdoc .wrapper-sticky { position: relative; float: left; min-height: 38px!important; height: 100% !important; width: 20%; }
.zfkdoc #sticky-sidebar { position: relative; width: 20%; float: left; z-index: 99; padding-top: 0; max-height: 100vh; overflow-y: auto; overflow-x: hidden; border-color: #fff; }
.zfkdoc #sticky-sidebar { visibility: hidden; }
.zfkdoc #sticky-sidebar h2 { padding-top: 12px; }
.zfkdoc .non-sticky-content {
  width: 77%; float: left; margin-left: 2%; 
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  isolation: isolate;
}

@media (max-width: 768px) {
  .zfkdoc .non-sticky-content { width: 98%; float: left; margin-left: 1%; margin-right: 1%; }
  .zfkdoc #sticky-sidebar { width: 100%; float: left; background: #fff; padding-top: 0; }
}

.zfkdoc .figures-tables-support-txt { margin: 0 1em 0 1em; text-align: left; text-indent: 0em; font-size: 0.85rem; }
.zfkdoc .figures-tables-support-txt > * { margin-left: 1em; text-indent: 0em; }
.zfkdoc .figures-tables-support-txt > h6 { margin-left: 0; font-size: 1rem; }
.zfkdoc .figures-tables-support-txt > h6 .fig-label { font-weight: bold; margin-right: 0.5em; }
.zfkdoc .figures-tables-slidshow-support-txt { margin: 10px 0; position: relative; bottom: -330px; left: 10px; }
.zfkdoc .reference-num-sequence { display: inline-block; min-width: 25px; float: left; margin-right: 0.5em; }
.zfkdoc .reference-txt { display: inline; max-width: 90%; overflow-wrap: break-word; word-wrap: break-word; }

.zfkdoc .image-holder,
.zfkdoc .table-wrap { margin: 1.5rem 0 2.5rem; position: relative; }
.zfkdoc .image-holder { border: #ebebeb solid 1px; text-align: center; cursor: pointer; }
.zfkdoc .image-holder img {
  width: 100%; max-width: 700px; height: auto;
	content-visibility: auto; /* 画像自身もオフスクリーンは描かない */
}
.zfkdoc .image-holder img.halfsize { max-width: 350px; }
.zfkdoc .image-holder > .figures-tables-support-txt { margin-top: 1rem; }

.zfkdoc .responsive-table-wrap {
  width: 100%;
  overflow-x: auto;
}
.zfkdoc .responsive-table-wrap table { border-collapse: collapse; }
.zfkdoc .responsive-table-wrap table thead th { background: #e9e9e9; border-bottom: 1px solid #eeeeee; font-size: 0.85rem; padding: 5px 4px; }
.zfkdoc .responsive-table-wrap table tbody td { background-color: #fff; border-bottom: 1px solid #eeeeee; padding: 10px 6px; }
.zfkdoc .responsive-table-wrap table .left-border { border-left: 1px solid #dcdcdc; }
.zfkdoc .responsive-table-wrap table.no-border { border: 1px solid #aaa; }
.zfkdoc .responsive-table-wrap table.no-border td,
.zfkdoc .responsive-table-wrap table.no-border th {
	border: none;
  padding: 3px 6px;
}
.zfkdoc .responsive-table-wrap td,
.zfkdoc .responsive-table-wrap th {
  padding: 10px 4px;
	border: 1px solid !important;
	border-color: #aaaaaa !important;
}
.zfkdoc .responsive-table-wrap thead th {
  text-align: center;
}
.zfkdoc .responsive-table-wrap table.bordered>thead>tr>th,
.zfkdoc .responsive-table-wrap table.bordered>thead>tr>td { border-bottom-width: 1px; }

@media (min-width: 768px) {
	.zfkdoc .divider-solid-bottom {
    border-bottom: 1px solid #b4b4b4; margin-bottom: 10px;
	}
}

.zfkdoc #book-abstract-wrap {
  content-visibility: auto;         /* ビューポート外はスキップ */
  contain-intrinsic-size: 1200px 0; /* 推定サイズ */
  contain: layout paint style;      /* 再計算の波及を遮断 */
}
.zfkdoc .book-part.foreword h1 { font-size: 1.8rem; }
.zfkdoc .book-part.foreword p.author { margin: 0 0 0.5em 0; text-indent: 0; }
.zfkdoc .book-part.foreword p.affiliation { margin: 0; text-indent: 1em; }

/* ページ内リンクをスムーススクロールに */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 6px;
}

@media (max-width: 768px) {
  html { scroll-padding-top: 100px; }
}

/* 対象要素には常にトランジションを持たせる */
.zfkdoc h1,
.zfkdoc h2,
.zfkdoc span.reference-txt { transition: background-color 1s ease; }
/* “点灯中” の状態だけ色を付ける */
.zfkdoc .highlight-flash { background-color: #fff0c4; }
.zfkdoc .references-list li { text-indent: -2.5em; margin: 0 0 0.4em 2.5em; }
.zfkdoc #block-abstract { background-color: #fcfcfc; padding: 10px; margin: 10px 0 0 0; }
.zfkdoc #block-abstract h1 { font-size: 1.8rem; }

@media (max-width: 768px) {
  .zfkdoc #block-abstract h1 { margin-top: 36px; }
}

.zfkdoc #block-abstract p.title,
.zfkdoc #block-abstract div.title > p { font-size: 1.3rem; line-height: 18px; text-indent: 0;}
.zfkdoc #block-abstract p.author { margin: 0 0 0.5em 0; text-indent: 0; }
.zfkdoc #block-abstract p.affiliation { margin: 0; text-indent: 1em; }

.zfkdoc .stratigraphic_desc > .stratigraphic_desc { margin-left: 2em; }
.zfkdoc .stratigraphic_desc > .section { margin-left: 2em; }
.zfkdoc .stratigraphic_desc > h2 {
  background-color: #eee;
  padding: 1px 6px;
  display: inline-block;
  font-weight: 400;
  margin-bottom: 4px;
  border-bottom: none;
  font-size: 1rem;
  line-height: 22px;
  border-radius: 4px;
}
.zfkdoc .stratigraphic_desc h2 + * { margin-top: 0px; }
.zfkdoc .label {
	display: inline-block;
  padding: 0 .6em;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1;
  color: #454545;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: .25em;
}

.zfkdoc div.section[data-lv="6"] > p.title { font-size: 1.0rem; line-height: 18px; text-indent: 0; font-weight: bold; margin-top: 1.5rem; }
.zfkdoc .list { margin-left: 1em; }
.zfkdoc li > .list { margin-left: 0; }
.zfkdoc .list li { margin: 0 0 0.3em 2em; }
.zfkdoc .list li > p { margin: 0 0 0 0; text-indent: 0; }
.zfkdoc .list > .label { padding-left: 0; margin-bottom: 0.3em; }
.zfkdoc .list li > p:has(> .label) { margin: 0 0 0 2em; text-indent: -2em; }

.zfkdoc .scope_desc { padding: 0.25em 0.5em; margin-bottom: 0.75em; background-color: #f0f0f0; border-radius: 6px; }
.zfkdoc .scope_desc h4.block-title { padding: 1em 0 0.15em; display: block; margin-bottom: 0px; font-weight: 400; font-size: 1rem; line-height: 22px; }
.zfkdoc .scope_desc > h4.block-title { padding: 0.15em 0 0.15em; font-weight: 600; }
.zfkdoc .scope_desc ul { margin-left: 1em; }
.zfkdoc .scope_desc li > p { margin: 0; text-indent: 0; }
.zfkdoc .scope_desc .list { margin: 0 0 1em; }
.zfkdoc .tooltip {
	position: absolute;
  top: 0;
  left: 0;
	z-index: 999;
	pointer-events: none;
	filter: drop-shadow(0 2px 6px rgba(0,0,0,0.25));
	opacity: 0;
	visibility: hidden; /* 非表示時にクリックを遮断 */
	transition: opacity 0.2s ease-in-out, visibility 0s linear .2s;
}
.zfkdoc .tooltip.show {
  pointer-events: auto;
	opacity: 1;
	visibility: visible;
  transition: opacity .2s ease-in-out, visibility 0s;
}
.zfkdoc .tooltip .tooltip-inner {
	max-width: 420px;
	background: #333;
	color: #fff;
	padding: 6px 10px;
	border-radius: 4px;
	font-size: 0.85rem;
	line-height: 1.4;
}

@media (max-width: 480px) {
  .zfkdoc .tooltip .tooltip-inner {
    max-width: min(88vw, 420px);
    word-break: break-word;
  }
}

.zfkdoc .tooltip .tooltip-inner > p {
	text-align: left;
	text-indent: 0;
}
.zfkdoc .tooltip:after {
	content: "";
	position: absolute;
	border-style: solid;
	display: block;
	width: 0;
	height: 0;
	bottom: -10px;
	left: 50%;
	margin-left: -10px;
	border-width: 10px 10px 0 10px;
	border-color: #333 transparent transparent transparent;
}
@media (prefers-reduced-motion: reduce){
  .zfkdoc .tooltip { transition: none; }
}

/* ====== 凡例ツリー ====== */
.legendGroupLabel {
  padding: 10px 0 5px 5px;
}
td:has(> .legendTreeContainer) {
  padding: 0px !important;
}
.legendTreeContainer {}
table.legendTree {
  border-collapse: collapse;
  width: 100%;
}
table.legendTree .unitCol {
  width: 40%;
}
table.legendTree .unitDescCol {
  width: 25%;
}

table.legendTree td {
  position: relative;
  vertical-align: middle;
  border-color: #dddddd;
  padding: 5px 4px;
  container-type: inline-size;
}
table.legendTree td > div {
  container-type: inline-size;
}
/* td の幅が 90px 未満なら縦書き */
@container (max-width: 4rem) {
  table.legendTree td > div > a {
    writing-mode: vertical-rl;
    text-orientation: mixed;
    height: auto;
  }
}
table.legendTree td > div {
  width: 100%;
  height: 100%;
}
table.legendTree a {
  display: block;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  text-decoration: none;
  color: inherit;
  margin: 0;
  padding: 0;
  line-height: 1.25;
  align-content: center;
  white-space: normal;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 対象：rowspan を持つ td のみ */
table.legendTree td[rowspan] {
  position: relative;
  padding-right: 8px;   /* 波括弧ぶんの余白 */
}

/* 右に開いた波括弧を描画 */
table.legendTree td[rowspan]::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;      /* ★ これで td の高さ 100% に一致 */
  right: 0px;
  width: 10px;
  background-image: url('data:image/svg+xml;utf8,\
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 100" preserveAspectRatio="none">\
<path d="M14,0.75 L6,0.75 L6,99.25 L14,99.25" fill="none" stroke="%23555" stroke-width="1.5" vector-effect="non-scaling-stroke"/>\
</svg>');
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% calc( 100% - 8px );  /* ★ 縦横ともセルに完全フィット */
  pointer-events: none;
}
