/* Lesson internals only. Shared site-sidebar.css owns the page layout. */
.drv-section { margin-block: 2.5rem; scroll-margin-top: 1rem; }
.drv-section p { margin-block: .8rem; }
/* Shared rm-* classes provide the teaching-panel theme. */
.drv-box { margin-block: 1.4rem; padding: 1.2rem 1.35rem; border: 1px solid var(--rm-soft-border); border-radius: var(--rm-radius-md); background: var(--rm-soft-bg); }
.drv-box > h3 { margin: 0 0 1rem; font-size: 1.1rem; line-height: 1.4; color: var(--rm-ink); }
.drv-neutral { background: var(--rm-soft-bg); }
.drv-box .rm-solution-label { margin-top: 1.4rem; padding-top: .9rem; border-top: 1px solid var(--rm-soft-border); font-weight: 750; color: var(--rm-ink); }
.drv-subheading { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--rm-soft-border); }
.drv-parts { padding-left: 1.6rem; list-style: none; counter-reset: drv-parts; }
.drv-parts > li { margin-block: .85rem; padding-left: .15rem; position: relative; counter-increment: drv-parts; }
.drv-parts > li::before { content: counter(drv-parts, lower-alpha) "."; font-weight: 750; position: absolute; left: -1.4rem; top: 0; }
.drv-answer-note { padding: .6rem 1rem; border-left: 3px solid #657b84; margin-block: 1rem; background: var(--rm-soft-bg); }
.drv-table-wrap { max-width: 100%; overflow-x: auto; margin-block: 1.2rem; }
.drv-table-wrap:focus-visible { outline: 2px solid #657b84; outline-offset: 3px; }
.drv-table { width: auto; min-width: 55%; max-width: 100%; margin: 0 auto; border-collapse: collapse; font-size: 1rem; }
.drv-table th, .drv-table td { padding: .7rem .9rem; border-bottom: 1px solid var(--rm-soft-border); vertical-align: middle; }
.drv-table thead { background: var(--rm-soft-bg); }
.drv-table th { font-weight: 650; }
.drv-table th:first-child, .drv-table td:first-child { border-right: 1px solid var(--rm-soft-border); }
.drv-figure { width: 100%; max-width: var(--figure-width, 480px); margin: 1.5rem auto; }
.drv-figure img { display: block; width: 100%; height: auto; }
.drv-figure figcaption { font-size: .88rem; line-height: 1.5; color: var(--rm-muted); margin-top: .7rem; text-align: center; }
.drv-visual-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.3rem; align-items: start; }
.drv-check { padding: 1rem 1.2rem; margin-block: 1.5rem; background: var(--rm-soft-bg); border-left: 4px solid #657b84; border-radius: 0 8px 8px 0; }
.drv-check h3 { font-size: 1.1rem; margin: 0; }
.drv-check a { font-weight: 700; }
.drv-question { padding-block: 1.2rem; border-bottom: 1px solid var(--rm-soft-border); }
.drv-question h3 { font-size: 1.15rem; margin-top: 0; }
.drv-worked-answer { border: 1px solid var(--rm-soft-border); border-radius: var(--rm-radius-md); margin-block: 1rem; overflow: hidden; }
.drv-worked-answer > summary { padding: 1rem 1.25rem; font-weight: 750; color: var(--rm-ink); cursor: pointer; background: var(--rm-soft-bg); }
.drv-worked-answer > summary:focus-visible { outline: 3px solid #657b84; outline-offset: -3px; }
.drv-answer-body { padding: .25rem 1.25rem 1rem; }
.drv-video.rm-video-card { display: grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 1.4rem; align-items: center; border: 1px solid var(--rm-soft-border); border-radius: var(--rm-radius-md); padding: 1.2rem; margin-block: 1.6rem; background: #fff; }
.drv-video-copy h3 { margin-top: 0; font-size: 1.1rem; color: var(--rm-ink); }
.drv-video-copy p { font-size: .95rem; }
.drv-video-frame { position: relative; aspect-ratio: 16 / 9; min-width: 0; }
.drv-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 8px; }
.drv-section .math.display { display: block; max-width: 100%; overflow-x: auto; overflow-y: hidden; }
.drv-section .math.inline { max-width: 100%; }
@media (max-width: 700px) {
  .drv-video.rm-video-card, .drv-visual-pair { grid-template-columns: minmax(0,1fr); }
  .drv-box { padding: 1rem; }
  .drv-box > h3 { margin: 0 0 1rem; }
  .drv-table th, .drv-table td { padding: .65rem .5rem; }
  .drv-table { min-width: 100%; }
  .drv-answer-body { padding-inline: 1rem; }
}
@media print {
  .drv-video-frame { display: none; }
  .drv-video.rm-video-card { display: block; }
  .drv-worked-answer > .drv-answer-body { display: block !important; }
  .drv-box, .drv-figure { break-inside: avoid; }
}

/* Lesson links use the shared brand colour; the site shell stays shared. */
.drv-section a { color: var(--rm-blue-dark); text-underline-offset: .2em; }
.drv-section a:hover { color: var(--rm-blue); }
.drv-video > *, .drv-visual-pair > * { min-width: 0; }
.drv-worked-answer { scroll-margin-top: 1rem; }

/* Expand solutions in place without moving the reader away from the question. */
.drv-inline-solution { background: #fff; }
.drv-inline-solution .drv-hide-solution { display: none; }
.drv-inline-solution[open] .drv-show-solution { display: none; }
.drv-inline-solution[open] .drv-hide-solution { display: inline; }
.drv-inline-solution > summary { min-height: 44px; }
.drv-inline-solution .rm-solution-label { margin-block: 1rem .6rem; }
.drv-check > .drv-inline-solution { margin: 1rem -1.2rem -1rem; border-inline: 0; border-bottom: 0; border-radius: 0 0 8px 0; }
.drv-check .drv-answer-body { padding: .25rem .75rem 1rem; }
.drv-check .drv-inline-solution > summary { padding-inline: .75rem; }
