/* =========================
   Reset & Tokens
========================= */
*, *::before, *::after { box-sizing: border-box; }
html, body { height: 100%; overflow-x: hidden; width: 100%; }
body {
  margin: 0;
  font-family: "Noto Sans JP", -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic UI", sans-serif;
  color: #0f0f10;
  background: #ffffff;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }

:root{
  --maxw: 1200px;     /* 主版心宽度 */
  --pad-x: 24px;      /* 页面左右内边距 */
  --brand: #0F1115;   /* 品牌深色 */
  --muted: #6B6F76;   /* 次要文字 */
  --line: #E8EAED;    /* 分割线 */
  --accent: #111317;  /* 强调背景(深) */
  --bg-alt: #F7F8FA;  /* 浅灰背景 */
}

.container{
  width: 100%;
  max-width: var(--maxw);
  margin: 0 auto;
  padding-left: var(--pad-x);
  padding-right: var(--pad-x);
  box-sizing: border-box;
}

/* =========================
   Header
========================= */
.site-header{
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,0.9);
  backdrop-filter: saturate(150%) blur(8px);
  border-bottom: 1px solid var(--line);
  padding-top: max(0px, env(safe-area-inset-top));
}
.nav{ display:flex; align-items:center; justify-content:space-between; height:64px; }
.nav > * { min-width: 0; }  /* 防止 flex 子项把容器撑宽 */
.brand{
  font-family: "Bebas Neue", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Noto Sans JP", Helvetica, Arial, sans-serif;
  font-weight: 800; letter-spacing: 0.18em; font-size: 18px;
}
.menu{ display:flex; gap:28px; align-items:center; flex-wrap: wrap; }
.menu a{ font-size:14px; color:#222; opacity:.9; }
.menu a:hover{ opacity:1; text-decoration:underline; text-underline-offset:4px; }

/* =========================
   Hero
========================= */
.hero{ background: var(--accent); color: #fff; padding: 88px 0 72px; }
.hero-grid{ display:grid; grid-template-columns: 1.2fr 1fr; gap:40px; align-items:end; }
.hero-title{
  font-family: "Bebas Neue", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Noto Sans JP", Helvetica, Arial, sans-serif;
  font-size: clamp(32px, 5vw, 56px); line-height:1.05; letter-spacing:.14em; font-weight:900;
}
.hero-sub{ margin-top:12px; font-size: clamp(14px, 2.2vw, 18px); color:#D5D8DE; }
.hero-intro, .hero-sub{
  line-height: 1.9;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}
.hero-badges{ margin-top:16px; display:flex; flex-wrap:wrap; gap:8px; row-gap:10px; }
.badge{ font-size:12px; padding:6px 10px; border:1px solid rgba(255,255,255,.18); border-radius:999px; color:#E6E9EE; }
.hero-cta{ display:flex; gap:12px; margin-top:28px; }
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding:12px 18px; border-radius:10px; font-weight:600; border:1px solid transparent;
  white-space: normal; text-align: center; /* 允许按钮文本换行 */
}
.btn-primary{ background:#ffffff; color:#0C0E12; }
.btn-ghost{ background:transparent; color:#fff; border-color: rgba(255,255,255,.28); }
.hero-meta{ border-left:1px solid rgba(255,255,255,.16); padding-left:24px; }
.hero-meta p{ margin:6px 0; font-size:14px; color:#DDE1E7; }

/* =========================
   Works
========================= */
.section{ padding:64px 0; }
.section-head{ display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:24px; }
.section-title{ font-size:22px; letter-spacing:.12em; font-weight:800; }
.section-desc{ font-size:14px; color:var(--muted); }

.works-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:16px; }
.work-card{ border:1px solid var(--line); border-radius:14px; overflow:hidden; background:#fff; display:flex; flex-direction:column; }
.work-media{ aspect-ratio: 16/9; background: linear-gradient(180deg, #ECEFF3, #E5E8EC); display:grid; place-items:center; position:relative; }
.work-media::after{ content:"IMAGE"; font-size:12px; color:#7E8590; letter-spacing:.12em; }
.work-body{ padding:14px; display:grid; gap:4px; }
.work-title{ font-size:14px; font-weight:700; letter-spacing:.04em; }
.work-meta{ font-size:12px; color:var(--muted); }

/* 如果你改成 <img class="work-media" src=...> */
.work-media img, img.work-media{ width:100%; height:100%; object-fit:cover; display:block; }

/* =========================
   Info Strip
========================= */
.info-strip{ background: var(--bg-alt); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.info-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap:16px; padding:18px 0; font-size:14px; color:#32363C; }
.info-item{ display:grid; gap:6px; }
.info-item small{ color:var(--muted); font-size:12px; }

/* =========================
   Footer
========================= */
.site-footer{ padding:36px 0 56px; border-top:1px solid var(--line); }
.foot-grid{ display:grid; grid-template-columns: 1.2fr 1fr; gap:24px; }
.foot-brand{
  font-family: "Bebas Neue", ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Noto Sans JP";
  font-weight:800; letter-spacing:.18em; font-size:16px;
}
.foot-meta{ font-size:14px; color:#474C54; line-height:1.8; }
.foot-nav{ display:grid; gap:8px; justify-content:start; align-content:start; }
.foot-nav a{ font-size:14px; color:#1a1d21; }
.copyright{ margin-top:24px; font-size:12px; color:var(--muted); }

/* =========================
   Dropdown (Languages)
========================= */
.dropdown{ position:relative; }
.dropdown > a{
  cursor:pointer; position:relative; z-index:101;
  display:inline-flex; align-items:center; gap:4px;
}
.dropdown > a::after{ content:"▾"; font-size:12px; transition: transform .35s ease; }
.dropdown-menu{
  position:absolute; top:100%; left:50%;
  transform: translateX(-50%) translateY(-8px);
  min-width:220px;
  display:flex; flex-direction:column;
  background:transparent; z-index:100;
  opacity:0; visibility:hidden;
  transition: opacity .35s ease, transform .35s ease, visibility .35s;
  margin-top:24px;
}
.dropdown-menu a{
  padding:10px 14px; font-size:14px; text-align:center; color:#fff;
  transition: color .2s; text-shadow:0 1px 3px rgba(0,0,0,.8);
}
.dropdown-menu a:hover{ color:#ddd; }
.dropdown:hover .dropdown-menu,
.dropdown.open .dropdown-menu{ opacity:1; visibility:visible; transform: translateX(-50%) translateY(0); }
.dropdown:hover > a::after,
.dropdown.open .dropdown-link::after{ transform: rotate(180deg); }

/* =========================
   About + KPI
========================= */
.about-grid{ display:grid; grid-template-columns: 1.4fr .8fr; gap:28px; align-items:start; }
.about .lead{ font-size:16px; line-height:1.9; color:#1b1e23; margin:10px 0 10px; }
.about p{ color:#3a3f46; line-height:1.9; margin:10px 0; }
.about-cta{ display:flex; gap:12px; margin-top:16px; }

.kpi-list{ list-style:none; margin:0; padding:0; display:grid; gap:10px; }
.kpi-item{
  background:#fff; border:1px solid var(--line);
  border-radius:14px; padding:16px 14px;
  display:flex; align-items:baseline; gap:10px;
}
.kpi-num{ font-weight:800; font-size:22px; letter-spacing:.02em; }
.kpi-text{ color:var(--muted); font-size:13px; }

/* =========================
   Responsive
========================= */
@media (max-width: 1024px){
  .about-grid{ grid-template-columns: 1fr; gap:18px; }
  .kpi-list{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 768px){
  .hero-grid{ grid-template-columns: 1fr; gap:20px; }
  .hero-cta{ flex-direction: column; align-items: stretch; gap: 12px; }
  .hero-cta .btn{ width:100%; max-width:100%; min-width:0; }
  .works-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px){
  .kpi-list{ grid-template-columns: 1fr; }
  .about .lead{ font-size: 15px; }
}
@media (max-width: 480px){
  .works-grid{ grid-template-columns: 1fr; }
  .dropdown-menu{ min-width: 160px; }   /* 防止下拉在极窄屏外凸 */
  .brand{ letter-spacing: .12em; }      /* 标识更紧凑，避免顶边 */
}

/* === Hero 溢出终结补丁（Grid 子项允许收缩 + 小屏容器收紧） === */

/* 关键：Grid 子项默认 min-width:auto，会把长文本/按钮撑出容器 */
.hero-grid > * { min-width: 0; }           /* ✅ 允许收缩，防止向右顶出 */
.hero-cta, .hero-badges { min-width: 0; max-width: 100%; overflow: hidden; }
.hero-intro { max-width: 100%; }

/* 小屏把容器左右 padding 再收紧一点，确保视觉不贴边 */
@media (max-width: 768px) {
  .hero .container { padding-left: 14px; padding-right: 14px; }
}

/* 按钮在小屏占满但不超：避免边框/字间距带来的 1-2px 误差 */
@media (max-width: 768px) {
  .hero-cta .btn { width: 100%; max-width: 100%; box-sizing: border-box; }
}
