/*
 * Profile coherence layer v4
 * Japanese corporate portfolio + technical editorial support.
 * One type family, one spacing rhythm, restrained surfaces.
 */
:root{
  --pc4-font:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;
  --pc4-ink:#071b43;
  --pc4-text:#253b58;
  --pc4-muted:#596b82;
  --pc4-blue:#1557d5;
  --pc4-line:#cbd7e5;
  --pc4-soft:#f4f7fb;
  --pc4-white:#fff;
  --pc4-width:1180px;
  --pc4-gutter:48px;
  --pc4-section:96px;
  --pc4-radius:8px;
}

html{
  background:var(--pc4-white);
}
body{
  color:var(--pc4-text);
  background:var(--pc4-white)!important;
  background-image:none!important;
  font-family:var(--pc4-font)!important;
  font-size:16px;
  font-feature-settings:"palt" 0;
}
body::before{
  display:none!important;
}
body,
button,
input,
textarea,
select,
.site-header,
.mobile-nav,
.profile-fv,
.intro-slides,
.portfolio-showcase,
.case-wrapper,
.pf-section,
.portfolio-footer-v3,
.case-modal{
  font-family:var(--pc4-font)!important;
}

/* Type system */
.profile-fv-title,
.profile-fv-title span,
.profile-fv-title em,
.intro-slides-title,
.intro-slides-title-main,
.portfolio-showcase__title,
.case-wrapper .headline,
.portfolio-services .pf-title,
.portfolio-profile .pf-title,
.portfolio-skills .pf-title,
.web-work-card h3,
.github-project h3,
.portfolio-services__name,
.portfolio-skills__name{
  font-family:var(--pc4-font)!important;
}
.profile-fv-title{
  font-size:clamp(3rem,3.8vw,3.5rem)!important;
  font-weight:700!important;
  line-height:1.36!important;
  letter-spacing:-.035em!important;
}
.profile-fv-title em{
  font-style:normal;
  font-weight:700!important;
}
.intro-slides-title,
.intro-slides-title-main,
.portfolio-showcase__title,
.case-wrapper .headline,
.portfolio-services .pf-title,
.portfolio-profile .pf-title,
.portfolio-skills .pf-title{
  color:var(--pc4-ink)!important;
  font-size:2.5rem!important;
  font-weight:700!important;
  line-height:1.45!important;
  letter-spacing:-.025em!important;
}
.web-work-card h3,
.github-project h3,
.portfolio-services__name{
  color:var(--pc4-ink)!important;
  font-size:1.3rem!important;
  font-weight:600!important;
  line-height:1.55!important;
  letter-spacing:-.01em!important;
}
.profile-fv-kicker,
.intro-slides-eyebrow,
.portfolio-showcase__kicker,
.case-wrapper .hl-en,
.pf-kicker,
.profile-fv-selected-label,
.web-work-card__meta,
.github-project__visibility,
.github-project__role,
.portfolio-services__num{
  font-family:var(--pc4-font)!important;
  font-weight:700!important;
  letter-spacing:.12em!important;
}
.profile-fv-lead,
.intro-slides-title small,
.portfolio-showcase__lead,
.case-wrapper .lead,
.portfolio-services .pf-lead,
.portfolio-profile__body,
.portfolio-skills .pf-lead,
.web-work-card__summary,
.github-project__summary,
.portfolio-services__desc,
.portfolio-skills__desc{
  color:var(--pc4-text)!important;
  font-family:var(--pc4-font)!important;
  font-size:1rem!important;
  font-weight:400!important;
  line-height:1.9!important;
  letter-spacing:.015em!important;
}

/* Clean global canvas */
.site-header{
  background:rgba(255,255,255,.98)!important;
  border-bottom:1px solid var(--pc4-line)!important;
  box-shadow:none!important;
}
.site-logo-name,
.site-logo-role,
.gnav-list a,
.hd-phone,
.hd-cta,
.mn-logo,
.mn-link,
.mn-phone,
.mn-cta{
  font-family:var(--pc4-font)!important;
}
.gnav-list a,
.hd-phone,
.hd-cta{
  font-size:.84rem!important;
  font-weight:600!important;
  letter-spacing:.02em!important;
}
.gnav-list a{
  display:inline-flex!important;
  min-height:44px!important;
  align-items:center!important;
}
.hd-phone,
.hd-cta{
  border-radius:6px!important;
}
.hd-phone svg{
  display:none;
}
.site-logo--portfolio{
  min-height:44px!important;
}
a:focus-visible,
button:focus-visible{
  outline:3px solid rgba(21,87,213,.38)!important;
  outline-offset:3px!important;
}

/* Hero: preserve composition, remove mixed editorial faces */
.profile-fv{
  background:var(--pc4-white)!important;
}
.profile-fv::before,
.profile-fv::after{
  opacity:.55!important;
}
.profile-fv-copy{
  color:var(--pc4-ink);
}
.profile-fv-kicker{
  color:#315f96!important;
}
.profile-fv-actions .profile-fv-cta{
  min-height:56px;
  border-radius:6px!important;
  font-family:var(--pc4-font)!important;
  font-size:.88rem!important;
  font-weight:600!important;
  box-shadow:none!important;
}
.profile-fv-proofbar{
  border-top:1px solid var(--pc4-line)!important;
}
.profile-fv-proof strong,
.profile-fv-proof b,
.profile-fv-proof small,
.profile-fv-proofbar li{
  font-family:var(--pc4-font)!important;
}
.profile-fv-service-card{
  border:1px solid rgba(203,215,229,.92)!important;
  border-radius:10px!important;
  box-shadow:0 12px 32px rgba(7,27,67,.08)!important;
}
.profile-fv-service-card h2{
  color:var(--pc4-ink)!important;
  font-family:var(--pc4-font)!important;
  font-size:1rem!important;
  font-weight:600!important;
  letter-spacing:0!important;
}
.profile-fv-card-caption,
.profile-fv-card-metric{
  font-family:var(--pc4-font)!important;
}

/* Shared section rhythm */
.intro-slides,
.portfolio-showcase,
.case-wrapper,
.portfolio-services,
.portfolio-profile,
.portfolio-skills{
  padding-top:var(--pc4-section)!important;
  padding-bottom:var(--pc4-section)!important;
}
.intro-slides-inner,
.portfolio-showcase__container,
.case-wrapper .main-wrapper,
.pf-container,
.portfolio-footer-v3__inner,
.portfolio-footer-v3__copyright{
  width:min(var(--pc4-width),calc(100% - (var(--pc4-gutter) * 2)))!important;
  max-width:none!important;
  margin-inline:auto!important;
}
.portfolio-showcase__head,
.portfolio-services__head{
  margin-bottom:48px!important;
}

/* Embedded portfolio material is treated as a document, not page typography */
.intro-slides{
  background:var(--pc4-soft)!important;
}
.intro-slides-head{
  margin-bottom:40px!important;
  text-align:left!important;
}
.intro-slides-title{
  margin-top:12px!important;
  text-align:left!important;
}
.intro-slides-title small{
  display:block;
  margin-top:12px!important;
}
.intro-slides-stage{
  border:1px solid var(--pc4-line)!important;
  border-radius:var(--pc4-radius)!important;
  box-shadow:none!important;
}
.intro-slide,
.intro-slide__zoom,
.intro-slide img{
  border-radius:calc(var(--pc4-radius) - 1px)!important;
}
.intro-slides-nav,
.intro-slides-dot{
  box-shadow:none!important;
}
.intro-slides-cta{
  display:none!important;
}

/* Web and EC work */
.web-works{
  background:var(--pc4-white)!important;
}
.portfolio-showcase__head{
  align-items:end!important;
}
.portfolio-showcase__lead{
  max-width:620px!important;
}
.web-work-card{
  border:1px solid var(--pc4-line)!important;
  border-radius:var(--pc4-radius)!important;
  background:var(--pc4-white)!important;
  box-shadow:none!important;
}
.web-work-card__media,
.web-work-card__media img{
  border-radius:calc(var(--pc4-radius) - 1px) calc(var(--pc4-radius) - 1px) 0 0!important;
}
.web-work-card__body{
  padding:28px!important;
}
.web-work-card__meta{
  color:var(--pc4-blue)!important;
  font-size:.75rem!important;
}
.web-work-card__summary{
  margin-top:14px!important;
}
.web-work-card__role{
  color:var(--pc4-muted)!important;
  font-family:var(--pc4-font)!important;
  font-size:.82rem!important;
  line-height:1.8!important;
}

/* Implementation rows */
.github-portfolio{
  background:var(--pc4-soft)!important;
}
.github-portfolio::before{
  opacity:.45!important;
}
.github-project{
  border-color:var(--pc4-line)!important;
}
.github-project__index{
  color:var(--pc4-blue)!important;
  font-family:var(--pc4-font)!important;
}
.github-project__role{
  color:var(--pc4-muted)!important;
}
.github-project__link,
.github-project__private,
.github-portfolio__account{
  font-family:var(--pc4-font)!important;
}

/* Case gallery */
.case-wrapper{
  background:var(--pc4-white)!important;
  background-image:none!important;
}
.case-wrapper::before,
.case-wrapper::after,
.case-wrapper .contact-deco{
  display:none!important;
}
.case-wrapper .tcenter,
.case-wrapper .headline,
.case-wrapper .lead{
  text-align:left!important;
}
.case-wrapper .lead{
  max-width:760px!important;
  margin:14px 0 40px!important;
}
.case-library-card{
  border-color:var(--pc4-line)!important;
  border-radius:6px!important;
  box-shadow:none!important;
}
.case-library-controls{
  margin-bottom:24px!important;
}
.case-library-arrow{
  border-color:var(--pc4-line)!important;
  box-shadow:none!important;
}
.case-library-note,
.case-library-swipe-hint{
  color:var(--pc4-muted)!important;
  font-family:var(--pc4-font)!important;
}

/* Capabilities: factual editorial rows instead of sales cards */
.portfolio-services{
  background:var(--pc4-soft)!important;
}
.portfolio-services::before,
.portfolio-services::after{
  display:none!important;
}
.portfolio-services__layout{
  display:block!important;
  width:min(var(--pc4-width),calc(100% - (var(--pc4-gutter) * 2)))!important;
}
.portfolio-services__media{
  display:none!important;
}
.portfolio-services__content{
  width:100%!important;
}
.portfolio-services__head{
  display:grid!important;
  grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr)!important;
  gap:64px!important;
  align-items:end!important;
}
.portfolio-services__head .pf-kicker,
.portfolio-services__head .pf-title{
  grid-column:1;
}
.portfolio-services__head .pf-lead{
  grid-column:2;
  grid-row:1 / span 2;
  align-self:end;
  max-width:620px;
}
.portfolio-services__list{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:0!important;
  border-top:1px solid var(--pc4-line)!important;
}
.portfolio-services__list > li{
  border-bottom:1px solid var(--pc4-line)!important;
}
.portfolio-services__list > li:nth-child(odd){
  border-right:1px solid var(--pc4-line)!important;
}
.portfolio-services__button{
  display:block!important;
  min-height:190px!important;
  padding:28px 32px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  text-align:left!important;
  transform:none!important;
}
.portfolio-services__icon,
.portfolio-services__arrow{
  display:none!important;
}
.portfolio-services__copy{
  display:block!important;
}
.portfolio-services__name{
  display:flex!important;
  align-items:baseline!important;
  gap:16px!important;
  margin-bottom:16px!important;
}
.portfolio-services__num{
  color:var(--pc4-blue)!important;
  font-size:.76rem!important;
}
.portfolio-services__desc{
  display:block!important;
  max-width:500px!important;
}

/* Profile is part of the document, not a floating sales card */
.portfolio-profile{
  background:var(--pc4-white)!important;
  padding-top:80px!important;
  padding-bottom:80px!important;
}
.portfolio-profile__layout{
  width:min(1080px,calc(100% - (var(--pc4-gutter) * 2)))!important;
}
.portfolio-profile__card{
  display:grid!important;
  grid-template-columns:minmax(340px,.8fr) minmax(0,1.2fr)!important;
  column-gap:72px!important;
  row-gap:20px!important;
  padding:40px 0!important;
  border:0!important;
  border-top:1px solid var(--pc4-line)!important;
  border-bottom:1px solid var(--pc4-line)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.portfolio-profile__card .pf-kicker,
.portfolio-profile__card .pf-title{
  grid-column:1;
}
.portfolio-profile__card .pf-title{
  align-self:start;
  line-height:1.35!important;
}
.portfolio-profile__card .pf-title span{
  display:block;
  white-space:nowrap;
}
.portfolio-profile__card .pf-title::after{
  display:none!important;
}
.portfolio-profile__body{
  grid-column:2;
  grid-row:1 / span 2;
  align-self:start;
  max-width:620px;
  word-break:auto-phrase;
  text-wrap:pretty;
}

/* Tool list */
.portfolio-skills{
  background:var(--pc4-soft)!important;
}
.portfolio-skills__panel,
.portfolio-skills__button,
.portfolio-skills__button:nth-child(odd){
  border-color:var(--pc4-line)!important;
}
.portfolio-skills__button{
  background:transparent!important;
}
.portfolio-skills__icon{
  display:none!important;
}
.portfolio-skills__button,
.portfolio-skills__button:nth-child(odd){
  grid-template-columns:150px 1fr!important;
  gap:18px!important;
  min-height:112px!important;
  padding:24px 28px!important;
}
.portfolio-skills__name{
  font-size:.92rem!important;
  font-weight:600!important;
}
.portfolio-skills__desc{
  font-size:.9rem!important;
  color:var(--pc4-muted)!important;
}

.portfolio-footer-v3{
  background:var(--pc4-ink)!important;
  font-family:var(--pc4-font)!important;
}
.portfolio-footer-v3__links a,
.portfolio-footer-v3__identity strong,
.portfolio-footer-v3__identity span{
  font-family:var(--pc4-font)!important;
}
.portfolio-footer-v3__links a{
  display:inline-flex!important;
  min-width:44px!important;
  min-height:44px!important;
  align-items:center!important;
}

@media(max-width:1100px){
  :root{
    --pc4-gutter:32px;
    --pc4-section:80px;
  }
  .site-header .gnav-wrap,
  .site-header .hd-phone,
  .site-header .hd-cta{
    display:none!important;
  }
  .site-header .hamburger{
    display:flex!important;
  }
  .profile-fv-title{
    font-size:clamp(2.65rem,5vw,3.15rem)!important;
  }
  .portfolio-profile{
    padding-top:72px!important;
    padding-bottom:72px!important;
  }
  .portfolio-profile__card{
    grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr)!important;
    column-gap:48px!important;
    row-gap:16px!important;
    padding:36px 0!important;
  }
  .intro-slides-title,
  .intro-slides-title-main,
  .portfolio-showcase__title,
  .case-wrapper .headline,
  .portfolio-services .pf-title,
  .portfolio-profile .pf-title,
  .portfolio-skills .pf-title{
    font-size:2.2rem!important;
  }
}

@media(max-width:900px){
  .portfolio-profile__card{
    display:block!important;
    padding:36px 0!important;
  }
  .portfolio-profile__card .pf-kicker{
    margin-bottom:16px!important;
  }
  .portfolio-profile__body{
    max-width:680px!important;
    margin-top:28px!important;
  }
}

/*
 * Tablet: keep the reading order linear and show all three evidence cards.
 * The former split layout hid the third card behind a horizontal scroller.
 */
@media(min-width:768px) and (max-width:1100px){
  .profile-fv{
    display:block!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
  .profile-fv-copy{
    display:block!important;
    height:auto!important;
    overflow:hidden!important;
  }
  .profile-fv-copy-inner{
    justify-content:flex-start!important;
    padding:64px 48px 40px!important;
  }
  .profile-fv-title{
    width:min(100%,720px)!important;
  }
  .profile-fv-lead{
    width:min(100%,760px)!important;
    margin:26px 0 28px!important;
    font-size:1rem!important;
    line-height:1.9!important;
  }
  .profile-fv-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,220px))!important;
    gap:12px!important;
    width:auto!important;
  }
  .profile-fv-cta{
    width:100%!important;
    min-height:56px!important;
  }
  .profile-fv-proofbar{
    grid-template-columns:auto 1fr!important;
    gap:36px!important;
    min-height:112px!important;
    padding:20px 48px!important;
  }
  .profile-fv-proofbar ul{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:12px 28px!important;
    padding-left:32px!important;
    border-left:1px solid var(--pc4-line)!important;
  }
  .profile-fv-proofbar li{
    font-size:.72rem!important;
    white-space:normal!important;
  }
  .profile-fv-stage{
    height:auto!important;
    overflow:visible!important;
    padding-bottom:32px!important;
  }
  .profile-fv-main-media{
    height:clamp(360px,48vw,480px)!important;
  }
  .profile-fv-selected-label{
    display:none!important;
  }
  .profile-fv-service-cards{
    position:relative!important;
    inset:auto!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:12px!important;
    margin:-52px 24px 0!important;
    padding:0!important;
    overflow:visible!important;
    scroll-snap-type:none!important;
  }
  .profile-fv-service-card{
    min-height:284px!important;
    padding:18px!important;
    scroll-snap-align:none!important;
  }
}

@media(max-width:767px){
  :root{
    --pc4-gutter:16px;
    --pc4-section:64px;
  }
  body{
    font-size:16px!important;
  }
  .profile-fv-title{
    font-size:2.15rem!important;
    line-height:1.42!important;
    letter-spacing:-.025em!important;
  }
  .profile-fv-lead,
  .intro-slides-title small,
  .portfolio-showcase__lead,
  .case-wrapper .lead,
  .portfolio-services .pf-lead,
  .portfolio-profile__body,
  .portfolio-skills .pf-lead,
  .web-work-card__summary,
  .github-project__summary,
  .portfolio-services__desc{
    font-size:1rem!important;
    line-height:1.85!important;
  }
  .intro-slides-title,
  .intro-slides-title-main,
  .portfolio-showcase__title,
  .case-wrapper .headline,
  .portfolio-services .pf-title,
  .portfolio-profile .pf-title,
  .portfolio-skills .pf-title{
    font-size:1.8rem!important;
    line-height:1.5!important;
    letter-spacing:-.02em!important;
  }
  .portfolio-showcase__head,
  .portfolio-services__head{
    margin-bottom:32px!important;
  }
  .intro-slides-head{
    margin-bottom:28px!important;
  }
  .intro-slides-stage{
    border-radius:6px!important;
  }
  .web-work-card__body{
    padding:22px 20px!important;
  }
  .web-work-card h3,
  .github-project h3,
  .portfolio-services__name{
    font-size:1.18rem!important;
  }
  .case-wrapper .lead{
    margin-bottom:28px!important;
  }
  .portfolio-services__head{
    display:block!important;
  }
  .portfolio-services__head .pf-lead{
    margin-top:18px!important;
  }
  .portfolio-services__list{
    grid-template-columns:1fr!important;
  }
  .portfolio-services__list > li:nth-child(odd){
    border-right:0!important;
  }
  .portfolio-services__button{
    min-height:0!important;
    padding:24px 4px!important;
  }
  .portfolio-services__name{
    margin-bottom:10px!important;
  }
  .portfolio-profile__layout{
    width:calc(100% - 32px)!important;
  }
  .portfolio-profile__card{
    display:block!important;
    padding:32px 0!important;
  }
  .portfolio-profile__body{
    margin-top:28px!important;
  }
  .portfolio-skills__button,
  .portfolio-skills__button:nth-child(odd){
    grid-template-columns:1fr!important;
    min-height:0!important;
    gap:8px!important;
    padding:20px 18px!important;
  }
  .portfolio-skills__desc{
    font-size:.9rem!important;
    line-height:1.8!important;
  }
  .portfolio-footer-v3__inner,
  .portfolio-footer-v3__copyright{
    width:100%!important;
  }
}

@media(max-width:390px){
  .profile-fv-title{
    font-size:2rem!important;
  }
  .profile-fv-lead br,
  .intro-slides-title small br,
  .portfolio-showcase__lead br,
  .case-wrapper .lead br,
  .portfolio-services__desc br{
    display:none!important;
  }
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    scroll-behavior:auto!important;
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}
