/* Japan Auto Precision — 機能的な追加スタイル */
:root{
  --base-font-size:16px;
}
html{font-size:var(--base-font-size);} 
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial;line-height:1.45;color:#0f172a;background-color:#ffffff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img{max-width:100%;height:auto;display:block;object-fit:cover}
button, a, input, select, textarea{font-family:inherit}
/* Focus accessibility */
.focus-outline:focus, :focus-visible{outline:3px solid rgba(37,99,235,0.28);outline-offset:3px;border-radius:0.5rem}
/* Prevent body scroll when mobile menu open */
.no-scroll{height:100vh;overflow:hidden}
/* Mobile menu animation helpers (Tailwind classes used primarily) */
#mobileMenu{display:block}
#mobileMenu[aria-hidden="true"]{visibility:hidden;opacity:0;pointer-events:none}
#mobileMenu[aria-hidden="false"]{visibility:visible;opacity:1}
#mobileMenu nav{transition:transform .28s cubic-bezier(.2,.9,.2,1),opacity .28s ease;transform:translateY(6px);opacity:0}
#mobileMenu[aria-hidden="false"] nav{transform:translateY(0);opacity:1}
/* Cookie modal slight drop shadow and responsiveness */
#cookieModal{max-width:22rem}
@media (max-width:640px){
  #cookieModal{right:1rem;left:1rem;bottom:1rem;max-width:none}
}
/* Buttons disabled state */
button:disabled{opacity:.45;cursor:not-allowed;transform:none}
/* Small utility for visually-hidden text for screen readers */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Ensure high-contrast headings on varied backgrounds */
.hero-heading{color:#0b1220}
/* Subtle float animation for decorative icons (reduced motion respects) */
@media (prefers-reduced-motion: no-preference){
  .icon-float{animation:float-it 6s ease-in-out infinite}
  @keyframes float-it{0%{transform:translateY(0)}50%{transform:translateY(-6px)}100%{transform:translateY(0)}}
}
/* Ensure forms have clear states */
input[type="text"],input[type="email"],input[type="tel"],textarea,select{border:1px solid rgba(15,23,42,0.08);padding:.6rem .75rem;border-radius:.625rem;background-color:#fff}
input:focus,textarea:focus,select:focus{box-shadow:0 4px 12px rgba(2,6,23,0.06)}
/* Small utility to visually constrain large images in card components */
.card-media{max-height:320px;overflow:hidden}
/* Ensure footer links obvious contrast */
footer a{color:#0f172a}
