:root{--background:#fff;--foreground:#1a1a1a;--primary:#1a2b5c;--primary-dark:#1a1a2e;--accent:#c9a84c;--accent-light:#e8d48b;--text-muted:#666}@media (prefers-color-scheme:dark){:root{--background:#fff;--foreground:#1a1a1a}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}html,body{width:100%;overflow-x:hidden}body{color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,sans-serif;line-height:1.8}h1,h2,h3,h4,.font-abel{font-family:Abel,sans-serif}a{color:inherit;text-decoration:none;transition:opacity .3s}a:hover{opacity:.7}section{max-width:1200px;margin:0 auto;padding:80px 20px}.section-title{text-align:center;margin-bottom:60px}.section-title h2{color:var(--primary);letter-spacing:.2em;padding-bottom:15px;font-size:28px;display:inline-block;position:relative}.section-title h2 span{color:var(--text-muted);letter-spacing:.1em;margin-top:5px;font-size:14px;font-weight:400;display:block}.section-title h2:after{content:"";background:linear-gradient(to right, var(--accent), var(--accent-light));width:40px;height:2px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.fade-in{animation:1.2s ease-out forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.container-narrow{max-width:1000px;margin:0 auto;padding:0 20px}.card-premium{background:#fff;border-radius:12px;transition:transform .3s,box-shadow .3s;overflow:hidden;box-shadow:0 4px 20px #0000000d}.card-premium:hover{transform:translateY(-8px);box-shadow:0 15px 35px #1a2b5c26}.nav-solid-bg{background:#fff!important;box-shadow:0 2px 10px #0000000d!important}.leaflet-container{z-index:1;width:100%!important;height:100%!important}.current-pos{text-shadow:0 0 5px #fff;font-size:24px}@media (max-width:768px){section{padding:60px 15px!important}.section-title h2{font-size:24px!important}.mobile-column{flex-direction:column!important}.responsive-grid{grid-template-columns:1fr!important;gap:20px!important}.sp-hidden{display:none!important}.mt-sp-40{margin-top:40px!important}h1{font-size:28px!important;line-height:1.4!important}}
