:root{--color-primary:#1a5276;--color-primary-light:#2980b9;--color-primary-dark:#0e2f44;--color-accent:#27ae60;--color-accent-light:#2ecc71;--color-warning:#e67e22;--color-danger:#e74c3c;--color-bg:#f8f9fa;--color-bg-card:#fff;--color-bg-header:#1a5276;--color-bg-footer:#2c3e50;--color-text:#2c3e50;--color-text-light:#7f8c8d;--color-text-inverse:#fff;--color-border:#dfe6e9;--font-sans:"Noto Sans JP", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.5rem;--font-size-2xl:2rem;--font-size-3xl:2.5rem;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--max-width:1200px;--header-height:72px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 24px #0000001f;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--transition-fast:.15s ease;--transition-base:.25s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;flex-direction:column;min-height:100vh;line-height:1.7;display:flex}main{flex:1}a{color:var(--color-primary-light);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary);text-decoration:underline}img{max-width:100%;height:auto}.site-header{background:linear-gradient(135deg, var(--color-bg-header), var(--color-primary-dark));color:var(--color-text-inverse);height:var(--header-height);z-index:100;box-shadow:var(--shadow-md);position:sticky;top:0}.header-inner{max-width:var(--max-width);padding:0 var(--space-lg);justify-content:space-between;align-items:center;height:100%;margin:0 auto;display:flex}.site-logo{align-items:center;gap:var(--space-sm);color:var(--color-text-inverse);font-weight:700;text-decoration:none;display:flex}.site-logo:hover{color:var(--color-text-inverse);opacity:.9;text-decoration:none}.logo-icon{font-size:1.8rem}.logo-text{font-size:var(--font-size-sm);line-height:1.3}.logo-text small{font-size:var(--font-size-xs);opacity:.85;font-weight:500}.main-nav ul{gap:var(--space-lg);list-style:none;display:flex}.main-nav a{color:var(--color-text-inverse);font-size:var(--font-size-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);transition:background var(--transition-fast);font-weight:500}.main-nav a:hover{background:#ffffff26;text-decoration:none}.site-footer{background:var(--color-bg-footer);color:var(--color-text-inverse);padding:var(--space-2xl) 0 var(--space-lg);margin-top:var(--space-3xl)}.footer-inner{max-width:var(--max-width);padding:0 var(--space-lg);text-align:center;margin:0 auto}.footer-notice{border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-lg);background:#ffffff14}.footer-notice p{font-size:var(--font-size-sm);opacity:.9;line-height:1.6}.footer-links{justify-content:center;gap:var(--space-lg);margin-bottom:var(--space-md);display:flex}.footer-links a{color:var(--color-text-inverse);font-size:var(--font-size-sm);opacity:.8;transition:opacity var(--transition-fast)}.footer-links a:hover{opacity:1;text-decoration:underline}.footer-copyright{font-size:var(--font-size-xs);opacity:.6}.container{max-width:var(--max-width);padding:0 var(--space-lg);margin:0 auto}.card{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-lg);transition:box-shadow var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.badge{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);align-items:center;font-weight:600;line-height:1;display:inline-flex}.badge--open{color:#2e7d32;background:#e8f5e9}.badge--upcoming{color:#e65100;background:#fff3e0}.badge--closed{color:#9e9e9e;background:#f5f5f5}.badge--prefecture{color:#1565c0;background:#e3f2fd}.badge--municipal{color:#7b1fa2;background:#f3e5f5}@media (width<=768px){:root{--header-height:60px}.main-nav ul{gap:var(--space-sm)}.main-nav a,.logo-text{font-size:var(--font-size-xs)}.footer-links{gap:var(--space-sm);flex-direction:column}}
