/* Align the home page section rhythm with the observed desktop/mobile composition. */
.office-banner{padding:0}
@media(min-width:1000px){
 .home-interviews{padding-top:104px;padding-bottom:289px}
 .home-message{margin-bottom:129px}
 .home-about{margin-bottom:224px}
 .home-work{padding-bottom:215px}
 .home-jobs{padding-bottom:100px}
}
@media(max-width:700px){
 .is-home .hero{height:100svh}
 .home-news{padding-top:80px;padding-bottom:180px}
 .concept{padding-bottom:235px}
 .home-message{margin-bottom:184px}
 .home-about{margin-bottom:130px}
 .home-work{padding-bottom:58px}
 .home-jobs{padding-top:80px;padding-bottom:60px}
 .home-jobs .job-grid{gap:20px}
}

/* Work-style panels reconstructed from their observed geometry. */
.home-work{padding:100px 0 120px;background:#f2f0e9;overflow:hidden}
.home-work>.section-heading{margin:0}
.home-work>.section-heading h2{font-size:44px;line-height:1.7;letter-spacing:.08em}
.home-work>.section-heading .lead{font-size:16px;line-height:1.7;margin:0}
.home-work>.round-links{margin:60px 0 40px;gap:20px}
.home-work>.round-links a{width:93px;height:93px;font-size:18px}
.home-work>.round-links span img{width:10px;height:7px;margin-top:8px}
.home-work-category{position:relative;margin-top:0;padding-bottom:0}
.home-work-category+.home-work-category{margin-top:100px}
.home-work-category:before{content:'';position:absolute;inset:0 16.667% 116px 0;background:#fff}
.home-work-category.parttime:before{inset:0 0 116px 16.528%}
.home-work-intro{position:relative;display:grid;grid-template-columns:46.751% 53.249%;padding:100px 0;align-items:start}
.home-work-intro>div{margin-left:22.5056vw;padding-top:56.7px;padding-bottom:140px;width:269px;color:#91815b}
.home-work-intro h3{font-size:30px;line-height:1.7;letter-spacing:.1em;margin:0}
.home-work-intro i{display:block;width:18px;height:4px;background:currentColor;margin:15px 0 20px}
.home-work-intro p{font-size:16px;line-height:1.7;color:#191919;margin:0}
.home-work-intro>picture{display:block;width:100%}
.home-work-intro>picture img{width:100%;height:auto}
.home-work-category.parttime .home-work-intro{grid-template-columns:53.999% 46.001%}
.home-work-category.parttime .home-work-intro>picture{grid-column:1;grid-row:1;width:100%}
.home-work-category.parttime .home-work-intro>div{grid-column:2;grid-row:1;margin-left:5.556vw;padding-top:59.75px;width:300px}
.home-point-carousel{position:relative;max-width:820px;margin:-208.8px auto 0;z-index:1}
.home-point-track{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;outline-offset:4px}
.home-point{padding:30px 35px 35px;min-height:324.375px;background:#a2906f;color:white}
.home-point-number{position:relative;width:60px;height:68.2px;margin:0 auto}
.home-point-number img{width:57px;height:34px;max-width:none}
.home-point-number b{position:absolute;top:25px;left:0;right:0;text-align:center;font:700 36px/43.2px Roboto,Arial}
.home-point>i{display:block;width:16px;height:4px;background:#fff;margin:8px auto 18px}
.home-point h4{text-align:center;font-size:20px;line-height:1.4;margin:0 0 10px}
.home-point p{font-size:14px;line-height:1.7;margin:0}
.home-point.carousel-clone,.home-carousel-dots{display:none}
.home-work>.button{margin-top:100px;width:275px;max-width:calc(100% - 40px);height:50px;font-size:14px;padding:0 30px;justify-content:flex-start;position:relative}
.home-work>.button span{position:absolute;right:0;font-size:0;width:50px;border-top:1px solid #ffffff99}
@media(min-width:769px) and (max-width:1100px){
 .home-work-intro>div{margin-left:7vw;width:36vw;padding-top:30px}
 .home-work-category.parttime .home-work-intro>div{margin-left:6vw;width:35vw;padding-top:30px}
 .home-work-intro h3{font-size:25px}
 .home-work-intro p{font-size:14px}
 .home-point-carousel{width:calc(100% - 60px)}
 .home-point{padding:25px 20px}
 .home-point h4{font-size:17px}
}
@media(max-width:768px){
 .home-work{padding:60px 0 80px}
 .home-work>.section-heading h2{font-size:30px;line-height:1.7}
 .home-work>.section-heading .lead{font-size:14px;line-height:1.7}
 .home-work>.round-links{margin:30px 0;gap:20px}
 .home-work>.round-links a{width:93px;height:93px;font-size:18px}
 .home-work-category+.home-work-category{margin-top:30px}
 .home-work-category:before{inset:0 20px 0 0}
 .home-work-category.parttime:before{inset:0 0 0 20px}
 .home-work-intro,.home-work-category.parttime .home-work-intro{display:block;min-height:0;padding:42px 0 0}
 .home-work-intro>div,.home-work-category.parttime .home-work-intro>div{position:static;width:100%;margin:0;text-align:center;padding:0 20px 30px}
 .home-work-intro h3{font-size:20px;line-height:1.7}
 .home-work-intro i{margin:15px auto 21px;width:20px;height:4px}
 .home-work-intro p{font-size:14px;line-height:1.7}
 .home-work-intro>picture,.home-work-category.parttime .home-work-intro>picture{position:static;width:calc(100% - 40px);margin-left:40px}
 .home-work-category.parttime .home-work-intro>picture{margin-left:0}
 .home-point-carousel{width:100%;max-width:none;margin:-55px 0 0;padding-bottom:35px}
 .home-point-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:20px;scrollbar-width:none;touch-action:pan-x pan-y;cursor:grab}
 .home-point-track::-webkit-scrollbar{display:none}
 .home-point-track.is-dragging{scroll-snap-type:none;user-select:none;cursor:grabbing}
 .home-point{flex:0 0 calc((100% - 44px)/1.2);min-height:259.77px;padding:20px 20px 30px;scroll-snap-align:center;scroll-snap-stop:always}
 .home-point.carousel-clone{display:block}
 .home-point-number{height:53.6px}
 .home-point-number b{top:19px;font-size:28px;line-height:33.6px}
 .home-point>i{margin:8px auto 18px}
 .home-point h4{font-size:16px;line-height:1.4}
 .home-point p{font-size:14px;line-height:1.7}
 .home-carousel-dots{display:flex;justify-content:center;gap:8px;margin-top:10px;height:8px}
 .home-carousel-dots button{padding:0;width:8px;height:8px;border-radius:50%;background:rgba(142,111,52,.3)}   
 .home-carousel-dots button[aria-pressed=true]{background:#8e6f34}
 .home-work>.button{margin-top:30px;width:275px;height:50px;font-size:14px;padding-left:30px}
 .home-work>.button span{width:50px}
}
/* Independently laid out talk cards: uncropped photographs and overlaid labels. */
.talk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:60px}
.talk-card{display:block;min-width:0;color:#002341}
.talk-photo{position:relative}
.talk-card .talk-photo img{display:block;width:100%;height:auto;aspect-ratio:1050/752;object-fit:contain}
.talk-card .talk-photo small{position:absolute;left:0;bottom:0;display:block;max-width:100%;margin:0;background:#084d93;color:#fff;padding:8px 15px 12px;font-size:clamp(14px,calc(11.3702px + .5525vw),18px);font-weight:700;line-height:1}
.talk-card:first-child .talk-photo small{background:#a2906f}
.talk-card:nth-child(3) .talk-photo small{background:#007ec2}
.talk-card h3{font-size:clamp(18px,calc(12.7403px + 1.105vw),26px);font-weight:700;line-height:1.4;min-height:2.8em;margin:20px 0 0;overflow-wrap:anywhere}
.home-talk{padding:120px 20px;margin-bottom:120px;background:linear-gradient(to right,white 0 37.5%,#e8f4f9 37.5%)}
.home-talk>.container{width:100%}
.home-talk .section-heading{margin:0 0 60px}
.home-talk .section-heading h2{font-size:44px;line-height:1.7;letter-spacing:.1em}
.home-talk .section-heading i{width:24px;height:6px;margin:19px auto 35px}
.home-talk .section-heading .lead{font-size:16px;line-height:1.7;margin:0}
.home-talk .section-heading .lead br{display:none}
.home-talk .button,.talk-dots{display:none}
.talk-index{padding:0 0 120px}
.talk-index>header{padding:0 0 30px}
.talk-index .section-heading{margin:0;padding-top:30px;width:100vw;margin-left:calc(50% - 50vw)}
.talk-index h1{font-family:'Noto Sans JP',sans-serif;font-size:34px;line-height:1.2;letter-spacing:.1em;margin:0 0 10px}
.talk-index .subtitle{font-size:12px;line-height:1.2;letter-spacing:.1em}
.talk-index .section-heading i{height:6px;width:22px;margin:22px auto 22px}
.talk-index .section-heading .lead{font-size:14px;line-height:1.7;margin:0}
.talk-index>.container{margin-top:50px;width:calc(100% - 40px)}
@media(max-width:768px){
 .talk-card h3{font-size:clamp(18px,calc(12.7403px + 1.105vw),26px);margin-top:10px}
 .talk-card .talk-photo small{font-size:clamp(14px,calc(11.3702px + .5525vw),18px)}
 .home-talk{padding:80px 20px;margin-bottom:80px;background:linear-gradient(to right,white 0 20%,#e8f4f9 20%)}
 .home-talk .section-heading{margin-bottom:30px}
 .home-talk .section-heading i{width:22px;margin:9px auto 25px}
 .home-talk .section-heading h2{font-size:clamp(30px,calc(20.7956px + 1.9337vw),44px)}
 .home-talk .section-heading .lead{font-size:14px;line-height:1.7;text-align:left}
 .home-talk .talk-grid{--slides:1.1;position:relative;display:flex;width:calc(100% + 40px);margin:0 -20px;padding:0 20px;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:20px;scrollbar-width:none;overscroll-behavior-x:contain;touch-action:pan-x pan-y;align-items:start;outline-offset:-4px}
 .home-talk .talk-grid::-webkit-scrollbar{display:none}
 .home-talk .talk-card{flex:0 0 calc((100% - (var(--slides) - 1)*20px)/var(--slides));scroll-snap-align:start;user-select:none}
 .home-talk .talk-card h3{font-size:clamp(18px,calc(12.7403px + 1.105vw),26px)}
 .home-talk .talk-card small{font-size:clamp(14px,calc(11.3702px + .5525vw),18px)}
 .home-talk .talk-grid.is-dragging{scroll-snap-type:none;cursor:grabbing}
 .talk-dots{display:flex;align-items:center;justify-content:center;gap:8px;height:23.8px;margin-top:10px}
 .talk-dots button{border:0;padding:0;width:8px;height:8px;border-radius:50%;background:rgba(0,126,194,.3);cursor:pointer}   
 .talk-dots button[aria-pressed=true]{background:#007ec2}
 .home-talk .button{display:flex;width:275px;height:50px;min-height:50px;font-size:14px;margin-top:40px;padding:0 30px;justify-content:flex-start;position:relative}
 .home-talk .button span{position:absolute;right:0;width:50px;border-top:1px solid #ffffff99;font-size:0}
}
@media(min-width:476px) and (max-width:768px){.home-talk .talk-grid{--slides:1.4}}
@media(min-width:576px) and (max-width:768px){.home-talk .talk-grid{--slides:1.6}}
@media(min-width:676px) and (max-width:768px){.home-talk .talk-grid{--slides:1.8}}
@media(min-width:768px) and (max-width:768px){.home-talk .talk-grid{--slides:3}}
@media(max-width:768px){
 .talk-index{padding-top:0;padding-bottom:80px}
 .talk-index>header{padding-bottom:10px}
 .talk-index h1{font-size:28px}
 .talk-index>.container{margin-top:30px}
 .talk-index .talk-grid{grid-template-columns:1fr;gap:50px}
}
@media(max-width:476px){
 .talk-card .talk-photo small{padding:6px 15px 8px}
}

@media(min-width:769px) and (max-width:992px){.talk-grid{gap:40px}.talk-card h3{margin-top:15px}}
/* Work panels adapt independently from the global page layout. */
.home-work{--work-heading:clamp(20px,calc(13.4254px + 1.3812vw),30px);--work-body:clamp(14px,calc(12.6851px + .27624vw),16px);--point-heading:clamp(16px,calc(13.3702px + .5525vw),20px);--point-number:clamp(28px,calc(22.7403px + 1.105vw),36px);padding-top:120px}
.home-work>.section-heading h2{font-size:clamp(30px,calc(20.7956px + 1.9337vw),44px)}
.home-work>.section-heading .lead{font-size:var(--work-body)}
.home-work>.section-heading i{height:6px;width:24px;margin:19px auto 35px}
.home-work>.round-links{margin-bottom:30px}
.home-work-intro{grid-template-columns:calc(46% + 10.8px) calc(54% - 10.8px)}
.home-work-intro>div{margin-left:0;margin-right:80px;justify-self:end;width:calc(var(--work-body)*16.82)}
.home-work-category.parttime .home-work-intro{grid-template-columns:54% 46%}
.home-work-category.parttime .home-work-intro>div{margin-left:80px;margin-right:0;justify-self:start}
.home-work-intro h3{font-size:var(--work-heading)}
.home-work-intro p{font-size:var(--work-body)}
.home-point-carousel{width:calc(100% - 40px)}
.home-point h4{font-size:var(--point-heading)}
.home-point-number b{font-size:var(--point-number);line-height:1.2}
.home-point-number{height:calc(var(--point-number)*1.2 + 25px)}
@media(min-width:1000px){.home-about{margin-bottom:204px}}
@media(min-width:993px) and (max-width:1200px){.home-work>.round-links{margin-top:40px}}
@media(min-width:769px) and (max-width:992px){
 .home-work-intro{grid-template-columns:calc(30% + 62.6px) calc(70% - 62.6px);padding:80px 0}
 .home-work-intro>div{margin-right:30px;width:min(calc(var(--work-body)*16.82),calc(100% - 50px))}
 .home-work-category.parttime .home-work-intro{grid-template-columns:65% 35%}
 .home-work-category.parttime .home-work-intro>div{margin-left:30px;margin-right:0;width:calc(100% - 50px)}
}
@media(max-width:992px){
 .home-work{padding-top:80px}
 .home-work>.round-links{margin-top:30px}
 .home-work>.section-heading i{width:22px;margin:9px auto 25px}
 .home-point{padding:20px 20px 30px;min-height:259.77px}
 .home-point-number{height:calc(var(--point-number)*1.2 + 20px)}
 .home-point-number b{top:19px}
}
@media(max-width:768px){
 .home-work-intro,.home-work-category.parttime .home-work-intro{padding-top:40px}
 .home-work-intro>div,.home-work-category.parttime .home-work-intro>div{width:100%;margin:0;padding:0 20px 30px}
 .home-work-intro h3{font-size:var(--work-heading)}
 .home-work-intro p{font-size:var(--work-body)}
 .home-point-carousel{width:100%}
 .home-point-track{--work-slides:1.2}
 .home-point{flex-basis:calc((100% - 40px - (var(--work-slides) - 1)*20px)/var(--work-slides))}
 .home-point h4{font-size:var(--point-heading)}
}
@media(max-width:700px){.home-about{margin-bottom:63.2px}}
@media(min-width:476px) and (max-width:767px){.home-point-track{--work-slides:1.8}}
@media(min-width:576px) and (max-width:767px){.home-point-track{--work-slides:2.4}}
@media(min-width:676px) and (max-width:767px){.home-point-track{--work-slides:2.6}}
@media(min-width:768px) and (max-width:768px){
 .home-point-carousel{width:calc(100% - 40px);margin-inline:auto;padding-bottom:30px}
 .home-point-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}
 .home-point.carousel-clone,.home-carousel-dots{display:none}
}

/* Independent job-card repair derived from live geometry, 2026-09-21.
   Evidence: job_source_geometry.json and job_source_boundaries.json.
   Photos occupy 79.5% and retain their own aspect ratio; SVG canvas 20.5%.
   Applied after same-viewport geometry and visual verification. */
.home-jobs,.index-page:has(>.job-grid){width:calc(100% - 40px);max-width:1100px;margin-inline:auto}
.job-grid,.home-jobs .job-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:80px;row-gap:90px;align-items:start;padding:0}
.job-card{position:relative;min-width:0;margin:0;transform:none}
.job-card:nth-child(even){margin:150px 0 0;transform:none}
.job-card:last-child{margin-bottom:0}
.job-photo,.job-card:nth-child(even) .job-photo{display:grid;grid-template-columns:20.5% 79.5%;position:relative;margin:0}
.job-photo>img:first-child{grid-column:2;grid-row:1;display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;object-position:center}
.job-photo>picture.pal-mobile-picture>img:first-child{grid-column:2;grid-row:1;display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;object-position:center}
.job-photo .job-letter,.job-card:nth-child(even) .job-letter{grid-column:1;grid-row:1;position:static;inset:auto;display:block;width:100%;height:auto;max-width:105px;max-height:none;align-self:start}
.job-card:first-child .job-letter{max-width:none}
.job-label{display:flex;position:relative;align-items:stretch;width:420px;max-width:100%;min-height:84px;margin-top:-42px;padding:0 0 0 6%;background:transparent;font-size:20px;line-height:1.4}
.job-label>b{flex:0 0 84px;min-width:84px;display:flex;align-items:center;justify-content:center;font:500 34px/1.7 Roboto,Arial,sans-serif}
.job-label>span{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;padding:12px 25px;background:var(--sky);font-weight:700}
.job-label small{font-size:12px;line-height:1.4;font-weight:500}
@media(max-width:992px){
 .job-grid,.home-jobs .job-grid{column-gap:40px;row-gap:60px}
 .job-card:nth-child(even){margin-top:100px}
 .job-label{padding-left:4%;min-height:60px;margin-top:-30px;font-size:18px}
 .job-label>b{flex-basis:60px;min-width:60px;font-size:28px}
 .job-label>span{padding:6px 10px 6px 15px}
 .job-label small{font-size:10px}
}
@media(max-width:768px){
 .job-grid,.home-jobs .job-grid{column-gap:30px;row-gap:40px}
 .job-card:nth-child(even){margin-top:60px}
 .job-label{width:100%;min-height:50px;padding-left:2%}
 .job-label>b{flex-basis:50px;min-width:50px;font-size:26px}
 .job-label>span{padding-top:4px;padding-bottom:4px}
}
@media(max-width:576px){
 .job-grid,.home-jobs .job-grid{grid-template-columns:1fr;gap:40px}
 .job-card{left:30px;width:calc(100% - 10px)}
 .job-card:nth-child(even){left:-30px;margin:0}
 .job-card:nth-child(even) .job-photo{grid-template-columns:79.5% 20.5%}
 .job-card:nth-child(even) .job-photo>img:first-child{grid-column:1}
 .job-card:nth-child(even) .job-photo>picture.pal-mobile-picture>img:first-child{grid-column:1}
 .job-card:nth-child(even) .job-letter{grid-column:2;position:relative;left:35px}
 .job-label{width:100%;max-width:100%;min-height:56px;padding:0 20px;justify-content:flex-end}
 .job-card:nth-child(even) .job-label{justify-content:flex-start}
 .job-label>b{flex-basis:56px;min-width:56px}
 .job-label>span{flex:0 1 224px;padding:7px 10px 7px 15px}
}
@media(max-width:476px){
 .job-card{left:20px;width:100%}
 .job-card:nth-child(even){left:-20px}
}
.home-jobs>.section-heading{margin-bottom:60px}
.home-jobs>.section-heading i{width:24px;height:6px;margin:19px auto 35px}
.home-jobs>.section-heading .lead{font-size:16px;line-height:1.7}
@media(max-width:768px){
 .home-jobs>.section-heading{margin-bottom:30px}
 .home-jobs>.section-heading i{width:22px;height:4px;margin:13px auto 23px}
 .home-jobs>.section-heading .lead{font-size:14px;line-height:1.7}
}
.is-home .home-message .message-image>picture:first-child img{display:block;width:100%;height:auto;aspect-ratio:1474/1180}
@media(max-width:476px){
 .is-home .home-message .message-image>picture:first-child img{aspect-ratio:710/776}
}

/* Measured home heading type and the 577-768px message layout. */
.is-home :is(.home-news, .home-interviews, .home-message, .home-about,
             .home-work, .home-jobs, .recruit-section) .section-heading h2 {
  font-size: clamp(30px, calc(20.7955801105px + 1.9337016575vw), 44px);
  letter-spacing: .1em;
}
/* At 769px the wider corrected title uses <2px of the existing 20px gutter.
   Preserve the current single line without moving the adjacent photo. */
@media (min-width: 577px) {
  .is-home .home-message .section-heading h2 { white-space: nowrap; }
}

@media (min-width: 577px) and (max-width: 768px) {
  .is-home .home-message {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    padding: 60px 20px 0;
    margin-bottom: 80px;
    background: linear-gradient(to bottom, var(--blue) 0 60%, white 60%);
  }
  .is-home .home-message > div { display: contents; }
  .is-home .home-message .section-heading {
    grid-row: 1;
    position: relative;
    z-index: 2;
    text-align: center;
    margin: 0 0 30px;
  }
  .is-home .home-message .section-heading i {
    width: 22px;
    height: 6px;
    margin: 9px auto 25px;
  }
  .is-home .home-message .section-heading .lead {
    max-width: 15em;
    margin: 0 auto;
    font-size: clamp(14px, calc(12.6850828729px + .2762430939vw), 16px);
    line-height: 1.7;
  }
  .is-home .home-message .message-image {
    grid-row: 2;
    display: block;
    width: calc(100% + 20px);
    max-width: none;
    height: auto;
    margin: 0 0 40px -20px;
  }
  .is-home .home-message .button {
    grid-row: 3;
    justify-self: center;
    position: relative;
    z-index: 2;
    width: 275px;
    min-height: 50px;
    height: 50px;
    margin: 0;
    padding: 0 30px;
  }
}

/* Re-measured source composition, retaining the real portrait and both SVG layers. */
.is-home .home-message {
  --message-inner: min(1300px, calc(100vw - 20px));
  display: flex;
  justify-content: flex-end;
  align-items: stretch;
  min-height: 0;
  gap: 0;
  padding: 100px max(0px, calc((100vw - 1320px)/2)) 0 max(20px, calc((100vw - 1280px)/2));
  margin-bottom: 180px;
  background: linear-gradient(to bottom, #007ec2 0 calc(100% - 150px), white calc(100% - 150px));
}
.is-home .home-message>div {
  display: block;
  width: max-content;
  max-width: 350px;
  margin: 0 70px 0 0;
  padding: 25px 0 0;
  flex: 0 1 auto;
}
.is-home .home-message .section-heading {margin:0 0 60px;text-align:left;}
.is-home .home-message .section-heading h2 {margin:0;line-height:1.7;white-space:nowrap;}
.is-home .home-message .section-heading i {width:24px;height:6px;margin:19px 0 35px;}
.is-home .home-message .section-heading .lead {
  max-width:15em;
  margin:0;
  font-size:clamp(14px, calc(12.6850828729px + .2762430939vw), 16px);
  line-height:1.7;
}
.is-home .home-message .message-image {
  display:block;
  width:calc(var(--message-inner)*.565);
  max-width:737px;
  height:auto;
  flex:0 0 auto;
  align-self:flex-start;
  margin:0;
}
.is-home .home-message .button {width:275px;height:50px;min-height:50px;margin:0;padding:0 30px;}
@media(max-width:1200px){
  .is-home .home-message {padding-top:80px;margin-bottom:120px;background:linear-gradient(to bottom,#007ec2 0 calc(100% - 120px),white calc(100% - 120px));}
  .is-home .home-message>div {padding-top:15px;}
}
@media(max-width:992px){
  .is-home .home-message {padding-top:60px;margin-bottom:80px;background:linear-gradient(to bottom,#007ec2 0 calc(100% - 80px),white calc(100% - 80px));}
  .is-home .home-message>div {margin-right:30px;}
  .is-home .home-message .section-heading {margin-bottom:30px;}
  .is-home .home-message .section-heading i {width:22px;margin:9px 0 25px;}
}
@media(max-width:768px){
  .is-home .home-message {display:grid;grid-template-columns:minmax(0,1fr);padding:60px 20px 0;background:linear-gradient(to bottom,#007ec2 0 60%,white 60%);}
  .is-home .home-message>div {display:contents;}
  .is-home .home-message .section-heading {grid-row:1;text-align:center;margin:0 0 30px;}
  .is-home .home-message .section-heading h2 {width:max-content;max-width:100%;margin-inline:auto;}
  .is-home .home-message .section-heading i {margin:9px auto 25px;}
  .is-home .home-message .section-heading .lead {margin:0 auto;}
  .is-home .home-message .message-image {grid-row:2;width:calc(100% + 20px);max-width:none;margin:0 0 40px -20px;}
  .is-home .home-message .button {grid-row:3;justify-self:center;margin:0;}
}

/* Candidate: only six home guide links and existing header/footer controls.
   No HTML helper change. Isolation keeps the wipe behind anonymous link text.
   Section grid/padding/margins, photos, headings, menu and forms are untouched. */
.is-home :is(.home-news,.home-interviews,.home-message,.home-about,.home-work,.home-talk) .button {
  position:relative;
  isolation:isolate;
  width:275px;
  height:50px;
  min-height:50px;
  padding:0 0 0 30px;
  justify-content:flex-start;
  gap:0;
  font:700 14px/1.7 Roboto,sans-serif;
  letter-spacing:1.6px;
  color:#fff;
  background:#002341;
  transform:none;
  transition:color .3s ease;
}
.is-home :is(.home-news,.home-interviews,.home-message,.home-about,.home-work,.home-talk) .button::before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:0;
  height:100%;
  background:#fff;
  z-index:-1;
  transition:width .3s ease;
}
.is-home :is(.home-news,.home-interviews) .button::before {background:#007ec2}
.is-home :is(.home-news,.home-interviews,.home-message,.home-about,.home-work,.home-talk) .button:hover::before {width:100%}
.is-home :is(.home-message,.home-about,.home-work,.home-talk) .button:hover {color:#002341}
.is-home :is(.home-news,.home-interviews,.home-message,.home-about,.home-work,.home-talk) .button>span[aria-hidden="true"] {
  position:absolute;
  top:50%;
  right:0;
  display:block;
  width:50px;
  height:1px;
  margin:0;
  border:0;
  background:currentColor;
  font-size:0;
  line-height:0;
  transform:translateY(-50%);
  transition:background-color .3s ease;
}
/* Retain the About text-column footprint while its button becomes 50px high. */
.is-home .home-about .button {margin-bottom:2.046875px}
@media(max-width:700px) {
  .is-home .home-about .button {margin-bottom:1px}
}
@media(max-width:768px) {
  .is-home :is(.home-news,.home-interviews,.home-message,.home-about,.home-work,.home-talk) .button {letter-spacing:1.5px}
}
@media(max-width:476px) {
  .is-home :is(.home-news,.home-interviews,.home-message,.home-about,.home-work,.home-talk) .button {letter-spacing:1.4px}
}

:is(.header-actions,.mobile-actions)>a {
  position:relative;
  isolation:isolate;
  color:#fff;
  font:700 12px/1.7 "Noto Sans JP",sans-serif;
  letter-spacing:normal;
  transform:none;
  transition:color .3s ease;
}
:is(.header-actions,.mobile-actions)>.fulltime {background:#084d93}
:is(.header-actions,.mobile-actions)>.parttime {background:#007ec2}
:is(.header-actions,.mobile-actions)>a::before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:0;
  height:100%;
  z-index:-1;
  transition:width .3s ease;
}
:is(.header-actions,.mobile-actions)>.fulltime::before {background:#0c60b5}
:is(.header-actions,.mobile-actions)>.parttime::before {background:#3ea0cf}
:is(.header-actions,.mobile-actions)>.entry-link {
  border:0;
  color:#002341;
  background:#fff;
  font-family:Roboto,sans-serif;
  font-size:13px;
}
:is(.header-actions,.mobile-actions)>.entry-link::after {
  content:"";
  position:absolute;
  inset:0;
  border:2px solid #002341;
  z-index:-2;
}
:is(.header-actions,.mobile-actions)>.entry-link::before {background:#f7b942}
:is(.header-actions,.mobile-actions)>a:hover::before {width:100%}
:is(.header-actions,.mobile-actions)>.entry-link:hover {color:#fff}
.mobile-actions>a {flex:none;width:calc((100% - 20px)/3)}
.mobile-actions>.entry-link::after {display:none}
@media(max-width:476px) {
  .mobile-actions>a {font-size:10px}
  .mobile-actions>.entry-link {font-size:12px}
  .mobile-actions>.entry-link:hover {color:#002341}
}

.footer-v3 .footer-official {
  position:relative;
  isolation:isolate;
  color:#fff;
  transition:color .3s ease;
}
.footer-v3 .footer-official::before {
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:0;
  height:100%;
  background:#fff;
  z-index:-1;
  transition:width .3s ease;
}
.footer-v3 .footer-official:hover {color:#002341}
.footer-v3 .footer-official:hover::before {width:100%}

/* Source-sized scroll cue; retain the existing animated dot and target. */
.is-home .scroll-cue-wrap {position:absolute;left:50%;bottom:20px;transform:translateX(-50%);z-index:2;font:500 16px/1.7 "Noto Sans JP",sans-serif;}
.is-home .scroll-cue {position:relative;display:inline;inset:auto;transform:none;padding-top:55px;font:inherit;text-align:center;color:#fff;}
.is-home .scroll-cue>.scroll-cue-label {font:700 10px/1.7 Roboto,sans-serif;}
.is-home .scroll-cue>.scroll-cue-line {position:absolute;display:block;left:50%;top:0;transform:translateX(-50%);width:1px;height:50px;margin:0;background:#fff;}
@media(max-width:768px){.is-home .scroll-cue-wrap{bottom:70px;font-size:15px;}}
@media(max-width:576px){.is-home .scroll-cue-wrap{font-size:14px;}}

/* Audit candidate only: the existing one logo, heading, lead and button remain. */
.is-home .home-about {
  position:relative;
  z-index:2;
  display:flex;
  align-items:start;
  gap:0 80px;
  min-height:0;
  padding:100px max(calc((100vw - 1400px)/2 + 50px),50px) 0;
  margin:0 0 180px;
  background:none;
}
.is-home .home-about::before {
  content:"";
  position:absolute;
  top:50px;
  bottom:-50px;
  left:0;
  right:0;
  background:rgba(8,77,147,.12);
  pointer-events:none;
}
.is-home .home-about>img {
  grid-column:1;
  grid-row:1;
  flex:0 1 53%;
  width:53%;
  min-width:0;
  max-width:none;
  height:auto;
  margin:0;
  order:0;
}
.is-home .home-about>picture.pal-mobile-picture>img {
  grid-column:1;
  grid-row:1;
  flex:0 1 53%;
  width:53%;
  min-width:0;
  max-width:none;
  height:auto;
  margin:0;
  order:0;
}
.is-home .home-about>div {
  grid-column:2;
  grid-row:1;
  flex:0 1 47%;
  width:47%;
  min-width:275px;
  padding:25px 0 0;
}
.is-home .home-about .section-heading {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  margin:0 0 60px;
  text-align:left;
}
.is-home .home-about .section-heading h2 {margin:0;line-height:1.7}
.is-home .home-about .section-heading i {width:24px;height:6px;flex:none;margin:19px 0 35px}
.is-home .home-about .lead {
  max-width:27em;
  margin:0;
  font-size:clamp(14px,calc(12.6850828729px + .2762430939vw),16px);
  font-weight:500;
  line-height:1.7;
  letter-spacing:normal;
  color:#191919;
  text-wrap:balance;
}
.is-home .home-about .button {margin:0}
@media(max-width:1200px) {
  .is-home .home-about {padding-top:80px;margin-bottom:120px}
  .is-home .home-about::before {top:30px}
  .is-home .home-about>div {padding-top:15px;padding-bottom:80px}
}
@media(max-width:992px) {
  .is-home .home-about {padding-top:60px;margin-bottom:80px}
  .is-home .home-about>img {flex-basis:65%;width:65%}
  .is-home .home-about>picture.pal-mobile-picture>img {flex-basis:65%;width:65%}
  .is-home .home-about::before {top:10px}
  .is-home .home-about>div {padding-bottom:50px}
  .is-home .home-about .section-heading {margin-bottom:30px}
  .is-home .home-about .section-heading i {width:22px;margin:9px 0 25px}
}
/* Only presentation of the existing hard break changes while this column is
   wide enough for the source three-line density but narrower than our 25-char line. */
@media(min-width:941px) and (max-width:1002px) {
  .is-home .home-about .lead br {display:none}
}
@media(max-width:768px) {
  .is-home .home-about {display:grid;grid-template-columns:minmax(0,1fr);padding:60px 20px;gap:0}
  .is-home .home-about::before {bottom:10px}
  .is-home .home-about>div {display:contents}
  .is-home .home-about .section-heading {grid-column:1;grid-row:1;align-items:center;margin:0 0 30px;text-align:center}
  .is-home .home-about .section-heading i {width:22px;margin:9px 0 25px}
  .is-home .home-about .lead {max-width:27em}
  .is-home .home-about>img {grid-column:1;grid-row:2;width:100%;margin-bottom:40px}
  .is-home .home-about>picture.pal-mobile-picture>img {grid-column:1;grid-row:2;width:100%;margin-bottom:40px}
  .is-home .home-about .button {grid-column:1;grid-row:3;justify-self:center;margin:0}
}

/* Keep the existing company text together at Japanese phrase boundaries where
   supported. Unsupported browsers retain the verified normal wrap above. */
@supports (word-break:auto-phrase) {
  @media(min-width:941px) and (max-width:1002px) {
    .is-home .home-about .lead {word-break:auto-phrase}
  }
}

/* Audit candidate: preserve all eight people, photographs, SVGs and interaction code. */
.is-home .home-interviews .interview-grid {
  width:min(1100px,calc(100vw - 40px));
  max-width:none;
  margin-left:calc(50% - min(550px,calc(50vw - 20px)));
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:50px;
}
.is-home .home-interviews .person-card:nth-child(3n+1) {--person-accent:#3ea0cf}
.is-home .home-interviews .person-card:nth-child(3n+2) {--person-accent:#007ec2}
.is-home .home-interviews .person-card:nth-child(3n) {--person-accent:#05509b}
.is-home .home-interviews .person-label {margin-top:-32px;padding-top:0}
.is-home .home-interviews .person-label small,
.is-home .home-interviews .person-label b {
  display:flex;
  align-items:center;
  justify-content:center;
  height:32px;
  padding:0 15px;
  margin:0;
  font-family:'Noto Sans JP','Yu Gothic',Meiryo,sans-serif;
  font-size:15px;
  font-weight:700;
  line-height:1.7;
  letter-spacing:normal;
  white-space:nowrap;
}
.is-home .home-interviews .person-label small {background:#fff;color:var(--person-accent)}
.is-home .home-interviews .person-label b {height:31px;background:var(--person-accent);color:#fff}
@media(max-width:992px) {
  .is-home .home-interviews .interview-grid {gap:30px}
  .is-home .home-interviews .person-label {margin-top:-26px}
  .is-home .home-interviews .person-label small,
  .is-home .home-interviews .person-label b {height:26px;padding:0 10px;font-size:13px}
}
@media(max-width:768px) {
  .is-home .home-interviews .interview-grid {gap:20px}
  .is-home .home-interviews .person-label {margin-top:-22px}
  .is-home .home-interviews .person-label small,
  .is-home .home-interviews .person-label b {height:22px;font-size:10px}
}
@media(max-width:576px) {
  .is-home .home-interviews .interview-grid {
    width:100%;
    max-width:400px;
    margin-inline:auto;
    grid-template-columns:minmax(0,1fr);
  }
}

/* Consultation geometry and verified job/consultation hover, 2026-09-22. */
/* Append after current styles. Behavioral spec only; does not copy source CSS.
   Scoped to .job-card and the two .briefing-banners anchors. */

.job-card .job-photo {
  opacity: 1;
  transition: opacity 300ms ease;
}

.job-card:hover .job-photo {
  opacity: 0.7;
}

.job-card:nth-child(odd) .job-label > b,
.job-card:nth-child(odd) .job-label > span,
.job-card:nth-child(even) .job-label > b,
.job-card:nth-child(even) .job-label > span {
  transition: background-color 300ms ease;
}

.job-card:nth-child(odd) .job-label > b {
  background-color: #007ec2;
}

.job-card:nth-child(odd) .job-label > span {
  background-color: #3ea0cf;
}

.job-card:nth-child(odd):hover .job-label > b {
  background-color: #3ea0cf;
}

.job-card:nth-child(odd):hover .job-label > span {
  background-color: #007ec2;
}

.job-card:nth-child(even) .job-label > b {
  background-color: #084d93;
}

.job-card:nth-child(even) .job-label > span {
  background-color: #007ec2;
}

.job-card:nth-child(even):hover .job-label > b {
  background-color: #007ec2;
}

.job-card:nth-child(even):hover .job-label > span {
  background-color: #084d93;
}

.briefing-banners > a {
  overflow: hidden;
}

.briefing-banners > a:before {
  content: "";
  position: absolute;
  border-top-width: 0;
  border-top-style: none;
  width: auto;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 0;
  background-color: rgba(12,96,181,.77);
}

.briefing-banners > a:nth-child(2):before {
  background-color: rgba(167,154,130,.77);
}

.briefing-banners > a:after {
  content: "";
  position: absolute;
  border-top-width: 0;
  border-top-style: none;
  width: 100%;
  top: 0;
  right: auto;
  bottom: 0;
  left: -100%;
  z-index: 0;
  background-color: #084d93;
  transition: left 300ms ease;
}

.briefing-banners > a:nth-child(2):after {
  background-color: #817661;
}

.briefing-banners > a:hover:after {
  left: 0;
}

/* Independent geometry proposal, loaded after the verified hover009 proposal. */
.concept{min-height:0;padding-top:120px;padding-bottom:60.14px}
.concept>h2{margin-bottom:40px}
.concept>p{margin-bottom:70px}
.concept>b{display:flex;align-items:center;justify-content:center;width:100%;max-width:1100px;margin:0 auto 25px;font-size:clamp(14px,calc(14px + (100vw - 476px) * 8 / 516),22px);line-height:1.7}
.concept>b::before,.concept>b::after{content:"";display:block;flex:0 0 2px;height:35px;background:currentColor}
.concept>b::before{margin-right:15px;transform:rotate(-30deg)}
.concept>b::after{margin-left:15px;transform:rotate(30deg)}
.concept .briefing-banners{display:flex;justify-content:center;align-items:stretch;width:100%;max-width:1100px;gap:30px;margin:0 auto}
.concept .briefing-banners>a{flex:0 1 380px;width:50%;max-width:380px;min-width:0;height:193px;position:relative}
.concept .briefing-banners>a>img{width:100%;height:100%;object-fit:cover;object-position:center}
.concept .briefing-banners>a>picture.pal-mobile-picture>img{width:100%;height:100%;object-fit:cover;object-position:center}
.concept .briefing-banner-text{position:absolute;top:50%;left:0;transform:translateY(-50%);display:flex;flex-direction:column;width:100%;padding-left:40px;line-height:1.4;z-index:1}
.concept .briefing-banner-text small{display:block;font-size:clamp(12px,calc(12px + (100vw - 476px) * 10 / 516),22px);font-weight:700;line-height:1.4}
.concept .briefing-banner-text b{display:block;font-size:clamp(16px,calc(16px + (100vw - 476px) * 14 / 516),30px);font-weight:700;line-height:1.4}
.concept .briefing-banner-text::after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:80px;height:1px;background:#fff;pointer-events:none}
.concept+.home-interviews{padding-top:120px}
@media(max-width:1200px){.concept{padding-top:100px;padding-bottom:100px}.concept+.home-interviews{padding-top:100px}}
@media(max-width:992px){
 .concept{padding-top:80px;padding-bottom:80px}
 .concept>b{margin-bottom:20px}
 .concept>b::before,.concept>b::after{height:30px}
 .concept .briefing-banners{gap:20px}
 .concept .briefing-banners>a{height:160px}
 .concept .briefing-banner-text{padding-left:20px}
 .concept .briefing-banner-text::after{width:60px}
 .concept+.home-interviews{padding-top:80px}
}
@media(max-width:768px){
 .concept>b{margin-bottom:15px}
 .concept>b::before,.concept>b::after{height:25px}
 .concept .briefing-banners>a{height:120px}
 .concept .briefing-banner-text{padding-left:15px}
 .concept .briefing-banner-text::after{width:40px}
}
@media(max-width:576px){.concept .briefing-banners>a{height:100px}}
@media(max-width:476px){
 .concept>b{margin-bottom:10px}
 .concept .briefing-banners{gap:15px}
 .concept .briefing-banners>a{height:80px}
 .concept .briefing-banner-text::after{width:30px}
}


/* Platform banner and its local spacing; original imagery and sections remain. */
.recruit-section .instagram{display:flex;flex-direction:column;align-items:center;width:100%;max-width:1100px;margin:70px auto 0}
.recruit-section .instagram p{display:flex;align-items:center;justify-content:center;margin:0 0 10px;font-size:clamp(16px,calc(16px + 5 * (100vw - 768px) / 432),21px);font-weight:700;line-height:1.2}
.recruit-section .instagram p::before,.recruit-section .instagram p::after{content:"";display:block;position:relative;top:2px;width:2px;height:30px;flex:none;background:#bb3170;font-size:inherit;color:inherit}
.recruit-section .instagram p::before{margin:0 18px 0 0;transform:rotate(-30deg)}
.recruit-section .instagram p::after{margin:0 0 0 18px;transform:rotate(30deg)}
.recruit-section .instagram-link{display:block;position:relative;width:400px;max-width:100%;isolation:isolate}
.recruit-section .instagram-link::before{content:"";position:absolute;top:0;left:0;width:0;height:100%;z-index:1;background:white;transition:width 300ms ease}
.recruit-section .instagram-link:hover::before{width:100%}
.recruit-section .instagram-link img{position:relative;z-index:2;display:block;width:100%;max-width:100%;height:auto;aspect-ratio:800/282}
@media(max-width:992px){.recruit-section .instagram{margin-top:50px}}
@media(max-width:768px){.recruit-section .instagram{margin-top:40px}.recruit-section .instagram p::before,.recruit-section .instagram p::after{height:24px}.recruit-section .instagram-link{width:295px}}

/* Audit candidate: match source section rhythm; retain all company copy and cards. */
.is-home .home-interviews {padding-top:120px;padding-bottom:180px}
.is-home .home-interviews>.section-heading {
  display:flex;
  flex-direction:column;
  align-items:center;
  margin:0 0 60px;
  text-align:center;
}
.is-home .home-interviews>.section-heading h2 {margin:0;line-height:1.7}
.is-home .home-interviews>.section-heading i {flex:none;width:24px;height:6px;margin:19px auto 35px}
.is-home .home-interviews>.section-heading .lead {
  max-width:100%;
  margin:0;
  font-size:clamp(14px,calc(12.6850828729px + .2762430939vw),16px);
  font-weight:500;
  line-height:1.7;
  letter-spacing:normal;
  color:#191919;
  text-wrap:balance;
}
.is-home .home-interviews>.button {margin:100px auto 0}
@media(max-width:1200px) {
  .is-home .home-interviews {padding-top:100px;padding-bottom:120px}
}
@media(max-width:992px) {
  .is-home .home-interviews {padding-top:80px;padding-bottom:80px}
  .is-home .home-interviews>.section-heading {margin-bottom:30px}
  .is-home .home-interviews>.section-heading i {width:22px;margin:9px auto 25px}
  .is-home .home-interviews>.button {margin-top:60px}
}
@media(max-width:476px) {
  .is-home .home-interviews>.section-heading .lead {max-width:19em}
  .is-home .home-interviews>.button {margin-top:40px}
}

/* Audit candidate: source mobile overlay is transparent -> white 0.3 in 300ms.
   The existing static gradient is not part of that source overlay. Restrict the
   correction to <=576px and preserve both photographic files and off/on logic. */
@media(max-width:576px) {
  .is-home .home-interviews .portrait::after {
    background:rgba(255,255,255,0);
    transition:background-color .3s ease;
  }
  .is-home .home-interviews .person-card:hover .portrait::after {
    background:rgba(255,255,255,.3);
  }
}

/* Dynamic social icon color and scoped text hover, 2026-09-22. */
/* Audit candidate. Icon masks come from --social-icon-mask on each IMG. No runtime PASS. */

#site-menu .menu-pages > a {
  color: #fff;
  transition: color 300ms ease;
}
#site-menu .menu-pages > a:hover {
  color: #5ebbe5;
}

.footer-v3 .footer-navigation > nav a {
  color: #fff;
  transition: color 300ms ease;
}
.footer-v3 .footer-navigation > nav a:hover {
  color: #5ebbe5;
}

@supports (mask-image: url("x")) or (-webkit-mask-image: url("x")) {
  #site-menu .menu-social>a:not(.menu-official)>img.social-icon-mask-ready,
  .footer-v3 .footer-social>a:not(.footer-official)>img.social-icon-mask-ready {
    filter: none;
    width: 100%;
    height: 100%;
    object-fit: none;
    object-position: -9999px 0;
    background-color: #fff;
    transition: background-color 300ms ease;
    -webkit-mask-image: var(--social-icon-mask);
    mask-image: var(--social-icon-mask);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-source-type: alpha;
    mask-mode: alpha;
  }
  #site-menu .menu-social>a:not(.menu-official)>picture.pal-mobile-picture>img.social-icon-mask-ready,
  .footer-v3 .footer-social>a:not(.footer-official)>picture.pal-mobile-picture>img.social-icon-mask-ready {
    filter: none;
    width: 100%;
    height: 100%;
    object-fit: none;
    object-position: -9999px 0;
    background-color: #fff;
    transition: background-color 300ms ease;
    -webkit-mask-image: var(--social-icon-mask);
    mask-image: var(--social-icon-mask);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-source-type: alpha;
    mask-mode: alpha;
  }

  #site-menu .menu-social>a:not(.menu-official):hover>img.social-icon-mask-ready,
  .footer-v3 .footer-social>a:not(.footer-official):hover>img.social-icon-mask-ready {
    background-color: #5ebbe5;
  }

  #site-menu .menu-social>a:not(.menu-official):hover>picture.pal-mobile-picture>img.social-icon-mask-ready,
  .footer-v3 .footer-social>a:not(.footer-official):hover>picture.pal-mobile-picture>img.social-icon-mask-ready {
    background-color: #5ebbe5;
  }
}


/* Interview index candidate, independently measured on /interview/ at nine widths.
   Preserve all eight people, all 24 image elements, text and interaction code.
   Source listing uses the same card dimensions but a separate page heading. */
body[data-route="/interview"] .interview-grid {
  width:min(1100px,calc(100vw - 40px));
  max-width:none;
  margin-left:calc(50% - min(550px,calc(50vw - 20px)));
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:50px;
}
body[data-route="/interview"] .person-card:nth-child(3n+1) {--person-accent:#3ea0cf}
body[data-route="/interview"] .person-card:nth-child(3n+2) {--person-accent:#007ec2}
body[data-route="/interview"] .person-card:nth-child(3n) {--person-accent:#05509b}
body[data-route="/interview"] .person-label {margin-top:-32px;padding-top:0}
body[data-route="/interview"] .person-label small,
body[data-route="/interview"] .person-label b {
  display:flex;
  align-items:center;
  justify-content:center;
  height:32px;
  padding:0 15px;
  margin:0;
  font-family:'Noto Sans JP','Yu Gothic',Meiryo,sans-serif;
  font-size:15px;
  font-weight:700;
  line-height:1.7;
  letter-spacing:normal;
  white-space:nowrap;
}
body[data-route="/interview"] .person-label small {background:#fff;color:var(--person-accent)}
body[data-route="/interview"] .person-label b {height:31px;background:var(--person-accent);color:#fff}
@media(max-width:992px) {
  body[data-route="/interview"] .interview-grid {gap:30px}
  body[data-route="/interview"] .person-label {margin-top:-26px}
  body[data-route="/interview"] .person-label small,
  body[data-route="/interview"] .person-label b {height:26px;padding:0 10px;font-size:13px}
}
@media(max-width:768px) {
  body[data-route="/interview"] .interview-grid {gap:20px}
  body[data-route="/interview"] .person-label {margin-top:-22px}
  body[data-route="/interview"] .person-label small,
  body[data-route="/interview"] .person-label b {height:22px;font-size:10px}
}
@media(max-width:576px) {
  body[data-route="/interview"] .interview-grid {
    width:100%;
    max-width:400px;
    margin-inline:auto;
    grid-template-columns:minmax(0,1fr);
  }
}

/* Audit candidate: source mobile overlay is transparent -> white 0.3 in 300ms.
   The existing static gradient is not part of that source overlay. Restrict the
   correction to <=576px and preserve both photographic files and off/on logic. */
@media(max-width:576px) {
  body[data-route="/interview"] .portrait::after {
    background:rgba(255,255,255,0);
    transition:background-color .3s ease;
    /* Source white wash sits above off/on photographs, lettering and name badge. */
    z-index:3;
  }
  body[data-route="/interview"] .person-card:hover .portrait::after {
    background:rgba(255,255,255,.3);
  }
}

/* Interview index page frame. Source: sec.css + .md-sml.st-secheader.
   Keep all card media, names and page text. Header navigation itself is unchanged.
   The source sticky header occupies these heights in normal document flow.
   A pseudo spacer preserves native scroll anchoring when its height changes;
   changing main padding would suppress that browser anchor adjustment. */
body[data-route="/interview"] main {padding-top:0}
body[data-route="/interview"] main::before {
  content:"";
  display:block;
  height:110px;
  transition:height .3s ease;
}
body[data-route="/interview"] .index-page {
  padding-top:0;
  padding-bottom:180px;
}
body[data-route="/interview"] .index-page .section-heading {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100vw;
  height:120px;
  margin:0 0 40px calc(50% - 50vw);
  padding:30px 0 0;
  line-height:1.2;
}
body[data-route="/interview"] .index-page .section-heading h1 {
  margin:0 0 10px;
  font-family:'Noto Sans JP','Yu Gothic',Meiryo,sans-serif;
  font-size:clamp(28px,calc((34 - 28) / (992 - 476) * 100 * 1vw + (992 * 28 - 476 * 34) / (992 - 476) * 1px),34px);
  font-weight:700;
  line-height:1.2;
  letter-spacing:.1em;
  color:#002341;
}
body[data-route="/interview"] .index-page .section-heading .subtitle {
  margin:0;
  font-family:'Noto Sans JP','Yu Gothic',Meiryo,sans-serif;
  font-size:12px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.1em;
  color:#002341;
}
@media(max-width:1200px) {
  body[data-route="/interview"] main::before {height:140px}
  body[data-route="/interview"] .index-page {padding-bottom:150px}
}
@media(max-width:992px) {
  body[data-route="/interview"] main::before {height:130px}
  body[data-route="/interview"].scrolled main::before {height:110px}
  body[data-route="/interview"] .index-page {padding-bottom:120px}
}
@media(max-width:768px) {
  body[data-route="/interview"] main::before {height:100px}
  body[data-route="/interview"] .index-page {padding-bottom:90px}
}
@media(max-width:576px) {
  body[data-route="/interview"] .index-page {padding-bottom:60px}
}

/* Home only: source white wash covers photo, SVG lettering and name badge.
   Preserve the already-adopted 300ms ease alpha transition and all card data. */
@media(max-width:576px) {
  .is-home .home-interviews .portrait::after {z-index:3}
}

/* Interview figure stack, taken from the captured source rules.
   source-interview.css: wash is transparent at rest and sits at z-index 250,
   lettering 240, off photograph 230, on photograph 220.
   Above 576px, hover only fades the off photograph (transition .4s).
   The white 0.3 wash is the max-width 576px hover only.
   The extra dark gradient is not in the source. Photographs, SVG files,
   badge copy, grid, and the 16 image elements stay as they are. */
.portrait::after{
  background:rgba(255,255,255,0);
  z-index:250;
  transition:background-color .3s;
}
.portrait .off{z-index:230;transition:opacity .4s}
.portrait .on{z-index:220;opacity:1;transition:none}
.portrait .card-letter{z-index:240}
@media not all and (max-width:576px){
  .person-card:hover .portrait::after,
  .is-home .home-interviews .person-card:hover .portrait::after,
  body[data-route="/interview"] .person-card:hover .portrait::after{
    background:rgba(255,255,255,0);
  }
}
@media(max-width:576px){
  .portrait::after,
  .is-home .home-interviews .portrait::after,
  body[data-route="/interview"] .portrait::after{z-index:250;}
  .person-card:hover .portrait::after,
  .is-home .home-interviews .person-card:hover .portrait::after,
  body[data-route="/interview"] .person-card:hover .portrait::after{
    background:rgba(255,255,255,.3);
  }
}

/* Recruit band matches source-style-4.css sizes and hover.
   The label stays above the 1px line (source title z-index 50).
   Copy, images, and the entry arrow node are unchanged. */
.recruit-section{padding:120px 20px 40%;background-color:#dee9eb;background-image:var(--recruit-bg);background-size:100% auto;background-position:center bottom;background-repeat:no-repeat}
.recruit-section .section-heading{display:flex;flex-direction:column;align-items:center;margin:0 auto 60px;max-width:1100px}
.recruit-section .section-heading h2{font-family:Roboto,Arial,sans-serif;font-size:clamp(30px,calc(30px + 14 * (100vw - 476px) / 724),44px);font-weight:700;line-height:1.7;letter-spacing:.1em;margin:0}
.recruit-section .section-heading i{position:static;flex:none;width:24px;height:6px;margin:19px auto 35px;background:#002341}
.recruit-section .section-heading .lead{width:100%;max-width:none;margin:0;color:#191919;font-size:clamp(14px,calc(14px + 2 * (100vw - 476px) / 724),16px);font-weight:500;line-height:1.7;text-align:center}
.recruit-section .recruit-banners{display:flex;flex-direction:row;width:100%;max-width:926px;margin:0 auto;gap:30px}
.recruit-section .recruit-banners>a{position:relative;flex:1 1 0;min-width:0;width:auto;max-width:none;height:193px;isolation:isolate}
.recruit-section .recruit-banners img{width:100%;height:100%;object-fit:cover;object-position:right center}
.recruit-section .recruit-banner-text{position:absolute;left:35px;right:0;top:50%;display:flex;flex-direction:column;transform:translateY(-50%);color:white;line-height:1.4;z-index:50;pointer-events:none}
.recruit-section .recruit-banner-text b{display:block;font-size:clamp(20px,calc(20px + 7 * (100vw - 476px) / 724),27px);font-weight:500;line-height:1.4;margin:0 0 10px}
.recruit-section .recruit-banner-text small{display:block;font-family:Roboto,Arial,sans-serif;font-size:10px;font-weight:500;line-height:1.4;margin:0}
.recruit-section .recruit-banners>a::before{content:"";position:absolute;left:0;top:0;width:0;height:100%;background:#084d93;z-index:1;transition:width 300ms ease}
.recruit-section .recruit-banners>a:nth-child(2)::before{background:#007ec2}
.recruit-section .recruit-banners>a:hover::before{width:100%}
.recruit-section .recruit-banners>a::after{content:"";position:absolute;top:50%;right:0;width:80px;height:1px;background:white;transform:translateY(-50%);opacity:0;z-index:3;transition:opacity 300ms ease}
.recruit-section .recruit-banners>a:hover::after{opacity:1}
.entry-band{position:relative;display:flex;align-items:center;justify-content:center;height:200px;min-height:0;padding:0;gap:10px;background:#f7b942;color:white;isolation:isolate;font-weight:700;text-align:center}
.entry-band::before{content:"";position:absolute;top:0;left:0;width:0;height:100%;background:#f29f00;z-index:1;transition:width 300ms ease}
.entry-band:hover::before{width:100%}
.entry-band>small{display:block;position:relative;z-index:2;font-size:clamp(14px,calc(14px + 6 * (100vw - 476px) / 724),20px);font-weight:500;line-height:1.7}
.entry-band>.entry-main{display:block;position:relative;z-index:2;margin:0;font-family:Roboto,'Noto Sans JP',sans-serif;font-size:clamp(30px,calc(30px + 20 * (100vw - 476px) / 724),50px);font-weight:700;line-height:1;letter-spacing:.1em}
@media(max-width:1200px){.recruit-section{padding-top:100px}}
@media(max-width:992px){
 .recruit-section{padding-top:80px}
 .recruit-section .section-heading{margin-bottom:30px}
 .recruit-section .section-heading i{width:22px;margin:9px auto 25px}
 .recruit-section .recruit-banners{gap:20px}
 .recruit-section .recruit-banners>a{height:170px}
 .recruit-section .recruit-banner-text{left:25px}
 .entry-band{height:160px}
}
@media(max-width:768px){
 .recruit-section{padding-top:60px;padding-bottom:75%;background-image:var(--recruit-mobile-bg)}
 .recruit-section .recruit-banners{flex-direction:column;max-width:335px;gap:20px}
 .recruit-section .recruit-banners>a{flex:none;width:100%;height:145px}
 .entry-band{height:140px}
}
@media(max-width:476px){.entry-band{height:110px}}

/* Section pages use the source sticky header. It stays in normal flow, so the
   fixed-header padding and the interview spacer would double the gap.
   Home keeps absolute-until-scroll. The open menu stays fixed. */
body:not(.is-home):not(.menu-open) .site-header{
  position:sticky;
  top:0;
  z-index:500;
}
body:not(.is-home) main{padding-top:0}
body[data-route="/interview"] main::before,
body[data-route="/interview"].scrolled main::before{
  height:0;
}

/* Job index uses the source large section header: title, bar, then the
   existing jobcontents lead. Card size stays; only the header stack changes. */
body[data-route="/jobcontents"] .index-page{padding-top:0;padding-bottom:100px}
body[data-route="/jobcontents"] .index-page>.section-heading{
  width:100vw;
  margin:0 0 30px calc(50% - 50vw);
  padding:30px 20px 0;
}
body[data-route="/jobcontents"] .index-page>.section-heading h1{
  margin:0 0 10px;
  font-family:'Noto Sans JP','Yu Gothic',Meiryo,sans-serif;
  font-size:clamp(28px,calc((34 - 28) / (992 - 476) * 100 * 1vw + (992 * 28 - 476 * 34) / (992 - 476) * 1px),34px);
  font-weight:700;
  line-height:1.2;
  letter-spacing:.1em;
}
body[data-route="/jobcontents"] .index-page>.section-heading .subtitle{
  margin:0;
  font-family:'Noto Sans JP','Yu Gothic',Meiryo,sans-serif;
  font-size:12px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.1em;
}
body[data-route="/jobcontents"] .index-page>.section-heading i{
  display:block;
  width:22px;
  height:6px;
  margin:22px auto 22px;
}
body[data-route="/jobcontents"] .index-page>.section-heading .lead{
  max-width:none;
  margin:0;
  color:#191919;
  font-size:14px;
  font-weight:500;
  line-height:1.7;
  text-align:center;
}
body[data-route="/jobcontents"] .job-grid{margin-top:0}
@media(max-width:576px){
  body[data-route="/jobcontents"] .index-page{padding-bottom:60px}
}
@media(max-width:992px){
  .talk-index>.container{margin-top:30px}
}
@media(max-width:576px){
  .talk-index .section-heading{padding-top:6.2px}
}

/* Information index uses the same large section header as the source. */
body[data-route^="/information"] main>.section-heading,body[data-route^="/category/"] main>.section-heading,body[data-route="/company-briefing"] main>.section-heading{
  width:100vw;
  margin:0 0 30px calc(50% - 50vw);
  padding:30px 20px 0;
}
body[data-route^="/information"] main>.section-heading h1,body[data-route^="/category/"] main>.section-heading h1,body[data-route="/company-briefing"] main>.section-heading h1{
  margin:0 0 10px;
  font-family:'Noto Sans JP','Yu Gothic',Meiryo,sans-serif;
  font-size:clamp(28px,calc((34 - 28) / (992 - 476) * 100 * 1vw + (992 * 28 - 476 * 34) / (992 - 476) * 1px),34px);
  font-weight:700;
  line-height:1.2;
  letter-spacing:.1em;
}
body[data-route^="/information"] main>.section-heading .subtitle,body[data-route^="/category/"] main>.section-heading .subtitle,body[data-route="/company-briefing"] main>.section-heading .subtitle{
  margin:0;
  font-family:'Noto Sans JP','Yu Gothic',Meiryo,sans-serif;
  font-size:12px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.1em;
}
body[data-route^="/information"] main>.section-heading i,body[data-route^="/category/"] main>.section-heading i,body[data-route="/company-briefing"] main>.section-heading i{
  display:block;
  width:22px;
  height:6px;
  margin:22px auto 22px;
}
body[data-route^="/information"] main>.section-heading .lead,body[data-route^="/category/"] main>.section-heading .lead,body[data-route="/company-briefing"] main>.section-heading .lead{
  max-width:none;
  margin:0;
  color:#191919;
  font-size:14px;
  font-weight:500;
  line-height:1.7;
  text-align:center;
}
body[data-route^="/information"] .news-filters,body[data-route^="/category/"] .news-filters{margin-top:0}

/* About index uses the same large section header. */
body[data-route="/aboutus"] main>.section-heading{
  width:100vw;
  margin:0 0 80px calc(50% - 50vw);
  padding:30px 20px 0;
}
body[data-route="/aboutus"] main>.section-heading h1{
  margin:0 0 10px;
  font-family:'Noto Sans JP','Yu Gothic',Meiryo,sans-serif;
  font-size:clamp(28px,calc((34 - 28) / (992 - 476) * 100 * 1vw + (992 * 28 - 476 * 34) / (992 - 476) * 1px),34px);
  font-weight:700;
  line-height:1.2;
  letter-spacing:.1em;
}
body[data-route="/aboutus"] main>.section-heading .subtitle{
  margin:0;
  font-family:'Noto Sans JP','Yu Gothic',Meiryo,sans-serif;
  font-size:12px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:.1em;
}
body[data-route="/aboutus"] main>.section-heading i{
  display:block;
  width:22px;
  height:6px;
  margin:22px auto 22px;
}
body[data-route="/aboutus"] main>.section-heading .lead{
  max-width:none;
  margin:0;
  color:#191919;
  font-size:14px;
  font-weight:500;
  line-height:1.7;
  text-align:center;
}
@media(max-width:700px){
  .home-news{padding-bottom:80px}   
  .concept{padding-bottom:196.55px}
  .is-home .home-interviews{padding-bottom:56.2px}
  .home-work{padding-bottom:81.6px}
}
 
.talk-index{padding-bottom:180px}
.talk-index>header{padding-bottom:30px}
.talk-index .section-heading{padding-top:30px}
.talk-index>.container{margin-top:50px}
@media(max-width:1200px){.talk-index{padding-bottom:150px}}
@media(max-width:992px){.talk-index{padding-bottom:120px}.talk-index>header{padding-bottom:0}.talk-index>.container{margin-top:60px}}
@media(max-width:768px){.talk-index{padding-top:0;padding-bottom:90px}.talk-index>header{padding-bottom:0}.talk-index>.container{margin-top:60px}.talk-index .section-heading{padding-top:30px}}
@media(max-width:576px){.talk-index{padding-bottom:60px}.talk-index .section-heading{padding-top:30px}}
@media(max-width:476px){.talk-index>.container{margin-top:40px}}
 
.home-news .st-infolist{max-width:800px;margin:0 auto 60px;padding:0}
.home-news .st-infolist_item{margin:0 0 25px;padding:0 20px 25px;border-bottom:1px solid #e6e6e6}
.home-news .st-infolist_info{display:flex;align-items:center;margin:0 0 5px;padding:0}
.home-news .st-infolist_date{display:block;margin:0 15px 0 0;font-family:Roboto,Arial,sans-serif;font-size:14px;font-weight:700;letter-spacing:.1em;line-height:1.7;color:#191919}
.home-news .st-infolist_term-list{display:flex;margin:0;padding:0;list-style:none}
.home-news .st-infolist_term-item{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:64px;height:20px;margin:0 5px 0 0;padding:0;font-size:12px;font-weight:700;line-height:1.7;color:#fff;background:#007ec2}
.home-news .st-infolist_term-item:last-child{margin-right:0}
.home-news .st-infolist_term-item.term02-parttime{background:#a79a82}
.home-news .st-infolist_text{margin:0;font-size:16px;line-height:1.4}
.home-news .st-infolist_link{color:#191919;text-decoration:none;transition:opacity .3s}
.home-news .st-infolist_link:hover{opacity:.5}   
@media(min-width:737px){   
 .home-news>.section-heading{margin-bottom:60px}
 .home-news>.section-heading i{margin-bottom:34px}
 .home-news>.section-heading .lead{line-height:1.7}
}
@media(max-width:736px){
 .home-news .st-infolist{margin:0 0 60px}
 .home-news .st-infolist_text{font-size:14px}
}

/* Department label colors. */
body:is(.is-home,[data-route="/interview"]) .person-card[href$="/interview/hakamata/index.html"] .person-label b{background:#2a7447!important;color:#ffffff!important}
body:is(.is-home,[data-route="/interview"]) .person-card[href$="/interview/okawa/index.html"] .person-label b,
body:is(.is-home,[data-route="/interview"]) .person-card[href$="/interview/suzuki/index.html"] .person-label b{background:#126e9c!important;color:#ffffff!important}
body:is(.is-home,[data-route="/interview"]) .person-card[href$="/interview/hiroumi/index.html"] .person-label b{background:#f1cf5b!important;color:#302914!important}
body:is(.is-home,[data-route="/interview"]) .person-card[href$="/interview/furukawa/index.html"] .person-label b{background:#243c5a!important;color:#ffffff!important}
body:is(.is-home,[data-route="/interview"]) .person-card[href$="/interview/okano/index.html"] .person-label b{background:#23262b!important;color:#ffffff!important}
body:is(.is-home,[data-route="/interview"]) .person-card[href$="/interview/n-suzuki/index.html"] .person-label b{background:#805333!important;color:#ffffff!important}
body:is(.is-home,[data-route="/interview"]) .person-card[href$="/interview/agata/index.html"] .person-label b,
body:is(.is-home,[data-route="/interview"]) .person-card[href$="/interview/miura/index.html"] .person-label b,
body:is(.is-home,[data-route="/interview"]) .person-card[href$="/interview/nakamura/index.html"] .person-label b{background:#963f4d!important;color:#ffffff!important}

/* Full-time banner framing. */
.recruit-section .recruit-banners>a:first-child img{object-position:center top!important}


/* A softer desktop transition between the two accepted staff photographs. */
@media(min-width:577px){
  body.is-home .home-interviews .person-card .portrait .off{
    transition:opacity .6s cubic-bezier(.4,0,.2,1);
  }
  body.is-home .home-interviews .person-card .portrait::after{
    transition-duration:.6s;
    transition-timing-function:cubic-bezier(.4,0,.2,1);
  }
  body[data-route="/interview"] .person-card .portrait .off{
    transition:opacity .3s cubic-bezier(.4,0,.2,1);
  }
}

/* Independent translate preserves existing rotations and layout transforms. */
body:not(.is-home) main .pal-text-reveal{
  opacity:0;
  translate:0 20px;
  transition:opacity .7s cubic-bezier(.165,.84,.44,1),translate .7s cubic-bezier(.165,.84,.44,1);
}
body:not(.is-home) main .pal-text-reveal.is-text-visible{
  opacity:1;
  translate:0 0;
}
body:not(.is-home) main.pal-text-reveal-init .pal-text-reveal{transition:none}
@media print{
  body:not(.is-home) main .pal-text-reveal{opacity:1;translate:none;transition:none}
}
