:root {
  --bg: #050505;
  --bg-alt: #0E0E0E;
  --bg-card: #161616;
  --fg: #F5F2EC;
  --fg-dim: rgba(245, 242, 236, 0.72);
  --fg-sub: rgba(245, 242, 236, 0.44);
  --accent: #E11D38;
  --accent-strong: #C8102E;
  --accent-soft: rgba(225, 29, 56, 0.08);
  --line: rgba(245, 242, 236, 0.1);
  --line-strong: rgba(245, 242, 236, 0.18);
  --max: 1240px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--bg);
  color: var(--fg);
  font-family: 'Inter', 'Noto Sans JP', sans-serif;
  font-feature-settings: "palt" 1;
  -webkit-font-smoothing: antialiased;
  line-height: 1.7;
  overflow-x: hidden;
}
img, svg { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { background: none; border: none; color: inherit; cursor: pointer; font: inherit; }

::selection { background: var(--accent); color: #fff; }

/* ========== HEADER ========== */
.header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  padding: 18px 32px;
  display: flex; justify-content: space-between; align-items: center;
  background: transparent;
  backdrop-filter: none; -webkit-backdrop-filter: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.3s ease, background 0.3s ease, backdrop-filter 0.3s ease;
}
.header.scrolled {
  border-bottom-color: transparent;
  background: rgba(5,5,5,0.85);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.brand {
  font-family: 'Inter';
  font-weight: 800;
  font-size: 18px;
  letter-spacing: 0.32em;
  display:inline-flex;
  align-items:center;
}
.brand .dot { color: var(--accent); }
.brand img{display:block;height:29.17px;width:auto;transform:translateY(-2px)}
@media (min-width: 601px){
  .brand img{height:37px;transform:translate(-9px,-7px)}
}
.nav {
  display: flex; gap: 28px; align-items: center;
}
.nav a {
  font-family: 'Inter';
  font-size: 11.5px;
  letter-spacing: 0.28em;
  font-weight: 500;
  color: var(--fg-dim);
  transition: color 0.2s ease;
  text-transform: uppercase;
}
.nav a:hover { color: var(--accent); }
.nav .cta {
  background: var(--accent);
  color: #fff !important;
  padding: 10px 22px;
  border-radius: 999px;
  font-weight: 700;
  letter-spacing: 0.2em;
}
.nav .cta:hover { background: var(--accent-strong); }

.menu-toggle { display: none; }

/* ========== HERO (Cinematic full-bleed video) ========== */
.hero {
  min-height: 100vh;
  position: relative;
  display: flex;
  padding: 120px 32px 80px;
  overflow: hidden;
}
.hero .slides { position: absolute; inset: 0; z-index: 0; }
.hero .slide {
  position: absolute; inset: 0;
  opacity: 0;
  transition: opacity 1.6s ease;
  will-change: opacity;
}
.hero .slide.active { opacity: 1; z-index: 1; }
.hero .slide-photo {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  filter: contrast(1.05) saturate(0.95);
  animation: kenburns 8s linear infinite;
  will-change: transform;
}
.hero .slide-video {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  filter: contrast(1.05) saturate(0.85);
}
.hero .slide-video-abstract {
  transform: scale(1.3) translateY(calc(-8.4% + 60px));
  transform-origin: center;
}
.hero .slide-video-train {
  transform: scale(1.08) translateX(50px);
  transform-origin: center;
}
@media (max-width: 600px) {
  .hero .slide-video-science {
    object-position: 70% center;
    transform: none;
  }
}
@keyframes kenburns {
  0%   { transform: scale(1.04) translate(-1%, 1%); }
  100% { transform: scale(1.30) translate(3%, -3%); }
}
.hero .bg-overlay {
  position: absolute; inset: 0; z-index: 2;
  background:
    linear-gradient(180deg, rgba(5,5,5,0.45) 0%, rgba(5,5,5,0.25) 30%, rgba(5,5,5,0.85) 100%),
    linear-gradient(90deg, rgba(5,5,5,0.85) 0%, rgba(5,5,5,0.4) 50%, rgba(5,5,5,0.4) 100%);
  pointer-events: none;
}
.hero .fx-scan {
  position: absolute; inset: 0; z-index: 3;
  background: repeating-linear-gradient(0deg, transparent 0, transparent 2px, rgba(0,0,0,0.22) 2px, rgba(0,0,0,0.22) 3px);
  mix-blend-mode: multiply; pointer-events: none;
}
.hero .progress {
  position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%);
  z-index: 4; display: flex; gap: 8px;
}
.hero .progress-dot {
  width: 22px; height: 2px;
  background: rgba(245,242,236,0.18);
  transition: background 0.4s ease, width 0.4s ease;
}
.hero .progress-dot.active { background: var(--accent); width: 44px; }
.hero .ticker {
  position: absolute; top: 100px; right: 32px;
  z-index: 5;
  font-family: 'JetBrains Mono', 'Inter', monospace;
  font-size: 11px; color: var(--accent);
  letter-spacing: 0.08em;
  border: 1px solid var(--line-strong);
  padding: 6px 14px; border-radius: 999px;
  background: rgba(5,5,5,0.7);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  display: flex; align-items: center; gap: 10px;
}
.hero .ticker::before {
  content: ""; width: 8px; height: 8px; border-radius: 50%;
  background: var(--accent); box-shadow: 0 0 4px rgba(225,29,56,0.4);
  animation: pulse 1.6s ease-in-out infinite;
}
@keyframes pulse { 0%,100% { opacity:1; } 50% { opacity:0.4; } }

.hero-inner {
  max-width: var(--max);
  margin: auto;
  width: 100%;
  position: relative;
  z-index: 5;
  display: flex; flex-direction: column; justify-content: center;
}
@media (min-width: 601px){
  .hero-inner{padding-left:0px}
}
.hero-tag {
  display: inline-flex; align-items: center; gap: 12px;
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.34em;
  color: var(--fg-sub);
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 22px;
}
.hero-tag::before {
  content: "";
  width: 36px; height: 1px; background: var(--accent);
}
.hero h1 {
  font-family: 'Noto Sans JP';
  font-size: clamp(28px, 4.2vw, 54px);
  font-weight: 800;
  line-height: 1.28;
  letter-spacing: 0.005em;
  margin-bottom: 26px;
}
.hero h1 .accent { color: var(--accent); }
.hero-sub {
  font-family: 'Noto Sans JP';
  font-size: clamp(13.5px, 1.1vw, 15.5px);
  color: var(--fg-dim);
  max-width: 640px;
  line-height: 1.95;
  margin-bottom: 36px;
  font-weight: 500;
}
.hero-cta {
  display: flex; gap: 16px; flex-wrap: wrap; align-items: center;
}
.btn-primary {
  display: inline-flex; align-items: center; gap: 12px;
  background: var(--accent);
  color: #fff;
  padding: 18px 32px;
  border-radius: 999px;
  font-family: 'Noto Sans JP';
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.08em;
  transition: all 0.25s ease;
}
.btn-primary:hover { background: var(--accent-strong); transform: translateY(-2px); box-shadow: 0 12px 40px rgba(225,29,56,0.35); }
.btn-primary svg { width: 18px; height: 18px; }
.btn-ghost {
  display: inline-flex; align-items: center; gap: 10px;
  border: 1px solid var(--line-strong);
  padding: 17px 28px;
  border-radius: 999px;
  font-family: 'Noto Sans JP';
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.08em;
  color: var(--fg-dim);
  transition: all 0.25s ease;
}
.btn-ghost:hover { border-color: var(--accent); color: var(--accent); }

.hero-meta {
  position: absolute;
  bottom: 32px; right: 40px;
  display: flex; gap: 24px;
  font-family: 'Inter';
  font-size: 10.5px;
  letter-spacing: 0.3em;
  color: var(--fg-sub);
  text-transform: uppercase;
  z-index: 5;
}
.hero-meta span { display: flex; align-items: center; gap: 8px; }
.hero-meta span::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: var(--accent); }

.scroll-ind {
  position: absolute;
  bottom: 40px; right: 40px;
  z-index: 4;
  display: flex; flex-direction: column; align-items: center; gap: 14px;
  font-family: 'Inter';
  font-size: 10.5px;
  letter-spacing: 0.32em;
  color: var(--fg-sub);
  text-transform: uppercase;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.25s ease;
}
.hero .scroll-ind {
  position: fixed;
  right: auto; left: 32px;
  bottom: 40px;
  z-index: 50;
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.hero .scroll-ind.is-hidden { opacity: 0; pointer-events: none; transform: translateY(20px); }
.hero .scroll-ind.is-bottom { left: auto; right: 52px; bottom: 90px; }
.hero .scroll-ind.is-bottom .arrow { border-right: none; border-bottom: none; border-left: 1px solid currentColor; border-top: 1px solid currentColor; animation: scrollArrowUp 1.8s ease-in-out infinite }
.hero .scroll-ind.is-bottom .line { background: linear-gradient(0deg, currentColor 30%, transparent); animation: scrollLineUp 1.8s ease-in-out infinite }
.hero .scroll-ind.is-bottom { flex-direction: column-reverse }

/* Back-to-top scroll button (right side, mirror of hero scroll-ind) */
.scroll-top{position:fixed;right:32px;bottom:40px;z-index:50;display:flex;flex-direction:column;align-items:center;gap:14px;font-family:'Inter';font-size:10.5px;letter-spacing:0.32em;color:var(--fg-sub);text-transform:uppercase;font-weight:600;cursor:pointer;text-decoration:none;opacity:0;pointer-events:none;transform:translateY(20px);transition:opacity .4s ease,transform .4s ease,color .25s ease}
.scroll-top.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}
.scroll-top:hover{color:var(--accent)}
.scroll-top .arrow{width:8px;height:8px;border-left:1px solid currentColor;border-top:1px solid currentColor;transform:rotate(45deg);animation:scrollArrowUp 1.8s ease-in-out infinite}
.scroll-top .line{width:1px;height:56px;background:linear-gradient(0deg,currentColor 30%,transparent);animation:scrollLineUp 1.8s ease-in-out infinite}
.scroll-top .label{writing-mode:vertical-rl;transform:rotate(180deg)}
@keyframes scrollLineUp{0%,100%{transform:scaleY(0.4);transform-origin:bottom;opacity:0.5}50%{transform:scaleY(1);transform-origin:bottom;opacity:1}}
@keyframes scrollArrowUp{0%,100%{transform:rotate(45deg) translate(3px,3px);opacity:0.5}50%{transform:rotate(45deg) translate(0,0);opacity:1}}
@media(max-width:780px){.scroll-top{right:16px;bottom:24px}}
.scroll-ind:hover { color: var(--accent); }
.scroll-ind .label {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}
.scroll-ind .line {
  width: 1px; height: 56px;
  background: linear-gradient(180deg, currentColor 30%, transparent);
  animation: scrollLine 1.8s ease-in-out infinite;
}
.scroll-ind .arrow {
  width: 8px; height: 8px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg);
  animation: scrollArrow 1.8s ease-in-out infinite;
}
@keyframes scrollLine {
  0%, 100% { transform: scaleY(0.4); transform-origin: top; opacity: 0.5; }
  50% { transform: scaleY(1); transform-origin: top; opacity: 1; }
}
@keyframes scrollArrow {
  0%, 100% { transform: rotate(45deg) translate(-3px, -3px); opacity: 0.5; }
  50% { transform: rotate(45deg) translate(0, 0); opacity: 1; }
}

/* ========== SECTION SHARED ========== */
section { padding: 120px 32px; position: relative; }
.section-inner { max-width: var(--max); margin: 0 auto; }
.section-head {
  margin-bottom: 64px;
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 48px;
  align-items: end;
}
.section-num {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.34em;
  color: var(--accent);
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 22px;
  display: flex; align-items: center; gap: 14px;
}
.section-num::before {
  content: ""; display: inline-block;
  width: 28px; height: 1px;
  background: var(--accent);
}
.section-title-en {
  font-family: 'Inter';
  font-size: clamp(36px, 4.4vw, 64px);
  font-weight: 300;
  line-height: 1.04;
  letter-spacing: -0.018em;
  margin-bottom: 14px;
}
.section-title-jp {
  font-family: 'Noto Sans JP';
  font-size: 12.5px;
  letter-spacing: 0.32em;
  color: var(--fg-sub);
  font-weight: 500;
}
.section-lead {
  font-family: 'Noto Sans JP';
  font-size: 15px;
  color: var(--fg-dim);
  line-height: 2;
  font-weight: 400;
}

/* ========== ABOUT ========== */
.about { background: var(--bg-alt); }
.about-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-top: 64px;
}
.about-card {
  background: transparent;
  border: none;
  border-top: 1px solid var(--line);
  padding: 36px 36px 0 0;
  border-radius: 0;
  transition: opacity 0.3s ease;
  position: relative;
}
.about-card + .about-card { padding-left: 36px; }
.about-card::before {
  content: "";
  position: absolute; top: -1px; left: 0;
  width: 36px; height: 1px;
  background: var(--accent);
}
.about-card:hover { opacity: 0.9; }
.about-card-num {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.32em;
  color: var(--accent);
  font-weight: 600;
  margin-bottom: 28px;
}
.about-card-title {
  font-family: 'Inter';
  font-size: 28px;
  font-weight: 300;
  letter-spacing: -0.005em;
  line-height: 1.1;
  margin-bottom: 8px;
}
.about-card-jp {
  font-family: 'Noto Sans JP';
  font-size: 13px;
  color: var(--fg-sub);
  font-weight: 500;
  letter-spacing: 0.18em;
  margin-bottom: 24px;
}
.about-card-text {
  font-family: 'Noto Sans JP';
  font-size: 13.5px;
  color: var(--fg-dim);
  line-height: 2;
  font-weight: 400;
}

/* ========== SERVICE ========== */
.services-list {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--line);
}
.service-row {
  display: grid;
  grid-template-columns: 80px 1fr 280px 60px;
  gap: 32px;
  padding: 36px 0;
  border-bottom: 1px solid var(--line);
  align-items: center;
  transition: padding 0.3s ease, background 0.3s ease;
  cursor: default;
}
.service-row:hover {
  padding-left: 16px;
  background: linear-gradient(90deg, var(--accent-soft), transparent 70%);
}
.service-num {
  font-family: 'Inter';
  font-size: 13px;
  letter-spacing: 0.3em;
  color: var(--fg-sub);
  font-weight: 600;
}
.service-row:hover .service-num { color: var(--accent); }
.service-name {
  display: flex; flex-direction: column; gap: 4px;
}
.service-name-en {
  font-family: 'Inter';
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.005em;
  text-transform: uppercase;
}
.service-name-jp {
  font-family: 'Noto Sans JP';
  font-size: 13px;
  color: var(--fg-sub);
  letter-spacing: 0.18em;
  font-weight: 500;
}
.service-desc {
  font-family: 'Noto Sans JP';
  font-size: 13px;
  color: var(--fg-dim);
  line-height: 1.75;
  margin-left: -20px;
}
.service-arrow {
  width: 36px; height: 36px;
  border-radius: 50%;
  border: 1px solid var(--line-strong);
  display: flex; align-items: center; justify-content: center;
  transition: all 0.3s ease;
  justify-self: end;
}
.service-row:hover .service-arrow { background: var(--accent); border-color: var(--accent); transform: translateX(4px); }
.service-arrow svg { width: 14px; height: 14px; }

.services-extra {
  margin-top: 56px;
  padding: 32px;
  background: var(--bg-card);
  border: 1px solid var(--line);
  border-left: 3px solid var(--accent);
  border-radius: 2px;
}
.services-extra-label {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.3em;
  color: var(--accent);
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.services-extra-list {
  display: flex; flex-wrap: wrap; gap: 10px 24px;
}
.services-extra-list span {
  font-family: 'Noto Sans JP';
  font-size: 13.5px;
  color: var(--fg-dim);
  font-weight: 500;
}

/* ========== WORKS ========== */
.works { background: var(--bg-alt); }
.works-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 24px;
}
.work-card {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  border-radius: 2px;
  cursor: pointer;
  background: var(--bg-card);
}
.work-card-img {
  position: absolute; inset: 0;
  background-size: cover;
  background-position: center;
  filter: grayscale(0.4) brightness(0.55);
  transition: all 0.5s ease;
}
.work-card:hover .work-card-img {
  filter: grayscale(0) brightness(0.8);
  transform: scale(1.06);
}
.work-card-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(5,5,5,0.95) 100%);
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 28px;
  z-index: 2;
}
.work-card-tag {
  align-self: flex-start;
  background: var(--accent);
  color: #fff;
  padding: 5px 12px;
  font-family: 'Inter';
  font-size: 10.5px;
  letter-spacing: 0.18em;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 12px;
  border-radius: 2px;
}
.work-card-title {
  font-family: 'Noto Sans JP';
  font-size: 16.5px;
  font-weight: 700;
  margin-bottom: 6px;
  line-height: 1.5;
}
.work-card-meta {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--fg-sub);
  text-transform: uppercase;
}

/* ========== WHY / CLIENTS ========== */
.clients-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  margin-top: 56px;
}
.client-cell {
  background: var(--bg);
  padding: 40px 36px;
  display: flex; flex-direction: column; gap: 14px;
  position: relative;
  overflow: hidden;
}
.client-cell::before {
  content: ""; position: absolute;
  top: 0; right: 0;
  width: 80px; height: 80px;
  background: radial-gradient(circle at top right, var(--accent-soft), transparent);
  pointer-events: none;
}
.client-cell-num {
  font-family: 'Inter';
  font-size: 56px;
  font-weight: 200;
  color: var(--accent);
  line-height: 1;
  letter-spacing: -0.02em;
}
.client-cell-type {
  font-family: 'Noto Sans JP';
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.06em;
}
.client-cell-text {
  font-family: 'Noto Sans JP';
  font-size: 14px;
  color: var(--fg-dim);
  line-height: 1.85;
}

/* ========== COMPANY ========== */
.company { background: var(--bg-alt); }
.company-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  align-items: start;
}
.company-table { width: 100%; border-collapse: collapse; }
.company-table tr { border-bottom: 1px solid var(--line); }
.company-table th {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.3em;
  color: var(--accent);
  font-weight: 700;
  text-transform: uppercase;
  padding: 22px 0;
  text-align: left;
  width: 32%;
  vertical-align: top;
}
.company-table td {
  font-family: 'Noto Sans JP';
  font-size: 14.5px;
  color: var(--fg);
  font-weight: 500;
  padding: 22px 0;
  line-height: 1.7;
}
.company-map {
  background: var(--bg-card);
  border: 1px solid var(--line);
  aspect-ratio: 4/5;
  position: relative;
  overflow: hidden;
}
.company-map iframe { width: 100%; height: 100%; border: 0; filter: invert(0.92) hue-rotate(180deg) saturate(0.6); }

/* ========== CONTACT ========== */
.contact {
  padding: 140px 32px;
  position: relative;
  background: var(--bg);
  overflow: hidden;
}
.contact::before {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(circle at 70% 30%, rgba(225,29,56,0.16), transparent 50%),
    radial-gradient(circle at 30% 70%, rgba(225,29,56,0.06), transparent 50%);
}
.contact-inner { max-width: 880px; margin: 0 auto; text-align: center; position: relative; z-index: 2; }
.contact-num {
  font-family: 'Inter';
  font-size: 12px;
  letter-spacing: 0.4em;
  color: var(--accent);
  font-weight: 700;
  margin-bottom: 18px;
}
.contact h2 {
  font-family: 'Noto Sans JP';
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 800;
  line-height: 1.4;
  margin-bottom: 24px;
  letter-spacing: 0.01em;
}
.contact-lead {
  font-family: 'Noto Sans JP';
  font-size: 16px;
  color: var(--fg-dim);
  line-height: 2;
  max-width: 640px;
  margin: 0 auto 48px;
  font-weight: 500;
}
.contact-actions {
  display: flex; gap: 16px; justify-content: center; flex-wrap: wrap;
}
.contact-info {
  margin-top: 64px;
  padding-top: 40px;
  border-top: 1px solid var(--line);
  display: flex; gap: 56px; justify-content: center; flex-wrap: wrap;
}
.contact-info-item {
  display: flex; flex-direction: column; gap: 6px; align-items: center;
}
.contact-info-label {
  font-family: 'Inter';
  font-size: 10.5px;
  letter-spacing: 0.32em;
  color: var(--fg-sub);
  font-weight: 600;
  text-transform: uppercase;
}
.contact-info-value {
  font-family: 'Inter';
  font-size: 18px;
  font-weight: 600;
  letter-spacing: 0.04em;
}

/* ========== FOOTER ========== */
.footer {
  padding: 60px 32px 36px;
  background: #000;
  border-top: 1px solid var(--line);
}
.footer-inner {
  max-width: var(--max); margin: 0 auto;
  display: flex; justify-content: space-between; align-items: center; gap: 24px;
  flex-wrap: wrap;
}
.footer-brand {
  font-family: 'Inter';
  font-size: 18px; font-weight: 800;
  letter-spacing: 0.32em;
}
.footer-brand .dot { color: var(--accent); }
.footer-brand img,.rd-footer-brand img{display:block;height:18px;width:auto;opacity:0.5}
.footer-text {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.2em;
  color: var(--fg-sub);
}

/* ========== ANIM ========== */
.fadein { opacity: 0; transform: translateY(24px); transition: opacity 0.8s ease, transform 0.8s ease; }
.fadein.visible { opacity: 1; transform: none; }

/* ========== RESPONSIVE ========== */
@media (max-width: 980px) {
  .nav { display: none; }
  .nav.open {
    display: flex; flex-direction: column;
    position: fixed; top: 64px; left: 0; right: 0;
    background: var(--bg-alt);
    padding: 32px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    gap: 20px;
    align-items: stretch;
  }
  .nav.open a { padding: 8px 0; }
  .nav.open .cta { text-align: center; }
  .menu-toggle {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: auto; height: auto;
    border: none;
    border-radius: 0;
    padding: 8px;
    gap: 6px;
    background: transparent;
    color: #fff;
    transform: translateX(5px);
  }
  .menu-toggle .bar {
    display: block;
    width: 28px;
    height: 1.5px;
    background: #fff;
    border-radius: 0;
  }

  .header { padding: 14px 20px; }
  section { padding: 80px 20px; }
  .hero { padding: 100px 20px 80px; }
  .hero-meta, .scroll-ind { display: none; }
  .hero .ticker { top: 76px; right: 20px; font-size: 10px; padding: 5px 12px; }

  .section-head { grid-template-columns: 1fr; gap: 24px; margin-bottom: 40px; }
  .section-title-en { font-size: 44px; }

  .about-grid { grid-template-columns: 1fr; gap: 16px; }
  .service-row {
    grid-template-columns: 60px 1fr 36px;
    grid-template-rows: auto auto;
    gap: 12px 16px;
    padding: 24px 0;
  }
  .service-num { grid-row: 1; }
  .service-name { grid-row: 1; grid-column: 2; }
  .service-arrow { grid-row: 1; grid-column: 3; }
  .service-desc { grid-row: 2; grid-column: 2 / 4; }
  .service-name-en { font-size: 20px; }

  .works-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .clients-grid { grid-template-columns: 1fr; }
  .company-grid { grid-template-columns: 1fr; gap: 40px; }
  .company-map { aspect-ratio: 16/10; }
  .contact { padding: 100px 20px; }
  .contact-info { gap: 32px; }
  .footer-inner { flex-direction: column; text-align: center; gap: 16px; }
}
@media (max-width: 560px) {
  .works-grid { grid-template-columns: 1fr; }
  .hero h1 .small { display: block; }
}

/* ========== PC / Smartphone text swap ========== */
.sp-text{display:none}
.pc-text{display:inline}
@media (max-width: 600px){
  .pc-text{display:none}
  .sp-text{display:inline}
}

/* ========== Mobile-only refinements (smartphone ≤600px) ========== */
@media (max-width: 600px){
  /* Hide PC ticker time portion */
  .ticker-time{display:none !important}

  /* Use dvh on mobile so URL bar / browser chrome doesn't push content out */
  .hero{min-height:100dvh}

  /* Hero h1 / sub size for mobile */
  .hero h1{font-size:28px;line-height:1.30}
  .hero-sub{font-size:12px !important;padding-right:54px}

  /* CTA buttons compact */
  .btn-primary{padding:12px 20px;font-size:13px}
  .btn-ghost{padding:11px 18px;font-size:12.5px;transform:translateX(-5px)}

  /* Show scroll-ind on right side — add safe-area-inset for iOS home indicator + URL bar */
  .hero .scroll-ind{display:flex !important;left:auto;right:14px;bottom:calc(80px + env(safe-area-inset-bottom,0px));flex-direction:column;align-items:center;gap:10px;font-size:9px;letter-spacing:.40em}
  .hero .scroll-ind .label{writing-mode:vertical-rl;transform:rotate(180deg)}

  /* Progress dots — move up to make room for hero-meta + safe area */
  .hero .progress{bottom:calc(44px + env(safe-area-inset-bottom,0px)) !important}
  .hero .progress-dot{width:18px}
  .hero .progress-dot.active{width:34px}

  /* hero-meta — bottom with safe-area-inset for iOS browser URL bar / home indicator */
  .hero-meta{display:flex !important;position:absolute;bottom:calc(14px + env(safe-area-inset-bottom,0px));left:0;right:0;justify-content:center;align-items:center;gap:14px;padding:0 12px;font-size:9px;letter-spacing:.20em;white-space:nowrap}
  .hero-meta span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
  .hero-meta span::before{content:"";width:3px;height:3px;border-radius:50%;background:var(--accent);flex-shrink:0}

  /* Mobile sticky CTA */
  .mobile-sticky-cta{display:flex}

  /* Header scrolled — more transparent + no gray border (mobile only) */
  .header.scrolled{background:rgba(5,5,5,0.20) !important;border-bottom-color:transparent !important}

  /* Section title "What we do" — fit on one line */
  .section .section-title-en, section .section-title-en, .section-title-en{font-size:26px !important;line-height:1.15 !important;white-space:nowrap !important}
  .section .section-title-en br, section .section-title-en br, .section-title-en br{display:none !important}

  /* Service rows — center aligned, single column, 95% width, SVC.01 on top */
  .services-list{padding:0 !important;margin:0 !important}
  .section-inner{padding-left:2.5% !important;padding-right:2.5% !important}
  .service .section-inner{padding-left:2.5% !important;padding-right:2.5% !important}
  .services-list .service-row{
    border:1px solid rgba(255,255,255,0.10) !important;
    box-shadow:0 0 24px rgba(255,255,255,0.06),0 4px 20px rgba(0,0,0,0.30) !important;
    background:linear-gradient(180deg,rgba(20,20,24,0.55),rgba(12,12,16,0.55)) !important;
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
  }
  .service-row{
    display:flex !important;
    flex-direction:column;
    align-items:center;
    text-align:center;
    grid-template-columns:none !important;
    grid-template-rows:none !important;
    gap:10px;
    padding:30px 16px;
    width:100% !important;
    max-width:none !important;
    box-sizing:border-box;
  }
  .service-num{order:1}
  .service-name{order:2;align-items:center}
  .service-name-en{font-size:22px;text-align:center}
  .service-name-jp{text-align:center}
  .service-arrow{display:none}
  .service-desc{order:3;text-align:left !important;max-width:100%;padding:0 8px}

  /* "VIEW ALL SERVICES" / similar pill buttons — single line, can be wider */
  .see-more a, .pill-btn, .btn-pill{white-space:nowrap !important;padding-left:32px !important;padding-right:32px !important}

  /* Works grid — single column on mobile, banner-style cards (2/3 height) */
  .works-grid{grid-template-columns:1fr !important;gap:14px}
  .work-card,.works-card{width:100% !important;aspect-ratio:6/5 !important}
  .work-card *{white-space:normal !important}
  .work-card-overlay{padding:28px 20px 28px !important}

  /* Service rows — reduce vertical padding (cards closer together) */
  .service-row{padding:15px 16px !important}

  /* Train video (2nd slide) — shift left on mobile to fill black gap */
  .hero .slide-video-train{transform:scale(1.15) translateX(-20px) !important}

  /* Animations on mobile: appear earlier (JS rootMargin), but smoother/slower duration */
  .hero .slide{transition-duration:0.8s !important}
  .hero .slide-photo{animation-duration:5s !important}
  .fadein{transition: opacity 0.7s ease, transform 0.7s ease !important}
  .service-row,.work-card,.about-card{transition-duration:0.6s !important}

  /* Service-row stagger animation — slower (more graceful) on mobile */
  .services-list .service-row.in-view{animation-duration:1.4s !important}
  .services-list .service-row.in-view:nth-child(1){animation-delay:0s !important}
  .services-list .service-row.in-view:nth-child(2){animation-delay:0.20s !important}
  .services-list .service-row.in-view:nth-child(3){animation-delay:0.40s !important}
  .services-list .service-row.in-view:nth-child(4){animation-delay:0.60s !important}
  .services-list .service-row.in-view:nth-child(5){animation-delay:0.80s !important}
  .services-list .service-row.in-view:nth-child(6){animation-delay:1.00s !important}

  /* Works cards — wider (~95% of viewport) */
  .works .section-inner{padding-left:2.5% !important;padding-right:2.5% !important}
  .works-grid{padding:0 !important;margin:0 !important}
  .work-card,.works-card{width:100% !important;max-width:100% !important}

  /* Reduce empty space above chapter-cover — keep min-height for cov-text positioning */
  .chapter-cover{min-height:160px !important;height:auto !important;padding:30px 22px !important;margin-top:-25px !important;margin-bottom:0 !important}
  .service{padding-bottom:12vh !important}
  .works{margin-top:-25px !important}
  .works .chapter-cover{min-height:140px !important;height:auto !important;padding:30px 22px !important;margin-top:-100px !important}
  /* Quality chapter-cover — 25px space below title to avoid touching about-card */
  html body #quality-teaser .chapter-cover{margin-top:20px !important;margin-bottom:45px !important;min-height:180px !important;height:auto !important;padding:30px 22px !important}

  /* Stats-strip — lowered 30px from previous position */
  .stats-strip{padding-top:50px !important;padding-bottom:30px !important}
  #quality-teaser{padding-top:0 !important}

  /* Works button — 26px gap below */
  .works .see-more{margin-top:30px !important;margin-bottom:26px !important}
  .works{padding-bottom:30px !important}

  /* Remove divider line below chapter-cover heading */
  .cov-text::after{display:none !important}

  /* What we do / Quality / Works — chapter-cover heading: force 1 line */
  .cov-en{font-size:48px !important;white-space:nowrap !important;line-height:1 !important}
  .cov-jp{font-size:13px !important;letter-spacing:.16em !important}
  .cov-tag{font-size:10px !important;letter-spacing:.28em !important;margin-bottom:18px !important}
  .cov-tag::before,.cov-tag::after{width:24px !important}

  /* What we do — force 1 line with maximum specificity (section-title-en variant) */
  body .service .section-title-en,body .section .section-title-en,body section .section-title-en,html body .section-title-en{font-size:24px !important;line-height:1.15 !important;white-space:nowrap !important;letter-spacing:-0.01em !important}
  body .service .section-title-en br,body .section .section-title-en br,body section .section-title-en br,html body .section-title-en br{display:none !important}

  /* Works section title — smaller */
  .works .section-title-en,.section.works .section-title-en{font-size:32px}

  /* CTA banner p — smaller, no strong emphasis on 無料, fits in 2 lines */
  .cta-banner p{font-size:12.5px !important;line-height:1.85;max-width:none;padding:0 18px}
  .cta-banner p strong{font-weight:inherit !important;color:inherit !important}
  .cta-banner p br{display:none}

  /* CTA banner — 10px top padding above CONTACT (mobile only) */
  .cta-banner{padding:10px 8px 40px !important;border-top:1px solid rgba(255,255,255,0.12) !important}
  /* Quality section bottom: minimal gap below VIEW QUALITY STANDARDS button */
  #quality-teaser{padding-bottom:0 !important}
  #quality-teaser .section-inner{padding-bottom:0 !important}
  #quality-teaser .see-more{margin-top:18px !important;margin-bottom:0 !important;padding-bottom:0 !important}
  /* Reduce see-more spacing */
  #quality-teaser .see-more{margin-top:36px !important;margin-bottom:0 !important}

  /* CTA card — 95% width, centered, content center-aligned */
  .cta-card{padding:40px 10px !important;margin:30px auto 0 !important;width:95% !important;max-width:95% !important;text-align:center !important}
  .cta-card-col{padding:0 4px !important;text-align:center !important;display:flex !important;flex-direction:column !important;align-items:center !important}
  /* Divider line above the TEL section (between FORM and TEL blocks) */
  .cta-card-col + .cta-card-col{border-top:1px solid rgba(255,255,255,0.18) !important;padding-top:36px !important;margin-top:30px !important}
  .cta-card .cta-en,.cta-card .cta-jp,.cta-card .cta-desc,.cta-card .cta-tel-num{text-align:center !important;width:100%}
  /* Title size reduced by 3px on mobile */
  .cta-card .cta-jp{font-size:27px !important}
  .cta-card .cta-tel-hours{justify-content:center !important;width:100%}
  /* CTA button — text centered, icon stays at right (absolute) */
  .cta-card .cta-btn{position:relative !important;justify-content:center !important;padding:16px 22px !important;width:100%}
  .cta-card .cta-btn svg{position:absolute !important;right:22px !important;top:50% !important;transform:translateY(-50%) !important}
  /* CTA description text — 1px smaller */
  .cta-card .cta-desc{font-size:13px !important}

  /* Phone number — single line, large, slightly bolder */
  .cta-card .cta-tel-num{font-size:clamp(28px,9vw,40px) !important;font-weight:600 !important;white-space:nowrap;letter-spacing:-0.01em}

  /* Back-to-top button (.hero .scroll-ind.is-bottom is the actual TOP button) — 10px from right */
  html body .hero .scroll-ind.is-bottom{right:10px !important;left:auto !important}
  /* Also keep scroll-top safe */
  .scroll-top{right:10px !important;left:auto !important}

  /* Footer — reduce top padding (mobile only) */
  .footer{padding-top:30px !important;padding-bottom:24px !important;position:relative;z-index:10;background:#000 !important}

  /* Quality (about-card) — P1 Frosted Glass (mobile only, ~98% width) */
  .about-grid{position:relative;gap:14px;padding:0;margin:150px 0 0}
  #quality-teaser .section-inner{padding-left:1% !important;padding-right:1% !important}
  .about-grid::before{display:none}
  /* Quality section: z-index so JS-driven fixed bg shows through (mobile only) */
  html body #quality-teaser{position:relative;z-index:1;background:none !important}
  html body #quality-teaser>*{position:relative;z-index:2}
  /* Kill the dark gradient overlay that sits on top of the bg image */
  html body #quality-teaser::after{display:none !important;background:none !important}

  /* iOS Safari fix: hide ALL native bg-attachment:fixed pseudo-elements (use JS-driven fixed bg instead) */
  .service::before{display:none !important}
  .cta-banner::before{display:none !important}
  .cta-banner::after{display:none !important}
  html body #quality-teaser::before{display:none !important}
  /* bg-fixed-section: hide PC pseudos, make transparent so .page-bg-mobile shows through */
  .bg-fixed-section::before{display:none !important}
  .bg-fixed-section::after{display:none !important}
  html body section.bg-fixed-section{background:transparent !important;background-color:transparent !important;position:relative;z-index:1;padding-top:50px !important}
  .commit-bg-section{padding-left:25px !important;padding-right:25px !important}
  .reason-detail-lead .sub{font-size:13px !important}
  html body section.bg-fixed-section>*{position:relative;z-index:2}
  /* Static fixed bg layer for subpages — JS toggles .is-active per section */
  html body .page-bg-mobile{
    display:block !important;
    position:fixed !important;
    top:0 !important;left:0 !important;
    width:100vw !important;height:100vh !important;
    background-image:url("https://images.unsplash.com/photo-1517048676732-d65bc937f952?w=2400&q=85&auto=format&fit=crop") !important;
    background-size:cover !important;
    background-position:center !important;
    background-repeat:no-repeat !important;
    background-attachment:scroll !important;
    filter:grayscale(1) brightness(0.32) contrast(0.95) blur(2px) !important;
    opacity:0 !important;
    z-index:0 !important;
    pointer-events:none !important;
    transition:opacity .35s ease !important;
  }
  html body .page-bg-mobile.is-active{opacity:0.55 !important}
  html body .page-bg-mobile.is-cta{filter:grayscale(1) brightness(0.42) contrast(1.0) blur(1.5px) !important;opacity:0.65 !important;background-image:url("https://images.unsplash.com/photo-1526374423566-3382819a7919?w=2400&q=85&auto=format&fit=crop") !important}

  /* Quality (about.html) — match index.html mobile Quality card style */
  .bg-fixed-section .qual-pillars{display:flex !important;flex-direction:column !important;gap:16px !important;grid-template-columns:none !important;border-top:none !important;border-bottom:none !important}
  html body .bg-fixed-section .qual-pillar{
    align-items:stretch !important;
    text-align:center !important;
    background:rgba(0,0,0,0.01) !important;
    backdrop-filter:blur(20px) saturate(140%) !important;
    -webkit-backdrop-filter:blur(20px) saturate(140%) !important;
    border:1px solid rgba(255,255,255,0.20) !important;
    border-radius:14px !important;
    padding:36px 22px !important;
    margin:0 !important;
    box-shadow:0 8px 30px rgba(0,0,0,0.35) !important;
    position:relative !important;
    overflow:hidden !important;
    display:flex !important;
    flex-direction:column !important;
  }
  html body .bg-fixed-section .qual-pillar+.qual-pillar{border-left:none !important;border-top:1px solid rgba(255,255,255,0.20) !important}
  html body .bg-fixed-section .qual-pillar-icon{
    margin:0 auto 18px !important;
    width:52px !important;height:52px !important;
    padding:13px !important;
    border:1px solid rgba(255,255,255,0.25) !important;
    border-radius:50% !important;
    background:transparent !important;
    color:#fff !important;
    box-sizing:content-box !important;
    display:flex !important;
    align-items:center;
    justify-content:center;
  }
  html body .bg-fixed-section .qual-pillar-cap{text-align:center !important;font-size:11px !important;letter-spacing:.32em !important;color:var(--accent) !important;font-weight:700 !important;margin-bottom:8px !important}
  html body .bg-fixed-section .qual-pillar-en{text-align:center !important;font-size:26px !important;font-weight:300 !important;letter-spacing:-.005em !important;margin-bottom:4px !important;color:#fff !important}
  html body .bg-fixed-section .qual-pillar-jp{text-align:center !important;font-size:12px !important;color:rgba(255,255,255,0.55) !important;letter-spacing:.10em !important;margin-bottom:24px !important;padding-bottom:20px !important;border-bottom:1px solid rgba(255,255,255,0.10) !important}
  /* Items list with red checkmark */
  html body .bg-fixed-section .qual-pillar-items{text-align:left !important}
  html body .bg-fixed-section .qual-item{
    display:grid !important;
    grid-template-columns:24px 1fr !important;
    grid-template-rows:auto auto !important;
    gap:0 8px !important;
    padding:14px 0 !important;
    border-bottom:1px solid rgba(255,255,255,0.06) !important;
  }
  html body .bg-fixed-section .qual-pillar-items > .qual-item:last-child{border-bottom:none !important}
  html body .bg-fixed-section .qual-item-head{grid-column:2;font-size:14px !important;font-weight:700 !important;letter-spacing:.04em !important;color:#fff !important}
  html body .bg-fixed-section .qual-item-head::before{display:none !important}
  html body .bg-fixed-section .qual-item-desc{grid-column:2;font-size:12.5px !important;line-height:1.75 !important;color:rgba(255,255,255,0.65) !important;margin-top:4px !important}
  html body .bg-fixed-section .qual-item::before{content:"";grid-column:1;grid-row:1 / span 2;width:16px;height:16px;margin-top:3px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e11d38' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><polyline points='4 12 10 18 20 6'/></svg>");background-size:contain;background-repeat:no-repeat;background-position:center}

  /* Reason cells as cards (mobile only) */
  .bg-fixed-section .reason-grid{display:flex !important;flex-direction:column !important;gap:16px !important;grid-template-columns:none !important;border-top:none !important;border-bottom:none !important}
  html body .bg-fixed-section .reason-cell{
    text-align:center !important;
    background:rgba(0,0,0,0.01) !important;
    backdrop-filter:blur(20px) saturate(140%) !important;
    -webkit-backdrop-filter:blur(20px) saturate(140%) !important;
    border:1px solid rgba(255,255,255,0.20) !important;
    border-radius:14px !important;
    padding:36px 22px !important;
    margin:0 !important;
    box-shadow:0 8px 30px rgba(0,0,0,0.35) !important;
    overflow:hidden !important;
    align-items:stretch !important;
  }
  html body .bg-fixed-section .reason-cell+.reason-cell{border-left:none !important;border-top:1px solid rgba(255,255,255,0.20) !important}
  html body .bg-fixed-section .reason-cell::before{display:none !important}
  html body .bg-fixed-section .reason-cell-cap{text-align:center !important;font-size:11px !important;letter-spacing:.32em !important;color:var(--accent) !important;font-weight:700 !important;margin-bottom:12px !important}
  html body .bg-fixed-section .reason-cell-cap::after{display:none !important}
  html body .bg-fixed-section .reason-cell-en{text-align:center !important;font-size:26px !important;font-weight:300 !important;letter-spacing:-.005em !important;margin-bottom:4px !important;color:#fff !important}
  html body .bg-fixed-section .reason-cell-jp{text-align:center !important;font-size:12px !important;color:rgba(255,255,255,0.55) !important;letter-spacing:.10em !important;margin-bottom:24px !important;padding-bottom:20px !important;border-bottom:1px solid rgba(255,255,255,0.10) !important}
  html body .bg-fixed-section .reason-cell-text{text-align:center !important;font-size:13px !important;line-height:1.85 !important;color:rgba(255,255,255,0.75) !important;margin-top:0 !important}
  /* CTA section: kill ALL backgrounds on mobile so the JS-driven fixed bg can show through */
  html body section.cta-banner{background:transparent !important;background-color:transparent !important}
  html body .cta-banner-inner{background:transparent !important;background-color:transparent !important}
  html body .cta-banner .cta-card,
  html body section.cta-banner .cta-card{
    background:transparent !important;
    background-color:transparent !important;
    background-image:none !important;
    backdrop-filter:none !important;
    -webkit-backdrop-filter:none !important;
    border:none !important;
    box-shadow:none !important;
  }
  html body .cta-card-row{background:transparent !important;background-color:transparent !important}
  html body .cta-card-col{background:transparent !important;background-color:transparent !important}
  /* JS-driven fixed bg element shown on mobile only */
  html body .mobile-fixed-bg{
    display:block !important;
    position:fixed;
    top:0;left:0;
    width:100vw;height:100vh;
    background-size:cover;
    background-position:center;
    background-repeat:no-repeat;
    filter:grayscale(1) brightness(0.32) contrast(0.95) blur(2px);
    opacity:0;
    transition:opacity .6s ease, background-image .3s ease;
    z-index:0;
    pointer-events:none;
  }
  html body .mobile-fixed-bg.is-active{opacity:0.55}
  /* When showing CTA bg, use PC-matched filter (brighter, since cityscape is bright) */
  html body .mobile-fixed-bg.is-cta{filter:grayscale(1) brightness(0.42) contrast(1.0) blur(1.5px) !important;opacity:0.65 !important}
  /* Service section needs transparent bg + relative z-index so the fixed bg shows through */
  html body .service{background:transparent !important;position:relative;z-index:1}
  html body .service>*{position:relative;z-index:2}
  /* html body to win over desktop rule at line 2378 (same specificity loses on source order) */
  html body #quality-teaser .about-card{
    align-items:stretch !important;
    text-align:center !important;
    background:rgba(0,0,0,0.01) !important;
    backdrop-filter:blur(20px) saturate(140%) !important;
    -webkit-backdrop-filter:blur(20px) saturate(140%) !important;
    border:1px solid rgba(255,255,255,0.20) !important;
    border-top:1px solid rgba(255,255,255,0.20) !important;
    border-right:1px solid rgba(255,255,255,0.20) !important;
    border-bottom:1px solid rgba(255,255,255,0.20) !important;
    border-left:1px solid rgba(255,255,255,0.20) !important;
    border-radius:14px !important;
    padding:36px 22px !important;
    margin:0 !important;
    box-shadow:0 8px 30px rgba(0,0,0,0.35) !important;
    position:relative !important;
    overflow:hidden !important;
  }
  html body #quality-teaser .about-card::before{display:none !important}
  html body #quality-teaser .about-card::after{display:none !important}
  /* Hide the big outlined number watermark on mobile (looks tacky) */
  .about-card::before{display:none !important}
  /* html body to defeat desktop rules at line 2389+ */
  html body #quality-teaser .about-card-icon{
    margin:0 auto 18px !important;
    width:52px !important;height:52px !important;
    padding:13px !important;
    border:1px solid rgba(255,255,255,0.25) !important;
    border-radius:50% !important;
    background:transparent !important;
    color:#fff !important;
    box-sizing:content-box !important;
    display:flex !important;
    align-items:center;
    justify-content:center;
  }
  html body #quality-teaser .about-card-num{text-align:center !important;font-size:11px !important;letter-spacing:.32em !important;color:var(--accent) !important;font-weight:700 !important;margin-bottom:8px !important}
  html body #quality-teaser .about-card-title{text-align:center !important;font-size:26px !important;font-weight:300 !important;letter-spacing:-.005em !important;margin-bottom:4px !important;color:#fff !important}
  html body #quality-teaser .about-card-jp{text-align:center !important;font-size:12px !important;color:rgba(255,255,255,0.55) !important;letter-spacing:.10em !important;margin-bottom:24px !important;padding-bottom:20px !important;border-bottom:1px solid rgba(255,255,255,0.10) !important}
  /* about-card-list: keep existing grid + checkmark (line 2398-) but adjust spacing */
  .about-card-list{text-align:left}
  .about-card-list li{padding:14px 0;border-bottom:1px solid rgba(255,255,255,0.06)}
  .about-card-list li:last-child{border-bottom:none}
  .about-card-list .li-title{font-size:14px;font-weight:700;letter-spacing:.04em;color:#fff}
  .about-card-list .li-title::before{display:none !important}
  .about-card-list .li-text{font-size:12.5px;line-height:1.75;color:rgba(255,255,255,0.65)}

}
.mobile-sticky-cta{display:none}
.mobile-fixed-bg{display:none}

/* Mobile sticky CTA bar — PAT.09 Red Gradient Hero (mobile only) */
.mobile-sticky-cta{position:fixed;top:0;left:0;right:0;z-index:9000;display:flex;align-items:center;gap:6px;padding:14px 20px;background:linear-gradient(90deg,#1a0509 0%,#2a0610 35%,#0a0a0c 100%);border-bottom:none;transform:translateY(-100%);transition:transform .35s cubic-bezier(.2,.8,.3,1)}
@media (min-width: 601px){
  .mobile-sticky-cta{display:none !important}
}
.br-sp{display:none}
@media (max-width: 600px){.br-sp{display:inline}}
/* Mobile: vertically center hero-cinematic content + scroll-ind at right edge */
@media (max-width: 600px){
  .hero-cinematic-cnt{transform:translateY(0) !important}
  .hero-cinematic .scroll-ind{position:fixed !important;z-index:50;display:flex !important;left:auto !important;right:8px !important;transform:none !important;bottom:32px !important;flex-direction:column;align-items:center;gap:10px;opacity:0;animation:heroScrollIndFadeIn .8s ease 1.4s forwards}
}
@keyframes heroScrollIndFadeIn{to{opacity:1}}
/* Mobile only: enlarge commit-pillar-dot to 120% */
@media (max-width: 600px){
  .commit-pillar-dot{transform:scale(1.2);transform-origin:center}
  /* Show qual/reason head text immediately on mobile (no fade delay) */
  .qual-detail-eyebrow,.qual-detail-title,.qual-detail-jp,.qual-detail-lead,
  .reason-detail-eyebrow,.reason-detail-title,.reason-detail-jp,.reason-detail-lead{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}
/* PC: nudge hero-cinematic-cnt 15px lower (override inline translateY) */
@media (min-width: 601px){
  .hero-cinematic-cnt{transform:translateY(-50px) !important}
}
.mobile-sticky-cta.on{transform:translateY(0)}
.mobile-sticky-cta .brand{flex-shrink:0;align-self:center;margin-right:auto;font-family:'Inter',sans-serif;font-weight:800;font-size:18px;letter-spacing:0.32em;color:#fff;text-decoration:none;display:inline-flex;align-items:center}
.mobile-sticky-cta .brand .dot{color:var(--accent)}
.mobile-sticky-cta .brand img{display:block;height:24.68px;width:auto;transform:translateY(-6px)}
.mobile-sticky-cta .btn-primary{margin-left:0;padding:8px 12px;font-size:11px;font-weight:700;background:var(--accent);color:#fff;border-radius:99px;text-decoration:none;display:inline-flex;align-items:center}
.mobile-sticky-cta .btn-primary svg{display:none}
.mobile-sticky-cta .btn-ghost{margin-left:4px;padding:8px 11px;font-size:11px;font-weight:600;color:#fff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);border-radius:99px;text-decoration:none}
.mobile-sticky-cta .ham{display:flex;flex-direction:column;align-items:center;justify-content:center;width:auto;height:auto;border:none;border-radius:0;padding:8px;gap:6px;background:transparent;color:#fff;cursor:pointer;flex-shrink:0}
.mobile-sticky-cta .ham span{display:block;width:28px;height:1.5px;background:#fff;border-radius:0;transition:transform .35s ease,opacity .25s ease}

/* ============== Mobile drawer menu (PAT.02 — bg photo visible, big rounded CTAs) ============== */
.mobile-drawer,.mobile-backdrop{display:none}
@media (max-width: 600px){
  /* Disable existing .nav.open mobile dropdown (replaced by drawer) */
  .nav.open{display:none !important}

  /* Both hamburgers morph to X */
  .menu-toggle .bar{transition:transform .35s ease,opacity .25s ease}
  .menu-toggle.open .bar:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  .menu-toggle.open .bar:nth-child(2){opacity:0}
  .menu-toggle.open .bar:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
  .mobile-sticky-cta .ham.open span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  .mobile-sticky-cta .ham.open span:nth-child(2){opacity:0}
  .mobile-sticky-cta .ham.open span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

  /* Light backdrop — hero photo stays clearly visible */
  .mobile-backdrop{display:block;position:fixed;inset:0;z-index:9050;background:rgba(0,0,0,0.20);opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s ease}
  .mobile-backdrop.open{opacity:1;visibility:visible}

  /* Drawer (right side, slides in) */
  .mobile-drawer{display:flex;position:fixed;top:0;bottom:0;right:0;width:78%;max-width:340px;z-index:9100;background:#0a0a0c;border-left:1px solid rgba(225,29,56,.3);padding:90px 24px 28px;flex-direction:column;transform:translateX(100%);transition:transform .45s cubic-bezier(.2,.8,.3,1);overflow-y:auto}
  .mobile-drawer.open{transform:translateX(0);box-shadow:-4px 0 16px rgba(0,0,0,.25)}
  .mobile-drawer h4{font-family:'Roboto Mono',monospace;font-size:9px;color:var(--accent);letter-spacing:.2em;margin-bottom:14px;text-transform:uppercase}
  .mobile-drawer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;border-top:1px solid rgba(255,255,255,.08)}
  .mobile-drawer li{border-bottom:1px solid rgba(255,255,255,.08)}
  /* Drawer close (×) button at top-right of drawer panel */
  .mobile-drawer .drawer-close{position:absolute;top:14px;right:14px;width:40px;height:40px;background:transparent;border:none;color:#fff;font-size:32px;line-height:1;padding:0;cursor:pointer;z-index:10;display:flex;align-items:center;justify-content:center;font-family:'Inter',sans-serif;font-weight:300}
  .mobile-drawer li a{display:flex;align-items:center;justify-content:space-between;padding:18px 4px;color:#fff;text-decoration:none;font-size:14px;font-weight:600;letter-spacing:.04em}
  .mobile-drawer li .en{font-family:'Inter',sans-serif;font-size:10px;color:rgba(255,255,255,.45);letter-spacing:.18em}

  /* Big rounded CTA pair: text centered, icon right */
  .mobile-drawer .cta-stack{margin-top:auto;display:flex;flex-direction:column;gap:12px;opacity:0;transform:translateY(20px);transition:opacity .45s ease .55s,transform .45s ease .55s}
  .mobile-drawer.open .cta-stack{opacity:1;transform:translateY(0)}
  .mobile-drawer .md-pri,.mobile-drawer .md-gho{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;border-radius:99px;text-decoration:none;letter-spacing:.04em}
  .mobile-drawer .md-pri{padding:16px 24px;background:var(--accent);color:#fff;font-size:14px;font-weight:700}
  .mobile-drawer .md-gho{padding:15px 24px;color:#fff;border:1.5px solid rgba(255,255,255,.32);font-size:13px;font-weight:600}
  .mobile-drawer .md-pri svg{position:absolute;right:24px;top:50%;transform:translateY(-50%);width:16px;height:16px}
  .mobile-drawer .md-gho svg{position:absolute;right:24px;top:50%;transform:translateY(-50%);width:14px;height:14px}

  /* Lock body scroll when drawer open */
  body.menu-open{overflow:hidden}
}

/* ========== SUBPAGE HEADER (mini hero with bg image + Ken Burns) ========== */
.page-header {
  position: relative;
  min-height: 460px;
  padding: 180px 32px 120px;
  background: var(--bg);
  border-bottom: 1px solid var(--line);
  overflow: hidden;
  display: flex;
  align-items: flex-end;
}
.page-header-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  filter: contrast(1.05) saturate(0.85) brightness(0.55);
  animation: pageheaderkb 22s ease-in-out infinite alternate;
  z-index: 0;
  will-change: transform;
}
@keyframes pageheaderkb {
  0%   { transform: scale(1.05) translate(-1%, 1%); }
  100% { transform: scale(1.18) translate(2%, -2%); }
}
.page-header::after {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(180deg, rgba(5,5,5,0.35) 0%, rgba(5,5,5,0.55) 40%, rgba(5,5,5,0.92) 100%),
    linear-gradient(90deg, rgba(5,5,5,0.85) 0%, rgba(5,5,5,0.5) 50%, rgba(5,5,5,0.4) 100%),
    radial-gradient(circle at 85% 30%, rgba(225,29,56,0.18), transparent 55%);
  pointer-events: none;
}
.page-header-scan {
  position: absolute; inset: 0; z-index: 1;
  background: repeating-linear-gradient(0deg, transparent 0, transparent 2px, rgba(0,0,0,0.22) 2px, rgba(0,0,0,0.22) 3px);
  mix-blend-mode: multiply; pointer-events: none;
}
.page-header-inner {
  max-width: var(--max);
  margin: 0 auto;
  width: 100%;
  position: relative;
  z-index: 2;
}
.page-header-badge {
  position: absolute; top: 100px; right: 32px; z-index: 3;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px; color: var(--accent);
  letter-spacing: 0.08em;
  border: 1px solid var(--line-strong);
  padding: 6px 14px; border-radius: 999px;
  background: rgba(5,5,5,0.7);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  display: flex; align-items: center; gap: 10px;
}
.page-header-badge::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: var(--accent); box-shadow: 0 0 0 3px rgba(225,29,56,0.35);
  animation: pulse 1.6s ease-in-out infinite;
}
.page-header-scroll {
  position: absolute;
  bottom: 28px; left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.3em;
  color: var(--fg);
  text-transform: uppercase;
  font-weight: 600;
  display: flex; align-items: center; gap: 12px;
  background: rgba(5,5,5,0.6);
  padding: 14px 24px;
  border-radius: 999px;
  border: 1px solid var(--line-strong);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  cursor: pointer;
  transition: all 0.25s ease;
}
.page-header-scroll:hover {
  background: var(--accent);
  border-color: var(--accent);
  transform: translateX(-50%) translateY(-2px);
}
.page-header-scroll svg {
  width: 14px; height: 14px;
  animation: scrollBounce 1.6s ease-in-out infinite;
}
@keyframes scrollBounce {
  0%, 100% { transform: translateY(0); opacity: 0.7; }
  50% { transform: translateY(6px); opacity: 1; }
}
.page-breadcrumb::before {
  content: "";
  display: inline-block;
  width: 36px; height: 1px;
  background: var(--accent);
}

/* ========== PAGE HERO (consolidated first-view feature-row) ========== */
.page-hero {
  padding: 90px 32px 80px;
  background: var(--bg);
  position: relative;
  overflow: hidden;
  min-height: 100vh;
  display: flex;
  align-items: center;
}
.page-hero-top {
  margin-bottom: 56px;
  max-width: 880px;
}
.page-hero-tag {
  font-family: 'Inter';
  font-size: 12px;
  letter-spacing: 0.34em;
  color: var(--accent);
  font-weight: 700;
  text-transform: uppercase;
  margin: 18px 0 18px;
  display: flex; align-items: center; gap: 14px;
}
.page-hero-tag::before {
  content: ""; display: inline-block;
  width: 36px; height: 1px;
  background: var(--accent);
}
.page-hero-h1 {
  font-family: 'Noto Sans JP';
  font-size: clamp(34px, 4.6vw, 60px);
  font-weight: 800;
  line-height: 1.32;
  margin-bottom: 22px;
  letter-spacing: 0.005em;
}
.page-hero-h1 .accent { color: var(--accent); }
.page-hero-lead {
  font-family: 'Noto Sans JP';
  font-size: clamp(14px, 1.25vw, 16px);
  color: var(--fg-dim);
  line-height: 2;
  max-width: 780px;
  font-weight: 500;
}
.page-hero-lead strong { color: var(--fg); }
.page-hero::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(circle at 80% 30%, rgba(225,29,56,0.10), transparent 55%),
    radial-gradient(circle at 10% 90%, rgba(225,29,56,0.05), transparent 55%);
  pointer-events: none;
}
.page-hero .section-inner { position: relative; z-index: 2; width: 100%; }
.page-hero .feature-row { margin: 0; align-items: center; }
.page-hero .feature-image { aspect-ratio: 4/5; max-height: min(720px, calc(100vh - 200px)); }
.page-hero .feature-image-bg { animation: pageheaderkb 22s ease-in-out infinite alternate; }
.page-hero .feature-content { display: flex; flex-direction: column; justify-content: center; }
.page-hero .feature-content h3 {
  font-size: clamp(28px, 4vw, 52px);
  font-weight: 800;
  line-height: 1.35;
}
.page-hero .feature-num {
  font-size: 12px;
  letter-spacing: 0.34em;
}
.page-hero-breadcrumb {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.32em;
  color: var(--fg-sub);
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 24px;
  display: flex; align-items: center; gap: 14px;
}
.page-hero-breadcrumb::before {
  content: "";
  display: inline-block;
  width: 36px; height: 1px;
  background: var(--accent);
}
.page-hero-breadcrumb a:hover { color: var(--accent); }
.page-hero-breadcrumb .sep { color: var(--accent); }

@media (max-width: 980px) {
  .page-hero { padding: 90px 20px 60px; min-height: auto; }
  .page-hero .feature-image { max-height: 280px; aspect-ratio: 16/10; }
}
.page-breadcrumb {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.32em;
  color: var(--fg-sub);
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 24px;
  display: flex; align-items: center; gap: 14px;
}
.page-breadcrumb a:hover { color: var(--accent); }
.page-breadcrumb .sep { color: var(--accent); }
.page-title-en {
  font-family: 'Inter';
  font-size: clamp(48px, 6.5vw, 88px);
  font-weight: 300;
  line-height: 1.0;
  letter-spacing: -0.01em;
  margin-bottom: 14px;
}
.page-title-en .accent { color: var(--accent); }
.page-title-jp {
  font-family: 'Noto Sans JP';
  font-size: 16px;
  letter-spacing: 0.28em;
  color: var(--fg-dim);
  font-weight: 500;
  margin-bottom: 28px;
}
.page-lead {
  font-family: 'Noto Sans JP';
  font-size: clamp(14.5px, 1.3vw, 16.5px);
  color: var(--fg-dim);
  line-height: 2;
  font-weight: 500;
  max-width: 760px;
}

/* ========== STATS STRIP (home) ========== */
.stats-strip {
  background: transparent;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 90px 32px 140px;
}
.stat-icon-wrap{display:flex;justify-content:center;margin-bottom:18px}
.stat-icon{width:56px;height:56px;stroke:rgba(255,255,255,0.7);stroke-width:0.9;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:stroke .3s ease}
.stat-card:hover .stat-icon{stroke:#fff}
.stats-grid {
  max-width: var(--max);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 28px;
}
.stat-card {
  text-align: center;
  position: relative;
}
.stat-card:not(:last-child)::after {
  content: ""; position: absolute;
  right: -14px; top: 20%; bottom: 20%;
  width: 1px;
  background: var(--line);
}
.stat-num {
  font-family: 'Inter';
  font-size: 38px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--accent);
  line-height: 1;
  margin-bottom: 10px;
}
.stat-label {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.32em;
  font-weight: 600;
  color: var(--fg-sub);
  text-transform: uppercase;
}
.stat-jp {
  font-family: 'Noto Sans JP';
  font-size: 12px;
  color: var(--fg-dim);
  margin-top: 6px;
}

/* ========== CTA BANNER ========== */
.cta-banner {
  padding: 120px 32px;
  background: transparent;
  position: relative;
  overflow: hidden;
}
.cta-banner::before {
  content: "";
  position: absolute; inset: 0;
  background-image: url("https://images.unsplash.com/photo-1526374423566-3382819a7919?w=2400&q=85&auto=format&fit=crop");
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  filter: grayscale(1) brightness(0.42) contrast(1.0) blur(1.5px);
  opacity: 0.65;
  z-index: 0;
  pointer-events: none;
}
.cta-banner::after {
  content: "";
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(10,10,10,0.25) 0%, rgba(10,10,10,0.40) 60%, rgba(10,10,10,0.60) 100%),
    radial-gradient(circle at 70% 40%, rgba(225,29,56,0.15), transparent 55%);
  z-index: 1;
  pointer-events: none;
}
.cta-banner-inner {
  max-width: var(--max);
  margin: 0 auto;
  position: relative; z-index: 2;
  text-align: center;
}
.cta-banner-num {
  font-family: 'Inter';
  font-size: 12px;
  letter-spacing: 0.4em;
  color: var(--accent);
  font-weight: 700;
  margin: 20px 0;
}
.cta-banner h2 {
  font-family: 'Noto Sans JP';
  font-size: clamp(28px, 3.6vw, 44px);
  font-weight: 800;
  line-height: 1.45;
  margin-bottom: 22px;
}
.cta-banner p {
  font-family: 'Noto Sans JP';
  font-size: 15px;
  color: var(--fg-dim);
  line-height: 1.95;
  max-width: 600px;
  margin: 0 auto 36px;
  font-weight: 500;
}
.cta-banner .cta-em{color:var(--accent);font-weight:900}
.cta-card{background:rgba(15,15,15,0.20);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,0.10);padding:80px 70px;border-radius:8px;max-width:1080px;margin:50px auto 0;position:relative;z-index:2;text-align:left}
.cta-card-row{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start;position:relative}
.cta-card-row::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:rgba(255,255,255,0.12)}
.cta-card-col{padding:0 16px}
.cta-card .cta-en{font-family:'Inter';font-size:13px;letter-spacing:0.32em;color:#e11d38;font-weight:700;margin-bottom:18px;text-transform:uppercase}
.cta-card .cta-jp{font-family:'Noto Sans JP';font-weight:900;font-size:30px;color:#fff;margin-bottom:22px;letter-spacing:0.04em;line-height:1.3}
.cta-card .cta-desc{font-family:'Noto Sans JP';font-size:14px;color:rgba(255,255,255,0.7);line-height:1.85;margin-bottom:28px;font-weight:500}
.cta-card .cta-btn{display:flex;align-items:center;justify-content:space-between;padding:22px 28px;font-family:'Inter';font-size:16px;font-weight:700;letter-spacing:0.04em;text-decoration:none;transition:all .3s ease;width:100%;margin-bottom:12px;border-radius:0}
.cta-card .cta-btn svg{width:16px;height:16px;color:currentColor}
.cta-card .cta-btn-pri svg{width:22px;height:22px;stroke-width:1.4;margin-right:3px}
.cta-card .cta-btn-calc{width:36px !important;height:36px !important;margin-right:-5px}

/* ========== ESTIMATE TOOL MODAL ========== */
.est-modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:24px;font-family:'Noto Sans JP',sans-serif}
.est-modal.is-open{display:flex;animation:estFadeIn .25s ease both}
@keyframes estFadeIn{from{opacity:0}to{opacity:1}}
.est-backdrop{position:absolute;inset:0;background:radial-gradient(70% 60% at 50% 50%,rgba(8,8,8,0.22) 0%,rgba(4,4,4,0.85) 100%);backdrop-filter:blur(3px) saturate(0%);-webkit-backdrop-filter:blur(3px) saturate(0%)}
.est-window{position:relative;width:100%;max-width:680px;height:88vh;max-height:780px;background:rgba(22,22,22,.72);border:1px solid rgba(255,255,255,0.15);border-top:2px solid var(--accent);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 50px 130px rgba(0,0,0,0.55),0 0 0 1px rgba(255,255,255,0.04),0 0 30px rgba(225,29,56,0.10);backdrop-filter:blur(24px) saturate(0%);-webkit-backdrop-filter:blur(24px) saturate(0%);animation:estPop .28s cubic-bezier(.2,.8,.3,1) both}
@keyframes estPop{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.est-titlebar{display:flex;align-items:center;gap:14px;padding:14px 18px;background:rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,0.10);flex-shrink:0;box-shadow:0 1px 0 rgba(255,255,255,0.06) inset}
.est-traffic{display:flex;gap:7px}
.est-traffic span{width:11px;height:11px;border-radius:50%}
.est-traffic span:nth-child(1){background:#ff5f57}
.est-traffic span:nth-child(2){background:#febc2e}
.est-traffic span:nth-child(3){background:#28c840}
.est-title{flex:1;font-family:'Noto Sans JP','Inter',sans-serif;font-size:16px;letter-spacing:0.04em;color:rgba(255,255,255,0.95);font-weight:700;text-align:center}
.est-title-sub{font-family:'Inter',sans-serif;color:rgba(255,255,255,0.50);font-weight:500;margin-left:8px;letter-spacing:0.08em;font-size:14px}
.est-close{background:none;border:none;color:rgba(255,255,255,0.6);font-size:22px;line-height:1;cursor:pointer;padding:0 6px;transition:color .2s ease}
.est-close:hover{color:#fff}
.est-progress{height:2px;background:rgba(255,255,255,0.10);flex-shrink:0;position:relative}
.est-progress-bar{position:absolute;top:0;left:0;height:100%;width:0;background:var(--accent);transition:width .4s cubic-bezier(.2,.8,.3,1)}
.est-body{flex:1;overflow-y:auto;padding:26px 24px;background:transparent;display:flex;flex-direction:column;gap:14px}
.est-body::-webkit-scrollbar{width:8px}
.est-body::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.20);border-radius:4px}
.est-msg{display:flex;gap:10px;align-items:flex-start;animation:estMsgIn .28s ease both}
@keyframes estMsgIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.est-msg-bot .est-bubble{background:rgba(255,255,255,0.96);color:#1a1d23;border:1px solid rgba(255,255,255,0.30);border-left:2px solid var(--accent);border-radius:10px 10px 10px 2px;padding:13px 16px;max-width:80%;font-size:13.5px;line-height:1.75;font-weight:400;box-shadow:0 1px 2px rgba(15,23,42,0.04)}
.est-msg-bot .est-bubble strong{color:inherit;font-weight:inherit}
.est-msg-user{justify-content:flex-end}
.est-msg-user .est-bubble{background:var(--accent);color:#fff;border-radius:10px 10px 2px 10px;padding:11px 16px;max-width:75%;font-size:13px;font-weight:600;line-height:1.5;box-shadow:0 2px 6px rgba(225,29,56,0.20)}
.est-avatar{width:30px;height:30px;border-radius:50%;background:#fff;color:#1a1d23;font-family:'Inter',sans-serif;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:0.04em;box-shadow:0 2px 8px rgba(0,0,0,0.30)}
.est-step{display:inline-block;font-family:'Inter',sans-serif;font-size:10.5px;letter-spacing:0.18em;color:var(--accent);font-weight:700;margin-bottom:4px;text-transform:uppercase}
.est-options{display:flex;flex-direction:column;gap:7px;padding:0 0 0 40px}
.est-opt{text-align:left;padding:12px 16px;background:rgba(255,255,255,0.10);border:1px solid rgba(255,255,255,0.20);border-left:3px solid var(--accent);border-radius:6px;font-family:'Noto Sans JP',sans-serif;font-size:12.5px;font-weight:600;color:#fff;cursor:pointer;transition:all .18s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.est-opt:hover:not(:disabled){background:rgba(225,29,56,0.25);border-color:var(--accent);transform:translateX(2px);box-shadow:0 4px 16px rgba(225,29,56,0.18)}
.est-opt:disabled{opacity:0.45;cursor:not-allowed}
.est-opt.is-picked{background:rgba(225,29,56,0.25);border-color:var(--accent);color:#fff}
.est-result{background:linear-gradient(135deg,#ffffff 0%,#fdf6f6 100%);padding:18px 20px;border-radius:8px;border:1px solid #e1e4ea;border-left:3px solid var(--accent);margin-bottom:12px;box-shadow:0 2px 8px rgba(15,23,42,0.04)}
.est-result-label{font-family:'Inter',sans-serif;font-size:11px;color:#5b6470;margin-bottom:8px;letter-spacing:0.10em;font-weight:700;text-transform:uppercase}
.est-result-price{font-family:'Inter',sans-serif;font-size:26px;font-weight:700;color:var(--accent);letter-spacing:0.005em;line-height:1.3}
.est-result-price .sep{font-size:15px;font-weight:400;margin:0 6px;opacity:0.5;color:#5b6470}
.est-result-note{font-family:'Noto Sans JP',sans-serif;font-size:11px;color:#6b7280;margin-top:10px;line-height:1.6}
.est-summary{font-family:'Noto Sans JP',sans-serif;font-size:12px;color:#1a1d23;background:#ffffff;border:1px solid #e1e4ea;border-radius:8px;padding:14px 16px;margin-bottom:12px}
.est-summary-label{display:block;font-family:'Inter',sans-serif;font-size:10px;letter-spacing:0.18em;color:#6b7280;font-weight:700;margin-bottom:8px;text-transform:uppercase}
.est-summary-row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid #f0f2f5}
.est-summary-row:nth-child(2){border-top:none}
.est-summary-row .k{color:#6b7280;font-size:11px;flex-shrink:0;font-weight:600;font-family:'Inter',sans-serif;letter-spacing:0.04em}
.est-summary-row .v{color:#1a1d23;font-weight:700;text-align:right;font-size:12px}
.est-note{display:inline-block;font-size:90%;opacity:0.78;margin-top:4px}
.est-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:6px}
/* Contact form inside estimator */
.est-bubble-form{max-width:none !important;width:100%;padding:18px 18px !important}
.est-form{display:flex;flex-direction:column;gap:14px}
.est-field{display:flex;flex-direction:column;gap:6px}
.est-field label{font-family:'Noto Sans JP',sans-serif;font-size:12px;font-weight:700;color:#1a1d23;display:flex;align-items:center;gap:8px}
.est-field .req{display:inline-block;background:var(--accent);color:#fff;font-size:9.5px;letter-spacing:0.06em;padding:2px 7px;border-radius:3px;font-weight:700}
.est-field input,.est-field select,.est-field textarea{font-family:'Noto Sans JP',sans-serif;font-size:14px;padding:11px 13px;border:1px solid #d8dde5;border-radius:5px;background:#fff;color:#1a1d23;transition:all .2s ease;outline:none;width:100%;box-sizing:border-box}
.est-field textarea{resize:vertical;min-height:70px;font-family:'Noto Sans JP',sans-serif;line-height:1.6}
.est-field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23666' stroke-width='1.5'><polyline points='1 1 6 6 11 1'/></svg>");background-repeat:no-repeat;background-position:right 12px center;background-size:11px;padding-right:34px}
.est-field input:focus,.est-field select:focus,.est-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(225,29,56,0.10)}
.est-field input.is-error,.est-field select.is-error,.est-field textarea.is-error{border-color:var(--accent);background:#fff5f5}
.est-field .opt{display:inline-block;background:#f0f2f5;color:#6b7280;font-size:9.5px;letter-spacing:0.06em;padding:2px 7px;border-radius:3px;font-weight:700}
/* Date/time row */
.est-dt-row{display:flex;flex-direction:column;gap:6px;margin-bottom:2px}
.est-dt-label{font-family:'Noto Sans JP',sans-serif;font-size:12px;font-weight:700;color:#1a1d23;display:flex;align-items:center;gap:8px}
.est-dt-inputs{display:grid;grid-template-columns:1.2fr 1.4fr;gap:8px}
.est-dt-time{display:grid;grid-template-columns:1fr auto 1fr;gap:6px;align-items:center}
.est-dt-tilde{font-family:'Noto Sans JP',sans-serif;font-size:14px;color:#5a6270;font-weight:600;padding:0 2px}
@media(max-width:520px){.est-dt-inputs{grid-template-columns:1fr}}
.est-dt-inputs input,.est-dt-inputs select{font-family:'Noto Sans JP',sans-serif;font-size:14px;padding:10px 12px;border:1px solid #d8dde5;border-radius:5px;background:#fff;color:#1a1d23;transition:all .2s ease;outline:none;width:100%;box-sizing:border-box}
.est-dt-inputs select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23666' stroke-width='1.5'><polyline points='1 1 6 6 11 1'/></svg>");background-repeat:no-repeat;background-position:right 10px center;background-size:11px;padding-right:30px}
.est-dt-inputs input:focus,.est-dt-inputs select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(225,29,56,0.10)}
.est-dt-inputs input.is-error,.est-dt-inputs select.is-error{border-color:var(--accent);background:#fff5f5}
.est-dt-err{font-family:'Noto Sans JP',sans-serif;font-size:12px;color:var(--accent);font-weight:700;margin-top:4px;padding:6px 10px;background:rgba(225,29,56,0.08);border-left:2px solid var(--accent);border-radius:0 4px 4px 0}
.est-confirm{display:flex;flex-direction:column;gap:14px}
.est-cf-section{background:#fafbfc;border:1px solid #e1e4ea;border-radius:6px;padding:14px 16px}
.est-cf-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid #ebeef3}
.est-cf-title{font-family:'Noto Sans JP',sans-serif;font-size:13px;font-weight:700;color:#1a1d23;letter-spacing:0.04em}
.est-cf-edit{font-family:'Inter','Noto Sans JP',sans-serif;font-size:11px;font-weight:600;color:var(--accent);background:transparent;border:1px solid var(--accent);border-radius:3px;padding:3px 10px;cursor:pointer;letter-spacing:0.04em;transition:all .2s ease}
.est-cf-edit:hover{background:var(--accent);color:#fff}
.est-cf-row{display:grid;grid-template-columns:90px 1fr;gap:10px;padding:5px 0;font-size:12.5px;line-height:1.65;align-items:start}
.est-cf-k{color:#5a6270;font-weight:500;font-family:'Noto Sans JP',sans-serif}
.est-cf-v{color:#1a1d23;font-weight:500;font-family:'Noto Sans JP',sans-serif;word-break:break-word}
@media(max-width:520px){.est-cf-row{grid-template-columns:80px 1fr;font-size:12px}}
.est-form-actions{display:flex;gap:10px;justify-content:space-between;margin-top:6px;flex-wrap:wrap}
.est-form-actions .est-reset{flex:0 0 auto}
.est-form-actions .est-cta{flex:1 1 auto}
.est-form-note{font-family:'Noto Sans JP',sans-serif;font-size:11px;color:#6b7280;line-height:1.6;margin:6px 0 0;text-align:center}
/* Completion screen */
.est-complete{padding:28px 24px;text-align:center;background:#fff;border:1px solid #e1e4ea;border-radius:10px;margin:8px 0}
.est-complete-icon{width:72px;height:72px;margin:0 auto 18px;color:var(--accent);background:rgba(225,29,56,0.06);border-radius:50%;display:flex;align-items:center;justify-content:center}
.est-complete-icon svg{width:42px;height:42px}
.est-complete-title{font-family:'Noto Sans JP',sans-serif;font-weight:800;font-size:20px;color:#1a1d23;margin-bottom:14px;letter-spacing:0.04em}
.est-complete-text{font-family:'Noto Sans JP',sans-serif;font-size:13px;color:#3a4250;line-height:1.85;margin-bottom:20px}
.est-complete-text strong{color:#0f1419;font-weight:700}
.est-complete-meta{font-family:'Inter',sans-serif;font-size:11px;color:#6b7280;letter-spacing:0.04em;background:#f4f5f7;border-radius:6px;padding:10px 14px;margin-bottom:22px;font-weight:600}
.est-complete .est-cta{padding:11px 32px}
.est-complete-icon-error{color:#d97706 !important;background:rgba(217,119,6,0.08) !important}
/* Sending spinner */
.est-sending{padding:50px 24px;text-align:center;background:#fff;border:1px solid #e1e4ea;border-radius:10px;margin:8px 0;display:flex;flex-direction:column;align-items:center;gap:22px}
.est-spinner{width:46px;height:46px;border:3px solid #e8eaee;border-top-color:var(--accent);border-radius:50%;animation:estSpin 0.8s linear infinite}
@keyframes estSpin{to{transform:rotate(360deg)}}
.est-sending-text{font-family:'Noto Sans JP',sans-serif;font-size:14px;font-weight:700;color:#1a1d23;line-height:1.6}
.est-sending-text span{display:inline-block;font-weight:500;font-size:12px;color:#6b7280;margin-top:4px}
.est-reset{background:#fff;border:1px solid var(--accent);color:var(--accent);padding:10px 18px;border-radius:24px;font-family:'Noto Sans JP',sans-serif;font-size:12.5px;font-weight:700;cursor:pointer;transition:all .2s ease}
.est-reset:hover{background:var(--accent);color:#fff}
.est-cta{background:var(--accent);color:#fff;border:1px solid var(--accent);padding:10px 22px;border-radius:24px;font-family:'Noto Sans JP',sans-serif;font-size:12.5px;font-weight:700;cursor:pointer;transition:all .2s ease}
.est-cta:hover{background:var(--accent-strong);transform:translateY(-1px)}
.est-footer{padding:10px 18px;background:rgba(255,255,255,0.04);border-top:1px solid rgba(255,255,255,0.10);text-align:center;font-family:'Inter',monospace;font-size:10.5px;color:rgba(255,255,255,0.65);letter-spacing:0.04em;flex-shrink:0}
@media(max-width:600px){.est-window{height:96vh;max-height:none;border-radius:10px}.est-body{padding:18px 14px}.est-options{padding-left:18px}.est-msg-bot .est-bubble,.est-msg-user .est-bubble{max-width:88%;font-size:13px}
  /* On mobile: backdrop transparent so the underlying page is visible behind the estimator */
  .est-backdrop{background:transparent !important;backdrop-filter:none !important;-webkit-backdrop-filter:none !important}
}
.cta-card .cta-btn-pri{background:var(--accent);color:#fff}
.cta-card .cta-btn-pri:hover{background:var(--accent-strong);transform:translateY(-2px)}
.cta-card .cta-btn-sec{background:transparent;color:#fff;border:1px solid rgba(255,255,255,0.30)}
.cta-card .cta-btn-sec:hover{border-color:var(--accent);background:rgba(225,29,56,0.10)}
.cta-card .cta-tel-num{font-family:'Inter';font-weight:400;font-size:clamp(36px,4.4vw,56px);letter-spacing:-0.005em;color:#fff;line-height:1;margin-bottom:18px;display:block;text-decoration:none;transition:color .3s ease}
.cta-card .cta-tel-num:hover{color:var(--accent)}
.cta-card .cta-tel-hours{font-family:'Noto Sans JP';font-size:15px;color:rgba(255,255,255,0.85);font-weight:600;display:flex;align-items:center;gap:10px}
.cta-card .cta-tel-hours strong{color:#fff;font-weight:800;font-size:16px}
.cta-card .cta-tel-svg{width:20px;height:20px;color:var(--accent);flex-shrink:0}
@media(max-width:780px){.cta-card{padding:50px 32px}.cta-card-row{grid-template-columns:1fr;gap:50px}.cta-card-row::before{display:none}}

/* ========== SECTION SEE-MORE LINK ========== */
.see-more {
  text-align: center;
  margin-top: 56px;
}
.works .see-more { margin-top: 66px; }
.service .see-more { margin-top: 76px; }
#quality-teaser .see-more { margin-top: 86px; margin-bottom: -10px; }
.see-more a {
  display: inline-flex; align-items: center; gap: 14px;
  font-family: 'Inter';
  font-size: 12px;
  letter-spacing: 0.32em;
  font-weight: 700;
  color: var(--fg);
  text-transform: uppercase;
  padding: 18px 32px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  transition: all 0.25s ease;
}
.see-more a:hover { background: var(--accent); border-color: var(--accent); color: #fff; transform: translateY(-2px); }
.see-more a svg { width: 14px; height: 14px; transition: transform 0.25s ease; }
.see-more a:hover svg { transform: translateX(4px); }

/* ========== CONTACT FORM ========== */
.contact-form {
  max-width: 640px;
  margin: 0 auto;
}
.form-row {
  margin-bottom: 24px;
}
.form-row label {
  display: block;
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.28em;
  color: var(--accent);
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.form-row input,
.form-row textarea {
  width: 100%;
  background: var(--bg-card);
  border: 1px solid var(--line);
  color: var(--fg);
  padding: 14px 18px;
  font-family: 'Noto Sans JP';
  font-size: 15px;
  border-radius: 4px;
  transition: border-color 0.2s ease;
}
.form-row input:focus,
.form-row textarea:focus {
  outline: none;
  border-color: var(--accent);
}
.form-row textarea { min-height: 140px; resize: vertical; }

@media (max-width: 980px) {
  .page-header { padding: 150px 20px 60px; min-height: 420px; }
  .page-header-badge { top: 80px; right: 20px; font-size: 10px; }
  .page-title-en { font-size: 56px; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 32px; }
  .stat-card:nth-child(2)::after { display: none; }
  .cta-banner { padding: 70px 20px; }
}

/* ========== ENHANCED SUBPAGE COMPONENTS ========== */

/* Quote / Message block */
.quote-block {
  max-width: 880px;
  margin: 0 auto;
  position: relative;
  padding: 60px 60px;
}
.quote-block::before {
  content: """;
  position: absolute;
  top: -20px; left: 0;
  font-family: 'Inter';
  font-size: 220px;
  font-weight: 800;
  color: var(--accent);
  line-height: 1;
  opacity: 0.15;
}
.quote-block-text {
  font-family: 'Noto Sans JP';
  font-size: clamp(20px, 2.4vw, 32px);
  font-weight: 700;
  line-height: 1.7;
  letter-spacing: 0.01em;
  margin-bottom: 36px;
  position: relative;
  z-index: 2;
}
.quote-block-text .accent { color: var(--accent); }
.quote-attribution {
  font-family: 'Inter';
  font-size: 12px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--fg-sub);
  font-weight: 600;
}
.quote-attribution .name {
  font-family: 'Noto Sans JP';
  color: var(--fg);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin-right: 14px;
  text-transform: none;
}

/* Big number features */
.bignum-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  background: transparent;
  border: none;
  border-top: 1px solid var(--line);
  margin-top: 56px;
}
.bignum-cell {
  background: transparent;
  padding: 44px 36px 36px 0;
  position: relative;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.bignum-cell:nth-child(3n) { border-right: none; }
.bignum-cell::before { display: none; }
.bignum-num {
  font-family: 'Inter';
  font-size: clamp(36px, 4vw, 52px);
  font-weight: 200;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--accent);
  margin-bottom: 20px;
}
.bignum-label-en {
  font-family: 'Inter';
  font-size: 10.5px;
  letter-spacing: 0.32em;
  font-weight: 600;
  color: var(--fg-sub);
  text-transform: uppercase;
  margin-bottom: 8px;
}
.bignum-label-jp {
  font-family: 'Noto Sans JP';
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.12em;
  margin-bottom: 14px;
}
.bignum-text {
  font-family: 'Noto Sans JP';
  font-size: 13px;
  color: var(--fg-dim);
  line-height: 1.95;
  font-weight: 400;
}

/* Tech stack grid */
.tech-stack-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 4px;
  background: var(--line);
  border: 1px solid var(--line);
  margin-top: 40px;
}
.tech-cat {
  background: var(--bg-card);
  padding: 36px 32px;
}
.tech-cat-label {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.32em;
  color: var(--accent);
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 18px;
  display: flex; align-items: center; gap: 14px;
}
.tech-cat-label::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.tech-cat-jp {
  font-family: 'Noto Sans JP';
  font-size: 14px;
  color: var(--fg-dim);
  margin-bottom: 18px;
  font-weight: 500;
}
.tech-chips {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.tech-chip {
  font-family: 'Inter';
  font-size: 12px;
  letter-spacing: 0.04em;
  font-weight: 500;
  padding: 6px 12px;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 4px;
  color: var(--fg-dim);
  transition: all 0.2s ease;
}
.tech-chip:hover { border-color: var(--accent); color: var(--accent); }

/* Industry grid */
.industry-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  margin-top: 40px;
}
.industry-item {
  background: var(--bg);
  padding: 28px 16px;
  text-align: center;
  font-family: 'Noto Sans JP';
  font-size: 13.5px;
  font-weight: 600;
  color: var(--fg-dim);
  position: relative;
  overflow: hidden;
  transition: all 0.2s ease;
}
.industry-item:hover {
  color: var(--fg);
  background: var(--bg-alt);
}
.industry-item .num {
  display: block;
  font-family: 'Inter';
  font-size: 10px;
  letter-spacing: 0.28em;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 10px;
  text-transform: uppercase;
}

/* Flow timeline */
.flow-timeline {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0;
  margin-top: 40px;
  position: relative;
}
.flow-timeline.phase-2col{grid-template-columns:repeat(2,1fr)}
.flow-timeline.phase-3col{grid-template-columns:repeat(3,1fr)}
.flow-phases{margin-top:48px;display:flex;flex-direction:column;gap:80px}
.flow-phase{position:relative}
.flow-phase-head{display:grid;grid-template-columns:auto 1fr;column-gap:32px;align-items:end;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:8px}
.flow-phase-num{font-family:'Inter';font-size:11px;letter-spacing:.42em;color:var(--accent);font-weight:700;text-transform:uppercase;grid-row:1/3;align-self:center;padding-right:24px;border-right:1px solid var(--line)}
.flow-phase-title{font-family:'Inter';font-size:clamp(28px,3vw,38px);font-weight:300;color:var(--fg);letter-spacing:-.01em;line-height:1.1}
.flow-phase-title span{font-family:'Noto Sans JP';font-size:.42em;letter-spacing:.18em;color:var(--fg-sub);margin-left:14px;font-weight:500;vertical-align:middle}
.flow-phase-sub{grid-column:2;font-family:'Noto Sans JP';font-size:13px;color:rgba(245,242,236,.62);margin-top:8px;letter-spacing:.02em}
.flow-phase .flow-timeline{margin-top:32px}
.flow-phase .flow-timeline::before{left:8%;right:8%}
@media(max-width:880px){.flow-phase-head{grid-template-columns:1fr;gap:6px}.flow-phase-num{grid-row:auto;border-right:none;padding-right:0}.flow-phase-sub{grid-column:1}.flow-phases{gap:64px}.flow-timeline.phase-2col,.flow-timeline.phase-3col{grid-template-columns:1fr;gap:32px}}
.flow-timeline::before {
  content: ""; position: absolute;
  top: 28px; left: 7%; right: 7%;
  height: 1px; background: var(--line);
}
.flow-step {
  position: relative;
  text-align: center;
  padding: 0 6px;
}
.flow-num {
  display: inline-flex;
  align-items: center; justify-content: center;
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--bg);
  border: 1px solid var(--line-strong);
  color: var(--accent);
  font-family: 'Inter';
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin: 0 auto 18px;
  position: relative;
  z-index: 2;
  transition: all 0.3s ease;
}
.flow-step:hover .flow-num {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}
.flow-name-en {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.18em;
  font-weight: 700;
  color: var(--fg-sub);
  text-transform: uppercase;
  margin-bottom: 8px;
}
.flow-name-jp {
  font-family: 'Noto Sans JP';
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 8px;
}
.flow-desc {
  font-family: 'Noto Sans JP';
  font-size: 11px;
  color: var(--fg-dim);
  line-height: 1.7;
}

/* FAQ accordion */
.faq-list {
  margin-top: 40px;
  border-top: 1px solid var(--line);
}
.faq-item {
  border-bottom: 1px solid var(--line);
  position: relative;
}
.faq-q {
  display: flex; align-items: flex-start; gap: 24px;
  padding: 28px 0;
  cursor: pointer;
  transition: padding 0.3s ease;
}
.faq-item:hover .faq-q { padding-left: 16px; }
.faq-q-num {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.32em;
  color: var(--accent);
  font-weight: 700;
  flex-shrink: 0;
  width: 40px;
}
.faq-q-text {
  font-family: 'Noto Sans JP';
  font-size: 16px;
  font-weight: 700;
  flex: 1;
  line-height: 1.6;
}
.faq-toggle {
  width: 24px; height: 24px;
  border-radius: 50%;
  border: 1px solid var(--line-strong);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  font-size: 14px;
  color: var(--fg-dim);
  transition: all 0.3s ease;
}
.faq-item:hover .faq-toggle { background: var(--accent); color: #fff; border-color: var(--accent); }
.faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}
.faq-item.open .faq-a { max-height: 400px; }
.faq-item.open .faq-toggle { transform: rotate(45deg); }
.faq-a-inner {
  padding: 0 0 32px 64px;
  font-family: 'Noto Sans JP';
  font-size: 14px;
  line-height: 1.95;
  color: var(--fg-dim);
}

/* Case study side-by-side */
.case-study {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  margin: 40px 0;
  padding: 60px 0;
  border-top: 1px solid var(--line);
  align-items: center;
}
.case-study:first-of-type { border-top: none; }
.case-study-content { padding: 0; }
.case-study-num {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.32em;
  color: var(--accent);
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.case-study h3 {
  font-family: 'Noto Sans JP';
  font-size: clamp(24px, 2.8vw, 36px);
  font-weight: 800;
  line-height: 1.4;
  margin-bottom: 24px;
}
.case-study .meta-line {
  font-family: 'Inter';
  font-size: 11.5px;
  letter-spacing: 0.18em;
  color: var(--fg-sub);
  text-transform: uppercase;
  margin-bottom: 24px;
  display: flex; gap: 16px; flex-wrap: wrap;
}
.case-study .meta-line span { padding: 4px 10px; border: 1px solid var(--line); border-radius: 999px; }
.case-study-text {
  font-family: 'Noto Sans JP';
  font-size: 14.5px;
  color: var(--fg-dim);
  line-height: 1.95;
  margin-bottom: 24px;
}
.case-study-stats {
  display: flex; gap: 28px; flex-wrap: wrap;
}
.case-study-stat {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--fg-sub);
  text-transform: uppercase;
}
.case-study-stat strong { color: var(--accent); font-weight: 700; }
.case-study-image {
  position: relative;
  aspect-ratio: 4/3;
  background: var(--bg-card);
  border: 1px solid var(--line);
  overflow: hidden;
}
.case-study-image-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  filter: contrast(1.05) saturate(0.85) brightness(0.85);
}
.case-study-image-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(225,29,56,0.12), rgba(5,5,5,0.75));
}
.case-study-image-tag {
  position: absolute; top: 16px; left: 16px;
  font-family: 'Inter';
  font-size: 10px;
  letter-spacing: 0.28em;
  font-weight: 700;
  background: var(--accent);
  color: #fff;
  padding: 5px 12px;
  border-radius: 999px;
  text-transform: uppercase;
  z-index: 2;
}

/* Works category section */
.works-category {
  margin-top: 60px;
}
.works-cat-label {
  font-family: 'Inter';
  font-size: 12px;
  letter-spacing: 0.32em;
  color: var(--accent);
  font-weight: 700;
  text-transform: uppercase;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 28px;
  display: flex; align-items: center; gap: 14px;
}
.works-cat-label::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.works-cat-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px 24px;
}
.works-cat-item {
  font-family: 'Noto Sans JP';
  font-size: 13.5px;
  color: var(--fg-dim);
  padding: 12px 16px;
  background: var(--bg-card);
  border: 1px solid var(--line);
  border-left: 2px solid var(--accent);
  border-radius: 2px;
  transition: all 0.2s ease;
}
.works-cat-item:hover { background: var(--bg-alt); color: var(--fg); }

/* Quality checklist */
.quality-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
  margin-top: 40px;
}
.quality-item {
  background: var(--bg-card);
  border: 1px solid var(--line);
  padding: 26px 28px;
  display: flex; align-items: flex-start; gap: 18px;
  border-radius: 2px;
}
.quality-icon {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--accent-soft);
  border: 1px solid var(--accent);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  color: var(--accent);
  font-family: 'Inter';
  font-weight: 700;
  font-size: 14px;
}
.quality-name {
  font-family: 'Noto Sans JP';
  font-weight: 700;
  font-size: 15px;
  margin-bottom: 4px;
}
.quality-desc {
  font-family: 'Noto Sans JP';
  font-size: 12.5px;
  color: var(--fg-dim);
  line-height: 1.7;
}

/* Two-col image+text */
.feature-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
  margin: 60px 0;
}
.feature-row.reverse .feature-image { order: 2; }
.feature-row.reverse .feature-content { order: 1; }
.feature-image {
  position: relative;
  aspect-ratio: 4/5;
  background: var(--bg-card);
  border: 1px solid var(--line);
  overflow: hidden;
}
.feature-image-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  filter: contrast(1.05) saturate(0.85) brightness(0.7);
}
.feature-image-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(225,29,56,0.10), rgba(5,5,5,0.8));
}
.feature-content {}
.feature-num {
  font-family: 'Inter';
  font-size: 11px;
  letter-spacing: 0.32em;
  color: var(--accent);
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 14px;
}
.feature-content h3 {
  font-family: 'Noto Sans JP';
  font-size: clamp(24px, 2.8vw, 36px);
  font-weight: 800;
  line-height: 1.4;
  margin-bottom: 24px;
}
.feature-content h3 .accent { color: var(--accent); }
.feature-text {
  font-family: 'Noto Sans JP';
  font-size: 14.5px;
  color: var(--fg-dim);
  line-height: 1.95;
  margin-bottom: 24px;
}

@media (max-width: 980px) {
  .bignum-grid { grid-template-columns: 1fr; }
  .tech-stack-grid { grid-template-columns: 1fr; }
  .industry-grid { grid-template-columns: repeat(3, 1fr); }
  .flow-timeline { grid-template-columns: repeat(2, 1fr); gap: 32px; }
  .flow-timeline::before { display: none; }
  .case-study { grid-template-columns: 1fr; gap: 32px; padding: 40px 0; }
  .feature-row { grid-template-columns: 1fr; gap: 32px; margin: 40px 0; }
  .feature-row.reverse .feature-image { order: 1; }
  .feature-row.reverse .feature-content { order: 2; }
  .quality-list { grid-template-columns: 1fr; }
  .works-cat-list { grid-template-columns: 1fr; }
}

/* ========== PHOTO CARDS (about.html — cool blue cinema) ========== */
.photo-cards{display:grid;gap:14px;margin-top:24px}
.photo-cards-3{grid-template-columns:repeat(3,1fr)}
.photo-cards-2{grid-template-columns:repeat(2,1fr)}
.photo-card{position:relative;overflow:hidden;background:#0a0a0a;min-height:420px;display:flex;flex-direction:column;justify-content:flex-end;border-radius:0;border:none;transition:transform .35s ease}
.photo-card:hover{transform:translateY(-3px)}
.photo-card-bg{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;transition:transform 1s ease;filter:saturate(0.85) contrast(1.05) brightness(0.85)}
.photo-card-zoom .photo-card-bg{background-size:200% !important;background-position:50% 100% !important}
.photo-card:hover .photo-card-bg{transform:scale(1.06)}
.photo-card-grad{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.05) 0%,rgba(0,0,0,0.35) 55%,rgba(0,0,0,0.85) 100%)}
.photo-card-tag{position:absolute;top:32px;left:32px;padding:8px 18px;background:var(--accent);color:#fff;font-family:'Inter';font-size:11.5px;letter-spacing:0.32em;font-weight:700;text-transform:uppercase;z-index:3}
.photo-card-num{position:absolute;top:36px;right:36px;font-family:'Inter';font-size:clamp(96px,10vw,160px);font-weight:200;color:#fff;letter-spacing:-0.05em;line-height:0.82;z-index:3;opacity:0.3}
.photo-card-content{position:relative;z-index:3;padding:60px 48px 56px}
.photo-card-en{font-family:'Inter';font-size:13px;letter-spacing:0.34em;color:rgba(255,255,255,0.78);font-weight:700;text-transform:uppercase;margin-bottom:14px}
.photo-card-jp{font-family:'Noto Sans JP';font-weight:800;font-size:clamp(28px,2.6vw,38px);letter-spacing:0.06em;line-height:1.15;margin-bottom:18px;color:#fff}
.photo-card-text{font-family:'Noto Sans JP';font-size:clamp(13px,1vw,14.5px);line-height:1.9;color:rgba(245,241,235,0.88);font-weight:500;max-width:560px}
@media (max-width:980px){.photo-cards-3,.photo-cards-2{grid-template-columns:1fr}.photo-card{min-height:340px}}

/* ========== CINEMATIC HERO (about.html) ========== */
.hero-cinematic{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:140px 32px 120px;overflow:hidden;background:var(--bg)}
.hero-cinematic-bg{position:absolute;inset:0;background-image:url("https://images.unsplash.com/photo-1480714378408-67cf0d13bc1b?w=2400&q=85&auto=format&fit=crop");background-size:cover;background-position:center;filter:grayscale(0.85) brightness(0.45) contrast(1.15);z-index:0}
.hero-cinematic-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,5,5,0.6) 0%,rgba(5,5,5,0.3) 50%,rgba(5,5,5,0.85) 100%)}
.hero-cinematic-cnt{position:relative;z-index:2;max-width:1100px;text-align:center}
.hero-cinematic-bc{font-family:'Inter';font-size:11px;letter-spacing:0.32em;color:var(--fg-sub);font-weight:600;text-transform:uppercase;margin-bottom:32px;display:flex;justify-content:center;gap:12px}
.hero-cinematic-bc a{color:inherit;text-decoration:none}.hero-cinematic-bc a:hover{color:var(--accent)}.hero-cinematic-bc .sep{color:var(--accent)}
.hero-cinematic-num{font-family:'Inter';font-size:11px;letter-spacing:0.4em;color:var(--accent);font-weight:700;text-transform:uppercase;margin-bottom:24px;display:inline-flex;align-items:center;gap:14px;white-space:nowrap}
.hero-cinematic-num::before,.hero-cinematic-num::after{content:"";width:36px;height:1px;background:var(--accent);flex-shrink:0}
@media (max-width: 600px){
  .hero-cinematic-num{font-size:11.5px;letter-spacing:.2em;gap:8px}
  .hero-cinematic-num::before,.hero-cinematic-num::after{width:14px}
}
.hero-cinematic-h{font-family:'Noto Sans JP';font-size:clamp(36px,5.5vw,72px);font-weight:800;line-height:1.4;color:var(--fg);margin-bottom:32px}
.hero-cinematic-h .accent{color:var(--accent)}
.hero-cinematic-text{font-family:'Noto Sans JP';font-size:15px;line-height:1.95;color:rgba(245,242,236,0.85);max-width:780px;margin:0 auto;font-weight:500}
@keyframes heroFadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
.hero-cinematic-num,.hero-cinematic-h,.hero-cinematic-text{opacity:0;animation:heroFadeUp 1s cubic-bezier(.2,.8,.3,1) forwards}
.hero-cinematic-num{animation-delay:.2s}
.hero-cinematic-h{animation-delay:.5s}
.hero-cinematic-text{animation-delay:.9s}

/* ========== FIXED PHOTO BG — Quality→Reason のみ (Commit は写真なし) ========== */
.commit-bg-section{position:relative;overflow:hidden;background:var(--bg)!important}
.commit-bg-section .commit-section{position:relative;z-index:2}
.bg-fixed-section{position:relative;overflow:hidden;background:transparent!important}
.bg-fixed-section::before{content:"";position:absolute;inset:0;background-image:url("https://images.unsplash.com/photo-1517048676732-d65bc937f952?w=3600&q=85&auto=format&fit=crop");background-size:100% auto;background-position:center 35%;background-repeat:no-repeat;background-attachment:fixed;filter:grayscale(1) brightness(0.42) contrast(1.10) blur(2px);opacity:0.62;z-index:0}
.bg-fixed-section::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 95% 85% at 50% 50%,transparent 35%,rgba(5,5,5,0.55) 100%),linear-gradient(rgba(5,5,5,0.20),rgba(5,5,5,0.20));z-index:1;pointer-events:none}
.bg-fixed-last::after{background:radial-gradient(ellipse 95% 85% at 50% 50%,transparent 35%,rgba(5,5,5,0.55) 100%),linear-gradient(180deg,rgba(5,5,5,0.20) 0%,rgba(5,5,5,0.20) 80%,rgba(5,5,5,0.6) 92%,var(--bg-alt) 100%)!important}
.bg-fixed-section>*{position:relative;z-index:2}
.commit-section{max-width:var(--max);margin:0 auto;text-align:center}
.commit-eyebrow{font-family:'Inter';font-size:12px;letter-spacing:0.5em;color:var(--accent);font-weight:700;text-transform:uppercase;margin-bottom:18px;display:inline-flex;align-items:center;gap:14px}
.commit-eyebrow::before,.commit-eyebrow::after{content:"";width:36px;height:1px;background:var(--accent)}
.commit-title{font-family:'Noto Sans JP';font-size:clamp(28px,3.6vw,44px);font-weight:900;line-height:1.3;color:var(--fg);margin-bottom:14px;letter-spacing:0.01em}
.commit-tagline{font-family:'Inter';font-size:12px;letter-spacing:0.4em;color:var(--fg-sub);font-weight:500;text-transform:uppercase;margin-bottom:46px}
.commit-connected{position:relative;max-width:1320px;margin:0 auto;padding-top:30px}
.commit-line{position:absolute;top:45px;left:8%;right:8%;height:1px;background:linear-gradient(90deg,transparent 0%,var(--accent) 12%,var(--accent) 88%,transparent 100%);z-index:1}
.commit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;position:relative;z-index:2}
.commit-pillar{text-align:center;position:relative;display:flex;flex-direction:column;align-items:center}
.commit-pillar-dot{width:32px;height:32px;border-radius:50%;background:var(--bg-alt);border:2px solid var(--accent);margin:0 auto 32px;position:relative;z-index:2;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 8px var(--bg-alt),0 0 24px rgba(225,29,56,0.40);transition:transform .3s ease}
.commit-pillar-dot::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--accent);transition:transform .3s ease}
.commit-pillar:hover .commit-pillar-dot{transform:scale(1.15)}
.commit-pillar:hover .commit-pillar-dot::after{transform:scale(1.3)}
.commit-pillar-num{font-family:'Inter';font-size:13px;letter-spacing:0.32em;color:var(--accent);font-weight:700;text-transform:uppercase;margin-bottom:14px}
.commit-pillar-en{font-family:'Inter';font-size:clamp(28px,2.4vw,34px);font-weight:300;color:var(--fg);margin-bottom:6px;letter-spacing:-0.005em}
.commit-pillar-jp{font-family:'Noto Sans JP';font-size:13px;font-weight:700;color:var(--accent);letter-spacing:0.32em;margin-bottom:32px}
.commit-pillar-desc{font-family:'Noto Sans JP';font-size:14px;line-height:1.95;color:rgba(245,242,236,0.72);font-weight:500;letter-spacing:0.02em;max-width:340px}
@media(max-width:880px){.commit-grid{grid-template-columns:1fr;gap:64px}.commit-line{display:none}}

/* Commit Animation — Header fade-in + Glow Pulse */
.commit-bg-section .commit-eyebrow,.commit-bg-section .commit-title,.commit-bg-section .commit-tagline{opacity:0;transform:translateY(20px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.3,1)}
.commit-bg-section.is-visible .commit-eyebrow{transition-delay:.1s}
.commit-bg-section.is-visible .commit-title{transition-delay:.3s}
.commit-bg-section.is-visible .commit-tagline{transition-delay:.5s}
.commit-bg-section.is-visible .commit-eyebrow,.commit-bg-section.is-visible .commit-title,.commit-bg-section.is-visible .commit-tagline{opacity:1;transform:translateY(0)}
.commit-bg-section .commit-line{transform:scaleX(0);transform-origin:left;transition:transform 1.4s cubic-bezier(.2,.8,.3,1) .7s}
.commit-bg-section.is-visible .commit-line{transform:scaleX(1)}
.commit-bg-section .commit-pillar{opacity:0;transition:opacity .9s ease}
.commit-bg-section.is-visible .commit-pillar{opacity:1}
.commit-bg-section.is-visible .commit-pillar:nth-child(1){transition-delay:1.1s}
.commit-bg-section.is-visible .commit-pillar:nth-child(2){transition-delay:1.5s}
.commit-bg-section.is-visible .commit-pillar:nth-child(3){transition-delay:1.9s}
/* TWIN RING glow (pat4) — replaces commitGlow */
.commit-bg-section .commit-pillar-dot::after{content:"";position:absolute;inset:-26px;width:auto;height:auto;border-radius:50%;border:1px solid rgba(225,29,56,0.6);background:transparent;opacity:0;z-index:-1;pointer-events:none}
.commit-bg-section .commit-pillar-dot::before{content:"";position:absolute;inset:-12px;border-radius:50%;border:1.5px solid rgba(225,29,56,0.85);box-shadow:0 0 24px rgba(225,29,56,0.5);opacity:0;z-index:-1;pointer-events:none}
.commit-bg-section.is-visible .commit-pillar-dot::before{animation:twinRingInner 2.6s ease-in-out infinite}
.commit-bg-section.is-visible .commit-pillar-dot::after{animation:twinRingOuter 2.6s ease-in-out infinite}
@keyframes twinRingInner{0%,100%{transform:scale(.92);opacity:.55}50%{transform:scale(1.10);opacity:1}}
@keyframes twinRingOuter{0%,100%{transform:scale(.85);opacity:.20}50%{transform:scale(1.20);opacity:.75}}
.commit-bg-section.is-visible .commit-pillar:nth-child(1) .commit-pillar-dot::before,.commit-bg-section.is-visible .commit-pillar:nth-child(1) .commit-pillar-dot::after{animation-delay:1.2s}
.commit-bg-section.is-visible .commit-pillar:nth-child(2) .commit-pillar-dot::before,.commit-bg-section.is-visible .commit-pillar:nth-child(2) .commit-pillar-dot::after{animation-delay:1.6s}
.commit-bg-section.is-visible .commit-pillar:nth-child(3) .commit-pillar-dot::before,.commit-bg-section.is-visible .commit-pillar:nth-child(3) .commit-pillar-dot::after{animation-delay:2.0s}

/* ========== QUALITY / REASON dynamic intro (about.html) ========== */
.qual-detail-eyebrow,.qual-detail-title,.qual-detail-jp,.qual-detail-lead,.reason-detail-eyebrow,.reason-detail-title,.reason-detail-jp,.reason-detail-lead{opacity:0;transform:translateY(28px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.8,.3,1)}
.bg-fixed-section.is-visible .qual-detail-eyebrow,.bg-fixed-section.is-visible .reason-detail-eyebrow{opacity:1;transform:translateY(0);transition-delay:.1s}
.bg-fixed-section.is-visible .qual-detail-title,.bg-fixed-section.is-visible .reason-detail-title{opacity:1;transform:translateY(0);transition-delay:.3s}
.bg-fixed-section.is-visible .qual-detail-jp,.bg-fixed-section.is-visible .reason-detail-jp{opacity:1;transform:translateY(0);transition-delay:.5s}
.bg-fixed-section.is-visible .qual-detail-lead,.bg-fixed-section.is-visible .reason-detail-lead{opacity:1;transform:translateY(0);transition-delay:.7s}

.qual-pillar,.reason-cell{opacity:0;transform:translateY(48px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.8,.3,1)}
.bg-fixed-section.is-visible .qual-pillar,.bg-fixed-section.is-visible .reason-cell{opacity:1;transform:translateY(0)}
.bg-fixed-section.is-visible .qual-pillars .qual-pillar:nth-child(1){transition-delay:.95s}
.bg-fixed-section.is-visible .qual-pillars .qual-pillar:nth-child(2){transition-delay:1.15s}
.bg-fixed-section.is-visible .qual-pillars .qual-pillar:nth-child(3){transition-delay:1.35s}
.bg-fixed-section.is-visible .reason-grid .reason-cell:nth-child(1){transition-delay:.95s}
.bg-fixed-section.is-visible .reason-grid .reason-cell:nth-child(2){transition-delay:1.15s}
.bg-fixed-section.is-visible .reason-grid .reason-cell:nth-child(3){transition-delay:1.35s}
.bg-fixed-section.is-visible .reason-grid .reason-cell:nth-child(4){transition-delay:1.55s}

.qual-pillar-icon{opacity:0;transform:scale(.5) rotate(-12deg);transition:opacity .8s ease,transform .9s cubic-bezier(.34,1.56,.64,1)}
.bg-fixed-section.is-visible .qual-pillar-icon{opacity:1;transform:scale(1) rotate(0)}
.bg-fixed-section.is-visible .qual-pillars .qual-pillar:nth-child(1) .qual-pillar-icon{transition-delay:1.25s}
.bg-fixed-section.is-visible .qual-pillars .qual-pillar:nth-child(2) .qual-pillar-icon{transition-delay:1.45s}
.bg-fixed-section.is-visible .qual-pillars .qual-pillar:nth-child(3) .qual-pillar-icon{transition-delay:1.65s}

@keyframes bgFixedNumPop{0%{opacity:0;transform:scale(.6)}60%{opacity:.18;transform:scale(1.05)}100%{opacity:.12;transform:scale(1)}}
.bg-fixed-section.is-visible .reason-cell::before,.bg-fixed-section.is-visible .qual-pillar::before{animation:bgFixedNumPop 1.1s cubic-bezier(.34,1.56,.64,1) both}

/* ========== QUALITY DETAIL (about.html) ========== */
.qual-detail-section{max-width:var(--max);margin:0 auto;position:relative}
.qual-detail-head{text-align:center;margin-bottom:80px;position:relative}
.qual-detail-eyebrow{font-family:'Inter';font-size:11px;letter-spacing:0.45em;color:var(--accent);font-weight:700;text-transform:uppercase;margin-bottom:22px;display:inline-flex;align-items:center;gap:14px}
.qual-detail-eyebrow::before,.qual-detail-eyebrow::after{content:"";display:block;width:32px;height:1px;background:var(--accent)}
.qual-detail-title{font-family:'Inter';font-size:clamp(56px,7.5vw,108px);font-weight:200;color:var(--fg);line-height:1;letter-spacing:-0.02em;margin-bottom:14px}
.qual-detail-jp{font-family:'Noto Sans JP';font-size:14px;font-weight:500;color:var(--fg-sub);letter-spacing:0.32em}
.qual-detail-lead{font-family:'Noto Sans JP';font-size:14.5px;line-height:1.95;color:rgba(245,242,236,0.7);font-weight:500;max-width:760px;margin:36px auto 0;letter-spacing:0.02em}
.qual-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative}
.qual-pillar{padding:48px 36px;position:relative;display:flex;flex-direction:column}
.qual-pillar+.qual-pillar{border-left:1px solid var(--line)}
.qual-pillar::before{content:attr(data-num);position:absolute;top:24px;right:32px;font-family:'Inter';font-size:90px;font-weight:200;color:rgba(225,29,56,0.12);line-height:1;letter-spacing:-0.02em}
.qual-pillar-icon{width:43px;height:43px;color:var(--fg);margin:0 0 24px;display:block}
.qual-pillar-icon *{stroke-width:0.5}
@media (min-width: 601px){
  .qual-pillar{align-items:center;text-align:center}
  .qual-pillar-icon{margin:0 auto 24px;width:64px;height:64px;padding:14px;border:1px solid rgba(255,255,255,0.22);border-radius:50%;box-sizing:border-box}
}
.qual-pillar-cap{font-family:'Inter';font-size:11px;letter-spacing:0.32em;color:var(--accent);font-weight:700;text-transform:uppercase;margin-bottom:10px}
.qual-pillar-en{font-family:'Inter';font-size:clamp(28px,2.6vw,36px);font-weight:400;color:var(--fg);line-height:1.1;margin-bottom:6px;letter-spacing:-0.005em}
.qual-pillar-jp{font-family:'Noto Sans JP';font-size:13px;font-weight:600;color:var(--fg-sub);letter-spacing:0.24em;margin-bottom:32px}
.qual-pillar-items{display:flex;flex-direction:column;gap:24px}
.qual-item{display:flex;flex-direction:column;gap:6px}
.qual-item-head{font-family:'Inter';font-size:12px;letter-spacing:0.18em;color:var(--fg);font-weight:700;text-transform:uppercase;display:flex;align-items:center;gap:10px}
.qual-item-head::before{content:"";display:inline-block;width:14px;height:1px;background:var(--accent)}
.qual-item-desc{font-family:'Noto Sans JP';font-size:13px;line-height:1.85;color:rgba(245,242,236,0.65);font-weight:500;letter-spacing:0.02em}
@media(max-width:880px){.commit-pillars,.qual-pillars{grid-template-columns:1fr}.qual-pillar+.qual-pillar{border-left:none;border-top:1px solid var(--line)}}

/* ========== REASON DETAIL (about.html) — matches qual-detail style ========== */
.reason-detail-section{max-width:var(--max);margin:0 auto;position:relative}
.reason-detail-head{text-align:center;margin-bottom:80px;position:relative}
.reason-detail-eyebrow{font-family:'Inter';font-size:11px;letter-spacing:0.45em;color:var(--accent);font-weight:700;text-transform:uppercase;margin-bottom:22px;display:inline-flex;align-items:center;gap:14px}
.reason-detail-eyebrow::before,.reason-detail-eyebrow::after{content:"";display:block;width:32px;height:1px;background:var(--accent)}
.reason-detail-title{font-family:'Inter';font-size:clamp(60px,7.5vw,108px);font-weight:200;color:var(--fg);line-height:1;letter-spacing:-0.02em;margin-bottom:14px}
.reason-detail-jp{font-family:'Noto Sans JP';font-size:15px;font-weight:600;color:var(--fg-sub);letter-spacing:0.32em}
.reason-detail-lead{font-family:'Noto Sans JP';font-size:clamp(18px,1.8vw,24px);line-height:1.7;color:var(--fg);font-weight:800;max-width:840px;margin:36px auto 0;letter-spacing:0.04em}
.reason-detail-lead .ac{color:var(--accent);font-size:1.6em;display:block;line-height:1.4;letter-spacing:.02em}
.reason-detail-lead .sub{display:block;font-size:0.62em;font-weight:500;color:rgba(245,242,236,0.7);margin-top:14px;letter-spacing:0.04em;line-height:1.95}
.reason-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);position:relative}
.reason-cell{padding:48px 32px;position:relative;display:flex;flex-direction:column}
.reason-cell+.reason-cell{border-left:1px solid var(--line)}
.reason-cell::before{content:attr(data-num);position:absolute;top:24px;right:28px;font-family:'Inter';font-size:90px;font-weight:200;color:rgba(225,29,56,0.12);line-height:1;letter-spacing:-0.02em}
.reason-cell-cap{font-family:'Inter';font-size:11px;letter-spacing:0.32em;color:var(--accent);font-weight:700;text-transform:uppercase;margin-bottom:32px;position:relative}
.reason-cell-cap::after{content:"";display:block;width:24px;height:1px;background:var(--accent);margin-top:12px}
.reason-cell-en{font-family:'Inter';font-size:clamp(28px,2.6vw,36px);font-weight:400;color:var(--fg);line-height:1.1;margin-bottom:6px;letter-spacing:-0.005em}
.reason-cell-jp{font-family:'Noto Sans JP';font-size:13px;font-weight:600;color:var(--fg-sub);letter-spacing:0.24em;margin-bottom:24px}
.reason-cell-text{font-family:'Noto Sans JP';font-size:13.5px;line-height:1.85;color:rgba(245,242,236,0.7);font-weight:500;letter-spacing:0.02em;margin-top:auto}
@media(max-width:880px){.reason-grid{grid-template-columns:repeat(2,1fr)}.reason-cell+.reason-cell{border-left:none}.reason-cell:nth-child(2n){border-left:1px solid var(--line)}.reason-cell:nth-child(n+3){border-top:1px solid var(--line)}}
@media(max-width:520px){.reason-grid{grid-template-columns:1fr}.reason-cell:nth-child(2n){border-left:none}.reason-cell:nth-child(n+2){border-top:1px solid var(--line)}}

/* ========== REASON HERO (about.html) ========== */
.reason-hero{max-width:var(--max);margin:0 auto 80px;display:grid;grid-template-columns:1fr 1.6fr;gap:80px;align-items:center}
.reason-hero-left{}
.reason-hero-right{}
.reason-hero-eyebrow{font-family:'Inter';font-size:12px;letter-spacing:0.34em;color:var(--accent);font-weight:700;text-transform:uppercase;margin-bottom:32px;display:flex;align-items:center;gap:14px}
.reason-hero-eyebrow::before{content:"";width:36px;height:1px;background:var(--accent)}
.reason-hero-h{font-family:'Noto Sans JP';font-size:clamp(56px,7vw,104px);font-weight:200;line-height:1.04;letter-spacing:-0.015em;color:var(--fg);margin:0;font-feature-settings:"palt" 1}
.reason-hero-h .l{display:block}
.reason-hero-h .em{color:var(--accent)}
.reason-hero-msg{font-family:'Noto Sans JP';font-size:clamp(28px,3.4vw,46px);font-weight:800;line-height:1.4;letter-spacing:0.01em;color:var(--fg);margin-bottom:24px}
.reason-hero-msg .ac{color:var(--accent)}
.reason-hero-msg-sub{font-size:clamp(14.5px,1.3vw,17px);font-weight:500;line-height:1.95;color:var(--fg-dim);letter-spacing:0.04em}
.reason-hero-msg-sub strong{color:var(--fg);font-weight:700}
@media (max-width:980px){.reason-hero{grid-template-columns:1fr;gap:32px;margin-bottom:48px}}

/* ========== CHAPTER COVERS (index.html — monochrome) ========== */
.section-title-en{font-size:clamp(28px,3.2vw,48px);font-weight:300}
.service,.works,#quality-teaser{padding-top:0;background:#0a0a0a;position:relative;overflow:hidden}
.service > .section-inner > .section-head,.works > .section-inner > .section-head,#quality-teaser > .section-inner > .section-head{display:none}
.chapter-cover{position:relative;height:65vh;min-height:520px;overflow:hidden;margin-top:-50px;margin-bottom:140px;background:#000}
.cov-blur{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(1) brightness(0.30) contrast(0.95) blur(40px);transform:scale(1.15);animation:cov-kbn 30s ease-in-out infinite;opacity:0.65}
.cov-sharp{position:absolute;inset:0;background-size:cover;background-position:center;filter:grayscale(1) brightness(0.42) contrast(1.0);-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 25%,#000 75%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 25%,#000 75%,transparent 100%);animation:cov-kbn 22s ease-in-out infinite;opacity:0.6}
@keyframes cov-kbn{0%,100%{transform:scale(1.04)}50%{transform:scale(1.10)}}
.cov-overlay{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(0,0,0,0.20) 0%,rgba(0,0,0,0.60) 60%,rgba(0,0,0,0.92) 100%);z-index:2}
.cov-text{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;z-index:5;width:100%;padding:0 32px;max-width:1240px}
.cov-tag{font-family:'Inter';font-size:11px;letter-spacing:0.34em;color:var(--accent);font-weight:600;margin-bottom:24px;display:inline-flex;align-items:center;gap:14px}
.cov-tag::before,.cov-tag::after{content:"";width:36px;height:1px;background:var(--accent)}
.cov-en{font-family:'Inter';font-weight:100;font-size:clamp(62px,8.85vw,158px);color:#fff;letter-spacing:-0.035em;line-height:1;margin-bottom:14px;text-shadow:0 4px 30px rgba(0,0,0,0.6)}
.cov-jp{font-family:'Noto Sans JP';font-weight:700;font-size:clamp(14px,1.4vw,18px);color:rgba(255,255,255,0.78);letter-spacing:0.18em;text-shadow:0 2px 20px rgba(0,0,0,0.6)}
.chapter-cover::after{content:"";position:absolute;bottom:0;left:0;right:0;height:240px;background:linear-gradient(180deg,transparent 0%,rgba(10,10,10,0.4) 35%,rgba(10,10,10,0.85) 70%,#0a0a0a 100%);z-index:4;pointer-events:none}
.chapter-cover::before{content:"";position:absolute;top:0;left:0;right:0;height:120px;background:linear-gradient(0deg,transparent,rgba(10,10,10,0.55));z-index:4;pointer-events:none}

/* ========== SERVICE LIST — P1 Bordered Card ========== */
.chapter-cover{margin-bottom:-40px}
.service .section-head{margin-bottom:32px}
.service .section-inner{max-width:calc(var(--max) - 70px);padding-left:35px;padding-right:35px}
.services-list{display:flex;flex-direction:column;gap:14px;border-top:none}
.services-list .service-row{display:grid;grid-template-columns:80px 1fr 1.4fr auto;gap:32px;align-items:center;padding:28px 32px;background:linear-gradient(135deg,#141414,#0c0c0c);border:1px solid var(--line);border-radius:0;transition:all .35s ease}
.services-list .service-row:hover{background:linear-gradient(135deg,#1a1a1a,#101010);border-color:var(--accent);transform:translateY(-2px)}
.services-list .service-num{font-size:11px;letter-spacing:0.32em;color:var(--accent);font-weight:700;text-transform:uppercase}
.services-list .service-name-en{font-family:'Inter';font-size:18px;font-weight:600;letter-spacing:-0.005em;color:var(--fg);margin-bottom:4px;text-transform:uppercase}
.services-list .service-name-jp{font-family:'Noto Sans JP';font-weight:700;font-size:13px;color:var(--fg-sub);letter-spacing:0.1em}
.services-list .service-desc{font-family:'Noto Sans JP';font-size:13px;line-height:1.85;color:var(--fg-dim);margin-left:-20px}
.services-list .service-arrow{width:36px;height:36px;border-radius:50%;border:1px solid var(--line-strong);display:flex;align-items:center;justify-content:center;color:var(--fg-sub);transition:all .3s ease}
.services-list .service-row:hover .service-arrow{background:var(--accent);border-color:var(--accent);color:#fff;transform:rotate(-15deg)}
.services-list .service-arrow svg{width:14px;height:14px}

/* ========== SERVICE PHOTO-BEHIND + Skew Slide entrance (P5) ========== */
.chapter-cover{margin-top:-50px !important;margin-bottom:0 !important;height:60vh !important;min-height:480px !important;background:transparent !important}
.chapter-cover .cov-blur,.chapter-cover .cov-sharp{display:none}
.chapter-cover::after,.chapter-cover::before{display:none}
.service{position:relative;overflow:hidden}
.service{padding-bottom:30vh !important;overflow:visible !important}
.service::before{content:"";position:absolute;top:0;left:0;right:0;height:calc(100% + 60vh);background-image:url("https://images.unsplash.com/photo-1467232004584-a241de8bcf5d?w=2400&q=80&auto=format&fit=crop");background-size:cover;background-position:center;background-attachment:fixed;filter:grayscale(1) brightness(0.32) contrast(0.95) blur(2px);opacity:0.55;z-index:0;pointer-events:none}
.service::after{content:"";position:absolute;top:0;left:0;right:0;height:100%;background:linear-gradient(180deg,rgba(10,10,10,0.20) 0%,rgba(10,10,10,0.30) 50%,rgba(10,10,10,0.35) 90%,rgba(10,10,10,0) 100%);z-index:1;pointer-events:none}
.works{background:transparent !important;overflow:visible !important;margin-top:-50px !important}
.works .chapter-cover{background:transparent !important;margin-top:-180px !important;overflow:visible !important;height:35vh !important;min-height:280px !important}
.works .chapter-cover .cov-overlay{background:transparent !important;display:none !important}
.works .chapter-cover .cov-blur,.works .chapter-cover .cov-sharp{display:none !important}
.works .chapter-cover::before,.works .chapter-cover::after{display:none !important}
.service .chapter-cover{position:relative;z-index:2}
.service .chapter-cover .cov-overlay{background:radial-gradient(ellipse at center,transparent 30%,rgba(0,0,0,0.20) 70%) !important}
.service .section-inner{position:relative;z-index:3;margin-top:-80px}
.services-list .service-row.fadein{opacity:1;transform:none}
.services-list .service-row{background:rgba(0,0,0,0) !important;backdrop-filter:blur(8px) saturate(1.0);border:1px solid rgba(255,255,255,0.08) !important}
.services-list .service-row:hover{background:rgba(30,30,30,0.30) !important}
.services-list .service-row:hover{background:rgba(30,30,30,0.85) !important}
@keyframes svc-slidein{
  0%{opacity:0;transform:translateX(-220px)}
  100%{opacity:1;transform:translateX(0)}
}
.services-list .service-row.in-view{animation:svc-slidein 1.2s cubic-bezier(0.2,0.8,0.3,1) both}
.services-list .service-row.in-view:nth-child(1){animation-delay:0s}
.services-list .service-row.in-view:nth-child(2){animation-delay:0.50s}
.services-list .service-row.in-view:nth-child(3){animation-delay:1.00s}
.services-list .service-row.in-view:nth-child(4){animation-delay:1.50s}
.services-list .service-row.in-view:nth-child(5){animation-delay:2.00s}

/* ========== QUALITY SECTION (P9 — Workspace Premium + Hover) ========== */
#quality-teaser{position:relative;overflow:visible !important;padding-top:0 !important;padding-bottom:38px !important;background:#0a0a0a !important}
#quality-teaser::before{content:"";position:absolute;top:0;left:0;right:0;height:100%;background-image:url("https://images.unsplash.com/photo-1517048676732-d65bc937f952?w=3600&q=85&auto=format&fit=crop");background-size:80% auto;background-position:center;background-attachment:fixed;background-repeat:no-repeat;filter:grayscale(1) brightness(0.32) contrast(0.95) blur(2px);opacity:0.55;z-index:0;pointer-events:none}
#quality-teaser::after{content:"";position:absolute;top:0;left:0;right:0;height:100%;background:linear-gradient(180deg,rgba(10,10,10,0.20) 0%,rgba(10,10,10,0.30) 50%,rgba(10,10,10,0.35) 90%,rgba(10,10,10,0) 100%);z-index:1;pointer-events:none}
#quality-teaser .chapter-cover{position:relative;z-index:2;background:transparent !important;height:60vh !important;min-height:480px !important;margin-top:-50px !important;margin-bottom:0 !important}
#quality-teaser .chapter-cover .cov-blur,#quality-teaser .chapter-cover .cov-sharp{display:none !important}
#quality-teaser .chapter-cover::before,#quality-teaser .chapter-cover::after{display:none !important}
#quality-teaser .chapter-cover .cov-overlay{background:transparent !important;display:none !important}
#quality-teaser .section-inner{position:relative;z-index:3;margin-top:-120px}
#quality-teaser .section-head{margin-bottom:50px}
#quality-teaser .about-grid{position:relative;z-index:3}
#quality-teaser .about-card{background:rgba(0,0,0,0.20) !important;backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,0.10) !important;border-left:none !important;border-top:none !important;border-right:none !important;padding:48px 32px 40px !important;transition:all .4s cubic-bezier(.2,.8,.3,1);position:relative;opacity:1 !important;transform:none !important;overflow:hidden}
#quality-teaser .about-card::before{content:attr(data-bignum) !important;position:absolute !important;top:-30px !important;right:-12px !important;font-family:'Inter' !important;font-weight:100 !important;font-size:200px !important;color:rgba(225,29,56,0.10) !important;line-height:1 !important;letter-spacing:-0.05em !important;background:none !important;width:auto !important;height:auto !important;pointer-events:none;transition:color .4s ease}
#quality-teaser .about-card::after{content:"" !important;position:absolute !important;bottom:-1px !important;left:0 !important;width:0 !important;height:2px !important;background:#e11d38 !important;transition:width .5s ease}
#quality-teaser .about-card:hover{background:rgba(20,20,20,0.55) !important;opacity:1 !important}
#quality-teaser .about-card:hover::before{color:rgba(225,29,56,0.18) !important}
#quality-teaser .about-card:hover::after{width:100% !important}
#quality-teaser .about-card + .about-card{padding-left:32px !important}
#quality-teaser .about-card-icon{width:44px;height:44px;color:#fff;margin:0 0 28px;display:block;position:relative;z-index:2}
#quality-teaser .about-card-icon *{stroke-width:0.6}
@media (min-width: 601px){
  #quality-teaser .about-card{text-align:center;align-items:center;display:flex;flex-direction:column}
  #quality-teaser .about-card-icon{margin:0 auto 28px;width:64px;height:64px;padding:14px;border:1px solid rgba(255,255,255,0.22);border-radius:50%;box-sizing:border-box}
  #quality-teaser .about-card::before{display:none !important}
}
#quality-teaser .about-card-num{font-family:'Inter';font-size:11px;letter-spacing:0.32em;color:#e11d38;font-weight:600;margin-bottom:20px;position:relative;z-index:2}
#quality-teaser .about-card-title{font-family:'Inter';font-weight:200;font-size:34px;color:#fff;margin-bottom:6px;letter-spacing:-0.02em;position:relative;z-index:2}
#quality-teaser .about-card-jp{font-family:'Noto Sans JP';font-weight:500;font-size:13px;color:rgba(255,255,255,0.6);margin-bottom:28px;letter-spacing:0.1em;position:relative;z-index:2}
#quality-teaser .about-card-list{list-style:none;padding:0;margin:0;position:relative;z-index:2}
#quality-teaser .about-card-list li{display:grid;grid-template-columns:22px 1fr;column-gap:14px;padding:14px 0;border-top:1px solid rgba(255,255,255,0.06)}
#quality-teaser .about-card-list li:first-child{border-top:none;padding-top:0}
#quality-teaser .about-card-list li:last-child{padding-bottom:0}
#quality-teaser .about-card-list li::before{content:"";grid-column:1;grid-row:1 / span 2;width:16px;height:16px;margin-top:3px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e11d38' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><polyline points='4 12 10 18 20 6'/></svg>");background-size:contain;background-repeat:no-repeat;background-position:center}
#quality-teaser .li-title{grid-column:2;grid-row:1;font-family:'Inter';font-size:12px;letter-spacing:0.18em;color:#fff;font-weight:700;text-transform:uppercase;margin-bottom:6px}
#quality-teaser .li-text{grid-column:2;grid-row:2;font-family:'Noto Sans JP';font-size:12.5px;line-height:1.85;color:rgba(255,255,255,0.65)}
#quality-teaser .section-num{color:#e11d38 !important}
#quality-teaser .section-title-en{color:#fff !important}
#quality-teaser .section-title-jp{color:rgba(255,255,255,0.7) !important}
#quality-teaser .section-lead{color:rgba(255,255,255,0.65) !important}

/* ========== WORKS GRID — Rise-up Motion ========== */
.works-grid .work-card.fadein{opacity:0;transform:translateY(60px) scale(0.96);transition:opacity 1.0s cubic-bezier(0.2,0.8,0.3,1),transform 1.0s cubic-bezier(0.2,0.8,0.3,1)}
.works-grid .work-card.fadein.visible{opacity:1;transform:translateY(0) scale(1)}
.works-grid .work-card.fadein:nth-child(1){transition-delay:0s}
.works-grid .work-card.fadein:nth-child(2){transition-delay:0.18s}
.works-grid .work-card.fadein:nth-child(3){transition-delay:0.36s}
.works-grid .work-card.fadein:nth-child(4){transition-delay:0.54s}
.works-grid .work-card.fadein:nth-child(5){transition-delay:0.72s}
.works-grid .work-card.fadein:nth-child(6){transition-delay:0.90s}
.works-grid .work-card.fadein:nth-child(7){transition-delay:1.08s}
.works-grid .work-card.fadein:nth-child(8){transition-delay:1.26s}
.works-grid .work-card.fadein:nth-child(9){transition-delay:1.44s}

/* WORK DETAIL MODAL */
.work-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,0.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:9100;opacity:0;visibility:hidden;transition:opacity .35s ease,visibility .35s ease}
.work-modal-backdrop.open{opacity:1;visibility:visible}
.work-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.96);width:min(680px,92vw);max-height:92vh;background:#0e0f12;border:1px solid rgba(255,255,255,0.08);z-index:9101;opacity:0;visibility:hidden;transition:opacity .4s cubic-bezier(.2,.8,.3,1),transform .4s cubic-bezier(.2,.8,.3,1),visibility .4s ease;overflow:hidden;display:flex;flex-direction:column;border-radius:3px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.work-modal.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}
.work-modal-img{width:100%;height:200px;background-size:cover;background-position:center;background-color:#222;flex-shrink:0;position:relative}
.work-modal-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#0e0f12 100%)}
.work-modal-body{padding:22px 32px 26px;overflow-y:auto;color:#fff;flex:1;scrollbar-width:none;-ms-overflow-style:none}
.work-modal-body::-webkit-scrollbar{display:none;width:0;height:0}
.work-modal-tag{display:inline-block;background:var(--accent);color:#fff;padding:4px 11px;font-family:'Inter';font-size:10px;letter-spacing:.18em;font-weight:700;text-transform:uppercase;margin-bottom:10px;border-radius:2px}
.work-modal-title{font-family:'Noto Sans JP';font-size:19px;font-weight:700;line-height:1.45;margin:0 0 8px;color:#fff}
.work-modal-meta{font-family:'Inter';font-size:10.5px;letter-spacing:.2em;color:var(--fg-sub);text-transform:uppercase;margin-bottom:18px}
.work-modal-section{margin-bottom:16px}
.work-modal-section h4{font-family:'Inter';font-size:9.5px;letter-spacing:.32em;font-weight:700;color:var(--accent);margin:0 0 8px;text-transform:uppercase}
.work-modal-overview{font-size:12.5px;line-height:1.85;color:rgba(255,255,255,0.82);margin:0}
.work-modal-tech{display:flex;flex-wrap:wrap;gap:6px}
.work-modal-tech span{display:inline-block;padding:5px 10px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.10);font-family:'Inter';font-size:10.5px;letter-spacing:.04em;border-radius:2px;color:rgba(255,255,255,0.88)}
.work-modal-note{margin:12px 0 0;font-size:10px;letter-spacing:.04em;color:rgba(255,255,255,0.4);line-height:1.55}
.work-modal-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border:0;background:rgba(0,0,0,0.55);color:#fff;font-size:24px;cursor:pointer;z-index:3;border-radius:50%;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;font-family:'Inter';transition:background .2s ease}
.work-modal-close:hover{background:rgba(0,0,0,0.85)}
body.work-modal-open{overflow:hidden}
@media (max-width:600px){
  .work-modal{width:94vw;max-height:92vh}
  .work-modal-img{height:160px}
  .work-modal-body{padding:18px 20px 22px}
  .work-modal-title{font-size:16.5px}
  .work-modal-overview{font-size:12px;line-height:1.8}
}

/* PC: index.html #quality-teaser items — left-align (no impact to title block / mobile) */
@media (min-width: 601px){
  #quality-teaser .about-card-list,
  #quality-teaser .about-card-list li,
  #quality-teaser .li-title,
  #quality-teaser .li-text{text-align:left}
}

/* PC: about.html .qual-pillar items — left-align + red hyphen → checkmark */
@media (min-width: 601px){
  .qual-pillar .qual-pillar-items{text-align:left;align-self:stretch;width:100%}
  .qual-pillar .qual-item{display:grid;grid-template-columns:24px 1fr;grid-template-rows:auto auto;gap:0 8px}
  .qual-pillar .qual-item-head{grid-column:2;grid-row:1;display:flex;align-items:center}
  .qual-pillar .qual-item-head::before{display:none}
  .qual-pillar .qual-item-desc{grid-column:2;grid-row:2}
  .qual-pillar .qual-item::before{content:"";grid-column:1;grid-row:1 / span 2;width:16px;height:16px;margin-top:3px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e11d38' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'><polyline points='4 12 10 18 20 6'/></svg>");background-size:contain;background-repeat:no-repeat;background-position:center}
}
