/* ============================================================
   YASU★AI ACADEMY — コーポレートサイト
   LP（YASU-AI-Academy-Proj/site）とデザイントークンを共有する。
   行き来しても同じ会社に見えることを最優先にしている。
   ============================================================ */

:root{
  /* LP と同じパレット */
  --navy:#0b2545; --navy-2:#12365f;
  --blue:#1d5fd0; --blue-dark:#164aa6;
  --blue-tint:#eef4fd; --blue-tint-2:#dfeaf9;
  --gold:#c69a2d;
  --ink:#152331; --muted:#5b6c7e;
  --line:#e2e9f1; --line-2:#cfdbe8;
  --bg:#ffffff; --bg-alt:#f6f9fc;
  --maxw:1080px; --header-h:62px;
  --radius:12px;
  --shadow:0 2px 14px rgba(11,37,69,.07);
  --shadow-lg:0 10px 34px rgba(11,37,69,.13);
}

/* ── 日本語の折り返し ──────────────────────────────
   既定の折り返しは文字単位なので「いま|の状態」のように文節の途中で切れ、
   助詞が行頭に出る。keep-all で勝手に切らせず、折り返してよい位置は
   本文の wbr タグで示す。Chrome 119+ は文節折り返しを自前で持つので
   末尾の @supports でそちらに任せる。 */
html{
  line-break:strict;
  word-break:keep-all;
  overflow-wrap:anywhere;
  text-wrap:pretty;
}
h1,h2,h3,.lead,.hero-sub,.org-note,.stance li,.biz p,
.profile-text p,.org-card p,.to-lp p,.contact-box p{ text-wrap:balance; }
@supports (word-break:auto-phrase){
  html{ word-break:auto-phrase; overflow-wrap:normal; }
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:var(--header-h);}
body{
  margin:0; background:var(--bg); color:var(--ink); line-height:1.9;
  font-family:"Hiragino Kaku Gothic ProN","Yu Gothic","Segoe UI",sans-serif;
  font-size:15px; -webkit-font-smoothing:antialiased;
}
img{max-width:100%; height:auto; display:block;}
a{color:var(--blue); text-decoration:none;}
a:hover{text-decoration:underline;}
.container{max-width:var(--maxw); margin:0 auto; padding:0 20px;}

/* ── ヘッダー ── */
.site-header{
  position:sticky; top:0; z-index:50; height:var(--header-h);
  background:rgba(255,255,255,.94); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex; align-items:center; gap:18px; height:var(--header-h);}
.logo{
  font-weight:800; font-size:16px; color:var(--navy); letter-spacing:.02em;
  display:flex; align-items:center; gap:7px; flex:none;
}
.logo .star{color:var(--gold);}
.nav{display:flex; gap:20px; margin-left:auto; font-size:13.5px;}
.nav a{color:var(--ink); font-weight:600;}
.nav a:hover{color:var(--blue); text-decoration:none;}
.nav-lp{
  flex:none; font-size:13px; font-weight:700; padding:8px 15px; border-radius:999px;
  background:var(--blue); color:#fff !important; white-space:nowrap;
}
.nav-lp:hover{background:var(--blue-dark); text-decoration:none;}
.nav-toggle{display:none; background:none; border:0; cursor:pointer; padding:8px;}
.nav-toggle span{display:block; width:22px; height:2px; background:var(--navy); margin:4px 0; border-radius:2px;}

@media (max-width:820px){
  .nav{
    position:absolute; top:var(--header-h); left:0; right:0; flex-direction:column; gap:0;
    background:#fff; border-bottom:1px solid var(--line); box-shadow:var(--shadow); display:none;
  }
  .nav.open{display:flex;}
  .nav a{padding:13px 20px; border-bottom:1px solid var(--line);}
  .nav-toggle{display:block; margin-left:auto;}
}

/* 375px 幅では ロゴ+LPボタン+メニュー が横に収まらないので詰める */
@media (max-width:560px){
  .header-inner{gap:10px;}
  .logo{font-size:14px; gap:5px;}
  .nav-lp{font-size:12px; padding:7px 12px;}
  .nav-toggle{padding:8px 0 8px 8px;}
}

/* ── ヒーロー ── */
.hero{
  position:relative; color:#fff; overflow:hidden;
  background:linear-gradient(160deg,var(--navy) 0%,var(--navy-2) 62%,#1b4a7d 100%);
}
/* 星空の背景。外部画像を使わず CSS だけで描く。
   出所不明の素材を持ち込まないための措置（2026-08-19 法務審査 C-9）。 */
.hero::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(1.6px 1.6px at 12% 18%, rgba(255,255,255,.95) 50%, transparent 51%),
    radial-gradient(1.2px 1.2px at 27% 62%, rgba(255,255,255,.75) 50%, transparent 51%),
    radial-gradient(1.9px 1.9px at 41% 29%, rgba(255,255,255,.90) 50%, transparent 51%),
    radial-gradient(1.1px 1.1px at 55% 74%, rgba(255,255,255,.65) 50%, transparent 51%),
    radial-gradient(1.5px 1.5px at 68% 15%, rgba(255,255,255,.85) 50%, transparent 51%),
    radial-gradient(1.2px 1.2px at 79% 51%, rgba(255,255,255,.70) 50%, transparent 51%),
    radial-gradient(2.1px 2.1px at 88% 81%, rgba(255,255,255,.95) 50%, transparent 51%),
    radial-gradient(1.1px 1.1px at 6%  78%, rgba(255,255,255,.60) 50%, transparent 51%),
    radial-gradient(1.4px 1.4px at 34% 90%, rgba(255,255,255,.80) 50%, transparent 51%),
    radial-gradient(1.0px 1.0px at 61% 40%, rgba(255,255,255,.55) 50%, transparent 51%),
    radial-gradient(1.7px 1.7px at 94% 33%, rgba(255,255,255,.88) 50%, transparent 51%),
    radial-gradient(1.1px 1.1px at 19% 45%, rgba(255,255,255,.62) 50%, transparent 51%),
    radial-gradient(1.3px 1.3px at 47% 8%,  rgba(255,255,255,.72) 50%, transparent 51%),
    radial-gradient(1.0px 1.0px at 73% 93%, rgba(255,255,255,.58) 50%, transparent 51%),
    /* 淡い星雲 */
    radial-gradient(58% 46% at 76% 22%, rgba(120,175,255,.24), transparent 68%),
    radial-gradient(46% 40% at 16% 82%, rgba(198,154,45,.14), transparent 70%);
  background-repeat:no-repeat;
  opacity:.9;
}
@media (prefers-reduced-motion:no-preference){
  .hero::before{ animation:hero-twinkle 9s ease-in-out infinite alternate; }
}
@keyframes hero-twinkle{ from{opacity:.72} to{opacity:1} }
.hero-inner{position:relative; padding:74px 20px 68px;}
.hero-eyebrow{
  font-size:12.5px; font-weight:800; letter-spacing:.14em;
  color:var(--gold); margin:0 0 14px;
}
.hero-title{
  font-size:clamp(25px,4.6vw,40px); font-weight:900; line-height:1.45;
  margin:0 0 18px; letter-spacing:.01em;
}
.hero-title .accent{color:#8fc0ff;}
.hero-sub{font-size:15px; color:#cfe0f2; margin:0 0 12px; max-width:660px;}
.hero-sub strong{color:#fff;}
.hero-actions{display:flex; gap:12px; flex-wrap:wrap; margin-top:26px;}
.btn{
  display:inline-block; padding:13px 26px; border-radius:999px;
  font-size:14px; font-weight:800; border:2px solid transparent; cursor:pointer;
}
.btn:hover{text-decoration:none;}
.btn-primary{background:var(--blue); color:#fff;}
.btn-primary:hover{background:#3d7ae8;}
.btn-outline{border-color:rgba(255,255,255,.45); color:#fff;}
.btn-outline:hover{background:rgba(255,255,255,.1);}

/* ── セクション共通 ── */
.section{padding:64px 0;}
.section-alt{background:var(--bg-alt); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.section-title{
  font-size:22px; font-weight:900; color:var(--navy); margin:0 0 8px; letter-spacing:.01em;
}
.section-title .en{
  display:block; font-size:11.5px; font-weight:800; letter-spacing:.16em;
  color:var(--blue); margin-bottom:5px;
}
.lead{font-size:14px; color:var(--muted); margin:0 0 30px; max-width:720px;}

/* ── 経歴 ── */
.profile{display:grid; gap:26px;}
@media (min-width:820px){ .profile{grid-template-columns:290px 1fr; align-items:start;} }
.cred{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:6px 18px 16px; box-shadow:var(--shadow);
}
.cred dl{margin:0;}
.cred dt{
  font-size:11px; font-weight:800; color:var(--blue);
  letter-spacing:.1em; margin-top:15px;
}
.cred dd{margin:2px 0 0; font-size:14px; font-weight:700; color:var(--ink); line-height:1.7;}
.cred dd small{display:block; font-size:11.5px; font-weight:500; color:var(--muted); line-height:1.7;}
.profile-text p{margin:0 0 16px; font-size:14.5px;}
.pull{
  border-left:3px solid var(--gold); padding:4px 0 4px 16px;
  color:var(--navy); font-weight:700; font-size:15px; margin:0 0 18px;
}

/* ── する / しない ── */
.stance{display:grid; gap:16px;}
@media (min-width:760px){ .stance{grid-template-columns:1fr 1fr;} }
.stance section{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:20px 22px; box-shadow:var(--shadow);
}
.stance h3{
  font-size:15px; margin:0 0 12px; font-weight:800;
  display:flex; align-items:center; gap:8px;
}
.stance .mark{
  flex:none; width:22px; height:22px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:900; color:#fff;
}
.stance .do .mark{background:var(--blue);}
.stance .dont .mark{background:#94a3b3;}
.stance ul{margin:0; padding-left:1.1em; font-size:13.5px;}
.stance li{margin-bottom:9px;}
.stance li::marker{color:var(--line-2);}

/* ── 組織図 ── */
.org-top{
  max-width:360px; margin:0 auto 0; text-align:center;
  background:var(--navy); color:#fff; border-radius:10px; padding:13px 18px;
}
.org-top b{font-size:15px; font-weight:800;}
.org-top small{display:block; font-size:11.5px; color:#a9c6e4; margin-top:2px;}
.org-stem{width:2px; height:24px; background:var(--line-2); margin:0 auto;}
.org-grid{display:grid; gap:12px;}
@media (min-width:700px){ .org-grid{grid-template-columns:repeat(3,1fr);} }
.org-card{
  background:#fff; border:1px solid var(--line); border-radius:10px;
  padding:15px 16px; box-shadow:var(--shadow);
}
.org-card.veto{border-color:#f0d59a; background:#fffdf6;}
.org-card h4{
  font-size:13.5px; margin:0 0 3px; font-weight:800; color:var(--navy);
  display:flex; align-items:center; gap:7px; flex-wrap:wrap;
}
.org-card .role{font-size:11px; color:var(--muted); font-family:ui-monospace,Consolas,monospace;}
.org-card p{margin:6px 0 0; font-size:12.5px; color:var(--muted); line-height:1.75;}
.veto-tag{
  font-size:10px; font-weight:800; color:#8a6100; background:#ffeec2;
  border-radius:4px; padding:2px 6px; letter-spacing:.04em;
}
.org-note{
  margin-top:22px; background:#fff; border:1px solid var(--line);
  border-left:3px solid var(--blue); border-radius:8px;
  padding:16px 18px; font-size:13.5px;
}
.org-note b{color:var(--navy);}
.org-note + .org-note{margin-top:12px;}

/* ── 事業カード ── */
.biz{display:grid; gap:16px;}
@media (min-width:760px){ .biz{grid-template-columns:repeat(2,1fr);} }
.biz article{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:20px 22px; box-shadow:var(--shadow);
  display:flex; flex-direction:column;
}
.biz .no{
  font-size:11px; font-weight:800; color:var(--blue); letter-spacing:.1em; margin-bottom:5px;
}
.biz h3{font-size:15.5px; margin:0 0 8px; font-weight:800; color:var(--navy);}
.biz p{margin:0; font-size:13.5px; color:var(--muted); flex:1;}

/* ── LPへの導線 ── */
.to-lp{
  margin-top:30px; background:linear-gradient(135deg,var(--navy),var(--navy-2));
  color:#fff; border-radius:var(--radius); padding:28px 26px;
  display:flex; gap:20px; align-items:center; flex-wrap:wrap;
  box-shadow:var(--shadow-lg);
}
.to-lp div{flex:1; min-width:260px;}
.to-lp h3{margin:0 0 6px; font-size:17px; font-weight:900; color:#fff;}
.to-lp p{margin:0; font-size:13.5px; color:#cfe0f2;}
.to-lp .btn-primary{background:#fff; color:var(--navy);}
.to-lp .btn-primary:hover{background:#e8f0fb;}

/* ── お問い合わせ ── */
.contact-box{
  background:#fff; border:1px solid var(--line); border-radius:var(--radius);
  padding:26px 24px; box-shadow:var(--shadow); text-align:center;
}
.contact-box .mail{
  display:inline-block; margin:10px 0 6px; font-size:17px; font-weight:800;
  color:var(--navy); overflow-wrap:anywhere;
}
.contact-box small{color:var(--muted); font-size:12.5px;}

/* ── フッター ── */
.site-footer{background:var(--navy); color:#a9c6e4; padding:30px 0; font-size:12.5px;}
.footer-inner{display:flex; gap:16px; flex-wrap:wrap; align-items:center; justify-content:space-between;}
.site-footer a{color:#cfe0f2;}
.footer-links{display:flex; gap:16px; flex-wrap:wrap;}

/* ── 2026-08-19 法務審査（G2）対応 ── */
.org-note-caution{
  border-left-color:var(--gold) !important; background:#fffdf6 !important;
  font-size:13px; color:var(--muted);
}
.org-note-caution b{color:var(--navy);}
.biz-caution{
  margin:12px 0 0 !important; padding-top:11px; border-top:1px dashed var(--line-2);
  font-size:11.5px !important; color:var(--muted); line-height:1.8; flex:none !important;
}
.entity-note{
  font-size:11.5px; color:#8fb0d0; margin:6px 0 0; line-height:1.8; width:100%;
}
