:root{--hue-primary: 28;--hue-secondary: 45;--hue-accent: 200;--color-primary: hsl(var(--hue-primary), 90%, 60%);--color-primary-dark: hsl(var(--hue-primary), 90%, 50%);--color-secondary: hsl(var(--hue-secondary), 80%, 90%);--color-text: hsl(200, 10%, 20%);--color-text-light: hsl(200, 10%, 40%);--color-bg: hsl(30, 30%, 98%);--color-white: #ffffff;--color-dark: hsl(200, 20%, 15%);--spacing-xs: .5rem;--spacing-sm: 1rem;--spacing-md: 2rem;--spacing-lg: 4rem;--spacing-xl: 8rem;--font-base: "Noto Sans JP", sans-serif;--font-display: "Zen Maru Gothic", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-base);color:var(--color-text);background-color:var(--color-bg);line-height:1.8;-webkit-font-smoothing:antialiased}h1,h2,h3,.logo{font-family:var(--font-display);font-weight:700;line-height:1.3}a{text-decoration:none;color:inherit;transition:opacity .3s}a:hover{opacity:.8}ul{list-style:none}img{max-width:100%;height:auto;display:block}.container{width:90%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-sm)}.subtitle{display:block;font-size:.9rem;color:var(--color-primary);text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-bottom:var(--spacing-xs)}.text-white{color:var(--color-white)}.bg-light{background-color:var(--color-white)}.bg-dark{background-color:var(--color-dark)}.spacer-1{padding-top:.25rem;padding-bottom:.25rem}#header{position:fixed;top:0;left:0;width:100%;padding:var(--spacing-sm) 0;z-index:1000;background-color:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:box-shadow .3s}#header.scrolled{box-shadow:0 4px 20px #0000000d}#header .container{display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.5rem;color:var(--color-primary)}#header nav ul{display:flex;gap:var(--spacing-md);align-items:center}@media(max-width:768px){#header .container{flex-direction:column;gap:var(--spacing-sm)}#header nav ul{gap:var(--spacing-sm);font-size:.9rem}}.btn-primary{background-color:var(--color-primary);color:var(--color-white);padding:.6em 1.5em;border-radius:50px;font-weight:700;display:inline-block;transition:transform .2s,background-color .2s}.btn-primary:hover{background-color:var(--color-primary-dark);transform:translateY(-2px);opacity:1}.btn-secondary{background-color:transparent;color:var(--color-white);border:2px solid var(--color-white);padding:.8em 2em;border-radius:50px;font-weight:700;display:inline-block;transition:background-color .3s,color .3s}.btn-secondary:hover{background-color:var(--color-white);color:var(--color-text);opacity:1}.btn-primary.large{font-size:1.2rem;padding:1em 3em}#hero{position:relative;height:75vh;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--color-white);overflow:hidden}.hero-bg{position:absolute;top:0;left:0;width:100%;height:100%;z-index:-1}.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 0%}.hero-bg .overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(#0003,#0006)}.hero-content h1{font-size:clamp(2.5rem,5vw,4.5rem);margin-bottom:var(--spacing-sm);text-shadow:0 4px 10px rgba(0,0,0,.2)}.hero-content p{font-size:clamp(1rem,2vw,1.2rem);margin-bottom:var(--spacing-md);text-shadow:0 2px 5px rgba(0,0,0,.2)}.section{padding:var(--spacing-xl) 0}.section h2{font-size:2.5rem;margin-bottom:var(--spacing-md)}.lead-text{font-size:1.5rem;color:var(--color-text-light);line-height:2;font-feature-settings:"palt"}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-md);margin-top:var(--spacing-lg)}.card{background:var(--color-white);padding:var(--spacing-md);border-radius:12px;box-shadow:0 10px 30px #0000000d;transition:transform .3s}.card:hover{transform:translateY(-5px)}.card h3{font-size:1.5rem;margin-bottom:var(--spacing-xs);color:var(--color-primary)}.company-info{margin-top:var(--spacing-md);border-top:1px solid #ddd}.info-row{display:flex;padding:var(--spacing-sm) 0;border-bottom:1px solid #ddd}.info-row dt{width:150px;font-weight:700}.info-row dd{flex:1}@media(max-width:600px){.info-row{flex-direction:column}}footer{padding:var(--spacing-md) 0;text-align:center;background-color:var(--color-dark);color:#888;font-size:.9rem}.fade-in{opacity:0;transform:translateY(20px);transition:opacity .8s ease-out,transform .8s ease-out}.fade-in.visible{opacity:1;transform:translateY(0)}.fade-in-up{animation:fadeInUp 1s ease-out forwards}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
