/* Bright Research — corporate site, design C 対比 (2026-06-11 確定)
   墨×白の対比・縦書き理念・金アクセント。外部送信ゼロ（webfont/解析/Cookie なし）。 */
:root{
  --bg:#F7F6F1; --ink:#15151D; --paper:#F2EFE8;
  --sub:#6E6A63; --sub-d:#9D99A4;
  --gold:#B8993E; --gold-hi:#E2BE6A;
  --hair:#E2DFD5; --hair-d:rgba(247,246,241,.16);
  --serif:"Hiragino Mincho ProN","Yu Mincho","Noto Serif JP",serif;
  --sans:"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",sans-serif;
  --mono:"SF Mono",ui-monospace,Menlo,Consolas,monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}
.s-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.5em;color:var(--gold)}

/* ===== hero (top page) ===== */
.hero{display:grid;grid-template-columns:46% 54%;min-height:100vh}
.hero-ink{background:var(--ink);color:var(--paper);position:relative;display:flex;align-items:center;justify-content:center;padding:90px 24px}
.hero-ink h1{writing-mode:vertical-rl;font-family:var(--serif);font-weight:400;
  font-size:clamp(38px,4.7vw,66px);letter-spacing:.3em;line-height:1.7}
.hero-ink h1 span{display:block}
.hero-ink h1 b{font-weight:400;color:var(--gold-hi)}
.hero-ink .seal{position:absolute;left:40px;bottom:40px}
.hero-ink .est{position:absolute;left:46px;top:40px;writing-mode:vertical-rl;
  font-family:var(--mono);font-size:10px;letter-spacing:.5em;color:var(--sub-d)}
.hero-white{display:flex;flex-direction:column;justify-content:space-between;gap:48px;padding:36px 56px 56px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.topbar .menu{display:flex;gap:28px;flex-wrap:wrap}
.topbar .menu a{color:var(--sub);text-decoration:none;font-family:var(--mono);font-size:10.5px;letter-spacing:.3em}
.topbar .menu a:hover{color:var(--gold)}
.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}
.brand span{font-family:var(--mono);font-size:12px;letter-spacing:.34em}
.hero-copy{max-width:520px}
.hero-copy .s-label{display:block;margin-bottom:24px}
.hero-copy p.phi{font-family:var(--serif);font-size:17px;line-height:2.6;letter-spacing:.1em}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end}
.hero-foot .big{font-family:var(--mono);font-size:11px;letter-spacing:.42em;color:var(--sub)}
.arrow{width:1px;height:74px;background:var(--ink);position:relative}
.arrow:after{content:"";position:absolute;bottom:0;left:-4px;border-left:4.5px solid transparent;border-right:4.5px solid transparent;border-top:7px solid var(--ink)}

/* ===== alternating bands ===== */
.band{display:grid;grid-template-columns:46% 54%}
.band .head{padding:110px 56px;display:flex;align-items:flex-start;gap:26px}
.band .head .num{font-family:var(--mono);font-size:104px;line-height:.9;color:transparent}
.band .head h2{font-family:var(--serif);font-size:30px;font-weight:400;letter-spacing:.2em;margin-top:10px}
.band .head .en{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.44em;margin-top:14px}
.band .body{padding:110px 64px;display:flex;align-items:center}
.band .body p{font-size:14.5px;line-height:2.4;max-width:520px}
.band.ink{background:var(--ink);color:var(--paper)}
.band.ink .num{-webkit-text-stroke:1px rgba(226,190,106,.5)}
.band.ink .en{color:var(--gold-hi)}
.band.ink .body p{color:#B9B5BF}
.band.white .num{-webkit-text-stroke:1.5px rgba(184,153,62,.8)}
.band.white .en{color:var(--gold)}
.band.white .body p{color:var(--sub)}
.band.white{border-bottom:1px solid var(--hair)}

/* ===== ai app section ===== */
.ai{display:grid;grid-template-columns:46% 54%;background:var(--ink);color:var(--paper)}
.ai-visual{position:relative;min-height:430px;overflow:hidden;border-right:1px solid var(--hair-d);
  background:linear-gradient(165deg,#181826 30%,#1F4E8C 110%)}
.ai-visual .sun{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);width:120px;height:120px;border-radius:50%;
  background:radial-gradient(circle at 36% 32%,#F4DC95,#C9A75A 72%);box-shadow:0 0 90px rgba(232,197,109,.45)}
.ai-visual .hline{position:absolute;left:10%;right:10%;top:70%;height:1px;background:linear-gradient(90deg,transparent,var(--gold-hi),transparent)}
.ai-body{padding:96px 64px}
.ai-body .s-label{display:block;color:var(--gold-hi);margin-bottom:30px}
.ai-body h2{font-family:var(--serif);font-size:42px;font-weight:400;letter-spacing:.12em}
.ai-body h2 small{font-size:14px;letter-spacing:.2em;color:var(--sub-d);margin-left:14px}
.ai-body .catch{font-family:var(--serif);font-size:18px;letter-spacing:.12em;color:var(--gold-hi);margin:28px 0 16px}
.ai-body p.b{font-size:13.5px;line-height:2.3;color:#B9B5BF;max-width:540px}
.ai-body .more{display:inline-block;margin-top:26px;color:var(--gold-hi);font-size:13px;letter-spacing:.14em;text-decoration:none;border-bottom:1px solid rgba(226,190,106,.5);padding-bottom:3px;margin-right:26px}
.badge{display:inline-block;margin-top:26px;border:1px solid rgba(226,190,106,.5);color:var(--gold-hi);
  font-family:var(--mono);font-size:10px;letter-spacing:.34em;padding:10px 18px}

/* ===== company / contact ===== */
.split{display:grid;grid-template-columns:46% 54%}
.split .head{padding:110px 56px}
.split .head .s-label{display:block;margin-bottom:22px}
.split .head h2{font-family:var(--serif);font-size:30px;font-weight:400;letter-spacing:.2em}
.split .content{padding:96px 64px 110px;border-left:1px solid var(--hair)}
.company .row{display:grid;grid-template-columns:200px 1fr;border-bottom:1px solid var(--hair);padding:21px 4px}
.company dt{font-size:11.5px;letter-spacing:.32em;color:var(--sub)}
.company dd{font-size:14px;letter-spacing:.05em;line-height:1.9}
.contact{background:var(--ink);color:var(--paper)}
.contact .head h2{color:var(--paper)}
.contact .content{border-left:1px solid var(--hair-d);display:flex;flex-direction:column;justify-content:center;gap:18px}
.contact p{font-size:14px;line-height:2.2;color:#B9B5BF}
.contact .mail{font-family:var(--mono);font-size:18px;letter-spacing:.12em;color:var(--gold-hi);text-decoration:none;border-bottom:1px solid rgba(226,190,106,.5);align-self:flex-start;padding-bottom:4px}

/* ===== footer ===== */
footer{background:var(--ink);color:var(--sub-d);padding:46px 56px;border-top:1px solid var(--hair-d)}
.foot-legal{display:flex;gap:26px;flex-wrap:wrap;margin-bottom:26px}
.foot-legal a{color:#B9B5BF;text-decoration:none;font-size:12px;letter-spacing:.12em}
.foot-legal a:hover{color:var(--gold-hi)}
.foot-base{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
.foot-base span{font-family:var(--mono);font-size:10px;letter-spacing:.3em}

/* ===== document pages ===== */
.doc-top{background:var(--ink);color:var(--paper);padding:26px 56px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.doc-top .brand{color:var(--paper)}
.doc-top .back{font-family:var(--mono);font-size:10.5px;letter-spacing:.3em;color:var(--sub-d);text-decoration:none}
.doc-top .back:hover{color:var(--gold-hi)}
.doc{max-width:880px;margin:0 auto;padding:90px 32px 130px}
.doc .s-label{display:block;margin-bottom:20px}
.doc h1{font-family:var(--serif);font-size:34px;font-weight:400;letter-spacing:.16em;margin-bottom:14px}
.doc .date{font-size:12px;color:var(--sub);letter-spacing:.08em;margin-bottom:56px}
.doc h2{font-family:var(--serif);font-size:20px;font-weight:400;letter-spacing:.12em;margin:54px 0 18px;padding-left:14px;border-left:2px solid var(--gold)}
.doc p,.doc li{font-size:14.5px;line-height:2.3;color:#3A3935}
.doc ul,.doc ol{padding-left:1.4em;margin:10px 0}
.doc .lead{margin-bottom:8px}
.doc a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(184,153,62,.4)}
.doc dl .row{display:grid;grid-template-columns:220px 1fr;border-bottom:1px solid var(--hair);padding:20px 4px}
.doc dt{font-size:12px;letter-spacing:.22em;color:var(--sub);line-height:2.1}
.doc dd{font-size:14px;line-height:2.1}
.doc .note{font-size:12.5px;color:var(--sub);line-height:2.1;margin-top:34px;padding-top:18px;border-top:1px solid var(--hair)}

/* ===== 404 ===== */
.nf{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;text-align:center;padding:40px}
.nf h1{font-family:var(--serif);font-size:40px;font-weight:400;letter-spacing:.2em}
.nf p{color:var(--sub);font-size:14px}
.nf a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(184,153,62,.4);padding-bottom:3px;font-size:13px;letter-spacing:.12em}

/* ===== responsive ===== */
@media (max-width:860px){
  .hero{grid-template-columns:1fr;min-height:auto}
  .hero-ink{order:2;min-height:540px;padding:70px 20px}
  .hero-ink h1{font-size:clamp(34px,9vw,46px)}
  .hero-ink .est{display:none}
  .hero-white{order:1;gap:40px;padding:24px 28px 44px}
  .hero-copy p.phi{font-size:15px;line-height:2.4}
  .hero-foot .arrow{display:none}
  .band,.ai,.split{grid-template-columns:1fr}
  .band .head{padding:64px 28px 0}
  .band .body{padding:34px 28px 64px}
  .band .head .num{font-size:72px}
  .ai-visual{min-height:300px;border-right:none;border-bottom:1px solid var(--hair-d)}
  .ai-body{padding:56px 28px 64px}
  .ai-body h2{font-size:32px}
  .split .head{padding:64px 28px 0}
  .split .content{padding:34px 28px 70px;border-left:none}
  .company .row{grid-template-columns:1fr;gap:6px;padding:16px 2px}
  footer{padding:40px 28px}
  .doc-top{padding:20px 24px}
  .doc{padding:60px 22px 90px}
  .doc h1{font-size:27px}
  .doc dl .row{grid-template-columns:1fr;gap:6px}
}
