/* Teacher directory and profile pages (served by the API through the website's /teachers rewrite; see
   functions/src/services/teacherPublicProfile.js). Loaded after pages.css, same tokens. */
.tp-crumbs{font-size:13px;color:var(--ink-3);margin-bottom:22px}.tp-crumbs a{text-decoration:underline;text-underline-offset:3px}
.tp-hero{display:grid;grid-template-columns:auto 1fr;gap:clamp(20px,4vw,48px);align-items:center}
.tp-photo{width:clamp(130px,22vw,240px);height:auto;aspect-ratio:1;border-radius:50%;object-fit:cover;box-shadow:0 18px 40px -22px rgba(0,0,0,.45);border:6px solid var(--white);background:var(--gold-soft)}
.tp-photo.noimg,.tp-thumb.noimg{display:grid;place-items:center;font:600 clamp(40px,7vw,76px)/1 var(--font-brand);color:var(--gold-deep);background:linear-gradient(135deg,var(--gold-soft),#ffe38a)}
.tp-name{font-size:clamp(34px,6vw,64px);line-height:1.04;letter-spacing:-.028em;font-weight:600;margin:10px 0 6px}
.tp-sub{font-size:clamp(18px,2.4vw,24px);color:var(--ink-2)}
.tp-badges{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 22px}
.tp-badges span{background:var(--white);border:1px solid var(--line);border-radius:var(--r-pill);padding:6px 14px;font-weight:600;font-size:14px}
.tp-actions{display:flex;flex-wrap:wrap;gap:12px}
.tp-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:clamp(16px,2.4vw,28px)}
.tp-card{background:var(--canvas);border-radius:var(--r-card);padding:clamp(22px,3vw,36px)}
.tp-card h2{font-size:clamp(22px,2.6vw,28px);letter-spacing:-.02em;margin-bottom:14px}
.tp-list{list-style:none;padding:0;display:grid;gap:10px}
.tp-list li{padding-left:22px;position:relative;color:var(--ink-2);line-height:1.4}
.tp-list li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;border-radius:50%;background:var(--gold)}
.tp-cta{text-align:center}.tp-cta .h-lg,.tp-cta .lede{margin-left:auto;margin-right:auto}.tp-cta .cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.tp-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.tp-chip{background:var(--white);border:1px solid var(--line);border-radius:var(--r-pill);padding:8px 18px;font-weight:600;font-size:15px}.tp-chip:hover{background:var(--gold-soft)}
.tp-branch{scroll-margin-top:80px}.tp-branch+.tp-branch{margin-top:clamp(36px,6vw,64px)}
.tp-branch h2{font-size:clamp(26px,3.6vw,40px);letter-spacing:-.025em;margin-bottom:20px}
.tp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:clamp(14px,2vw,24px)}
.tp-tile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;background:var(--canvas);border-radius:var(--r-card);padding:24px 16px;transition:transform .3s cubic-bezier(.2,.8,.2,1),background .2s}
.tp-tile:hover{transform:translateY(-4px);background:var(--gold-wash)}
.tp-thumb{width:112px;height:auto;aspect-ratio:1;border-radius:50%;object-fit:cover;margin-bottom:10px;background:var(--gold-soft)}
.tp-thumb.noimg{font-size:38px}
.tp-tile-name{font-weight:600;font-size:18px;letter-spacing:-.015em}.tp-tile-sub{color:var(--ink-2);font-size:14px}.tp-tile-yrs{color:var(--gold-deep);font-weight:600;font-size:13px}
@media (max-width:620px){.tp-hero{grid-template-columns:1fr;justify-items:center;text-align:center}.tp-badges,.tp-actions{justify-content:center}}
/* Landing pages (lessons/*.html, made by tools/make_landing.js) */
.ll-faq{display:grid;gap:12px;max-width:820px}
.ll-faq details{background:var(--canvas);border-radius:20px;padding:4px 22px}
.ll-faq summary{cursor:pointer;font:600 18px/1.35 var(--font);padding:16px 0;list-style:none;display:flex;justify-content:space-between;gap:16px}
.ll-faq summary::-webkit-details-marker{display:none}.ll-faq summary::after{content:"+";font-size:24px;line-height:1;color:var(--gold-deep)}
.ll-faq details[open] summary::after{content:"−"}.ll-faq details p{padding:0 0 18px;color:var(--ink-2)}
.ll-prose{max-width:760px;color:var(--ink-2);font-size:18px;line-height:1.55}.ll-prose p+p{margin-top:14px}
.ll-h2{font-size:clamp(26px,3.6vw,40px);letter-spacing:-.025em;font-weight:600;margin-bottom:18px}
.ll-more{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}

/* Open hours and the directory's schedule filter */
.tp-days{list-style:none;padding:0;display:grid;gap:8px;max-width:640px}
.tp-day{display:flex;gap:16px;justify-content:space-between;align-items:baseline;background:var(--white);border:1px solid var(--line);border-radius:14px;padding:11px 16px;color:var(--ink-3)}
.tp-day b{min-width:6.5em;color:var(--ink-2)}.tp-day.on{border-color:var(--gold);background:var(--gold-wash);color:var(--ink)}.tp-day.on b{color:var(--ink)}.tp-day span{text-align:right}
.tp-fine{font-size:14px;color:var(--ink-3);max-width:640px;margin-top:14px}
.tp-tile-open{font-size:12.5px;color:var(--ink-3)}
.tp-tile[hidden],.tp-branch[hidden]{display:none}
.tp-filter{background:var(--canvas);border-radius:var(--r-card);padding:18px 20px;margin-top:26px;display:grid;gap:12px;max-width:760px}
.tp-filter[hidden]{display:none}.tp-filter-title{font-size:18px}
.tp-frow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.tp-frow>span{min-width:5.5em;font-weight:600;font-size:14px;color:var(--ink-2)}
.tp-frow .tp-chip{cursor:pointer;font-family:inherit}.tp-chip small{font-weight:400;color:var(--ink-3)}
.tp-chip[aria-pressed="true"]{background:var(--gold);border-color:var(--gold-press);color:var(--ink)}.tp-chip[aria-pressed="true"] small{color:var(--ink-2)}
.tp-frow select{font:inherit;padding:8px 12px;border-radius:12px;border:1px solid var(--line);background:var(--white)}
.tp-nomatch{margin-top:18px;color:var(--ink-2)}
@media (max-width:620px){.tp-day{flex-direction:column;gap:2px}.tp-day span{text-align:left}}
