:root { --brand: #5eaced; --ink: #182331; --muted: #526170; }
html { scroll-behavior: smooth; scroll-padding-top: 112px; }
body { font-family: 'Noto Sans JP', Arial, sans-serif; font-size: 16px; font-weight: 400; line-height: 1.75; color: var(--ink); }
h1,h2,h3,.en-font { font-family: 'Montserrat', Arial, sans-serif; }
h1,h2,h3,p { overflow-wrap: break-word; }
.text-primary { color: #2877b5; }
.bg-primary { background-color: var(--brand); }
.border-primary { border-color: var(--brand); }
img { -webkit-backface-visibility: hidden; max-width: 100%; }
a:focus-visible,button:focus-visible { outline: 3px solid #185b92; outline-offset: 5px; }
header { padding-block: 8px !important; }
header > div { max-width: 1280px !important; }
header a.block { width: 88px !important; }
header nav { letter-spacing: .02em; font-size: 14px; }
header nav > a:last-child,button[type=submit] { background: #2877b5; }
main > section:first-child { padding-top: 156px; padding-bottom: 80px; }
main > section:first-child > div { max-width: 1280px; gap: 32px; }
h1 { font-size: clamp(2.25rem, 4.4vw, 4.5rem) !important; line-height: 1.14 !important; letter-spacing: -.035em !important; font-weight: 700 !important; filter: none !important; }
h1 span { white-space: nowrap; }
h2 { font-size: clamp(2rem, 3.5vw, 3rem) !important; line-height: 1.2; letter-spacing: -.025em; font-weight: 700 !important; }
h3 { line-height: 1.45 !important; letter-spacing: -.015em; }
#about h3 { font-size: clamp(1.375rem, 2.3vw, 1.875rem); }
#about h3 span { font-family: 'Noto Sans JP', Arial, sans-serif; font-size: 1.0625rem; font-weight: 400; color: var(--muted); margin-top: 12px; }
#about .leading-loose { line-height: 1.85; letter-spacing: normal; font-weight: 400; }
#about li { align-items: baseline; font-weight: 400; }
#about li > span { align-self: center; }
#about h3 + div { padding: 28px; }
#partners img { max-width: 100%; }
#partners p { font-size: 1rem; }
#company h3 { font-weight: 700; }
#company .grid > div.uppercase { font-size: .875rem; letter-spacing: .02em; color: var(--muted); font-weight: 400; text-transform: none; }
#company .grid[class*='240px'] > div:not(.uppercase) { font-size: 1rem; font-weight: 400; }
#company .grid > div:not(.uppercase) { line-height: 1.75; }
#company .font-mono { font-family: inherit; letter-spacing: normal; font-weight: 500; }
#company a { text-decoration: underline; text-underline-offset: 4px; overflow-wrap: anywhere; }
#contact { padding-block: 64px; }
#contact label { font-size: .875rem; letter-spacing: .04em; }
#contact form span { font-size: .75rem; letter-spacing: .02em; font-weight: 700; }
#contact form span.bg-primary { background: #2877b5; }
#contact input,#contact textarea { font: inherit; border-color: #d9e2eb; background: #fafbfd; }
#contact textarea { min-height: 144px; resize: vertical; }
footer .text-gray-400,footer .text-gray-300 { color: var(--muted); font-size: .8125rem; letter-spacing: .04em; }
@media (min-width: 768px) {
  #company .grid[class*='240px'] { grid-template-columns: 180px minmax(0,1fr); }
}
@media (max-width: 767px) {
  html { scroll-padding-top: 96px; }
  header > div { padding-inline: 16px !important; gap: 12px; }
  header a.block { width: 64px !important; flex-shrink: 0; }
  header nav { display: flex !important; gap: 12px; font-size: 12px; }
  header nav > a { margin-left: 0 !important; }
  header nav > a:last-child { padding: 8px 10px; }
  main > section:first-child { padding-top: 112px; padding-bottom: 40px; }
  main > section:first-child > div { flex-direction: column; align-items: stretch; gap: 24px; }
  main > section:first-child > div > div:first-child { margin-top: 0; }
  h1 { margin-bottom: 0 !important; }
  #about { width: 100%; padding-right: 0; border-radius: 0 40px 40px 0; }
  #about,#partners,#company { padding-block: 48px; }
  #about h3 + div { padding: 24px; }
  #company .backdrop-blur-sm { padding: 24px 16px; }
  #company .grid[class*='240px'] { gap: 6px; padding: 20px 8px; }
  #company .grid > div.uppercase { font-size: .875rem; }
  #contact { padding-block: 48px; }
  #contact .shadow-2xl { padding: 24px; border-radius: 24px; }
  #contact button { width: 100%; padding-inline: 24px; }
}
@media (max-width: 359px) {
  header nav { gap: 8px; }
  header a.block { width: 48px !important; }
  h1 { font-size: 2rem !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { transition: none !important; transform: none !important; }
}
