:root{--bg-primary: #ffffff;--bg-secondary: #f0f7f4;--bg-muted: #f5f5f5;--bg-dark: #2d2d2d;--bg-card: #ffffff;--bg-card-hover: #f8faf9;--accent: #2EB67D;--accent-light: rgba(46, 182, 125, .1);--accent-soft: rgba(46, 182, 125, .2);--accent-dark: #249963;--accent-cyan: #2EB67D;--text-primary: #1a1a1a;--text-secondary: #555555;--text-muted: #999999;--text-on-dark: #ffffff;--border-color: #e0e0e0;--border-accent: rgba(46, 182, 125, .3);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .06);--shadow-md: 0 4px 16px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .1);--arrow-size: 40px;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--font-sans: "Open Sans", "Zen Kaku Gothic New", sans-serif;--font-display: "Inter", sans-serif;--font-serif: "Noto Serif JP", serif;--color-primary: var(--bg-primary);--color-secondary: var(--bg-secondary);--color-dark: var(--bg-dark);--color-white: var(--text-on-dark);--color-accent: var(--accent);--color-accent-dark: var(--accent-dark);--color-border: var(--border-color);--color-text-muted: var(--text-muted);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--space-30: 120px;--font-size-xs: .8rem;--font-size-sm: .875rem;--font-size-lg: 1.125rem;--font-weight-medium: 500;--font-weight-semibold: 600;--line-height-tight: 1.15;--line-height-snug: 1.4;--line-height-relaxed: 1.7;--line-height-loose: 2;--letter-spacing-tight: -.04em;--letter-spacing-wide: .08em;--letter-spacing-wider: .14em;--transition-base: .25s ease;--transition-slow: .6s ease}.splash{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);animation:splashOut .5s cubic-bezier(.65,0,.35,1) .95s forwards}.splash__logo{position:relative;color:var(--text-primary);font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4rem);font-weight:800;line-height:1;opacity:0;animation:splashLogoIn .8s cubic-bezier(.22,1,.36,1) forwards}.splash__logo span{color:var(--accent)}@keyframes splashLogoIn{0%{opacity:0;letter-spacing:.35em;transform:translateY(10px)}to{opacity:1;letter-spacing:var(--letter-spacing-tight);transform:translateY(0)}}@keyframes splashOut{to{opacity:0;visibility:hidden}}@media(prefers-reduced-motion:reduce){.splash{animation:splashOut .01s linear .01s forwards}.splash__logo{opacity:1;letter-spacing:var(--letter-spacing-tight);animation:none}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);font-size:1.0625rem;line-height:2;letter-spacing:.04em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%}.section{padding:120px 0;position:relative}.container{max-width:1100px;margin:0 auto;padding:0 24px}.section-label{display:inline-block;font-size:.8rem;font-weight:600;color:var(--text-muted);letter-spacing:.15em;text-transform:uppercase;margin-bottom:20px;font-family:var(--font-display)}.section-title{font-family:var(--font-display);font-size:clamp(2.5rem,5vw,3.75rem);font-weight:600;line-height:1.4;letter-spacing:.02em;color:var(--text-primary);margin-bottom:24px}.section-subtitle{font-size:1.125rem;color:var(--text-secondary);margin-bottom:56px;line-height:2}.btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;font-weight:700;font-size:1.0625rem;padding:18px 40px;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all .25s ease;font-family:var(--font-sans);letter-spacing:.04em}.btn-primary:hover{background:var(--accent-dark);transform:translateY(-2px);box-shadow:0 8px 24px #2eb67d4d}.btn-outline{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--accent);font-weight:600;font-size:1.0625rem;padding:17px 40px;border-radius:var(--radius-sm);border:1.5px solid var(--accent);cursor:pointer;transition:all .25s ease;font-family:var(--font-sans);letter-spacing:.04em}.btn-outline:hover{background:var(--accent-light);transform:translateY(-2px)}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:36px;transition:all .3s ease;box-shadow:var(--shadow-sm)}.card:hover{border-color:var(--border-accent);transform:translateY(-2px);box-shadow:var(--shadow-md)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.text-accent{color:var(--accent)}.text-secondary{color:var(--text-secondary)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in-up{animation:fadeInUp .6s ease forwards}.divider{border:none;border-top:1px solid var(--border-color);margin:0}@media(max-width:1024px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.section{padding:80px 0}.grid-2,.grid-3{grid-template-columns:1fr}}@media(max-width:640px){:root{--font-size-lg: 1rem;--arrow-size: 36px}body{font-size:1rem;letter-spacing:.02em}}.navbar{position:fixed;inset:0 0 auto;z-index:100;padding:0;background:transparent;transition:all .3s ease}.navbar--scrolled,.navbar--solid{background:color-mix(in srgb,var(--bg-primary) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.navbar__inner{display:flex;min-height:76px;align-items:center;justify-content:space-between;transition:min-height .3s ease}.navbar--scrolled .navbar__inner,.navbar--solid .navbar__inner{min-height:76px}.navbar__logo{color:var(--text-on-dark);font-family:var(--font-display);font-size:2rem;font-weight:800;letter-spacing:-.04em}.navbar__logo span{color:var(--accent)}.navbar--scrolled .navbar__logo,.navbar--solid .navbar__logo{color:var(--text-primary)}.navbar__nav{display:flex;align-self:stretch;align-items:center;gap:32px}.navbar__link{color:color-mix(in srgb,var(--text-on-dark) 82%,transparent);font-family:var(--font-display);font-size:1.125rem;font-weight:500;letter-spacing:.06em;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:.5em;transition:var(--transition-base)}.navbar__link:hover{color:var(--accent);text-decoration-color:currentcolor}.navbar--scrolled .navbar__link,.navbar--solid .navbar__link{color:var(--text-secondary)}.navbar--scrolled .navbar__link:hover,.navbar--solid .navbar__link:hover{color:var(--accent);text-decoration-color:currentcolor}.navbar__cta{display:inline-flex;align-self:stretch;align-items:center;padding:0 var(--space-6);border:1px solid var(--accent);border-radius:0 0 0 var(--radius-sm);background:var(--accent);color:var(--text-on-dark);font-size:1.125rem;font-weight:700;white-space:nowrap;transition:all .25s ease}.navbar__cta:hover{border-color:var(--accent-dark);background:var(--accent-dark)}.navbar__hamburger{display:none;flex-direction:column;gap:5px;min-width:44px;min-height:44px;align-items:center;justify-content:center;padding:0;border:0;background:transparent;cursor:pointer}.navbar__hamburger span{display:block;width:24px;height:2px;background:var(--text-on-dark);transition:all .3s ease}.navbar--scrolled .navbar__hamburger span,.navbar--solid .navbar__hamburger span{background:var(--text-primary)}.navbar__hamburger--open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.navbar__hamburger--open span:nth-child(2){opacity:0}.navbar__hamburger--open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}@media(max-width:900px){.navbar__inner{min-height:76px}.navbar__hamburger{display:flex}.navbar__nav{display:none;position:fixed;inset:76px 0 auto;flex-direction:column;align-items:stretch;gap:0;padding:20px;background:var(--bg-primary);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-md)}.navbar__nav--open{display:flex}.navbar__link{padding:16px 0;border-bottom:1px solid var(--border-color);color:var(--text-primary);font-size:1rem}.navbar__cta{justify-content:center;min-height:44px;margin-top:20px;padding:0 var(--space-5);border-radius:var(--radius-sm)}}.footer{color:var(--color-white);background:var(--color-dark)}.footer .footer__inner{padding-top:var(--space-16);padding-bottom:var(--space-16)}.footer__logo{margin-bottom:var(--space-5);font-family:var(--font-display);font-size:2rem;font-weight:700;line-height:1;letter-spacing:var(--letter-spacing-tight)}.footer__body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:var(--space-20)}.footer__logo span{color:var(--color-accent)}.footer__address{max-width:360px;color:color-mix(in srgb,var(--color-white) 62%,transparent);font-size:var(--font-size-sm);font-style:normal;line-height:var(--line-height-relaxed)}.footer__nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8)}.footer__nav>div{display:flex;align-items:flex-start;flex-direction:column;gap:var(--space-4)}.footer__nav-heading{margin-bottom:var(--space-2);color:var(--color-white);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-wide)}.footer__nav a{color:color-mix(in srgb,var(--color-white) 62%,transparent);font-size:var(--font-size-sm);transition:color var(--transition-base)}.footer__nav a:hover{color:var(--color-white)}.footer__bottom{border-top:1px solid color-mix(in srgb,var(--color-white) 20%,transparent)}.footer__bottom-inner{display:flex;align-items:center;justify-content:center;gap:var(--space-6);padding-top:var(--space-6);padding-bottom:var(--space-6);color:color-mix(in srgb,var(--color-white) 58%,transparent);font-size:var(--font-size-xs)}.footer__privacy{transition:color var(--transition-base)}.footer__privacy:hover{color:var(--color-white)}@media(max-width:900px){.footer__body{grid-template-columns:1fr;gap:var(--space-12)}}@media(max-width:640px){.footer .footer__inner{padding-top:var(--space-12);padding-bottom:var(--space-12)}.footer__nav{display:none}.footer__bottom-inner{gap:var(--space-4)}}
