/* /tutoring/ and /tutoring/book/ (redesign, 21 Oct 2026; the Claude Design
   canvas EUTz3XjvmYkAj4Vi5t5uEg is the spec). Every rule is scoped to a tz-
   class, so no other page changes. Button rules repeat the element and the
   .tz scope: the lm layer colours every a:not(.lm-btn) moss at (0,2,1). */
body.tz-page { background:#f4f6ec; }
.tz { font-family:Archivo,Helvetica,Arial,sans-serif; font-size:17px; line-height:1.6; color:#111111; -webkit-font-smoothing:antialiased; }
.tz *, .tz *::before, .tz *::after { box-sizing:border-box; }
.tz a:not(.tz-btn) { color:#3f5a0a; }
.tz a:not(.tz-btn):hover { color:#111111; }
.tz-wrap { max-width:1200px; margin:0 auto; padding-left:clamp(20px,5vw,56px); padding-right:clamp(20px,5vw,56px); }
.tz-sec { padding:72px 0; border-top:2px solid #111111; }
.tz-sec--white { background:#ffffff; }
.tz-stack { display:flex; flex-direction:column; gap:28px; }
.tz-head { display:flex; flex-direction:column; gap:12px; max-width:46rem; }

/* ---- type ---- */
.tz-h1 { font-weight:900; letter-spacing:-0.04em; line-height:0.98; font-size:clamp(44px,5.6vw,76px); margin:0; text-wrap:balance; hyphens:manual; }
.tz-h2 { font-weight:900; letter-spacing:-0.03em; line-height:1.02; font-size:clamp(32px,3.8vw,48px); margin:0; text-wrap:balance; }
.tz-h3 { font-weight:800; letter-spacing:-0.01em; line-height:1.15; font-size:22px; margin:0; }
.tz-eyebrow { font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#555555; margin:0; }
.tz-mark { background:#c5f135; color:#111111; padding:0 .06em; -webkit-box-decoration-break:clone; box-decoration-break:clone; }
.tz-lead { font-size:19px; line-height:1.55; color:#333333; margin:0; text-wrap:pretty; }
.tz-muted { color:#555555; }
.tz-small { font-size:14px; line-height:1.5; }
.tz-tag { display:inline-block; padding:5px 10px; background:#c5f135; color:#111111; font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; line-height:1.2; white-space:nowrap; }
.tz-tag--ink { background:#111111; color:#ffffff; }
.tz-pill { display:inline-flex; align-items:center; padding:3px 8px; background:#c5f135; border:2px solid #111111; color:#111111; font-size:13px; font-weight:800; line-height:1.2; white-space:nowrap; }
.tz-vh { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.tz-tick { display:flex; gap:10px; align-items:flex-start; margin:0; color:#333333; }
.tz-tick::before { content:""; flex:none; width:10px; height:10px; margin-top:8px; background:#c5f135; border:2px solid #111111; }
.tz-ticks { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:8px; }

/* ---- buttons ---- */
.tz a.tz-btn, .tz button.tz-btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:52px; padding:0 24px; border:2px solid #111111; border-radius:0; font-family:inherit; font-weight:700; font-size:17px; line-height:1.2; text-decoration:none; color:#111111; background:#ffffff; cursor:pointer; text-align:center; }
.tz a.tz-btn:hover, .tz button.tz-btn:hover { color:#111111; background:#fbfbf7; }
.tz a.tz-btn:active, .tz button.tz-btn:active { transform:translateY(2px); }
.tz a.tz-btn--lime, .tz button.tz-btn--lime { background:#c5f135; box-shadow:0 4px 0 #111111; }
.tz a.tz-btn--lime:hover, .tz button.tz-btn--lime:hover { background:#b8e62e; }
.tz a.tz-btn--ink, .tz button.tz-btn--ink { background:#111111; color:#ffffff; }
.tz a.tz-btn--ink:hover, .tz button.tz-btn--ink:hover { background:#000000; color:#ffffff; }
.tz a.tz-btn--ghost, .tz button.tz-btn--ghost { background:transparent; }
.tz a.tz-btn--ghost:hover, .tz button.tz-btn--ghost:hover { background:#111111; color:#ffffff; }
.tz .tz-btn--lg { min-height:60px; padding:0 30px; font-size:18px; }
.tz button.tz-btn:disabled { opacity:.45; cursor:not-allowed; box-shadow:none; transform:none; }
.tz-arrow { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border:2px solid #111111; background:#ffffff; color:#111111; cursor:pointer; padding:0; flex:none; border-radius:0; }
.tz-arrow:hover { background:#111111; color:#ffffff; }
.tz-arrow:active { transform:translateY(2px); }
.tz-nav2 { display:flex; align-items:center; gap:8px; }

/* ---- header: logo, centred section links, one button ---- */

/* ---- hero ---- */
.tz-hero { padding:64px 0; }
.tz-hero__row { display:flex; flex-wrap:wrap; gap:48px; align-items:flex-start; }
.tz-hero__main { flex:1 1 520px; min-width:0; display:flex; flex-direction:column; gap:22px; }
.tz-cta { display:flex; flex-wrap:wrap; gap:14px 22px; align-items:center; }
.tz-cta__side { display:inline-flex; align-items:center; gap:10px; flex-wrap:wrap; font-weight:700; }
.tz-group { margin:0; }
.tz-group > summary { display:inline-flex; align-items:center; gap:8px; padding:4px 0; font-size:16px; font-weight:700; cursor:pointer; list-style:none; text-decoration:underline; text-underline-offset:4px; text-decoration-thickness:1px; }
.tz-group > summary::-webkit-details-marker { display:none; }
.tz-group > summary svg { transition:transform .3s ease; }
.tz-group[open] > summary svg { transform:rotate(180deg); }
.tz-group__box { margin-top:10px; padding:18px; background:#ffffff; border:2px solid #111111; display:flex; flex-direction:column; gap:12px; max-width:34rem; }
.tz-group[open] .tz-group__box { animation:tz-drop .3s ease; }
@keyframes tz-drop { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }
.tz-proof { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr)); gap:18px 28px; border-top:1px solid #dddddd; padding-top:20px; }
.tz-proof__t { display:flex; align-items:center; gap:6px; font-weight:800; font-size:18px; line-height:1.3; }

/* ---- tutor carousel ---- */
.tz-card { background:#ffffff; border:2px solid #111111; box-shadow:0 6px 0 #111111; }
.tz-tutors { flex:0 1 380px; min-width:min(100%,300px); padding:24px; display:flex; flex-direction:column; gap:16px; }
.tz-tutors__top { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:44px; }
.tz-tview { overflow:hidden; touch-action:pan-y; -webkit-user-select:none; user-select:none; }
.tz-tview.is-multi { cursor:grab; }
.tz-ttrack { display:flex; will-change:transform; transition:transform 520ms cubic-bezier(.22,.9,.24,1); }
.tz-ttrack.is-dragging { transition:none; }
.tz-tslide { flex:0 0 100%; min-width:0; display:flex; flex-direction:column; gap:14px; transition:opacity .45s ease; }
.tz-tslide[aria-hidden="true"] { opacity:.2; }
.tz-tslide__who { display:flex; gap:16px; align-items:center; }
.tz-tslide__photo { width:88px; height:88px; object-fit:cover; border:2px solid #111111; flex:none; pointer-events:none; }
.tz-tslide__ph { width:88px; height:88px; flex:none; display:flex; align-items:center; justify-content:center; background:#c5f135; border:2px solid #111111; font-weight:900; font-size:40px; letter-spacing:-0.04em; line-height:1; }
.tz-tags { display:flex; flex-wrap:wrap; gap:8px; }

/* ---- prices ---- */
.tz-salebar { display:flex; flex-wrap:wrap; align-items:center; gap:12px 18px; padding:14px 18px; background:#c5f135; border:2px solid #111111; }
.tz-salebar__fig { font-weight:900; font-size:30px; letter-spacing:-0.03em; line-height:1; }
.tz-salebar__text { display:flex; flex-direction:column; gap:2px; line-height:1.4; }
.tz-tiers { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr)); gap:26px 22px; align-items:stretch; padding-top:14px; }
.tz-tier { position:relative; padding:30px 26px 26px; display:flex; flex-direction:column; gap:12px; }
.tz-tier.is-best { box-shadow:0 6px 0 #111111, inset 0 6px 0 #c5f135; }
.tz-tier__head { display:flex; align-items:center; gap:10px; min-height:26px; }
.tz-price { font-weight:900; letter-spacing:-0.04em; line-height:1; font-size:clamp(46px,4.6vw,60px); }
.tz-strike { text-decoration:line-through; color:#555555; font-weight:600; font-size:22px; }
.tz-stamp { position:absolute; top:-18px; right:18px; transform:rotate(-6deg); background:#c5f135; border:2px solid #111111; box-shadow:0 4px 0 #111111; padding:7px 11px; font-weight:900; font-size:22px; letter-spacing:-0.02em; line-height:1; }
.tz-tier .tz-btn { margin-top:auto; }

/* ---- reviews strip ---- */
.tz-reviews { display:flex; flex-direction:column; gap:16px; border-top:1px solid #dddddd; padding-top:28px; }
.tz-reviews__top { display:flex; justify-content:space-between; align-items:flex-end; gap:12px 24px; }
.tz-reviews__top > div:first-child { flex:1 1 auto; max-width:760px; }
.tz-reviews__top .tz-nav2 { flex:none; }
.tz-strip { position:relative; display:flex; gap:14px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; padding:2px 2px 8px; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.tz-strip::-webkit-scrollbar { display:none; }
.tz-rcard { position:relative; flex:0 0 min(320px,84%); scroll-snap-align:start; display:flex; flex-direction:column; gap:10px; padding:20px; background:#ffffff; border:2px solid #111111; margin:0; }
.tz-rcard p { margin:0; color:#333333; line-height:1.55; font-size:16px; display:-webkit-box; -webkit-line-clamp:6; -webkit-box-orient:vertical; overflow:hidden; }
.tz-rcard footer { margin-top:auto; font-size:14px; font-weight:700; }
.tz-stars { display:flex; gap:2px; }

/* ---- how it works, FAQ ---- */
.tz-how { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr)); gap:24px 32px; margin:0; padding:0; list-style:none; }
.tz-how li { display:flex; gap:16px; align-items:flex-start; }
.tz-how .tz-n { flex:none; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; background:#111111; color:#ffffff; font-weight:900; font-size:20px; }
.tz-how .tz-h3 + p { margin:6px 0 0; color:#333333; }
.tz-faq-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr)); gap:40px; align-items:start; }
.tz-faq { border-bottom:1px solid #dddddd; }
.tz-faq details { border-top:1px solid #dddddd; padding:18px 0; }
.tz-faq summary { cursor:pointer; font-weight:800; font-size:19px; line-height:1.3; list-style:none; display:flex; justify-content:space-between; gap:16px; align-items:center; }
.tz-faq summary::-webkit-details-marker { display:none; }
.tz-faq summary::after { content:"+"; flex:none; font-weight:400; font-size:28px; line-height:1; color:#3f5a0a; }
.tz-faq details[open] summary::after { content:"−"; }
.tz-faq details p { margin:12px 0 0; max-width:42rem; color:#333333; line-height:1.6; }
.tz-links { display:flex; flex-wrap:wrap; gap:40px; font-size:14px; }
.tz-links div { display:flex; flex-direction:column; gap:8px; }

/* ---- free lesson (the cal.com picker keeps its lm- styles) ---- */
/* The calendar takes the full width: cal.com puts the times beside the month
   only from about 800px, and in a narrower box stacks everything 2,000px tall. */
.tz-free { display:flex; flex-direction:column; gap:32px; }
.tz-free__text { max-width:760px; display:flex; flex-direction:column; gap:20px; }
.tz-free__cal { min-width:0; padding:26px; }
.tz-review { display:flex; flex-direction:column; gap:10px; padding:20px; background:#ffffff; border:2px solid #111111; margin:0; }
.tz-review p { margin:0; color:#333333; line-height:1.55; }
.tz-review footer { font-size:14px; font-weight:700; }

/* The free lesson's subjects are links into the account since Build 2 (28 Oct 2026). */
[data-lm-free] .lm-opt { text-decoration: none; color: inherit; cursor: pointer; }
[data-lm-free] .lm-opt:hover, [data-lm-free] .lm-opt:focus-visible { background: #c5f135; }
/* ---- /tutoring/book/: the buy form ---- */
.tz-book { display:flex; flex-wrap:wrap; gap:32px; align-items:flex-start; }
.tz-book__form { flex:1 1 600px; min-width:0; padding:28px; display:flex; flex-direction:column; gap:28px; }
.tz-book__sum { flex:0 1 360px; min-width:min(100%,300px); padding:26px; display:flex; flex-direction:column; gap:14px; }
.tz fieldset { border:0; margin:0; padding:0; min-width:0; }
.tz legend { padding:0; margin:0 0 10px; }
.tz-chips { display:flex; flex-wrap:wrap; gap:10px; }
.tz-chip { position:relative; display:inline-flex; }
.tz-chip[hidden] { display:none; }
.tz-chip input, .tz-opt input { position:absolute; opacity:0; width:1px; height:1px; }
.tz-chip span { display:inline-flex; align-items:center; min-height:44px; padding:0 16px; border:2px solid #111111; background:#ffffff; color:#111111; font-weight:700; font-size:15px; cursor:pointer; }
.tz-chip input:checked + span { background:#111111; color:#ffffff; }
.tz-chip--ask { text-decoration:none; }
.tz-chip--ask em { margin-left:8px; padding:3px 6px; background:#c5f135; color:#111111; font-style:normal; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.tz-chip input:focus-visible + span, .tz-opt input:focus-visible + .tz-opt__body { outline:3px solid #3f5a0a; outline-offset:2px; }
.tz-opts { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr)); gap:12px; }
.tz-opt { position:relative; display:flex; }
.tz-opt__body { flex:1; display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:16px; min-height:132px; border:2px solid #111111; background:#ffffff; color:#111111; cursor:pointer; }
.tz-opt__top { display:flex; width:100%; justify-content:space-between; align-items:center; gap:6px 8px; flex-wrap:wrap; font-weight:800; font-size:16px; }
.tz-opt__top > span:first-child { white-space:nowrap; }
.tz-opt__price { display:flex; align-items:baseline; gap:8px; font-weight:900; font-size:32px; letter-spacing:-0.03em; line-height:1.05; }
.tz-opt__was { font-weight:600; font-size:16px; letter-spacing:0; text-decoration:line-through; color:#555555; }
.tz-opt__pct { align-self:center; padding:2px 6px; background:#c5f135; border:2px solid #111111; color:#111111; font-weight:900; font-size:13px; letter-spacing:0; line-height:1.2; }
.tz-opt__note { font-size:14px; line-height:1.4; color:#555555; }
.tz-opt input:checked + .tz-opt__body { background:#111111; color:#ffffff; }
.tz-opt input:checked + .tz-opt__body .tz-opt__note, .tz-opt input:checked + .tz-opt__body .tz-opt__was { color:#dddddd; }
.tz-field { display:flex; flex-direction:column; gap:6px; font-weight:700; font-size:15px; }
.tz-field em { font-style:normal; font-weight:600; color:#555555; }
.tz-field input { min-height:52px; padding:0 14px; border:2px solid #111111; border-radius:0; font-family:inherit; font-weight:500; font-size:17px; color:#111111; background:#ffffff; width:100%; }
.tz-field input:focus { outline:3px solid #c5f135; outline-offset:0; }
.tz-field .tz-hint { font-weight:500; font-size:14px; color:#555555; }
.tz-agree { display:flex; gap:12px; align-items:flex-start; padding:14px 16px; border:2px solid #111111; background:#fbfbf7; cursor:pointer; font-size:15px; line-height:1.5; font-weight:500; }
.tz-agree input { flex:none; width:22px; height:22px; margin:1px 0 0; accent-color:#111111; }
.tz-sum-price { font-weight:900; letter-spacing:-0.04em; line-height:1; font-size:48px; }

/* ---- small pieces ---- */
.tz-strong { font-weight:700; line-height:1.45; }
.tz-moss { color:#3f5a0a; font-weight:700; }
.tz-gap { margin-top:10px; }
.tz .tz-btn--sm { min-height:46px; font-size:15px; align-self:flex-start; }
.tz-tutors__foot { border-top:1px solid #dddddd; padding-top:14px; }
.tz-tslide__line { color:#333333; }
.tz-tier__price { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.tz-tier__per { font-weight:700; line-height:1.4; }
.tz-review .tz-muted { font-weight:600; }
.tz-fields { display:flex; flex-direction:column; gap:16px; }
.tz-send { display:flex; flex-direction:column; gap:14px; }
.tz-sum-ticks { border-top:1px solid #dddddd; padding-top:14px; font-size:15px; }
.tz-terms { max-width:60rem; }
.tz-sec--first { border-top:0; padding-top:52px; }
.tz-sec--links { padding:44px 0; }
.tz-final { display:flex; flex-direction:column; gap:24px; align-items:flex-start; }
.tz-final__head { max-width:22ch; }
.tz-h1--book { font-size:clamp(36px,4.4vw,58px); }
.tz-field textarea { min-height:120px; padding:12px 14px; border:2px solid #111111; border-radius:0; font-family:inherit; font-size:17px; color:#111111; background:#ffffff; width:100%; }

/* ---- phones ---- */
@media (max-width:860px) {
  .tz-hero { padding:32px 0 48px; }
  .tz-sec { padding:52px 0; }
  .tz-lead { font-size:17px; }
}
@media (max-width:600px) {
  .tz-free__cal { padding:16px 10px; }
  .tz-reviews__top { flex-wrap:wrap; }
  .tz-reviews__top > div:first-child { flex-basis:100%; }
  .tz-reviews__top .tz-nav2 { margin-left:auto; }
}
@media (min-width:861px) { body.tz-page .lm-bar { display:none; } }

/* ---- a friend's referral link (Build 1, 26 Oct 2026; practice/referral.js) ---- */
.tz-ref { background:#c5f135; border-bottom:2px solid #111111; padding:14px 0; font-size:17px; line-height:1.45; }
.tz-ref b { font-weight:900; }
.tz-ref-note { background:#f4f6ec; border-left:3px solid #c5f135; padding:8px 12px; margin:0 0 12px; }
