@charset "UTF-8";
/* ============================================================
   Licensing Ecosystem Design — site.css
   正本：prototype-ja-top.html（2026-08-02 承認）
   トークン層のみを共有し、本文テキストには関与しない
   ============================================================ */

/* ---------- 1. Tokens ---------- */
:root{
  /* Core / dark */
  --ink-950:#071521; --ink-900:#0B2033; --ink-800:#143047;
  /* Text */
  --text:#102235; --text-2:#536579; --text-3:#718096; --text-inv:#F7FAFC;
  /* Surfaces */
  --surf:#FFFFFF; --surf-2:#F5F8FB; --surf-3:#EAF0F5;
  /* Accents ※cyanは濃紺地専用。白地のテキストは cyan-d（4.74:1）を使う */
  --cyan:#00A9C7; --cyan-d:#007D96; --gold:#E9B949;
  --border:#D7E0E8; --border-dark:rgba(247,250,252,.16);

  /* Type */
  --font-en:"Inter",-apple-system,"Segoe UI",Helvetica,Arial,sans-serif;
  --font-ja:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic","Noto Sans JP",Meiryo,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,"SF Mono",Consolas,"Liberation Mono",monospace;

  --t-h1:clamp(1.9rem,4.2vw,3.25rem);
  --t-h2:clamp(1.4rem,2.6vw,2rem);
  --t-h3:1.125rem;
  --t-lead:clamp(1.02rem,1.35vw,1.18rem);
  --t-body:1rem;
  --t-small:.875rem;
  --t-label:.72rem;

  /* Layout */
  --container:1160px; --reading:760px;
  --radius:8px; --radius-lg:14px;
  --sp-4:16px; --sp-5:24px; --sp-6:32px; --sp-7:48px; --sp-8:64px; --sp-9:96px;
  --section-y:clamp(64px,9vw,120px);
}

/* ---------- 2. Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--surf);
  color:var(--text);
  font-family:var(--font-en),var(--font-ja);
  font-size:var(--t-body);
  line-height:1.9;                /* 和文本文 */
  font-feature-settings:"palt" 1;
}
html.en body{line-height:1.72;font-feature-settings:normal}

h1,h2,h3{line-height:1.4;font-weight:650;letter-spacing:.01em;margin:0}
h1{line-height:1.35;font-size:var(--t-h1)}
h2{font-size:var(--t-h2)}
h3{font-size:var(--t-h3)}
html.en h1{line-height:1.14;letter-spacing:-.012em}
html.en h2{line-height:1.22}
p{margin:0}
a{color:var(--cyan-d);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--cyan-d);outline-offset:3px;border-radius:4px}
img,svg{max-width:100%;height:auto}
strong{font-weight:650}
em{font-style:italic}

.container{max-width:var(--container);margin-inline:auto;padding-inline:clamp(20px,4vw,48px)}
.reading{max-width:var(--reading)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--sp-4);top:var(--sp-4);z-index:99;background:var(--surf);padding:10px 16px;border-radius:var(--radius)}

/* ---------- 3. Header ---------- */
.site-header{background:var(--ink-950);color:var(--text-inv);border-bottom:1px solid var(--border-dark)}
.header-inner{display:flex;align-items:center;gap:var(--sp-6);min-height:76px}
.brand{display:flex;flex-direction:column;line-height:1.3;color:var(--text-inv)}
.brand:hover{text-decoration:none}
.brand__ja{font-weight:650;font-size:.98rem;letter-spacing:.02em}
.brand__en{font-family:var(--font-en);font-size:.68rem;letter-spacing:.1em;color:var(--cyan);text-transform:uppercase}
.nav{margin-left:auto;display:flex;align-items:center;gap:var(--sp-5)}
.nav a{color:rgba(247,250,252,.82);font-size:.9rem}
.nav a:hover,.nav a[aria-current="page"]{color:var(--text-inv);text-decoration:none}
.nav a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--cyan)}
.nav__lang{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.08em;
  border:1px solid var(--border-dark);padding:6px 12px;border-radius:var(--radius)}
.nav-toggle{display:none}

/* ---------- 4. Hero ---------- */
.hero{
  background:
    radial-gradient(circle at 82% 22%,rgba(0,169,199,.20),transparent 42%),
    radial-gradient(circle at 58% 88%,rgba(233,185,73,.10),transparent 34%),
    linear-gradient(135deg,#071521 0%,#0B2033 56%,#102D43 100%);
  color:var(--text-inv);
  padding-block:clamp(56px,8vw,104px);
}
.hero__grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--sp-8);align-items:center}
.eyebrow{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.16em;
  text-transform:uppercase;color:var(--cyan);margin-bottom:var(--sp-5)
}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--cyan)}
.hero h1{
  font-weight:700;letter-spacing:.005em;
  word-break:auto-phrase;        /* 和文の文節折り返し（対応ブラウザのみ） */
  text-wrap:balance;
}
html.en .hero h1{letter-spacing:-.014em;word-break:normal}
.hero__byline{
  margin-top:var(--sp-6);padding-top:var(--sp-5);
  border-top:1px solid var(--border-dark);
  color:rgba(247,250,252,.72);font-size:var(--t-small)
}
.hero__byline strong{color:var(--text-inv);font-weight:650}

/* 下層ページ用：図版なし・やや低い帯 */
.hero--page{padding-block:clamp(44px,6vw,76px)}
.hero--page h1{font-size:clamp(1.6rem,3.2vw,2.5rem);max-width:22em}

/* ---------- 5. Sections & signature: clause rule ---------- */
.section{padding-block:var(--section-y)}
.section--alt{background:var(--surf-2);border-block:1px solid var(--border)}
.section--tight{padding-block:clamp(48px,6vw,80px)}

.clause{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-6)}
.clause__label{
  font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.16em;
  text-transform:uppercase;color:var(--text-3);white-space:nowrap
}
.clause::after{content:"";flex:1;height:1px;background:var(--border)}

.section__title{margin-bottom:var(--sp-6)}

/* ---------- 6. Definition block ---------- */
.deftitle{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:var(--sp-6)}
.deftitle span{font-family:var(--font-en);font-size:var(--t-small);color:var(--text-3);letter-spacing:.04em}

/* 下層ページに挿入する定義ブロック */
.definition{
  margin-block:var(--sp-7);padding:var(--sp-6) var(--sp-6) var(--sp-5);
  background:var(--surf-2);border:1px solid var(--border);border-left:3px solid var(--ink-900)
}
.definition__head{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-4)}
.definition__label{
  font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.16em;
  text-transform:uppercase;color:var(--text-3);white-space:nowrap
}
.definition__head::after{content:"";flex:1;height:1px;background:var(--border)}
.definition__term{font-weight:650;font-size:1.02rem;color:var(--ink-900)}
.definition__reading{font-family:var(--font-en);font-size:var(--t-small);color:var(--text-3);letter-spacing:.04em;margin-left:.7em}
.definition p{margin-top:.8em}
.definition__role{margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--border);
  color:var(--text-2);font-size:var(--t-small)}

/* ---------- 7. Prose ---------- */
.prose > * + *{margin-top:1.4em}
.prose p{color:var(--text)}
.prose .lead{font-size:var(--t-lead);border-left:3px solid var(--cyan-d);padding-left:var(--sp-5)}
.prose > .definition{margin-top:var(--sp-7)}
.prose h2{
  display:flex;align-items:center;gap:var(--sp-4);
  margin-top:2.4em;
}
.prose h2::after{content:"";flex:1;height:1px;background:var(--border)}
.prose h2 + p{margin-top:1em}
.prose h3{margin-top:2em}
.prose .note{font-size:var(--t-small);color:var(--text-2)}
.prose a{text-decoration:underline;text-decoration-color:rgba(0,125,150,.35);text-underline-offset:3px}
.prose a:hover{text-decoration-color:var(--cyan-d)}

/* プロフィール欄（/why/ のみ） */
.profile{display:flex;gap:var(--sp-6);align-items:center;
  padding-bottom:var(--sp-7);border-bottom:1px solid var(--border)}
.profile__photo{flex:0 0 auto;width:200px;height:200px;
  border:1px solid var(--border);border-radius:var(--radius);background:var(--surf-2)}
.profile__body > * + *{margin-top:.35em}
.profile__name{font-weight:650;font-size:1.25rem;color:var(--ink-900);line-height:1.4}
.profile__name-en{display:block;margin-top:3px;font-family:var(--font-en);font-weight:400;
  font-size:var(--t-small);letter-spacing:.04em;color:var(--text-3)}
.profile__role{color:var(--text-2);font-size:var(--t-small)}
.profile__link{font-size:var(--t-small)}

@media (max-width:640px){
  .profile{gap:var(--sp-5)}
  .profile__photo{width:128px;height:128px}
  .profile__name{font-size:1.1rem}
}

/* プロセス等のまとまり */
.prose .step{margin-top:var(--sp-8)}
.prose .step > * + *{margin-top:1.1em}
.prose .step h2{margin-top:0}

/* 図版 */
.prose figure{margin:var(--sp-7) 0}
.prose figure img,.prose figure svg{border:1px solid var(--border);border-radius:var(--radius);background:var(--surf)}
.prose figcaption{margin-top:var(--sp-4);font-size:var(--t-small);color:var(--text-2)}

/* 補記ブロック（続きは近日公開 等） */
.notice{
  padding:var(--sp-5) var(--sp-6);background:var(--surf-2);
  border:1px dashed var(--border);border-radius:var(--radius);
  color:var(--text-2);font-size:var(--t-small)
}

/* 箇条書き：条項ルールと同じ細罫線で刻む */
.speclist{list-style:none;margin:var(--sp-6) 0 0;padding:0;border-top:1px solid var(--border)}
.speclist li{padding:var(--sp-5) 0;border-bottom:1px solid var(--border)}
.speclist li strong{display:inline;color:var(--ink-900)}

/* ---------- 8. Index rows ---------- */
.index{border-top:1px solid var(--border)}
.index__row{
  display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:var(--sp-5);align-items:center;
  padding:var(--sp-5) 0;border-bottom:1px solid var(--border);
  color:var(--text);transition:padding-left .18s ease,background-color .18s ease
}
.index__row:hover{text-decoration:none;background:var(--surf-2);padding-left:12px}
.index__q{display:block;font-weight:650;font-size:var(--t-h3);margin-bottom:4px}
.index__row:hover .index__q{color:var(--cyan-d)}
.index__a{display:block;color:var(--text-2);font-size:var(--t-small)}
.index__arrow{justify-self:end;color:var(--cyan-d);transition:transform .18s ease}
.index__row:hover .index__arrow{transform:translateX(4px)}

/* ---------- 9. CTA & buttons ---------- */
.cta{background:var(--ink-950);color:var(--text-inv);padding-block:var(--section-y)}
.cta .clause__label{color:rgba(247,250,252,.6)}
.cta .clause::after{background:var(--border-dark)}
.cta__title{font-size:var(--t-h2);margin-bottom:var(--sp-5);max-width:20em}
.cta p{font-size:var(--t-lead);max-width:34em}
.cta p a{color:var(--cyan)}
.cta .cta__note{font-size:var(--t-small);color:rgba(247,250,252,.72);margin-top:var(--sp-5);max-width:44em}
.cta .cta__note a{color:var(--cyan)}

.btnrow{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin-top:var(--sp-7)}
.btn{
  display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;
  padding:14px 26px;border-radius:var(--radius);
  font-weight:650;font-size:.95rem;line-height:1.5;border:1px solid transparent;min-height:52px
}
.btn:hover{text-decoration:none}
.btn small{font-weight:400;font-size:.72rem;opacity:.85;margin-top:.15em}
.btn--primary{background:var(--cyan);color:var(--ink-950)}
.btn--primary:hover{background:#37bcd4}
.btn--ghost{border-color:var(--border-dark);color:var(--text-inv)}
.btn--ghost:hover{border-color:var(--cyan);color:var(--cyan)}
/* 白地に置く場合 */
.section .btn--primary,.prose .btn--primary{background:var(--cyan-d);color:#fff}
.section .btn--primary:hover,.prose .btn--primary:hover{background:#00647a}
.section .btn--ghost,.prose .btn--ghost{border-color:var(--border);color:var(--cyan-d)}
.section .btn--ghost:hover,.prose .btn--ghost:hover{border-color:var(--cyan-d);background:var(--surf-2);color:var(--cyan-d)}

/* ---------- 10. Footer ---------- */
.site-footer{background:var(--surf-2);border-top:1px solid var(--border);padding-block:var(--sp-8);font-size:var(--t-small)}
.site-footer .footer-def{color:var(--text-2);max-width:var(--reading);margin:0 0 var(--sp-6)}
.footer-nav{display:flex;flex-wrap:wrap;gap:var(--sp-5);align-items:center;color:var(--text-2)}
.footer-nav strong{font-weight:650;color:var(--text)}

/* ---------- 11. Responsive ---------- */
@media (max-width:900px){
  .hero__grid{grid-template-columns:1fr;gap:var(--sp-7)}
  .hero__figure{display:none}
  .nav{gap:var(--sp-4)}
  .nav a{font-size:.85rem}
}
@media (max-width:760px){
  .header-inner{min-height:64px;flex-wrap:wrap;gap:var(--sp-4);padding-block:12px}
  .nav-toggle{display:block;margin-left:auto}
  .nav-toggle summary{
    list-style:none;cursor:pointer;color:var(--text-inv);
    font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.1em;
    border:1px solid var(--border-dark);border-radius:var(--radius);padding:10px 14px;min-height:44px;
    display:flex;align-items:center
  }
  .nav-toggle summary::-webkit-details-marker{display:none}
  .nav{
    margin-left:0;flex-basis:100%;flex-direction:column;align-items:stretch;gap:0;
    display:none
  }
  .nav-toggle[open] ~ .nav{display:flex;padding-bottom:12px}
  .nav a{padding:12px 0;min-height:44px;display:flex;align-items:center;border-top:1px solid var(--border-dark)}
  .nav__lang{align-self:flex-start;margin-top:12px;border-top:1px solid var(--border-dark)}
  .prose h2{flex-wrap:wrap}
  .prose h2::after{flex-basis:100%;min-width:60px}
  .btn{width:100%}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
}
