/* ===================== テーマ（A基調＋濃色セクションはネイビー） ===================== */
body{
  --s1-bg:#FFFFFF; --s1-tx:#14100E; --s1-mu:#6B6058; --s1-ln:#E5DED5; --s1-ac:#A76437; --s1-ac2:#8A5029;
  --s2-bg:#F5F2ED; --s2-tx:#14100E; --s2-mu:#6B6058; --s2-ln:#E0D8CD; --s2-ac:#A76437; --s2-ac2:#8A5029;
  --s3-bg:#0E1B2F; --s3-tx:#F2F6FA; --s3-mu:#B4C4D6; --s3-ln:rgba(255,255,255,.20); --s3-ac:#E8B37D; --s3-ac2:#F0C79A;
  --shadow:0 18px 50px -28px rgba(14,27,47,.34);
}
.s1{--bg:var(--s1-bg);--tx:var(--s1-tx);--mu:var(--s1-mu);--ln:var(--s1-ln);--ac:var(--s1-ac);--ac2:var(--s1-ac2)}
.s2{--bg:var(--s2-bg);--tx:var(--s2-tx);--mu:var(--s2-mu);--ln:var(--s2-ln);--ac:var(--s2-ac);--ac2:var(--s2-ac2)}
.s3{--bg:var(--s3-bg);--tx:var(--s3-tx);--mu:var(--s3-mu);--ln:var(--s3-ln);--ac:var(--s3-ac);--ac2:var(--s3-ac2)}

/* ネイビー面の可読性補正：明色文字は細く見えるため、描画・サイズ・太さを底上げ */
.s3,.s3 *,footer,footer *,.hero-stats,.hero-stats *{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}
.s3 .eyebrow{font-size:11.5px;font-weight:500}
.s3 .lede{font-size:16px;line-height:2.05}
.s3 .svc-no{font-size:12px;opacity:1}
.s3 .svc-name span{font-size:13px;font-weight:500}
.s3 .svc-prob{font-size:14.5px}
.s3 .svc-prob b{font-weight:700;font-size:15px}
.s3 .svc-go{font-size:11.5px;font-weight:500}
.s3 .price-tag{font-size:12.5px;color:var(--ac2);opacity:.9}
.s3 .cta p{font-size:15.5px}
.hero-stats .l{font-size:11px;color:var(--s3-mu)}
.ft-addr,.ft-col ul{font-size:13.5px}
.ft-col h4{font-size:11px}
.ft-bot{font-size:12.5px}

:root{--maxw:1180px;--ease:cubic-bezier(.22,.61,.36,1)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--s1-bg); color:var(--s1-tx);
  font-family:"Zen Kaku Gothic New","Jost",-apple-system,sans-serif;
  font-weight:400; line-height:1.85; letter-spacing:.02em;
  -webkit-font-smoothing:antialiased; transition:background .5s var(--ease),color .5s var(--ease);
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--ac,#A76437);outline-offset:3px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
section{padding:clamp(84px,10vw,136px) 0;background:var(--bg);color:var(--tx);transition:background .5s var(--ease),color .5s var(--ease)}

/* ===================== 共通パーツ ===================== */
.eyebrow{
  font-family:"JetBrains Mono",monospace; font-size:11px; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase; color:var(--ac);
  display:flex; align-items:center; gap:12px; margin-bottom:22px;
}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--ac);flex:none}
h2.sec{font-family:"Jost",sans-serif;font-weight:600;font-size:clamp(30px,4.2vw,46px);line-height:1.25;letter-spacing:-.005em;margin-bottom:20px}
h2.sec .jp{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:.78em;letter-spacing:.01em}
.lede{font-size:15.5px;color:var(--mu);max-width:660px;line-height:2}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:"Zen Kaku Gothic New";font-weight:700;font-size:14.5px;
  padding:17px 30px;border:1px solid transparent;cursor:pointer;
  clip-path:polygon(0 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 14px 100%, 0 calc(100% - 14px));
  transition:.35s var(--ease);
}
.btn-fill{background:var(--ac);color:#fff}
.btn-fill:hover{background:var(--ac2)}
.btn-line{border-color:var(--ln);color:var(--tx)}
.btn-line:hover{border-color:var(--ac);color:var(--ac)}
.btn .ar{font-family:"Jost";font-weight:400;transition:transform .35s var(--ease)}
.btn:hover .ar{transform:translateX(5px)}

/* ===================== ヘッダー ===================== */
header{position:fixed;inset:0 0 auto 0;z-index:100;padding:16px 0;transition:.4s var(--ease);border-bottom:1px solid transparent}
header.solid{background:color-mix(in srgb,var(--s1-bg) 93%,transparent);backdrop-filter:blur(14px);border-bottom-color:var(--s1-ln);padding:11px 0}
.hd{display:flex;align-items:center;justify-content:space-between;gap:24px}
.hd .logo{height:34px;width:auto;transition:.4s var(--ease)}
header.solid .hd .logo{height:29px}
nav ul{display:flex;align-items:center;gap:28px;list-style:none}
nav a{font-size:13.5px;font-weight:500;position:relative;padding:4px 0;color:var(--s1-tx);transition:.3s}
nav a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--s1-ac);transition:width .3s var(--ease)}
nav a:hover::after{width:100%}
nav a:hover{color:var(--s1-ac)}
.hd .btn{padding:12px 22px;font-size:13px;background:var(--s1-ac);color:#fff}
.hd .btn:hover{background:var(--s1-ac2)}
.burger{display:none;background:none;border:0;cursor:pointer;padding:8px;flex-direction:column;gap:5px}
.burger span{display:block;width:22px;height:1.5px;background:var(--s1-tx);transition:.3s}

/* ===================== ヒーロー ===================== */
.hero{padding:0;position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.02fr .98fr;min-height:100vh;align-items:center;gap:56px}
.hero-copy{padding:150px 0 110px}
.hero h1{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:clamp(36px,5.6vw,68px);line-height:1.28;letter-spacing:-.02em;margin:0 0 16px}
.hero h1 em{font-style:normal;color:var(--ac);position:relative}
.hero .mission-label{font-family:"JetBrains Mono";font-size:10.5px;letter-spacing:.2em;color:var(--mu);margin-bottom:34px;display:block}
.hero p.sub{font-size:16px;color:var(--mu);max-width:520px;line-height:2.05;margin-bottom:42px}
.hero .acts{display:flex;gap:14px;flex-wrap:wrap}
.badge{display:inline-flex;align-items:center;margin-bottom:30px;font-family:"Zen Kaku Gothic New";font-weight:500;font-size:11.5px;letter-spacing:.07em;
  color:var(--ac);border:1px solid var(--ln);padding:9px 16px;
  clip-path:polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));}
.hero-media{position:relative;height:100vh;min-height:600px}
.hero-media img{width:100%;height:100%;object-fit:cover;clip-path:polygon(88px 0,100% 0,100% 100%,0 100%,0 88px)}
.hero-media::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(100deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 55%,transparent) 26%,transparent 62%)}
.hero-stats{position:absolute;left:-1px;bottom:0;z-index:3;background:var(--s3-bg);color:var(--s3-tx);border-top:1px solid var(--s3-ac);display:flex}
.hero-stats div{padding:20px 26px;border-right:1px solid rgba(255,255,255,.1)}
.hero-stats div:last-child{border-right:0}
.hero-stats .n{font-family:"Jost";font-weight:500;font-size:25px;color:var(--s3-ac);line-height:1.1}
.hero-stats .l{font-size:10.5px;color:var(--s3-mu);letter-spacing:.06em;margin-top:3px}
.scroll-cue{position:absolute;left:28px;bottom:34px;z-index:4;font-family:"JetBrains Mono";font-size:10px;letter-spacing:.2em;color:var(--mu);display:flex;align-items:center;gap:10px}
.scroll-cue::after{content:"";width:44px;height:1px;background:linear-gradient(90deg,var(--ac),transparent);animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{transform:scaleX(.2);transform-origin:left}55%{transform:scaleX(1);transform-origin:left}56%{transform-origin:right}100%{transform:scaleX(0);transform-origin:right}}

/* ===================== 理念 ===================== */
.phil-top{display:grid;grid-template-columns:1fr 1fr;gap:56px;padding-bottom:66px;margin-bottom:66px;border-bottom:1px solid var(--ln)}
.phil-block .tag{font-family:"JetBrains Mono";font-size:10.5px;letter-spacing:.2em;color:var(--ac);display:block;margin-bottom:16px}
.phil-block h3{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:clamp(24px,3vw,34px);line-height:1.45;letter-spacing:-.01em;margin-bottom:16px}
.phil-block p{font-size:15px;color:var(--mu);line-height:2.05}
.key-head{max-width:660px;margin-bottom:56px}
.key-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ln)}
.key-item{padding:44px 34px 8px;border-right:1px solid var(--ln);position:relative;transition:.45s var(--ease)}
.key-item:last-child{border-right:0}
.key-item::before{content:"";position:absolute;top:-1px;left:0;width:0;height:2px;background:var(--ac);transition:width .55s var(--ease)}
.key-item:hover::before{width:100%}
.key-letter{font-family:"Jost",sans-serif;font-weight:600;font-size:clamp(78px,10vw,124px);line-height:.86;
  color:transparent;-webkit-text-stroke:1.2px var(--ac);letter-spacing:-.03em;transition:.45s var(--ease)}
.key-item:hover .key-letter{color:var(--ac)}
.key-en{font-family:"Jost";font-weight:500;font-size:17px;letter-spacing:.13em;margin:20px 0 4px}
.key-jp{font-family:"JetBrains Mono";font-size:11px;letter-spacing:.14em;color:var(--ac);margin-bottom:16px}
.key-desc{font-size:14.5px;color:var(--mu);line-height:1.95;padding-bottom:34px}

/* ===================== サービス ===================== */
.svc-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:56px;flex-wrap:wrap}
.svc-list{border-top:1px solid var(--ln)}
.svc{display:grid;grid-template-columns:76px 1.15fr 1.5fr auto;gap:34px;align-items:center;
  padding:38px 20px 38px 6px;border-bottom:1px solid var(--ln);transition:.45s var(--ease);position:relative}
.svc::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:color-mix(in srgb,var(--ac) 13%,transparent);transition:width .5s var(--ease);z-index:0}
.svc:hover::before{width:100%}
.svc>*{position:relative;z-index:1}
.svc:hover{padding-left:22px}
.svc-no{font-family:"JetBrains Mono";font-size:11px;letter-spacing:.14em;color:var(--ac);opacity:.75}
.svc-name{font-family:"Jost";font-weight:600;font-size:23px;line-height:1.3}
.svc-name span{display:block;font-family:"Zen Kaku Gothic New";font-weight:500;font-size:12.5px;color:var(--ac);letter-spacing:.08em;margin-top:7px}
.svc-prob{font-size:14px;color:var(--mu);line-height:1.9}
.svc-prob b{display:block;color:var(--tx);font-weight:500;font-size:14.5px;margin-bottom:5px}
.svc-go{display:flex;align-items:center;gap:11px;font-family:"JetBrains Mono";font-size:11px;letter-spacing:.1em;color:var(--ac);white-space:nowrap}
.svc-go .ar{font-size:15px;transition:transform .4s var(--ease)}
.svc:hover .svc-go .ar{transform:translateX(6px)}
.price-tag{font-family:"Jost";font-weight:500;font-size:12px;letter-spacing:.04em;color:var(--mu);display:block;margin-top:6px}

/* ===================== 選ばれる理由 ===================== */
.why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--ln);margin-top:58px}
.why{background:var(--bg);padding:44px 40px;transition:.4s var(--ease)}
.why:hover{background:color-mix(in srgb,var(--ac) 6%,var(--bg))}
.why-n{font-family:"JetBrains Mono";font-size:11px;color:var(--ac);letter-spacing:.14em;margin-bottom:22px;display:block}
.why h3{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:19px;line-height:1.55;margin-bottom:14px}
.why p{font-size:14.5px;color:var(--mu);line-height:1.95}

/* ===================== 実績 ===================== */
.work-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;margin-top:56px}
.work{background:var(--s1-bg);color:var(--s1-tx);border:1px solid var(--ln);padding:38px 36px;
  clip-path:polygon(0 0, calc(100% - 26px) 0, 100% 26px, 100% 100%, 0 100%);transition:.4s var(--ease)}
.work:hover{border-color:var(--ac);transform:translateY(-3px);box-shadow:var(--shadow)}
.work-tag{font-family:"JetBrains Mono";font-size:10.5px;letter-spacing:.13em;color:var(--ac);margin-bottom:18px;display:block}
.work h3{font-family:"Zen Kaku Gothic New";font-weight:700;font-size:18px;line-height:1.6;margin-bottom:20px}
.work-kpi{display:flex;gap:34px;padding-top:22px;border-top:1px solid var(--ln)}
.work-kpi .n{font-family:"Jost";font-weight:500;font-size:29px;color:var(--ac);line-height:1.1}
.work-kpi .l{font-size:11.5px;color:var(--mu);margin-top:4px}
.dummy-note{margin-top:26px;font-family:"JetBrains Mono";font-size:11px;letter-spacing:.05em;color:var(--mu);opacity:.8}

/* ===================== 役員紹介 ===================== */
.exec{display:grid;grid-template-columns:300px 1fr;gap:48px;align-items:start;
  padding:52px 0;border-bottom:1px solid var(--ln)}
.exec:first-of-type{border-top:1px solid var(--ln)}
.exec-photo img{width:100%;aspect-ratio:3/4;object-fit:cover;
  clip-path:polygon(0 0, calc(100% - 24px) 0, 100% 24px, 100% 100%, 0 100%)}
.exec-role{font-family:"JetBrains Mono";font-size:10.5px;letter-spacing:.16em;color:var(--ac);display:block;margin-bottom:12px}
.exec-name{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:27px;letter-spacing:.02em;line-height:1.3}
.exec-name small{display:block;font-family:"Jost";font-weight:400;font-size:12.5px;letter-spacing:.14em;color:var(--mu);margin-top:8px}
.exec-bio{font-size:14.5px;color:var(--mu);line-height:2.05;margin-top:24px;max-width:660px}
.exec-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}
.exec-tags span{font-family:"JetBrains Mono";font-size:10px;letter-spacing:.08em;color:var(--ac);border:1px solid var(--ln);padding:6px 12px}

/* ===================== News ===================== */
.news-list{border-top:1px solid var(--ln);margin-top:50px}
.news{display:grid;grid-template-columns:118px 132px 1fr auto;gap:26px;align-items:center;
  padding:26px 12px 26px 0;border-bottom:1px solid var(--ln);transition:.35s var(--ease)}
.news:hover{background:color-mix(in srgb,var(--ac) 7%,var(--bg));padding-left:14px}
.news time{font-family:"JetBrains Mono";font-size:12px;color:var(--mu)}
.news .cat{font-family:"JetBrains Mono";font-size:10px;letter-spacing:.1em;color:var(--ac);border:1px solid var(--ln);padding:5px 0;text-align:center}
.news .ttl{font-size:15px;font-weight:500;line-height:1.65}
.news .ar{font-family:"Jost";color:var(--ac);transition:transform .35s var(--ease)}
.news:hover .ar{transform:translateX(5px)}

/* ===================== CTA ===================== */
.cta{position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;right:-90px;top:-90px;width:420px;height:420px;border:1px solid color-mix(in srgb,var(--ac) 22%,transparent);transform:rotate(45deg)}
.cta-in{position:relative;z-index:1;text-align:center;max-width:740px;margin:0 auto}
.cta .eyebrow{justify-content:center}
.cta h2{font-family:"Zen Kaku Gothic New";font-weight:900;font-size:clamp(26px,3.6vw,40px);line-height:1.45;margin-bottom:22px}
.cta p{color:var(--mu);font-size:15px;line-height:2;margin-bottom:38px}
.cta .acts{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* ===================== フッター ===================== */
footer{background:var(--s3-bg);color:var(--s3-mu);padding:72px 0 34px;font-size:13.5px;transition:background .5s var(--ease)}
.ft-top{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid var(--s3-ln)}
.ft-logo{height:32px;width:auto;margin-bottom:22px}
.ft-addr{line-height:2;font-size:13px}
.ft-col h4{font-family:"JetBrains Mono";font-size:10.5px;letter-spacing:.16em;color:var(--s3-ac);margin-bottom:20px;font-weight:500}
.ft-col ul{list-style:none;display:flex;flex-direction:column;gap:13px}
.ft-col a:hover{color:var(--s3-ac)}
.ft-bot{display:flex;justify-content:space-between;gap:20px;padding-top:26px;font-size:12px;flex-wrap:wrap}
.ft-bot a:hover{color:var(--s3-ac)}

/* ===================== 出現アニメーション ===================== */
.rv{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rv.in{opacity:1;transform:none}

/* ===================== レスポンシブ ===================== */
@media(max-width:1040px){
  .hero-grid{grid-template-columns:1fr;min-height:auto}
  .hero-copy{padding:132px 0 60px}
  .hero-media{height:52vh;min-height:330px}
  .hero-media img{clip-path:polygon(56px 0,100% 0,100% 100%,0 100%,0 56px)}
  .phil-top{grid-template-columns:1fr;gap:40px}
  .svc{grid-template-columns:56px 1fr;gap:18px 20px}
  .svc-prob,.svc-go{grid-column:2}
  .exec{grid-template-columns:220px 1fr;gap:34px}
}
@media(max-width:780px){
  nav ul{display:none}
  .hd .btn{display:none}
  .burger{display:flex}
  nav.open ul{display:flex;position:fixed;inset:62px 0 auto 0;background:var(--s3-bg);flex-direction:column;align-items:flex-start;gap:0;padding:14px 28px 30px}
  nav.open ul li{width:100%;border-bottom:1px solid var(--s3-ln)}
  nav.open ul a{display:block;padding:17px 0;color:var(--s3-tx);font-size:15px}
  .key-grid{grid-template-columns:1fr}
  .key-item{border-right:0;border-bottom:1px solid var(--ln);padding:34px 0 4px}
  .why-grid,.work-grid{grid-template-columns:1fr}
  .why{padding:34px 26px}
  .exec{grid-template-columns:1fr;gap:26px;padding:40px 0}
  .exec-photo{max-width:220px}
  .news{grid-template-columns:1fr;gap:9px;padding:22px 0}
  .news .cat{justify-self:start;padding:5px 14px}
  .news .ar{display:none}
  .hero-stats{position:static;width:100%}
  .hero-stats div{flex:1;padding:16px 14px}
  .ft-top{grid-template-columns:1fr;gap:38px}
  .wrap{padding:0 22px}
}