/* Copyright (C) 2026 Sarah Vickery. All rights reserved. See LICENSE.txt in the plugin root. */
/* HBS Course Registration — course pages ([hbs_course_page]). Slate and mist, to sit beside the
   Summer Courses and Workshops pages. Every color is a variable on .hbscr-cp, so a page can change them. */
.hbscr-cp{--cp-slate:#26343a;--cp-deep:#1b272c;--cp-cream:#f1f4f3;--cp-cream2:#bfcdd1;--cp-lichen:#c3d4d8;--cp-rose:#d6a39b;--cp-rose-ink:#9b5b56;--cp-ember:#c2652e;--cp-paper:#f5f4ef;--cp-mist:#eaeae2;--cp-card:#fbfaf7;--cp-ink:#1d2a2f;--cp-ink2:#4b5b60;--cp-line:#d0d2c8;--cp-go:#2f6a52;
 --cp-display:'Fraunces',Georgia,'Times New Roman',serif;--cp-body:'Spectral',Georgia,serif;--cp-mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
 font-family:var(--cp-body);font-size:17px;line-height:1.68;color:var(--cp-ink);background:var(--cp-paper);-webkit-font-smoothing:antialiased}
.hbscr-cp *,.hbscr-cp *::before,.hbscr-cp *::after{box-sizing:border-box}
.hbscr-cp :where(p,ul,ol,dl,dd,figure){margin:0}
.hbscr-cp :where(p,li,dd,th,td){font-size:inherit;line-height:inherit}
.hbscr-cp a{color:inherit;text-decoration:underline;text-decoration-color:var(--cp-rose-ink);text-underline-offset:3px}
.hbscr-cp .hbscr-cp__h1,.hbscr-cp .hbscr-cp__h2,.hbscr-cp .hbscr-cp__h3,.hbscr-cp .hbscr-cp__cardh{font-family:var(--cp-display)!important;font-weight:400!important;letter-spacing:-.01em!important;margin:0!important;padding:0!important;text-transform:none!important}
.hbscr-cp__w{width:min(1180px,100%);margin-inline:auto;padding-inline:max(16px,3vw)}
.hbscr-cp .screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* banner: the course photo fills it */
.hbscr-cp__hero{position:relative;overflow:hidden;background:var(--cp-slate);color:var(--cp-cream);border-bottom:4px solid var(--cp-rose);display:flex;align-items:flex-end;min-height:clamp(420px,62vh,640px)}
.hbscr-cp__hero.has-photo{background:var(--cp-deep);min-height:min(82vh,760px)}
.hbscr-cp .hbscr-cp__img{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover;object-position:50% 50%;margin:0!important}
.hbscr-cp__hero.has-photo::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(27,39,44,.93) 0%,rgba(27,39,44,.86) 42%,rgba(27,39,44,.42) 70%,rgba(27,39,44,.08) 100%),linear-gradient(0deg,rgba(27,39,44,.5) 0%,rgba(27,39,44,0) 40%)}
.hbscr-cp__hero .hbscr-cp__w{position:relative;z-index:2;padding-top:clamp(6rem,14vh,9rem);padding-bottom:clamp(3.2rem,8vh,5rem)}
.hbscr-cp .hbscr-cp__crumb{font-family:var(--cp-mono);font-size:.74rem;letter-spacing:.06em;color:var(--cp-cream2);margin-bottom:clamp(2rem,5vh,3.2rem)}
.hbscr-cp .hbscr-cp__crumb a{color:var(--cp-cream2);text-decoration-color:rgba(214,163,155,.6)}
.hbscr-cp__crumb span[aria-hidden]{margin:0 .55rem}
.hbscr-cp__session a{margin-right:.6rem}
.hbscr-cp__copy{max-width:41rem}
.hbscr-cp__hero.has-photo .hbscr-cp__copy{text-shadow:0 1px 14px rgba(15,22,25,.35)}
.hbscr-cp .hbscr-cp__eyebrow{font-family:var(--cp-mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cp-rose)}
.hbscr-cp .hbscr-cp__h1{font-size:clamp(2.8rem,6.6vw,5rem)!important;line-height:.98!important;margin-top:.9rem!important;color:var(--cp-cream)!important}
.hbscr-cp .hbscr-cp__sub{display:block;font-style:italic;font-size:clamp(1.35rem,2.6vw,1.95rem);line-height:1.2;color:var(--cp-lichen);margin-top:.6rem;letter-spacing:0}
.hbscr-cp .hbscr-cp__with{margin-top:1.3rem;color:var(--cp-cream2);font-size:1.08rem}
.hbscr-cp .hbscr-cp__chipline{margin-top:1.8rem}
.hbscr-cp__chip{display:inline-flex;align-items:center;gap:.55rem;border:1px solid rgba(241,244,243,.4);background:rgba(27,39,44,.35);border-radius:99px;padding:.35rem .95rem;font-family:var(--cp-mono);font-size:.76rem;letter-spacing:.04em;text-shadow:none}
.hbscr-cp__chip i{width:7px;height:7px;border-radius:50%;background:var(--cp-ember);flex:none}
.hbscr-cp .hbscr-cp__row{display:flex;flex-wrap:wrap;gap:.8rem 1rem;align-items:center;margin-top:1.1rem}
.hbscr-cp .hbscr-cp__btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:.6rem 1.35rem;border-radius:4px;border:2px solid var(--cp-lichen);background:var(--cp-lichen);color:var(--cp-deep);font-family:var(--cp-body);font-weight:600;font-size:1rem;line-height:1.2;text-decoration:none;text-shadow:none}
.hbscr-cp .hbscr-cp__btn.is-ghost{background:rgba(27,39,44,.25);border-color:rgba(241,244,243,.5);color:var(--cp-cream)}
.hbscr-cp .hbscr-cp__btn.is-solid{display:flex;width:100%;margin-top:1.2rem;background:var(--cp-go);border-color:var(--cp-go);color:#fff}
.hbscr-cp .hbscr-cp__btn:hover{filter:brightness(1.06)}
.hbscr-cp .hbscr-cp__btn:focus-visible,.hbscr-cp a:focus-visible{outline:3px solid var(--cp-rose);outline-offset:3px}

/* not on this season's schedule */
.hbscr-cp__past{background:var(--cp-mist);border-bottom:1px solid var(--cp-line);padding-block:1.1rem}

/* reading column and the glance box */
.hbscr-cp__grid{display:grid;grid-template-columns:minmax(0,1fr) 20.5rem;gap:clamp(2.5rem,6vw,5.5rem);padding-top:clamp(3rem,6vw,4.5rem);padding-bottom:clamp(3rem,6vw,4.5rem)}
.hbscr-cp__read{max-width:40rem}
.hbscr-cp__sec + .hbscr-cp__sec{margin-top:clamp(2.8rem,5vw,3.8rem);padding-top:clamp(2.2rem,4vw,2.8rem);border-top:1px solid var(--cp-line)}
.hbscr-cp .hbscr-cp__h2{font-size:clamp(1.7rem,3vw,2.2rem)!important;line-height:1.1!important;color:var(--cp-ink)!important;margin-bottom:1.1rem!important}
.hbscr-cp .hbscr-cp__h2 em{font-style:italic;color:var(--cp-rose-ink)}
.hbscr-cp .hbscr-cp__h3{font-size:1.22rem!important;line-height:1.2!important;color:var(--cp-ink)!important}
.hbscr-cp .hbscr-cp__lede{font-size:1.24rem;line-height:1.6}
.hbscr-cp__prose > * + *,.hbscr-cp__lede + .hbscr-cp__prose{margin-top:1rem}
.hbscr-cp__prose ul{padding-left:1.3rem}
.hbscr-cp__prose li + li{margin-top:.3rem}
.hbscr-cp .hbscr-cp__note{font-size:.98rem;color:var(--cp-ink2);margin-top:1rem}

.hbscr-cp__days{display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));border-top:2px solid var(--cp-slate)}
.hbscr-cp__day{padding:.8rem .8rem 1rem 0;border-right:1px solid var(--cp-line)}
.hbscr-cp__day + .hbscr-cp__day{padding-left:.8rem}
.hbscr-cp__day:last-child{border-right:0}
.hbscr-cp__day b{display:block;font-family:var(--cp-mono);font-weight:500;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cp-rose-ink)}
.hbscr-cp__day span{display:block;font-family:var(--cp-display);font-size:1.45rem;line-height:1.1;margin-top:.25rem}
.hbscr-cp__day small{display:block;font-size:.88rem;color:var(--cp-ink2);margin-top:.35rem;line-height:1.35}
.hbscr-cp .hbscr-cp__plan{list-style:none;padding:0;border-top:2px solid var(--cp-slate)}
.hbscr-cp__plan li{display:grid;grid-template-columns:8.5rem minmax(0,1fr);gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--cp-line)}
.hbscr-cp__plan b{font-family:var(--cp-mono);font-weight:500;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cp-rose-ink);padding-top:.25rem}
.hbscr-cp__plan li:not(:has(b)) span{grid-column:1 / -1}
.hbscr-cp .hbscr-cp__file{margin-top:1.2rem;font-size:1.02rem}
.hbscr-cp__file span{color:var(--cp-ink2);font-size:.92rem;margin-left:.35rem}

.hbscr-cp__people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem}
.hbscr-cp__people.has-bios{grid-template-columns:1fr;gap:2rem}
.hbscr-cp__person{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1.1rem;align-items:start}
.hbscr-cp .hbscr-cp__face{width:72px!important;height:72px!important;border-radius:50%;object-fit:cover;display:grid;place-items:center;background:var(--cp-mist);border:1px solid var(--cp-line);font-family:var(--cp-display);font-size:1.4rem;color:var(--cp-ink2);margin:0!important}
.hbscr-cp__people.has-bios .hbscr-cp__face{width:96px!important;height:96px!important}
.hbscr-cp .hbscr-cp__where{font-size:.98rem;color:var(--cp-ink2);margin-top:.2rem}
.hbscr-cp__bio{margin-top:.7rem}
.hbscr-cp__bio > * + *{margin-top:.8rem}

.hbscr-cp__rail{position:relative}
.hbscr-cp__card{position:sticky;top:var(--hbscr-cp-top,110px);background:var(--cp-card);border:1px solid var(--cp-line);border-top:3px solid var(--cp-slate);padding:1.4rem 1.4rem 1.5rem}
.hbscr-cp .hbscr-cp__cardh{font-family:var(--cp-mono)!important;font-size:.74rem!important;font-weight:500!important;letter-spacing:.14em!important;text-transform:uppercase!important;color:var(--cp-ink2)!important;margin-bottom:.4rem!important}
.hbscr-cp__card dl div{padding:.7rem 0;border-bottom:1px solid var(--cp-line)}
.hbscr-cp__card dt{font-family:var(--cp-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--cp-ink2)}
.hbscr-cp .hbscr-cp__card dd{margin:.15rem 0 0;font-size:1rem;line-height:1.45}
.hbscr-cp__card dd strong{font-family:var(--cp-display);font-weight:400;font-size:1.35rem}
.hbscr-cp__card dd small{display:block;font-size:.9rem;color:var(--cp-ink2)}
.hbscr-cp__card dd small:empty{display:none}
.hbscr-cp__session{display:block;padding:.2rem 0}
.hbscr-cp__session + .hbscr-cp__session{margin-top:.5rem}
.hbscr-cp__session strong{display:block;font-size:1.12rem}
.hbscr-cp .hbscr-cp__opens{font-size:.92rem;color:var(--cp-ink2);margin-top:.7rem;text-align:center}

/* full-width bands */
.hbscr-cp__band{border-top:1px solid var(--cp-line);padding-block:clamp(3rem,6vw,4.4rem)}
.hbscr-cp__band.is-mist{background:var(--cp-mist)}
.hbscr-cp__cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);margin-top:1.6rem}
.hbscr-cp .hbscr-cp__costs{width:100%;border-collapse:collapse;border:0;margin:0;font-size:1rem}
.hbscr-cp__costs th,.hbscr-cp__costs td{text-align:left;padding:.75rem 0;border:0;border-bottom:1px solid var(--cp-line);vertical-align:top;background:none}
.hbscr-cp__costs th{font-weight:400}
.hbscr-cp__costs td{text-align:right;font-family:var(--cp-display);font-size:1.15rem;white-space:nowrap;padding-left:1rem}
.hbscr-cp__costs small{display:block;font-size:.88rem;color:var(--cp-ink2)}
.hbscr-cp__fund + .hbscr-cp__fund{margin-top:1.5rem}
.hbscr-cp__fund p{margin-top:.35rem}
.hbscr-cp .hbscr-cp__how{color:var(--cp-ink2)}
.hbscr-cp__more{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem;margin-top:1.6rem}
.hbscr-cp .hbscr-cp__more a{display:block;text-decoration:none;border-top:2px solid var(--cp-slate);padding-top:.9rem}
.hbscr-cp__more b{display:block;font-family:var(--cp-mono);font-weight:400;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cp-rose-ink)}
.hbscr-cp__more span{display:block;font-family:var(--cp-display);font-size:1.25rem;line-height:1.25;margin-top:.35rem}
.hbscr-cp .hbscr-cp__more a:hover span{text-decoration:underline;text-decoration-color:var(--cp-rose-ink);text-underline-offset:3px}
.hbscr-cp__more small{display:block;font-size:.92rem;color:var(--cp-ink2);margin-top:.3rem}
.hbscr-cp__ask{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem;align-items:end}
.hbscr-cp__ask p{color:var(--cp-ink2);text-align:right}

.hbscr-cp-missing{padding:1rem;border:1px dashed #9b5b56}

@media (max-width:860px){
 .hbscr-cp__hero.has-photo{min-height:min(88vh,700px)}
 .hbscr-cp__hero.has-photo::before{background:linear-gradient(0deg,rgba(27,39,44,.95) 0%,rgba(27,39,44,.9) 55%,rgba(27,39,44,.66) 85%,rgba(27,39,44,.52) 100%)}
 .hbscr-cp__grid{grid-template-columns:1fr;gap:2.4rem}
 .hbscr-cp__rail{order:-1}
 .hbscr-cp__card{position:static}
 .hbscr-cp__days{grid-template-columns:1fr;border-top:0}
 .hbscr-cp__day,.hbscr-cp__day + .hbscr-cp__day{display:grid;grid-template-columns:4.2rem 1fr;column-gap:1rem;padding:.75rem 0;border-right:0;border-top:1px solid var(--cp-line)}
 .hbscr-cp__day span{font-size:1.2rem;margin:0}
 .hbscr-cp__day small{grid-column:2}
 .hbscr-cp__plan li{grid-template-columns:1fr;gap:.2rem}
 .hbscr-cp__people,.hbscr-cp__cols,.hbscr-cp__more,.hbscr-cp__ask{grid-template-columns:1fr}
 .hbscr-cp__ask p{text-align:left}
}
@media print{
 .hbscr-cp__hero{min-height:0!important;color:#000;background:none!important;border-bottom:2px solid #000}
 .hbscr-cp__hero::before,.hbscr-cp .hbscr-cp__img,.hbscr-cp__row,.hbscr-cp__chipline{display:none!important}
 .hbscr-cp .hbscr-cp__h1,.hbscr-cp .hbscr-cp__sub,.hbscr-cp .hbscr-cp__with{color:#000!important}
 .hbscr-cp__card{position:static}
}

/* questions, answered: the course's own, then the Station-wide ones that fit it */
.hbscr-cp__faq{padding-block:0}
.hbscr-cp__faq .hbscr-cp__h2{max-width:41rem}
.hbscr-cp__faqgroup{max-width:46rem}
.hbscr-cp__faqgroup + .hbscr-cp__faqgroup{margin-top:2rem}
.hbscr-cp .hbscr-cp__faqgroup .hbscr-cp__h3{font-size:1.05rem!important;font-family:var(--cp-mono)!important;letter-spacing:.12em!important;text-transform:uppercase!important;color:var(--cp-rose-ink)!important;margin-bottom:.4rem!important}
.hbscr-cp__qa{border-bottom:1px solid var(--cp-line)}
.hbscr-cp__qa:first-of-type{border-top:2px solid var(--cp-slate)}
.hbscr-cp__qa summary{cursor:pointer;list-style:none;position:relative;padding:1rem 2.4rem 1rem 0;font-family:var(--cp-display);font-size:1.18rem;line-height:1.3;color:var(--cp-ink)}
.hbscr-cp__qa summary::-webkit-details-marker{display:none}
.hbscr-cp__qa summary::after{content:"+";position:absolute;right:.2rem;top:.85rem;font-family:var(--cp-mono);font-size:1.2rem;color:var(--cp-rose-ink)}
.hbscr-cp__qa[open] summary::after{content:"\2212"}
.hbscr-cp__qa summary:focus-visible{outline:3px solid var(--cp-rose);outline-offset:3px}
.hbscr-cp__qa-a{padding:0 0 1.2rem;color:var(--cp-ink2);max-width:41rem}
.hbscr-cp__qa-a p + p{margin-top:.7rem}

/* a room's note ("lectures", "lab, Tues/Thurs") beside its name in the glance box */
.hbscr-cp .hbscr-cp__card dd small.hbscr-cp__inline{display:inline;margin:0;font-size:.86em;color:var(--cp-ink2);font-style:italic}
