@charset "UTF-8";
/* CSS Document */
    :root{
      --navy:#0b1f3a;
      --navy-2:#12325d;
      --ink:#122033;
      --muted:#5b6678;
      --bg:#ffffff;
      --line:#e6e9ee;
      --soft:#f6f8fb;
      --radius:16px;
      --shadow:0 8px 24px rgba(11,31,58,.08);
      --max:980px;
      --ok:#0f766e;
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN",
        "Hiragino Sans", "Noto Sans JP", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif;
      color:var(--ink);
      background:var(--bg);
      line-height:1.7;
    }
    a{color:inherit; text-decoration:none}
    img{max-width:100%; display:block}
    .container{max-width:var(--max); margin:0 auto; padding:0 18px}

    /* Header (fixed) */
    header{
      position:fixed; top:0; left:0; right:0;
      z-index:1000;
      background:rgba(255,255,255,.9);
      backdrop-filter:saturate(180%) blur(10px);
      border-bottom:1px solid var(--line);
    }
    .header-inner{
      height:68px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
    }

    /* Brand / Logo */
    .brand{
      display:flex; align-items:center; gap:12px;
      min-width: 220px;
    }
    .logo-wrap{
      width:54px;
      height:44px;
      display:flex;
      align-items:center;
      justify-content:center;
      flex:0 0 auto;
    }
    .logo-img{
      width:auto;
      height:44px;           /* バランス良く（ヘッダー68pxに対し少し余白） */
      max-width:54px;
      object-fit:contain;
      filter: drop-shadow(0 6px 14px rgba(11,31,58,.10));
    }
    .brand .name{
      font-weight:800;
      letter-spacing:.02em;
      color:var(--navy);
      font-size:15px;
      line-height:1.2;
    }
    .brand .tag{
      font-size:12px;
      color:var(--muted);
      margin-top:2px;
    }

    nav{
      display:flex; align-items:center; gap:6px;
    }
    .nav-link{
      padding:10px 12px;
      border-radius:999px;
      color:var(--navy);
      font-weight:700;
      font-size:14px;
      border:1px solid transparent;
      transition:.2s ease;
    }
    .nav-link:hover{
      background:var(--soft);
      border-color:var(--line);
    }

    /* Mobile menu */
    .menu-btn{
      display:none;
      border:1px solid var(--line);
      background:#fff;
      border-radius:12px;
      padding:10px 12px;
      font-weight:800;
      color:var(--navy);
      box-shadow:0 4px 14px rgba(11,31,58,.06);
      cursor:pointer;
    }
    .mobile-panel{
      display:none;
      border-top:1px solid var(--line);
      background:#fff;
    }
    .mobile-panel a{
      display:block;
      padding:14px 18px;
      border-bottom:1px solid var(--line);
      font-weight:800;
      color:var(--navy);
    }

    /* Layout spacing for fixed header */
    main{padding-top:68px}

    /* Sections */
    section{padding:56px 0}
    .section-title{
      font-size:26px;
      letter-spacing:.01em;
      margin:0 0 10px;
      color:var(--navy);
    }
    .section-lead{
      margin:0 0 22px;
      color:var(--muted);
      max-width: 76ch;
    }

    /* Hero */
    .hero{
      padding:64px 0 44px;
      background:
        radial-gradient(900px 320px at 10% 10%, rgba(18,50,93,.10), transparent 60%),
        radial-gradient(900px 360px at 90% 0%, rgba(11,31,58,.10), transparent 55%),
        linear-gradient(#fff, #fff);
      border-bottom:1px solid var(--line);
    }
    .hero-card{
      background:#fff;
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
      padding:28px;
    }
    .kicker{
      display:inline-flex;
      align-items:center;
      gap:10px;
      padding:8px 12px;
      border-radius:999px;
      background:var(--soft);
      border:1px solid var(--line);
      color:var(--navy);
      font-weight:800;
      font-size:12px;
      letter-spacing:.02em;
    }
    .hero h1{
      margin:14px 0 10px;
      font-size:34px;
      line-height:1.25;
      color:var(--navy);
      letter-spacing:.01em;
    }
    .hero p{
      margin:0 0 18px;
      color:var(--muted);
      font-size:16px;
      max-width: 76ch;
    }
    .cta-row{
      display:flex;
      gap:12px;
      flex-wrap:wrap;
      margin-top:18px;
    }
    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      padding:12px 16px;
      border-radius:12px;
      font-weight:900;
      letter-spacing:.02em;
      border:1px solid transparent;
      transition:.2s ease;
      cursor:pointer;
      user-select:none;
    }
    .btn-primary{
      background:linear-gradient(135deg, var(--navy), var(--navy-2));
      color:#fff;
      box-shadow:0 10px 22px rgba(11,31,58,.18);
    }
    .btn-primary:hover{transform:translateY(-1px)}
    .btn-ghost{
      background:#fff;
      border-color:var(--line);
      color:var(--navy);
    }
    .btn-ghost:hover{background:var(--soft)}
    .meta{
      margin-top:16px;
      display:flex;
      gap:12px;
      flex-wrap:wrap;
      color:var(--muted);
      font-size:13px;
    }
    .pill{
      padding:8px 10px;
      border:1px solid var(--line);
      background:#fff;
      border-radius:999px;
      display:inline-flex;
      align-items:center;
      gap:8px;
    }
    .pill a{
      color:var(--navy);
      font-weight:900;
      text-decoration:underline;
      text-underline-offset:3px;
    }

    /* Cards / lists */
    .card{
      background:#fff;
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
      padding:22px;
    }
    .grid{
      display:grid;
      gap:14px;
    }
    .grid-2{
      grid-template-columns:1fr 1fr;
    }
    .item-title{
      margin:0 0 6px;
      font-size:16px;
      font-weight:900;
      color:var(--navy);
    }
    .item-text{
      margin:0;
      color:var(--muted);
      font-size:14px;
    }

    ul.clean{
      margin:0;
      padding-left:18px;
      color:var(--muted);
    }
    ul.clean li{margin:6px 0}

    .tagline{
      display:flex;
      gap:10px;
      align-items:flex-start;
      padding:14px 14px;
      border:1px dashed rgba(18,50,93,.35);
      border-radius:14px;
      background:rgba(246,248,251,.7);
      color:var(--muted);
      margin:10px 0 0;
    }
    .tagline .dot{
      width:10px;height:10px;border-radius:999px;background:var(--navy);margin-top:7px;flex:0 0 auto;
    }

    /* Steps */
    .steps{display:grid; gap:10px; margin-top:12px}
    .step{
      display:flex;
      gap:12px;
      padding:12px 14px;
      border:1px solid var(--line);
      border-radius:14px;
      background:#fff;
    }
    .step .num{
      width:34px;height:34px;border-radius:12px;
      display:flex;align-items:center;justify-content:center;
      background:rgba(18,50,93,.10);
      border:1px solid rgba(18,50,93,.18);
      color:var(--navy);
      font-weight:1000;
      flex:0 0 auto;
    }
    .step .content{flex:1}
    .step .content b{color:var(--navy)}
    .step .content p{margin:2px 0 0; color:var(--muted); font-size:14px}

    /* Business highlights */
    .hl{
      display:flex;
      gap:10px;
      align-items:flex-start;
      padding:12px 14px;
      border:1px solid rgba(15,118,110,.22);
      background:rgba(15,118,110,.06);
      border-radius:14px;
      color:var(--muted);
      margin-top:12px;
    }
    .hl .badge{
      background:rgba(15,118,110,.16);
      border:1px solid rgba(15,118,110,.24);
      color:var(--ok);
      font-weight:1000;
      border-radius:999px;
      padding:6px 10px;
      font-size:12px;
      flex:0 0 auto;
    }

    /* Table-ish rows */
    .rows{display:grid; gap:10px}
    .row{
      display:flex;
      gap:12px;
      padding:12px 14px;
      border:1px solid var(--line);
      border-radius:14px;
      background:#fff;
    }
    .row .k{min-width:120px; font-weight:900; color:var(--navy)}
    .row .v{color:var(--muted); flex:1}

    /* 関連サイト：リンクが一目で分かるボタンUI */
    .related-links{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
    }
    .related-btn{
      display:inline-flex;
      align-items:center;
      gap:6px;
      padding:10px 14px;
      border-radius:12px;
      font-weight:800;
      font-size:14px;
      color:var(--navy);
      background:rgba(11,31,58,.06);
      border:1px solid rgba(11,31,58,.18);
      transition:.2s ease;
    }
    .related-btn:hover{
      background:linear-gradient(135deg, var(--navy), var(--navy-2));
      color:#fff;
      transform:translateY(-2px);
      box-shadow:0 8px 20px rgba(11,31,58,.2);
    }
    .related-btn .ext{
      font-size:12px;
      opacity:.75;
    }

    /* Contact form */
    form{
      display:grid;
      gap:12px;
      margin-top:10px;
    }
    .field{
      display:grid;
      gap:6px;
    }
    label{
      font-weight:900;
      color:var(--navy);
      font-size:13px;
    }
    .req{color:#b42318; font-weight:900; margin-left:6px}
    input, textarea, select{
      width:100%;
      border:1px solid var(--line);
      border-radius:12px;
      padding:12px 12px;
      font:inherit;
      background:#fff;
      outline:none;
      transition:.2s ease;
    }
    input:focus, textarea:focus, select:focus{
      border-color:rgba(18,50,93,.55);
      box-shadow:0 0 0 4px rgba(18,50,93,.12);
    }
    textarea{min-height:140px; resize:vertical}
    .two{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:12px;
    }
    .help{
      font-size:12px;
      color:var(--muted);
      margin:0;
    }

    /* Footer */
    footer{
      border-top:1px solid var(--line);
      padding:22px 0;
      background:#fff;
    }
    .footer-inner{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      flex-wrap:wrap;
      color:var(--muted);
      font-size:12px;
    }

    /* Anchor offset for fixed header */
    .anchor{
      scroll-margin-top: 82px;
    }

    /* Responsive */
    @media (max-width: 860px){
      .grid-2{grid-template-columns:1fr}
      .two{grid-template-columns:1fr}
      nav{display:none}
      .menu-btn{display:inline-flex}
      .mobile-panel{display:none}
      .mobile-panel:not([hidden]) {
        display: block;
      }
      .hero h1{font-size:28px}
      .row{flex-direction:column}
      .row .k{min-width:auto}
      .logo-wrap{width:52px;height:40px}
      .logo-img{height:40px; max-width:52px}
      .brand{min-width:unset}
    }