/**
 * Copyright (c) 2026 Judicial Commission of NSW. All rights reserved.
 */

/* ============================================================
	1. FONTS & CSS VARIABLES
	============================================================ */

@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.13.1/font/bootstrap-icons.min.css");
@import url('https://fonts.googleapis.com/css2?family=Libre+Franklin:ital,wght@0,100..900;1,100..900&display=swap');

:root {
	/* Brand colours */
	--primary-color: #721124;
	--secondary-color: #595959;
	--tertiary-color: #a9a9a9;

	/* Body */
	--body-bg: #F1F1F2;
	--body-color: #2D2D2D;
	--body-font: "Libre Franklin", Arial, sans-serif;
	--body-font-size:   1rem;
	--body-line-height: 1.5;
	--body-font-weight: 300;
	--body-letter-spacing: 0.1px;
	--body-max-width: 1800px;

	/* Layout */
	--nav-height: 80px;
	--book-bar-height: 65px;
	--section-title: 70px;
	--toc-max-width: 420px;
	--content-padding-x: 2rem;
	--content-padding-y: 40px;

	/* Borders & Radius */
	--border-color: #CFCFCF;
	--border-color-alt: #BBB;
	--radius-sm: 12px;
	--radius-md: 24px;
	--radius-full: 999px;
}


/* ============================================================
	2. RESET & BASE
	============================================================ */

*, *::before, *::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--body-bg);
	color: var(--body-color);
	font-family: var(--body-font);
	font-size: var(--body-font-size);
	font-weight: var(--body-font-weight);
	line-height: var(--body-line-height);
	letter-spacing: var(--body-letter-spacing);
	overflow-x: hidden;
	scrollbar-gutter: stable;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img {
	border: none;
	float: none;
	max-width: 100%;
	height: auto;
}

.mobile-only {
	display: none;
}

.skip-link {
    position: absolute;
    top: -100%;
    left: 1rem;
    z-index: 9999;
    padding: 0.75rem 1.25rem;
    background: #fff;
    color: var(--primary-color);
    font-weight: 600;
    border: 2px solid var(--primary-color);
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: top 0.1s;
}

.skip-link:focus {
    top: 1rem;
}

/* ============================================================
	3. TYPOGRAPHY
	============================================================ */

h1, h2, h3, h4, h5, h6 {
	letter-spacing: .3px;
	margin-top: 1.5em;
	text-align: left;
	color: var(--primary-color);
}

h4, h5, h6 { color: black; font-weight: 500; }

h1 { font-size: 40px; margin-top: 0; }
h2 { font-size: 24px; }
h3 { font-size: 22px; }
h4 { font-size: 18px; }
h5 { font-size: 16px; font-style: italic; letter-spacing: 0; }
h6 { font-size: 16px; font-style: italic; font-weight: normal; }

/* Section headings */
.section h2.title {
	font-weight: 600;
	padding-top: 0;
}
.section h3.title {
	font-weight: 400;
}

p {
	font-size: 16px;
	line-height: var(--body-line-height);
}

b, strong {
	font-weight: 500;
}

a,
a:link,
a:visited {
	color: var(--primary-color);
}

a[href]:hover {
	text-decoration: underline;
}

code.email {
	font-family: inherit;
}

/* Suppress underline in structural nav links */
.book a,
.toc__wrapper a,
.section__navigation a,
.footnote a,
a.footnote,
a.footnoteref {
	text-decoration: none;
}


/* ============================================================
	4. BUTTONS & FORM CONTROLS
	============================================================ */

button,
input[type=button],
input[type=reset],
input[type=submit],
a.button {
	display: inline-block;
	font-family: var(--body-font);
	font-weight: 500;
	font-size: 16px;
	line-height: 1;
	padding: 12px 32px;
	border-radius: var(--radius-full);
	background: var(--primary-color);
	color: #FFF;
	border: 1px solid var(--primary-color);
	cursor: pointer;
	transition: background 0.2s ease, border-color 0.2s ease;
}

button:hover,
input[type=button]:hover,
input[type=reset]:hover,
input[type=submit]:hover,
a.button:hover {
	background: var(--secondary-color);
	border-color: var(--secondary-color);
	color: #FFF;
	text-decoration: none;
}

/* Outline / icon-only variant */
a.button[class^="icon-"],
a.button[class*=" icon-"],
a.button[class^="icon-"]:hover,
a.button[class*=" icon-"]:hover {
	background-color: transparent;
	color: var(--primary-color);
	border: 1px solid var(--primary-color);
	box-sizing: content-box;
}

a.button[class^="icon-"]:hover,
a.button[class*=" icon-"]:hover {
	font-weight: 700;
}

a.button[class^="icon-"].icon-position-right,
a.button[class*=" icon-"].icon-position-right {
	color: #FFF;
	background-color: var(--primary-color);
}

/* Autofill override */
input:-webkit-autofill,
textarea:-webkit-autofill,
select:-webkit-autofill {
	background-color: #373f48;
	color: #fff;
	box-shadow: 0 0 0 1000px #373f48 inset;
	-webkit-text-fill-color: #fff !important;
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
}


/* ============================================================
	5. SITE HEADER & NAVIGATION
	============================================================ */

.site-header {
	position: relative;
	height: auto;
	width: 100%;
	background: #FFF;
	border-bottom: 1px solid var(--border-color);
	z-index: 100;
}

.site-navigation {
	position: relative;
	z-index: 200;
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 40px;
	padding: 25px var(--content-padding-x);
	margin: 0 auto;
	max-width: var(--body-max-width);
}

/* Book title bar — sticks to top when nav scrolls away */
.site-header__book {
	background: #fff;
	border-bottom: 1px solid var(--border-color);
	height: var(--book-bar-height);
	position: sticky;
	top: 0;
	z-index: 150;
	width: 100%;
}

.site-header__book-nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: calc(var(--content-padding-y) / 2) var(--content-padding-x);
	margin: 0 auto;
	height: var(--book-bar-height);
	max-width: var(--body-max-width);
}

.site-header__book-title a {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: 15px;
	font-weight: 500;
	color: var(--primary-color);
	text-decoration: none;
}

.site-header__book-title i.bi {
	font-size: 1.2em;
}

.site-header__quick-exit i.bi {
	margin-left: 5px;
}

/* Logo */
.site-navigation .logo {
	width: 200px;
	flex-shrink: 0;
}

.site-navigation .logo a { display: block; }

.main-menu ul {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 32px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.main-menu ul a {
	border-bottom: 2px solid transparent;
	font-weight: 500;
	font-size: 16px;
	color: var(--body-color);
	line-height: 1.2;
	text-decoration: none !important;
	transition: border-color 0.2s ease;
}

.main-menu ul a:hover {
	border-color: var(--primary-color);
}

/* Search */
.search-wrapper {
	width: 360px;
	margin-left: auto;
	border: 1px solid #E6E6E6;
	border-radius: var(--radius-full);
	padding: 4px 4px 4px 16px;
}

.search-wrapper .search-label {
	max-width: 53%;
	display: flex;
	flex-wrap: nowrap;
	align-content: center;
}

.search-wrapper form {
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: center;
}

.search-wrapper form input[type=text] {
	border: 0;
	padding: 4px 8px;
	color: var(--body-color);
	font-size: 15px;
	outline: none;
	background: transparent;
	height: 100%;
}

.search-wrapper form input[type=text]::placeholder { color: #C0C0C0; }

/* Quick exit */
.site-header__quick-exit {
	background-color: orange;
	border-radius: 4px;
	letter-spacing: 0.5px;
}

.site-header__quick-exit a {
	display: block;
	padding: 8px 20px;
	font-size: 14px;
	font-weight: 600;
	color: #fff;
	text-decoration: none;
}

.site-header__quick-exit a:hover { text-decoration: underline; color: #fff; }


/* ============================================================
	6. MAIN LAYOUT (TOC + CONTENT)
	============================================================ */

main {
	display: flex;
	max-width: var(--body-max-width);
	margin: 0 auto;
	padding: 0 var(--content-padding-x);
}

.book .acknowledgements {
	background-color: #fff;
	padding: 10px 24px;
	border-left: 2px solid var(--primary-color);
	margin: 2em 0;
}

.book .acknowledgements p {
	font-size: 14px;
}

.book .row {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}

.book-cover {
	position: sticky;
	top: 0;
	padding: 1em 0 5em 5em;
}

.book nav > dl > dt {
	margin-top: 0.75em;
}

/* Sticky left-hand TOC */
main > nav.toc {
	flex: 0 0 var(--toc-max-width);
	max-width: var(--toc-max-width);
	padding: var(--content-padding-y) var(--content-padding-x) 120px 0;
	background: var(--body-bg);
	border-right: 1px solid var(--border-color);
	overflow-y: auto;
	height: calc(100vh - var(--book-bar-height));
	position: sticky;
	top: var(--book-bar-height);
}

/* Scrollbar polish on TOC */
main > nav.toc::-webkit-scrollbar { width: 6px; }
main > nav.toc::-webkit-scrollbar-track { background: transparent; }
main > nav.toc::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: 3px; }

/* Content area */
main > .book,
main > .index {
	padding: var(--content-padding-y) 0;
}

main > section {
	flex: 1;
	padding: var(--content-padding-y) 0 var(--content-padding-y) var(--content-padding-x);
	min-width: 0; /* prevent flex blowout */
}

main > section > section {
	margin-bottom: 2.5em;
}

/* Scroll target offset — compensate for sticky book bar and sticky section title */
main *:target {
	scroll-margin-top: calc(var(--book-bar-height) + var(--section-title));
}

/* Scroll target offset — compensate for sticky book bar */
main > section > section:target {
	scroll-margin-top: var(--book-bar-height);
}

div.footnote:target {
	scroll-margin-top: calc(var(--book-bar-height) + 1em);
}

/* TOC text styles */
.toc__section-title {
	font-weight: 400;
	font-size: 22px;
	line-height: 1.4;
	color: var(--primary-color);
	padding-bottom: 20px;
	border-bottom: 1px solid var(--border-color);
	margin: 5px 0 20px;
}

main > nav.toc .section a {
	font-size: 15px;
	line-height: 1.4;
	color: var(--primary-color);
	margin: 0 0 6px;
}

/* Collapsible sub toc */
.toc dl dl {
	display: none;
}

.toc dt:has(+ dd) > span::after {
	display: inline;
	font-family: "bootstrap-icons";
	content: "\F285"; /* bi-chevron-right */
	font-size: 0.75em;
	opacity: 0.6;
	margin-left: 0.3em;
}

.toc dt.open + dd > dl {
	display: block;
}

.toc dt.open > span::after {
	content: "\F282"; /* bi-chevron-down */
}

main > nav.toc .last-updated {
	font-weight: 500;
	font-size: 12px;
	line-height: 1.4;
	color: var(--primary-color);
	border-top: 1px solid var(--border-color);
	margin: 40px 0 24px;
	padding-top: 40px;
}

.nav-page {
	display: inline-flex;
	align-items: center;
	gap: .5rem;
}

.nav-page a {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	padding: .4rem .85rem;
	border-radius: var(--radius-full);
	border: 1.5px solid var(--primary-color);
	background: #fff;
	color: #333;
	font-size: .8rem;
	font-weight: 500;
	text-decoration: none;
	box-shadow: 0 1px 2px rgba(0,0,0,.06);
	transition: background .15s, border-color .15s, color .15s;
	white-space: nowrap;
}

.nav-page a:hover { background: var(--primary-color); color: #fff; }
.nav-page a:active { background: #efefef; }
.nav-page a.up {
	padding: .4rem .7rem;
	font-size: .95rem;
}

.nav-page a.disabled,
.nav-page a.disabled:hover {
	color: #bbb; border-color: #e5e5e5;
	background: #fafafa; pointer-events: none;
	box-shadow: none;
}

/* Sticky section title bar */
nav.index-navigation,
section.chapter > section > .titlepage {
	position: sticky;
	top: var(--book-bar-height);
	background-color: rgba(241, 241, 242, 0.92);
	backdrop-filter: blur(2px);
	opacity: 1;
	padding: 1rem 0;
}

nav.index-navigation {
	padding: 0;
}

section.chapter > section > .titlepage .title { margin: 0; }


/* ============================================================
	7. CONTENT — SECTIONS, ABSTRACTS, SIDEBARS
	============================================================ */

#ch4_case_summaries-assessment_of_native_title section.section:not(:last-of-type),
#ch4_case_summaries-remedies_compensation section.section:not(:last-of-type),
#ch4_case_summaries-hearings_and_evidentiary_provisions section.section:not(:last-of-type),
#ch13_case_summaries-cultural_considerations section.section:not(:last-of-type),
#ch13_case_summaries-unconscionable_conduct section.section:not(:last-of-type),
#ch13_case_summaries-misrepresentation section.section:not(:last-of-type),
section.section:not(:last-of-type) {
	padding-bottom: var(--content-padding-y);
	margin-bottom: var(--content-padding-y);
	border-bottom: 1px solid var(--border-color);
}

section section section section.section:not(:last-of-type) {
	padding-bottom: 0;
	border-bottom: none;
}

.author {
	display: none;
}

.abstract,
.sidebar {
	background-color: #fff;
	padding: 24px;
	border: 1px solid var(--border-color-alt);
	border-radius: var(--radius-md);
	margin: 2em;
}

.figure-title,
.sidebar-title {
	font-weight: 500;
	margin-bottom: 1em;
}

/* Section navigation (prev/next) */
.section__navigation {
	display: flex;
	gap: 12px;
	justify-content: center;
	background-color: transparent;
	border-radius: 0;
	padding: 0;
	margin: 1em auto;
}

.section__navigation:last-of-type { margin-top: 3em; }
.section__navigation .button {
	text-align: center;
	white-space: nowrap;
	width: 5em;
}


/* ============================================================
	8. BLOCKQUOTES
	============================================================ */

blockquote {
	border-left: 3px solid var(--border-color);
	font-size: 95%;
	margin: 0 0 1em 32px;
	padding-left: 16px;
}

blockquote.has-attribution {
	font-style: italic;
	margin: 3em;
	padding: var(--content-padding-x);
	border: 1px solid var(--border-color-alt);
	border-radius: var(--radius-sm);
}

blockquote.has-attribution p {
	font-weight: 400;
}

.attribution {
	color: var(--primary-color);
	font-style: normal;
	font-weight: 600;
	text-align: right;
	margin-top: 1em;
}

/* Inline quote styling */
blockquote p { margin: 0 0 .75em; }


/* ============================================================
	9. LISTS
	============================================================ */

div.orderedlist,
div.variablelist,
div.itemizedlist {
	margin-left: 2em;
}

table div.orderedlist,
table div.variablelist,
table div.itemizedlist,
blockquote div.orderedlist,
blockquote div.variablelist,
blockquote div.itemizedlist {
	margin-left: 0;
}

blockquote ol.orderedlist[type=1] {
	padding-inline-start: 20px;
}

ul {
	padding: 0 0 0 16px;
	margin-top: 0;
}

ul[type=endash] { list-style-type: square; }
ul[type=point]  { list-style-type: circle; }

li p { padding: 0; margin: 0 0 .5em; }

dd { margin-inline-start: 40px; }

.orderedlist dl,
.variablelist dl {
	padding-bottom: .2em;
	margin: 0;
}

.orderedlist dt,
.variablelist dt {
	float: left;
	padding-right: .5em;
}

.orderedlist dd,
.variablelist dd { margin-left: 2.5em; }

.orderedlist dd p,
.variablelist dd p,
.itemizedlist li {
	margin-top: 0;
	margin-bottom: .5em;
}

.simplelist {
	font-weight: bold;
	text-align: center;
	margin: 0 auto;
}

div.legislation-orderedlist > ol.orderedlist > li::marker {
	content: "(" counter(list-item) ")\2003";
}

ol.orderedlist[type=a] > li::marker {
	content: "(" counter(list-item, lower-alpha) ")\2003";
}

ol.orderedlist[type=i] > li::marker {
	content: "(" counter(list-item, lower-roman) ")\2003";
}


/* ============================================================
	10. TABLES
	============================================================ */

div.table,
div.informaltable {
	border: 1px solid var(--border-color-alt);
	border-radius: var(--radius-sm);
	margin-bottom: 2em;
	overflow: hidden; /* ensures border-radius clips table edges */
}

div.informaltable + div.informaltable { margin-top: 3em; }
div.table + div.table { margin-top: 3em; }

table { width: 100%; border-collapse: collapse; }

table, th, td {
	border: 1px solid var(--border-color-alt);
	vertical-align: top;
}

tbody.footnotes {
	display: none;
}

th:not([align]) { text-align: left; }

th[align=center], td[align=center] { text-align: center; }
th[valign=bottom], td[valign=bottom] { vertical-align: bottom; }
th[valign=middle], td[valign=middle] { vertical-align: middle; }

.table thead,
.informaltable thead {
	background: var(--secondary-color);
	color: #fff;
	line-height: 1.5;
	letter-spacing: 0.32px;
}

.table thead th,
.informaltable thead th {
	font-weight: 500;
}

.table-title {
	background: var(--primary-color);
	padding: 18px;
	color: #fff;
	font-weight: 600;
}

.table table th:first-child,
.table table td:first-child {
	border-left: hidden;
}

.table table th:last-child,
.table table td:last-child {
	border-right: hidden;
}

/* Hide outer borders on first/last rows */
table *:first-child tr:first-child,
table *:first-child tr:first-child th,
table *:first-child tr:first-child td { border-top: hidden; }

table *:last-child tr:last-child,
table *:last-child tr:last-child th,
table *:last-child tr:last-child td { border-bottom: hidden; }

.informaltable th, .table th,
.informaltable td, .table td {
	margin: 0;
	padding: 8px 16px;
}

.informaltable th p, .table th p,
.informaltable td p, .table td p { margin: 3px 0; padding: 0; }

/* ============================================================
	11. FOOTNOTES
	============================================================ */

sup.footnoteref,
sup.footnote {
	color: var(--primary-color);
	font-size: 13px;
	font-weight: bold;
}

.footnotes { text-align: left; }

.footnotes sup.para {
	font-weight: bold;
	padding-right: 5px;
	color: var(--primary-color);
	font-size: 13px;
}

.footnotes hr {
	background-color: #000;
	border: 0;
	margin-top: 3em;
	margin-bottom: 2em;
	margin-left: 0;
	width: 30%;
	height: 1px;
}


/* ============================================================
	12. MISCELLANEOUS CONTENT HELPERS
	============================================================ */

.abstract-title { font-weight: 400; }
.small   { font-size: 90%; }
.smaller { font-size: 85%; }
.nobr    { white-space: nowrap; }
.white, .white a { color: #fff; }

span.normal { font-weight: normal; }

.titlepage + * { margin-top: 0; }

/* Index */
.index .toc {
	padding: 1em 0;
	text-align: center;
	line-height: 2em;
}

.index .toc li {
	display: inline;
	list-style-type: none;
	font-weight: bold;
	margin: 0;
	padding: 0 .4em;
}

.index dl, .index dd { margin: 0; padding: 0; }
.indexdiv { padding-top: .5em; }
.indexdiv .title { margin-top: 2em; margin-bottom: .5em; }
.index .primaryie { font-weight: bold; padding-top: 1em; }
.cases .primaryie, .index .primaryie .seeie, .index .primaryie .seealsoie { font-weight: normal; }
.index .secondaryie { margin-top: .2em; margin-left: 2em; }
.index .tertiaryie, .index .level4 { margin-top: .2em; margin-left: 3em; }
.index .authorblurb p { font-size: 90%; text-align: center; }

/* Back-to-top animation */
@keyframes footer__back-to-top__animation {
	0%, 50%, 100% { background-position-y: center; }
	25%, 75%      { background-position-y: 10px; }
}


/* ============================================================
	13. FOOTER
	============================================================ */

footer.footer {
	background-color: var(--primary-color);
}

footer.footer::before {
	content: "";
	display: block;
	width: 100%;
	height: 30px;
	background-image: url('cover-sample.jpg');
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	border-top: 3px solid white;
	border-bottom: 3px solid white;
}

footer.footer-bottom {
	background-color: var(--secondary-color);
	border-top: 3px solid white;
	color: #FFF;
}

.footer-wrapper {
	display: flex;
	justify-content: space-evenly;
	align-items: center;
	gap: 40px;
	max-width: var(--body-max-width);
	margin: 0 auto;
	padding: 45px var(--content-padding-x);
}

footer.footer-bottom .footer-wrapper {
	padding: 15px var(--content-padding-x);
}

footer .logo {
	text-align: center;
}

footer .logo > a {
	display: block;
}

footer .acknowledgement-of-country {
	padding: 0 var(--content-padding-x);
}

footer a:link,
footer a:visited { color: #FCFBF8; }

footer a:hover { color: #fff; text-decoration: underline; }

/* ============================================================
	14. RESPONSIVE — 1400px (large desktop, tight nav)
	============================================================ */

@media screen and (max-width: 1400px) {
	:root {
		--toc-max-width: 400px;
	}
}


/* ============================================================
	15. RESPONSIVE — 1280px (mid desktop)
	============================================================ */

@media screen and (max-width: 1280px) {
	:root {
		--toc-max-width: 350px;
	}

	.site-navigation { gap: 24px; }
	.main-menu ul { gap: 16px; }

	.search-wrapper { width: 300px; }
	.search-wrapper .search-submit { padding: 10px 20px; }

	h1 { font-size: 34px; }
}


/* ============================================================
	16. RESPONSIVE — 1080px (tablet)
	============================================================ */

@media screen and (max-width: 1080px) {
	:root {
		--toc-max-width: 300px;
	}

	.table-of-contents .screen-only,
	.table-of-cases .screen-only,
	.site-header__quick-exit .screen-only {
		display: none;
	}

	.search-wrapper { width: 280px; }

	h1 { font-size: 30px; }
	h2 { font-size: 22px; }
	h3 { font-size: 20px; }
	h4 { font-size: 16px; }
	h5 { font-size: 14px; }
	h6 { font-size: 14px; }

	.toc__section-title {
		font-size: 20px;
	}
}


/* ============================================================
	17. RESPONSIVE — 992px (collapsed search)
	============================================================ */

@media screen and (max-width: 992px) {
	.site-header__quick-exit {
		display: none;
	}

	.site-navigation .logo {
		width: 175px;
	}

	.search-wrapper .screen-only { display: none; }
	.search-wrapper .search-label {	max-width: 0; }
	.search-wrapper form input[type=text] { padding: 0; }

	/* Replace submit button text with a Bootstrap icon */
	.search-wrapper .search-submit {
		padding: 8px 10px;
		line-height: 1;
		border-radius: var(--radius-full);
		display: inline-flex;
		align-items: center;
		justify-content: center;
	}

	.search-wrapper .search-submit .bi {
		display: inline-block;
		font-size: 16px;
	}

	blockquote.has-attribution {
		margin: 2em 0;
		padding: 1rem;
	}
}


/* ============================================================
	18. RESPONSIVE — 768px (collapsed nav)
	============================================================ */

@media screen and (max-width: 768px) {
	:root {
		--content-padding-y: 20px;
		--toc-max-width: 100%;
		--section-title: 95px;
	}

	.screen-only {
		display: none;
	}

	.site-navigation .logo {
		width: 150px;
	}

	.site-header__book-title a {
		gap: var(--content-padding-x);
	}

	.site-header__book-title a span {
		font-size: 0.8rem;
		max-width: 90%;
	}

	.row,
	main,
	.footer-wrapper {
		flex-direction: column;
		justify-content: center;
	}

	.book-cover { padding: 1em 0; margin: 0 auto; }

	main > nav.toc {
		position: static;
		border-bottom: 1px solid var(--border-color);
		border-right: none;
		padding: var(--content-padding-y) 0;
	}

	.toc dt:has(+ dd) > span > a::after {
		display: none;
	}

	main > nav.toc .last-updated {
		border-top: none;
		margin: 0;
		padding: 10px 0;
	}

	main > section {
		padding-left: 0;
	}
}


/* ============================================================
	19. RESPONSIVE — 680px (mobile)
	============================================================ */

@media screen and (max-width: 680px) {
	:root {
		--content-padding-x: 1rem;
	}

	.site-navigation {
		gap: 16px;
		padding: 1rem;
	}

	.site-navigation .logo {
		width: 100px;
	}

	.site-navigation .download-pdf {
		padding: 0 5px;
	}

	.main-menu .text,
	.main-menu li.table-of-contents,
	.main-menu li.table-of-cases {
		display: none;
	}

	.search-wrapper {
		margin: 0;
		flex-grow: 1;
	}
	.search-wrapper .search-submit .bi {
		display: inline-block;
		font-size: 14px;
	}

	footer .logo { padding: 0 var(--content-padding-x); }

	/* Typography scale-down */
	h1 { font-size: 26px; }
	h2 { font-size: 20px; }
	h3 { font-size: 18px; }

	/* Tables: horizontal scroll on narrow screens */
	div.table,
	div.table-contents,
	div.informaltable { overflow-x: auto; }

	table td, table p {
		font-size: 95%;
	}

	.table-title {
		padding: 14px;
	}

	.informaltable th, .table th,
	.informaltable td, .table td {
		padding: 6px 12px;
	}

	/* List indentation: tighten on narrow screens */
	div.orderedlist,
	div.variablelist,
	div.itemizedlist { margin-left: 0.75em; }
	dd { margin-inline-start: 20px; }

	/* Allow wrapping in navigation rows */
	.section__navigation { flex-wrap: wrap; }
	.nav-page { flex-wrap: wrap; }

	/* Link text wrapping */
	.nobr { white-space: initial; }
	a.link {
		overflow-wrap: break-word;
	}
}


/* ============================================================
	20. PRINT
	============================================================ */

@media print {
	:root {
		--content-padding-x: 0;
		--content-padding-y: 20px;
	}

	.site-header,
	.site-header__quick-exit,
	.book-cover,
	main > .toc,
	.section__navigation,
	.footer__back-to-top,
	footer {
		display: none;
	}

	nav.site-header__book {
		position: static;
		height: auto;
		font-size: 14px;
		margin-top: 0;
		margin-bottom: 2em;
		padding: 0;
		border-bottom: none;
	}

	.site-header__book-title i {
		display: none;
	}

	main {
		padding-top: 0;
		display: block;
	}

	section.chapter > section > .titlepage {
		position: static;
		border-bottom: none;
		background-color: inherit;
		backdrop-filter: initial;
	}

	h1, h2, h3, h4, h5, h6 {
		color: #000;
		break-after: avoid;
		padding-top: 10px;
	}

	h2 + *, h3 + *, h4 + *, h5 + *, h6 + * { break-before: avoid; }

	h1 { font-size: 26px; }
	h2 { font-size: 22px; }
	h3 { font-size: 20px; }
	h4 { font-size: 16px; }
	h5 { font-size: 14px; }
	h6 { font-size: 14px; }

	footer {
		padding: 0;
		background-color: inherit;
	}

	.footer hr { border: 1px solid #000; }

	tr, td, th, thead { page-break-inside: avoid; }

	blockquote.has-attribution {
		margin: 1em 2em 2em 2em;
		padding: 15px;
	}
}