/* Web editions: contents on the publication page and the chapter reader. */

/* ---------- Contents on the publication page (cover beside, reader below) ---------- */
.cgs-book-toc { padding: clamp(1.75rem, 4vw, 2.75rem) 0; background: #fff; border-top: 1px solid var(--cgs-border); }
.cgs-book-toc__inner.has-cover { display: grid; grid-template-columns: minmax(0, 1fr) minmax(10rem, 15rem); gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.cgs-book-toc__heading { display: flex; align-items: center; gap: .5rem; margin: 0 0 1rem; font-size: clamp(1.3rem, 2.4vw, 1.6rem); }
.cgs-book-toc__heading .cgs-book-nav__count { font-family: var(--wp--preset--font-family--body, system-ui, sans-serif); font-size: .75rem; font-weight: 700; padding: .1rem .5rem; border-radius: 99px; background: var(--cgs-surface); color: var(--cgs-muted); }
.cgs-book-toc__list { margin: 0; padding: 0 0 0 1.6rem; columns: 2 18rem; column-gap: 2.5rem; }
.cgs-book-toc__list li { break-inside: avoid; padding: .3rem 0 .3rem .2rem; border-bottom: 1px solid var(--cgs-border); font-size: .95rem; line-height: 1.4; }
.cgs-book-toc__list li::marker { color: var(--cgs-logo-green); font-weight: 700; font-size: .85rem; }
.cgs-book-toc__list a { color: var(--cgs-ink); text-decoration: none; }
.cgs-book-toc__list a:hover, .cgs-book-toc__list a:focus-visible { color: var(--cgs-logo-green); text-decoration: underline; }
.cgs-book-toc__label { font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cgs-muted); margin-right: .2rem; }
.cgs-book-toc__tools { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.4rem; margin: 1.25rem 0 0; font-size: .92rem; font-weight: 600; }
.cgs-book-toc__tools a:not(.cgs-btn) { text-decoration: none; }
.cgs-book-toc__tools a:not(.cgs-btn):hover { text-decoration: underline; }
.cgs-book-toc__cover img { display: block; width: 100%; height: auto; border-radius: 4px; box-shadow: 0 14px 30px rgba(0, 40, 20, .22); }
@media (max-width: 700px) {
	.cgs-book-toc__inner.has-cover { grid-template-columns: 1fr; }
	.cgs-book-toc__cover { order: -1; width: 9rem; }
}

/* ---------- Chapter page ---------- */
.cgs-book-head { background: linear-gradient(120deg, var(--cgs-green-dark), var(--cgs-logo-green)); color: #fff; }
.cgs-book-head__inner { display: flex; align-items: center; gap: 1.1rem; padding-block: 1.1rem; }
.cgs-book-head__cover { flex: 0 0 auto; }
.cgs-book-head__cover img { display: block; width: 56px; height: 76px; object-fit: cover; border-radius: 3px; box-shadow: 0 4px 12px rgba(0, 0, 0, .3); }
.cgs-book-head__text { min-width: 0; }
.cgs-book-head .cgs-event-hero__kicker { margin: 0 0 .2rem; color: rgba(255, 255, 255, .8); }
.cgs-book-head .cgs-event-hero__kicker a { color: #fff; }
.cgs-book-head__title { margin: 0; font-family: var(--wp--preset--font-family--heading, Georgia, serif); font-weight: 700; font-size: clamp(1rem, 1.6vw, 1.2rem); line-height: 1.3; }
.cgs-book-head__title a { color: #fff; text-decoration: none; }
.cgs-book-head__title a:hover { text-decoration: underline; }
.cgs-book-head__meta { margin: .2rem 0 0; font-size: .8rem; color: rgba(255, 255, 255, .8); }

.cgs-book__layout { display: grid; grid-template-columns: minmax(14rem, 19rem) minmax(0, 46rem); justify-content: center; gap: clamp(2rem, 4vw, 4rem); padding-block: clamp(1.5rem, 4vw, 3rem) clamp(2.5rem, 6vw, 4rem); }
.cgs-book__sticky { position: sticky; top: 1.25rem; max-height: calc(100vh - 2.5rem); overflow: auto; overscroll-behavior: contain; padding-right: .25rem; }
body.admin-bar .cgs-book__sticky { top: calc(32px + 1.25rem); max-height: calc(100vh - 32px - 2.5rem); }

.cgs-book-nav__summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: .5rem; margin-bottom: .6rem; font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--cgs-muted); }
.cgs-book-nav__summary::-webkit-details-marker { display: none; }
.cgs-book-nav__count { padding: .05rem .45rem; border-radius: 99px; background: var(--cgs-surface); font-size: .7rem; letter-spacing: 0; }
.cgs-book-nav__list, .cgs-book-nav__sections { list-style: none; margin: 0; padding: 0; }
.cgs-book-nav__list { border-left: 2px solid var(--cgs-border); }
.cgs-book-nav__item > a { display: grid; gap: .05rem; margin-left: -2px; padding: .45rem .75rem; border-left: 2px solid transparent; color: var(--cgs-ink); text-decoration: none; font-size: .9rem; line-height: 1.35; }
.cgs-book-nav__item > a:hover { color: var(--cgs-logo-green); border-left-color: var(--cgs-border); }
.cgs-book-nav__label { font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cgs-muted); }
.cgs-book-nav__item.is-current > a { border-left-color: var(--cgs-logo-green); background: var(--cgs-surface); font-weight: 700; color: var(--cgs-green-dark); }
.cgs-book-nav__sections { margin: .2rem 0 .5rem; padding-left: .75rem; }
.cgs-book-nav__sections a { display: block; padding: .25rem .5rem; font-size: .82rem; line-height: 1.35; color: var(--cgs-muted); text-decoration: none; border-radius: 4px; }
.cgs-book-nav__sections .cgs-toc__item--3 a { padding-left: 1.2rem; font-size: .78rem; }
.cgs-book-nav__sections a:hover, .cgs-book-nav__sections a.is-active { color: var(--cgs-logo-green); }
.cgs-book-nav__sections a.is-active { font-weight: 700; }

.cgs-book__tools { display: grid; gap: .4rem; margin: 1.25rem 0 0; padding-top: 1rem; border-top: 1px solid var(--cgs-border); }
.cgs-book__tools a { display: inline-flex; align-items: center; gap: .5rem; font-size: .88rem; font-weight: 600; text-decoration: none; }
.cgs-book__tools svg { width: 1rem; height: 1rem; fill: currentColor; flex: 0 0 auto; }

.cgs-book__chapter-head { margin-bottom: 1.75rem; padding-bottom: 1.25rem; border-bottom: 3px solid var(--cgs-logo-green); }
.cgs-book__label { margin: 0 0 .35rem; font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--cgs-logo-red); }
.cgs-book__title { margin: 0; font-size: clamp(1.8rem, 4vw, 2.6rem); line-height: 1.15; }

.cgs-book__text { font-family: var(--wp--preset--font-family--heading, "Noto Serif", Georgia, serif); font-size: clamp(1.04rem, .9vw + .8rem, 1.15rem); line-height: 1.8; color: #262a2e; }
.cgs-book__text p { margin: 0 0 1.15em; }
.cgs-book__text h2 { font-size: clamp(1.3rem, 2vw, 1.55rem); margin: 2.4rem 0 .9rem; scroll-margin-top: 1.5rem; }
.cgs-book__text h3 { font-size: 1.18rem; margin: 2rem 0 .7rem; scroll-margin-top: 1.5rem; color: var(--cgs-green-dark); }
.cgs-book__text h4 { font-size: 1.02rem; margin: 1.6rem 0 .5rem; }
.cgs-book__text ul, .cgs-book__text ol { padding-left: 1.4em; margin: 0 0 1.15em; }
.cgs-book__text li { margin-bottom: .4em; }
.cgs-book__text blockquote { margin: 1.5em 0; padding: .9rem 1.2rem; border-left: 4px solid var(--cgs-logo-green); background: var(--cgs-surface); font-style: italic; }
.cgs-book__text figure { margin: 2rem 0; text-align: center; }
.cgs-book__text figure img, .cgs-book__text img { max-width: 100%; height: auto; border-radius: 4px; }
.cgs-book__text figure a { display: inline-block; cursor: zoom-in; }
.cgs-book__text figcaption { margin-top: .6rem; font-family: var(--wp--preset--font-family--body, system-ui, sans-serif); font-size: .85rem; line-height: 1.45; color: var(--cgs-muted); text-align: left; padding-left: .75rem; border-left: 2px solid var(--cgs-logo-green); }
.cgs-book__text .cgs-table-wrap { margin: 1.75rem 0; overflow-x: auto; border: 1px solid var(--cgs-border); border-radius: 8px; }
.cgs-book__text .cgs-table-wrap:focus-visible { outline: 2px solid var(--cgs-logo-green); outline-offset: 2px; }
.cgs-book__text table { display: table; width: 100%; margin: 0; overflow: visible; border-collapse: collapse; font-family: var(--wp--preset--font-family--body, system-ui, sans-serif); font-size: .88rem; line-height: 1.45; }
.cgs-book__text th, .cgs-book__text td { padding: .55rem .75rem; border-bottom: 1px solid var(--cgs-border); text-align: left; vertical-align: top; }
.cgs-book__text thead th, .cgs-book__text tr:first-child th { background: var(--cgs-green-dark); color: #fff; font-weight: 600; }
.cgs-book__text tbody tr:nth-child(even) td { background: var(--cgs-surface); }
.cgs-book__text .cgs-table-caption { margin: 1.75rem 0 -1.1rem; font-family: var(--wp--preset--font-family--body, system-ui, sans-serif); font-size: .85rem; font-weight: 700; color: var(--cgs-green-dark); }
.cgs-book__text .cgs-note { font-family: var(--wp--preset--font-family--body, system-ui, sans-serif); font-size: .82rem; color: var(--cgs-muted); }
.cgs-book__text .cgs-references p, .cgs-book__text .cgs-references li { font-size: .92rem; line-height: 1.6; padding-left: 1.5em; text-indent: -1.5em; }

.cgs-book__text .cgs-fn-ref { font-size: .7em; line-height: 0; margin-left: .1em; }
.cgs-book__text .cgs-fn-ref a { text-decoration: none; font-family: var(--wp--preset--font-family--body, system-ui, sans-serif); font-weight: 700; padding: 0 .15em; }
.cgs-book__text .cgs-footnotes { margin-top: 3rem; padding-top: 1.25rem; border-top: 1px solid var(--cgs-border); font-family: var(--wp--preset--font-family--body, system-ui, sans-serif); font-size: .86rem; line-height: 1.55; color: var(--cgs-muted); }
.cgs-book__text .cgs-footnotes h2 { margin: 0 0 .75rem; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--cgs-muted); }
.cgs-book__text .cgs-footnotes li { margin-bottom: .5rem; overflow-wrap: anywhere; scroll-margin-top: 1.5rem; }
.cgs-book__text .cgs-footnotes li:target { background: #fff8d6; }
.cgs-book__text .cgs-fn-back { text-decoration: none; margin-left: .25rem; }
.cgs-book__text a { overflow-wrap: anywhere; }
.cgs-book__text .cgs-options { list-style: none; padding: 0; margin: 0 0 1.4em; display: flex; flex-wrap: wrap; gap: .4rem .6rem; font-family: var(--wp--preset--font-family--body, system-ui, sans-serif); font-size: .9rem; }
.cgs-book__text .cgs-options li { margin: 0; display: inline-flex; align-items: center; gap: .45rem; padding: .3rem .7rem .3rem .5rem; border: 1px solid var(--cgs-border); border-radius: 6px; background: #fff; line-height: 1.35; }
.cgs-book__text .cgs-options li::before { content: ""; flex: 0 0 auto; width: .8rem; height: .8rem; border: 1.5px solid var(--cgs-muted); border-radius: 2px; }
.cgs-book__text .cgs-figure { padding: 1rem; border: 1px solid var(--cgs-border); border-radius: 10px; background: #fff; }
.cgs-book__text .cgs-figure figcaption { margin-top: .9rem; }
.cgs-book__text .cgs-figure figcaption small { display: block; margin-top: .2rem; font-size: .78rem; }
.cgs-book__text table tfoot td { font-size: .8rem; font-style: italic; color: var(--cgs-muted); background: #fff; border-bottom: 0; }

.cgs-book__pager { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; margin: 3rem 0 2rem; }
.cgs-book__pager-link { display: grid; gap: .25rem; padding: 1rem 1.1rem; border: 1px solid var(--cgs-border); border-radius: 10px; text-decoration: none; color: var(--cgs-ink); transition: border-color .15s, box-shadow .15s; }
.cgs-book__pager-link:hover, .cgs-book__pager-link:focus-visible { border-color: var(--cgs-logo-green); box-shadow: 0 6px 18px rgba(0, 71, 42, .1); }
.cgs-book__pager-link--next { grid-column: 2; text-align: right; }
.cgs-book__pager-dir { font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cgs-logo-green); }
.cgs-book__pager-title { font-family: var(--wp--preset--font-family--heading, Georgia, serif); font-weight: 700; line-height: 1.3; color: var(--cgs-green-dark); }
.cgs-book__foot { display: grid; gap: 1.25rem; }

/* Tablet and phone: contents become a collapsible panel above the text. */
@media (max-width: 960px) {
	.cgs-book__layout { grid-template-columns: minmax(0, 46rem); }
	.cgs-book__sticky { position: static; max-height: none; overflow: visible; padding: 0; }
	.cgs-book-nav { border: 1px solid var(--cgs-border); border-radius: 10px; background: var(--cgs-surface); }
	.cgs-book-nav__summary { margin: 0; padding: .85rem 1rem; color: var(--cgs-green-dark); font-size: .8rem; }
	.cgs-book-nav__summary::after { content: ""; margin-left: auto; width: .55rem; height: .55rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .15s; }
	.cgs-book-nav[open] .cgs-book-nav__summary::after { transform: rotate(-135deg); }
	.cgs-book-nav__list { margin: 0 1rem 1rem; background: #fff; }
	.cgs-book-nav__count { background: #fff; }
	.cgs-book__tools { grid-auto-flow: column; justify-content: start; gap: 1.25rem; border-top: 0; padding-top: 0; margin-top: .9rem; }
}
@media (max-width: 560px) {
	.cgs-book-head__cover img { width: 44px; height: 60px; }
	.cgs-book__tools { grid-auto-flow: row; gap: .5rem; }
	.cgs-book__pager { grid-template-columns: 1fr; }
	.cgs-book__pager-link--next { grid-column: auto; }
}
@media print {
	.cgs-book-head, .cgs-book__side, .cgs-book__pager, .cgs-book__foot .cgs-share, .cgs-progress { display: none !important; }
	.cgs-book__layout { display: block; }
}
