:root{
  --1sd-navy:#0f2a47;
  --1sd-navy-dark:#081a2f;
  --1sd-gold:#c8a45c;
  --1sd-gold-light:#e6c78a;
  --1sd-bg:#f7f4ee;
  --1sd-cream:#faf7f0;
  --1sd-text:#1f2937;
  --1sd-muted:#6b7280;
  --1sd-border:#e5e7eb;
  --1sd-accent:#2b4c7e;
  --1sd-shadow:0 4px 24px rgba(15,42,71,.08);
  --1sd-shadow-hover:0 8px 32px rgba(15,42,71,.14);
}

body{background:var(--1sd-bg);color:var(--1sd-text);font-family:"Noto Sans JP","Inter",-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.8;}
main{overflow-x:hidden;}

h1,h2,h3,h4{font-weight:700;color:var(--1sd-navy);letter-spacing:.01em;}
h2{font-size:1.75rem;margin-bottom:1rem;position:relative;padding-bottom:.6rem;}
h2::after{content:"";position:absolute;left:50%;bottom:0;width:40px;height:3px;background:var(--1sd-gold);transform:translateX(-50%);border-radius:2px;}
h2.text-start::after{left:0;transform:none;}
h3{font-size:1.2rem;color:var(--1sd-accent);}

.noto-sans-jp{font-family:"Noto Sans JP",sans-serif;}
.serif-en{font-family:"Cormorant Garamond",serif;}

.hero-full{position:relative;min-height:60vh;display:flex;align-items:center;color:#fff;background-size:cover;background-position:center;overflow:hidden;}
.hero-full::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(15,42,71,.82) 0%,rgba(15,42,71,.5) 100%);}
.hero-full>.container{position:relative;z-index:2;padding:5rem 1rem;}
.hero-full h1{color:#fff;font-size:2.4rem;line-height:1.4;text-shadow:0 2px 12px rgba(0,0,0,.25);}
.hero-full p.lead{color:#f0e9d9;font-size:1.1rem;max-width:720px;margin-top:1.2rem;}
.hero-full .badge-topic{display:inline-block;background:var(--1sd-gold);color:var(--1sd-navy-dark);padding:.3rem .9rem;border-radius:999px;font-weight:700;font-size:.85rem;letter-spacing:.05em;margin-bottom:1rem;}

.hero-sub{min-height:40vh;}
.hero-sub h1{font-size:2rem;}

.sectionBox{padding:3rem 0;}
.sectionBox h2{margin-bottom:2rem;}

.stat-card{background:#fff;border-radius:16px;padding:1.6rem 1.2rem;text-align:center;box-shadow:var(--1sd-shadow);height:100%;transition:transform .3s,box-shadow .3s;}
.stat-card:hover{transform:translateY(-4px);box-shadow:var(--1sd-shadow-hover);}
.stat-card .stat-num{font-size:2.4rem;font-weight:800;color:var(--1sd-gold);line-height:1;}
.stat-card .stat-label{font-size:.85rem;color:var(--1sd-muted);margin-top:.4rem;}
.stat-card .stat-icon{font-size:2rem;color:var(--1sd-accent);margin-bottom:.6rem;}

.feature-card{background:#fff;border-radius:16px;padding:1.8rem;box-shadow:var(--1sd-shadow);height:100%;transition:transform .3s,box-shadow .3s;border-top:4px solid var(--1sd-gold);}
.feature-card:hover{transform:translateY(-4px);box-shadow:var(--1sd-shadow-hover);}
.feature-card .feature-icon{font-size:2.2rem;color:var(--1sd-accent);margin-bottom:1rem;}
.feature-card h3{font-size:1.1rem;margin-bottom:.8rem;color:var(--1sd-navy);}
.feature-card p{font-size:.93rem;color:var(--1sd-muted);line-height:1.7;}

.step-card{position:relative;background:#fff;border-radius:16px;padding:2rem 1.5rem 1.5rem;box-shadow:var(--1sd-shadow);height:100%;}
.step-card .step-num{position:absolute;top:-18px;left:20px;background:var(--1sd-gold);color:var(--1sd-navy-dark);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.1rem;box-shadow:0 4px 12px rgba(200,164,92,.4);}
.step-card h4{margin-top:.5rem;color:var(--1sd-navy);}

.callout{background:var(--1sd-cream);border-left:4px solid var(--1sd-gold);padding:1.2rem 1.4rem;border-radius:8px;margin:1.5rem 0;}
.callout-icon{color:var(--1sd-gold);margin-right:.5rem;}
.callout h4{color:var(--1sd-navy);margin-bottom:.5rem;font-size:1rem;}
.callout.callout-patient{background:#fdf3f3;border-left-color:#d14343;}
.callout.callout-patient h4{color:#a83030;}

.member-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--1sd-shadow);height:100%;transition:transform .3s;}
.member-card:hover{transform:translateY(-3px);}
.member-card img{width:100%;aspect-ratio:1/1;object-fit:cover;}
.member-card .member-body{padding:1.2rem;}
.member-card .member-role{display:inline-block;background:var(--1sd-navy);color:#fff;font-size:.72rem;padding:.15rem .6rem;border-radius:4px;margin-bottom:.5rem;letter-spacing:.05em;}
.member-card .member-name{font-weight:700;color:var(--1sd-navy);font-size:1.05rem;margin-bottom:.3rem;}
.member-card .member-desc{font-size:.82rem;color:var(--1sd-muted);line-height:1.6;}

.fact-table{background:#fff;border-radius:12px;overflow:hidden;box-shadow:var(--1sd-shadow);margin-bottom:1.5rem;}
.fact-table table{margin:0;}
.fact-table th{background:var(--1sd-navy);color:#fff;font-weight:600;padding:.9rem 1rem;font-size:.9rem;}
.fact-table td{padding:.9rem 1rem;vertical-align:middle;border-color:var(--1sd-border);}
.fact-table tr:last-child td{border-bottom:0;}

.comparison-table th.jp{background:#c83a3a;}
.comparison-table th.nl{background:#c88a00;}

.bar-chart{margin:1rem 0;}
.bar-row{display:flex;align-items:center;margin-bottom:.8rem;gap:.8rem;}
.bar-row .bar-label{flex:0 0 140px;font-size:.9rem;color:var(--1sd-text);}
.bar-row .bar-track{flex:1;background:#eee;border-radius:6px;overflow:hidden;height:20px;}
.bar-row .bar-fill{height:100%;background:linear-gradient(90deg,var(--1sd-gold) 0%,var(--1sd-gold-light) 100%);display:flex;align-items:center;justify-content:flex-end;padding-right:.6rem;color:var(--1sd-navy-dark);font-size:.78rem;font-weight:600;}

.checklist-box{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:var(--1sd-shadow);margin-bottom:1rem;}
.checklist-box h3{display:flex;align-items:center;gap:.6rem;color:var(--1sd-navy);margin-bottom:1rem;}
.checklist-box h3 .phase-badge{background:var(--1sd-gold);color:var(--1sd-navy-dark);font-size:.7rem;padding:.2rem .6rem;border-radius:6px;}
.checklist-box .form-check{padding:.5rem 0;margin-bottom:0;border-bottom:1px dashed var(--1sd-border);}
.checklist-box .form-check:last-child{border-bottom:0;}
.checklist-box .form-check-input{margin-top:.3rem;}

.country-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:var(--1sd-shadow);height:100%;transition:transform .3s,box-shadow .3s;}
.country-card:hover{transform:translateY(-4px);box-shadow:var(--1sd-shadow-hover);}
.country-card .country-img{height:180px;background-size:cover;background-position:center;}
.country-card .country-body{padding:1.2rem;}
.country-card .country-flag{font-size:1.8rem;}

.timeline{position:relative;padding-left:2rem;margin:2rem 0;}
.timeline::before{content:"";position:absolute;left:8px;top:0;bottom:0;width:2px;background:var(--1sd-gold);}
.timeline-item{position:relative;padding-bottom:1.5rem;}
.timeline-item::before{content:"";position:absolute;left:-26px;top:6px;width:16px;height:16px;background:var(--1sd-gold);border-radius:50%;box-shadow:0 0 0 4px var(--1sd-bg);}
.timeline-item .year{font-weight:700;color:var(--1sd-accent);font-size:.85rem;letter-spacing:.05em;}
.timeline-item p{margin:.3rem 0 0;font-size:.95rem;}

.founder-message{background:#fff;border-radius:16px;padding:2rem;box-shadow:var(--1sd-shadow);position:relative;margin:2rem 0;}
.founder-message::before{content:"\201C";position:absolute;top:-10px;left:20px;font-size:5rem;color:var(--1sd-gold);font-family:serif;line-height:1;opacity:.3;}
.founder-message .founder-sig{display:flex;align-items:center;gap:1rem;margin-top:1.5rem;border-top:1px solid var(--1sd-border);padding-top:1rem;}
.founder-message .founder-sig img{width:60px;height:60px;border-radius:50%;object-fit:cover;}

.resource-card{background:#fff;border-radius:12px;padding:1.2rem;box-shadow:var(--1sd-shadow);height:100%;transition:box-shadow .3s;}
.resource-card:hover{box-shadow:var(--1sd-shadow-hover);}
.resource-card h4{font-size:1rem;margin-bottom:.3rem;color:var(--1sd-navy);}
.resource-card .resource-url{font-size:.78rem;color:var(--1sd-muted);word-break:break-all;}
.resource-card p{font-size:.88rem;color:var(--1sd-muted);line-height:1.6;margin:.6rem 0 0;}

.badge-npo{display:inline-block;background:var(--1sd-navy);color:#fff;padding:.25rem .7rem;border-radius:4px;font-size:.75rem;letter-spacing:.05em;}

.partner-logo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;}
.partner-logo-grid .partner-cell{background:#fff;border-radius:8px;padding:1.2rem;text-align:center;box-shadow:var(--1sd-shadow);display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--1sd-navy);min-height:90px;}

.accordion-button{background:#fff;font-weight:600;color:var(--1sd-navy);}
.accordion-button:not(.collapsed){background:var(--1sd-cream);color:var(--1sd-navy);}
.accordion-button:focus{box-shadow:0 0 0 .25rem rgba(200,164,92,.25);}

.custom-nav-links a{color:var(--1sd-navy);}

@media (min-width:768px){.hero-full h1{font-size:3rem;}.hero-full>.container{padding:7rem 1rem;}}

footer.footer_wrap{background:var(--1sd-navy-dark)!important;}
.footer_nav a{color:#c8d3e4!important;}
.footer_nav a:hover{color:var(--1sd-gold)!important;}

.site_header{background:#fff;box-shadow:0 2px 8px rgba(15,42,71,.06);}
.site-header_logo a{color:var(--1sd-navy);font-weight:700;text-decoration:none;}

.site-logo-rich a{display:inline-flex;align-items:center;gap:.7rem;line-height:1;}
.site-logo-rich .logo-mark{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;flex-shrink:0;filter:drop-shadow(0 4px 10px rgba(15,42,71,.2));}
.site-logo-rich .logo-mark svg{width:100%;height:100%;}
.site-logo-rich .logo-text{display:flex;flex-direction:column;gap:2px;}
.site-logo-rich .logo-en{font-family:"Inter","Cormorant Garamond",serif;font-weight:700;font-size:1rem;letter-spacing:.02em;color:var(--1sd-navy);}
.site-logo-rich .logo-ja{font-family:"Noto Sans JP",sans-serif;font-size:.68rem;font-weight:500;color:var(--1sd-muted);letter-spacing:.18em;}
.site-logo-rich a:hover .logo-mark{transform:rotate(-8deg) scale(1.05);transition:transform .3s;}
.site-logo-rich .logo-mark{transition:transform .3s;}
@media (max-width:480px){.site-logo-rich .logo-ja{font-size:.62rem;letter-spacing:.12em;}.site-logo-rich .logo-mark{width:40px;height:40px;}}

.btn-gold{background:var(--1sd-gold);color:var(--1sd-navy-dark);border:0;font-weight:600;padding:.7rem 1.6rem;border-radius:8px;transition:all .2s;}
.btn-gold:hover{background:var(--1sd-gold-light);transform:translateY(-2px);box-shadow:0 6px 16px rgba(200,164,92,.35);color:var(--1sd-navy-dark);}
.btn-outline-navy{border:2px solid var(--1sd-navy);color:var(--1sd-navy);padding:.6rem 1.4rem;border-radius:8px;font-weight:600;transition:all .2s;background:transparent;}
.btn-outline-navy:hover{background:var(--1sd-navy);color:#fff;}

/* fade in on scroll - simple */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease;}
.reveal.visible{opacity:1;transform:none;}
