:root{--color-primary:#0a1b3f;--color-accent:#d7182a;--color-gray-dark:#595959;--color-text:#333;--color-text-light:#666;--color-bg:#fff;--color-bg-alt:#f8f9fa;--color-gray:#e5e7eb;--font-heading:"Montserrat", sans-serif;--font-body:"Noto Sans JP", sans-serif;--transition-normal:.3s ease}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--color-text);background-color:var(--color-bg);line-height:1.6;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);margin-bottom:1rem;line-height:1.3}a{color:inherit;transition:color var(--transition-normal);text-decoration:none}ul{list-style:none}img{max-width:100%;height:auto;display:block}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}.accent-navy{color:var(--color-primary)}.accent-red{color:var(--color-accent)}.eyebrow{color:var(--color-accent);font-family:var(--font-heading);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.5rem;font-size:.875rem;font-weight:700}.btn{transition:all var(--transition-normal);cursor:pointer;border:2px solid #0000;border-radius:50px;justify-content:center;align-items:center;padding:12px 32px;font-weight:700;display:inline-flex}.btn-primary{background-color:var(--color-primary);color:#fff}.btn-primary:hover{background-color:#111d33;transform:translateY(-2px)}.btn-outline{color:var(--color-primary);border-color:var(--color-primary);background-color:#0000}.btn-outline:hover{background-color:var(--color-primary);color:#fff;transform:translateY(-2px)}.btn-outline-light{color:#fff;background-color:#0000;border-color:#fff}.btn-outline-light:hover{color:var(--color-primary);background-color:#fff;transform:translateY(-2px)}.btn-block{width:100%}.site-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1000;border-bottom:1px solid var(--color-gray);background:#fffffff2;width:100%;position:fixed;top:0;left:0}.header-inner{justify-content:space-between;align-items:center;height:80px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-logo{justify-content:center;align-items:center;width:48px;height:48px;display:flex}.brand-text{flex-direction:column;line-height:1.2;display:flex}.brand-name{font-family:var(--font-heading);color:var(--color-primary);letter-spacing:.2em;font-size:1.25rem;font-weight:800}.brand-sub{font-family:var(--font-heading);color:var(--color-gray-dark);letter-spacing:.35em;font-size:.8rem;font-weight:600}.primary-nav ul{align-items:center;gap:32px;display:flex}.primary-nav a{font-size:.95rem;font-weight:500}.primary-nav a:hover{color:var(--color-accent)}.nav-cta{background-color:var(--color-primary);border-radius:50px;padding:8px 24px;color:#fff!important}.nav-cta:hover{background-color:#111d33}.nav-toggle{display:none}.section{padding:100px 0}.section-alt{background-color:var(--color-bg-alt)}.section-head{text-align:center;margin-bottom:64px}.section-head h2{font-size:2.5rem;font-weight:700}.section-desc{max-width:600px;color:var(--color-text-light);margin:0 auto}.section-about{background-color:var(--color-primary);color:#fff}.section-about .eyebrow{color:var(--color-accent)}.section-about .lead{color:#fff}.section-about p{color:#ffffffd9}.section-about h3{color:#fff}.section-about .value-icon{color:var(--color-accent)}.section-about .photo-band figcaption{color:#fff}.hero{background-color:var(--color-bg-alt);padding:120px 0 100px;position:relative;overflow:hidden}.hero-inner{grid-template-columns:1fr 1fr;align-items:center;gap:64px;display:grid}.hero-text{padding-top:40px}.hero-eyebrow{font-family:var(--font-heading);letter-spacing:.2em;color:var(--color-text-light);text-transform:uppercase;margin-bottom:16px;font-weight:700}.hero-title{margin-bottom:24px;font-size:3.5rem;font-weight:900;line-height:1.2}.hero-lead{color:var(--color-text-light);margin-bottom:40px;font-size:1.125rem}.hero-actions{gap:16px;display:flex}.hero-photo{aspect-ratio:3/4;border-radius:24px;width:70%;margin:0 auto;overflow:hidden;box-shadow:0 30px 60px #00000026}.hero-photo img{object-fit:cover;width:100%;height:100%}.hero-photo-main{transform:rotate(2deg)}.photo-band{grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:64px;display:grid}.photo-band figure{border-radius:16px;position:relative;overflow:hidden}.photo-band figcaption{color:#fff;background:linear-gradient(#0000,#000c);width:100%;padding:16px;font-weight:500;position:absolute;bottom:0;left:0}.grid-2{grid-template-columns:1fr 1fr;gap:64px;display:grid}.lead{margin-bottom:24px;font-size:1.25rem;font-weight:700}.value-list{flex-direction:column;gap:32px;display:flex}.value-list li{padding-left:48px;position:relative}.value-icon{color:var(--color-accent);font-size:1.5rem;position:absolute;top:0;left:0}.section-mission{color:var(--color-text);background-color:#fff}.section-mission .eyebrow{color:var(--color-accent)}.section-mission .section-head h2{color:var(--color-text)}.mission-grid{grid-template-columns:repeat(3,1fr);gap:32px;display:grid}.mission-card{background:var(--color-bg-alt);border:1px solid var(--color-gray);transition:transform var(--transition-normal);border-radius:24px;padding:40px}.mission-card h3{color:var(--color-primary)}.mission-card p{color:var(--color-text-light)}.mission-card:hover{transform:translateY(-10px)}.card-tag{border-radius:50px;margin-bottom:24px;padding:4px 12px;font-size:.75rem;font-weight:700;display:inline-block}.tag-navy{background:var(--color-primary);color:#fff}.tag-red{background:var(--color-accent);color:#fff}.tag-gray{background:var(--color-gray);color:var(--color-text)}.section-activities{background-color:var(--color-primary);color:#fff}.section-activities .eyebrow{color:var(--color-accent)}.section-activities .section-head h2{color:#fff}.activity-grid{grid-template-columns:repeat(2,1fr);gap:32px;display:grid}.activity-card{transition:transform var(--transition-normal);background:#ffffff14;border:1px solid #ffffff1a;border-radius:24px;overflow:hidden;box-shadow:0 10px 30px #0003}.activity-card h3{color:#fff}.activity-card p{color:#ffffffd9}.activity-card:hover{transform:translateY(-10px)}.activity-photo{aspect-ratio:16/9;position:relative}.activity-photo img{object-fit:cover;width:100%;height:100%}.activity-num{color:var(--color-primary);font-family:var(--font-heading);background:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-weight:900;display:flex;position:absolute;top:24px;left:24px}.activity-body{padding:32px}.section-bridge{background:#fff}.bridge-wrap{justify-content:center;align-items:center;gap:24px;display:flex}.bridge-card{background:#fff;border-radius:24px;flex:1;overflow:hidden;box-shadow:0 20px 40px #00000014}.bridge-photo{aspect-ratio:16/10}.bridge-photo img{object-fit:cover;width:100%;height:100%}.bridge-body{padding:32px;position:relative}.flag-mark{background:var(--color-gray);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;margin-bottom:16px;display:flex}.dot{border-radius:50%;width:12px;height:12px}.dot-red{background:var(--color-accent)}.dot-navy{background:var(--color-primary)}.bridge-line{color:var(--color-primary);align-items:center;gap:16px;font-size:2rem;display:flex}.gallery-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.gallery-item{aspect-ratio:1;border-radius:16px;position:relative;overflow:hidden}.gallery-item img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.gallery-item:hover img{transform:scale(1.05)}.gallery-item figcaption{color:#fff;opacity:0;background:linear-gradient(#0000,#000c);width:100%;padding:16px;font-size:.875rem;transition:opacity .3s;position:absolute;bottom:0;left:0}.gallery-item:hover figcaption{opacity:1}.gallery-lg{grid-area:span 2/span 2}.gallery-wide{aspect-ratio:2;grid-column:span 2}.section-news{background-color:var(--color-primary);color:#fff}.section-news .eyebrow{color:var(--color-accent)}.news-list{flex-direction:column;gap:24px;max-width:800px;margin:0 auto;display:flex}.news-list li{color:var(--color-text);background:#fff;border-radius:16px;align-items:center;gap:24px;padding:24px;display:flex;box-shadow:0 4px 20px #0000000d}.news-thumb{object-fit:cover;border-radius:12px;flex-shrink:0;width:100px;min-width:100px;height:100px;min-height:100px}.news-cat{border-radius:4px;padding:4px 12px;font-size:.75rem;font-weight:700}.cat-event{color:#0284c7;background:#e0f2fe}.cat-news{color:#d97706;background:#fef3c7}.cat-press{color:#db2777;background:#fce7f3}.section-contact{background-color:#fff}.contact-grid{background:#fff;border-radius:32px;grid-template-columns:1fr 1fr;gap:64px;padding:64px;display:grid;box-shadow:0 20px 60px #0000000d}.contact-info dl{flex-direction:column;gap:24px;display:flex}.contact-info dt{color:var(--color-primary);margin-bottom:8px;font-weight:700}.contact-info dd{color:var(--color-text-light)}.field{margin-bottom:24px}.field label{align-items:center;gap:8px;margin-bottom:8px;font-weight:700;display:flex}.field label span{background:var(--color-accent);color:#fff;border-radius:4px;padding:2px 8px;font-size:.75rem}.field input,.field textarea{border:2px solid #c0c4cc;border-radius:8px;width:100%;padding:16px;font-family:inherit;transition:border-color .3s}.field input:focus,.field textarea:focus{border-color:var(--color-primary);outline:none}.field input:-webkit-autofill{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--color-text)!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}.field input:-webkit-autofill:hover{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--color-text)!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}.field input:-webkit-autofill:focus{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--color-text)!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}.field input:-webkit-autofill:active{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--color-text)!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}.field textarea:-webkit-autofill{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--color-text)!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}.field textarea:-webkit-autofill:hover{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--color-text)!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}.field textarea:-webkit-autofill:focus{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--color-text)!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}.field textarea:-webkit-autofill:active{transition:background-color 5000s ease-in-out;-webkit-text-fill-color:var(--color-text)!important;-webkit-box-shadow:inset 0 0 0 1000px #fff!important}.site-footer{background:var(--color-primary);color:#fff;padding:80px 0 40px}.footer-inner{text-align:center;flex-direction:column;align-items:center;gap:48px;display:flex}.footer-brand{flex-direction:column;align-items:center;gap:16px;display:flex}.footer-name{font-family:var(--font-heading);letter-spacing:.2em;font-size:1.5rem;font-weight:800}.footer-tag{color:#ffffffb3;font-family:var(--font-heading);letter-spacing:.35em;font-size:.8rem;font-weight:600}.footer-nav{flex-wrap:wrap;justify-content:center;gap:32px;display:flex}.footer-nav a{color:#fffc}.footer-nav a:hover{color:#fff}.footer-copy{color:#ffffff80;font-size:.875rem}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;background:#000f1eb3;justify-content:center;align-items:center;width:100vw;height:100vh;padding:24px;display:flex;position:fixed;top:0;left:0}.modal-content{background:var(--color-bg);width:100%;max-width:800px;max-height:80vh;color:var(--color-text);border-radius:24px;flex-direction:column;display:flex;position:relative;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header{border-bottom:1px solid var(--color-gray);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#fffffff2;justify-content:space-between;align-items:center;padding:24px 32px;display:flex;position:sticky;top:0}.modal-title{color:var(--color-primary);margin:0;font-size:1.25rem;font-weight:800}.modal-close{cursor:pointer;color:var(--color-text-light);transition:color var(--transition-normal);background:0 0;border:none;font-size:2rem;line-height:1}.modal-close:hover{color:var(--color-accent)}.modal-body{padding:32px}.modal-body .news-list{box-shadow:none;max-width:100%}.modal-body .news-list li{box-shadow:none;border:1px solid var(--color-gray);margin-bottom:0}@media (width<=992px){.hero-inner,.grid-2,.activity-grid,.contact-grid,.photo-band,.mission-grid{grid-template-columns:1fr}.bridge-wrap{flex-direction:column}.bridge-line{transform:rotate(90deg)}.gallery-grid{grid-template-columns:repeat(2,1fr)}.gallery-lg{grid-area:span 1/span 1}.gallery-wide{aspect-ratio:1;grid-column:span 1}.hero-content h1{font-size:2.2rem}.hero-content h1 span{font-size:1.25rem}h2{font-size:2rem}.section{padding:60px 0}.contact-grid{gap:40px;padding:32px 20px}.hero{min-height:auto;padding:120px 0 60px}.primary-nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--color-gray);background:#fffffffa;width:100%;padding:24px;display:none;position:absolute;top:100%;left:0;box-shadow:0 10px 20px #0000001a}.primary-nav ul{flex-direction:column;align-items:flex-start;gap:32px}.primary-nav a{padding:4px 0;font-size:.85rem;display:inline-block}.primary-nav .nav-cta{padding:10px 20px;font-size:.85rem}.news-list li{flex-direction:column;align-items:flex-start;gap:12px;padding:16px}.nav-toggle{cursor:pointer;background:0 0;border:none;width:32px;height:24px;display:block;position:relative}.nav-toggle span{background:var(--color-primary);width:100%;height:2px;display:block;position:absolute;left:0}.nav-toggle span:first-child{top:0}.nav-toggle span:nth-child(2){top:11px}.nav-toggle span:nth-child(3){top:22px}}.toast-container{z-index:9999;flex-direction:column;gap:12px;display:flex;position:fixed;bottom:24px;right:24px}.toast{color:var(--color-text);border-left:4px solid var(--color-primary);background:#fff;border-radius:12px;align-items:center;gap:12px;padding:16px 24px;font-weight:700;display:flex;box-shadow:0 10px 40px #00000026}.toast.toast-error{border-left-color:var(--color-accent)}.global-loader{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:9999;background:#ffffffb3;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.spinner{border:4px solid var(--color-gray);border-top-color:var(--color-primary);border-radius:50%;width:48px;height:48px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
