:root {
  --navy:#08172a;
  --navy-2:#0d2847;
  --ink:#111826;
  --muted:#677386;
  --line:#dfe4ea;
  --paper:#f5f6f7;
  --white:#fff;
  --serif:"Times New Roman","Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Yu Gothic",YuGothic,"Hiragino Sans",Meiryo,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);color:var(--ink);background:#fff;line-height:1.9;letter-spacing:.03em;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.container{width:min(1260px,calc(100% - 64px));margin:auto}

/* header */
.header{position:fixed;inset:0 0 auto 0;height:86px;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,5vw,72px);color:#fff;transition:.35s}
.header.scrolled{height:74px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);color:var(--navy);box-shadow:0 8px 28px rgba(8,23,42,.06)}
.header-logo{width:190px;filter:brightness(0) invert(1);transition:.35s}
.header.scrolled .header-logo{filter:none}
.nav{display:flex;gap:28px;align-items:center;font-size:10px;letter-spacing:.2em;font-weight:700}
.nav a{position:relative;padding:9px 0}
.nav a:after{content:"";position:absolute;left:0;bottom:3px;width:0;height:1px;background:currentColor;transition:.25s}
.nav a:hover:after{width:100%}
.menu{display:none;border:0;background:transparent;color:inherit;font-size:10px;letter-spacing:.2em}

/* hero */
.hero{min-height:100svh;position:relative;display:flex;align-items:center;overflow:hidden;color:#fff;background:
linear-gradient(90deg,rgba(8,20,37,.72) 0%,rgba(8,20,37,.34) 45%,rgba(8,20,37,.08) 100%),
url("../img/hero-bg.jpg") center/cover no-repeat}
.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,17,31,.08),rgba(7,17,31,.38));pointer-events:none}
.hero-inner{position:relative;z-index:2;padding-top:88px}
.hero-wordmark{width:min(650px,72vw);height:auto;filter:drop-shadow(0 6px 22px rgba(0,0,0,.14))}
.hero-jp{font-family:var(--serif);font-size:clamp(23px,2.3vw,34px);letter-spacing:.22em;margin:14px 0 0 30px}
.hero-intro{position:absolute;right:clamp(24px,7vw,110px);top:50%;transform:translateY(-42%);z-index:3;width:min(420px,35vw);border-left:1px solid rgba(255,255,255,.55);padding-left:30px}
.hero-intro p{font-family:var(--serif);font-size:15px;line-height:2.35;margin:0;color:rgba(255,255,255,.94)}
.hero-intro .small-link{margin-top:30px}
.small-link{display:inline-flex;align-items:center;gap:18px;font-size:10px;letter-spacing:.2em;font-weight:700}
.small-link:after{content:"";width:62px;height:1px;background:currentColor;transition:.25s}
.small-link:hover:after{width:90px}
.scroll{position:absolute;left:38px;bottom:30px;z-index:3;writing-mode:vertical-rl;font-size:9px;letter-spacing:.3em}
.scroll:after{content:"";display:block;width:1px;height:72px;background:rgba(255,255,255,.5);margin:16px auto 0}

/* shared */
.section{padding:clamp(88px,9vw,142px) 0}
.section-label{font-size:10px;letter-spacing:.3em;color:var(--navy-2);font-weight:700;margin-bottom:20px}
.display{font-family:var(--serif);font-size:clamp(44px,6.2vw,86px);line-height:1.08;font-weight:400;letter-spacing:.02em;margin:0}
.lead{font-family:var(--serif);font-size:clamp(25px,3vw,40px);line-height:1.62;letter-spacing:.08em;margin:0}
.body{font-size:15px;line-height:2.25;color:#3b495b;margin:0}
.reveal{opacity:0;transform:translateY(22px);transition:.78s}
.reveal.show{opacity:1;transform:none}

/* about */
.about-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(56px,8vw,120px);align-items:start}
.about-title{position:sticky;top:116px}
.about-copy{max-width:720px}
.about-copy .lead{margin-bottom:30px}

/* projects */
.projects{background:var(--paper)}
.projects-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:50px}
.project-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:22px}
.project-main,.project-sub{position:relative;overflow:hidden;color:#fff;background-size:cover;background-position:center}
.project-main{min-height:600px;background-image:url("../img/project-main.jpg")}
.project-sub{min-height:289px}
.project-sub.one{background-image:url("../img/project-sub1.jpg")}
.project-sub.two{background-image:url("../img/project-sub2.jpg")}
.project-stack{display:grid;gap:22px}
.project-main:before,.project-sub:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,15,28,.03),rgba(5,15,28,.75))}
.project-copy{position:absolute;z-index:2;left:28px;right:28px;bottom:26px}
.project-en{font-size:10px;letter-spacing:.22em;margin-bottom:9px}
.project-jp{font-family:var(--serif);font-size:26px;letter-spacing:.08em}

/* business */
.business-head{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:end;margin-bottom:54px}
.business-list{border-top:1px solid #bcc6d0}
.business-row{display:grid;grid-template-columns:72px 1.05fr 1fr;gap:28px;align-items:center;padding:28px 0;border-bottom:1px solid #d1d7de;transition:.25s}
.business-row:hover{padding-left:12px}
.business-no{font-family:var(--serif);font-size:13px;color:var(--navy-2)}
.business-name{font-family:var(--serif);font-size:clamp(22px,2.3vw,32px);letter-spacing:.07em}
.business-jp{font-size:14px;color:var(--muted)}

/* philosophy */
.philosophy{background:var(--navy);color:#fff}
.philosophy-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.14)}
.philosophy-panel{background:var(--navy);padding:clamp(42px,6vw,76px)}
.philosophy-panel.light{background:#fff;color:var(--ink)}
.philosophy .section-label{color:#aec2d7}
.philosophy-panel.light .section-label{color:var(--navy-2)}
.philosophy-panel .display{font-size:clamp(40px,5.1vw,70px)}
.formula{font-size:13px;line-height:2;letter-spacing:.16em;color:#b9cce0;margin-top:23px;font-weight:700}
.philosophy-panel.light .formula{color:var(--navy-2)}
.philosophy-text{font-size:14px;line-height:2.2;color:#d7e0e9;margin:28px 0 0}
.philosophy-panel.light .philosophy-text{color:var(--muted)}

/* company */
.company-grid{display:grid;grid-template-columns:.66fr 1.34fr;gap:80px}
.company-table{border-top:1px solid #c8d0d9}
.row{display:grid;grid-template-columns:190px 1fr;padding:22px 0;border-bottom:1px solid var(--line)}
.row dt{font-size:10px;letter-spacing:.19em;color:var(--navy-2);font-weight:700}
.row dd{margin:0;font-size:14px;color:#2d3b4f;white-space:pre-line}

/* contact/footer */
.contact{background:var(--paper);text-align:center}
.contact .display{font-size:clamp(54px,8vw,108px)}
.contact p{color:var(--muted);margin:24px 0 36px}
.actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-width:230px;height:54px;border:1px solid var(--navy);font-size:12px;letter-spacing:.15em}
.btn.primary{background:var(--navy);color:#fff}
.footer{background:#050a12;color:#aab6c4;padding:46px clamp(24px,5vw,70px)}
.footer-grid{display:grid;grid-template-columns:1.1fr .9fr 1fr;gap:40px}
.footer-logo{width:185px;filter:brightness(0) invert(1);margin-bottom:14px}
.footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;font-size:11px;letter-spacing:.15em}
.footer-address{font-size:11px;line-height:1.9}
.copy{margin-top:28px;font-size:10px;color:#697585}

@media(max-width:980px){
  .hero-intro{width:40vw}
  .about-grid,.business-head,.company-grid{grid-template-columns:1fr}
  .about-title{position:static}
  .project-grid{grid-template-columns:1fr}
  .project-main{min-height:500px}
  .project-sub{min-height:320px}
}
@media(max-width:760px){
  .container{width:calc(100% - 36px)}
  .header{height:74px;padding:0 18px}
  .header.scrolled{height:68px}
  .header-logo{width:155px}
  .nav{position:fixed;top:68px;left:0;right:0;background:#fff;color:var(--navy);padding:24px;display:none;flex-direction:column;align-items:flex-start;box-shadow:0 16px 36px rgba(8,23,42,.12)}
  .nav.open{display:flex}
  .menu{display:block}
  .hero{min-height:92svh;align-items:flex-end;padding-bottom:52px}
  .hero-inner{padding-top:90px}
  .hero-wordmark{width:min(480px,92vw)}
  .hero-jp{font-size:19px;margin-left:18px;letter-spacing:.15em}
  .hero-intro{position:relative;right:auto;top:auto;transform:none;width:auto;margin:30px 18px 0;border-left:1px solid rgba(255,255,255,.5);padding-left:20px}
  .hero-intro p{font-size:13px;line-height:2}
  .scroll{display:none}
  .section{padding:74px 0}
  .section-label{font-size:9.5px}
  .display{font-size:42px}
  .lead{font-size:26px}
  .body{font-size:13.8px;line-height:2.05}
  .projects-head{display:block}
  .projects-head .small-link{margin-top:22px}
  .project-main,.project-sub{min-height:330px}
  .project-copy{left:22px;right:22px;bottom:22px}
  .project-jp{font-size:22px}
  .business-row{grid-template-columns:42px 1fr;padding:23px 0;gap:14px}
  .business-jp{grid-column:2}
  .philosophy-grid{grid-template-columns:1fr}
  .philosophy-panel{padding:34px 22px}
  .company-grid{gap:34px}
  .row{grid-template-columns:1fr}
  .row dt{margin-bottom:8px}
  .actions{display:grid}
  .btn{width:100%;min-width:0}
  .footer-grid{grid-template-columns:1fr}
}

/* ===== Trust 2026-08 fix: SPでヒーローを縦積みにする ===== */
@media(max-width:760px){
  .hero{flex-direction:column;align-items:stretch;justify-content:flex-end}
  .hero-inner{width:calc(100% - 36px);padding-top:100px}
  .hero-intro{margin:26px 18px 0}
}
/* WP管理バー表示時のヘッダー位置ずれ防止 */
body.admin-bar .header{top:32px}
@media(max-width:782px){body.admin-bar .header{top:46px}}

/* Trust: h1化に伴う見た目維持／ロゴimgにwidth,height属性を付けたためCSS側で比率維持(検品指摘#1)／旧下層ページ #access の着地点 */
h1.hero-jp{font-weight:400}
.header-logo,.footer-logo,.logo{height:auto}
.anchor-alias{display:block;height:0;overflow:hidden}

