/* ═══════════════════════════════════════════════════════════════════════════
   G Pulse Linear: product manual, redesigned layout (views/pages/manual-v2.php)

   Approved 2026-10-27 from the option board in docs/mockups/manual-redesign-2026-10-27
   (1A 2A 3B 4A 5A 6B 7A 8A 9A 10B 11B). Loaded after product-manuals.css, only on manuals
   whose data carries a 'v2' block.

   The brief was "too many black sections in a row", so every section takes a different
   ground from its neighbours:
     hero artwork → metal strip → textured graphite → ivory → black → brushed metal →
     ivory (chart) → circuit artwork → black (scope) → ivory → trace artwork
   Section padding steps between 88 and 152px so the rhythm is not one repeated beat.
   Square corners, Manrope, bronze/copper motif, amber for "do this" and focus.
   ═══════════════════════════════════════════════════════════════════════════ */

.gp-pages .gp-m2 {
	--m2-copper: #d7ac78;
	--m2-amber: #ffc36a;
	--m2-ink: #22201b;
	--m2-ink-muted: #5b5649;
	--m2-ink-line: #d6ccbb;
	--m2-ease: cubic-bezier(.2, .6, .3, 1);
}
.gp-pages .gp-m2-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

/* Resets kept at zero specificity so every component's own spacing wins. */
:where(.gp-pages .gp-m2) :where(h1, h2, h3, p, dl, dd, ol, ul, figure) { margin: 0; }
:where(.gp-pages .gp-m2) :where(ol, ul) { padding: 0; list-style: none; }
.gp-pages .gp-m2-eyebrow { font-size: var(--gp-label); font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--m2-copper); }
.gp-pages .gp-m2-title { margin-top: var(--gp-s16); font-size: var(--gp-title); font-weight: 400; line-height: 1.08; letter-spacing: -.025em; }
.gp-pages .gp-m2-lead { max-width: 54ch; margin-top: var(--gp-s24); color: var(--gp-muted); }
.gp-pages .gp-m2-split { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--gp-s64); align-items: start; }
.gp-pages .gp-m2 section { position: relative; isolation: isolate; }

/* Ivory grounds: ink, not ivory, and the darker bronze for labels (contrast). */
.gp-pages .gp-m2-g-graphite { background: var(--gp-graphite); }
.gp-pages .gp-m2-g-ivory { background: var(--gp-ivory); color: var(--m2-ink); color-scheme: light; }
.gp-pages .gp-m2-g-ivory .gp-m2-eyebrow { color: #7d5e3f; }
.gp-pages .gp-m2-g-ivory :is(h2, h3) { color: var(--m2-ink); }
.gp-pages .gp-m2-g-ivory .gp-m2-lead { color: var(--m2-ink-muted); }
.gp-pages .gp-m2-g-ivory :focus-visible { outline-color: #8a5f33; }
.gp-pages .gp-m2-g-ivory .gp-manual-note { background: rgb(170 132 96 / .1); border-color: var(--gp-bronze); color: var(--m2-ink); }
.gp-pages .gp-m2-g-ivory .gp-manual-note strong { color: #7d5e3f; }

/* ─── 1A · Hero: studio abstract + 3D model ───────────────────────────────── */
.gp-pages .gp-m2-hero { overflow: hidden; padding-block: var(--gp-s64) 112px; background: #000; }
.gp-pages .gp-m2-hero::before { content: ""; position: absolute; inset: 0; z-index: -2; background: url("images/backgrounds/product-studio-abstract-v1.webp") 70% 60% / cover no-repeat; }
.gp-pages .gp-m2-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #000 0%, rgb(0 0 0 / .92) 30%, rgb(0 0 0 / .35) 62%, rgb(0 0 0 / .15) 100%), linear-gradient(0deg, #000 0%, transparent 24%); }
.gp-pages .gp-m2-hero__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--gp-s40); align-items: center; }
.gp-pages .gp-m2-hero h1 { margin-top: var(--gp-s16); font-size: var(--gp-display); font-weight: 400; line-height: .95; letter-spacing: -.045em; }
.gp-pages .gp-m2-hero__name { margin-top: var(--gp-s24); font-size: var(--gp-card); line-height: 1.25; }
.gp-pages .gp-m2-hero__intro { max-width: 46ch; margin-top: var(--gp-s16); color: var(--gp-muted); }
.gp-pages .gp-m2-hero__meta { display: flex; flex-wrap: wrap; gap: var(--gp-s24); margin-top: var(--gp-s24); font-size: 13px; letter-spacing: .04em; color: var(--gp-muted); }
.gp-pages .gp-m2-hero__meta span::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 8px; background: var(--m2-copper); vertical-align: 2px; }
.gp-pages .gp-m2-hero .gp-manual-actions { margin-top: var(--gp-s40); }
.gp-pages .gp-m2-stage { position: relative; aspect-ratio: 4 / 3; margin-right: calc(-1 * var(--gp-s64)); translate: 0 6%; }
.gp-pages .gp-m2-stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; opacity: 0; cursor: grab; touch-action: pan-y; transition: opacity .9s var(--m2-ease); }
.gp-pages .gp-m2-stage canvas:active { cursor: grabbing; }
.gp-pages .gp-m2-stage.is-ready canvas { opacity: 1; }
.gp-pages .gp-m2-stage__poster { position: absolute; inset: 12% 4%; width: 92%; height: 76%; object-fit: contain; transition: opacity .6s; pointer-events: none; }
.gp-pages .gp-m2-stage__hint { pointer-events: none; }
.gp-pages .gp-m2-stage.is-ready .gp-m2-stage__poster { opacity: 0; }
.gp-pages .gp-m2-stage__hint { position: absolute; left: 50%; bottom: 2%; translate: -50% 0; display: flex; gap: 8px; align-items: center; white-space: nowrap; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--gp-muted); opacity: 0; transition: opacity .4s; }
.gp-pages .gp-m2-stage__hint::before, .gp-pages .gp-m2-stage__hint::after { content: ""; width: 28px; height: 1px; background: var(--m2-copper); }
.gp-pages .gp-m2-stage.is-ready:not(.is-touched) .gp-m2-stage__hint { opacity: 1; }

.gp-pages .gp-m2 [id] { scroll-margin-top: calc(var(--m2-head, 0px) + 24px); }

/* ─── 3B · Specifications: engraved equipment label ───────────────────────── */
.gp-pages .gp-m2-specs { padding-block: 112px; background: url("images/resource-hub-v1/quiet-graphite.webp") center / cover, #121311; }
.gp-pages .gp-m2-specs::before { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(70% 90% at 20% 0%, rgb(0 0 0 / .1), rgb(0 0 0 / .55) 80%); }
.gp-pages .gp-m2-plate { position: relative; margin-top: 48px; padding: 48px 56px; background: linear-gradient(175deg, #1b1c19, #0d0e0c 60%, #161714); border: 1px solid #45433a; box-shadow: inset 0 1px 0 rgb(255 255 255 / .07), inset 0 0 0 6px #0b0c0a, inset 0 0 0 7px #2c2b25, 0 40px 80px -40px #000; }
.gp-pages .gp-m2-screw { position: absolute; width: 18px; height: 18px; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #d8d2c4, #6c685d 55%, #2a2924 70%); }
.gp-pages .gp-m2-screw:nth-child(1) { top: 18px; left: 18px; } .gp-pages .gp-m2-screw:nth-child(2) { top: 18px; right: 18px; }
.gp-pages .gp-m2-screw:nth-child(3) { bottom: 18px; left: 18px; } .gp-pages .gp-m2-screw:nth-child(4) { bottom: 18px; right: 18px; }
.gp-pages .gp-m2-plate__head { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; padding-bottom: 20px; border-bottom: 1px solid #45433a; font-size: 12px; letter-spacing: .2em; text-transform: uppercase; color: #cfc6b5; }
.gp-pages .gp-m2-plate__head strong { font-size: 26px; font-weight: 600; letter-spacing: .12em; color: #f4ecdf; }
.gp-pages .gp-m2-plate dl { display: grid; grid-template-columns: 1fr 1fr; column-gap: 56px; }
.gp-pages .gp-m2-plate dl div { display: flex; align-items: baseline; gap: 12px; padding: 15px 0; border-bottom: 1px dashed #34332c; }
.gp-pages .gp-m2-plate dt { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: #b9b09f; white-space: nowrap; }
.gp-pages .gp-m2-plate dt::after { content: ""; display: inline-block; width: 0; }
.gp-pages .gp-m2-plate dl div::after { content: ""; order: 1; flex: 1; min-width: 16px; border-bottom: 1px dotted #6a5a46; translate: 0 -4px; }
.gp-pages .gp-m2-plate dd { order: 2; text-align: right; font-size: 15px; color: var(--gp-ivory); }
.gp-pages .gp-m2-plate__note { max-width: 80ch; margin-top: var(--gp-s24); font-size: 14px; color: var(--gp-muted); }

/* ─── 4A · Before you start: caution plate on ivory ───────────────────────── */
.gp-pages .gp-m2-before { padding-block: 96px; }
.gp-pages .gp-m2-caution { background: #141512; border: 1px solid var(--gp-bronze); color: #ddd5c7; box-shadow: 0 30px 60px -30px rgb(34 32 27 / .55); }
.gp-pages .gp-m2-caution__head { display: flex; align-items: center; gap: 14px; padding: 14px 24px; background: var(--m2-copper); color: #1b1408; font-size: 12px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }
.gp-pages .gp-m2-caution__head svg { width: 20px; height: 20px; flex: none; }
.gp-pages .gp-m2-caution ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); counter-reset: gp-m2-safe; }
.gp-pages .gp-m2-caution ol.gp-m2-caution--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gp-pages .gp-m2-caution li { counter-increment: gp-m2-safe; padding: 28px 24px 32px; font-size: 15px; }
.gp-pages .gp-m2-caution li + li { border-left: 1px solid rgb(170 132 96 / .35); }
.gp-pages .gp-m2-caution li::before { content: counter(gp-m2-safe, decimal-leading-zero); display: block; margin-bottom: 8px; font-size: 12px; letter-spacing: .16em; color: var(--m2-copper); }
.gp-pages .gp-m2-caution li svg { display: block; width: 40px; height: 40px; margin-bottom: 18px; color: var(--m2-copper); }

/* ─── 5A · Connections: signal flow on black ──────────────────────────────── */
.gp-pages .gp-m2-conn { padding-block: 128px; background: #000; }
.gp-pages .gp-m2-conn__head { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: var(--gp-s64); align-items: end; }
.gp-pages .gp-m2-routes { justify-self: end; display: inline-flex; border: 1px solid #4a4840; }
.gp-pages .gp-m2-routes button { min-height: 48px; padding: 14px 20px; border: 0; background: transparent; color: var(--gp-muted); font: 600 12px var(--gp-font); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; transition: color .18s, background-color .18s; }
.gp-pages .gp-m2-routes button:hover { color: var(--gp-ivory); }
.gp-pages .gp-m2-routes button[aria-pressed=true] { background: var(--m2-copper); color: #1b1408; }
.gp-pages .gp-m2-routes button:focus-visible { outline: 2px solid var(--m2-amber); outline-offset: 2px; }
.gp-pages .gp-m2-flow { position: relative; display: grid; grid-template-columns: 1fr 1.25fr 1fr; align-items: center; margin-top: 64px; }
.gp-pages .gp-m2-flow figure { position: relative; z-index: 1; text-align: center; }
.gp-pages .gp-m2-flow img { width: min(100%, 300px); height: auto; margin-inline: auto; }
.gp-pages .gp-m2-flow__unit { padding: 24px; background: #0e0f0d; border: 1px solid #2c2b26; }
.gp-pages .gp-m2-flow__unit img { width: 100%; max-width: 460px; }
.gp-pages .gp-m2-flow figcaption { margin-top: 14px; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--gp-muted); }
.gp-pages .gp-m2-flow figcaption strong { display: block; margin-bottom: 2px; font-size: 17px; font-weight: 500; letter-spacing: -.005em; text-transform: none; color: var(--gp-ivory); }
.gp-pages .gp-m2-flow__cables { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; overflow: visible; }
.gp-pages .gp-m2-flow__cables path { fill: none; stroke: var(--m2-copper); stroke-width: 2.5; stroke-dasharray: 8 10; filter: drop-shadow(0 0 6px rgb(215 172 120 / .6)); animation: gp-m2-flow 1.2s linear infinite; }
@keyframes gp-m2-flow { to { stroke-dashoffset: -18; } }
.gp-pages .gp-m2-conn__notes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--gp-s40); margin-top: 64px; padding-top: 32px; border-top: 1px solid var(--gp-line); }
.gp-pages .gp-m2-conn__notes h3 { font-size: 13px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--m2-copper); }
.gp-pages .gp-m2-conn__notes p { margin-top: 10px; font-size: 15px; color: #cfc7b9; }
.gp-pages .gp-m2-conn .gp-manual-related { margin-top: var(--gp-s40); }

/* ─── 6B · Set the controls: hardware tiles on brushed metal ──────────────── */
.gp-pages .gp-m2-controls { padding-block: 104px; background: url("images/footer-benefits-v1/footer-brushed-metal.webp") center / cover, #121311; }
.gp-pages .gp-m2-controls .gp-m2-lead { color: #d6cec0; }
.gp-pages .gp-m2-tiles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 56px; }
.gp-pages .gp-m2-tile { display: grid; grid-template-columns: 200px 1fr; gap: 40px; align-items: center; padding: 40px; background: linear-gradient(170deg, #1d1e1b, #0d0e0c); border: 1px solid #36352e; box-shadow: inset 0 1px 0 rgb(255 255 255 / .06), 0 30px 60px -30px #000; }
.gp-pages .gp-m2-tile h3 { font-size: var(--gp-card); font-weight: 400; line-height: 1.2; }
.gp-pages .gp-m2-tile p { margin-top: 8px; font-size: 15px; color: var(--gp-muted); }
.gp-pages .gp-m2-tile p.gp-m2-tile__set { display: inline-block; margin-top: 18px; padding: 6px 10px; border: 1px solid var(--m2-amber); color: var(--m2-amber); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.gp-pages .gp-m2-dial { position: relative; display: block; width: 200px; height: 200px; }
.gp-pages .gp-m2-dial svg { position: absolute; inset: 0; }
.gp-pages .gp-m2-dial line { stroke: #6b6556; stroke-width: 2; }
.gp-pages .gp-m2-dial line.is-set { stroke: var(--m2-amber); stroke-width: 3; }
.gp-pages .gp-m2-dial__knob { position: absolute; inset: 34px; border-radius: 50%; background: repeating-conic-gradient(#d9d6cf 0 2deg, #a9a59b 2deg 4deg); box-shadow: 0 12px 24px #000, inset 0 0 0 1px rgb(255 255 255 / .25); rotate: -135deg; transition: rotate 1.2s var(--m2-ease); }
.gp-pages .gp-m2-dial__knob::before { content: ""; position: absolute; inset: 14px; border-radius: 50%; background: conic-gradient(from 200deg, #f4f2ee, #9a968c, #e8e5df, #8d897f, #f4f2ee); }
.gp-pages .gp-m2-dial__knob::after { content: ""; position: absolute; left: 50%; top: 10px; width: 4px; height: 30px; margin-left: -2px; background: #121210; }
.gp-pages .gp-m2-tile:hover .gp-m2-dial__knob { rotate: -150deg; }
.gp-pages .gp-m2-toggle { display: grid; place-items: center; width: 200px; height: 200px; }
.gp-pages .gp-m2-toggle__plate { display: grid; justify-items: center; align-content: space-between; width: 120px; height: 168px; padding: 10px 0; background: linear-gradient(180deg, #24251f, #121310); border: 1px solid #45433a; font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #6b6556; }
.gp-pages .gp-m2-toggle__plate span:first-child { color: var(--m2-amber); }
.gp-pages .gp-m2-toggle__slot { position: relative; width: 26px; height: 64px; background: #050505; box-shadow: inset 0 2px 4px #000; }
.gp-pages .gp-m2-toggle__slot::after { content: ""; position: absolute; left: 3px; right: 3px; top: 3px; height: 26px; background: linear-gradient(180deg, #e9e6df, #8c887e); }
.gp-pages .gp-m2-toggle.is-down .gp-m2-toggle__slot::after { top: auto; bottom: 3px; }
.gp-pages .gp-m2-toggle.is-down .gp-m2-toggle__plate span:first-child { color: #6b6556; }
.gp-pages .gp-m2-toggle.is-down .gp-m2-toggle__plate span:last-child { color: var(--m2-amber); }
.gp-pages .gp-m2-dial.is-centre .gp-m2-dial__knob { rotate: 0deg; }
.gp-pages .gp-m2-tile:hover .gp-m2-dial.is-centre .gp-m2-dial__knob { rotate: -12deg; }
/* One tile spans the rail; five or more become a three-up grid of stacked tiles. */
.gp-pages .gp-m2-tiles.is-one { grid-template-columns: minmax(0, 1fr); max-width: 760px; }
.gp-pages .gp-m2-tiles.is-many { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gp-pages .gp-m2-tiles.is-many .gp-m2-tile { grid-template-columns: 1fr; gap: 20px; justify-items: start; padding: 32px; }
.gp-pages .gp-m2-tiles.is-many :is(.gp-m2-dial, .gp-m2-toggle) { width: 150px; height: 150px; }
.gp-pages .gp-m2-tiles.is-many .gp-m2-dial__knob { inset: 26px; }
.gp-pages .gp-m2-tiles.is-many .gp-m2-dial__knob::after { transform-origin: 50% 46px; }
.gp-pages .gp-m2-tiles.is-many .gp-m2-toggle__plate { width: 96px; height: 136px; }
.gp-pages .gp-m2-then { max-width: 760px; margin-top: var(--gp-s40); padding-top: var(--gp-s24); border-top: 1px solid rgb(241 233 220 / .16); }
.gp-pages .gp-m2-then h3 { font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--m2-copper); }
.gp-pages .gp-m2-controls .gp-manual-note { margin-top: var(--gp-s40); }

/* ─── 7A · Operation (the filter section carries the chart, on ivory) ─────── */
.gp-pages .gp-m2-op { padding-block: 120px; }
.gp-pages .gp-m2-op:nth-of-type(even) { padding-block: 104px; }
.gp-pages .gp-m2-op__grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--gp-s64); align-items: start; }
.gp-pages .gp-m2-op :is(.gp-m2-op__copy, .gp-m2-op__body) > p { margin-top: 18px; color: var(--gp-muted); }
.gp-pages .gp-m2-op__body > :first-child { margin-top: 0; }
.gp-pages .gp-m2-op--chart .gp-m2-op__copy h2 + p, .gp-pages .gp-m2-op__body > p:first-child { color: var(--gp-ivory); font-size: 19px; line-height: 1.55; }
.gp-pages .gp-m2-g-ivory :is(.gp-m2-op__copy, .gp-m2-op__body) > p { color: var(--m2-ink-muted); }
.gp-pages .gp-m2-g-ivory :is(.gp-m2-op__copy h2 + p, .gp-m2-op__body > p:first-child) { color: var(--m2-ink); }
.gp-pages .gp-m2-op .gp-manual-note { margin-top: 32px; }
.gp-pages .gp-m2-op__chart figcaption { margin-top: 16px; font-size: 13px; color: var(--gp-muted); }
.gp-pages .gp-m2-g-ivory .gp-m2-op__chart figcaption { color: var(--m2-ink-muted); }
/* Numbered steps and bullets inside an operation section. */
.gp-pages :is(.gp-m2-numbered, .gp-m2-then ol) { display: grid; gap: 14px; margin-top: 20px; counter-reset: gp-m2-num; }
.gp-pages :is(.gp-m2-numbered, .gp-m2-then ol) li { counter-increment: gp-m2-num; display: grid; grid-template-columns: 36px 1fr; gap: 14px; align-items: start; }
.gp-pages :is(.gp-m2-numbered, .gp-m2-then ol) li::before { content: counter(gp-m2-num); display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--gp-bronze); color: var(--m2-copper); font-size: 14px; font-weight: 700; }
.gp-pages .gp-m2-g-ivory .gp-m2-numbered li::before { color: #7d5e3f; }
.gp-pages .gp-m2-numbered li, .gp-pages .gp-m2-then li { padding-top: 6px; }
.gp-pages .gp-m2-numbered + p { margin-top: 28px; }
.gp-pages .gp-m2-bullets { display: grid; gap: 12px; margin-top: 20px; }
.gp-pages .gp-m2-bullets li { position: relative; padding-left: 24px; }
.gp-pages .gp-m2-bullets li::before { content: ""; position: absolute; left: 0; top: .7em; width: 10px; height: 2px; background: var(--gp-bronze); }
/* Tone-control chart modes. */
.gp-pages .gp-m2-modes { display: inline-flex; margin-top: 28px; border: 1px solid #5a5145; }
.gp-pages .gp-m2-g-ivory .gp-m2-modes { border-color: #b9ab93; }
.gp-pages .gp-m2-modes button { min-height: 48px; padding: 12px 18px; border: 0; background: transparent; color: inherit; font: 600 12px var(--gp-font); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.gp-pages .gp-m2-modes button[aria-pressed=true] { background: var(--m2-copper); color: #1b1408; }
.gp-pages .gp-m2-modes button:focus-visible { outline: 2px solid var(--m2-amber); outline-offset: 2px; }
/* Troubleshooting. */
.gp-pages .gp-m2-trouble { padding-block: 104px; }
.gp-pages .gp-m2-fixes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 48px; }
.gp-pages .gp-m2-fixes li { padding: 28px; border-top: 2px solid var(--gp-bronze); background: rgb(241 233 220 / .04); }
.gp-pages .gp-m2-g-ivory .gp-m2-fixes li { background: #fbf5ea; box-shadow: 0 18px 40px -28px rgb(34 32 27 / .45); }
.gp-pages .gp-m2-fixes h3 { font-size: 20px; font-weight: 500; }
.gp-pages .gp-m2-fixes p { margin-top: 8px; font-size: 15px; color: var(--gp-muted); }
.gp-pages .gp-m2-g-ivory .gp-m2-fixes p { color: var(--m2-ink-muted); }

/* Hardware-style filter switch (a real role="switch" button). */
.gp-pages .gp-m2-switch { display: inline-flex; align-items: center; gap: 14px; min-height: 48px; margin-top: 28px; padding: 0; border: 0; background: none; color: inherit; font: 600 12px var(--gp-font); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.gp-pages .gp-m2-switch__track { position: relative; width: 64px; height: 30px; background: #1a1b18; border: 1px solid #000; box-shadow: inset 0 2px 4px #000; }
.gp-pages .gp-m2-switch__track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 26px; height: 22px; background: linear-gradient(180deg, #ecd8b3, #b48c5f); transition: translate .25s var(--m2-ease); }
.gp-pages .gp-m2-switch[aria-checked=true] .gp-m2-switch__track::after { translate: 32px 0; }
.gp-pages .gp-m2-switch__lamp { width: 10px; height: 10px; border-radius: 50%; background: #3a3226; transition: background .2s, box-shadow .2s; }
.gp-pages .gp-m2-switch[aria-checked=true] .gp-m2-switch__lamp { background: var(--m2-amber); box-shadow: 0 0 10px var(--m2-amber); }
.gp-pages .gp-m2-switch:focus-visible { outline: 2px solid var(--m2-amber); outline-offset: 4px; }
.gp-pages .gp-m2-op--chart .gp-m2-switch:focus-visible { outline-color: #8a5f33; }

/* ─── 8A · Design notes: circuit artwork ──────────────────────────────────── */
.gp-pages .gp-m2-design { overflow: hidden; padding-block: 136px; background: #000; }
.gp-pages .gp-m2-design::before { content: ""; position: absolute; inset: 0 0 0 38%; z-index: -2; background: url("images/backgrounds/makers-circuit-v1.webp") right center / cover no-repeat; }
.gp-pages .gp-m2-design::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #000 38%, rgb(0 0 0 / .8) 58%, rgb(0 0 0 / .5)); }
.gp-pages .gp-m2-figures { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 980px; margin-top: 64px; border-top: 1px solid #4a4235; }
.gp-pages .gp-m2-figures div { padding: 28px 28px 0 0; }
.gp-pages .gp-m2-figures div + div { padding-left: 28px; border-left: 1px solid #4a4235; }
.gp-pages .gp-m2-figures dt { font-size: clamp(36px, 3.7vw, 60px); font-weight: 300; line-height: 1; letter-spacing: -.04em; color: var(--m2-copper); white-space: nowrap; }
.gp-pages .gp-m2-figures dd { margin-top: 12px; font-size: 14px; color: #cfc7b9; }
.gp-pages .gp-m2-notes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 40px; max-width: 980px; margin-top: 64px; counter-reset: gp-m2-note; }
.gp-pages .gp-m2-notes li { counter-increment: gp-m2-note; padding-top: 16px; border-top: 1px solid #2f2c26; font-size: 15px; color: #d6cec0; }
.gp-pages .gp-m2-notes__head { margin-top: 64px; font-size: 13px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--m2-copper); }
.gp-pages .gp-m2-notes__head + .gp-m2-notes { margin-top: 24px; }
.gp-pages .gp-m2-facts { display: grid; gap: 0; margin-top: 32px; border-top: 1px solid #3a342a; }
.gp-pages .gp-m2-facts div { display: grid; grid-template-columns: 200px 1fr; gap: 24px; padding: 18px 0; border-bottom: 1px solid #2a251e; }
.gp-pages .gp-m2-facts dt { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--m2-copper); }
.gp-pages .gp-m2-facts dd { color: #cfc7b9; }
.gp-pages .gp-m2-notes li::before { content: counter(gp-m2-note, decimal-leading-zero); display: block; margin-bottom: 8px; font-size: 12px; letter-spacing: .16em; color: var(--gp-bronze); }

/* ─── 9A · Measurements: instrument screen ────────────────────────────────── */
.gp-pages .gp-m2-measure { padding-block: 120px; background: #000; }
.gp-pages .gp-m2-measure__head { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: var(--gp-s64); align-items: end; }
.gp-pages .gp-m2-tabs { justify-self: end; display: inline-flex; border: 1px solid #5a5145; }
.gp-pages .gp-m2-tabs button { min-height: 48px; padding: 14px 20px; border: 0; background: transparent; color: #cfc7b9; font: 600 12px var(--gp-font); letter-spacing: .14em; text-transform: uppercase; cursor: pointer; }
.gp-pages .gp-m2-tabs button[aria-selected=true] { background: var(--m2-copper); color: #1b1408; }
.gp-pages .gp-m2-tabs button:focus-visible { outline: 2px solid var(--m2-amber); outline-offset: 2px; }
.gp-pages .gp-m2-scope { margin-top: 40px; }
.gp-pages .gp-m2-scope__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; margin-top: 20px; }
.gp-pages .gp-m2-scope__foot p { max-width: 70ch; font-size: 14px; color: var(--gp-muted); }
.gp-pages .gp-m2-scope .gp-m2-switch { margin-top: 0; color: var(--gp-ivory); }
.gp-pages .gp-m2-readout { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid #3a342a; border-top: 0; background: #0b0a08; }
.gp-pages .gp-m2-readout.is-three { grid-template-columns: 1fr 1fr 2fr; }
.gp-pages .gp-m2-readout div { padding: 14px 18px; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: #8a7a62; }
.gp-pages .gp-m2-readout div + div { border-left: 1px solid #2a251e; }
.gp-pages .gp-m2-readout b { display: block; margin-top: 4px; font-size: 20px; font-weight: 500; letter-spacing: 0; text-transform: none; color: #f2c48c; font-variant-numeric: tabular-nums; }
.gp-pages .gp-m2-readout .gp-m2-readout__band b { font-size: 14px; font-weight: 400; line-height: 1.35; color: #cfc4b2; }
.gp-pages .gp-m2-source { margin-top: var(--gp-s24); font-size: 12px; color: #8a8274; }

/* ─── Care: one compact strip ───────────────────────────────────────────── */
.gp-pages .gp-m2-care { padding-block: 56px; }
.gp-pages .gp-m2-care__row { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: var(--gp-s40); align-items: center; }
.gp-pages .gp-m2-care__title { display: grid; gap: 8px; font-size: var(--gp-card); font-weight: 400; line-height: 1.1; }
.gp-pages .gp-m2-care__items { display: grid; grid-template-columns: 1fr 1fr; }
.gp-pages .gp-m2-care__items li { display: grid; grid-template-columns: 32px 1fr; gap: 16px; align-items: start; padding: 4px 32px; border-left: 1px solid rgb(170 132 96 / .45); }
.gp-pages .gp-m2-care__items svg { width: 32px; height: 32px; color: var(--m2-copper); }
.gp-pages .gp-m2-g-ivory .gp-m2-care__items svg { color: #8a5f33; }
.gp-pages .gp-m2-care__items p { font-size: 15px; line-height: 1.55; color: var(--gp-muted); }
.gp-pages .gp-m2-g-ivory .gp-m2-care__items p { color: var(--m2-ink-muted); }
.gp-pages .gp-m2-care__items strong { font-weight: 600; color: var(--gp-ivory); }
.gp-pages .gp-m2-g-ivory .gp-m2-care__items strong { color: var(--m2-ink); }

/* ─── 11B · Closing CTA: signal traces + the logo's square pulse ──────────── */
.gp-pages .gp-m2-cta { overflow: hidden; padding-top: 152px; background: #000; }
.gp-pages .gp-m2-cta::before { content: ""; position: absolute; inset: 0; z-index: -2; background: url("images/seo/traces.webp") left center / cover no-repeat; }
/* Centred: the trace art stays visible at the edges, darkened behind the words. */
.gp-pages .gp-m2-cta::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(48% 62% at 50% 40%, rgb(0 0 0 / .9), rgb(0 0 0 / .6) 60%, rgb(0 0 0 / .25) 100%); }
.gp-pages .gp-m2-cta .gp-rail { position: relative; z-index: 1; }
.gp-pages .gp-m2-cta__copy { max-width: 760px; margin-inline: auto; text-align: center; }
.gp-pages .gp-m2-cta h2 { margin-top: var(--gp-s16); font-size: var(--gp-hero); font-weight: 400; line-height: 1.02; letter-spacing: -.035em; }
.gp-pages .gp-m2-cta__copy > p:not(.gp-m2-eyebrow) { max-width: 54ch; margin: var(--gp-s24) auto 0; color: #cfc7b9; }
.gp-pages .gp-m2-cta .gp-manual-actions { justify-content: center; margin-top: var(--gp-s40); }
/* The logo's square pulse, centred under the buttons; it fades out toward the edges. */
.gp-pages .gp-m2-cta__pulse { display: block; width: 100%; height: 96px; margin-top: 56px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent); mask-image: linear-gradient(90deg, transparent, #000 18%, #000 82%, transparent); }
.gp-pages .gp-m2-cta__pulse path { fill: none; stroke-width: 1.6; }
.gp-pages .gp-m2-cta__pulse .is-base { stroke: #4f3c27; }
.gp-pages .gp-m2-cta__pulse .is-run { stroke: var(--m2-copper); stroke-dasharray: .16 1; filter: drop-shadow(0 0 6px var(--m2-copper)); animation: gp-m2-pulse 6s linear infinite; }
@keyframes gp-m2-pulse { from { stroke-dashoffset: 1.16; } to { stroke-dashoffset: 0; } }
.gp-pages .gp-m2-pager { display: grid; grid-template-columns: 1fr 1fr; margin-top: 64px; border-top: 1px solid rgb(241 233 220 / .14); }
.gp-pages .gp-m2-pager a { display: flex; flex-direction: column; gap: 4px; padding: 28px 0; color: var(--gp-ivory); text-decoration: none; }
.gp-pages .gp-m2-pager a + a { align-items: flex-end; text-align: right; border-left: 1px solid rgb(241 233 220 / .14); }
.gp-pages .gp-m2-pager span { font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--gp-muted); }
.gp-pages .gp-m2-pager strong { font-size: var(--gp-card); font-weight: 400; transition: color .18s; }
.gp-pages .gp-m2-pager a:is(:hover, :focus-visible) strong { color: var(--m2-copper); }

/* ═══ Charts (assets/js/manual-charts/chart.js) ═══════════════════════════ */
.gp-pages .gpc { position: relative; }
.gp-pages .gpc-frame { position: relative; }
.gp-pages .gpc-frame:focus-visible { outline: 2px solid var(--m2-amber); outline-offset: 6px; }
.gp-pages .gpc-svg { display: block; width: 100%; height: auto; overflow: visible; cursor: crosshair; touch-action: pan-y; will-change: transform; text-rendering: geometricPrecision; }
.gp-pages .gpc-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.gp-pages .gpc :is(.gpc-tick, .gpc-axis, .gpc-zone-label, .gpc-mark-label, .gpc-band-label) { font-family: var(--gp-font); }
.gp-pages .gpc-tick { font-size: 13px; }
.gp-pages .gpc-axis { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.gp-pages .gpc-zone-label { font-size: 11px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.gp-pages .gpc-mark { stroke-dasharray: 3 4; }
.gp-pages .gpc-mark-label { font-size: 12px; font-weight: 600; }
.gp-pages .gpc-band-label { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.gp-pages .gpc :is(.gpc-line, .gpc-glow) { fill: none; stroke-linejoin: round; stroke-linecap: round; }
.gp-pages .gpc-line { stroke-width: 3; }
.gp-pages .gpc-glow { stroke-width: 10; opacity: 0; }
.gp-pages .gpc-trace { transition: opacity .35s; }
.gp-pages .gpc-trace.is-off { opacity: 0; }
.gp-pages .gpc.is-armed .is-a .gpc-line { stroke-dasharray: 1; stroke-dashoffset: 1; }
.gp-pages .gpc.is-armed.is-drawn .is-a .gpc-line { animation: gp-m2-draw 2.2s var(--m2-ease) forwards; }
@keyframes gp-m2-draw { to { stroke-dashoffset: 0; } }
.gp-pages .gpc-cursor { pointer-events: none; transition: opacity .15s; }
.gp-pages .gpc-cursor line { stroke-width: 1; }
.gp-pages .gpc-dot { stroke-width: 3; }
.gp-pages .gpc-tip { position: absolute; left: 0; top: 0; z-index: 2; min-width: 190px; max-width: 250px; padding: 12px 14px; font-size: 13px; line-height: 1.45; pointer-events: none; opacity: 0; transition: opacity .15s, transform .08s linear; }
.gp-pages .gpc-tip.is-on { opacity: 1; }
.gp-pages .gpc-tip-f { display: flex; justify-content: space-between; gap: 12px; font-size: 15px; font-weight: 700; }
.gp-pages .gpc-tip-f em { align-self: center; font-size: 10px; font-style: normal; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.gp-pages .gpc-tip-row { display: grid; grid-template-columns: 10px 1fr auto; gap: 8px; align-items: center; margin-top: 6px; }
.gp-pages .gpc-tip-row[hidden] { display: none; }
.gp-pages .gpc-tip-row i { width: 10px; height: 3px; }
.gp-pages .gpc-tip-row b { font-variant-numeric: tabular-nums; }
.gp-pages .gpc-tip-note { display: block; margin-top: 8px; padding-top: 8px; font-size: 12px; }
.gp-pages .gpc-tip-note[hidden] { display: none; }

/* Phones: a taller plot drawn with larger type, zone names dropped, readout docked below. */
.gp-pages .gpc.is-compact .gpc-tick { font-size: 42px; }
.gp-pages .gpc.is-compact .gpc-axis { font-size: 30px; }
.gp-pages .gpc.is-compact :is(.gpc-zone-label, .gpc-mark-label) { display: none; }
.gp-pages .gpc.is-compact .gpc-band-label { font-size: 30px; }
.gp-pages .gpc--scope.is-compact .gpc-frame { padding: 12px 8px 8px; }
.gp-pages .gpc.is-compact .gpc-line { stroke-width: 6; }
.gp-pages .gpc.is-compact .gpc-dot { stroke-width: 5; }
.gp-pages .gpc.is-compact .gpc-tip { position: relative; display: block; max-width: none; margin-top: 12px; transform: none; opacity: 1; }

/* Skin: scope (black instrument screen, phosphor copper). */
.gp-pages .gpc--scope .gpc-frame { padding: 24px 24px 12px; background: radial-gradient(120% 120% at 50% 0%, #15120d, #050504 70%); border: 1px solid #3a342a; box-shadow: inset 0 0 0 6px #0a0907, inset 0 0 0 7px #2a261f, inset 0 0 60px rgb(0 0 0 / .9), 0 40px 80px -40px #000; }
.gp-pages .gpc--scope .gpc-zone { fill: transparent; } .gp-pages .gpc--scope .gpc-zone.is-alt { fill: rgb(215 172 120 / .025); }
.gp-pages .gpc--scope .gpc-zone-label { fill: #7a6a53; }
.gp-pages .gpc--scope .gpc-grid .is-major { stroke: #3b3226; } .gp-pages .gpc--scope .gpc-grid .is-minor { stroke: #1f1b15; } .gp-pages .gpc--scope .gpc-grid .is-zero { stroke: #7a6448; stroke-dasharray: 4 4; }
.gp-pages .gpc--scope .gpc-tick { fill: #9a8a72; } .gp-pages .gpc--scope .gpc-axis { fill: #7a6a53; }
.gp-pages .gpc--scope .gpc-band { fill: rgb(255 195 106 / .08); stroke: rgb(255 195 106 / .35); stroke-dasharray: 3 3; } .gp-pages .gpc--scope .gpc-band-label { fill: var(--m2-amber); }
.gp-pages .gpc--scope .gpc-mark { stroke: #8a6e4c; } .gp-pages .gpc--scope .gpc-mark-label { fill: #c7a37a; }
.gp-pages .gpc--scope .is-a .gpc-line { stroke: #f2c48c; } .gp-pages .gpc--scope .is-a .gpc-glow { stroke: var(--m2-copper); opacity: .35; filter: blur(6px); }
.gp-pages .gpc--scope .is-b .gpc-line { stroke: #8fb6a8; stroke-dasharray: .006 .007; } .gp-pages .gpc--scope .is-b .gpc-glow { stroke: #8fb6a8; opacity: .2; filter: blur(6px); }
.gp-pages .gpc--scope .gpc-cursor line { stroke: var(--gp-ivory); stroke-opacity: .5; }
.gp-pages .gpc--scope .gpc-dot { fill: #050504; } .gp-pages .gpc--scope .gpc-dot.is-a { stroke: #f2c48c; } .gp-pages .gpc--scope .gpc-dot.is-b { stroke: #8fb6a8; }
.gp-pages .gpc--scope .gpc-tip { background: rgb(10 9 7 / .94); border: 1px solid #6b5537; color: var(--gp-ivory); box-shadow: 0 12px 30px #000; }
.gp-pages .gpc--scope .gpc-tip-f em { color: var(--m2-copper); } .gp-pages .gpc--scope .gpc-tip-row.is-a i { background: #f2c48c; } .gp-pages .gpc--scope .gpc-tip-row.is-b i { background: #8fb6a8; } .gp-pages .gpc--scope .gpc-tip-note { border-top: 1px solid #3a342a; color: #bfb4a2; }

/* Skin: paper (ivory measurement sheet, bronze ink). */
.gp-pages .gpc--paper .gpc-zone { fill: transparent; } .gp-pages .gpc--paper .gpc-zone.is-alt { fill: rgb(34 32 27 / .035); }
.gp-pages .gpc--paper .gpc-zone-label { fill: #7f7564; }
.gp-pages .gpc--paper .gpc-grid .is-major { stroke: #cfc4b1; } .gp-pages .gpc--paper .gpc-grid .is-minor { stroke: #e4dacb; } .gp-pages .gpc--paper .gpc-grid .is-zero { stroke: var(--m2-ink); }
.gp-pages .gpc--paper :is(.gpc-tick, .gpc-axis) { fill: var(--m2-ink-muted); }
.gp-pages .gpc--paper .gpc-band { fill: rgb(170 132 96 / .14); } .gp-pages .gpc--paper .gpc-band-label { fill: #7d5e3f; }
.gp-pages .gpc--paper .gpc-mark { stroke: #7d5e3f; } .gp-pages .gpc--paper .gpc-mark-label { fill: #7d5e3f; }
.gp-pages .gpc--paper .is-a .gpc-line { stroke: #8a5f33; }
.gp-pages .gpc--paper .is-b .gpc-line { stroke: var(--m2-ink); stroke-width: 2.4; stroke-dasharray: .0025 .006; }
.gp-pages .gpc--paper .gpc-cursor line { stroke: var(--m2-ink); }
.gp-pages .gpc--paper .gpc-dot { fill: var(--gp-ivory); } .gp-pages .gpc--paper .gpc-dot.is-a { stroke: #8a5f33; } .gp-pages .gpc--paper .gpc-dot.is-b { stroke: var(--m2-ink); }
.gp-pages .gpc--paper .gpc-tip { background: var(--m2-ink); color: var(--gp-ivory); box-shadow: 0 16px 34px -12px rgb(34 32 27 / .6); }
.gp-pages .gpc--paper .gpc-tip-f em { color: var(--m2-copper); } .gp-pages .gpc--paper .gpc-tip-row.is-a i { background: var(--m2-copper); } .gp-pages .gpc--paper .gpc-tip-row.is-b i { background: var(--gp-ivory); } .gp-pages .gpc--paper .gpc-tip-note { border-top: 1px solid #45423a; color: #cfc6b6; }
.gp-pages .gpc--paper .gpc-frame:focus-visible { outline-color: #8a5f33; }

/* ═══ Responsive ═══════════════════════════════════════════════════════════ */
@media (max-width: 1100px) {
	.gp-pages .gp-m2-caution ol { grid-template-columns: 1fr 1fr; }
	.gp-pages .gp-m2-caution li:nth-child(3) { border-left: 0; }
	.gp-pages .gp-m2-caution li:nth-child(n+3) { border-top: 1px solid rgb(170 132 96 / .35); }
	.gp-pages .gp-m2-tiles, .gp-pages .gp-m2-tiles.is-many { grid-template-columns: 1fr 1fr; }
	.gp-pages .gp-m2-tiles:not(.is-many) { grid-template-columns: 1fr; }
	.gp-pages .gp-m2-fixes { grid-template-columns: 1fr; }
	.gp-pages .gp-m2-notes { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
	.gp-pages :is(.gp-m2-hero__grid, .gp-m2-split, .gp-m2-conn__head, .gp-m2-op__grid, .gp-m2-measure__head) { grid-template-columns: 1fr !important; gap: var(--gp-s40); }
	.gp-pages :is(.gp-m2-routes, .gp-m2-tabs) { justify-self: start; }
	.gp-pages .gp-m2-hero { padding-block: var(--gp-s40) 72px; }
	.gp-pages .gp-m2-stage { margin-right: 0; translate: none; }
	.gp-pages .gp-m2-plate { padding: 40px 24px; }
	.gp-pages .gp-m2-plate dl, .gp-pages .gp-m2-conn__notes, .gp-pages .gp-m2-care__row, .gp-pages .gp-m2-care__items { grid-template-columns: 1fr; }
	.gp-pages .gp-m2-care__items { gap: 20px; }
	.gp-pages .gp-m2-care__items li { padding: 0 0 0 20px; }
	.gp-pages .gp-m2-flow { grid-template-columns: 1fr; gap: 40px; }
	.gp-pages .gp-m2-flow__cables { display: none; }
	.gp-pages .gp-m2-tile { grid-template-columns: 1fr; justify-items: start; }
	.gp-pages .gp-m2-readout, .gp-pages .gp-m2-readout.is-three { grid-template-columns: 1fr 1fr; }
	.gp-pages .gp-m2-readout div:nth-child(3) { border-left: 0; }
	.gp-pages .gp-m2-readout div:nth-child(n+3) { border-top: 1px solid #2a251e; }
	.gp-pages .gp-m2-readout.is-three .gp-m2-readout__band { grid-column: 1 / -1; }
	.gp-pages .gp-m2-design::before { inset: 0; opacity: .45; }
	.gp-pages :is(.gp-m2-specs, .gp-m2-conn, .gp-m2-op, .gp-m2-op:nth-of-type(even), .gp-m2-trouble, .gp-m2-design, .gp-m2-measure) { padding-block: 88px; }
	.gp-pages :is(.gp-m2-before, .gp-m2-controls) { padding-block: 72px; }
	.gp-pages .gp-m2-cta { padding-top: 104px; }
}
@media (max-width: 640px) {
	.gp-pages .gp-m2-caution ol, .gp-pages .gp-m2-caution ol.gp-m2-caution--3, .gp-pages .gp-m2-figures, .gp-pages .gp-m2-notes { grid-template-columns: 1fr; }
	/* Many tiles stay two-up on a phone, scaled down, rather than one tall column. */
	.gp-pages .gp-m2-tiles.is-many { grid-template-columns: 1fr 1fr; gap: 12px; }
	.gp-pages .gp-m2-tiles.is-many .gp-m2-tile { gap: 12px; padding: 18px 16px; }
	.gp-pages .gp-m2-tiles.is-many :is(.gp-m2-dial, .gp-m2-toggle) { width: 104px; height: 104px; }
	.gp-pages .gp-m2-tiles.is-many .gp-m2-dial__knob { inset: 18px; }
	.gp-pages .gp-m2-tiles.is-many .gp-m2-dial__knob::before { inset: 9px; }
	.gp-pages .gp-m2-tiles.is-many .gp-m2-dial__knob::after { top: 6px; height: 20px; width: 3px; }
	.gp-pages .gp-m2-tiles.is-many .gp-m2-toggle__plate { width: 70px; height: 100px; font-size: 9px; }
	.gp-pages .gp-m2-tiles.is-many .gp-m2-toggle__slot { width: 20px; height: 44px; }
	.gp-pages .gp-m2-tiles.is-many .gp-m2-toggle__slot::after { height: 18px; }
	.gp-pages .gp-m2-tiles.is-many .gp-m2-tile h3 { font-size: 18px; }
	.gp-pages .gp-m2-tiles.is-many .gp-m2-tile p { font-size: 13px; }
	.gp-pages .gp-m2-tiles.is-many .gp-m2-tile p.gp-m2-tile__set { font-size: 10px; padding: 5px 7px; }
	.gp-pages .gp-m2-facts div { grid-template-columns: 1fr; gap: 6px; }
	.gp-pages .gp-m2-caution li + li { border-left: 0; border-top: 1px solid rgb(170 132 96 / .35); }
	.gp-pages .gp-m2-figures div + div { padding-left: 0; border-left: 0; }
	.gp-pages .gp-m2-plate__head { flex-wrap: wrap; }
	.gp-pages .gp-m2-plate dl div { flex-wrap: wrap; }
	.gp-pages .gp-m2-plate dl div::after { display: none; }
	.gp-pages .gp-m2-plate dd { width: 100%; text-align: left; }
	.gp-pages .gp-m2-pager strong { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
	.gp-pages .gp-m2 *, .gp-pages .gp-m2 *::before, .gp-pages .gp-m2 *::after { animation: none !important; transition: none !important; }
	.gp-pages .gp-m2-cta__pulse .is-run { display: none; }
}

/* ═══ Print: a traditional manual, not the web page ═══════════════════════
   views/pages/manual-print.php renders a plain edition of the manual into the page,
   hidden on screen. Printing hides everything else (site header and footer, artwork,
   3D model, interactive charts) and sets that edition as black serif text on white,
   numbered chapters, a ruled specification table and line-drawn figures. */
.gp-pages .gp-m2-print { display: none; }

@media print {
	@page { size: letter; margin: 18mm 18mm 20mm; @bottom-left { font: 8pt Georgia, serif; } @bottom-right { content: "Page " counter(page); font: 8pt Georgia, serif; } }
	html, body { background: #fff !important; }
	body:has(.gp-m2-print) > :not(.gp-pages) { display: none !important; }
	.gp-pages:has(.gp-m2-print) { background: #fff !important; color: #000 !important; }
	.gp-pages:has(.gp-m2-print) > :not(main) { display: none !important; }
	.gp-pages main:has(.gp-m2-print) > :not(.gp-m2) { display: none !important; }
	.gp-pages .gp-m2 > :not(.gp-m2-print) { display: none !important; }
	.gp-pages .gp-m2 { background: #fff !important; }

	.gp-pages .gp-m2-print { display: block; max-width: 170mm; color: #000; font: 10.5pt/1.5 Georgia, "Times New Roman", serif; }
	.gp-pages .gp-m2-print :is(h1, h2, h3, .gp-mp-maker, .gp-mp-kind, th, figcaption strong) { font-family: "GP Manrope", Manrope, Arial, sans-serif; color: #000; }
	.gp-pages .gp-m2-print :is(p, ul, ol, dl, figure, table) { margin: 0 0 6pt; }
	.gp-pages .gp-m2-print :is(ul, ol) { padding-left: 18pt; }
	.gp-pages .gp-m2-print ol { list-style: decimal; }
	.gp-pages .gp-m2-print ul { list-style: disc; }
	.gp-pages .gp-m2-print li { margin-bottom: 4pt; padding-left: 2pt; }

	.gp-pages .gp-mp-cover { padding-bottom: 12pt; margin-bottom: 6pt; border-bottom: 1.5pt solid #000; }
	.gp-pages .gp-mp-maker { font-size: 8.5pt; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
	.gp-pages .gp-mp-cover h1 { margin: 10pt 0 0; font-size: 30pt; font-weight: 600; line-height: 1; letter-spacing: -.02em; }
	.gp-pages .gp-mp-name { margin-top: 4pt; font-size: 15pt; }
	.gp-pages .gp-mp-kind { font-size: 9pt; letter-spacing: .08em; text-transform: uppercase; }
	.gp-pages .gp-mp-photo { display: block; width: auto; max-width: 100%; max-height: 52mm; margin: 10pt 0; }
	.gp-pages .gp-mp-intro { font-style: italic; }

	.gp-pages .gp-m2-print section { margin-top: 16pt; }
	.gp-pages .gp-m2-print h2 { margin: 0 0 8pt; padding-bottom: 3pt; border-bottom: .5pt solid #000; font-size: 13.5pt; font-weight: 700; break-after: avoid; }
	.gp-pages .gp-m2-print h3 { margin: 10pt 0 4pt; font-size: 10.5pt; font-weight: 700; break-after: avoid; }
	.gp-pages .gp-mp-note { padding: 4pt 0 4pt 9pt; border-left: 2pt solid #000; break-inside: avoid; }
	.gp-pages .gp-mp-see { font-size: 9pt; font-style: italic; }

	.gp-pages .gp-mp-specs { width: 100%; border-collapse: collapse; font-size: 9.5pt; }
	.gp-pages .gp-mp-specs tr { break-inside: avoid; }
	.gp-pages .gp-mp-specs :is(th, td) { padding: 4pt 6pt 4pt 0; border-bottom: .5pt solid #999; text-align: left; vertical-align: top; }
	.gp-pages .gp-mp-specs th { width: 34%; font-size: 8.5pt; font-weight: 700; }
	.gp-pages .gp-mp-fixes dt { font-weight: 700; break-after: avoid; }
	.gp-pages .gp-mp-fixes dd { margin: 0 0 6pt 12pt; }

	.gp-pages .gp-m2-print figure { margin: 8pt 0 12pt; break-inside: avoid; }
	/* A chapter heading never ends a page: it travels with its intro and first figure. */
	.gp-pages .gp-m2-print .gp-mp-keep { break-inside: avoid; }
	.gp-pages .gp-mp-chart { display: block; width: 100%; height: auto; }
	.gp-pages .gp-mp-chart text { font: 9px Arial, sans-serif; fill: #000; }
	.gp-pages .gp-mp-chart line.g1 { stroke: #b5b5b5; stroke-width: .6; }
	.gp-pages .gp-mp-chart line.g2 { stroke: #e2e2e2; stroke-width: .5; }
	.gp-pages .gp-mp-chart line.g0 { stroke: #000; stroke-width: .9; }
	.gp-pages .gp-mp-chart polyline { fill: none; stroke: #000; stroke-width: 1.6; stroke-linejoin: round; }
	.gp-pages .gp-mp-chart .l-dash { stroke-dasharray: 5 3; }
	.gp-pages .gp-mp-chart .l-dot { stroke-dasharray: 1.2 2.4; stroke-width: 1.8; }
	.gp-pages .gp-m2-print figcaption { margin-top: 4pt; font-size: 9pt; }

	.gp-pages .gp-mp-end { margin-top: 18pt; padding-top: 6pt; border-top: .5pt solid #000; font-size: 9pt; }
}
