
  :root{
    --ink:#1c2430; --muted:#5b6675; --line:#e3e7ec; --bg:#fff; --soft:#f5f7f9;
    --accent:#1f5fae; --accent-soft:#e8f0fa; --navy:#1f3354;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:"Noto Sans JP",system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.8;font-size:16px;-webkit-font-smoothing:antialiased}
  a{color:var(--accent);text-decoration:none}
  .wrap{max-width:1040px;margin:0 auto;padding:0 20px}

  header{position:sticky;top:0;background:rgba(255,255,255,.95);backdrop-filter:blur(6px);border-bottom:1px solid var(--line);z-index:10}
  header .wrap{display:flex;align-items:center;justify-content:space-between;height:64px}
  .logo{font-weight:700;font-size:20px;color:var(--ink)}
  .logo span{color:var(--accent)}
  nav a{color:var(--muted);font-size:14px;margin-left:22px}
  nav a:hover{color:var(--accent)}

  .hero{padding:96px 0 80px;background:
      linear-gradient(180deg,rgba(232,240,250,.92),rgba(255,255,255,.96)),
      repeating-linear-gradient(0deg,transparent 0 31px,#d6e2f2 31px 32px),
      repeating-linear-gradient(90deg,transparent 0 31px,#d6e2f2 31px 32px)}
  .kicker{color:var(--accent);font-weight:500;font-size:14px;letter-spacing:.12em}
  .hero h1{font-size:clamp(28px,4.6vw,44px);line-height:1.4;margin:12px 0 20px}
  .hero .lead{color:var(--muted);max-width:660px}
  .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
  .tags span{background:#fff;border:1px solid var(--line);border-radius:99px;padding:4px 14px;font-size:13px;font-weight:500}
  .hero .price-badge{margin-top:28px;display:inline-flex;align-items:baseline;gap:8px;background:var(--navy);color:#fff;padding:12px 22px;border-radius:8px}
  .price-badge b{font-size:28px}
  .btn{display:inline-block;margin:28px 0 0 12px;background:var(--accent);color:#fff;padding:12px 28px;border-radius:6px;font-weight:500}

  section{padding:88px 0}
  h2{font-size:26px;margin-bottom:8px}
  .sub{color:var(--muted);margin-bottom:40px;font-size:15px}
  .soft{background:var(--soft)}

  .grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
  .card{border:1px solid var(--line);border-radius:10px;padding:28px 24px;background:#fff}
  .card .icon{width:44px;height:44px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:14px}
  .card h3{font-size:19px;margin:14px 0 8px}
  .card p{color:var(--muted);font-size:14px}

  .price{width:100%;border-collapse:collapse;background:#fff;border-radius:10px;overflow:hidden;border:1px solid var(--line)}
  .price th{background:var(--navy);color:#fff;font-weight:500;font-size:14px;text-align:left;padding:14px 18px}
  .price td{padding:16px 18px;border-top:1px solid var(--line);font-size:15px;vertical-align:top}
  .price td:first-child{font-weight:700;white-space:nowrap}
  .price td.yen{font-weight:700;color:var(--accent);white-space:nowrap}
  .price td.note{color:var(--muted);font-size:14px}
  .fine{color:var(--muted);font-size:13px;margin-top:14px}
  .soft-tools{font-size:12px;color:var(--muted)}


  .guarantee{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:24px}
  .guarantee div{background:var(--accent-soft);border-radius:10px;padding:18px 20px}
  .guarantee b{display:block;color:var(--navy);font-size:16px;margin-bottom:4px}
  .guarantee span{font-size:14px;color:var(--ink)}
  .others{margin-top:32px;background:#fff;border:1px dashed #c7d3e3;border-radius:10px;padding:20px 24px;font-size:14px;color:var(--muted)}
  .others b{color:var(--ink)}

  .two{display:grid;grid-template-columns:1fr 1fr;gap:20px}
  .base{background:#fff;border-radius:10px;padding:28px;border:1px solid var(--line)}
  .base .tag{font-size:12px;color:#fff;background:var(--accent);padding:2px 10px;border-radius:4px}
  .base h3{margin:12px 0 8px;font-size:18px}
  .base p{color:var(--muted);font-size:14px}

  .flow{display:grid;grid-template-columns:repeat(3,1fr);gap:28px 16px;counter-reset:s}
  .flow div{border-top:3px solid var(--accent);padding-top:14px}
  .flow div::before{counter-increment:s;content:"STEP " counter(s);color:var(--accent);font-weight:700;font-size:12px;letter-spacing:.1em}
  .flow strong{display:block;margin:4px 0}
  .flow span{color:var(--muted);font-size:13px}

  table.co{width:100%;border-collapse:collapse;font-size:15px}
  .co th,.co td{text-align:left;padding:16px 8px;border-bottom:1px solid var(--line);vertical-align:top}
  .co th{width:28%;color:var(--muted);font-weight:500}

  .contact{text-align:center}
  .contact .mail{font-size:clamp(18px,3vw,24px);font-weight:700;margin-top:12px;display:inline-block;word-break:break-all}
  footer{border-top:1px solid var(--line);padding:28px 0;color:var(--muted);font-size:13px;text-align:center}


  .works{display:grid;grid-template-columns:1fr 1fr;gap:20px}
  .works figure{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:0}
  .works figure.wide{grid-column:1/-1}
  .works a{display:block;background:#fff}
  .works img{width:100%;height:auto;display:block}
  .works figcaption{padding:12px 16px;font-size:14px;border-top:1px solid var(--line)}
  .works figcaption span{display:block;color:var(--muted);font-size:12px}
  .lb{display:none;position:fixed;inset:0;background:rgba(10,15,25,.92);z-index:50;overflow:auto;padding:24px}
  .lb:target{display:block}
  .lb img{max-width:none;width:1800px;display:block;margin:0 auto;background:#fff}
  .lb .close{position:fixed;top:12px;right:20px;color:#fff;font-size:30px}
  @media (max-width:760px){.works{grid-template-columns:1fr}.lb img{width:1400px}}
  @media (max-width:760px){
    nav{display:none}
    .guarantee{grid-template-columns:1fr}
    .grid3,.two{grid-template-columns:1fr}
    .flow{grid-template-columns:1fr 1fr}
    section{padding:64px 0}
    .hero{padding:72px 0 60px}
    .btn{margin-left:0}
    .price th:nth-child(3),.price td.note{display:none}
    .price td:first-child{white-space:normal}
  }

  section[id]{scroll-margin-top:76px}
  .btn.secondary{background:#fff;color:var(--accent);border:1px solid var(--accent)}
  .inquiry-note{max-width:680px;margin:28px auto;text-align:left;padding:24px;border:1px solid var(--line);border-radius:10px;background:#fff}
  .inquiry-note h3{font-size:18px;margin-bottom:8px}
  .inquiry-note p{font-size:14px;color:var(--muted)}
  @media(max-width:1100px){nav a{margin-left:12px;font-size:12px}.logo{font-size:18px}}
  @media(max-width:760px){.btn{display:block;margin-left:0;text-align:center}}
  @media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

  .service-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
  .service-links a{border:1px solid var(--line);border-radius:6px;padding:10px 16px;background:white;font-size:14px}
  .card .detail-link{display:inline-block;margin-top:16px;font-weight:700;font-size:14px}
  .breadcrumb{font-size:13px;margin-bottom:26px;color:var(--muted)}
  .page-hero{padding:60px 0;background:var(--accent-soft)}
  .page-hero h1{font-size:clamp(27px,4.5vw,40px);line-height:1.45;margin:12px 0 20px;max-width:900px}
  .page-hero .lead{max-width:850px;color:var(--muted)}
  .page-content section{padding:60px 0}
  .page-content h3{margin:24px 0 10px;font-size:19px}
  .page-content p+p{margin-top:16px}
  .plain-list{padding-left:24px;margin-top:16px}
  .plain-list li{margin-bottom:10px}
  .faq{border-top:1px solid var(--line);padding:18px 0}
  .faq summary{cursor:pointer;font-weight:700}
  .faq p{color:var(--muted);margin-top:12px}
  .sample{margin:28px 0;border:1px solid var(--line);border-radius:10px;overflow:hidden}
  .sample img{display:block;width:100%;height:auto}
  .sample figcaption{padding:14px 18px;font-size:14px;color:var(--muted)}
  .page-nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:16px}
  .page-nav a{margin:0}
  .footer-links{display:flex;flex-wrap:wrap;gap:12px 22px;justify-content:center;margin-bottom:18px}
  .skip{position:absolute;left:12px;top:-100px;padding:12px;background:#fff;z-index:100}
  .skip:focus{top:8px}
  @media(max-width:760px){.page-header .wrap{height:auto;min-height:64px;gap:12px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.page-nav{display:flex;gap:10px;font-size:12px}.page-content section{padding:44px 0}.page-hero{padding:40px 0}.page-content .price{font-size:13px}.service-links a{flex:1 1 180px}}
