/* White pages, with the original engravings kept as grey linework. */
html { color-scheme: light; }
body { font-size: 19px; line-height: 1.45; }
.page { max-width: 1440px; padding: 0 64px 40px; }
.site-header { display: flex; align-items: center; gap: 32px; min-height: 112px; border-bottom: 1px solid var(--rule); }
.masthead { display: flex; align-items: center; gap: 12px; height: auto; flex: none; }
.mast-bird { width: 46px; height: 46px; margin: 0; object-position: center; }
.brand { margin: 0; }
.brand a { font-size: 31px; line-height: 1.15; }
.brand a em { font-style: normal; margin-right: 0; }
.brand-sub { font-size: 13px; font-style: normal; color: var(--ink-faint); margin: 7px 0 0; }
.site-header .nav { flex: 1; min-width: 0; height: auto; border: 0; gap: 20px; }
.nav ul { font-size: 15px; font-weight: 400; gap: 14px; }
.search-shell { width: 220px; flex-basis: 220px; }
.search { height: 40px; border-color: var(--rule); box-shadow: none; }
.search-shell .search input { font-size: 14px; }
.search svg { width: 16px; height: 16px; color: var(--ink-faint); }
.crumbs { height: auto; margin: 22px 0 0; font-size: 14px; color: var(--ink-faint); }
.crumbs a { color: var(--bar); }
.title-row, .reference-page .title-row { padding: 34px 0 25px; }
.title-row h1, .reference-page .title-row h1 { margin: 0; font-size: 58px; font-weight: 400; font-stretch: normal; line-height: 1.08; white-space: normal; }
.standfirst, .reference-page .standfirst { margin: 15px 0 0; max-width: 860px; font-size: 20px; font-style: normal; line-height: 1.4; color: var(--ink-soft); }
.market-names { margin: 10px 0 0; font-size: 14px; color: var(--ink-faint); }
.edition-name { display: block; font-size: .66em; margin-top: 7px; }
.prose, .reference-page .prose, .glossary-page .glossary-term .prose { font-size: 19px; line-height: 1.5; }
.prose p { margin-bottom: 18px; }
.section-head h2, .reference-page .section-head h2 { font-size: 30px; font-weight: 400; }
.head, .sub, .reference-index h3, .family-index h3, .district-index h3 { font-weight: 400; }
.section, .reference-page .section { padding-top: 36px; }
.boxed { border: 0; }
.boxed thead th, .boxed .group th { background: var(--tan); }
.boxed th, .boxed td { padding-top: 10px; padding-bottom: 10px; }
.source-list { font-size: 14px; line-height: 1.5; }
.source-list li { margin-bottom: 12px; }
.citation { color: var(--bar); }
.rail { border-color: var(--rule); }
.rail li a { font-weight: 400; padding-left: 14px; }
.rail li a[aria-current="location"] { background: none; color: var(--bar); }
.reference-layout { grid-template-columns: 190px minmax(0, 1fr); gap: 30px; }
.reference-rail { padding-right: 20px; }
.reference-rail .rail { border: 0; }
.reference-page .title-row { border-color: var(--rule); }
.reference-index { gap: 6px 34px; }
.reference-index > li { padding: 22px 0; }
.reference-index > li > div { min-width: 0; }
.reference-index h3, .reference-index p { overflow-wrap: anywhere; }
.reference-index h3 { font-size: 24px; }
.reference-index p { font-size: 18px; color: var(--ink-soft); }
.reference-index .index-detail { font-size: 14px; }
.maker-register h3 { font-weight: 400; }
.maker-facts dl { line-height: 1.45; }
.chronology th, .chronology td { padding-top: 10px; padding-bottom: 10px; }
.type-index > div + div, .chronology, .map-key, .home-bottom > section + section { border-color: var(--rule); }
.atlas-map, .atlas-overview-map { background: #fff; }
.map-land { fill: #f8faf7; }
.map-sea { fill: #fff; }
.map-frame-border { stroke: var(--rule-dark); }
.map-active { opacity: .23; }
.map-ocean-name { fill: var(--ink-faint); }
.maker-mark img { filter: grayscale(1); }
img.eng, .map-vignette { filter: grayscale(1) brightness(1.12) contrast(1.2); mix-blend-mode: multiply; }
.mast-bird, .rail-vignette, .reference-vignette, .tailpiece, .footer-flourish { opacity: .58; }
figure[data-kind="drawing"] img { opacity: .82; }
figure[data-kind="photograph"] img { filter: none; mix-blend-mode: normal; opacity: 1; }
.cap, .plate-figure figcaption { font-size: 13px; line-height: 1.5; color: var(--ink-faint); }
.credit { display: inline; font-size: 12px; }
.credit a { text-decoration: underline; text-underline-offset: 3px; }
.foot { border-top: 1px solid var(--rule); padding-top: 20px; margin-top: 64px; }
.footer-flourish { width: 225px; margin: 0 auto 10px; opacity: .4; }
.foot-row { align-items: center; padding-top: 12px; }
.foot-name { font-size: 24px; }
.foot-name em { font-style: normal; }
.revision { margin-top: 32px; color: var(--ink-faint); }

/* A gun occupies the width of its entry; photographs retain their colour. */
.model-visual > .rail { padding: 0 0 16px; border: 0; }
.model-visual > .rail ul { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.model-visual > .rail li a { height: auto; line-height: 1.4; padding: 3px 0; border: 0; margin: 0; font-size: 16px; }
.model-visual > .rail li a[aria-current="location"] { text-decoration: underline; text-underline-offset: 6px; }
.model-visual > .rail .rail-vignette { display: none; }
.model-visual > .plate-figure { padding: 4px 0 18px; border-bottom: 1px solid var(--rule); }
.model-visual > .plate-figure .drawing { width: 100%; }
.model-visual > .plate-figure img { width: 100%; max-height: 430px; object-fit: contain; }
.model-visual > .plate-figure figcaption { margin-top: 12px; }
.photo-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; padding-top: 22px; }
.gallery-figure { margin: 0; }
.gallery-figure .drawing { height: 200px; }
.gallery-figure .photo-open { height: 100%; }
.gallery-figure img { display: block; width: 100%; height: 100%; object-fit: contain; }
.gallery-figure figcaption { margin-top: 10px; }
.open, .open.without-side { grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); gap: 64px; margin-top: 32px; padding-bottom: 26px; border-color: var(--rule); }
.open > .mid { padding: 0; }
.open .mid-cols { display: block; }
#overview-h { font-size: 30px; font-weight: 400; margin-bottom: 16px; }
.open > .side { padding: 0 0 0 32px; border-color: var(--rule); }
.side .spec-summary { margin-bottom: 32px; }
.spec-summary .head, .side .head { font-size: 26px; font-weight: 400; margin-bottom: 14px; }
.specs { font-size: 16px; }
.specs th { color: var(--ink-faint); }
.specs th, .specs td { padding: 10px 0; }
.specs td { padding-left: 14px; }
.specs-cfg { font-style: normal; font-size: 14px; margin-bottom: 12px; }
.recognition { padding-top: 24px; border-top: 1px solid var(--rule); }
.head.ruled { border: 0; padding: 0; }
.glance { font-size: 17px; line-height: 1.45; }
.side .spaniel { display: block; width: 190px; max-width: 100%; margin: 24px auto 0; }
.model-page .section { padding-top: 32px; }
.model-page > .section { margin-top: 28px; border-top: 1px solid var(--rule); }
.photo-open { display: block; cursor: zoom-in; }
.photo-open:focus-visible { outline-offset: 5px; }
.photo-viewer { border: 0; padding: 50px 24px 20px; width: min(96vw, 1600px); max-height: 96dvh; color: var(--ink); background: var(--paper); }
.photo-viewer::backdrop { background: #1f2922d9; }
.photo-viewer img { display: block; width: auto; max-width: 100%; max-height: 76dvh; height: auto; object-fit: contain; margin: auto; }
.photo-viewer-caption { margin-top: 16px; text-align: center; font-size: 16px; }
.photo-close { position: absolute; right: 14px; top: 8px; min-width: 44px; min-height: 44px; border: 0; background: #fff; color: var(--ink); font: 32px/1 Arial, sans-serif; cursor: pointer; }
body:has(.photo-viewer[open]) { overflow: hidden; }

@media (max-width: 1400px) {
  .site-header { flex-wrap: wrap; gap: 0; padding: 24px 0 15px; }
  .masthead { width: 100%; }
  .site-header .nav { flex: 1 1 100%; margin-top: 18px; }
  .nav ul { font-size: 17px; gap: 24px; }
  .search-shell { flex-basis: 300px; }
}
@media (max-width: 1100px) {
  .page { padding-right: 32px; padding-left: 32px; }
  .title-row h1, .reference-page .title-row h1 { font-size: 50px; }
  .open, .open.without-side { gap: 32px; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
  .open > .mid, .open > .side { grid-row: auto; grid-column: auto; }
  .open > .side { padding-left: 24px; }
  .reference-layout { gap: 24px; }
  .nav ul { gap: 18px; }
  .search-shell { flex-basis: 250px; }
}
@media (max-width: 760px) {
  .page { padding: 0 22px 28px; }
  .site-header { padding: 21px 0 12px; }
  .masthead { gap: 9px; padding: 0; }
  .mast-bird { width: 32px; height: 40px; }
  .brand a { font-size: 25px; white-space: nowrap; }
  .brand-sub { font-size: 12px; margin-top: 5px; }
  .site-header .nav { margin-top: 14px; gap: 6px 16px; }
  .nav ul { font-size: 17px; gap: 0; }
  .search-shell { flex: 1 1 200px; width: auto; }
  .search { height: 44px; }
  .crumbs { margin-top: 13px; padding: 0; font-size: 13px; }
  .title-row, .reference-page .title-row { padding: 25px 0 20px; }
  .title-row h1, .reference-page .title-row h1 { font-size: 38px; line-height: 1.08; }
  .standfirst, .reference-page .standfirst { font-size: 18px; margin-top: 12px; }
  .prose, .reference-page .prose, .glossary-page .glossary-term .prose { font-size: 18px; line-height: 1.5; }
  .model-visual > .rail { padding: 0 0 14px; }
  .model-visual > .rail summary { font-size: 15px; }
  .model-visual > .rail ul { display: block; }
  .model-visual > .rail li a { padding: 11px 10px; min-height: 44px; }
  .model-visual > .plate-figure img { max-height: 300px; }
  .model-visual > .plate-figure { padding-bottom: 14px; }
  .photo-gallery { grid-template-columns: 1fr; gap: 20px; }
  .gallery-figure .drawing { height: auto; }
  .gallery-figure img { height: auto; max-height: 300px; }
  .open, .open.without-side { display: flex; flex-direction: column; gap: 28px; margin-top: 24px; }
  .open > .mid { order: 0; }
  .open > .side { order: 1; padding: 22px 0 0; border-top: 1px solid var(--rule); border-left: 0; }
  .spec-summary { max-width: 100%; }
  .side .spaniel { width: 160px; }
  #overview-h, .section-head h2, .reference-page .section-head h2 { font-size: 28px; }
  .reference-layout { display: block; }
  .reference-rail { padding: 0; }
  .reference-index h3 { font-size: 22px; }
  .reference-index p { font-size: 17px; }
  .section, .reference-page .section { padding-top: 28px; }
  .source-list { font-size: 13px; }
  .footer-flourish { width: 190px; }
  .foot-name { font-size: 22px; }
  .photo-viewer { width: 100vw; padding: 50px 12px 20px; }
}
@media (max-width: 360px) {
  .page { padding-right: 16px; padding-left: 16px; }
  .brand a { font-size: 22px; }
}
