/* Scoped Educator Collection. System fonts; no external assets or animation. */
.ec { --ec-paper:#f5f1e8; --ec-ink:#233b34; --ec-muted:#516159; --ec-line:#cdcfc2; --ec-rust:#994b30; --ec-card:#fffdf7; color:var(--ec-ink); background:var(--ec-paper); font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; margin:0; }
.ec * { box-sizing:border-box; }
.ec [hidden] { display:none !important; }
.ec a { color:inherit; text-underline-offset:4px; }
.ec button,.ec input,.ec select { font:inherit; }
.ec button,.ec .ec-button { cursor:pointer; display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:10px 17px; border:1px solid var(--ec-ink); border-radius:5px; color:var(--ec-ink); background:transparent; text-decoration:none; font-weight:600; }
.ec button:disabled { opacity:.48; cursor:default; }
.ec .ec-primary { color:#fffdf7; background:var(--ec-ink); }
.ec :focus-visible { outline:3px solid #b35529; outline-offset:4px; }
.ec .ec-skip { position:absolute; top:-100px; left:16px; z-index:10; padding:12px; background:white; }
.ec .ec-skip:focus { top:10px; }
.ec .ec-shell { max-width:1280px; margin:auto; padding:0 44px; }
.ec .ec-header { display:flex; align-items:center; justify-content:space-between; gap:22px; padding-top:27px; padding-bottom:26px; border-bottom:1px solid var(--ec-line); }
.ec .ec-brand { font-size:12px; letter-spacing:.11em; text-transform:uppercase; font-weight:700; text-decoration:none; line-height:1.7; }
.ec .ec-brand b { font-family:Georgia,serif; display:inline-block; font-size:29px; letter-spacing:-.08em; margin-right:17px; vertical-align:middle; }
.ec .ec-edition { font-size:12px; color:var(--ec-muted); }
.ec .ec-hero { display:grid; grid-template-columns:1.05fr 1fr; gap:68px; align-items:center; padding-top:64px; padding-bottom:58px; }
.ec .ec-eyebrow { margin:0 0 13px; font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--ec-rust); }
.ec h1 { font:normal clamp(38px,5vw,66px)/1.08 Georgia,serif; letter-spacing:-.045em; margin:0 0 24px; }
.ec h2 { font:normal 34px/1.2 Georgia,serif; letter-spacing:-.025em; margin:0 0 16px; }
.ec h3 { margin:0 0 12px; }
.ec p { margin:0 0 16px; }
.ec .ec-deck { font-size:18px; color:var(--ec-muted); max-width:52ch; }
.ec .ec-stats { display:flex; gap:29px; margin-top:28px; padding-top:20px; border-top:1px solid var(--ec-line); font-size:12px; color:var(--ec-muted); }
.ec .ec-stats strong { display:block; color:var(--ec-ink); font-size:24px; font-weight:500; }
.ec .ec-hero-art { margin:0; transform:rotate(-2deg); border:1px solid #c9b79c; background:#f6f0e4; box-shadow:10px 13px 0 #e3dfd2; }
.ec .ec-hero-art img { display:block; width:100%; height:auto; }
.ec .ec-hero-art figcaption { border-top:1px solid #c9b79c; padding:12px 18px; font-size:12px; display:flex; justify-content:space-between; gap:12px; }
.ec .ec-introbar { border-top:1px solid var(--ec-line); border-bottom:1px solid var(--ec-line); padding:22px 0; display:grid; grid-template-columns:1fr 1fr 1fr; gap:28px; margin-bottom:46px; font-size:14px; }
.ec .ec-introbar strong { display:block; margin-bottom:4px; }
.ec .ec-introbar p { color:var(--ec-muted); margin:0; }
.ec .ec-sectionhead { display:flex; justify-content:space-between; align-items:baseline; gap:24px; }
.ec .ec-sectionhead p { color:var(--ec-muted); font-size:13px; }
.ec .ec-controls { padding:22px; border:1px solid var(--ec-line); border-radius:6px; display:grid; grid-template-columns:1.8fr 1fr 1fr auto; gap:16px; align-items:end; margin:14px 0 16px; background:#ecece1; }
.ec .ec-controls label { font-size:12px; font-weight:600; display:flex; flex-direction:column; gap:7px; }
.ec input[type="search"],.ec select { width:100%; min-height:46px; border:1px solid #adb6a7; border-radius:4px; padding:10px; color:var(--ec-ink); background:var(--ec-card); }
.ec .ec-filterline { display:flex; gap:20px; align-items:center; justify-content:space-between; font-size:13px; margin:14px 0 22px; }
.ec .ec-linkbutton { border:0; padding:5px 0; min-height:44px; text-decoration:underline; text-underline-offset:4px; font-size:13px; }
.ec .ec-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:23px; }
.ec .ec-card { min-width:0; border:1px solid var(--ec-line); border-radius:6px; overflow:hidden; background:var(--ec-card); display:flex; flex-direction:column; }
.ec .ec-card.ec-selected { border-color:#385b45; box-shadow:0 0 0 2px #385b45; }
.ec .ec-cardhead { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:14px 17px; border-bottom:1px solid var(--ec-line); font-size:11px; letter-spacing:.08em; text-transform:uppercase; }
.ec .ec-select { display:flex; align-items:center; gap:8px; min-height:44px; font-size:12px; letter-spacing:0; text-transform:none; cursor:pointer; }
.ec input[type="checkbox"] { width:19px; height:19px; accent-color:var(--ec-ink); margin:0; }
.ec .ec-card img { display:block; width:100%; height:auto; aspect-ratio:1.5; object-fit:contain; background:#f6f0e4; border-bottom:1px solid var(--ec-line); }
.ec .ec-cardbody { padding:22px; display:flex; flex-direction:column; flex:1; }
.ec .ec-meta { font-size:11px; text-transform:uppercase; letter-spacing:.09em; color:var(--ec-rust); margin:0 0 11px; }
.ec .ec-card h3 { font:normal 28px/1.15 Georgia,serif; letter-spacing:-.03em; }
.ec .ec-cardbody>p { font-size:14px; color:var(--ec-muted); }
.ec .ec-cardbottom { margin-top:auto; padding-top:10px; }
.ec .ec-cardbottom a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; font-weight:600; }
.ec .ec-health { display:block; font-size:11px; margin-top:14px; padding-top:12px; border-top:1px solid var(--ec-line); color:var(--ec-muted); }
.ec .ec-health[data-status="available"] { color:#27613e; }
.ec .ec-health[data-status="partial"],.ec .ec-health[data-status="unavailable"] { color:#964420; }
.ec .ec-empty { padding:40px 20px; border:1px dashed var(--ec-line); text-align:center; }
.ec .ec-basket { position:static; bottom:12px; z-index:3; margin:30px 0; padding:21px 23px; background:#233b34; color:#fffdf7; display:flex; justify-content:space-between; align-items:center; gap:24px; border-radius:7px; box-shadow:0 5px 20px #0002; }
.ec .ec-basket.ec-has-selection { position:sticky; }
.ec .ec-basket strong { display:block; font-size:18px; }
.ec .ec-basket p { font-size:12px; margin:5px 0 0; color:#d8e0d7; }
.ec .ec-actions { display:flex; gap:10px; flex-wrap:wrap; }
.ec .ec-basket button { border-color:#c8d7c8; color:#fffdf7; font-size:13px; }
.ec .ec-basket button.ec-primary { background:#eee4ca; color:#233b34; border-color:#eee4ca; }
.ec .ec-selection-list { font-size:12px; margin:0; padding-left:19px; color:var(--ec-muted); }
.ec .ec-bottom { margin:40px 0; padding-top:35px; border-top:1px solid var(--ec-line); display:grid; grid-template-columns:1fr 1fr; gap:44px; }
.ec .ec-bottom p,.ec .ec-bottom li { font-size:14px; color:var(--ec-muted); }
.ec .ec-bottom h2 { font-size:26px; }
.ec .ec-footer { font-size:12px; color:var(--ec-muted); padding:22px 0 35px; border-top:1px solid var(--ec-line); }
.ec .ec-status { min-height:24px; font-size:13px; color:var(--ec-muted); }
.ec .ec-fallback { border-left:3px solid var(--ec-rust); padding:12px 18px; margin:12px 0 24px; background:#eee4d6; font-size:14px; }
.ec .ec-print-root { display:none; }
.ec .ec-bundle-nav { display:flex; gap:15px; align-items:center; justify-content:space-between; padding-top:22px; padding-bottom:22px; }
.ec .ec-bundle-nav a { font-size:14px; }
.ec .ec-book { max-width:850px; margin:0 auto; padding:0 22px; }
.ec .ec-sheet { border:1px solid var(--ec-line); background:var(--ec-card); padding:38px 42px; margin:0 0 25px; }
.ec .ec-sheet h1,.ec .ec-sheet .ec-lesson-title { font:normal 39px/1.08 Georgia,serif; letter-spacing:-.035em; margin:0 0 18px; }
.ec .ec-sheet h2 { font-size:27px; margin-top:23px; }
.ec .ec-sheet h3 { font-size:15px; margin:19px 0 6px; }
.ec .ec-sheet .ec-eyebrow { font-size:11px; }
.ec .ec-sheet p,.ec .ec-sheet li { font-size:14px; }
.ec .ec-sheet ul,.ec .ec-sheet ol { padding-left:21px; margin:10px 0 16px; }
.ec .ec-sheet li { margin-bottom:6px; }
.ec .ec-sheet .ec-question { font:italic 21px/1.3 Georgia,serif; color:var(--ec-rust); }
.ec .ec-steps { list-style:none; padding:0 !important; }
.ec .ec-steps li { padding-left:54px; position:relative; margin:14px 0; }
.ec .ec-steps b { position:absolute; left:0; top:0; font-size:12px; color:var(--ec-rust); }
.ec .ec-steps strong { display:block; }
.ec .ec-figure { margin:18px 0; }
.ec .ec-figure svg { width:100%; height:auto; display:block; border:1px solid #d9cab4; }
.ec .ec-figure figcaption { font-size:12px; color:var(--ec-muted); margin-top:9px; }
.ec .ec-note { border-left:3px solid #9aab91; padding:10px 14px; background:#eef0e6; }
.ec .ec-source-list { font-size:12px; overflow-wrap:anywhere; }
.ec .ec-source-list li { font-size:11px; }
.ec .ec-response { border-bottom:1px solid #c5c9b8; min-height:53px; padding:5px 0 20px; font-size:13px; }
.ec .ec-sheet-foot { margin-top:23px; padding-top:10px; border-top:1px solid var(--ec-line); font-size:10px; color:var(--ec-muted); }
.ec .ec-offline-note { max-width:760px; margin:24px auto; padding:16px; background:#e7ebdf; font-size:13px; }
@media(max-width:1000px) {
 .ec .ec-shell { padding-left:25px; padding-right:25px; }
 .ec .ec-hero { gap:35px; }
 .ec .ec-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .ec .ec-controls { grid-template-columns:1.5fr 1fr 1fr; }
 .ec .ec-controls button { grid-column:1/-1; }
 .ec .ec-basket { align-items:flex-start; }
}
@media(max-width:640px) {
 .ec .ec-shell { padding-left:20px; padding-right:20px; }
 .ec .ec-header { padding-top:18px; padding-bottom:18px; }
 .ec .ec-brand { font-size:9px; letter-spacing:.06em; }
 .ec .ec-brand b { font-size:25px; margin-right:11px; }
 .ec .ec-edition { font-size:10px; max-width:66px; text-align:right; }
 .ec .ec-hero { display:block; padding-top:34px; padding-bottom:36px; }
 .ec .ec-deck { font-size:16px; }
 .ec .ec-stats { gap:25px; }
 .ec .ec-hero-art { margin:32px 6px 0; }
 .ec .ec-introbar { grid-template-columns:1fr; gap:18px; margin-bottom:30px; }
 .ec .ec-sectionhead { display:block; }
 .ec .ec-sectionhead h2 { font-size:30px; }
 .ec .ec-controls { grid-template-columns:1fr 1fr; gap:12px; padding:15px; }
 .ec .ec-controls label:first-child { grid-column:1/-1; }
 .ec .ec-filterline { align-items:flex-start; font-size:12px; }
 .ec .ec-grid { grid-template-columns:1fr; }
 .ec .ec-card h3 { font-size:29px; }
 .ec .ec-basket,.ec .ec-basket.ec-has-selection { position:static; display:block; padding:19px; }
 .ec .ec-actions { margin-top:15px; }
 .ec .ec-actions button { flex:1; }
 .ec .ec-bottom { grid-template-columns:1fr; gap:24px; }
 .ec .ec-sheet { padding:24px 19px; }
 .ec .ec-sheet h1,.ec .ec-sheet .ec-lesson-title { font-size:31px; }
 .ec .ec-book { padding:0 12px; }
 .ec .ec-bundle-nav { align-items:flex-start; }
 .ec .ec-steps li { padding-left:43px; }
}
@media(prefers-reduced-motion:reduce) { .ec *, .ec *::before,.ec *::after { scroll-behavior:auto !important; } }
@page { size:letter; margin:13mm 14mm; }
@media print {
 .ec { background:white; color:#172b24; font-size:10pt; }
 .ec .ec-screen,.ec .ec-skip,.ec .ec-offline-note { display:none !important; }
 .ec .ec-print-root { display:block; }
 .ec .ec-book { max-width:none; padding:0; }
 .ec .ec-sheet { border:0; margin:0; padding:0; break-after:page; background:white; }
 .ec .ec-sheet:last-child { break-after:auto; }
 .ec .ec-lesson { break-after:page; }
 .ec .ec-lesson:last-child { break-after:auto; }
 .ec .ec-sheet h1,.ec .ec-sheet .ec-lesson-title { font-size:26pt; margin-bottom:10pt; }
 .ec .ec-sheet h2 { font-size:18pt; margin-top:12pt; margin-bottom:8pt; }
 .ec .ec-sheet h3 { font-size:10pt; margin:10pt 0 4pt; }
 .ec .ec-sheet p,.ec .ec-sheet li { font-size:9.5pt; line-height:1.35; }
 .ec .ec-sheet p { margin-bottom:8pt; }
 .ec .ec-sheet .ec-question { font-size:14pt; }
 .ec .ec-sheet .ec-eyebrow { font-size:8pt; margin-bottom:7pt; }
 .ec .ec-sheet ul,.ec .ec-sheet ol { margin:6pt 0 8pt; }
 .ec .ec-steps li { margin:8pt 0; }
 .ec .ec-figure { margin:9pt 0; break-inside:avoid; }
 .ec .ec-figure svg { max-height:83mm; }
 .ec .ec-figure figcaption { font-size:8pt; line-height:1.25; }
 .ec .ec-note { padding:7pt 10pt; }
 .ec .ec-source-list li { font-size:7.5pt; margin:2pt 0; line-height:1.25; }
 .ec .ec-sheet-foot { margin-top:12pt; font-size:7pt; padding-top:6pt; }
 .ec .ec-response { min-height:18mm; padding-bottom:10mm; font-size:9pt; }
 .ec a { text-decoration:underline; }
 .ec li,.ec .ec-response,.ec .ec-note { break-inside:avoid; }
 .ec .ec-source-list a { overflow-wrap:anywhere; }
 .ec .ec-hero-art { transform:none; }
}
