/* The curriculum overview (0.7.0, /curriculum/): the Classics palette and type from sr.css, plus the
   overview kit — icon row, flagship band, author timeline, years and series cards, line cards,
   course chevrons, bookstore shelf, art grid, wide cards. Loaded only on pages with this look. */

.th-overview{--ov-red:#9B3744;--ov-night:#12171E;--ov-ntxt:#EDE7DA;--ov-ntxt2:#B6B0A3}
/* Two white bands in a row read as one: no double gap between them. */
.th-overview .sec.band.bg-white + .sec.band.bg-white,
.th-overview .sec.band.bg-tint + .sec.band.bg-tint{padding-top:0}
.th-overview .sec-ov-hero.band{padding-block:56px 36px}

/* ---------- type ---------- */
.ov-h1{margin:0;font:700 clamp(34px,5vw,52px)/1.08 var(--serif);color:var(--ink)}
.ov-h2{margin:0;font:700 clamp(26px,3vw,34px)/1.15 var(--serif);color:var(--ink)}
.ov-h2.ov-big{font-size:clamp(32px,4vw,46px);line-height:1.1}
.ov-eyebrow{display:inline-block;margin:0;font:800 12.5px/1.3 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink2)}
.ov-eyebrow.ov-red{color:var(--ov-red)}
.ov-grades{display:block;font:800 12.5px/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink2)}
.ov-tag{display:block;margin:0;font:italic 400 16px/1.5 var(--serif);color:var(--ink)}
.ov-tag-lg{font-size:18px}
.ov-p{display:block;margin:0;font:400 16px/1.6 var(--sans);color:var(--ink2)}
.ov-p-lg{font-size:17px}
.ov-note{margin:0;font:700 14.5px/1.5 var(--sans);color:var(--ink)}
.ov-facts{display:block;font:700 14.5px/1.5 var(--sans);color:var(--ink)}
.ov-more{display:inline-block;font:800 15px/1.3 var(--sans);color:var(--cta);text-decoration:none}
.ov-quote{margin:0;font:italic 400 clamp(19px,2.2vw,25px)/1.4 var(--serif);color:var(--ink)}
a .ov-more{margin-top:auto;padding-top:6px}
.ov-missing{display:inline-flex;align-items:center;justify-content:center;width:40px;height:60px;background:#fff;border:1px dashed var(--ink2);color:var(--ink2);font-weight:800}

/* ---------- top: heading and the icon row ---------- */
.ov-top{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px 64px}
.ov-lede{margin:0;flex:1 1 360px;max-width:560px;font:400 clamp(17px,1.6vw,19px)/1.55 var(--sans);color:var(--ink2)}
.ov-icons{margin-top:clamp(28px,4vw,42px);border-top:1px solid var(--rule)}
.ov-icons ul{list-style:none;margin:0 calc(-1 * var(--gut));padding:24px var(--gut) 8px;display:flex;flex-wrap:nowrap;justify-content:space-between;gap:6px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:var(--gut);scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ov-icons ul::-webkit-scrollbar{display:none}
.ov-icons li{flex:none;width:68px;scroll-snap-align:start}
.ov-icons a{display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center;text-decoration:none;color:var(--ink)}
.ov-med{width:64px;height:64px;border-radius:50%;overflow:hidden;background:#fff;border:1px solid var(--rule);display:flex;align-items:center;justify-content:center;transition:transform .15s ease,box-shadow .15s ease}
.ov-med img{display:block}
.ov-med.fit-cover img{width:100%;height:100%;object-fit:cover}
.ov-med.fit-contain img{width:74%;height:74%;object-fit:contain}
.ov-med.fit-zoom img{width:100%;height:100%;object-fit:contain;transform:scale(1.32)}
.ov-med.fit-small img{width:70%;height:auto}
.ov-med-lbl{font:700 12px/1.25 var(--sans)}
.ov-icons a:hover .ov-med,.ov-icons a:focus-visible .ov-med{transform:translateY(-2px);box-shadow:0 0 0 2px var(--cta)}
.ov-icons a:hover .ov-med-lbl{color:var(--cta)}

/* ---------- the flagship ---------- */
.ov-flag{display:flex;flex-wrap:wrap;align-items:center;gap:36px 56px}
.ov-flag-text{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:16px}
.ov-flag-p{margin:4px 0 0;font:400 18px/1.6 var(--sans);color:var(--ink)}
.ov-acts{margin:8px 0 0}
.ov-flag-pic{flex:1 1 380px;min-width:0;display:block}
.ov-flag-pic img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:6px}

/* ---------- the author timeline ---------- */
.sec-ov-timeline{background:var(--ov-night);color:var(--ov-ntxt)}
.ov-tl{padding-block:26px 18px}
.ov-tl-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px}
.ov-tl-head p{margin:0;font:400 15px/1.4 var(--sans);color:var(--ov-ntxt2)}
.ov-tl-head b{font:700 19px/1.3 var(--serif);color:#fff}
.ov-chips{display:flex;flex-wrap:wrap;gap:8px}
.ov-chip{display:inline-flex;align-items:center;gap:8px;min-height:38px;padding:0 14px;border-radius:999px;border:1px solid rgba(237,231,218,.18);color:var(--ov-ntxt);font:700 13px/1 var(--sans);text-decoration:none}
.ov-chip i{width:10px;height:10px;border-radius:50%}
.ov-chip:hover{background:rgba(255,255,255,.07);color:#fff}
.ov-tl-track{margin-top:8px;display:flex;overflow-x:auto;overflow-y:hidden;padding-bottom:8px;scrollbar-width:thin;scrollbar-color:rgba(120,110,90,.5) transparent;outline:none}
.ov-tl-track:focus-visible{box-shadow:inset 0 0 0 2px var(--gold)}
/* The first dot lines up with the page's text column; the track can scroll past both edges. */
.ov-tl-in{flex:none;position:relative;height:236px;margin-left:max(0px,calc(max(0px,(100vw - 1120px) / 2) + var(--gut) - var(--x0)));margin-right:var(--gut)}
.ov-tl-axis{position:absolute;left:0;right:0;top:118px;height:1px;background:rgba(237,231,218,.22)}
.ov-tl-band{position:absolute;top:111px;height:14px;border-radius:999px}
.ov-tl-blab{position:absolute;top:129px;font:800 10px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;white-space:nowrap}
.ov-tl-a{position:absolute;transform:translateX(-50%);display:flex;align-items:center;text-decoration:none}
.ov-tl-a.up{bottom:118px;flex-direction:column}
.ov-tl-a.down{top:118px;flex-direction:column-reverse}
.ov-tl-lab{font:600 13px/1.2 var(--sans);white-space:nowrap;padding:2px 4px;color:var(--g)}
.ov-tl-stem{flex:1;width:1px;background:var(--st)}
.ov-tl-a:hover .ov-tl-lab,.ov-tl-a:focus-visible .ov-tl-lab{color:#fff}
.ov-tl-a:hover .ov-tl-stem{background:#fff}
.ov-tl-a:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:3px}
.ov-tl-dot{position:absolute;top:118px;width:9px;height:9px;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 3px var(--ov-night);pointer-events:none}

/* ---------- years and the series cards ---------- */
.ov-years{background:#fff;border-radius:6px;padding:clamp(20px,3vw,32px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px 20px}
.ov-year{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:inherit}
.ov-year-pic{height:210px;border-radius:4px;background:var(--tint);display:flex;align-items:center;justify-content:center}
.ov-year-pic img{height:176px;width:auto;display:block;box-shadow:0 8px 18px rgba(27,37,50,.18);transition:transform .15s ease}
.ov-year:hover .ov-year-pic img{transform:translateY(-3px)}
.ov-year-p{font:400 15px/1.55 var(--sans);color:var(--ink2)}
.ov-parts{margin-top:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(360px,100%),1fr));gap:20px}
.ov-years + .ov-parts{margin-top:20px}
.ov-parts:first-child{margin-top:0}
.ov-part{background:#fff;border-radius:6px;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit}
.ov-part-pic{position:relative;display:block;aspect-ratio:16/9;background:#E7E2D9;overflow:hidden}
.ov-part-pic img{position:absolute;inset:0;display:block;width:100%;height:100%}
.ov-part-pic.fill img{object-fit:cover}
.ov-part-pic.whole img{object-fit:contain}
.ov-part-body{flex:1;padding:22px 26px 24px;display:flex;flex-direction:column;gap:8px}
.ov-part-t{font:700 22px/1.2 var(--serif);color:var(--ink)}
.ov-part-p{font:400 15.5px/1.55 var(--sans);color:var(--ink2)}

/* ---------- two cards ---------- */
.ov-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:24px}
.ov-pcard{border:1px solid var(--rule);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;background:#fff}
.ov-pcard-top{background:var(--tint);height:250px;display:flex;align-items:center;justify-content:center}
.ov-pcard-body{flex:1;padding:clamp(22px,3vw,32px);display:flex;flex-direction:column;gap:12px}
.ov-pcard-row{display:flex;align-items:center;gap:12px}
.ov-pcard-t{margin:0;font:700 clamp(24px,2.4vw,28px)/1.2 var(--serif);color:var(--ink)}
.ov-bars{display:inline-flex;gap:4px}
.ov-bars i{display:block;width:6px;height:22px;transform:skewX(-7deg)}
.ov-fan{display:flex;align-items:center;justify-content:center}
.ov-fan-i{display:block;position:relative}
.ov-fan-i + .ov-fan-i{margin-left:-38px}
.ov-fan-i img{display:block;height:var(--h);width:auto;box-shadow:0 8px 18px rgba(27,37,50,.18)}
.ov-fan-i:nth-child(1){z-index:5}.ov-fan-i:nth-child(2){z-index:4}.ov-fan-i:nth-child(3){z-index:3}.ov-fan-i:nth-child(4){z-index:2}.ov-fan-i:nth-child(5){z-index:1}
a.ov-pcard:hover .ov-pcard-t,a.ov-wcard:hover .ov-wcard-t,a.ov-card:hover .ov-card-t,a.ov-part:hover .ov-part-t{color:var(--cta)}
.ov-plist{list-style:none;margin:4px 0 0;padding:0;border-top:1px solid var(--rule)}
.ov-plist li{border-bottom:1px solid var(--rule)}
.ov-plist a{display:flex;align-items:center;gap:14px;min-height:52px;padding:6px 0;font:700 15.5px/1.35 var(--sans);color:var(--ink);text-decoration:none}
.ov-plist a:hover{color:var(--cta)}
.ov-plist-cv img{display:block;height:40px;width:auto}
.ov-plist-t{flex:1}
.ov-arrow{color:var(--cta)}

/* ---------- full-width line cards ---------- */
.ov-wides{display:flex;flex-direction:column;gap:24px}
.ov-wide{display:flex;border:1px solid var(--rule);border-radius:8px;overflow:hidden;text-decoration:none;color:inherit;background:#fff}
.ov-wide.flip{flex-direction:row-reverse}
.ov-wide-art{flex:1.05 1 0;min-width:0;min-height:380px;background:var(--bg);position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:center}
.ov-wide-bg{position:absolute;inset:0;width:100%;height:100%;display:block}
.ov-wide-bg.cover{object-fit:cover}
.ov-wide-bg.contain{object-fit:contain}
.ov-wide-covers{position:relative;z-index:1;display:flex;align-items:flex-end;padding:0 clamp(20px,3vw,40px) clamp(22px,3vw,34px)}
.ov-wide-cv{display:block;position:relative}
.ov-wide-cv + .ov-wide-cv{margin-left:-36px}
.ov-wide-cv:nth-child(1){z-index:3}.ov-wide-cv:nth-child(2){z-index:2}.ov-wide-cv:nth-child(3){z-index:1}
.ov-wide-cv img{display:block;height:220px;width:auto;box-shadow:0 12px 28px rgba(27,37,50,.3);transition:transform .2s ease}
.ov-wide:hover .ov-wide-cv img{transform:translateY(-4px)}
.ov-wide-body{flex:1 1 0;min-width:0;padding:clamp(26px,4vw,52px);display:flex;flex-direction:column;justify-content:center;gap:12px}
.ov-wide-t{margin:0;font:700 clamp(26px,2.8vw,34px)/1.15 var(--serif);color:var(--ink)}
.ov-wide-btn{align-self:flex-start;margin-top:10px}
.ov-wide:hover .ov-wide-btn{background:var(--ctah)}

/* ---------- the course sequence ---------- */
.ov-seq-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 32px;margin-bottom:22px}
.ov-seq-head > div{flex:1 1 420px;min-width:0;display:flex;flex-direction:column;gap:8px}
.ov-chevs{margin:0 calc(-1 * var(--gut)) 28px;padding:6px var(--gut) 10px;overflow-x:auto;scrollbar-width:none}
.ov-chevs::-webkit-scrollbar{display:none}
.ov-chevs-in{display:flex;min-width:720px}
.ov-chev{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:12px;text-align:center;text-decoration:none;transition:filter .18s ease,transform .18s ease}
.ov-chev + .ov-chev{margin-left:-22px}
.ov-chev-shape{height:clamp(120px,13vw,150px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;box-sizing:border-box;transition:filter .18s ease}
.ov-chev.first .ov-chev-shape{clip-path:polygon(0 0,calc(100% - 26px) 0,100% 50%,calc(100% - 26px) 100%,0 100%);padding:0 36px 0 16px}
.ov-chev.mid .ov-chev-shape{clip-path:polygon(0 0,calc(100% - 26px) 0,100% 50%,calc(100% - 26px) 100%,0 100%,26px 50%);padding:0 36px 0 38px}
.ov-chev.last .ov-chev-shape{clip-path:polygon(0 0,100% 0,100% 100%,0 100%,26px 50%);padding:0 16px 0 38px}
.ov-chev-small{font:italic 400 14px/1.2 var(--serif)}
.ov-chev-sub{font:italic 400 12px/1.2 var(--serif)}
.ov-chev-t{font:700 24px/1.1 var(--serif)}
.ov-chev-t.large{font-size:clamp(26px,2.8vw,34px)}
.ov-chev-t.medium{font-size:clamp(22px,2.4vw,30px);letter-spacing:.02em}
.ov-chev-t.small{font-size:clamp(19px,2vw,24px);letter-spacing:.03em}
.ov-chev-g{font:800 15px/1.2 var(--sans)}
.ov-chev:hover,.ov-chev:focus-visible{filter:drop-shadow(0 6px 12px rgba(0,0,0,.3));transform:translateY(-2px)}
.ov-chev:hover .ov-chev-shape{filter:brightness(1.1)}
.ov-chev:focus-visible{outline:none}
.ov-chev:focus-visible .ov-chev-g{text-decoration:underline}
.ov-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr));gap:24px}
.ov-card{border:1px solid var(--rule);border-radius:8px;overflow:hidden;display:flex;flex-wrap:wrap;text-decoration:none;color:inherit;background:#fff}
.ov-card-pic{flex:1 1 200px;min-width:0;min-height:250px;background:var(--tint);display:flex;align-items:center;justify-content:center;padding:20px}
.ov-card-pic img{display:block;height:190px;width:auto;box-shadow:0 8px 18px rgba(27,37,50,.18);transition:transform .2s ease}
.ov-card:hover .ov-card-pic img{transform:translateY(-3px)}
.ov-card-body{flex:1.4 1 240px;min-width:0;padding:clamp(22px,2.6vw,28px);display:flex;flex-direction:column;gap:10px}
.ov-card-t{margin:0;font:700 22px/1.25 var(--serif);color:var(--ink)}
.ov-card .ov-p{font-size:15.5px}

/* ---------- the shelf and the sub-shelf ---------- */
.ov-shelf-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 40px;margin-bottom:32px}
.ov-shelf-head > div{flex:1 1 460px;min-width:0;display:flex;flex-direction:column;gap:10px}
.ov-shelf-head .ov-p{max-width:640px}
.ov-books{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:28px 20px}
.ov-books a{display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--ink);font:700 13.5px/1.35 var(--sans)}
.ov-books img,.ov-books .ov-blank{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:cover;border-radius:2px;box-shadow:0 8px 18px rgba(27,37,50,.18);transition:transform .15s ease}
.ov-books a:hover img{transform:translateY(-3px)}
.ov-books a:hover span{color:var(--cta)}
.ov-blank{background:var(--tint)}
.ov-sub{margin-top:36px;padding:clamp(20px,3vw,28px);background:var(--tint);border-radius:8px;display:flex;flex-wrap:wrap;align-items:center;gap:20px 40px}
.ov-sub-text{flex:1 1 300px;min-width:0;display:flex;flex-direction:column;gap:6px}
.ov-sub-t{margin:0;font:700 24px/1.2 var(--serif);color:var(--ink)}
.ov-sub-acts{margin:6px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.ov-sub-covers{list-style:none;margin:0;padding:6px 4px 14px;flex:1 1 420px;min-width:0;display:flex;gap:16px;overflow-x:auto;scrollbar-width:none}
.ov-sub-covers li{flex:none}
.ov-sub-covers img,.ov-sub-covers .ov-blank{display:block;height:150px;width:auto;aspect-ratio:auto;border-radius:2px;box-shadow:0 8px 18px rgba(27,37,50,.18);transition:transform .15s ease}
.ov-sub-covers a:hover img{transform:translateY(-3px)}

/* ---------- art and swag ---------- */
.ov-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ov-tile.wide{grid-column:span 2}
.ov-tile a{height:100%;display:flex;flex-direction:column;background:#fff;border-radius:6px;overflow:hidden;text-decoration:none;color:var(--ink)}
.ov-tile-pic{display:block;height:220px;background:#fff}
.ov-tile-pic img{display:block;width:100%;height:100%;transition:transform .2s ease}
.ov-tile-pic.contain img{object-fit:contain}
.ov-tile-pic.cover img{object-fit:cover}
.ov-tile a:hover img{transform:scale(1.03)}
.ov-tile-cap{padding:12px 16px 16px;font:700 14px/1.35 var(--sans)}
.ov-tile a:hover .ov-tile-cap{color:var(--cta)}

/* ---------- a wide card ---------- */
.ov-wcard{border:1px solid var(--rule);border-radius:8px;overflow:hidden;display:flex;flex-wrap:wrap;text-decoration:none;color:inherit;background:#fff}
.ov-wcard-pic{flex:1 1 360px;min-width:0;display:block;min-height:240px}
.ov-wcard-pic img{display:block;width:100%;height:100%;min-height:240px;object-fit:cover}
.ov-wcard-body{flex:1.6 1 400px;min-width:0;padding:clamp(24px,3.5vw,44px);display:flex;flex-direction:column;justify-content:center;gap:10px}
.ov-wcard-t{margin:0;font:700 clamp(24px,2.4vw,28px)/1.2 var(--serif);color:var(--ink)}

/* ---------- smaller screens ---------- */
@media (max-width:1000px){
  .ov-years{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ov-books{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:124px;overflow-x:auto;margin:0 calc(-1 * var(--gut));padding:0 var(--gut) 12px;scrollbar-width:none}
  .ov-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:860px){
  .ov-wide,.ov-wide.flip{flex-direction:column}
  .ov-wide-art{flex:none;min-height:300px}
  .ov-wide-cv img{height:180px}
}
@media (max-width:560px){
  .th-overview .sec-ov-hero.band{padding-block:36px 24px}
  .ov-icons ul{gap:10px}
  .ov-icons li{width:72px}
  .ov-year-pic{height:170px}
  .ov-year-pic img{height:140px}
  .ov-pcard-top{height:210px}
  .ov-fan-i img{height:calc(var(--h) * .8)}
  .ov-tile-pic{height:170px}
  .ov-tile.wide{grid-column:span 2}
}
@media (prefers-reduced-motion:reduce){
  .ov-med,.ov-chev,.ov-card-pic img,.ov-wide-cv img,.ov-books img,.ov-tile-pic img,.ov-year-pic img{transition:none}
}
