.family-page .container{max-width:1060px}
.family-heading{max-width:780px;margin-bottom:24px}
.family-heading h1{line-height:1.22;letter-spacing:-.035em}
.family-heading h1{font-size:clamp(32px,5vw,50px)}
.family-heading>p+p{margin-top:16px}
.family-meta,.family-small{font-size:14px;color:var(--muted)}
.family-meta{font-weight:700;margin:12px 0}
.family-finder{display:flex;gap:18px;flex-wrap:wrap;align-items:end;padding:24px;margin:32px 0;border:1px solid var(--line);border-radius:16px;background:var(--accent-soft)}
.family-finder label{display:grid;gap:7px;flex:1 1 230px;font-weight:700}
.family-finder select{width:100%;min-height:48px;padding:10px;border:1px solid #9faea8;border-radius:8px;background:#fff;font:inherit;color:var(--ink)}
.family-finder [role=status]{flex-basis:100%;font-size:14px}
.family-pack-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.family-pack-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}
.family-pack-card__image{display:block;background:#f5f4ee;border-bottom:1px solid var(--line)}
.family-pack-card__image img{width:100%;height:auto;display:block}
.family-pack-card__body{padding:24px}
.family-pack-card__body h2{font-size:25px;line-height:1.4;margin:8px 0}
.family-pack-card__body h2 a{text-decoration:none}
.family-pack-card__body .text-link{display:inline-block;margin-top:18px}
.family-start,.family-parent-guide,.family-related{margin:48px 0}
.family-start ol,.family-parent-guide ol{padding-left:24px}
.family-start li,.family-parent-guide li{margin:18px 0}
.family-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:24px 0 12px}
.family-practice{margin-top:40px;padding:28px;border:1px solid #9fbeb1;background:var(--accent-soft);border-radius:18px}
.family-practice .section-heading{align-items:start;gap:16px}
.family-practice h2,.family-preview-section>h2,.family-parent-guide h2{font-size:28px;line-height:1.35}
.family-quiz-question{min-width:0;margin:24px 0 0;border:0;border-top:1px solid #bdd0c7;padding:20px 0 0}
.family-quiz-question legend{float:left;width:100%;font-size:18px;font-weight:750;margin-bottom:14px}
.family-quiz-question legend+*{clear:both}
.family-choices{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.family-choices button{border:1px solid #8ba297;border-radius:9px;background:#fff;color:var(--ink);min-height:48px;min-width:88px;padding:10px 18px;font:inherit;cursor:pointer}
.family-choices button[aria-pressed=true]{border:2px solid var(--accent);background:#d5e9df;font-weight:750}
.family-choices button[data-retry]{border-color:#a9461d;background:#fff3e9}
.family-quiz-question [role=status]{margin-top:10px;min-height:1.7em;font-weight:650}
.family-quiz-question details{font-size:14px}
.family-quiz-question details p{margin:8px 0}
.family-quiz-visual{max-width:440px}
.family-quiz-visual svg{width:100%;height:auto}
.family-next{padding:18px;margin-top:20px;background:#fff;border-radius:12px}
.family-adjust{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:24px 0}
.family-adjust section{padding:22px;border:1px solid var(--line);border-radius:12px}
.family-parent-guide details{border-top:1px solid var(--line);padding:18px 0}
.family-parent-guide details ul{padding-left:22px}
.family-print-controls{margin:20px 0 30px;padding:22px;border-radius:14px;border:1px solid var(--line);background:var(--soft);display:grid;gap:14px}
.family-print-controls fieldset{border:0;padding:0;display:grid;gap:8px}
.family-print-controls legend{font-weight:750;margin-bottom:12px}
.family-print-controls label{display:flex;align-items:center;gap:9px;min-height:35px}
.family-print-controls input{width:19px;height:19px;accent-color:var(--accent);flex-shrink:0}
.family-print-controls button{justify-self:start}
.family-sheet{max-width:740px;margin:0 auto 32px;padding:32px;background:#fff;border:1px solid #aeb5bf;color:#172238;line-height:1.6}
.family-sheet__brand{display:flex;justify-content:space-between;gap:20px;font-size:11px;padding-bottom:10px;border-bottom:1px solid #87909b}
.family-sheet h2{font-size:29px;line-height:1.3;margin:22px 0 10px}
.family-sheet__instruction{font-size:17px}
.family-sheet__name{font-size:13px;margin:20px 0}
.family-sheet__activity>svg{display:block;width:100%;max-height:520px;margin:20px auto}
.family-sheet__extension{margin-top:20px;border:1px dashed #888;padding:14px;font-size:16px;break-inside:avoid}
.family-draw-space{height:85px}
.family-sheet__source{font-size:10px;margin-top:16px;color:#485260;overflow-wrap:anywhere}
.family-bank{background:#f7f7f7;border:1px solid #aaa;border-radius:8px;padding:16px;font-size:23px;text-align:center;margin:25px 0}
.family-word-rows>div{display:flex;align-items:center;gap:12px;margin:26px 0}
.family-word-rows p{flex:1;font-size:19px}
.family-letter{display:grid;place-items:center;border:1.5px solid #333;width:64px;height:64px;font-size:38px}
.family-houses{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:50px 0 80px}
.family-houses>div{border:2px solid #333;text-align:center;padding:24px 8px}
.family-houses strong{font-size:34px}
.family-houses p{font-size:14px;margin-top:46px;overflow:hidden}
.family-token{display:inline-block;padding:8px 16px;border:1px solid #888;border-radius:5px;margin:3px;font-size:21px}
.family-sentence-rows>div{margin:32px 0 46px}
.family-write-line{height:44px;border-bottom:1px solid #777;margin:8px 0 20px}
.family-route-pair{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin:40px 0 60px}
.family-route-pair p{text-align:center;font-size:23px;font-weight:700;letter-spacing:2px;margin-bottom:18px}
.family-route-pair svg{width:100%}
.family-passage{padding:20px;border:1.5px solid #687380;font-size:19px;line-height:2;margin:25px 0;word-break:keep-all}
.family-questions{padding-left:24px;font-size:17px;margin:26px 0}
.family-questions li+li{margin-top:18px}
.family-story-rows>div{display:flex;align-items:center;gap:15px;padding:18px 0;border-bottom:1px solid #aaa}
.family-story-rows svg{width:105px;height:80px;flex-shrink:0}
.family-story-rows svg{width:110px;object-fit:contain}
.family-story-rows p{flex:1;font-size:18px}
.family-order-box{width:50px;height:50px;border:1.5px solid #333;flex-shrink:0}
.family-table{width:100%;border-collapse:collapse;margin:20px 0;font-size:18px}
.family-table th,.family-table td{border:1px solid #333;padding:16px 10px;text-align:center}
.family-screen-answers{max-width:740px;margin:24px auto;padding:22px;border:1px solid var(--line);border-radius:12px}
.family-screen-answers section{margin:22px 0}
.family-screen-answers h3{margin-bottom:8px}
.family-editor-note{font-size:13px;border-top:1px solid var(--line);padding:20px 0;color:var(--muted)}
.family-print-answer-root{display:none}
.family-empty{padding:30px 0}
.family-page [hidden]{display:none!important}
#together-quiz,#worksheet-preview{scroll-margin-top:105px}
@media(max-width:700px){.family-pack-grid,.family-adjust{grid-template-columns:1fr}.family-practice{padding:20px}.family-sheet{padding:18px}.family-sheet h2{font-size:23px}.family-sheet__instruction{font-size:15px}.family-sheet__name{font-size:10px}.family-sheet__brand{font-size:9px}.family-letter{width:45px;height:45px;font-size:29px}.family-word-rows p{font-size:15px}.family-word-rows>div{gap:6px}.family-houses{gap:8px}.family-houses>div{padding:14px 3px}.family-houses p{font-size:9px}.family-bank{font-size:18px}.family-token{font-size:17px;padding:6px 10px}.family-passage{font-size:16px;padding:14px}.family-table{font-size:14px}.family-table td,.family-table th{padding:10px 5px}.family-questions{font-size:15px}.family-route-pair{gap:10px}.family-route-pair p{font-size:15px;letter-spacing:0}.family-story-rows>div{gap:8px}.family-story-rows svg{width:60px}.family-story-rows p{font-size:15px}.family-order-box{width:35px;height:35px}.family-sheet__extension{font-size:14px}}
@media print{
  @page{size:A4 portrait;margin:12mm}
  body{background:#fff;color:#000}
  body>*:not(.family-page):not(.family-print-answer-root){display:none!important}
  .family-page{padding:0!important}
  .family-page>.container{width:100%;max-width:none;margin:0}
  .family-page>.container>*:not(.family-preview-section){display:none!important}
  .family-preview-section>*:not(.family-worksheets){display:none!important}
  .family-sheet{box-sizing:border-box;width:100%;max-width:none;height:270mm;margin:0;padding:0;border:0;break-after:page;font-size:11pt;line-height:1.5}
  .family-sheet:last-child{break-after:auto}
  .family-sheet.is-print-skipped{display:none!important}
  .family-sheet__brand{font-size:8pt;padding-bottom:3mm}
  .family-sheet h2{font-size:23pt;margin:6mm 0 3mm}
  .family-sheet__instruction{font-size:12pt}
  .family-sheet__name{font-size:9pt;margin:5mm 0}
  .family-sheet__activity>svg{max-height:142mm;margin:5mm auto}
  .family-sheet__extension{margin-top:5mm;padding:3mm;font-size:11pt}
  .family-draw-space{height:22mm}
  .family-sheet__source{font-size:8pt;margin-top:4mm}
  .family-bank{font-size:17pt;margin:7mm 0;padding:4mm}
  .family-word-rows>div{margin:7mm 0}
  .family-word-rows p{font-size:14pt}
  .family-letter{width:17mm;height:17mm;font-size:28pt}
  .family-houses{margin:15mm 0 24mm;gap:5mm}
  .family-houses>div{padding:8mm 2mm}
  .family-houses strong{font-size:25pt}
  .family-houses p{font-size:11pt;margin-top:14mm}
  .family-token{font-size:16pt}
  .family-sentence-rows>div{margin:8mm 0 14mm}
  .family-route-pair{margin:12mm 0 18mm}
  .family-passage{font-size:14pt;line-height:1.9;padding:5mm;margin:6mm 0}
  .family-write-line{height:9mm;margin:2mm 0 5mm}
  .family-questions{font-size:12pt;margin:6mm 0;padding-left:6mm}
  .family-questions li+li{margin-top:4mm}
  .family-story-rows>div{padding:5mm 0}
  .family-story-rows p{font-size:13pt}
  .family-table{font-size:13pt}
  .family-table th,.family-table td{padding:5mm 3mm}
  [data-family-sheet="town-map"] .family-sheet__activity>svg{height:83mm;margin:0 auto}
  [data-family-sheet="town-map"] .family-questions{margin:3mm 0}
  [data-family-sheet="town-map"] .family-questions li+li{margin-top:2mm}
  [data-family-sheet="town-map"] .family-write-line{height:7mm;margin-bottom:3mm}
  .family-print-answer-root.is-print-included{display:block!important;break-before:page}
  .family-answer-sheet section{margin:6mm 0}
  .family-answer-sheet h3{font-size:13pt;margin-bottom:2mm}
  .family-answer-sheet p,.family-answer-sheet li{font-size:11pt}
  .family-answer-sheet ul{padding-left:6mm}
}
