/* プロフィール page */
.profile { display: flex; flex-direction: column; }
.profile .eyebrow { font-size: 11px; letter-spacing: 2px; }
.profile .title-en { font-size: 28px; font-weight: 700; line-height: 1.5; }
.profile .title-jp { font-weight: 500; line-height: 1.95; }

/* Intro */
.page-intro { padding: 32px var(--gutter); display: flex; flex-direction: column; gap: 16px; }
.crumbs { font-size: 11px; color: var(--muted); white-space: pre; }
.crumbs a { color: var(--muted); text-decoration: none; }
.crumbs a:hover { text-decoration: underline; }
.page-title { display: flex; flex-direction: column; gap: 12px; }
.page-title .title-jp { font-size: 20px; }
.lead { font-size: 14px; line-height: 1.95; }

/* Basic info + fields */
.card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
.basics { padding: 0 var(--gutter) 32px; display: flex; gap: 24px; align-items: flex-start; }
.basic-info { width: 420px; flex-shrink: 0; padding: 20px; display: flex; flex-direction: column; gap: 16px; }
.name-block { display: flex; flex-direction: column; gap: 8px; }
.name-block .kana { font-size: 11px; line-height: 1.95; color: var(--muted); }
.basic-info .person-name { display: flex; gap: 16px; align-items: baseline; flex-wrap: wrap; font-weight: 400; }
.basic-info .person-name .jp { font-size: 24px; font-weight: 700; letter-spacing: 2px; }
.basic-info .person-name .en { font-size: 18px; line-height: 1.1; }
.basic-info hr { border: 0; height: 1px; background: var(--line); margin: 0; }
.info-row { display: flex; gap: 30px; align-items: flex-start; margin: 0; }
.info-row dt { width: 95px; flex-shrink: 0; font-size: 11px; line-height: 1.95; color: var(--muted); }
.info-row dd { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.v15 { font-size: 15px; line-height: 1.95; }
.v14 { font-size: 14px; line-height: 1.95; }
.v13 { font-size: 13px; line-height: 1.95; }

.fields { flex: 1 1 0; min-width: 0; padding: 20px; display: flex; flex-direction: column; gap: 16px; }
.fields-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.fields-head h2 { font-size: 16px; }
.fields-head p { font-size: 11px; line-height: 1.95; color: var(--muted); }
.field-list { display: flex; gap: 24px; align-items: flex-start; }
.field { flex: 1 1 0; min-width: 0; padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.field .en { font-size: 16px; font-weight: 700; }
.field h3 { font-size: 18px; font-weight: 500; line-height: 1.95; }
.field .desc { font-size: 14px; line-height: 1.95; }

/* Academic path / Teaching career */
.history { padding: 32px var(--gutter); display: flex; gap: 24px; align-items: flex-start; }
.history-teaching { padding-top: 0; }
.history-head { width: 260px; flex-shrink: 0; display: flex; flex-direction: column; gap: 18px; }
.history-head .title-jp { font-size: 18px; }
.history-head .note { font-size: 13px; line-height: 1.95; }
.timeline { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; }
.history-academic .timeline { border-bottom: 1px solid var(--line); }
.history-teaching .timeline { gap: 22px; }
.tl-row { width: 100%; border-top: 1px solid var(--line); padding: 24px 0; display: flex; gap: 40px; align-items: flex-start; }
.tl-row .period { width: 240px; flex-shrink: 0; font-family: "Inter", "Noto Sans JP", sans-serif; font-size: 13px; line-height: 1.7; }
.tl-body { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.tl-body h3 { font-size: 18px; font-weight: 500; line-height: 1.95; }
.tl-body p { font-size: 14px; line-height: 1.95; }

/* Guide button variant (50px, square corners, larger arrow) */
.btn-guide { height: 50px; min-width: 194px; gap: 32px; border-radius: 0; font-weight: 500; }
.btn-guide .arrow { font-size: 21px; }

/* Next read */
.next-read { border-top: 1px solid var(--line); padding: 32px var(--gutter); display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.next-read > div { display: flex; flex-direction: column; gap: 10px; }
.next-read h2 { font-size: 24px; line-height: 1.5; }
.next-read > div a { font-size: 16px; font-weight: 500; line-height: 1.95; }

/* Responsive */
@media (max-width: 1200px) {
  .basics { flex-direction: column; }
  .basic-info { width: 100%; }
}
@media (max-width: 860px) {
  .field-list, .history, .tl-row, .next-read { flex-direction: column; }
  .history { gap: 24px; }
  .history-head, .tl-row .period { width: auto; }
  .tl-row { gap: 8px; }
  .field { width: 100%; }
  .next-read { align-items: flex-start; }
  .crumbs { white-space: normal; }
}
