/* Ku LLC — shared stylesheet (JA / EN / ZH)
   Fonts are set per page: --font-body / --font-display  */
:root{
  --paper:#ffffff;
  --ink:#16181d;
  --muted:#6f747d;
  --line:#e5e7ea;
  --accent:#b3261e;
  --bl:8px;
  --maxw:960px;
  --font-body:"Noto Sans JP","Hiragino Sans","Yu Gothic",system-ui,sans-serif;
  --font-display:"Shippori Mincho",serif;
}
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-weight:400;
  font-size:16px;
  line-height:1.9;
  font-feature-settings:"palt" 1;
  letter-spacing:.01em;
}
a{color:inherit;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}

/* header ---------------------------------------------------------- */
header.site{
  position:sticky;top:0;z-index:10;
  background:rgba(255,255,255,.86);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--line);
}
header.site .wrap{
  display:flex;align-items:center;justify-content:space-between;
  height:64px;
}
.mark{
  font-family:var(--font-display);
  font-weight:600;
  font-size:18px;
  letter-spacing:.14em;
  text-decoration:none;
  white-space:nowrap;
}
.mark span{color:var(--accent);}
.hdright{display:flex;align-items:center;gap:22px;}
nav.top{display:flex;gap:24px;}
nav.top a{
  font-size:12.5px;letter-spacing:.1em;text-decoration:none;color:var(--muted);
  transition:color .18s ease;
}
nav.top a:hover{color:var(--ink);}

/* language switcher ------------------------------------------------ */
.lang{display:flex;align-items:center;font-size:11.5px;letter-spacing:.1em;}
.lang a{
  text-decoration:none;color:var(--muted);padding:4px 9px;
  transition:color .18s ease;line-height:1;
}
.lang a+a{border-left:1px solid var(--line);}
.lang a:hover{color:var(--ink);}
.lang a.cur{color:var(--ink);}
footer.site .lang{font-size:11.5px;}

/* hero ------------------------------------------------------------ */
.hero{padding:104px 0 88px;}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:11.5px;letter-spacing:.22em;color:var(--muted);
  text-transform:uppercase;
}
.eyebrow::before{content:"";width:24px;height:1px;background:var(--accent);display:block;}
.hero h1{
  font-family:var(--font-display);
  font-weight:500;
  font-size:clamp(30px,6vw,52px);
  line-height:1.25;
  letter-spacing:.02em;
  margin:20px 0 0;
}
.hero p.lede{
  margin:24px 0 0;
  max-width:44em;
  color:#33373d;
  font-weight:300;
  font-size:17px;
}

/* sections -------------------------------------------------------- */
section{padding:72px 0;border-top:1px solid var(--line);}
h2.num{
  font-size:13px;font-weight:500;letter-spacing:.14em;color:var(--muted);
  margin:0 0 28px;display:flex;align-items:baseline;gap:12px;
}
h2.num em{
  font-style:normal;color:var(--accent);
  font-family:var(--font-display);font-size:18px;font-weight:600;
  font-variant-numeric:tabular-nums;
}
h2.num i{font-style:normal;color:var(--ink);font-size:15px;letter-spacing:.06em;}

/* profile table --------------------------------------------------- */
dl.profile{margin:0;border-top:1px solid var(--line);}
dl.profile div{
  display:grid;grid-template-columns:12em 1fr;gap:16px;
  padding:16px 0;border-bottom:1px solid var(--line);
}
dl.profile dt{
  font-size:13px;color:var(--muted);letter-spacing:.06em;font-weight:500;
  padding-top:2px;
}
dl.profile dd{margin:0;font-size:15.5px;}
dl.profile dd a{text-decoration:none;border-bottom:1px solid var(--line);transition:border-color .18s ease;}
dl.profile dd a:hover{border-color:var(--accent);}

/* business list --------------------------------------------------- */
ol.biz{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);}
ol.biz li{
  display:grid;grid-template-columns:3em 1fr;gap:20px;
  padding:26px 0;border-bottom:1px solid var(--line);
}
ol.biz .no{
  font-family:var(--font-display);font-size:17px;font-weight:600;
  color:var(--accent);font-variant-numeric:tabular-nums;line-height:1.6;
}
ol.biz h3{margin:0;font-size:17px;font-weight:500;letter-spacing:.02em;}
ol.biz p{margin:6px 0 0;color:#4b5058;font-size:15px;font-weight:300;}

/* contact --------------------------------------------------------- */
.contact-mail{
  display:inline-block;margin-top:6px;
  font-size:clamp(17px,3.2vw,23px);
  text-decoration:none;border-bottom:1px solid var(--accent);
  padding-bottom:2px;transition:opacity .18s ease;
  word-break:break-all;
}
.contact-mail:hover{opacity:.62;}
.note{margin:20px 0 0;color:var(--muted);font-size:13px;}

/* footer ---------------------------------------------------------- */
footer.site{
  border-top:1px solid var(--line);
  padding:32px 0 56px;
  color:var(--muted);font-size:12.5px;
  font-variant-numeric:tabular-nums;
}
footer.site .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}

/* reveal ---------------------------------------------------------- */
.rv{opacity:0;transform:translateY(8px);}
.rv.on{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease;}

:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}

@media (max-width:700px){
  nav.top{display:none;}
  .hdright{gap:8px;}
}
@media (max-width:600px){
  .hero{padding:72px 0 56px;}
  section{padding:56px 0;}
  dl.profile div{grid-template-columns:1fr;gap:4px;}
  ol.biz li{grid-template-columns:2.2em 1fr;gap:14px;}
  .mark{font-size:16px;letter-spacing:.1em;}
}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;}
}
