@charset "utf-8";

.pf{ margin:0 auto; }

.pf-lead{ margin-bottom:38px; padding-bottom:30px; border-bottom:1px solid #e0e5ea; }
.pf-name{ font-size:clamp(28px,4vw,42px); font-weight:700; color:#1a1a1a; margin:0 0 6px; letter-spacing:.04em; }
.pf-romaji{ font-size:13px; color:#8a949e; letter-spacing:.16em; margin:0 0 22px; }
.pf-role{ font-size:clamp(16px,2vw,19px); color:#1a1a1a; margin:0 0 8px; font-weight:700; }
.pf-role-sub{ font-size:14px; color:#5f6b78; margin:0 0 22px; padding-left:1em; line-height:1.9; }

.pf-role-sub p{ margin:0 0 9px; }
.pf-role-sub b{ display:block; color:#333; font-weight:700; }
.pf-role-sub span{ display:block; padding-left:1em; font-size:13px; color:#7b858e; }
.pf-role-all{ margin-top:14px !important; margin-bottom:0 !important; }
.pf-oneline{ font-size:clamp(15px,1.9vw,17px); color:#333; line-height:2; margin:0; }
.pf-oneline b{ color:#1a1a1a; }

.pf-gen{
  background:#f4f6f8; border-left:3px solid #333; padding:18px 22px;
  margin:0 0 34px; font-size:13.5px; line-height:2; color:#555;
}
.pf-gen b{ color:#1a1a1a; }

.pf-gen-h{ font-size:20px; line-height:1.7; display:inline-block; margin-bottom:4px; }

.pf-gen-m{ font-size:20.9px; line-height:1.8; display:inline-block; margin:6px 0; }

.pf-h{
  font-size:clamp(17px,2.2vw,21px); font-weight:700; color:#1a1a1a;
  margin:44px 0 22px;
  border-top:2px solid #777; padding-top:10px;
}

.pf-h-row{ display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.pf-openall{
  font-size:13px; font-weight:400; color:#3c5a78; background:none;
  border:1px solid #c6d5e4; border-radius:3px; padding:5px 12px;
  cursor:pointer; white-space:nowrap; font-family:inherit; line-height:1.5;
}
.pf-openall:hover{ background:#3c5a78; border-color:#3c5a78; color:#fff; }
.pf-tl{ margin:0; }
.pf-row{
  display:grid; grid-template-columns:96px 1fr; gap:20px;
  padding:20px 0; border-bottom:1px solid #e6ebf0;
}
.pf-row:last-child{ border-bottom:none; }
.pf-y{ font-size:15px; font-weight:700; color:#5f6b78; padding-top:2px; white-space:nowrap; line-height:1.5; }
.pf-t{ font-size:15.5px; font-weight:700; color:#1a1a1a; margin:0 0 8px; line-height:1.6; }

.pf-d{ font-size:14px; color:#555; line-height:1.95; margin:0 0 10px; text-indent:.667em; }
.pf-d:last-child{ margin-bottom:0; }
.pf-d b{ color:#1a1a1a; }

.pf-next{ font-size:21px; line-height:1.7; margin-top:28px; }
.pf-chip{
  display:inline-block; margin:6px 8px 0 0; padding:3px 11px; border-radius:12px;
  background:#f4f6f8; border:1px solid #dde4ea; font-size:11.5px; color:#5f6b78; letter-spacing:.02em;
}

.pf-note + .pf-chip{ margin-top:16px; }

.pf-row.off .pf-y{ color:#96a1ab; font-style:italic; }
.pf-row.off .pf-t{ color:#6e7982; font-style:italic; font-weight:600; }
.pf-row.off .pf-d{ color:#7b858e; font-style:italic; }
.pf-row.off .pf-d b{ color:#5f6b78; }
.pf-cite{
  display:block; margin:10px 0; padding:10px 14px; background:#f7f9fb;
  border-left:2px solid #c6d5e4; font-size:12.5px; color:#5f6b78; line-height:1.8;
}
.pf-cite a{ color:#3c5a78; border-bottom:1px solid #c6d5e4; }
.pf-sub{
  font-size:14px; font-weight:700; color:#1a1a1a;
  margin:18px 0 8px; padding-top:14px; border-top:1px dashed #e0e5ea;
}
.pf-note{ font-size:13.5px; color:#5f6b78; line-height:1.9; margin:10px 0 0; padding-left:11px; border-left:3px solid #dde4ea; }

.pf-plat{ font-size:12px; font-weight:700; color:#5f6b78; letter-spacing:.08em; margin:16px 0 7px; }
.pf-titles{ margin:0 0 6px; padding:0; list-style:none; }
.pf-titles li{
  font-size:14px; color:#333; line-height:1.7; font-weight:600;
  padding:6px 0 6px 12px; border-left:2px solid #e6ebf0; margin-bottom:6px;
}

.pf-titles li span{
  font-size:11.5px; color:#8a949e; font-weight:400; margin-left:28px;
}

.pf-items{ margin:0 0 8px; padding:0; list-style:none; }
.pf-items li{
  font-size:14px; color:#333; line-height:1.7; font-weight:600;
  padding:6px 0 6px 12px; border-left:2px solid #e6ebf0; margin-bottom:6px;
}
.pf-items li span{
  display:block; font-size:13px; color:#6e7982; font-weight:400;
  line-height:1.75; margin-top:3px;
}

.pf-names{
  margin:10px 0 14px; padding:0; list-style:none;
  display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:7px 16px;
}
.pf-names li{
  font-size:14px; font-weight:600; color:#333; line-height:1.7;
  padding-left:11px; border-left:2px solid #e6ebf0;
}

.pf-fold > summary{ cursor:pointer; list-style:none; }
.pf-fold > summary::-webkit-details-marker{ display:none; }
.pf-fold > summary::after{ content:"　＋"; color:#8a949e; font-weight:400; font-size:12.5px; }
.pf-fold[open] > summary::after{ content:"　−"; }
.pf-fold > summary:hover .pf-t{ color:#3c5a78; }

.pf-works{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:20px; }
.pf-work{ background:#fff; border:1px solid #e0e5ea; border-radius:6px; padding:22px 20px; }
.pf-work .plat{ font-size:11.5px; color:#8a5a2b; letter-spacing:.06em; margin:0 0 7px; }
.pf-work h4{ font-size:15px; font-weight:700; color:#1a1a1a; margin:0 0 9px; line-height:1.55; }
.pf-work p{ font-size:13.5px; color:#555; line-height:1.85; margin:0; text-indent:.667em; }
.pf-work .plat{ text-indent:0; }

.pf-pat{ background:#f7f9fb; border:1px solid #e0e5ea; border-radius:6px; padding:clamp(22px,3vw,32px); }
.pf-pat h4{ font-size:16px; font-weight:700; color:#1a1a1a; margin:0 0 14px; line-height:1.6; }
.pf-pat p{ font-size:14px; color:#555; line-height:1.95; margin:0 0 14px; text-indent:.667em; }
.pf-pat p b{ color:#1a1a1a; }
.pf-pat-list{ margin:22px 0 0; padding:0; list-style:none; }
.pf-pat-list li{ padding:14px 0; border-top:1px solid #e0e5ea; font-size:13.5px; color:#5f6b78; line-height:1.85; }
.pf-pat-list b{ color:#1a1a1a; }
.pf-pat-list a{ color:#3c5a78; border-bottom:1px solid #c6d5e4; }

@media only screen and (max-width:768px){
  .pf-row{ grid-template-columns:1fr; gap:6px; }
  .pf-y{ font-size:13.5px; }
  .pf-h{ margin:32px 0 16px; }
}
