
.krp,.krp *, .krp__overlay,.krp__overlay *{box-sizing:border-box}
.krp,.krp__overlay{--krp-navy:#1e2e4f;--krp-orange:#e9713a;--krp-text:#263345;--krp-muted:#606b78;--krp-bg:#f9f8f5;--krp-line:#e5e2dc;background:var(--krp-bg);color:var(--krp-text);font-family:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;padding:104px 0 110px;}
.krp__inner{width:min(100% - 80px,1240px);margin:auto}
.krp__header{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:44px}
.krp__eyebrow,.krp__dialog-kicker{font-family:Jost,Arial,sans-serif;color:var(--krp-orange);font-size:12px;font-weight:600;letter-spacing:.28em;margin:0 0 14px}
.krp__heading{font:600 clamp(56px,6vw,94px)/1 Jost,Arial,sans-serif;letter-spacing:-.045em;color:var(--krp-navy);margin:0}
.krp__heading span{display:block;font:600 15px/1.7 "Zen Kaku Gothic New",sans-serif;letter-spacing:.12em;margin-top:16px}
.krp__lead{margin:0 0 6px;font-size:14px;line-height:2;letter-spacing:.04em;color:var(--krp-muted)}
.krp__notice{border-left:3px solid var(--krp-orange);background:#fff0e6;padding:12px 16px;margin:0 0 22px;color:#804315;font-size:13px;line-height:1.7}
.krp__carousel{position:relative}
.krp__track{display:flex;gap:22px;scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#b8bdc3 transparent;padding:0 0 22px;outline-offset:4px;-webkit-overflow-scrolling:touch}
.krp__card{flex:0 0 min(33%,367px);min-width:268px;scroll-snap-align:start;margin:0;min-height:0}
.krp__card-button{display:block;width:100%;height:100%;padding:0;border:0;border-radius:0;background:transparent;text-align:left;color:inherit;cursor:pointer;font:inherit}
.krp__card-button:focus-visible{outline:3px solid var(--krp-orange);outline-offset:4px}
.krp__visual{display:block;position:relative;height:385px;overflow:hidden;background:#d9d8d4;isolation:isolate}
.krp__visual:after{position:absolute;content:"";inset:22% 0 0;background:linear-gradient(180deg,transparent 10%,rgba(12,22,38,.67) 100%);z-index:1;pointer-events:none}
.krp__photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center 22%;transition:transform .6s cubic-bezier(.2,.6,.25,1)}
.krp__card-button:hover .krp__photo,.krp__card-button:focus-visible .krp__photo{transform:scale(1.045)}
.krp__placeholder,.krp__modal-placeholder{display:flex;height:100%;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:linear-gradient(135deg,#aebfca,#70869d);color:rgba(255,255,255,.92);font-family:Jost,Arial,sans-serif}
.krp__placeholder span,.krp__modal-placeholder span{font-size:11px;letter-spacing:.32em;white-space:nowrap}
.krp__placeholder strong,.krp__modal-placeholder strong{font-size:clamp(64px,8vw,110px);line-height:1;font-weight:500;letter-spacing:-.05em}
.krp__count{position:absolute;top:24px;left:24px;z-index:2;font:500 20px/1 Jost,sans-serif;color:#fff;letter-spacing:.12em}
.krp__message{position:absolute;bottom:24px;left:22px;right:20px;z-index:2;font-size:19px;line-height:1.65;font-weight:700;letter-spacing:.045em;color:#fff;text-shadow:0 1px 7px rgba(0,0,0,.15)}
.krp__card-body{display:flex;flex-direction:column;padding:19px 2px 0}
.krp__card-detail{font-size:12px;letter-spacing:.06em;color:var(--krp-muted);line-height:1.7;min-height:1.7em}
.krp__card-name{font-size:23px;font-weight:700;line-height:1.5;color:var(--krp-navy);letter-spacing:.08em;margin-top:5px}
.krp__card-link{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #cfd4dc;margin-top:18px;padding:0 4px 12px 0;color:var(--krp-navy);font-size:12px;letter-spacing:.06em}
.krp__card-link span{font-size:19px;transition:transform .2s}
.krp__card-button:hover .krp__card-link span{transform:translate(2px,-2px)}
.krp__arrows{display:flex;justify-content:flex-end;gap:12px;margin-top:14px}
.krp__arrow{display:grid;place-items:center;width:52px;height:52px;border:1px solid #c7cbd0;border-radius:50%;color:var(--krp-navy);background:transparent;cursor:pointer;font:500 21px/1 Jost,sans-serif;transition:background .2s,color .2s,border-color .2s}
.krp__arrow:enabled:hover{background:var(--krp-navy);color:#fff;border-color:var(--krp-navy)}
.krp__arrow:disabled{opacity:.25;cursor:not-allowed}
.krp__arrow:focus-visible{outline:3px solid var(--krp-orange);outline-offset:3px}
.krp__overlay[hidden]{display:none!important}
.krp__overlay{position:fixed;inset:0;z-index:999990;display:flex;align-items:center;justify-content:center;padding:24px;overscroll-behavior:contain}
.krp__backdrop{position:absolute;inset:0;background:rgba(19,29,48,.78);backdrop-filter:blur(5px);cursor:pointer}
.krp__dialog{position:relative;isolation:isolate;width:min(100%,1060px);max-height:calc(100dvh - 48px);overflow-y:auto;background:#fff;color:var(--krp-text);box-shadow:0 18px 60px rgba(0,0,0,.17);overscroll-behavior:contain;outline:none;border-radius:8px}
.krp__dialog-inner{display:grid;grid-template-columns:minmax(220px,35%) minmax(0,1fr);min-height:610px}
.krp__dialog-media{position:relative;min-height:100%;overflow:hidden;background:#8699aa}
.krp__modal-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}
.krp__modal-placeholder{position:absolute;inset:0}
.krp__dialog-body{padding:56px clamp(30px,5vw,68px) 72px}
.krp__dialog-kicker{margin-bottom:22px}
.krp__dialog-kicker span{margin-left:10px;color:#88919b}
.krp__dialog-message{color:var(--krp-navy);font-size:clamp(22px,2.5vw,32px);font-weight:700;line-height:1.52;letter-spacing:.055em;margin:0 0 25px}
.krp__dialog-role{margin:0;color:var(--krp-muted);font-size:13px;line-height:1.7;letter-spacing:.04em}
.krp__dialog-name{margin:4px 0 0;color:var(--krp-navy);font-size:27px;line-height:1.5;letter-spacing:.085em}
.krp__dialog-name small{font:500 12px/1.5 Jost,sans-serif;letter-spacing:.12em;margin-left:12px;color:var(--krp-muted)}
.krp__dialog-tenure{font-size:12px;color:var(--krp-muted);margin:8px 0 0}
.krp__dialog-intro{font-size:14px;line-height:2;letter-spacing:.03em;color:#49545f;padding:24px 0 30px;margin:24px 0 0;border-top:1px solid var(--krp-line);border-bottom:1px solid var(--krp-line)}
.krp__qa-list{margin:0;padding:0}
.krp__qa{margin:0;padding:30px 0 34px;border-bottom:1px solid var(--krp-line)}
.krp__qa:last-child{border-bottom:0;padding-bottom:0}
.krp__qa dt{display:flex;align-items:flex-start;gap:14px;font-size:15px;line-height:1.8;color:var(--krp-navy);font-weight:700;margin:0}
.krp__qa-num{flex:none;font:600 13px/2 Jost,Arial,sans-serif;color:var(--krp-orange);letter-spacing:.07em}
.krp__qa dd{margin:14px 0 0 35px;font-size:14px;line-height:2.06;letter-spacing:.035em;color:#485465}
.krp__close{display:grid;place-items:center;position:sticky;top:14px;float:right;margin:14px 15px -64px 0;z-index:4;width:47px;height:47px;border:1px solid #e5e8eb;border-radius:50%;background:#fff;color:var(--krp-navy);font:300 36px/1 Jost,sans-serif;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.1)}
.krp__close:hover{background:var(--krp-navy);color:#fff}
.krp__close:focus-visible{outline:3px solid var(--krp-orange);outline-offset:3px}
body.krp-modal-open{overflow:hidden!important}
@media (max-width:1023px){
 .krp{padding:82px 0 88px}.krp__inner{width:calc(100% - 48px)}.krp__card{flex-basis:min(43%,330px)}.krp__visual{height:340px}.krp__header{margin-bottom:32px}
 .krp__dialog-inner{grid-template-columns:minmax(210px,33%) minmax(0,1fr)}.krp__dialog-body{padding:48px 35px 55px}
}
@media (max-width:767px){
 .krp{padding:64px 0 72px}.krp__inner{width:calc(100% - 36px)}.krp__header{display:block;margin-bottom:28px}.krp__heading{font-size:60px}.krp__heading span{margin-top:9px;font-size:13px}.krp__lead{font-size:13px;margin:20px 0 0}
 .krp__track{gap:14px;padding-bottom:18px}.krp__card{flex-basis:77%;min-width:245px;max-width:310px}.krp__visual{height:355px}.krp__message{font-size:17px}.krp__card-name{font-size:21px}
 .krp__arrows{margin-top:4px}.krp__arrow{width:44px;height:44px;font-size:18px}
 .krp__overlay{padding:0;align-items:stretch}.krp__dialog{width:100%;height:100dvh;max-height:100dvh;border-radius:0;box-shadow:none}.krp__dialog-inner{display:block;min-height:0}
 .krp__dialog-media{height:260px;min-height:0}.krp__dialog-body{padding:30px 22px 70px}.krp__close{position:sticky;top:12px;margin:12px 12px -59px 0;width:44px;height:44px}
 .krp__dialog-message{font-size:23px;margin-bottom:16px}.krp__dialog-name{font-size:23px}.krp__dialog-intro{padding:20px 0 24px;margin-top:22px}.krp__qa{padding:25px 0}.krp__qa dt{font-size:14px}.krp__qa dd{margin-left:0;font-size:13px}
}
@media (prefers-reduced-motion:no-preference){
 .krp.krp--enhanced .krp__card:not(.krp--visible){opacity:0;transform:translateY(22px)}
 .krp.krp--enhanced .krp__card{transition:opacity .6s ease,transform .6s ease;transition-delay:var(--krp-stagger,0ms)}
 .krp__dialog{animation:krp-dialog-open .24s ease-out both}
 @keyframes krp-dialog-open{from{opacity:.8;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}
}
@media (prefers-reduced-motion:reduce){.krp *, .krp *:before, .krp *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.krp__overlay{background:transparent;overflow:visible}

.krp__controls{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px}
.krp__pagination{display:flex;justify-content:center;align-items:center;gap:11px}
.krp__dot{width:12px;height:12px;display:block;padding:0;border:0;border-radius:50%;background:#c4c8cd;cursor:pointer}
.krp__dot[aria-current="true"]{background:var(--krp-orange)}
.krp__track{scrollbar-width:none;-ms-overflow-style:none}
.krp__track::-webkit-scrollbar{display:none}

/* STAFF numbering: subtle identity label above the job title.
   Real names remain stored in WordPress; these styles affect public display only. */
.krp.krp--staff-id .krp__card-detail.krp__staff-code,
.krp__overlay.krp--staff-id .krp__dialog-staff-code {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  column-gap: 5px;
  width: fit-content;
  max-width: 100%;
  font-family: "Jost", Arial, sans-serif;
  font-weight: 600;
  color: #d66b38;
  line-height: 1.35;
  letter-spacing: .12em;
}
.krp--staff-id .krp__staff-code .krp__staff-word,
.krp__overlay.krp--staff-id .krp__dialog-staff-code .krp__staff-word {
  color: inherit;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .16em;
}
.krp--staff-id .krp__staff-code .krp__staff-number,
.krp__overlay.krp--staff-id .krp__dialog-staff-code .krp__staff-number {
  color: inherit;
  font-family: "Jost", Arial, sans-serif;
  font-size: 13px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  line-height: 1.25;
  letter-spacing: .04em;
}
/* Profession takes over the old large-name slot, preserving card spacing and CTAs. */
.krp.krp--staff-id .krp__card-name.krp__staff-role,
.krt .krp--reference.krp--staff-id .krp__card-name.krp__staff-role {
  display: block;
  margin-top: 7px;
  color: #0b2545;
  font-family: "M PLUS Rounded 1c", "Zen Kaku Gothic New", sans-serif;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.55;
  letter-spacing: .025em;
  overflow-wrap: anywhere;
}
.krt .krp--reference.krp--staff-id .krp__card-button:is(:hover, :focus-visible) .krp__card-name.krp__staff-role {
  color: #e8651a;
}
/* The modal hero retains the message as its primary heading. */
.krp__overlay.krp--staff-id .krp__dialog-staff-code {
  margin: 19px 0 3px;
}
.krp__overlay.krp--staff-id .krp__dialog-name.krp__staff-role,
body.kato-recruit-top-page .krp__overlay--reference.krp--staff-id .krp__dialog-name.krp__staff-role {
  display: block;
  margin: 3px 0 0;
  color: #0b2545;
  font-family: "M PLUS Rounded 1c", "Zen Kaku Gothic New", sans-serif;
  font-size: 23px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .03em;
  overflow-wrap: anywhere;
}
.krp__overlay.krp--staff-id .krp__dialog-meta { margin-top: 9px; }
.krp__overlay.krp--staff-id .krp__dialog-role {margin-top: 8px;}
@media (max-width: 767px) {
  .krp.krp--staff-id .krp__card-name.krp__staff-role,
  .krt .krp--reference.krp--staff-id .krp__card-name.krp__staff-role {
    font-size: 18px;
    line-height: 1.5;
    margin-top: 6px;
  }
  .krp__overlay.krp--staff-id .krp__dialog-staff-code {margin-top: 16px;}
  .krp__overlay.krp--staff-id .krp__dialog-name.krp__staff-role,
  body.kato-recruit-top-page .krp__overlay--reference.krp--staff-id .krp__dialog-name.krp__staff-role {
    font-size: 20px;
  }
}


/* Initials comparison: show a person's pre-registered initials above their job title.
   Job role remains the primary text; initials are secondary and never taken from the public name. */
.krp.krp--initials .krp__card-detail.krp__staff-code,
.krp__overlay.krp--initials .krp__dialog-staff-code {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin-right: auto;
  font-family: "Jost", Arial, sans-serif;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: .11em;
  color: #cc724b;
  text-transform: uppercase;
}
.krp--initials .krp__initials-value {
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
}
.krp__overlay.krp--initials .krp__dialog-staff-code {
  margin-top: 19px;
  margin-bottom: 4px;
  font-size: 15px;
  letter-spacing: .10em;
}
@media (max-width:767px){
  .krp.krp--initials .krp__card-detail.krp__staff-code{font-size:13px}
  .krp__overlay.krp--initials .krp__dialog-staff-code{font-size:14px;margin-top:16px}
}


/* 2026-10-18 feedback | Only the interview message bands become white. */
.krp .krp__message {
  background:#fff;
  color:#0b2545;
  font-family:'Zen Kurenaido','Zen Kaku Gothic New',sans-serif;
  font-weight:400;
  text-shadow:none;
}
.krp .krp__message-line {display:block;white-space:nowrap;}
.krp__overlay .krp__dialog-message {
  background:#fff;
  color:#0b2545;
  font-family:'Zen Kurenaido','Zen Kaku Gothic New',sans-serif;
  font-weight:400;
}


/* 2026-10-19: PEOPLE cards — role first, balanced initials second.
   Applied only to the adopted reference-layout + initials combination.
   The popup is handled in a separate, restricted rule block below. */
.krt .krp--reference.krp--initials .krp__card-name.krp__staff-role {
  display:block;
  margin-top:0;
  color:#0b2545;
  font-size:18px;
  font-weight:700;
  line-height:1.55;
  letter-spacing:.025em;
  overflow-wrap:anywhere;
}
.krt .krp--reference.krp--initials .krp__card-detail.krp__staff-code {
  display:block;
  width:fit-content;
  max-width:100%;
  margin:6px 0 0;
  color:#bf6744;
  font-family:"Jost",Arial,sans-serif;
  font-size:22px;
  font-weight:600;
  line-height:1.4;
  letter-spacing:.06em;
}
.krt .krp--reference.krp--initials .krp__card-meta {
  margin-top:7px;
  font-size:12px;
  line-height:1.7;
  letter-spacing:.04em;
}
@media (max-width:767px) {
  .krt .krp--reference.krp--initials .krp__card-name.krp__staff-role {
    font-size:17px;
    line-height:1.5;
  }
  .krt .krp--reference.krp--initials .krp__card-detail.krp__staff-code {
    margin-top:5px;
    font-size:20px;
  }
  .krt .krp--reference.krp--initials .krp__card-meta {
    margin-top:6px;
    font-size:12px;
  }
}


/* 2026-10-19 v02: same reading order in the reference interview popup.
   Only role-first initial displays; STAFF-number/name variants stay unchanged.
   Higher specificity intentionally overrides the recruiting top page's
   older dialog margin rules without changing other modal elements. */
body.kato-recruit-top-page .krp__overlay--reference.krp--initials .krp__dialog-name.krp__staff-role {
  display:block;
  margin:21px 0 0;
  color:#0b2545;
  font-size:22px;
  font-weight:700;
  line-height:1.5;
  letter-spacing:.03em;
  overflow-wrap:anywhere;
}
body.kato-recruit-top-page .krp__overlay--reference.krp--initials .krp__dialog-staff-code {
  display:block;
  width:fit-content;
  max-width:100%;
  margin:4px 0 0;
  color:#bf6744;
  font-family:"Jost",Arial,sans-serif;
  font-size:21px;
  font-weight:600;
  line-height:1.4;
  letter-spacing:.06em;
}
@media (max-width:767px) {
  body.kato-recruit-top-page .krp__overlay--reference.krp--initials .krp__dialog-name.krp__staff-role {
    margin-top:18px;
    font-size:19px;
  }
  body.kato-recruit-top-page .krp__overlay--reference.krp--initials .krp__dialog-staff-code {
    margin-top:4px;
    font-size:20px;
  }
}
