/* The family proposal and its paper sample share the site's type and colours. */
.pack-hero { padding: 152px 0 76px; background: linear-gradient(135deg, #fbfaf6 18%, #f0edff 78%, #e5f8f0); }
.pack-hero-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr); align-items: start; gap: 64px; }
.pack-hero-grid > *, .pack-session-grid > *, .pack-delivery-grid > * { min-width: 0; }
.pack-kicker { margin-bottom: 20px; color: #565075; font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.pack-label { margin-bottom: 10px; color: #65566f; font-size: .69rem; font-weight: 800; letter-spacing: .1em; }
.pack-page .microcopy { max-width: 650px; color: #6e657d; font-size: .78rem; line-height: 1.6; }
.pack-title { max-width: 800px; margin-bottom: 24px; font-size: clamp(2.7rem, 5.5vw, 4.9rem); line-height: 1.04; }
.pack-summary { max-width: 650px; color: #55516d; font-size: clamp(1.05rem, 1.5vw, 1.18rem); }
.pack-facts { display: flex; flex-wrap: wrap; gap: 9px 20px; margin: 26px 0 0; padding: 0; list-style: none; color: #48435e; font-size: .82rem; font-weight: 700; }
.pack-facts li { display: flex; gap: 8px; align-items: baseline; }
.pack-facts li::before { content: ""; flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; background: #6b5acc; }
.pack-proposal { padding: 32px; border: 1px solid #c7c0e4; border-radius: 28px; background: #fffdf8; box-shadow: 0 18px 50px rgba(38, 27, 74, .07); }
.pack-proposal h2 { margin: 24px 0 16px; font-size: 1.7rem; }
.pack-proposal p { color: #5b556c; font-size: .9rem; }
.pack-proposal > :last-child { margin-bottom: 0; }
.pack-price { margin: 22px 0 12px; color: var(--ink) !important; font-family: var(--display); font-size: 2.1rem !important; font-weight: 800; line-height: 1.15; letter-spacing: -.035em; }
.pack-price small, .pack-price span { display: block; margin-top: 8px; color: #655d74; font-family: var(--font); font-size: .82rem; font-weight: 650; line-height: 1.6; letter-spacing: 0; }
.pack-status { display: inline-block; padding: 5px 10px; border: 1px solid #c9c0e8; border-radius: 7px; background: #f0ebff; color: #4f3f86; font-size: .69rem; font-weight: 800; letter-spacing: .035em; line-height: 1.5; }
.pack-status-available { border-color: #acd8c4; background: #e5f7ee; color: #1f5c47; }
.pack-status-planned { border-color: #d6c7a9; background: #fbf3e4; color: #6a5027; }
.pack-actions, .pack-print-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; margin-top: 30px; }
.pack-actions .button, .pack-print-actions .button { max-width: 100%; min-height: 50px; padding: 12px 22px; text-align: center; line-height: 1.4; }
.pack-actions .text-link { padding-block: 10px; }
.pack-print-actions .text-button { min-height: 48px; padding: 10px 4px; color: #514760; font-size: .9rem; }
.pack-section { padding: 76px 0; }
.pack-section + .pack-section { border-top: 1px solid var(--line); }
.pack-heading { max-width: 770px; margin-bottom: 36px; }
.pack-heading h2, h2.pack-heading { margin-bottom: 18px; font-size: clamp(2rem, 3.2vw, 3.1rem); }
.pack-heading p { max-width: 690px; color: #625c73; }
.pack-session-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.pack-session { position: relative; padding: 26px; border: 1px solid #ddd7e8; border-radius: 22px; background: #fff; }
.pack-session-number { display: inline-block; margin-bottom: 24px; padding: 6px 10px; border-radius: 7px; background: #eee9ff; color: #5b45a3; font-size: .69rem; font-weight: 850; letter-spacing: .06em; }
.pack-session-time { display: block; margin-bottom: 12px; color: #746c7f; font-size: .75rem; font-weight: 700; }
.pack-session h3 { font-size: 1.42rem; line-height: 1.15; }
.pack-session p, .pack-session li { color: #615b70; font-size: .9rem; }
.pack-session ul, .pack-session ol { padding-left: 20px; }
.pack-session li + li { margin-top: 7px; }
.pack-session > :last-child { margin-bottom: 0; }
.pack-session > .pack-status { margin-top: 18px; }
.pack-session > .text-link { display: flex; width: fit-content; margin-top: 18px; }
.pack-output { margin: 22px 0 0; padding-top: 17px; border-top: 1px solid #e6e1ee; }
.pack-output strong { display: block; margin-bottom: 4px; color: #37304f; font-size: .79rem; }
.pack-inventory { margin: 0; padding: 0; list-style: none; }
.pack-inventory-item { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); align-items: start; gap: 10px 40px; padding: 26px 0; border-bottom: 1px solid var(--line); }
.pack-inventory-item:first-child { border-top: 1px solid var(--line); }
.pack-inventory-item h3 { grid-column: 1; grid-row: 2; margin-bottom: 0; font-size: 1.18rem; }
.pack-inventory-item p { grid-column: 2; grid-row: 1 / span 2; margin-bottom: 0; color: #625c73; font-size: .9rem; }
.pack-inventory-item .pack-status { grid-column: 1; grid-row: 1; justify-self: start; }
.pack-inventory-item .text-link { grid-column: 2; grid-row: 3; }
.pack-delivery-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.pack-delivery-grid > * { padding: 28px; border: 1px solid #d8ded4; border-radius: 22px; background: #eff7f1; }
.pack-delivery-grid h3 { font-size: 1.32rem; }
.pack-delivery-grid p, .pack-delivery-grid li { color: #536258; font-size: .92rem; }
.pack-delivery-grid ul { padding-left: 20px; }
.pack-faqs { max-width: 850px; }
.pack-faqs details { padding: 20px 0; border-bottom: 1px solid var(--line); }
.pack-faqs summary { cursor: pointer; font-weight: 750; line-height: 1.5; }
.pack-faqs details p { margin: 16px 0 0; color: #625c73; }
.pack-note { max-width: 760px; margin-top: 22px; padding-left: 16px; border-left: 3px solid #b8a9e2; color: #625c73; font-size: .86rem; }
.pack-callout { padding: 40px; border: 1px solid #cfc4e3; border-radius: 26px; background: #f0ebfa; }
.pack-callout h2 { max-width: 820px; font-size: clamp(2rem, 3.4vw, 3rem); }
.pack-callout p { max-width: 750px; color: #625773; }

/* An optional browser bookmark, separate from the printable activities. */
.pack-bookmark { margin-top:28px; padding:23px 25px; border:1px solid #c9c2df; border-radius:18px; background:#faf8ff; }
.pack-bookmark-wrap { scroll-margin-top:100px; }
.pack-bookmark-wrap > .pack-bookmark { margin-top:36px; }
.pack-bookmark[hidden], .pack-bookmark [hidden] { display:none !important; }
.pack-page [data-bookmark-shortcut][hidden] { display:none !important; }
.pack-bookmark-heading .pack-label { margin:0 0 8px; font-size:.64rem; }
.pack-bookmark-heading h2 { margin:0 0 10px; color:#34294a; font-size:1.3rem; line-height:1.3; }
.pack-bookmark-heading > p:last-child { max-width:780px; margin:0; color:#61556f; font-size:.86rem; line-height:1.6; }
.pack-bookmark-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:18px; }
.pack-bookmark-save { display:inline-flex; align-items:center; justify-content:center; min-height:44px; max-width:100%; padding:10px 14px; border:1px solid #b5a7d2; border-radius:10px; background:#fff; color:#51406d; font:750 .82rem/1.4 var(--font); text-align:center; cursor:pointer; }
.pack-bookmark-save:hover { border-color:#6b51a0; background:#eee8fb; }
.pack-bookmark-status { min-height:1.5em; margin:14px 0 0; color:#51406d; font-size:.83rem; font-weight:650; line-height:1.55; }
.pack-bookmark-saved { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:13px 24px; margin-top:14px; padding:16px 19px; border:1px solid #bfd6c8; border-radius:12px; background:#edf7f0; }
.pack-bookmark-saved > div { min-width:0; }
.pack-bookmark-caption { display:block; margin-bottom:5px; color:#486452; font-size:.63rem; font-weight:800; letter-spacing:.07em; }
.pack-bookmark-saved strong { display:block; color:#284b37; font-size:.95rem; line-height:1.45; overflow-wrap:anywhere; }
.pack-bookmark-resume { display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; }
.pack-bookmark-resume .text-link { min-height:44px; max-width:100%; color:#2d5941; font-size:.84rem; line-height:1.4; overflow-wrap:anywhere; }
.pack-bookmark-resume .text-button { min-height:44px; padding:8px 0; color:#5a5761; font-size:.82rem; line-height:1.4; }
.pack-bookmark-note { max-width:850px; margin:13px 0 0; color:#73687f; font-size:.74rem; line-height:1.6; }
.pack-bookmark :is(button,a):focus-visible { outline:3px solid #7760ad; outline-offset:4px; }
.pack-bookmark-compact { max-width:850px; padding:19px 22px; }
.pack-bookmark-compact .pack-bookmark-heading h2 { font-size:1.15rem; }
@media (max-width:620px) {
  .pack-bookmark,.pack-bookmark-compact { padding:20px 18px; }
  .pack-bookmark-actions { gap:8px; }
  .pack-bookmark-actions .pack-bookmark-save { flex:1 1 180px; }
  .pack-bookmark-saved { align-items:flex-start; flex-direction:column; padding:15px; }
  .pack-bookmark-resume { column-gap:16px; }
}
@media print {
  .pack-bookmark { display:none !important; }
}

/* The sample is a real worksheet. It contains no input fields or mock results. */
.pack-print-area { padding-top: 52px; padding-bottom: 72px; }
.pack-sample-sheet { max-width: 850px; margin: 0 auto; padding: 44px 48px; border: 1px solid #d8d2df; border-radius: 12px; background: #fff; box-shadow: 0 16px 46px rgba(41, 28, 66, .06); }
.pack-sheet-heading { padding-bottom: 22px; border-bottom: 2px solid #393044; }
.pack-sheet-heading h1, .pack-sheet-heading h2 { margin: 12px 0 14px; font-size: clamp(1.8rem, 3vw, 2.45rem); }
.pack-sheet-heading p { margin-bottom: 0; color: #61586e; }
.pack-sheet-meta { display: flex; flex-wrap: wrap; gap: 6px 24px; margin: 16px 0 0; color: #62576e; font-size: .8rem; }
.pack-steps { margin: 28px 0 0; padding: 0; list-style: none; counter-reset: pack-step; }
.pack-step { position: relative; margin-top: 26px; padding-left: 40px; counter-increment: pack-step; }
.pack-step::before { position: absolute; top: 0; left: 0; display: grid; width: 26px; height: 26px; place-items: center; border: 1px solid #c8bcde; border-radius: 8px; color: #53416f; font-size: .77rem; font-weight: 800; content: counter(pack-step); }
.pack-step h3 { margin-bottom: 10px; font-size: 1.1rem; line-height: 1.35; letter-spacing: -.02em; }
.pack-step p, .pack-step li { font-size: .92rem; line-height: 1.6; }
.pack-step p { margin-bottom: 11px; }
.pack-step ul { padding-left: 19px; }
.pack-write-line { min-height: 29px; margin: 8px 0 10px; border-bottom: 1px solid #9e94a7; }
.pack-transfer { margin-top: 26px; padding: 21px 24px; border: 1px solid #d4c8e4; border-radius: 10px; background: #f9f6fe; }
.pack-transfer h3 { font-size: 1.14rem; }
.pack-transfer p, .pack-transfer li { font-size: .92rem; line-height: 1.6; }
.pack-transfer > :last-child { margin-bottom: 0; }
.pack-step.pack-transfer { padding-left: 62px; }
.pack-step.pack-transfer::before { top: 21px; left: 22px; }
.pack-parent-notes { max-width: 850px; margin: 28px auto 0; padding: 24px 30px; border: 1px solid #c9d9ce; border-radius: 14px; background: #f0f8f2; }
.pack-parent-notes > summary { cursor: pointer; color: #2a4a36; font-size: 1.05rem; font-weight: 800; line-height: 1.5; }
.pack-parent-notes[open] > summary { margin-bottom: 24px; padding-bottom: 20px; border-bottom: 1px solid #cadacf; }
.pack-parent-notes h2 { margin-top: 26px; font-size: 1.6rem; }
.pack-parent-notes h3 { margin-top: 24px; font-size: 1.14rem; }
.pack-parent-notes p, .pack-parent-notes li { color: #405749; font-size: .92rem; }
.pack-parent-notes ul, .pack-parent-notes ol { padding-left: 21px; }
.pack-parent-notes li + li { margin-top: 8px; }
.pack-parent-notes > :last-child { margin-bottom: 0; }
.pack-sample-sheet ~ .pack-sample-sheet { margin-top: 32px; }
.pack-resource-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; max-width: 100%; margin: 28px 0 0; }
.pack-resource-nav a { display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; padding: 9px 14px; border: 1px solid #cfc7e3; border-radius: 10px; background: #fffdfb; color: #554477; font-size: .84rem; font-weight: 750; line-height: 1.4; overflow-wrap: anywhere; text-decoration: none; }
.pack-resource-nav a:hover { background: #eee8fa; }
.pack-resource-nav a[aria-current="page"] { border-color: #6a51a0; background: #eee8fa; color: #3e2e61; }
.pack-exercise { margin-top: 28px; }
.pack-exercise h3 { margin-bottom: 12px; font-size: 1.14rem; line-height: 1.35; }
.pack-exercise h4 { margin: 20px 0 10px; font-size: .98rem; line-height: 1.45; }
.pack-exercise p, .pack-exercise li { font-size: .92rem; line-height: 1.6; }
.pack-table { max-width: 100%; margin: 20px 0; overflow-x: auto; overscroll-behavior-inline: contain; border: 1px solid #cfc7d8; border-radius: 9px; }
.pack-table table { width: 100%; min-width: var(--pack-table-min-width, 32rem); border-collapse: collapse; text-align: left; font-size: .85rem; line-height: 1.5; }
.pack-table caption { padding: 12px 15px; background: #faf7fe; color: #463854; font-size: .88rem; font-weight: 750; text-align: left; }
.pack-table th, .pack-table td { padding: 12px 15px; border-bottom: 1px solid #ddd5e5; vertical-align: top; overflow-wrap: break-word; }
.pack-table thead th { background: #eee8f6; color: #473957; font-weight: 800; }
.pack-table tbody th { font-weight: 750; }
.pack-table tr:last-child > th, .pack-table tr:last-child > td { border-bottom: 0; }
.pack-table tbody tr + tr > th, .pack-table tbody tr + tr > td { border-top: 1px solid #ddd5e5; }

@media (max-width: 960px) {
  .pack-hero-grid { gap: 32px; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
  .pack-proposal { padding: 25px; }
  .pack-session { padding: 22px; }
}
@media (max-width: 760px) {
  .pack-hero { padding: 123px 0 56px; }
  .pack-hero-grid, .pack-session-grid, .pack-delivery-grid { grid-template-columns: minmax(0, 1fr); }
  .pack-hero-grid { gap: 36px; }
  .pack-title { font-size: clamp(2.6rem, 8vw, 3.7rem); }
  .pack-section { padding: 54px 0; }
  .pack-session { padding: 26px; }
  .pack-session-number { margin-bottom: 18px; }
  .pack-sample-sheet { padding: 30px; }
  .pack-print-area { padding-top: 32px; padding-bottom: 54px; }
  .pack-inventory-item { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .pack-inventory-item > * { grid-column: auto !important; grid-row: auto !important; }
}
@media (max-width: 420px) {
  .pack-hero { padding-top: 111px; }
  .pack-title { font-size: 2.55rem; }
  .pack-proposal, .pack-session, .pack-delivery-grid > * { padding: 22px; }
  .pack-actions, .pack-print-actions { align-items: stretch; flex-direction: column; gap: 16px; }
  .pack-actions .button, .pack-print-actions .button { width: 100%; }
  .pack-actions .text-link { justify-content: center; }
  .pack-inventory-item { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .pack-sample-sheet { padding: 24px 19px; }
  .pack-step { padding-left: 34px; }
  .pack-transfer { padding: 18px; }
  .pack-parent-notes { padding: 21px; }
  .pack-callout { padding: 26px 22px; }
  .pack-step.pack-transfer { padding-top: 54px; padding-left: 18px; }
  .pack-step.pack-transfer::before { top: 18px; left: 18px; }
  .pack-sheet-heading h1, .pack-sheet-heading h2 { font-size: 1.8rem; }
}
@media screen and (max-width: 620px) {
  .pack-table-stacked { border: 0; border-radius: 0; }
  .pack-table-stacked table { display: block; min-width: 0; }
  .pack-table-stacked caption { display: block; padding: 0 0 12px; background: transparent; }
  .pack-table-stacked thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .pack-table-stacked tbody { display: grid; gap: 14px; }
  .pack-table-stacked tbody tr { display: block; border: 1px solid #cfc7d8; border-radius: 9px; overflow: hidden; }
  .pack-table-stacked tbody th, .pack-table-stacked tbody td { display: block; width: 100%; padding: 11px 14px; border: 0; }
  .pack-table-stacked tbody th { background: #eee8f6; color: #473957; }
  .pack-table-stacked tbody td + td { border-top: 1px solid #e6deeb; }
  .pack-table-stacked tbody tr + tr > th, .pack-table-stacked tbody tr + tr > td { border-top: 0; }
  .pack-table-stacked td[data-label]::before { display: block; margin-bottom: 4px; color: #635370; content: attr(data-label); font-size: .74rem; font-weight: 750; }
}

@page { size: A4; margin: 14mm 15mm; }
@media print {
  html { scroll-behavior: auto; }
  body.pack-resource { margin: 0 !important; overflow: visible !important; background: #fff !important; color: #000 !important; font-size: 10pt; line-height: 1.32; }
  .pack-resource .site-header,
  .pack-resource .site-footer,
  .pack-resource .skip-link,
  .pack-resource nav,
  .pack-resource [data-wovi-feedback],
  .pack-resource .pack-screen-only,
  .pack-resource .pack-resource-nav,
  .pack-resource .pack-print-actions,
  .pack-resource .pack-actions { display: none !important; }
  .pack-resource main { margin: 0; padding: 0; }
  .pack-resource .pack-print-area { display: block; width: 100%; max-width: none; margin: 0; padding: 0; }
  .pack-resource .pack-sample-sheet,
  .pack-resource .pack-parent-notes { width: 100%; max-width: none; margin: 0; padding: 0; border: 0; border-radius: 0; background: #fff; box-shadow: none; }
  .pack-resource .pack-parent-notes { display: none !important; }
  .pack-resource[data-pack-print-mode="parent"] .pack-sample-sheet,
  .pack-resource[data-pack-default-print="parent"]:not([data-pack-print-mode]) .pack-sample-sheet { display: none !important; }
  .pack-resource[data-pack-print-mode="parent"] .pack-parent-notes,
  .pack-resource[data-pack-default-print="parent"]:not([data-pack-print-mode]) .pack-parent-notes { display: block !important; }
  .pack-resource .pack-print-area > .pack-sample-sheet ~ .pack-sample-sheet,
  .pack-resource .pack-print-area > .pack-parent-notes ~ .pack-parent-notes { break-before: page; page-break-before: always; margin-top: 0; }
  .pack-resource .pack-parent-notes > summary { display: none !important; }
  .pack-resource .pack-parent-notes::details-content { content-visibility: visible !important; height: auto; }
  .pack-resource .pack-sample-sheet *,
  .pack-resource .pack-parent-notes * { color: #000 !important; background: transparent !important; box-shadow: none !important; text-shadow: none !important; animation: none !important; transition: none !important; }
  .pack-resource p { margin: 0 0 6pt; }
  .pack-resource .pack-sheet-heading { padding-bottom: 8pt; border-color: #000; }
  .pack-resource .pack-sheet-heading h1,
  .pack-resource .pack-sheet-heading h2 { margin: 4pt 0 6pt; font-size: 21pt; }
  .pack-resource .pack-sheet-heading .pack-label { margin-bottom: 5pt; font-size: 8pt; line-height: 1.3; }
  .pack-resource .pack-sheet-meta { gap: 4pt 18pt; margin-top: 6pt; font-size: 9pt; }
  .pack-resource .pack-kicker { margin-bottom: 8pt; font-size: 8pt; }
  .pack-resource .pack-steps { margin-top: 10pt; margin-bottom: 8pt; }
  .pack-resource .pack-step { margin-top: 10pt; padding-left: 25pt; break-inside: avoid; page-break-inside: avoid; }
  .pack-resource .pack-step::before { top: 0; width: 18pt; height: 18pt; border-color: #444; border-radius: 4pt; color: #000; font-size: 8pt; }
  .pack-resource .pack-step h3,
  .pack-resource .pack-transfer h3,
  .pack-resource .pack-parent-notes h3 { margin: 0 0 5pt; font-size: 11pt; line-height: 1.3; }
  .pack-resource .pack-step p,
  .pack-resource .pack-step li,
  .pack-resource .pack-transfer p,
  .pack-resource .pack-transfer li,
  .pack-resource .pack-parent-notes p,
  .pack-resource .pack-parent-notes li { font-size: 10pt; line-height: 1.32; }
  .pack-resource .pack-step p { margin-bottom: 5pt; }
  .pack-resource .pack-write-line,
  .pack-resource .pack-step .pack-write-line { min-height: 18pt; margin: 3pt 0 4pt; border-color: #555; }
  .pack-resource .pack-transfer { margin-top: 11pt; padding: 10pt; border: 1px solid #555; border-radius: 0; break-inside: avoid; page-break-inside: avoid; }
  .pack-resource .pack-step.pack-transfer { padding: 10pt 10pt 10pt 34pt; }
  .pack-resource .pack-step.pack-transfer::before { top: 10pt; left: 9pt; }
  .pack-resource .pack-note { margin-top: 8pt; padding-left: 10pt; border-color: #555; font-size: 9pt; line-height: 1.32; }
  .pack-resource .pack-parent-notes h2 { margin: 0 0 8pt; font-size: 20pt; }
  .pack-resource .pack-parent-notes h3 { margin-top: 7pt; margin-bottom: 4pt; }
  .pack-resource .pack-parent-notes li { break-inside: avoid; page-break-inside: avoid; }
  .pack-resource .pack-parent-notes li + li { margin-top: 4pt; }
  .pack-resource .pack-exercise { margin-top: 12pt; break-inside: auto; page-break-inside: auto; }
  .pack-resource .pack-exercise h3 { margin: 0 0 5pt; font-size: 11pt; }
  .pack-resource .pack-exercise h4 { margin: 9pt 0 5pt; font-size: 10pt; break-after: avoid; page-break-after: avoid; }
  .pack-resource .pack-exercise p, .pack-resource .pack-exercise li { font-size: 10pt; line-height: 1.32; }
  .pack-resource .pack-parent-notes .pack-exercise { margin-top: 10pt; }
  .pack-resource .pack-parent-notes p, .pack-resource .pack-parent-notes li { line-height: 1.3; }
  .pack-resource .pack-parent-notes p { margin-bottom: 4pt; }
  .pack-resource .pack-exercise .pack-write-line { break-inside: avoid; page-break-inside: avoid; }
  .pack-resource .pack-answer-group { break-inside: avoid; page-break-inside: avoid; }
  .pack-resource .pack-sample-sheet > .pack-note { break-after: avoid; page-break-after: avoid; }
  .pack-resource .pack-sample-sheet > .pack-sheet-meta:last-child,
  .pack-resource .pack-parent-content > .pack-sheet-meta:last-child { margin: 6pt 0 0; font-size: 8pt; line-height: 1.3; break-before: avoid; page-break-before: avoid; }
  .pack-resource .pack-table { max-width: 100%; margin: 9pt 0; overflow: visible; border-color: #555; border-radius: 0; break-inside: avoid; page-break-inside: avoid; }
  .pack-resource .pack-table table { width: 100%; min-width: 0; font-size: 9pt; line-height: 1.35; }
  .pack-resource .pack-table caption { padding: 4pt 7pt; font-size: 9pt; break-after: avoid; page-break-after: avoid; }
  .pack-resource .pack-table th, .pack-resource .pack-table td { padding: 4pt 7pt; border-color: #666; }
  .pack-resource .pack-table thead { display: table-header-group; }
  .pack-resource .pack-table tr { break-inside: avoid; page-break-inside: avoid; }
  .pack-resource h1,
  .pack-resource h2,
  .pack-resource h3 { break-after: avoid; page-break-after: avoid; }
  .pack-resource p,
  .pack-resource li { orphans: 3; widows: 3; }
  .pack-resource a { text-decoration: none; }
}

/* Session bookmark tools stay optional so worksheets remain easy to reach. */
.pack-bookmark-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; color: #413453; font-weight: 750; line-height: 1.5; }
.pack-bookmark-summary span { flex: 0 0 auto; font-size: 1.3rem; transition: transform .15s; }
.pack-bookmark-compact[open] > .pack-bookmark-summary { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid #d6cde3; }
.pack-bookmark-compact[open] > .pack-bookmark-summary span { transform: rotate(45deg); }
.pack-bookmark-compact .pack-bookmark-heading > .pack-label { display: none; }
