
@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800;900&family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');
:root{--bg:#0c1424;--ink:#142036;--red:#ea3c4d;--red2:#c72943;--line:#dce2e9;--gray:#697789;--paper:#f5f7f9;--font:'Noto Sans JP',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font);color:var(--ink);background:white}button,input,textarea,select{font:inherit}button{cursor:pointer}img{max-width:100%}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #4a9cf7;outline-offset:3px}.hidden{display:none!important}.eyebrow{font:800 14px 'Barlow Condensed',sans-serif;letter-spacing:.28em;text-transform:uppercase;color:var(--red)}.section-heading{font:900 clamp(44px,7vw,92px)/.96 'Barlow Condensed',sans-serif;letter-spacing:.015em;margin:10px 0 23px;text-transform:uppercase}.section-desc{color:#627082;line-height:2}.shell{width:min(1170px,calc(100% - 48px));margin:auto}.site-header{height:83px;background:#101a2b;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,65px);position:relative;z-index:3}.brand{display:flex;align-items:center;gap:12px}.brand-mark{height:38px;width:38px;border:4px solid var(--red);transform:skew(-15deg);display:grid;place-items:center;color:white;font:900 20px 'Barlow Condensed'}.brand-text{font:800 24px 'Barlow Condensed';letter-spacing:.07em}.brand-sub{font-size:9px;letter-spacing:.16em;color:#afbdcc;margin-top:2px}.header-links{display:flex;align-items:center;gap:28px;font-size:12px;font-weight:700;letter-spacing:.08em}.header-links a:hover{color:#ff8c97}.header-btn{border:1px solid #66778d;color:white;padding:10px 18px;border-radius:2px;background:transparent}.site-footer{background:#101a2b;color:#cbd4de;padding:50px 0;font-size:12px}.site-footer strong{font:800 27px 'Barlow Condensed'}.hero{min-height:min(790px,85vh);position:relative;display:flex;align-items:flex-end;color:white;background:linear-gradient(100deg,rgba(6,14,27,.84),rgba(6,14,27,.08)),linear-gradient(#2228,#2228),url('https://images.unsplash.com/photo-1522778119026-d647f0596c20?auto=format&fit=crop&w=1800&q=80') center/cover no-repeat}.hero.has-custom{background-image:linear-gradient(100deg,rgba(6,14,27,.85),rgba(6,14,27,.08)),var(--hero-image)}.hero-content{position:relative;z-index:1;padding:75px 0 95px}.hero-label{font:700 17px 'Barlow Condensed';letter-spacing:.36em;color:#f0a6ad}.hero-title{font:900 clamp(68px,11vw,178px)/.83 'Barlow Condensed';letter-spacing:-.012em;max-width:1030px;margin:25px 0 22px;overflow-wrap:anywhere;text-transform:uppercase}.hero-jp{font-weight:800;font-size:clamp(18px,2.4vw,30px);letter-spacing:.14em}.hero-foot{margin-top:44px;display:flex;align-items:center;gap:20px;font:700 12px 'Barlow Condensed';letter-spacing:.19em}.rule{height:1px;background:#c3c6ce;opacity:.7;width:90px}.hero-decor{position:absolute;right:3%;top:16%;font:900 clamp(130px,30vw,500px) 'Barlow Condensed';opacity:.085;pointer-events:none}.section{padding:95px 0 105px}.section-alt{background:var(--paper)}.two-col{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:6vw}.about-photo{width:100%;aspect-ratio:6/5;object-fit:cover;box-shadow:25px 25px 0 #e5e9ef}.body-copy{line-height:2.25;font-size:15px;white-space:pre-line}.content-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:33px}.content-card{background:#151f31;color:white;min-height:165px;padding:27px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;transition:transform .18s,background .18s}.content-card:after{content:'↗';font-size:23px;position:absolute;right:23px;bottom:22px;color:var(--red)}.content-card:hover{background:#28374d;transform:translateY(-3px)}.content-en{font:800 26px 'Barlow Condensed';letter-spacing:.07em}.content-jp{color:#c1cad6;font-size:12px}.accent-line{height:5px;background:var(--red);width:60px;margin:20px 0}.detail-box{background:white;padding:35px;border:1px solid var(--line);border-left:5px solid var(--red);line-height:2}.data-grid{display:grid;grid-template-columns:140px 1fr;gap:0;margin:20px 0}.data-grid>*{padding:16px;border-bottom:1px solid var(--line);font-size:14px}.data-grid dt{font-weight:700;background:#f2f5f8}.data-grid dd{margin:0}.photo-wide{width:100%;max-height:430px;object-fit:cover;margin:24px 0}.cta{display:inline-flex;align-items:center;gap:32px;padding:15px 26px;background:var(--red);color:white;font-weight:700;font-size:13px;border:0;margin-top:20px}.cta:hover{background:var(--red2)}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.step{background:white;border-top:5px solid var(--red);padding:25px;min-height:205px}.step .num{font:900 42px 'Barlow Condensed';color:#b8c3cf}.step strong{display:block;margin:7px 0 12px}.step p{font-size:12px;color:#5d6b7d;line-height:1.9}.member-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.member{background:white;padding:25px;border:1px solid var(--line)}.member small{font-weight:700;color:var(--red)}.member strong{display:block;font-size:22px;margin:7px 0}.member p{font-size:13px;line-height:1.9;color:var(--gray);white-space:pre-line}.policy-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.policy-item img{aspect-ratio:16/10;object-fit:cover;width:100%}.policy-item h3{font-size:23px;margin-bottom:4px}.policy-item small{color:var(--red);font-weight:700}.policy-item p{line-height:2;white-space:pre-line}.history-timeline{border-left:3px solid #dce2e9;margin-left:15px;padding-left:28px}.history-timeline article{margin:0 0 30px;position:relative}.history-timeline article:before{content:'';height:13px;width:13px;border-radius:50%;background:var(--red);position:absolute;left:-36px;top:7px}.history-year{color:var(--red);font:900 27px 'Barlow Condensed'}.history-story{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}.history-story article{background:#f4f6f8;padding:23px}.history-story img{aspect-ratio:16/9;object-fit:cover;width:100%}.partners{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.partner{border:1px solid var(--line);min-height:100px;display:flex;align-items:center;justify-content:center;padding:20px;font-weight:700;color:#66717c}.partner img{max-height:80px;object-fit:contain}.map-placeholder{border:1px dashed #b7c1cc;padding:42px;text-align:center;background:#eef2f5;color:#617083}.notice{border-left:4px solid var(--red);background:#f4f6f9;padding:15px 20px;color:#4b596d;font-size:13px;line-height:1.9}.toolbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;background:#071120;color:white;padding:11px 22px;gap:10px;box-shadow:0 3px 18px #0002}.toolbar-title{font:800 16px 'Barlow Condensed';letter-spacing:.11em}.toolbar small{color:#9ab0ca}.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.tb-btn{border:1px solid #465973;background:transparent;color:white;padding:9px 14px;border-radius:5px;font-size:12px;font-weight:700}.tb-btn.active,.tb-btn.primary{background:var(--red);border-color:var(--red)}.tb-btn:disabled{opacity:.5}.admin{background:#edf1f6;min-height:100vh;padding:35px 0 90px}.admin-wrap{width:min(1250px,calc(100% - 36px));margin:auto;display:grid;grid-template-columns:265px 1fr;gap:24px;align-items:start}.admin-nav{background:white;border-radius:12px;padding:20px;position:sticky;top:70px;box-shadow:0 3px 15px #10243d0b}.admin-nav h2{font-size:13px;letter-spacing:.08em;color:#667588;margin:0 0 18px}.navbtn{width:100%;border:0;background:transparent;padding:12px 13px;text-align:left;border-radius:7px;margin-bottom:3px;color:#536178;font-weight:700;font-size:13px}.navbtn.current{background:#fcebee;color:#bd253a}.admin-main{min-width:0}.admin-head{margin-bottom:24px}.admin-head h1{margin:0 0 7px;font-size:29px}.admin-head p{font-size:13px;color:#647287}.panel{background:white;border-radius:12px;padding:26px;margin-bottom:20px;box-shadow:0 3px 15px #10243d0b}.panel h2{font-size:19px;margin:0 0 8px}.panel-help{font-size:12px;color:#788597;line-height:1.9;margin:0 0 22px}.field{display:block;margin-bottom:16px}.field span{font-size:12px;font-weight:700;display:block;margin-bottom:7px}.field input,.field textarea,.field select{width:100%;padding:12px 13px;border:1px solid #cdd5df;border-radius:7px;background:white;font-size:14px;color:#233248}.field textarea{min-height:98px;resize:vertical}.field input[type=color]{height:48px;padding:4px}.field small{color:#8693a3}.fieldrow{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tog-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:13px 0;border-bottom:1px solid #edf0f3}.tog-row strong{font-size:13px}.tog-row small{display:block;color:#8290a2;margin-top:3px;font-size:11px}.toggle{appearance:none;height:24px;width:44px;border-radius:20px;position:relative;background:#bec7d2;cursor:pointer;flex:0 0 44px;transition:background .2s}.toggle:checked{background:var(--red)}.toggle:after{content:'';position:absolute;background:white;width:18px;height:18px;border-radius:50%;top:3px;left:3px;transition:transform .2s}.toggle:checked:after{transform:translateX(20px)}.adm-btn{background:#101b2b;color:white;border:0;border-radius:6px;padding:11px 16px;font-size:13px;font-weight:700}.adm-btn.alt{background:#fff;border:1px solid #cfd7e0;color:#36445a}.adm-btn.red{background:var(--red)}.adm-btn.small{padding:7px 12px;font-size:11px}.savebar{position:sticky;bottom:12px;z-index:5;background:#152338;color:white;padding:14px 19px;border-radius:10px;display:flex;justify-content:space-between;align-items:center;gap:14px;box-shadow:0 6px 30px #0003}.savebar small{color:#9caec3}.savebar-actions{display:flex;gap:8px;flex-wrap:wrap}.preview-bar{background:#f3e3c2;text-align:center;padding:10px;font-size:12px;color:#614514;font-weight:700}.template-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.template-option{border:2px solid #e0e5ed;border-radius:9px;padding:10px;cursor:pointer}.template-option.chosen{border-color:var(--red);background:#fff5f6}.template-swatch{height:90px;border-radius:5px;display:flex;align-items:flex-end;padding:12px;color:white;font:900 22px 'Barlow Condensed'}.template-option strong{display:block;font-size:12px;padding:10px 0 3px}.template-option small{font-size:11px;color:#6c7b8b}.mini-card{padding:18px;border:1px solid #e0e5ed;border-radius:8px;margin:12px 0;background:#fafbfd}.mini-card-top{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:12px}.mini-card-top strong{font-size:13px}.mini-card-actions{display:flex;gap:5px}.empty{padding:25px;text-align:center;color:#8391a2;border:1px dashed #c8d0dc;border-radius:7px}.toast{position:fixed;right:20px;bottom:20px;background:#10253b;color:white;padding:15px 20px;border-radius:8px;z-index:30;box-shadow:0 8px 25px #0004;font-size:13px}.theme-clean{--red:#1976a3;--red2:#155b7c;--bg:#eaf3f7}.theme-clean .hero{background-color:#1a6588}.theme-clean .site-header,.theme-clean .site-footer{background:#13506c}.theme-active{--red:#f06a2b;--red2:#d3511b}.theme-active .site-header,.theme-active .site-footer{background:#221821}.theme-active .content-card{background:#29202f}@media(max-width:900px){.two-col{grid-template-columns:1fr}.content-grid,.member-grid{grid-template-columns:repeat(2,1fr)}.steps,.partners{grid-template-columns:repeat(2,1fr)}.admin-wrap{grid-template-columns:1fr}.admin-nav{position:static;display:flex;flex-wrap:wrap;gap:4px}.admin-nav h2{width:100%}.navbtn{width:auto}.header-links a:not(.header-btn){display:none}}@media(max-width:580px){.shell{width:calc(100% - 34px)}.site-header{height:68px;padding:0 17px}.brand-text{font-size:18px}.brand-mark{height:31px;width:31px;font-size:16px}.header-btn{padding:9px;font-size:10px}.hero{min-height:590px}.hero-content{padding:50px 0 65px}.hero-title{font-size:clamp(57px,15vw,94px)}.section{padding:65px 0}.section-heading{font-size:52px}.content-grid,.member-grid,.policy-grid,.history-story{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}.step{padding:15px;min-height:185px}.partners{grid-template-columns:1fr 1fr}.panel{padding:18px}.fieldrow,.template-cards{grid-template-columns:1fr}.admin-nav{padding:14px}.toolbar{padding:10px;flex-wrap:wrap}.toolbar-title{font-size:13px}.toolbar-actions{gap:5px}.tb-btn{padding:7px 10px}.savebar{flex-direction:column;align-items:stretch}.savebar-actions>*{flex:1}.about-photo{box-shadow:12px 12px 0 #e5e9ef}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Ver.0.3: 管理画面レイアウト強化。全スタイルはCSSで管理 */
.accent-dot{color:var(--red)}
.tog-actions{display:flex;align-items:center;gap:7px}
.template-note{margin-top:15px}
.savebar .savebar-light{color:#1c293c}
.swatch-impact{background:linear-gradient(140deg,#0f1b2a,#8f223e)}
.swatch-clean{background:linear-gradient(140deg,#1c648c,#97cddc)}
.swatch-active{background:linear-gradient(140deg,#271827,#fa813c)}
.admin{min-height:calc(100vh - 60px);padding:28px 0 90px}
.admin-wrap{width:min(1740px,calc(100% - 48px));grid-template-columns:282px minmax(0,1fr);gap:28px}
.admin-nav{position:sticky;top:74px;border-radius:14px;padding:22px}
.admin-main{width:100%;max-width:none}
.admin-head{margin:3px 0 22px}
.admin-head h1{font-size:clamp(26px,2.2vw,35px)}
.panel{padding:clamp(22px,2.5vw,38px);border-radius:14px}
.field input,.field textarea,.field select{min-height:46px}
.field textarea{min-height:126px}
.template-option{transition:box-shadow .2s,border-color .2s,transform .2s}
.template-option:hover{box-shadow:0 5px 22px #10243d17;transform:translateY(-1px)}
.savebar{bottom:14px;border-radius:12px}
.hero{background-image:none!important;background:#0f1b2b;isolation:isolate;overflow:hidden}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:-2}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(6,14,27,.83),rgba(6,14,27,.16));z-index:-1}
@media(max-width:1050px){.admin-wrap{width:calc(100% - 32px);grid-template-columns:230px minmax(0,1fr);gap:16px}}
@media(max-width:800px){.admin-wrap{grid-template-columns:1fr}.admin-nav{position:static;display:flex;flex-wrap:wrap;gap:4px}.admin-nav h2{width:100%}.navbtn{width:auto}}
@media(max-width:580px){.admin-wrap{width:calc(100% - 22px)}.admin{padding:14px 0 76px}.admin-nav{padding:12px}.panel{padding:18px}.savebar{bottom:8px}}

/* Ver.0.3.1: admin logout control */
.logout-form{display:inline-flex;margin:0}.logout-btn{border-color:#7f5361;color:#fff}.logout-btn:hover{background:#a92c42;border-color:#a92c42}

/* v0.4: externally managed editor and template previews */
.admin-nav{max-height:calc(100vh - 96px);overflow-y:auto;scrollbar-width:thin}
.template-option{display:block;width:100%;text-align:left;background:white;color:#18243b}
.template-demo{height:148px;border-radius:6px;padding:13px;color:white;display:flex;flex-direction:column;gap:9px;background:linear-gradient(120deg,#0d1728 15%,#722943 100%);overflow:hidden}
.template-demo-clean{background:linear-gradient(120deg,#ebf8fd,#65a7c5);color:#17425b}
.template-demo-active{background:linear-gradient(120deg,#1f1a30,#f48438)}
.template-demo-head{font-size:9px;font-weight:800;letter-spacing:.09em}
.template-demo-title{font:900 27px 'Barlow Condensed',sans-serif;letter-spacing:.035em;margin-top:8px}
.template-demo-line{width:42px;height:3px;background:currentColor;opacity:.75}
.template-demo-card{margin-top:auto;font-size:9px;letter-spacing:.07em;opacity:.9}
.image-upload{border:1px solid #dce4ed;background:#f9fbfd;border-radius:9px;padding:13px;margin:-4px 0 20px}
.image-preview{height:130px;border-radius:6px;background:#e9eef4;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#718296;font-size:12px}
.image-preview img{height:100%;width:100%;object-fit:cover}
.upload-action{margin-top:12px;display:block;cursor:pointer;color:#1c5a8b;font-size:13px;font-weight:700}
.upload-action input{display:block;width:100%;margin-top:7px;font-size:12px}
.upload-status{min-height:16px;margin-top:6px;color:#9d3445;font-size:12px}
@media(max-width:800px){.admin-nav{max-height:none;overflow:visible}}

/* JA header v0.6.6 */
.site-header {
    position: sticky !important;
    top: 0;
    z-index: 1000;
    min-height: 83px;
    height: auto;
    gap: 20px;
}

.site-header .brand {
    flex: 0 0 auto;
}

.site-header .ja-header-logo {
    display: block;
    width: clamp(135px, 13vw, 190px);
    height: auto;
    max-height: 64px;
    object-fit: contain;
}

.site-header .header-links {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: clamp(10px, 1.2vw, 22px);
    flex: 1 1 auto;
    min-width: 0;
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none;
}

.site-header .header-links::-webkit-scrollbar {
    display: none;
}

@media (max-width: 760px) {
    .site-header {
        flex-wrap: wrap;
        justify-content: center;
        padding: 12px 16px;
        gap: 10px;
    }

    .site-header .ja-header-logo {
        width: 150px;
    }

    .site-header .header-links {
        display: flex !important;
        flex-basis: 100%;
        justify-content: flex-start;
        padding-bottom: 4px;
    }
}

/* JA header transparency v0.6.6.1 */
.site-header {
    background: rgba(16, 26, 43, 0.78) !important;
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(12px);
}

.site-header .ja-header-logo {
    object-fit: contain;
}

/* JA mobile header v0.6.6.2 */
.ja-mobile-menu-toggle {
    display: none;
}

@media (max-width: 760px) {
    .site-header {
        height: 68px !important;
        min-height: 68px !important;
        padding: 0 18px !important;
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 12px !important;
        position: sticky !important;
        top: 0;
        z-index: 1000;
    }

    .site-header .brand {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        min-width: 0;
        flex: 0 1 auto;
    }

    .site-header .ja-header-logo {
        width: 150px !important;
        height: auto !important;
        max-height: 48px !important;
        object-fit: contain;
    }

    .ja-mobile-menu-toggle {
        display: flex;
        flex: 0 0 42px;
        width: 42px;
        height: 42px;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 5px;
        border: 1px solid rgba(255,255,255,.28);
        border-radius: 6px;
        background: rgba(255,255,255,.07);
        cursor: pointer;
        color: white;
    }

    .ja-mobile-menu-toggle span {
        width: 21px;
        height: 2px;
        background: currentColor;
        border-radius: 2px;
        transition: transform .22s ease, opacity .22s ease;
    }

    .site-header.ja-menu-open .ja-mobile-menu-toggle span:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .site-header.ja-menu-open .ja-mobile-menu-toggle span:nth-child(2) {
        opacity: 0;
    }

    .site-header.ja-menu-open .ja-mobile-menu-toggle span:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    .site-header .header-links {
        display: none !important;
        position: absolute !important;
        top: 100%;
        left: 0;
        right: 0;
        width: 100%;
        max-height: calc(100dvh - 68px);
        overflow-y: auto;
        overflow-x: hidden;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0 !important;
        padding: 8px 18px 14px !important;
        background: rgba(16,26,43,.97);
        -webkit-backdrop-filter: blur(14px);
        backdrop-filter: blur(14px);
        box-shadow: 0 12px 24px rgba(0,0,0,.18);
        white-space: normal;
    }

    .site-header.ja-menu-open .header-links {
        display: flex !important;
    }

    .site-header .header-links a {
        display: block;
        width: 100%;
        padding: 13px 10px;
        border-bottom: 1px solid rgba(255,255,255,.12);
        color: white;
        text-decoration: none;
    }

    .ja-mobile-menu-toggle:focus-visible,
    .site-header .header-links a:focus-visible {
        outline: 2px solid white;
        outline-offset: 3px;
    }
}

/* JA HERO auto-fit v0.6.7 */
.hero .hero-title,
.hero .hero-jp {
    box-sizing: border-box;
    max-width: 100%;
    overflow-wrap: normal;
    word-break: normal;
}

.hero .hero-title {
    text-wrap: balance;
}

@media (max-width: 760px) {
    .hero .hero-content {
        min-width: 0;
        max-width: 100%;
    }
}
