:root{
    --navy:#1E2A44;
    --navy-2:#27365A;
    --bg:#FAF9F6;
    --bg-2:#EEEAE0;
    --surface:#FFFFFF;
    --accent:#E8742B;
    --accent-2:#F4A86A;
    --accent-dark:#C95E1C;
    --accent-text:#C0560F;
    --muted:#5A6275;
    --line:rgba(30,42,68,.12);
    --line-2:rgba(30,42,68,.07);
    --maxw:1100px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{
    font-family:"Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN",sans-serif;
    color:var(--navy);background:var(--bg);line-height:1.85;
    -webkit-font-smoothing:antialiased;font-size:16px;overflow-x:clip;
  }
  a{color:inherit;text-decoration:none}
  svg{display:block}
  img{max-width:100%}
  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
  .serif{font-family:"Noto Serif JP",serif}

  header{position:sticky;top:0;z-index:50;background:rgba(250,249,246,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-2)}
  .nav{display:flex;align-items:center;justify-content:space-between;height:70px}
  .logo{display:flex;align-items:center;gap:11px;font-weight:700;font-size:18px;letter-spacing:.02em}
  .logo .mark{width:34px;height:34px;flex:none}
  .logo-img{height:38px;width:auto;display:block}
  .menu{display:flex;gap:28px;font-size:14px;font-weight:500}
  .menu a{color:var(--muted);transition:color .2s}
  .menu a:hover{color:var(--accent-text)}
  .m-only{display:none}
  .nav-cta{display:inline-block;background:var(--accent);color:#fff;font-size:13px;font-weight:500;padding:10px 20px;border-radius:9px;transition:background .2s}
  .nav-cta:hover{background:var(--accent-dark)}
  .burger{display:none;background:none;border:none;color:var(--navy);cursor:pointer;padding:6px}

  .hero{position:relative;overflow:hidden}
  .hero::before{content:"";position:absolute;width:720px;height:720px;border-radius:50%;background:var(--bg-2);right:-180px;top:-240px;z-index:0;pointer-events:none}
  .hero-inner{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:48px;align-items:center;padding:40px 24px 44px;position:relative;z-index:1}
  .eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--accent-text);font-size:12.5px;font-weight:500;letter-spacing:.16em;margin-bottom:26px}
  .eyebrow::before{content:"";width:26px;height:1px;background:var(--accent-text)}
  .hero h1{font-size:clamp(28px,4.4vw,50px);line-height:1.34;font-weight:600;letter-spacing:.01em;margin-bottom:26px}
  .hero h1 span{display:block}
  .hero h1 em{font-style:normal;color:var(--accent)}
  .hero .lead{font-size:16.5px;color:var(--muted);max-width:540px;margin-bottom:36px}
  .btns{display:flex;gap:14px;flex-wrap:wrap}
  .btn{display:inline-flex;align-items:center;gap:9px;font-size:15px;font-weight:500;padding:14px 28px;border-radius:11px;transition:all .2s}
  .btn svg{width:17px;height:17px}
  .btn-primary{background:var(--accent);color:#fff}
  .btn-primary:hover{background:var(--accent-dark);transform:translateY(-2px)}
  .btn-ghost{border:1px solid var(--line);color:var(--navy);background:var(--surface)}
  .btn-ghost:hover{border-color:var(--accent);color:var(--accent-text)}
  .hero-art{position:relative}
  .hero-art svg{width:100%;height:auto;max-width:460px;margin:0 auto}

  .stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-2)}
  .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line)}
  .stat{background:var(--bg-2);padding:24px 18px;text-align:center}
  .stat .n{font-family:"Noto Serif JP",serif;font-size:34px;font-weight:600;color:var(--navy);line-height:1.1}
  .stat .n small{font-size:16px;color:var(--accent-text);margin-left:3px}
  .stat .l{font-size:12.5px;color:var(--muted);margin-top:8px;letter-spacing:.02em}

  section{padding:84px 0}
  .sec-head{margin-bottom:50px;max-width:680px}
  .sec-head .label{display:inline-flex;align-items:center;gap:8px;color:var(--accent-text);font-size:12.5px;font-weight:500;letter-spacing:.14em;margin-bottom:14px}
  .sec-head .label::before{content:"";width:22px;height:1px;background:var(--accent-text)}
  .sec-head h2{font-size:clamp(27px,3.6vw,38px);font-weight:600;line-height:1.4}
  .sec-head .lead{color:var(--muted);margin-top:16px}

  .approach{background:var(--surface);border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
  .flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:stretch;gap:18px}
  .flow .step{background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:30px 24px;text-align:center}
  .flow .step .ic{width:46px;height:46px;margin:0 auto 16px;color:var(--navy)}
  .flow .step h3{font-size:16px;font-weight:600;margin-bottom:8px}
  .flow .step p{font-size:14.5px;color:var(--muted);line-height:1.7}
  .flow .arrow{display:flex;align-items:center;color:var(--accent-2)}
  .flow .arrow svg{width:26px;height:26px}

  .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .card{position:relative;border:1px solid var(--line);border-radius:18px;padding:34px 30px;background:var(--surface);transition:transform .25s,border-color .25s,box-shadow .25s;display:flex;flex-direction:column;overflow:hidden}
  .card:hover{transform:translateY(-5px);border-color:var(--accent);box-shadow:0 12px 30px rgba(30,42,68,.08)}
  .card .ic{width:50px;height:50px;border-radius:13px;background:rgba(30,42,68,.06);color:var(--navy);display:flex;align-items:center;justify-content:center;margin-bottom:20px}
  .card .ic svg{width:26px;height:26px}
  .card .num{position:absolute;top:26px;right:30px;font-family:"Noto Serif JP",serif;font-size:15px;color:var(--line);font-weight:700}
  .card h3{font-size:19px;font-weight:600;margin-bottom:13px;display:flex;align-items:center;flex-wrap:wrap;gap:8px}
  .card p{font-size:14.5px;color:var(--muted);flex:1}
  .card .more{margin-top:22px;font-size:14px;font-weight:500;color:var(--accent-text);display:inline-flex;align-items:center;gap:6px}
  .card .more svg{width:15px;height:15px;transition:transform .2s}
  .card:hover .more svg{transform:translateX(4px)}
  .tag-soon{font-size:11px;font-weight:500;color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:2px 11px}

  .stance{background:var(--navy);color:#fff;position:relative;overflow:hidden}
  .stance .deco{position:absolute;right:-90px;top:-80px;width:480px;height:480px;opacity:1}
  .stance .label{color:var(--accent-2)}
  .stance .label::before{background:var(--accent-2)}
  .stance h2{color:#fff}
  .stance .body{font-size:18.5px;line-height:2.05;max-width:740px;color:rgba(255,255,255,.88);position:relative}

  .voice-box{display:flex;flex-direction:column;align-items:stretch;gap:22px;border:1px solid var(--line);border-radius:22px;padding:40px 40px;background:var(--surface)}
  .voice-box .vt{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
  .voice-box>.btn{align-self:flex-end}
  .voice-box .ic{width:52px;height:52px;border-radius:13px;background:rgba(30,42,68,.06);color:var(--navy);display:flex;align-items:center;justify-content:center;flex:none}
  .voice-box .ic svg{width:28px;height:28px}
  .voice-box h2{font-size:25px;font-weight:600;margin-bottom:8px}
  .voice-box p{color:var(--muted);font-size:14.5px}

  .company{background:var(--bg-2);border-top:1px solid var(--line-2)}
  .co-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 72px}
  .co-grid .row{display:flex;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid var(--line)}
  .co-grid .row dt{color:var(--muted);font-size:13.5px;white-space:nowrap}
  .co-grid .row dd{font-size:14.5px;text-align:right}

  footer{background:var(--navy);color:rgba(255,255,255,.8);padding:60px 0 36px}
  .foot-top{display:flex;justify-content:space-between;gap:34px;flex-wrap:wrap;margin-bottom:38px}
  .foot-brand{display:flex;align-items:center;gap:11px;font-weight:700;font-size:17px;color:#fff;margin-bottom:12px}
  .foot-brand .mark{width:30px;height:30px}
  .foot-tag{font-size:13px;color:rgba(255,255,255,.6)}
  .foot-links{display:flex;gap:26px;flex-wrap:wrap;font-size:14px}
  .foot-links a{color:rgba(255,255,255,.8);transition:color .2s}
  .foot-links a:hover{color:var(--accent-2)}
  .copy{border-top:1px solid rgba(255,255,255,.16);padding-top:24px;font-size:12.5px;color:rgba(255,255,255,.55)}

  .page-head{padding:54px 0 6px}
  .page-head h1{font-size:clamp(30px,4.6vw,48px);font-weight:600;line-height:1.32;margin-top:8px}
  .page-lead{color:var(--muted);margin-top:16px;max-width:680px}
  .info{max-width:820px}
  .info .row{display:grid;grid-template-columns:210px 1fr;gap:18px;padding:18px 2px;border-bottom:1px solid var(--line)}
  .info dt{color:var(--muted);font-size:14px}
  .info dd{font-size:15.5px;line-height:1.75}
  .info dd a{color:var(--accent-text);text-decoration:underline;text-underline-offset:2px}
  .info dd .sub{display:block;color:var(--muted);font-size:13px;margin-top:3px}
  .page-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:40px}

  .svc{padding:72px 0;scroll-margin-top:84px}
  .svc+.svc{border-top:1px solid var(--line-2)}
  .svc-alt{background:var(--bg-2)}
  .svc-block{max-width:760px}
  .svc-block .ic{width:54px;height:54px;border-radius:14px;background:rgba(30,42,68,.06);color:var(--navy);display:flex;align-items:center;justify-content:center;margin-bottom:20px}
  .svc-block .ic svg{width:28px;height:28px}
  .svc-block h2{font-size:clamp(24px,3.4vw,32px);font-weight:600;margin-bottom:14px}
  .svc-block .lead{font-size:17px;color:var(--navy);margin-bottom:16px}
  .svc-block p{color:var(--muted);margin-bottom:18px;line-height:1.9}
  .svc-points{list-style:none;display:flex;flex-direction:column;gap:9px;margin:0 0 24px}
  .svc-points li{position:relative;padding-left:22px;color:var(--muted);font-size:14.5px;line-height:1.7}
  .svc-points li::before{content:"";position:absolute;left:0;top:10px;width:7px;height:7px;border-radius:50%;background:var(--accent)}
  .svc-eg{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--accent-text);border:1px solid var(--line);border-radius:10px;padding:10px 16px}
  .svc-eg svg{width:15px;height:15px}

  .disclaimer{font-size:13.5px;color:var(--muted);max-width:760px;margin-top:14px;line-height:1.7}
  .voice-item{max-width:760px;padding:48px 0}
  .voice-item+.voice-item{border-top:1px solid var(--line-2)}
  .video-wrap{position:relative;width:100%;padding-top:56.25%;border-radius:14px;overflow:hidden;background:#0d1117;margin-bottom:24px}
  .video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
  .voice-photo{display:block;border-radius:14px;max-width:300px;width:100%;height:auto;margin-bottom:24px;border:1px solid var(--line)}
  .voice-name{font-size:14px;color:var(--muted);margin-bottom:18px}
  .voice-item h3{font-size:clamp(22px,2.6vw,27px);font-weight:600;margin-bottom:10px;line-height:1.5}
  .voice-item p{color:var(--muted);line-height:1.95;margin-bottom:14px;font-size:16px}
  .voice-qa .q{font-weight:500;color:var(--navy);margin:20px 0 6px;font-size:16px}

  .legal{max-width:820px;line-height:1.95}
  .legal p{margin-bottom:11px;font-size:16px}
  .legal h2{font-size:17px;font-weight:600;margin:36px 0 10px}
  .legal .rev{margin-top:40px;color:var(--muted);font-size:14px;line-height:1.9}
  .legal ul,.legal ol{margin:4px 0 14px;padding-left:1.4em}
  .legal li{margin-bottom:5px;font-size:16px}
  .legal .info{margin-bottom:8px}
  .legal h2:not(:first-child){margin-top:40px}

  .profile-head{display:flex;gap:26px;align-items:center;margin-bottom:30px;flex-wrap:wrap}
  .profile-head img{width:120px;height:120px;border-radius:16px;object-fit:cover}
  .profile-head .pname{font-size:14px;color:var(--muted);line-height:1.7}
  .profile-head .pname strong{display:block;font-size:18px;color:var(--navy);font-weight:600;margin-bottom:2px}
  .greeting,.bio{max-width:760px}
  .greeting h2,.bio h2{font-size:20px;font-weight:600;margin:0 0 16px}
  .greeting{line-height:2}
  .greeting p{margin-bottom:18px}
  .greeting .sign{margin-top:26px;color:var(--muted);font-size:14px;line-height:1.8}
  .bio{margin-top:44px;padding-top:40px;border-top:1px solid var(--line-2)}
  .bio p{color:var(--muted);margin:3px 0;font-size:15px;line-height:1.8}
  .bio .period{font-weight:600;margin:24px 0 6px;color:var(--navy)}
  .bio .period:first-of-type{margin-top:0}

  .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease}
  .reveal.in{opacity:1;transform:none}
  .grid3 .card.reveal:nth-child(2){transition-delay:.07s}
  .grid3 .card.reveal:nth-child(3){transition-delay:.14s}

  @media(max-width:980px){
    .hero-inner{grid-template-columns:1fr;gap:28px;padding:28px 24px 36px}
    .hero-art svg{max-width:300px}
    .hero::before{display:none}
  }
  @media(max-width:880px){
    .flow{grid-template-columns:1fr;gap:14px}
    .flow .arrow{transform:rotate(90deg);justify-content:center}
    .grid3{grid-template-columns:1fr}
    .co-grid{grid-template-columns:1fr;gap:0}
    .stats-grid{grid-template-columns:1fr 1fr}
    .info .row{grid-template-columns:1fr;gap:4px;padding:14px 2px}
    .svc{padding:52px 0}
    section{padding:60px 0}
  }
  @media(max-width:900px){
    .menu,.nav-cta{display:none}
    .menu.open{display:flex;position:absolute;top:70px;left:0;right:0;flex-direction:column;background:var(--bg);padding:20px 24px;border-bottom:1px solid var(--line);gap:18px}
    .burger{display:block}
    .m-only{display:block}
  }
  @media(max-width:560px){
    .logo-img{height:32px}
    .stat .l .nb{display:block}
  }
  /* お知らせ一覧 */
  .news-list{list-style:none;max-width:820px;border-top:1px solid var(--line)}
  .news-list li{border-bottom:1px solid var(--line)}
  .news-list a{display:flex;gap:6px 26px;flex-wrap:wrap;align-items:baseline;padding:20px 4px;transition:color .2s}
  .news-list time{color:var(--muted);font-size:13.5px;white-space:nowrap;font-family:"Noto Serif JP",serif;letter-spacing:.02em}
  .news-list .nt{font-size:15.5px;font-weight:500;flex:1;min-width:240px;line-height:1.6}
  .news-list a:hover .nt{color:var(--accent-text)}
  .news-empty{color:var(--muted);font-size:15px;max-width:820px}

  /* お知らせ個別記事 */
  .post{max-width:760px;line-height:1.95}
  .post .post-date{color:var(--muted);font-size:13.5px;font-family:"Noto Serif JP",serif;letter-spacing:.02em;margin-bottom:6px}
  .post p{margin-bottom:16px;font-size:16px}
  .post h2{font-size:18px;font-weight:600;margin:34px 0 10px}
  .post ul,.post ol{margin:6px 0 16px;padding-left:1.5em}
  .post li{margin-bottom:6px;font-size:16px;line-height:1.85}
  .post strong{font-weight:600}
  .post img{display:block;margin:10px 0 18px;border:1px solid var(--line);border-radius:8px;max-width:min(100%,420px);height:auto}
  .post a{color:var(--accent-text);text-decoration:underline;text-underline-offset:2px;word-break:break-all}
  .post .post-foot{margin-top:14px;padding-top:8px}
  .post .post-foot .label{display:block;color:var(--navy);font-weight:500;margin-bottom:4px;font-size:14.5px}

  /* 外部リンク表示：href が http(s) で始まるリンクに自動でアイコンを付与（内部リンクはルート相対なので対象外） */
  a[href^="http"]::after{
    content:"";
    display:inline-block;
    width:.72em;height:.72em;
    margin-left:.28em;
    vertical-align:-0.06em;
    background-color:currentColor;
    -webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M18%2013v6a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2V8a2%202%200%200%201%202-2h6'/%3E%3Cpath%20d='M15%203h6v6'/%3E%3Cpath%20d='M10%2014%2021%203'/%3E%3C/svg%3E") no-repeat center / contain;
    mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%23000'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M18%2013v6a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2V8a2%202%200%200%201%202-2h6'/%3E%3Cpath%20d='M15%203h6v6'/%3E%3Cpath%20d='M10%2014%2021%203'/%3E%3C/svg%3E") no-repeat center / contain;
    opacity:.6;
  }
  .news-list a[href^="http"]::after{opacity:.5}

  @media(prefers-reduced-motion:reduce){
    .reveal{opacity:1;transform:none;transition:none}
    html{scroll-behavior:auto}
  }
