/* 一般社団法人AI地域共創協会 — 共通スタイル（Draft 05） */
:root{
  --ink:#111111; --text:#2F2F2F; --muted:#6B6B6B; --faint:#B5B3AD; --rule:#DCDAD4;
  --paper:#FFFFFF; --stone:#F4F3EF; --ai:#165E83; --ai-d:#0F4C6B;
  --serif:"Shippori Mincho","Noto Serif JP",serif;
  --sans:"Noto Sans JP",system-ui,sans-serif;
  --en-serif:"Source Serif 4",Georgia,serif;
  --w:1200px; --g:56px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-size:16px;line-height:1.9;color:var(--text);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
p,h1,h2,h3,dd,li,td,th,blockquote,figcaption{word-break:auto-phrase;line-break:strict;text-spacing-trim:trim-start}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

/* language */
body.lang-ja .en,body.lang-en .ja{display:none!important}
body.lang-en .ja-only{display:none!important}
body.lang-ja .en-only{display:none!important}

.wrap{max-width:calc(var(--w) + var(--g)*2);margin:0 auto;padding:0 var(--g)}
.serif{font-family:var(--serif);font-weight:600;font-feature-settings:"palt" 1;letter-spacing:.04em;color:var(--ink)}
body.lang-en .serif{font-family:var(--en-serif);font-feature-settings:normal;letter-spacing:-.01em;font-weight:500}
.nb{white-space:nowrap}

/* links & buttons */
.tl{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;font-size:15px;font-weight:500}
.tl:hover{color:var(--ai)}
.btn{display:inline-flex;align-items:center;height:50px;padding:0 30px;background:var(--ink);color:#fff;font-size:15px;font-weight:500;letter-spacing:.04em;border:1px solid var(--ink);transition:background .15s,border-color .15s}
.btn:hover{background:var(--ai);border-color:var(--ai)}
.btn.line{background:transparent;color:var(--ink)}
.btn.line:hover{background:var(--ink);color:#fff}
body.lang-en .btn{letter-spacing:0}

/* header */
.hd{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.97);border-bottom:1px solid var(--rule)}
.hd>.wrap{display:flex;align-items:center;justify-content:space-between;height:76px}
.logo{display:flex;flex-direction:column;line-height:1.25}
.logo small{font-size:11px;letter-spacing:.24em;color:var(--muted)}
.logo b{font-family:var(--serif);font-weight:700;font-size:21px;letter-spacing:.06em;color:var(--ink);font-feature-settings:"palt" 1}
body.lang-en .logo small{letter-spacing:.04em}
body.lang-en .logo b{font-family:var(--en-serif);font-weight:600;font-size:18px;letter-spacing:-.005em}
.nav{display:flex;align-items:center;gap:40px;flex:none;margin-left:16px}
.nav .links{display:flex;gap:34px;font-size:14px;color:var(--ink)}
.nav .links a:hover{color:var(--ai)}
.nav .links a.cur{text-decoration:underline;text-underline-offset:6px}
.lang{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);padding-left:32px;border-left:1px solid var(--rule);height:22px;white-space:nowrap;flex:none}
.lang a{padding:2px 0}
.lang a.on{color:var(--ink);font-weight:500;text-decoration:underline;text-underline-offset:5px}
.lang .off{color:var(--faint);cursor:default}
.menu{display:none;font-size:14px;color:var(--ink);border-bottom:1px solid var(--ink);line-height:1.6;padding:0}
.mnav{display:none;border-top:1px solid var(--rule);background:#fff}
.mnav a{display:block;padding:15px 0;border-bottom:1px solid var(--rule);font-size:15px;color:var(--ink)}
.mnav a:last-child{border-bottom:0}
.hd.open .mnav{display:block}

/* "Japanese only" notice for visitors who chose English */
.langnote{display:none;background:var(--stone);border-bottom:1px solid var(--rule);font-size:13px;color:var(--ink)}
.langnote .wrap{padding-top:10px;padding-bottom:10px}
body.want-en .langnote{display:block}

/* sample notice */
.sample{background:var(--stone);border-bottom:1px solid var(--rule);font-size:13px;color:var(--muted)}
.sample .wrap{padding-top:10px;padding-bottom:10px}

/* category tag & dates */
.cat{display:inline-block;font-size:12px;color:var(--ink);border:1px solid var(--rule);padding:1px 10px;line-height:1.9;white-space:nowrap}
time{font-variant-numeric:tabular-nums}

/* section grid: label column + content */
.sec{padding:112px 0}
.sec+.sec:not(.stone){padding-top:24px}
.sec.stone{background:var(--stone)}
.sg{display:grid;grid-template-columns:3fr 9fr;gap:var(--g)}
.sg .lab h2{font-size:26px;line-height:1.5}
.sg .lab p{font-size:14px;color:var(--muted);margin-top:14px;line-height:1.9;max-width:14em}
body.lang-en .sg .lab p{line-height:1.6}
.sg .lab .tl{display:inline-block;margin-top:22px;font-size:14px}

/* news rows (home and list page) */
.news li a{display:grid;grid-template-columns:132px 96px 1fr;gap:24px;align-items:baseline;padding:24px 0;border-top:1px solid var(--rule)}
.news li:first-child a{border-top:1px solid var(--ink)}
.news li:last-child a{border-bottom:1px solid var(--rule)}
.news time{font-size:14px;color:var(--muted)}
.news .cat{justify-self:start}
.news .tt{font-size:16px;color:var(--ink)}
.news .sm{display:block;font-size:14px;color:var(--muted);margin-top:6px;line-height:1.85}
.news li a:hover .tt>.ja,.news li a:hover .tt>.en,.news li a:hover .ttl{text-decoration:underline;text-underline-offset:5px}

/* footer */
.ft{border-top:1px solid var(--ink);padding:64px 0 40px}
.ft .row{display:grid;grid-template-columns:5fr 7fr;gap:var(--g)}
.ft address{font-style:normal;font-size:13.5px;color:var(--muted);margin-top:18px;line-height:1.9}
.ft .fl{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;font-size:14px}
.ft .fl a{display:block;color:var(--ink);line-height:2.3}
.ft .fl a:hover{color:var(--ai)}
.ft .legal{display:flex;justify-content:space-between;gap:24px;margin-top:64px;padding-top:22px;border-top:1px solid var(--rule);font-size:12px;color:var(--muted)}

/* review toolbar (for review only, not part of the design) */
:root{--rvh:44px}
body.shot{--rvh:0px}
.rv{display:flex;align-items:center;justify-content:center;gap:2px;height:var(--rvh);padding:0 16px;background:#111;color:#fff;font-size:12px;font-family:var(--sans);line-height:1.5;white-space:nowrap;overflow-x:auto;scrollbar-width:none}
.rv::-webkit-scrollbar{display:none}
.rv>span{color:#8C8C8C;margin-right:10px;letter-spacing:.06em}
.rv button,.rv a{padding:5px 12px;border-radius:999px;font-size:12px;color:#CFCFCF}
.rv a:hover,.rv button:hover{color:#fff}
.rv .on{background:#fff;color:var(--ink)!important;font-weight:600}
.rv .off{color:#5E5E5E;cursor:default;padding:5px 12px}
.rv i{flex:none;width:1px;height:16px;background:#444;margin:0 8px}
body.shot .rv{display:none}
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,8px);z-index:100;background:var(--ink);color:#fff;font-size:13px;padding:10px 18px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* responsive */
@media (max-width:1100px){
  :root{--g:40px}
  .nav .links{display:none}.menu{display:block}.lang{border-left:0;padding-left:0}
  .hd>.wrap{position:relative}
}
@media (max-width:760px){
  :root{--g:22px}
  body{font-size:15px}
  .hd>.wrap{height:64px}
  .logo b{font-size:18px}.logo small{font-size:10px}
  body.lang-en .logo b{font-size:15px}
  .nav{gap:16px}
  .menu{white-space:nowrap}
  .sec{padding:72px 0}
  .sec+.sec:not(.stone){padding-top:8px}
  .sg{grid-template-columns:1fr;gap:28px}
  .sg .lab p{max-width:none}
  .news li a{grid-template-columns:auto 1fr;gap:6px 14px;padding:20px 0}
  .news .tt{grid-column:1/-1}
  .ft .row{grid-template-columns:1fr;gap:36px}
  .ft .fl{grid-template-columns:1fr 1fr}
  .ft .legal{flex-direction:column;gap:6px}
  .rv{justify-content:flex-start}
}
