*{box-sizing:border-box}
body.bjt-washi{
  margin:0;min-height:100vh;color:var(--tl-ink);font:18px/1.7 var(--tl-font-ui);
  background:linear-gradient(100deg,rgba(247,244,235,.60),rgba(247,244,235,.9) 48%,rgba(247,244,235,.72)),url('/assets/learner-design/wave-sakura.png') left top/cover scroll no-repeat;
}
html[data-mode=dark] body.bjt-washi,html[data-theme=dark] body.bjt-washi{
  background:linear-gradient(100deg,rgba(5,18,30,.8),rgba(5,18,30,.93) 48%,rgba(5,18,30,.8)),url('/assets/learner-design/wave-sakura.png') left top/cover scroll no-repeat;
}
@font-face{font-family:BrandScript;src:url('/assets/learner-design/brand-script.woff2') format('woff2');font-weight:700;font-display:swap}
.bjt-header{
  width:min(1120px,calc(100% - 32px));margin:16px auto 0;min-height:64px;padding:9px 14px;
  display:flex;align-items:center;gap:16px;background:var(--tl-glass);border:1px solid var(--tl-glass-border);
  border-radius:18px;backdrop-filter:blur(var(--tl-blur));box-shadow:0 12px 34px rgba(23,40,51,.08);
}
.bjt-brand{margin-right:auto;display:inline-flex;align-items:center;gap:12px;color:var(--tl-ink);text-decoration:none}
.bjt-brand .seal{width:40px;height:42px;box-sizing:border-box;padding:5px 9px 4px;background:#ad665b;color:#fff9ed;border-radius:3px;box-shadow:inset 0 0 0 3px #ad665b,inset 0 0 0 4px rgba(255,247,230,.48);writing-mode:vertical-rl;white-space:nowrap;font:17px/1 var(--tl-font-jp);letter-spacing:1px;transform:rotate(-2deg)}
.bjt-brand .name{display:block;position:relative;padding-bottom:10px;font:700 33px/1.18 BrandScript,Georgia,serif}
.bjt-brand .name::after{content:'NIHONGO';position:absolute;left:3px;bottom:0;font:600 8px/1 var(--tl-font-ui);letter-spacing:.29em;color:var(--tl-ink-soft)}
.bjt-header button,.bjt-document a.bjt-primary,.bjt-document a.bjt-secondary,.bjt-dialog button,.bjt-dialog select{
  min-height:44px;display:inline-flex;align-items:center;padding:8px 15px;border:1px solid var(--tl-hair);
  border-radius:var(--tl-radius-control);background:var(--tl-paper-soft);color:var(--tl-ink);
  font:600 16px var(--tl-font-ui);text-decoration:none;
}
.bjt-document{
  position:relative;max-width:980px;margin:24px auto 56px;padding:clamp(24px,5vw,56px);overflow:hidden;
  background:linear-gradient(135deg,var(--tl-glass-strong),var(--tl-paper));border:1px solid var(--tl-glass-border);
  border-radius:var(--tl-radius-surface);box-shadow:var(--tl-shadow);backdrop-filter:blur(var(--tl-blur));
}
.bjt-document h1{max-width:17ch;margin:10px 0 16px;font:600 clamp(36px,6vw,62px)/1.12 var(--tl-font-jp);letter-spacing:-.035em}
.bjt-document h2{margin:0 0 12px;font:600 clamp(24px,3vw,31px)/1.35 var(--tl-font-jp)}
.bjt-document .eyebrow{margin:0;color:var(--tl-seal);font:700 12px/1.4 var(--tl-font-mono);letter-spacing:.13em}
.bjt-lede{max-width:62ch;color:var(--tl-ink-soft);font-size:20px}
.bjt-start{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 34px}
.bjt-document a.bjt-primary{min-height:50px;background:var(--tl-ink);color:#fffaf0;border-color:transparent}
.bjt-document a.bjt-primary:hover,.bjt-document a.bjt-primary:focus-visible{background:color-mix(in srgb,var(--tl-ink) 88%,var(--tl-focus));color:#fffaf0}
html[data-mode=dark] .bjt-document a.bjt-primary,html[data-theme=dark] .bjt-document a.bjt-primary{background:var(--tl-seal);color:#172833}
html[data-mode=dark] .bjt-document a.bjt-primary:hover,html[data-mode=dark] .bjt-document a.bjt-primary:focus-visible,html[data-theme=dark] .bjt-document a.bjt-primary:hover,html[data-theme=dark] .bjt-document a.bjt-primary:focus-visible{background:color-mix(in srgb,var(--tl-seal) 88%,white);color:#172833}
.bjt-document section{margin:0;padding:28px 0;border-top:1px solid var(--tl-hair);border-bottom:0}
.programme-lessons{margin:0;padding:0;list-style:none;counter-reset:bjt}
.programme-lessons li{position:relative;counter-increment:bjt;padding:18px 0 18px 54px;border-top:1px solid var(--tl-hair)}
.programme-lessons li::before{content:'0' counter(bjt);position:absolute;left:0;top:22px;color:var(--tl-seal);font:700 12px var(--tl-font-mono)}
.programme-lessons a{display:inline-block;color:var(--tl-ink);font:600 21px/1.45 var(--tl-font-jp);text-underline-offset:5px}
.programme-lessons p{margin:4px 0 0;color:var(--tl-ink-soft)}
.bjt-planned,.bjt-source{border-top:1px solid var(--tl-hair);padding:10px 0}
.bjt-planned summary,.bjt-source summary{min-height:52px;padding:10px 0;cursor:pointer;font-weight:700}
.bjt-planned summary span{float:right;color:var(--tl-ink-soft);font-size:16px;font-weight:500}
.bjt-subnav{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 30px;padding-bottom:16px;border-bottom:1px solid var(--tl-hair)}
.bjt-subnav a{min-height:44px;display:inline-flex;align-items:center;color:var(--tl-ink);text-underline-offset:5px}
.bjt-dialog{width:min(620px,calc(100% - 32px));padding:26px;border:1px solid var(--tl-glass-border);border-radius:var(--tl-radius-panel);background:var(--tl-glass-strong);color:var(--tl-ink);font:17px/1.7 var(--tl-font-ui);backdrop-filter:blur(var(--tl-blur))}
.bjt-dialog::backdrop{background:#00132288}.bjt-dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px}
:focus-visible{outline:3px solid var(--tl-focus);outline-offset:3px}
@media(max-width:600px){
  body.bjt-washi{background-position:30% top}.bjt-header{width:calc(100% - 20px);margin-top:10px}.bjt-brand .seal{width:36px;height:39px;font-size:15px;padding-inline:8px}.bjt-brand .name{font-size:27px}.bjt-header>span{display:none}
  .bjt-document{margin:12px 10px 34px;padding:24px 19px;border-radius:22px}.bjt-document h1{font-size:40px}.bjt-start{display:grid}.bjt-start a{width:100%}.programme-lessons li{padding-left:38px}.programme-lessons a{font-size:19px}.bjt-planned summary span{float:none;display:block}.bjt-subnav{gap:10px 16px}
}
@media(prefers-reduced-transparency:reduce){.bjt-header,.bjt-document,.bjt-dialog{backdrop-filter:none;background:var(--tl-paper)}}

/* Programme V2: learner decision first; planning and source detail stay secondary. */
.bjt-document .bjt-hero{position:relative;margin:0;padding:4px 0 26px;border:0}
.bjt-hero::after{content:'仕事';position:absolute;right:2px;top:0;color:color-mix(in srgb,var(--tl-seal) 12%,transparent);font:88px/1 var(--tl-font-shodo);pointer-events:none}
.bjt-hero>*{position:relative;z-index:1}.bjt-availability{margin:10px 0 0;color:var(--tl-ink-soft);font-size:15px}.bjt-availability strong{color:var(--tl-ink)}
.bjt-brand{min-height:var(--tl-control-min)}.bjt-start{margin:18px 0 0}.bjt-document a.bjt-secondary{background:transparent}
#bjt-open-lessons{scroll-margin-top:20px}.programme-lessons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:34px}.programme-lessons li{min-width:0}.programme-lessons a{min-height:var(--tl-control-min);display:flex;align-items:center;font-size:19px}.programme-lessons p{font-size:15px;line-height:1.55}
.bjt-study{border-top:1px solid var(--tl-hair);padding:10px 0}.bjt-study summary{min-height:52px;padding:10px 0;cursor:pointer;font-weight:700}.bjt-study ol{padding-left:24px}
@media(max-width:700px){.bjt-hero::after{font-size:64px;top:6px}.bjt-document .bjt-hero{padding-bottom:22px}.programme-lessons{grid-template-columns:1fr}.bjt-availability{max-width:26ch}.bjt-document h1{max-width:11ch}.bjt-start{gap:8px}.bjt-start a{justify-content:center;text-align:center}.programme-lessons p{font-size:14px}}

/* BJT entry V3: one business situation before the curriculum list. */
.bjt-entry{max-width:1040px}.bjt-entry .bjt-entry-hero{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(0,1.22fr);gap:clamp(26px,5vw,62px);align-items:start;margin:0;padding:0 0 26px;border:0}.bjt-entry-copy{padding-top:8px}.bjt-entry .bjt-entry-copy h1{max-width:11ch;margin:7px 0 12px;font-size:clamp(38px,4.5vw,52px);line-height:1.08}.bjt-entry .bjt-lede{max-width:27ch;margin:0;font-size:18px}.bjt-entry .bjt-availability{margin:14px 0 18px}.bjt-entry .bjt-primary{width:100%;justify-content:center;text-align:center}
.bjt-business-sample{position:relative;margin:0;padding:20px 22px;border:1px solid color-mix(in srgb,var(--tl-seal) 24%,var(--tl-hair));border-radius:var(--tl-radius-panel);background:linear-gradient(150deg,var(--tl-paper-soft),var(--tl-wash));overflow:hidden}.bjt-business-sample::after{content:'電話';position:absolute;right:14px;top:12px;color:color-mix(in srgb,var(--tl-seal) 11%,transparent);font:58px/1 var(--tl-font-shodo);pointer-events:none}.sample-label{position:relative;z-index:1;margin:0;color:var(--tl-seal);font:800 11px/1.4 var(--tl-font-mono);letter-spacing:.14em}.sample-role{position:relative;z-index:1;margin:5px 0 12px;color:var(--tl-ink);font-weight:800}.bjt-business-sample blockquote{position:relative;z-index:1;margin:0;padding:13px 0 13px 18px;border-left:3px solid var(--tl-seal);color:var(--tl-ink);font:600 clamp(19px,2.2vw,25px)/1.65 var(--tl-font-jp)}.sample-response{margin-top:14px;padding-top:12px;border-top:1px solid var(--tl-hair)}.sample-response span{color:var(--tl-sepia);font:800 11px var(--tl-font-mono);letter-spacing:.12em}.sample-response p{margin:5px 0;color:var(--tl-ink);font:600 18px/1.65 var(--tl-font-jp)}.sample-response small{display:block;color:var(--tl-ink-soft);font-size:13px}.bjt-business-sample figcaption{margin-top:12px;color:var(--tl-ink-soft);font-size:12px}
.bjt-entry>details{margin:0;border-top:1px solid var(--tl-hair);padding:6px 0}.bjt-entry>details summary{min-height:52px;display:flex;align-items:center;cursor:pointer;font-weight:800}.programme-lessons.compact{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}.programme-lessons.compact li{min-height:54px;padding:8px 0 8px 38px}.programme-lessons.compact a{font-size:16px;line-height:1.4}.planned-groups section{margin:0;padding:14px 0;border-top:1px solid var(--tl-hair)}.planned-groups h3{margin:0 0 5px;font-size:17px}.planned-groups p{margin:0;color:var(--tl-ink-soft);font-size:14px}.bjt-entry .bjt-source ol{padding-left:22px}
@media(max-width:700px){.bjt-entry .bjt-entry-hero{grid-template-columns:1fr;gap:16px}.bjt-entry-copy{padding-top:0}.bjt-entry .bjt-entry-copy h1{max-width:12ch;font-size:36px}.bjt-entry .bjt-lede{font-size:16px}.bjt-entry .bjt-availability{margin:10px 0 12px}.bjt-business-sample{padding:16px}.bjt-business-sample::after{font-size:44px}.bjt-business-sample blockquote{padding:10px 0 10px 13px;font-size:18px;line-height:1.55}.sample-response p{font-size:16px;line-height:1.55}.programme-lessons.compact{grid-template-columns:1fr}.programme-lessons.compact a{font-size:16px}}

/* V4: source-backed phone/calendar/forwarding diagram; long Japanese stays closed. */
.bjt-business-sample::after{display:none}.bjt-business-sample h2{position:relative;z-index:1;max-width:34ch;margin:6px 0 18px;color:var(--tl-ink);font:650 21px/1.4 var(--tl-font-ui)}.bjt-call-flow{display:grid;grid-template-columns:minmax(0,1fr) 20px minmax(0,1fr) 20px minmax(0,1fr);gap:8px;align-items:center;padding:14px 0;border-block:1px solid var(--tl-hair)}.bjt-call-flow>i{color:var(--tl-seal);font-style:normal;font-weight:900;text-align:center}.flow-step{min-width:0;text-align:center}.flow-step svg{display:block;width:42px;height:42px;margin:0 auto 8px;color:var(--tl-seal)}.flow-step svg path{fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.flow-step span,.flow-step strong{display:block}.flow-step span{color:var(--tl-ink-soft);font-size:12px}.flow-step strong{margin-top:3px;color:var(--tl-ink);font-size:14px;line-height:1.35}.sample-solution{margin-top:12px;border-top:0}.sample-solution summary{min-height:46px;display:flex;align-items:center;color:var(--tl-seal);font-weight:800}.solution-vi{margin:0 0 10px;color:var(--tl-ink);font-weight:750}.source-dialogue{padding:10px 0 0;border-top:1px solid var(--tl-hair)}.source-dialogue p{margin:7px 0;color:var(--tl-ink-soft);font:500 15px/1.65 var(--tl-font-jp)}
@media(max-width:700px){.bjt-business-sample h2{margin-bottom:12px;font-size:18px}.bjt-call-flow{grid-template-columns:1fr;gap:5px;padding:10px 0}.bjt-call-flow>i{transform:rotate(90deg)}.flow-step{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;column-gap:10px;text-align:left}.flow-step svg{grid-row:1/3;width:36px;height:36px;margin:0}.flow-step span{align-self:end}.flow-step strong{align-self:start}.sample-solution summary{min-height:44px}}

/* The business diagram is illustrative; it must not cover adjacent controls. */
.bjt-call-flow,.bjt-call-flow *{pointer-events:none}
