/* Corporate MVV: blue field, white typography and the existing Hirokawa emblem. */
body.site-theme .about-culture { padding: 0; scroll-margin-top: 90px; }
.culture-intro { background: #f1f1f1; padding: 72px 0 64px; color: #333; }
.culture-intro h2 { font-family: 'Zen Old Mincho', serif; font-size: clamp(48px, 6.7vw, 88px); font-weight: 600; line-height: 1.2; letter-spacing: -.04em; color: #005baa; }
.culture-subtitle { display: inline-block; background: #005baa; color: #fff; padding: 3px 14px; margin-top: 12px; font-size: 18px; font-weight: 700; letter-spacing: .08em; }
.culture-intro-copy { margin-top: 32px; padding-left: 24px; border-left: 4px solid #005baa; font-size: 16px; font-weight: 500; line-height: 2; }
.culture-intro-copy p + p { margin-top: 0; }
.culture-blue { position: relative; isolation: isolate; overflow: hidden; background: #005baa; color: #fff; padding: 112px 0 96px; }
/* Match the corporate Our Culture embed's colors, blur and motion timings. */
.culture-motion { position: absolute; inset: 0; z-index: -1; display: flex; align-items: center; justify-content: center; overflow: hidden; pointer-events: none; }
.culture-orb { position: absolute; border-radius: 50%; filter: blur(26px); will-change: transform; }
.culture-orb-blue { width: 95vmax; height: 95vmax; background: radial-gradient(ellipse, rgba(33,117,188,.95) 0%, rgba(33,117,188,.55) 34%, rgba(0,91,170,0) 72%); animation: culture-orb-blue 26s ease-in-out infinite; }
.culture-orb-highlight { width: 88vmax; height: 88vmax; background: radial-gradient(ellipse, rgba(255,169,0,.95) 0%, rgba(255,169,0,.78) 26%, rgba(255,169,0,.48) 38%, rgba(97,192,180,.48) 54%, rgba(97,192,180,.28) 66%, rgba(0,91,170,0) 82%); animation: culture-orb-highlight 19s ease-in-out infinite; }
@keyframes culture-orb-blue {
  0%, 100% { transform: translate(-24%, -18%) scaleX(1.5) scaleY(1) rotate(0deg); }
  16% { transform: translate(16%, -24%) scaleX(1.25) scaleY(1.15) rotate(8deg); }
  34% { transform: translate(26%, 10%) scaleX(1) scaleY(1.5) rotate(-6deg); }
  52% { transform: translate(-12%, 24%) scaleX(1.35) scaleY(1.08) rotate(14deg); }
  73% { transform: translate(-28%, 2%) scaleX(.95) scaleY(1.45) rotate(-12deg); }
}
@keyframes culture-orb-highlight {
  0%, 100% { transform: translate(18%, -24%) scaleX(1.5) scaleY(1) rotate(-10deg); }
  14% { transform: translate(32%, -4%) scaleX(1.18) scaleY(1.22) rotate(6deg); }
  31% { transform: translate(10%, 24%) scaleX(1) scaleY(1.5) rotate(12deg); }
  49% { transform: translate(-30%, 12%) scaleX(1.38) scaleY(1.05) rotate(-8deg); }
  71% { transform: translate(-8%, -28%) scaleX(.92) scaleY(1.46) rotate(16deg); }
}
@media (prefers-reduced-motion: reduce) {
  .culture-orb { animation: none; will-change: auto; }
  .culture-orb-highlight { transform: translate(18%, -24%); }
}
.culture-content { position: relative; z-index: 1; font-family: 'Inter', 'Noto Sans JP', sans-serif; }
.culture-emblem { position: absolute; z-index: 0; right: -160px; bottom: 100px; width: min(65vw, 940px); height: auto; opacity: .22; filter: brightness(0) invert(1); pointer-events: none; }
.culture-block + .culture-block { margin-top: 112px; }
.culture-label { font-family: 'Zen Kaku Gothic New', 'Noto Sans JP', sans-serif; font-size: 32px; font-weight: 700; line-height: 1; margin: 0 0 24px; }
.culture-statement, .culture-values { margin-left: 26px; }
.culture-message { font-size: clamp(36px, 4.45vw, 64px); font-weight: 600; line-height: 1.25; letter-spacing: 0; }
.culture-translation { font-size: 15px; font-weight: 500; line-height: 1.7; margin-top: 12px; }
.culture-values { list-style: none; padding: 0; }
.culture-values li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: start; }
.culture-values li + li { margin-top: 24px; }
.culture-value-title, .culture-value-number { font-size: clamp(27px, 3.34vw, 48px); font-weight: 600; line-height: 1.3; letter-spacing: 0; }
.culture-values .culture-translation { margin-top: 6px; }
.culture-source { display: inline-flex; align-items: center; gap: 24px; color: #fff; font-size: 14px; margin-top: 56px; padding: 10px 0; text-decoration: underline; text-underline-offset: 6px; }
.culture-source:focus-visible { outline: 2px solid #fff; outline-offset: 6px; }
@media (max-width: 768px) {
  body.site-theme .about-culture { scroll-margin-top: 76px; }
  .culture-intro { padding: 48px 0 40px; }
  .culture-intro h2 { font-size: clamp(42px, 10vw, 64px); }
  .culture-subtitle { font-size: 14px; padding: 3px 10px; }
  .culture-intro-copy { padding: 20px 0 0; border-left: 0; border-top: 1px solid #005baa; font-size: 14px; margin-top: 26px; }
  .culture-blue { padding: 56px 0 48px; }
  .culture-label { font-size: 24px; margin-bottom: 22px; }
  .culture-statement, .culture-values { margin-left: 0; }
  .culture-message { font-size: clamp(26px, 5.5vw, 40px); line-height: 1.5; }
  .culture-translation { font-size: 12px; }
  .culture-block + .culture-block { margin-top: 64px; }
  .culture-value-title, .culture-value-number { font-size: clamp(20px, 4.7vw, 30px); line-height: 1.5; }
  .culture-values li { gap: 6px; }
  .culture-values li + li { margin-top: 24px; }
  .culture-emblem { width: 115vw; max-width: none; right: -40vw; bottom: 90px; opacity: .13; }
  .culture-source { font-size: 12px; gap: 12px; margin-top: 40px; }
}
