    :root{
      --paper:#F4F3EF; --ink:#0D0D0D; --mute:#8C8C88; --line:#E3E2DD; --panel:#EAE8E2;
      --serif:"Cormorant Garamond","Noto Serif JP",serif;
      --serif-jp:"Noto Serif JP","Cormorant Garamond",serif;
      --sans:"Inter","Noto Sans JP",sans-serif;
      --jp:"Noto Sans JP","Inter",sans-serif;
    }
    *{ box-sizing:border-box; }
    body{ margin:0; background:var(--paper); color:var(--ink); font-family:var(--jp); font-weight:300;
      font-size:14px; line-height:1.95; letter-spacing:.02em; -webkit-font-smoothing:antialiased; }
    img{ max-width:100%; }
    a{ color:inherit; }

    .site-header{ display:flex; align-items:center; justify-content:space-between; padding:24px 40px; border-bottom:1px solid var(--line); }
    .header-inner{ max-width:1120px; margin:0 auto; width:100%; display:flex; align-items:center; justify-content:space-between; }
    .logo img{ height:40px; width:auto; display:block; }
    .back-link{ font:500 11px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--ink); text-decoration:none; display:inline-flex; gap:8px; }
    .back-link:hover{ opacity:.55; }

    .wrap{ max-width:880px; margin:0 auto; padding:96px 24px 40px; }
    .eyebrow{ font:600 10px/1 var(--sans); letter-spacing:.22em; text-transform:uppercase; color:var(--mute); margin:0 0 24px; }
    .page-title{ font:400 clamp(38px,5vw,56px)/1.08 var(--serif); letter-spacing:-.008em; margin:0 0 16px; }
    .page-title em{ font-style:italic; }
    .page-jp{ font:500 14px/1.8 var(--jp); color:var(--mute); margin:0 0 48px; }
    .lead{ font:300 15px/2.05 var(--jp); color:#333; margin:0 0 8px; }
    .lead + .lead{ margin-top:16px; }

    .band{ padding:72px 24px; }
    .band.panel{ background:var(--panel); }
    .band-inner{ max-width:880px; margin:0 auto; }
    .band-inner.narrow{ max-width:620px; }
    .body{ margin:0 0 16px; font:300 14px/2.05 var(--jp); color:#333; }
    .body:last-child{ margin-bottom:0; }
    .sec-title{ font:400 clamp(26px,3.4vw,34px)/1.2 var(--serif); margin:0 0 6px; }
    .sec-jp{ font:500 13px/1.8 var(--jp); color:var(--mute); margin:0 0 36px; }

    /* サービス一覧 */
    .svc{ border-top:1px solid var(--line); }
    .svc-item{ display:grid; grid-template-columns:160px 1fr; gap:24px; padding:22px 0; border-bottom:1px solid var(--line); }
    .svc-l{ display:flex; gap:12px; align-items:baseline; }
    .svc-no{ font:600 11px/1 var(--sans); letter-spacing:.1em; color:var(--mute); }
    .svc-name{ display:flex; flex-direction:column; gap:3px; }
    .svc-name .nm{ font:500 15px/1.5 var(--serif-jp); }
    .svc-name .en{ font:500 10px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--mute); }
    .svc-desc{ margin:0; color:#333; }

    /* 箇条書き */
    .list{ margin:0; padding-left:1.2em; color:#333; }
    .list li{ margin:0 0 8px; }

    /* 進め方 */
    .steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
    .step{ background:var(--paper); border:1px solid var(--line); border-radius:2px; padding:20px 18px; }
    .band.panel .step{ background:var(--paper); }
    .step .no{ font:600 10px/1 var(--sans); letter-spacing:.16em; color:var(--mute); display:block; margin-bottom:10px; }
    .step h3{ font:500 14px/1.6 var(--serif-jp); margin:0 0 8px; }
    .step p{ margin:0; font-size:13px; line-height:1.85; color:#444; }

    /* 実績・資格 */
    .creds{ display:grid; grid-template-columns:repeat(2,1fr); gap:0 40px; border-top:1px solid var(--line); }
    .cred{ display:grid; grid-template-columns:120px 1fr; gap:16px; padding:16px 0; border-bottom:1px solid var(--line); }
    .cred dt{ font:600 10px/1.8 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--mute); margin:0; }
    .cred dd{ margin:0; color:#333; font-size:13px; line-height:1.85; }

    /* 事例 */
    .body.intro{ max-width:none; margin:-16px 0 8px; }
    .case{ border-top:1px solid var(--line); padding:36px 0 12px; }
    .case h3{ font:400 clamp(19px,2.2vw,23px)/1.55 var(--serif-jp); margin:0 0 8px; }
    .case .client{ font:500 12px/1.7 var(--jp); color:var(--mute); margin:0 0 18px; }
    .case .body{ max-width:none; margin-bottom:24px; }
    .case-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:24px; }
    .case-grid h4{ font:600 10px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase; color:var(--mute); margin:0 0 10px; }
    .case-grid p{ margin:0; font-size:13px; line-height:1.9; color:#333; }
    .quote{ background:var(--panel); border-radius:2px; padding:24px 26px; margin:0; }
    .band.panel .quote{ background:var(--paper); }
    .quote p{ margin:0 0 12px; font:300 14px/2 var(--jp); color:#2b2b2b; }
    .quote p:last-of-type{ margin-bottom:14px; }
    .quote cite{ font:500 12px/1 var(--jp); color:var(--mute); font-style:normal; }

    /* 英語要約 */
    .en-block{ max-width:none; }
    .en-block h2{ font:600 10px/1 var(--sans); letter-spacing:.22em; text-transform:uppercase; color:var(--mute); margin:0 0 18px; }
    .en-block p{ margin:0 0 12px; font:300 12.5px/1.95 var(--sans); color:#55554f; }
    .en-block ul{ margin:0 0 12px; padding-left:1.2em; font:300 13px/1.95 var(--sans); color:#333; }

    .cta{ text-align:center; padding:80px 24px 96px; }
    .cta h2{ font:400 clamp(26px,3.4vw,34px)/1.25 var(--serif); margin:0 0 10px; }
    .cta p{ margin:0 0 28px; color:#444; }
    .btn{ display:inline-block; border:1px solid var(--ink); border-radius:2px; padding:14px 34px;
      font:500 11px/1 var(--sans); letter-spacing:.16em; text-transform:uppercase; text-decoration:none; transition:background .3s,color .3s; }
    .btn:hover{ background:var(--ink); color:var(--paper); }

    .site-footer{ padding:48px 40px; background:var(--panel); }
    .footer-inner{ max-width:1120px; margin:0 auto; display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:20px; }
    .footer-inner img{ height:34px; }
    .site-footer .cp{ font:500 14px/1.8 var(--jp); color:var(--mute); margin:0; }

    @media (max-width:880px){
      .site-header{ padding:14px 22px; }
      .wrap{ padding:72px 22px 32px; }
      .band{ padding:56px 22px; }
      .svc-item{ grid-template-columns:1fr; gap:10px; }
      .steps{ grid-template-columns:1fr 1fr; }
      .creds{ grid-template-columns:1fr; gap:0; }
      .case-grid{ grid-template-columns:1fr; gap:18px; }
      .site-footer{ padding:40px 22px; }
    }
    @media (max-width:560px){
      .steps{ grid-template-columns:1fr; }
      .cred{ grid-template-columns:1fr; gap:4px; }
    }
