/* AsaBee overrides on top of the THE LAST MAN design system */
:root{ --accent:#9a7d44; }
.label-row .num{color:var(--accent)}
.label-row .name{font-family:"Noto Sans JP",var(--sans); font-weight:900; letter-spacing:.12em}
.label-row.on-dark .num{color:#c9b07a}
.logo{display:flex; align-items:center; gap:12px}
.logo img{height:clamp(26px,2.4vw,34px)}
.logo__word{font-family:"Inter",var(--sans); font-weight:600; letter-spacing:.01em; font-size:clamp(15px,1.3vw,18px); line-height:1; white-space:nowrap}
.logo__word b{font-weight:700}
.footer .logo__word{color:#fff}
.footer__copy{text-transform:none; letter-spacing:.06em}
*:focus-visible{outline:2px solid var(--accent); outline-offset:3px}
.on-alt{background:var(--bg-alt)}

/* hero: centered mark */
.hero__mark{display:flex; flex-direction:column; align-items:center; text-align:center; color:#8a8a8f; animation:heroIn 1.5s var(--ease) both}
.hero__mark img{width:clamp(96px,11vw,150px); height:auto; margin-bottom:clamp(14px,1.6vw,22px)}
.hero__mark-word{font-family:var(--sans); font-weight:700; letter-spacing:-.05em; line-height:.95; font-size:clamp(64px,11vw,168px)}
.hero__mark-sub{font-family:var(--sans); font-weight:500; letter-spacing:.32em; text-transform:uppercase; font-size:clamp(13px,1.6vw,24px); margin-top:clamp(10px,1.4vw,18px); padding-left:.32em}

/* message */
.hero__actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:clamp(28px,3.6vw,44px)}
.message__quote{color:var(--ink-60); line-height:2.1; max-width:520px}
.message__sign{margin-top:28px; font-size:12px; letter-spacing:.08em; color:var(--ink-80)}

/* 6-item grids */
.values--after-dark{padding-top:clamp(48px,6vw,88px)}
.values__grid--six .value:nth-child(3n){border-right:0}
.values__grid--six .value:nth-child(3n+1){padding-left:0}
.values__grid--six .value:nth-child(n+4){border-top:1px solid var(--line)}

/* track record */
.record__note{font-size:12px; color:var(--muted); margin-top:10px; max-width:640px}
.record .svc{min-height:0; padding:clamp(18px,2vw,26px) clamp(24px,3vw,44px)}
.record .svc__top{position:absolute; top:clamp(18px,2vw,26px); right:clamp(24px,3vw,44px); gap:16px; z-index:1}
.record .svc h3{margin:0 0 8px; padding-right:120px}
.record .svc p{min-height:0}
.record .svc:nth-child(odd){border-left:0}
.record .svc:nth-child(n+3){border-top:1px solid var(--line)}
.record .svc h3{font-size:clamp(22px,2.4vw,30px)}
.record .svc p b{font-weight:600; color:var(--ink)}
.record .svc:hover p b{color:#fff}
.record__stats{display:grid; grid-template-columns:repeat(3,1fr); margin-top:clamp(28px,3vw,40px); border-top:1px solid var(--line)}
.stat{padding:clamp(22px,3vw,36px) clamp(16px,2vw,28px) 0 0}
.stat + .stat{padding-left:clamp(16px,2vw,28px); border-left:1px solid var(--line)}
.stat span{display:block; font-size:10px; letter-spacing:.2em; color:var(--muted); margin-bottom:10px}
.stat strong{font-family:var(--display); font-size:clamp(40px,5vw,64px); font-weight:700; line-height:1}
.stat strong small{font-family:var(--sans); font-size:14px; font-weight:500; margin-left:6px}
.stat p{font-size:12.5px; color:var(--ink-60); margin-top:10px}

/* flow */
.flow__list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(5,1fr); border-top:1px solid var(--line)}
.flow__list li{padding:clamp(24px,3vw,36px) clamp(14px,1.6vw,24px) 0 0}
.flow__list li + li{padding-left:clamp(14px,1.6vw,24px); border-left:1px solid var(--line)}
.flow__list .step{font-family:var(--display); font-size:28px; font-weight:700; color:var(--accent); display:block; margin-bottom:18px}
.flow__list h3{font-size:16px; line-height:1.6; margin-bottom:10px; letter-spacing:-.01em}
.flow__list p{font-size:13px; line-height:1.95; color:var(--ink-60)}

/* faq */
.faq__grid{display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(32px,6vw,100px); align-items:start}
.faq__list details{border-top:1px solid var(--line)}
.faq__list details:last-child{border-bottom:1px solid var(--line)}
.faq__list summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; gap:24px; padding:clamp(20px,2.4vw,28px) 0; font-size:clamp(15px,1.4vw,17px); font-weight:500}
.faq__list summary::-webkit-details-marker{display:none}
.faq__list summary::after{content:"＋"; color:var(--muted); font-weight:300}
.faq__list details[open] summary::after{content:"－"}
.faq__list details p{color:var(--ink-60); line-height:2; padding-bottom:clamp(20px,2.4vw,28px); max-width:820px}

/* contact */
.contact__points{display:flex; flex-wrap:wrap; gap:10px 24px; margin-top:24px; font-size:12px; color:rgba(255,255,255,.6)}
.contact__mail{font-size:clamp(22px,3vw,40px); letter-spacing:.01em; display:inline-block; border-bottom:1px solid rgba(255,255,255,.3); padding-bottom:6px; margin:12px 0 28px}
.contact__how{color:rgba(255,255,255,.6); font-size:13.5px; line-height:2.05}

/* founder page */
.founder-hero{padding-top:clamp(120px,12vw,180px)}
.founder-hero .member__grid{align-items:end}
.message__cols{display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,64px); margin-top:clamp(24px,3vw,40px)}
.message__cols p{color:rgba(255,255,255,.66); font-size:14.5px; line-height:2.1}
.cases{display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line)}
.case{padding:clamp(28px,3.6vw,52px) clamp(20px,3vw,48px) clamp(32px,4vw,56px) 0; border-bottom:1px solid var(--line)}
.case:nth-child(even){padding-left:clamp(20px,3vw,48px); padding-right:0; border-left:1px solid var(--line)}
.case__head{display:flex; justify-content:space-between; font-size:10px; letter-spacing:.2em; color:var(--muted)}
.case__num{color:var(--accent)}
.case__name{font-size:clamp(24px,2.6vw,34px); letter-spacing:-.04em; margin:clamp(28px,3.6vw,48px) 0 18px}
.case__name small{display:block; font-size:10px; letter-spacing:.2em; color:var(--muted); font-weight:400; margin-bottom:10px}
.case__body{font-size:13.5px; line-height:2.05; color:var(--ink-60)}
.case__body b{color:var(--ink); font-weight:600}
.case__tag{margin-top:22px; padding-top:18px; border-top:1px solid var(--line); font-size:15px; line-height:1.7; color:var(--ink-80)}
.adv{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line)}
.adv li{padding:clamp(22px,2.8vw,36px) clamp(16px,2vw,28px) clamp(22px,2.8vw,36px) 0; border-bottom:1px solid var(--line)}
.adv li:not(:nth-child(3n+1)){padding-left:clamp(16px,2vw,28px); border-left:1px solid var(--line)}
.adv__role{display:block; font-size:10px; letter-spacing:.2em; color:var(--accent); margin-bottom:12px}
.adv strong{display:block; font-size:17px; font-weight:500; margin-bottom:10px}
.adv p{font-size:13px; line-height:1.95; color:var(--ink-60)}
.timeline th{width:90px; font-family:var(--display); font-size:15px; letter-spacing:.08em; color:var(--accent)}
.timeline td strong{display:block; font-weight:500; font-size:15px}
.timeline td span{display:block; font-size:13px; color:var(--ink-60); margin-top:4px}
.news__date{white-space:nowrap}

@media (max-width:1080px){
  .values__grid--six .value{border-top:0}
  .record .svc{border-left:0}
  .record .svc + .svc{border-top:1px solid var(--line)}
  .record__stats,.flow__list{grid-template-columns:1fr}
  .stat + .stat,.flow__list li + li{border-left:0; padding-left:0; border-top:1px solid var(--line)}
  .stat,.flow__list li{padding-bottom:24px}
  .faq__grid,.message__cols,.cases,.adv{grid-template-columns:1fr}
  .case:nth-child(even),.adv li:not(:nth-child(3n+1)){border-left:0; padding-left:0}
  .founder-hero .member__grid{display:flex; flex-direction:column-reverse}
}
.member__figure img{object-fit:cover; object-position:68% 25%}
.member__figure{width:75%; margin:0}
.member__figure img{height:auto; aspect-ratio:4/5}
.founder-hero .member__figure{margin-left:auto}

/* hero logotype: same proportions as the current AsaBee hero (Inter 800, Consulting = .7em) */
.hero__logotype{display:inline-block; text-align:left; font-family:"Inter",var(--sans); font-weight:800; font-size:clamp(45px,9.1vw,129px); line-height:.92; letter-spacing:-.03em; color:#7f7f84; -webkit-text-stroke:1.28px #7f7f84}
.hero__logotype .lt-1{display:block}
.hero__logotype .lt-2{display:block; font-size:.7em; letter-spacing:-.03em; color:#a8a8ad; -webkit-text-stroke:.9px #a8a8ad}
@media (max-width:640px){ .hero__logotype{font-size:15vw} .hero__mark img{width:30vw} }

.member__figure--portrait img{object-position:50% 30%}

/* compact case boxes (founder page) */
.cases--compact .case{padding-top:clamp(18px,2vw,26px); padding-bottom:clamp(20px,2.2vw,28px)}
.cases--compact .case__name{margin:clamp(8px,1vw,14px) 0 8px; font-size:clamp(22px,2.2vw,28px)}
.cases--compact .case__name small{margin-bottom:4px}
.cases--compact .case__body{line-height:1.85}
.cases--compact .case__tag{margin-top:12px; padding-top:10px; font-size:13.5px; line-height:1.6}
.cases--compact .case__tag br{display:none}

.message__signature{grid-column:1 / -1; display:flex; flex-direction:column; align-items:flex-end; gap:10px; margin-top:clamp(8px,1.5vw,20px); color:rgba(255,255,255,.85); font-size:12.5px; letter-spacing:.06em}
.message__signature img{width:clamp(150px,14vw,200px); height:auto; opacity:.92}

/* ===== subpages ===== */
.page-hero{padding:clamp(120px,12vw,180px) 0 clamp(40px,5vw,72px)}
.page-hero .h-lg{margin-bottom:clamp(16px,2vw,24px)}
.page-hero .lead{max-width:760px}
.page-hero__term{font-size:12px; letter-spacing:.12em; color:var(--muted); margin-top:10px}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:clamp(24px,3vw,36px)}
.chips a{border:1px solid var(--line); padding:9px 16px; font-size:12px; letter-spacing:.04em; transition:background .3s,color .3s,border-color .3s}
.chips a:hover{background:var(--ink); color:#fff; border-color:var(--ink)}
.sd{display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(28px,5vw,80px); padding:clamp(36px,4.5vw,64px) 0; border-top:1px solid var(--line); scroll-margin-top:90px}
.sd:last-of-type{border-bottom:1px solid var(--line)}
.sd__num{font-size:11px; letter-spacing:.2em; color:var(--accent); display:block; margin-bottom:14px}
.sd__problem{font-size:13px; color:var(--muted); margin-bottom:10px}
.sd h2{font-size:clamp(24px,2.6vw,34px); letter-spacing:-.03em; line-height:1.35}
.sd__body > p{color:var(--ink-60); line-height:2.05}
.sd__list{list-style:none; margin:22px 0 0; padding:0; border-top:1px solid var(--line)}
.sd__list li{padding:12px 0 12px 22px; border-bottom:1px solid var(--line); font-size:14px; position:relative}
.sd__list li::before{content:""; position:absolute; left:2px; top:1.35em; width:8px; height:1px; background:var(--accent)}
.sd__tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:22px}
.sd__tags span{font-size:11.5px; letter-spacing:.04em; padding:6px 12px; background:var(--bg-alt); color:var(--ink-80)}
.note{font-size:12.5px; line-height:1.95; color:var(--muted); margin-top:clamp(24px,3vw,36px); max-width:900px}
.cta-btn{margin-top:clamp(24px,3vw,36px)}
.principle__en{display:block; font-size:10px; letter-spacing:.2em; color:var(--muted); margin:-6px 0 14px}
.tags-inline{display:flex; flex-wrap:wrap; gap:6px; margin-top:12px}
.tags-inline span{font-size:11.5px; padding:5px 10px; background:var(--bg-alt)}
.company__table td .sub{display:block; font-size:12px; color:var(--muted); margin-top:4px}
.stats4{grid-template-columns:repeat(4,1fr)}
.bs{display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,64px); margin-top:clamp(20px,2.4vw,32px)}
.bs h3{font-size:16px; padding-bottom:12px; border-bottom:1px solid var(--ink); margin-bottom:6px}
.bs__cat{font-size:12px; color:var(--muted); padding:12px 0 4px}
.bs__row{display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--line); font-size:14px}
.bs__row span:last-child{font-variant-numeric:tabular-nums}
.bs__row.total{font-weight:600; border-bottom:1px solid var(--ink)}
.bs__head{display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px; margin-top:clamp(48px,6vw,80px)}
.bs__head small{font-size:12px; color:var(--muted)}
.prose{max-width:820px}
.prose h2{font-size:clamp(18px,1.8vw,22px); margin:clamp(36px,4vw,52px) 0 12px; letter-spacing:-.01em}
.prose p,.prose li{color:var(--ink-60); line-height:2.05; font-size:14.5px}
.prose ul{padding-left:1.2em; margin:10px 0 0}
.prose .sign{margin-top:clamp(36px,4vw,52px); color:var(--ink-80)}
.news__item--static{cursor:default}
@media (max-width:1080px){
  .sd,.bs{grid-template-columns:1fr}
  .stats4{grid-template-columns:1fr 1fr}
}
